diff --git a/.gitignore b/.gitignore
index 6cdcf15fe273f54f6b936a7d1ef7a182c795a488..3a1e22d32d22047f05e071fdc84fbd1bfabc69ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,6 +52,7 @@ Plugins/*/Binaries/*
 # Builds
 Build/*
 
+
 # Whitelist PakBlacklist-<BuildConfiguration>.txt files
 !Build/*/
 Build/*/**
@@ -73,3 +74,8 @@ Plugins/*/Intermediate/*
 # Cache files for the editor to use
 DerivedDataCache/*
 /Credentials.json
+
+#Include Files installed by makefile
+/Source/ThirdParty/Include
+
+
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..223ae7200fba0ad00c081b45ebf98d0665402942
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "Source/Thirdparty/Dasher/DasherCore"]
+	path = Source/Thirdparty/Dasher/DasherCore
+	url = https://github.com/VRGroupRWTH/DasherCore.git
+	branch = master
diff --git a/Config/FilterPlugin.ini b/Config/FilterPlugin.ini
new file mode 100644
index 0000000000000000000000000000000000000000..ccebca2f326481a66548a0f10cc21de1cf4bad74
--- /dev/null
+++ b/Config/FilterPlugin.ini
@@ -0,0 +1,8 @@
+[FilterPlugin]
+; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and
+; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively.
+;
+; Examples:
+;    /README.txt
+;    /Extras/...
+;    /Binaries/ThirdParty/*.dll
diff --git a/Content/DasherScreenActor.uasset b/Content/DasherScreenActor.uasset
deleted file mode 100644
index acb9efd50023e6ea8401f1901ae588f8e4f7fab8..0000000000000000000000000000000000000000
--- a/Content/DasherScreenActor.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:50ac7da0867836f2fbffbd0df5f1af4dd653a029742041fadc2b5811cc41bccf
-size 2306
diff --git a/Content/DasherScreenBP.uasset b/Content/DasherScreenBP.uasset
deleted file mode 100644
index bcbdfbda867799a46bb4b78fe6745886645f04d4..0000000000000000000000000000000000000000
--- a/Content/DasherScreenBP.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b01a24890fed7fd4f6712fa516401023f90a01a9d24276956de7868fbc2862ac
-size 22634
diff --git a/Content/DasherWidgetComponent.uasset b/Content/DasherWidgetComponent.uasset
deleted file mode 100644
index f929e52a64c3e713182c91ebba5fa2e198de01fc..0000000000000000000000000000000000000000
--- a/Content/DasherWidgetComponent.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a09b6cdfce9b9549dea39d7fc02725e1753673e3ed40a0a943c0374dd9324ef1
-size 15074
diff --git a/Content/DasherWidgetDisplay.uasset b/Content/DasherWidgetDisplay.uasset
deleted file mode 100644
index 5e3371cf2284549175451035eab8036233271496..0000000000000000000000000000000000000000
--- a/Content/DasherWidgetDisplay.uasset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:200fecc7ae088931de45a2cc36a829cf5cba7ef645ce9d04a01810b4d434e38f
-size 22640
diff --git a/DasherVR.uplugin b/DasherVR.uplugin
index 91bb5c7cbaa61f9a3939b3760a83722b1f3daff8..5697244bb824b2d5ab7d1092a8b3ac431876bb83 100644
--- a/DasherVR.uplugin
+++ b/DasherVR.uplugin
@@ -18,7 +18,7 @@
 		{
 			"Name": "DasherVR",
 			"Type": "Runtime",
-			"LoadingPhase": "Default"
+			"LoadingPhase": "PreDefault"
 		}
 	]
-}
\ No newline at end of file
+}
diff --git a/README.md b/README.md
index 1fc8bd0a1ab629c6e0e17b9842cbd28313186788..3b6a5526b59b55e181b3d25865449a8493eecb64 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,8 @@
 # Dasher VR
 
-VR implementation of the Dasher project https://github.com/dasher-project/dasher
+## Linux Installation
+Make sure to get all submodules e.g. by using `git submodule update --init --recursive`.
+Run the install.sh script or use the cmake file and make install. This should deploy all headers and the library to their corresponding folders.
 
-# useful links (dev):
-https://www.ue4community.wiki/file-and-folder-management-create-find-delete-et2g64gx
-
-# Compiling dasher lib to avoid linker errors:
-* Delete the FileLogger.cpp file (we are implementing the file logger ourselves)
-* In Common/trace.h change the define in line 50 to:
-`#define DASHER_TRACEOUTPUT (void)0` (this is not a funcitonal change, the ternary evaluates to this anyways)
-* Under C/C++ -> Code Generation set *Runtime Library* to **Multi-threaded DLL (/MD)**
-* Under C/C++ -> Preprocessor change the preprocessor definitions *DEBUG and _DEBUG* to **NDEBUG and _NDEBUG respectively**
-* Under C/C++ -> Preprocessor add HAVE_ROUND and XML_STATIC as a flag
-* Set the platform to **x64**  by adding it in the configuration manager
-* Remove the following includes from /Win32/Common/WinCommon (lines 22-24): 
-  * `#include <atlbase.h>`
-  * `#include <atlstr.h>`
-  * `#include <atlwin.h>`
+## Windows 
+Good luck, try to make cmake work, working on it.
\ No newline at end of file
diff --git a/Source/DasherVR/DasherVR.Build.cs b/Source/DasherVR/DasherVR.Build.cs
index a7b9b84d48bc6c0b0d2cfc720afcbef5330aaf49..9e9656a4f990937515548e0053d9d94cec02365a 100644
--- a/Source/DasherVR/DasherVR.Build.cs
+++ b/Source/DasherVR/DasherVR.Build.cs
@@ -7,9 +7,7 @@ public class DasherVR : ModuleRules
 	public DasherVR(ReadOnlyTargetRules Target) : base(Target)
 	{
 		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
-		AddEngineThirdPartyPrivateStaticDependencies(Target, "Expat");
-		PrivateDefinitions.Add("XML_STATIC");
-
+		PrivateDefinitions.Add("HAVE_OWN_FILEUTILS");
 
 		PublicIncludePaths.AddRange(
 			new string[] {
@@ -23,19 +21,17 @@ public class DasherVR : ModuleRules
 			}
 			);
 			
-			
-
 		PublicDependencyModuleNames.AddRange(
 			new string[]
 			{
 				"Core",
 				"Dasher",
-				"Expat"
+        "InputCore",
+				"DeveloperSettings"
 				// ... add other public dependencies that you statically link with here ...
 			}
 			);
 			
-		
 		PrivateDependencyModuleNames.AddRange(
 			new string[]
 			{
diff --git a/Source/DasherVR/Private/DasherFileUtils.cpp b/Source/DasherVR/Private/DasherFileUtils.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..095ebd51fb7f984bb094239b2772861ca1779b70
--- /dev/null
+++ b/Source/DasherVR/Private/DasherFileUtils.cpp
@@ -0,0 +1,49 @@
+#include "CoreMinimal.h"
+#include "FileUtils.h"
+#include "HAL/FileManagerGeneric.h"
+#include "Misc/FileHelper.h"
+
+namespace Dasher
+{
+	int FileUtils::GetFileSize(const std::string& strFileName)
+	{
+		return IFileManager::Get().FileSize(UTF8_TO_TCHAR(strFileName.c_str()));
+	}
+
+	//This doesn't actually Parse all files with the pattern, just the file with exactly the name strPattern in the Project directory
+	void FileUtils::ScanFiles(AbstractParser* parser, const std::string& strPattern)
+	{ 
+		const FString SearchPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir(), TEXT("DasherResources"));
+
+		//Check for explicit file
+		if(IFileManager::Get().FileExists(*FPaths::Combine(SearchPath, FString(strPattern.c_str()))))
+		{
+			parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, FString(strPattern.c_str()))), true);
+			return;
+		}
+
+		//Search files
+		TArray<FString> Filenames;
+		IFileManager::Get().FindFiles(Filenames, *SearchPath);
+		FString alteredPattern = FString(strPattern.c_str()).Replace(TEXT("*"), TEXT(".*"));
+
+		for(FString Filename : Filenames)
+		{
+			if(FRegexMatcher(FRegexPattern(alteredPattern), Filename).FindNext())
+			{
+				parser->ParseFile(TCHAR_TO_UTF8(*FPaths::Combine(SearchPath, Filename)), true);
+			}
+		}
+	}
+
+	bool FileUtils::WriteUserDataFile(const std::string& filename, const std::string& strNewText, bool append)
+	{
+		if (strNewText.length() == 0) return true;
+		return FFileHelper::SaveStringToFile(FString(strNewText.c_str()), UTF8_TO_TCHAR(filename.c_str()), FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), (append) ? FILEWRITE_Append : FILEWRITE_None);
+	}
+	
+	std::string FileUtils::GetFullFilenamePath(const std::string strFilename){
+		FString Fullpath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir(), UTF8_TO_TCHAR(strFilename.c_str()));
+		return TCHAR_TO_UTF8(*Fullpath);
+	}
+}
diff --git a/Source/DasherVR/Private/DasherInterface.cpp b/Source/DasherVR/Private/DasherInterface.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..eeb2d60da931a16797328cb7044a7c486f00062b
--- /dev/null
+++ b/Source/DasherVR/Private/DasherInterface.cpp
@@ -0,0 +1,144 @@
+#include "DasherInterface.h"
+
+#include "SDasherWidget.h"
+
+namespace Dasher
+{
+	//Constructor
+	DasherInterface::DasherInterface(CSettingsStore * settings) : CDashIntfScreenMsgs(settings){}
+
+	void DasherInterface::ImportTrainingFile(std::string filename)
+	{
+		ImportTrainingText(filename);
+	}
+
+	std::string DasherInterface::GetContext(unsigned int iStart, unsigned int iLength)
+	{
+		const FString output = Buffer.Mid(iStart, iLength);
+		return TCHAR_TO_UTF8(*output);
+	}
+
+	//The next functions operate on the buffer
+
+	//For now can only return one character around the cursor
+	std::string DasherInterface::GetTextAroundCursor(Dasher::CControlManager::EditDistance iDist)
+	{		
+		if (Buffer.Len()>Cursor)
+		{
+			if (iDist == Dasher::CControlManager::EditDistance::EDIT_CHAR)
+			{
+				const FString Output = Buffer.Mid(Cursor, 1);
+				return TCHAR_TO_UTF8(*Output);
+			}
+			else
+			{
+				UE_LOG(LogTemp, Error, TEXT("This is not Implemented"));
+				return std::string("tried to get more than just a char");
+			}
+		}
+		UE_LOG(LogTemp, Error, TEXT("Cursor out of bounds"));
+		return std::string("Cursor out of bounds");
+	}
+
+	unsigned int DasherInterface::ctrlMove(bool bForwards, Dasher::CControlManager::EditDistance dist)
+	{
+		if (dist == Dasher::CControlManager::EditDistance::EDIT_CHAR)
+		{
+			if (bForwards) Cursor++;
+			else Cursor--;
+		}
+		return Cursor;
+	}
+
+	unsigned int DasherInterface::ctrlDelete(bool bForwards, Dasher::CControlManager::EditDistance dist)
+	{
+		if (dist == Dasher::CControlManager::EditDistance::EDIT_CHAR)
+		{
+			const int Index = Cursor - (bForwards ? 0 : 1);
+			const FString DeletedChar = Buffer.Mid(Index, 1);
+			Buffer.RemoveAt(Index, 1, false);
+			if(!bForwards) Cursor--;
+			if(CharacterDeleted)
+			{
+				CharacterDeleted(DeletedChar, Buffer);
+			}
+		}
+		return Cursor;
+	}
+
+	void DasherInterface::editOutput(const std::string& strText, CDasherNode* pNode)
+	{
+		if (static_cast<int>(Buffer.GetAllocatedSize()) - static_cast<int>(strText.length()) - Buffer.Len() < 0)
+		{
+			Buffer.Reserve(Buffer.GetAllocatedSize() * 2);
+		}
+
+		const FString Text(UTF8_TO_TCHAR(strText.c_str()));
+		for(TCHAR StringChar : Text)
+		{
+			Buffer.AppendChar(StringChar);
+			Cursor++;
+
+			// Broadcast each character
+			if(CharacterEntered)
+			{
+				CharacterEntered(FString(1, &StringChar), Buffer);
+			}
+		}
+
+		CDasherInterfaceBase::editOutput(strText, pNode);
+	}
+
+
+	std::string DasherInterface::GetAllContext()
+	{
+		const FString Output = Buffer;
+		Buffer.Empty();
+		return std::string(TCHAR_TO_UTF8(*Output));
+	}
+
+
+	void DasherInterface::editDelete(const std::string& strText, CDasherNode* pNode)
+	{
+		const FString Text(UTF8_TO_TCHAR(strText.c_str()));
+
+		//Reverse Iterate
+		for(TCHAR StringChar : Text.Reverse())
+		{
+			const FString SingleCharString = FString(1, &StringChar);
+			if(Buffer.RemoveFromEnd(SingleCharString))
+			{
+				Cursor--;
+				if(CharacterDeleted) CharacterDeleted(SingleCharString, Buffer);
+			}
+		}
+
+		CDasherInterfaceBase::editDelete(strText, pNode);
+	}
+
+
+	void DasherInterface::Tick(unsigned long time)
+	{
+		NewFrame(time, true);
+	}
+
+	void DasherInterface::SetScreen(SDasherWidget* screen)
+	{
+		//set the widget as screen that dasher will be displayed on
+		ChangeScreen(screen);
+		//set up stuff that can't be done in the constructor (for explanation see comments in DasherInterfaceBase.h etc. in DasherCore)
+		Realize(0);
+	}
+
+	FString DasherInterface::GetBuffer() const
+    {
+		return Buffer;
+	}
+
+	void DasherInterface::ResetBuffer()
+	{
+		Buffer = "";
+		SetBuffer(0);
+	}
+		
+}
diff --git a/Source/DasherVR/Private/DasherVR.cpp b/Source/DasherVR/Private/DasherVR.cpp
index a970b4ae06d441c7b51739c0cc9520ca7bfd94f5..628c7912036a4ea7455810debb65b04a3b250ba4 100644
--- a/Source/DasherVR/Private/DasherVR.cpp
+++ b/Source/DasherVR/Private/DasherVR.cpp
@@ -2,8 +2,6 @@
 
 #include "DasherVR.h"
 #include "Engine.h"
-#include "DasherCoreWrapper.h"
-#include "Dasher.h"
 #define LOCTEXT_NAMESPACE "FDasherVRModule"
 
 void FDasherVRModule::StartupModule()
diff --git a/Source/DasherVR/Private/FileLogger.cpp b/Source/DasherVR/Private/FileLogger.cpp
deleted file mode 100644
index bd4ab4f397f53cfd340d40a52fd1af723908dd57..0000000000000000000000000000000000000000
--- a/Source/DasherVR/Private/FileLogger.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-#include "FileLogger.h"
-
-
-
-CFileLogger::CFileLogger(const std::string& strFilenamePath, eLogLevel iLogLevel, int iOptionsMask) {
-	m_strFilenamePath = "";
-	m_iLogLevel = iLogLevel;
-	m_iFunctionIndentLevel = 0;
-
-	m_bFunctionLogging = false;
-	m_bTimeStamp = false;
-	m_bDateStamp = false;
-	m_bDeleteOldFile = false;
-	m_bFunctionTiming = false;
-	m_bOutputScreen = false;
-
-	// See what options are set in our bit mask options parameter
-	if (iOptionsMask & logFunctionEntryExit)
-		m_bFunctionLogging = true;
-	if (iOptionsMask & logTimeStamp)
-		m_bTimeStamp = true;
-	if (iOptionsMask & logDateStamp)
-		m_bDateStamp = true;
-	if (iOptionsMask & logDeleteOldFile)
-		m_bDeleteOldFile = true;
-	if (iOptionsMask & logFunctionTiming)
-		m_bFunctionTiming = true;
-	if (iOptionsMask & logOutputScreen)
-		m_bOutputScreen = true;
-
-	//TODO use FPaths and IPlatformFile to do the stuff here
-
-
-
-	// On windows anyway if somebody can open up a file with CreateFile() in a different 
-	// directory and cause the working directory to change.  We don't want our log file
-	// moving around, so we'll find a absolute path when we are created and stick to
-	// that for the remainder of our life.
-	m_strFilenamePath = GetFullFilenamePath(strFilenamePath);
-
-	//// See if we should get rid of any existing filename with our given name.  This prevents having
-	//// to remember to delete the file before every new debugging run.
-	//if (m_bDeleteOldFile)
-	//{
-	//	FILE* fp = NULL;
-
-	//	fp = fopen(m_strFilenamePath.c_str(), "w");
-	//	if (fp != NULL)
-	//	{
-	//		fclose(fp);
-	//		fp = NULL;
-	//	}
-	//}
-
-}
-
-
-CFileLogger::~CFileLogger() {
-
-}
-
-
-
-
-// debug function for now
-void CFileLogger::SetFilename(const std::string& strFilename) {
-    m_strFilenamePath = strFilename;        //not sure if this will be used
-
-    //original implementation deletes old files here ( TODO? )
-
-	FString fstrFilename(strFilename.c_str());
-	UE_LOG(LogTemp, Log, TEXT("Set filename to %s"), *fstrFilename);
-}
-
-// logging a const char*
-void CFileLogger::Log(const char* szText, eLogLevel iLogLevel, ...) {
-	
-	std::string strTimeStamp = GetTimeDateStamp();
-	std::string strIndented = strTimeStamp + GetIndentedString(szText) + "\n";
-
-	FString logText(strIndented.c_str());
-
-
-	switch (iLogLevel) {
-		case eLogLevel::logDEBUG:
-			UE_LOG(LogTemp, Log, TEXT("%s"), *logText);
-			break;
-
-		case eLogLevel::logNORMAL:
-			UE_LOG(LogTemp, Warning, TEXT("%s"), *logText);
-			break;
-
-		case eLogLevel::logCRITICAL:
-			UE_LOG(LogTemp, Error, TEXT("%s"), *logText);;
-			break;
-	}
-
-}
-// logging an std::string
-void CFileLogger::Log(const std::string strText, eLogLevel iLogLevel, ...) {
-	
-	std::string strTimeStamp = GetTimeDateStamp();
-	std::string strIndented = strTimeStamp + GetIndentedString(strText) + "\n";
-
-	FString logText(strIndented.c_str());
-
-	switch (iLogLevel) {
-	case eLogLevel::logDEBUG:
-		UE_LOG(LogTemp, Log, TEXT("%s"), *logText);
-		break;
-
-	case eLogLevel::logNORMAL:
-		UE_LOG(LogTemp, Warning, TEXT("%s"), *logText);
-		break;
-
-	case eLogLevel::logCRITICAL:
-		UE_LOG(LogTemp, Error, TEXT("%s"), *logText);;
-		break;
-	}
-
-}
-// Version that assumes log level is logDEBUG, this seems highly superfluous
-void CFileLogger::LogDebug(const char* szText, ...) {
-	Log(szText, eLogLevel::logDEBUG);
-}
-// never mind..
-void CFileLogger::LogNormal(const char* szText, ...) {
-	Log(szText, eLogLevel::logNORMAL);
-}
-// I don't know..
-void CFileLogger::LogCritical(const char* szText, ...) {
-	Log(szText, eLogLevel::logCRITICAL);
-}
- 
-
-//next functions directly taken from Dasher's FileLogger implementation, should work
-void CFileLogger::LogFunctionEntry(const std::string& strFunctionName)
-{
-	if (m_bFunctionLogging)
-	{
-		std::string strStart = "start: ";
-		strStart += strFunctionName;
-		Log(strStart.c_str());
-		m_iFunctionIndentLevel++;
-	}
-}
-
-void CFileLogger::LogFunctionExit(const std::string& strFunctionName)
-{
-	if (m_bFunctionLogging)
-	{
-		m_iFunctionIndentLevel--;
-		std::string strEnd = "end: ";
-		strEnd += strFunctionName;
-		Log(strEnd.c_str());
-	}
-}
-
-
-std::string CFileLogger::GetIndentedString(const std::string& strText) {
-	std::string strIndented = "";
-	for (int i = 0; i < m_iFunctionIndentLevel; i++)
-		strIndented += " ";
-	strIndented += strText;
-
-	return strIndented;
-}
-
-bool CFileLogger::GetFunctionTiming()
-{
-	return m_bFunctionTiming;
-}
-
-// Update what log level this object is using
-void CFileLogger::SetLogLevel(const eLogLevel iNewLevel)
-{
-	m_iLogLevel = iNewLevel;
-}
-
-// Update whether function entry/exit is logged
-void CFileLogger::SetFunctionLogging(bool bFunctionLogging)
-{
-	m_bFunctionLogging = bFunctionLogging;
-}
-
-
-
-/*Gets the time and/or date stamp as specified
-// by our construction options.*/
-
-//This function is not used outside of FileLogger in  DasherCore, so we alter the time format to something more common
-
-std::string CFileLogger::GetTimeDateStamp() {
-	
-	// Format is yyyy.mm.dd-hh.mm.ss
-	FString time = FDateTime::Now().ToString();							
-	std::string strTimeStamp = std::string(TCHAR_TO_UTF8(*time));
-
-	return strTimeStamp;
-	}
-
-std::string CFileLogger::GetFullFilenamePath(std::string strFilename)
-{
-	// get Log directory
-	FString logDir = FPaths::ProjectLogDir();
-	FString ffilename(strFilename.c_str());
-	FString fFilename = (logDir + ffilename);
-	FPaths::MakePlatformFilename(ffilename);
-	std::string fullPath(TCHAR_TO_UTF8(*fFilename));
-
-	return fullPath;
-}
-
-
-
-
-//---------------------------------------CFunctionLogger-------------------------------------	
-
-CFunctionLogger::CFunctionLogger(const std::string& strFunctionName, CFileLogger* pLogger) {
-	m_pLogger = pLogger;
-
-	if ((m_pLogger != NULL) && (strFunctionName.length() > 0)) {
-		m_strFunctionName = strFunctionName;
-
-		if (!m_pLogger->GetFunctionTiming())
-			m_pLogger->LogFunctionEntry(m_strFunctionName);
-
-	}
-}
-
-CFunctionLogger::~CFunctionLogger() {
-		if ((m_pLogger != NULL) && (m_strFunctionName.length() > 0)) {
-			if (!m_pLogger->GetFunctionTiming())
-				m_pLogger->LogFunctionExit(m_strFunctionName);
-		}
-	}
-
-
-
diff --git a/Source/DasherVR/Private/SDasherWidget.cpp b/Source/DasherVR/Private/SDasherWidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d256cd7780519564807aaa7b6add8e5a3a450a8b
--- /dev/null
+++ b/Source/DasherVR/Private/SDasherWidget.cpp
@@ -0,0 +1,325 @@
+#include "SDasherWidget.h"
+#include "SlateOptMacros.h"
+#include "Styling/CoreStyle.h"
+#include "Brushes/SlateColorBrush.h"
+#include "Rendering/DrawElements.h"
+#include "DasherInterface.h"
+
+#include "Components/SlateWrapperTypes.h"
+
+BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
+
+
+// ++ This is needed in order to use the localization macro LOCTEXT
+#define LOCTEXT_NAMESPACE "SStandardSlateWidget"
+
+//Set the state if we're in the editor or not.
+void SDasherWidget::SetEditor(bool EditorState)
+{
+	IsEditor = EditorState;
+}
+
+//Event Handlers
+//Mouse position saved for mouse Input
+FReply SDasherWidget::HandleMouseMoveEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent)
+{
+	//The mouse event only contains the Screen Space Position
+	MousePosition = Geometry.AbsoluteToLocal(MouseEvent.GetScreenSpacePosition());
+	return FReply::Handled();
+}
+
+FReply SDasherWidget::HandleMouseDownEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent)
+{
+	DasherMainInterface->KeyDown(FDateTime::Now().GetSecond() + FDateTime::Now().GetMillisecond(), 100); //100 is the keycode for LMB
+	if(MouseDownListeners.IsBound())
+	{
+	    MouseDownListeners.Broadcast();
+	}
+	return FReply::Handled().LockMouseToWidget(AsShared());
+}
+
+FReply SDasherWidget::HandleMouseUpEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent)
+{
+	DasherMainInterface->KeyUp(FDateTime::Now().GetSecond() + FDateTime::Now().GetMillisecond(), 100); //100 is the keycode for LMB
+	if(MouseUpListeners.IsBound())
+	{
+	    MouseUpListeners.Broadcast();
+	}
+	return FReply::Handled().ReleaseMouseLock();
+}
+
+FReply SDasherWidget::HandleMouseDoubleClickEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent)
+{
+	DasherMainInterface->KeyUp(FDateTime::Now().GetSecond() + FDateTime::Now().GetMillisecond(), 100); //100 is the keycode for LMB
+	return FReply::Handled();
+}
+
+//Set in the HandleMouseMoveEvent
+//See tick for geometry things that could be use to modify this.
+FVector2D SDasherWidget::GetMousePosition()
+{
+	return MousePosition;
+}
+
+bool SDasherWidget::GetScreenCoords(screenint& iX, screenint& iY, Dasher::CDasherView* pView)
+{
+	const FVector2D Position = GetMousePosition();
+	
+	iX = Position.X;
+	iY = Position.Y;
+
+	return true;
+}
+
+//The construction of the Dasher Widget, Dasher parameters are set here, a function to set them outside is not provided, but can be easily implemented
+void SDasherWidget::Construct(const FArguments& InArgs)
+{	
+	//Initial resize, needed for setup
+	Width = InArgs._width;
+	Height = InArgs._height;
+	resize(Width, Height);
+
+	//initialize the font measuring service.
+	FontMeasureService = FSlateApplication::Get().GetRenderer()->GetFontMeasureService();
+
+	//Setting up Dasher
+	static Dasher::XMLErrorDisplay display;
+    Dasher::XmlSettingsStore* Settings = new Dasher::XmlSettingsStore("Settings.xml"/*, &fileUtils*/, &display); //Gets deleted somewhere else
+    Settings->Load();
+	Settings->Save();
+    DasherMainInterface = MakeShared<Dasher::DasherInterface>(Settings);
+	DasherMainInterface->SetDefaultInputDevice(this);
+	//change dasher parameters
+	DasherMainInterface->SetBoolParameter(BP_AUTO_SPEEDCONTROL, false);  //Auto Speed Control
+	DasherMainInterface->SetLongParameter(LP_DASHER_FONTSIZE, 18);	
+	DasherMainInterface->SetLongParameter(LP_MAX_BITRATE, 400);			//Maximum Speed
+	DasherMainInterface->SetStringParameter(SP_INPUT_FILTER, "Stylus Control");	//On Hold
+	DasherMainInterface->SetStringParameter(SP_ALPHABET_ID, "German without punctuation");
+	DasherMainInterface->SetLongParameter(LP_MIN_NODE_SIZE, 15);
+
+	DasherMainInterface->SetScreen(this);
+	DasherMainInterface->SetBuffer(0);
+
+	DasherMainInterface->SetCharEnteredCallback([this](FString Char, FString Buffer){CharacterEntered.ExecuteIfBound(Char, Buffer);});
+	DasherMainInterface->SetCharDeletedCallback([this](FString Char, FString Buffer){CharacterDeleted.ExecuteIfBound(Char, Buffer);});
+
+	//Set up the Event Handlers for Mouse Movement etc.
+	SetOnMouseMove(FPointerEventHandler::CreateLambda([this](const FGeometry& Geometry, const FPointerEvent& MouseEvent) {return HandleMouseMoveEvent(Geometry, MouseEvent) ; }));
+	SetOnMouseButtonDown(FPointerEventHandler::CreateLambda([this](const FGeometry& Geometry, const FPointerEvent& MouseEvent) {return HandleMouseDownEvent(Geometry, MouseEvent); }));
+	SetOnMouseButtonUp(FPointerEventHandler::CreateLambda([this](const FGeometry& Geometry, const FPointerEvent& MouseEvent) {return HandleMouseUpEvent(Geometry, MouseEvent); }));
+	SetOnMouseDoubleClick(FPointerEventHandler::CreateLambda([this](const FGeometry& Geometry, const FPointerEvent& MouseEvent) {return HandleMouseDoubleClickEvent(Geometry, MouseEvent); })); //We treat a double click of the mouse as a lift of the mouse button.
+    //You could add Slate Code here for child slots etc.
+}
+
+void SDasherWidget::SetBoolParamter(FString ParameterName, bool Value)
+{
+	for(Dasher::Settings::bp_table Setting : Dasher::Settings::boolparamtable)
+	{
+		if(FString(Setting.regName).Compare(ParameterName, ESearchCase::IgnoreCase))
+		{
+			DasherMainInterface->SetBoolParameter(Setting.key, Value);
+			return;
+		}
+	}
+}
+
+void SDasherWidget::SetLongParamter(FString ParameterName, int64 Value)
+{
+	for(Dasher::Settings::bp_table Setting : Dasher::Settings::boolparamtable)
+	{
+		if(FString(Setting.regName).Compare(ParameterName, ESearchCase::IgnoreCase))
+		{
+			DasherMainInterface->SetLongParameter(Setting.key, Value);
+			return;
+		}
+	}
+}
+
+void SDasherWidget::SetStringParamter(FString ParameterName, FString Value)
+{
+	for(Dasher::Settings::bp_table Setting : Dasher::Settings::boolparamtable)
+	{
+		if(FString(Setting.regName).Compare(ParameterName, ESearchCase::IgnoreCase))
+		{
+			DasherMainInterface->SetStringParameter(Setting.key, TCHAR_TO_UTF8(*Value));
+			return;
+		}
+	}
+}
+
+//Set the colour Scheme for dasher
+void SDasherWidget::SetColourScheme(const Dasher::CColourIO::ColourInfo* pcolours) {
+	ColorPalette = pcolours;
+}
+
+//paints our stuff, then lets compoundwidget (super::) draw its stuff
+//This draws from bottom to top rectangles->lines->labels, this is enough for our use, but for more complex scenarios a proper layering system might have to be implemented
+int32 SDasherWidget::OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const
+{
+	//this doesn't draw anything red, we just need a brush. Could probably find a better "empty" brush
+	auto MyBrush = FSlateColorBrush(FColor::Red);
+
+	FFilledRect* RectObject;
+	FWriting* WritingObject;
+	FPolyLine* LineObject;
+	FVector2D Size;
+	FString Text;
+	FSlateFontInfo Font;
+
+	TArray<TUniquePtr<DasherDrawGeometry>>& GeometryBuffer = *FrontBuffer;
+	for(TUniquePtr<DasherDrawGeometry>& GeneralObject : GeometryBuffer) {
+		switch(GeneralObject->Type)
+		{
+			case Rectangle:
+				RectObject = static_cast<FFilledRect*>(GeneralObject.Get());
+				Size = {FMath::Abs(RectObject->top.X - RectObject->bottom.X), FMath::Abs(RectObject->top.Y - RectObject->bottom.Y)};
+				FSlateDrawElement::MakeBox(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(Size, FSlateLayoutTransform(1, RectObject->top)), &MyBrush, ESlateDrawEffect::None, RectObject->color); //actually adds the box to the geometry
+				break;
+			case Writing:
+				WritingObject = static_cast<FWriting*>(GeneralObject.Get());
+				Text = FString(UTF8_TO_TCHAR(WritingObject->label->m_strText.c_str()));
+
+		        Font = FCoreStyle::GetDefaultFontStyle("Roboto", WritingObject->size, FFontOutlineSettings::NoOutline); //get the font
+				FSlateDrawElement::MakeText(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(FSlateLayoutTransform(1, FVector2D(WritingObject->pos.X, WritingObject->pos.Y))), Text , Font, ESlateDrawEffect::None, WritingObject->color);
+				break;
+			case PolyLine:
+				LineObject = static_cast<FPolyLine*>(GeneralObject.Get());
+				FSlateDrawElement::MakeLines(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(), LineObject->points, ESlateDrawEffect::None, LineObject->color, true, LineObject->linewidth);
+				break;
+			default: break;
+		}
+	}
+
+	return SCompoundWidget::OnPaint(Args, AllottedGeometry, MyClippingRect, OutDrawElements, LayerId, InWidgetStyle,  bParentEnabled); //call the parent onPaint
+}
+
+//The tick function, we tick dasher in it and update the screen size for dasher
+void SDasherWidget::Tick(const FGeometry& AllotedGeometry, const double InCurrentTime, const float InDeltaTime) {
+	//don't tick in the editor
+	if (!IsEditor) {
+		SCompoundWidget::Tick(AllotedGeometry, InCurrentTime, InDeltaTime);
+
+		DasherMainInterface->Tick(static_cast<unsigned long>(InCurrentTime * 1000.0)); //we need to provide ticks in milliseconds
+
+
+		//This probably doesn't have to be done every tick, but it does not seem to have a huge hit on performance
+        const FGeometry Geometry = GetTickSpaceGeometry();
+        const FIntPoint AbsoluteSize = Geometry.Size.IntPoint();
+		if (Width != AbsoluteSize.X || Height != AbsoluteSize.Y) {
+			Width = AbsoluteSize.X;
+			Height = AbsoluteSize.Y;
+			resize(Width, Height);
+			//tell dasher we resized the screen, but only if there's actually a screen
+			if (Width && Height) DasherMainInterface->ScreenResized(this);
+		};
+	}
+}
+
+std::pair<SDasherWidget::screenint, SDasherWidget::screenint> SDasherWidget::TextSize(CDasherScreen::Label* Label, unsigned Size)
+{
+	const FSlateFontInfo Font = FCoreStyle::GetDefaultFontStyle("Roboto", Size, FFontOutlineSettings::NoOutline); //get the font
+	const FVector2D TextSize = FontMeasureService->Measure(FString(UTF8_TO_TCHAR(Label->m_strText.c_str())), Font, 1); //get the real size of the text, using the fontmeasuring service
+	return {static_cast<screenint>(TextSize.X), static_cast<screenint>(TextSize.Y)};
+}
+
+//Double Buffers are rotated here.
+void SDasherWidget::Display() {
+	std::swap(FrontBuffer, BackBuffer);
+	BackBuffer->Empty();
+}
+
+
+//Functions for Drawing
+void SDasherWidget::DrawRectangle(Dasher::screenint x1, Dasher::screenint y1, Dasher::screenint x2, Dasher::screenint y2, int colour, int iOutlineColour, int iThickness)
+{
+	const FVector2D Top(x1, y1);
+	const FVector2D Bottom(x2, y2);
+	
+	FLinearColor RectColor;
+
+	if (ColorPalette) {
+		RectColor = FLinearColor(ColorPalette->Colors[colour].Red/255.0, ColorPalette->Colors[colour].Green / 255.0, ColorPalette->Colors[colour].Blue / 255.0);
+	}
+	else {
+		RectColor = FLinearColor::Blue;
+	}
+	
+	BackBuffer->Add(MakeUnique<FFilledRect>(Top, Bottom, RectColor));
+}
+
+void SDasherWidget::DrawString(CDasherScreen::Label* lab, screenint x1, screenint y1, unsigned int iSize, int colour) {
+	const FVector2D Pos(x1, y1);
+
+	FLinearColor TextColor;
+
+	if (ColorPalette) {
+		TextColor = FLinearColor(ColorPalette->Colors[colour].Red / 255.0, ColorPalette->Colors[colour].Green / 255.0, ColorPalette->Colors[colour].Blue / 255.0);
+	}
+	else {
+		TextColor = FLinearColor::Black;
+	}
+	
+	BackBuffer->Add(MakeUnique<FWriting>(lab, Pos, static_cast<int>(iSize), TextColor));
+}
+
+void SDasherWidget::Polyline(CDasherScreen::point* points, int number, int iwidth, int colour) {
+	
+	FLinearColor LinearColor;
+
+	if (ColorPalette) {
+		LinearColor = FLinearColor(ColorPalette->Colors[colour].Red / 255.0, ColorPalette->Colors[colour].Green / 255.0, ColorPalette->Colors[colour].Blue / 255.0);
+	}
+	else {
+		LinearColor = FLinearColor::Blue;
+	}
+
+	TArray<FVector2D> PointArray;
+	for (int i = 0; i < number; i++) {
+		FVector2D Point(points[i].x, points[i].y);
+		PointArray.Add(Point);
+	}
+	
+	BackBuffer->Add(MakeUnique<FPolyLine>(PointArray, static_cast<float>(iwidth), LinearColor));
+}
+
+//techincally polygons are just multiple polylines. Dasher doesn't actually draw polygons in our case.
+void SDasherWidget::Polygon(CDasherScreen::point* points, int number, int fillcolour, int outlinecolour, int iwidth) {
+	FLinearColor LinearColor;
+
+	if (ColorPalette) {
+		LinearColor = FLinearColor(ColorPalette->Colors[outlinecolour].Red / 255.0, ColorPalette->Colors[outlinecolour].Green / 255.0, ColorPalette->Colors[outlinecolour].Blue / 255.0);
+	}
+	else {
+		LinearColor = FLinearColor::Blue;
+	}
+
+	TArray<FVector2D> PointArray;
+	for (int i = 0; i < number; i++) {
+		FVector2D Point(points[i].x, points[i].y);
+		PointArray.Add(Point);
+	}
+	PointArray.Add(FVector2D(points[0].x, points[0].y));
+
+	BackBuffer->Add(MakeUnique<FPolyLine>(PointArray, static_cast<float>(iwidth), LinearColor));
+}
+
+//We pass through the contents of the dasher buffer
+FString SDasherWidget::GetBuffer() const
+{
+	return DasherMainInterface->GetBuffer();
+}
+
+void SDasherWidget::ResetBuffer()
+{
+	DasherMainInterface->ResetBuffer();
+}
+
+void SDasherWidget::StartTraining(FString PathToTextFile)
+{
+	DasherMainInterface->ImportTrainingFile(TCHAR_TO_UTF8(*FPaths::ConvertRelativePathToFull(PathToTextFile)));
+}
+
+// ++ We need to undefine this namespace after we finish creating the Slate widget
+#undef LOCTEXT_NAMESPACE
+
+END_SLATE_FUNCTION_BUILD_OPTIMIZATION
diff --git a/Source/Dashervr/Private/UDasherWidget.cpp b/Source/DasherVR/Private/UDasherWidget.cpp
similarity index 50%
rename from Source/Dashervr/Private/UDasherWidget.cpp
rename to Source/DasherVR/Private/UDasherWidget.cpp
index 336bf41806e30c938623b9e4e3a34f52c5accb65..4abc59cb61199f6420eb0c4f6c52babc38b51dbd 100644
--- a/Source/Dashervr/Private/UDasherWidget.cpp
+++ b/Source/DasherVR/Private/UDasherWidget.cpp
@@ -1,7 +1,6 @@
 /*
 	Adapted from JoySoftEdgeImage by Rama https://nerivec.github.io/old-ue4-wiki/pages/umg-custom-widget-components-and-render-code-usable-in-umg-designer.html
 */
-
 #include "UDasherWidget.h"
 
 //LOCTEXT
@@ -9,9 +8,6 @@
 
 /////////////////////////////////////////////////////
 // UDasherWidget
-
-
-
 UDasherWidget::UDasherWidget(const FObjectInitializer& ObjectInitializer)
 	: Super(ObjectInitializer)
 {
@@ -21,12 +17,9 @@ UDasherWidget::UDasherWidget(const FObjectInitializer& ObjectInitializer)
 //Rebuild using custom Slate Widget 
 TSharedRef<SWidget> UDasherWidget::RebuildWidget()
 {
-	if (!controller) {
-		TSharedPtr<DasherController> NewPtr(new DasherController());
-		controller = MoveTemp(NewPtr);
-	}
-	if (!DasherScreen) {
-		DasherScreen = SNew(SDasherWidget).ControllerArg(controller).height(1080).width(1920);
+	if (!DasherScreen)
+	{
+		DasherScreen = SNew(SDasherWidget).height(1080).width(1920);
 	}
 	return DasherScreen.ToSharedRef();
 }
@@ -37,6 +30,8 @@ void UDasherWidget::SynchronizeProperties()
 
 	//Check if we're in Editor
 	DasherScreen->SetEditor(IsDesignTime());
+	DasherScreen->CharacterEntered.BindLambda([this](FString Char, FString Buffer){CharacterEntered.Broadcast(Char, Buffer);});
+	DasherScreen->CharacterDeleted.BindLambda([this](FString Char, FString Buffer){CharacterDeleted.Broadcast(Char, Buffer);});
 }
 
 
@@ -49,14 +44,43 @@ void UDasherWidget::ReleaseSlateResources(bool bReleaseChildren)
 	DasherScreen.Reset();
 }
 
+FString UDasherWidget::GetBuffer()
+{
+	return DasherScreen->GetBuffer();
+}
 
-#if WITH_EDITOR
+void UDasherWidget::ResetBuffer()
+{
+	DasherScreen->ResetBuffer();
+}
+
+void UDasherWidget::StartTraining(FString PathToTextFile)
+{
+	DasherScreen->StartTraining(PathToTextFile);
+}
+
+void UDasherWidget::SetBoolParamter(FString ParameterName, bool Value)
+{
+	DasherScreen->SetBoolParamter(ParameterName, Value);
+}
 
-const FSlateBrush* UDasherWidget::GetEditorIcon()
+void UDasherWidget::SetLongParamter(FString ParameterName, int64 Value)
 {
-	return FUMGStyle::Get().GetBrush("Widget.Image");
+	DasherScreen->SetLongParamter(ParameterName, Value);
 }
 
+void UDasherWidget::SetStringParamter(FString ParameterName, FString Value)
+{
+	DasherScreen->SetStringParamter(ParameterName, Value);
+}
+
+#if WITH_EDITOR
+
+//const FSlateBrush* UDasherWidget::GetEditorIcon()
+//{
+//	return FUMGStyle::Get().GetBrush("Widget.Image");
+//}
+
 const FText UDasherWidget::GetPaletteCategory()
 {
 	return LOCTEXT("Common", "Common");
diff --git a/Source/DasherVR/Public/DasherCoreWrapper.h b/Source/DasherVR/Public/DasherCoreWrapper.h
index 214d141c1550d75051f64ea6c698df937cf00797..acf89e9705e0c98dab75c36b0f4ad2d1e16df6d3 100644
--- a/Source/DasherVR/Public/DasherCoreWrapper.h
+++ b/Source/DasherVR/Public/DasherCoreWrapper.h
@@ -4,19 +4,29 @@
 
 
 #pragma warning(push)
+
+//clang specific warnings
+#if PLATFORM_LINUX
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Woverloaded-virtual"
+#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
+#endif
+
 	THIRD_PARTY_INCLUDES_START
 	//included first to stop linker errors
 	#include "SettingsStore.h"
-	#include <Expat.h>
 	#include "AbstractXMLParser.h"
 	#include "DasherInterfaceBase.h"
 	#include "DasherScreen.h"
 	#include "DashIntfScreenMsgs.h"	
 	#include "DasherInput.h"
 	#include "UserLog.h"
-	#include "XMLSettingsStore.h"
+	#include "XmlSettingsStore.h"
 	#include "Messages.h"
 	#include "ModuleManager.h"	
 	#include "AppSettingsHeader.h"
 	THIRD_PARTY_INCLUDES_END
+#if PLATFORM_LINUX
+#pragma clang diagnostic push
+#endif
 #pragma warning(pop)
\ No newline at end of file
diff --git a/Source/Dashervr/Public/Dasher.h b/Source/DasherVR/Public/DasherInterface.h
similarity index 67%
rename from Source/Dashervr/Public/Dasher.h
rename to Source/DasherVR/Public/DasherInterface.h
index 716fc4e4ea91fe1f8ee255aae1aaf133dcad629a..80e683795ee6d1fcd42e7debd116411d9b82abba 100644
--- a/Source/Dashervr/Public/Dasher.h
+++ b/Source/DasherVR/Public/DasherInterface.h
@@ -1,73 +1,61 @@
 #pragma once
 
+#include <functional>
 
+#include "CoreMinimal.h"
 #include "DasherCoreWrapper.h"
-#include "DasherMouseInput.h"
-#include "SDasherWidget.h"
 
 class SDasherWidget;
 
-namespace Dasher {
-
-	//needed File utilities
-	class UnrealFileUtils : public CFileUtils {
-	public:
-		//Return file size on disk
-		virtual int GetFileSize(const std::string& strFileName) override;
-
-		//Open File with the filename strPattern in the project directory
-		virtual void ScanFiles(AbstractParser* parser, const std::string& strPattern) override;
-
-		//Writes into the user file 
-		virtual bool WriteUserDataFile(const std::string& filename, const std::string& strNewText, bool append) override;
-	};
-
+namespace Dasher
+{
 
 	//Just a function to Log XML errors
-	class XMLErrorDisplay : public CMessageDisplay {
+	class XMLErrorDisplay : public CMessageDisplay
+	{
 	public:
-		void Message(const std::string& strText, bool bInterrupt) override {
-			FString Message(strText.c_str());
-			UE_LOG(LogTemp, Log, TEXT("%s"), *Message);
+		void Message(const std::string& strText, bool bInterrupt) override
+		{
+			UE_LOG(LogTemp, Log, TEXT("%s"), UTF8_TO_TCHAR(strText.c_str()));
 		}
 	};
 
-
-
 	//Implementation of abstract class CDashIntfScreenMsgs
-
-	class  CDasher : public CDashIntfScreenMsgs {
+	class  DasherInterface : public CDashIntfScreenMsgs
+	{
 	public:
 
 		//Might need empty constructor+ init method
-		CDasher(CSettingsStore* settings, UnrealFileUtils* fileUtils);
-		~CDasher(void) {}
+		DasherInterface(CSettingsStore* settings);
+		~DasherInterface(void) {}
 		/*void Main();*/
 
 		//Subclasses should return the contents of (the specified subrange of) the edit buffer
 		virtual std::string GetContext(unsigned int iStart, unsigned int iLength) override;
-		/// Subclasses should return character, word, sentence, ... at current text cursor position.
+
+        /// Subclasses should return character, word, sentence, ... at current text cursor position.
 		/// For character around cursor decision is arbitrary. Let's settle for character before cursor.
 		/// TODO. Consistently name functions dealing with dasher context, versus functions dealing with editor text.
 		/// I.E. GetAllContext should be named GetAllTtext
 		virtual std::string GetTextAroundCursor(Dasher::CControlManager::EditDistance) override;
+
+		
 		///Called to execute a control-mode "move" command.
 		///\param bForwards true to move forwards (right), false for backwards
 		///\param dist how far to move: character, word, line, file. (Usually defined
 		/// by OS, e.g. for non-european languages)
 		///\return the offset, into the edit buffer of the cursor *after* the move.
-
 		virtual unsigned int ctrlMove(bool bForwards, Dasher::CControlManager::EditDistance dist) override;
+
+		
 		///Called to execute a control-mode "delete" command.
 		///\param bForwards true to delete forwards (right), false for backwards
 		///\param dist how much to delete: character, word, line, file. (Usually defined
 		/// by OS, e.g. for non-european languages)
 		///\return the offset, into the edit buffer, of the cursor *after* the delete
 		/// (for forwards deletion, this will be the same as the offset *before
-
-		
-
 		virtual unsigned int ctrlDelete(bool bForwards, Dasher::CControlManager::EditDistance dist) override;
+		
 		///Clears all written text from edit buffer and rebuilds the model. The default
 		/// implementation does this using the control mode editDelete mechanism
 		/// (one call forward, one back), followed by a call to SetBuffer(0). Subclasses
@@ -82,31 +70,41 @@ namespace Dasher {
 
 		/// Subclasses should return the length of whole text. In letters, not bytes.
 		virtual int GetAllContextLenght() override { return Buffer.Len(); }
+		
 		//tick function 
-		void Tick(unsigned int i);
+		void Tick(unsigned long time);
+		
 		// set the screen, needed for maximum spaghetti, to make changeScreen accessible to the outside aka SDasherWidget
 		virtual void SetScreen(SDasherWidget* screen);
+		//Sets the Training Filename
+		virtual void ImportTrainingFile(std::string filename);
 
-		virtual void SetTraining(std::string filename);
-
+		//return Buffer
+		FString GetBuffer() const;
+		//delete Buffer
+		void ResetBuffer();
 
-		//Function to register the widget with the mouseInput
-		bool RegisterWidget(SDasherWidget* screen);
+		void SetCharEnteredCallback(std::function<void(FString, FString)> Callback)
+		{
+			CharacterEntered = Callback;
+		}
 
-	protected:
-		//virtual void operator()(const std::string& strText) {}
+		void SetCharDeletedCallback(std::function<void(FString, FString)> Callback)
+		{
+			CharacterDeleted = Callback;
+		}
 
 	private:
 		//Cursor position in the output buffer
 		int Cursor = 0;
 		//Output Buffer
 		FString Buffer = "";
-		//Needed to Register Models with DasherCore, currently only used to Register the Mouse Input, also sets MouseInput as default.
-		void CreateModules() override;
 		//Dasher Settings Object
 		CSettingsStore* settings;
-		//MouseInput
-		CDasherMouseInput* Input;
+
+		//Callbacks
+		std::function<void(FString, FString)> CharacterEntered = nullptr;
+		std::function<void(FString, FString)> CharacterDeleted = nullptr;  
 	};
 
 }
\ No newline at end of file
diff --git a/Source/DasherVR/Public/DasherVR.h b/Source/DasherVR/Public/DasherVR.h
index c0026a94afa477abc0770b6659005518450a7c7e..5aa2e2597631e06f77ab8e30ca5af57361e6da16 100644
--- a/Source/DasherVR/Public/DasherVR.h
+++ b/Source/DasherVR/Public/DasherVR.h
@@ -2,7 +2,6 @@
 #pragma once
 
 #include "CoreMinimal.h"
-#include "Modules/ModuleManager.h"
 #include "DasherCoreWrapper.h"
 
 class FDasherVRModule : public IModuleInterface
diff --git a/Source/DasherVR/Public/FileLogger.h b/Source/DasherVR/Public/FileLogger.h
deleted file mode 100644
index c6e3c4e90113e348e258ecd532d3031caabd5cc5..0000000000000000000000000000000000000000
--- a/Source/DasherVR/Public/FileLogger.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// FileLogger, mostly directly taken from the original File Logger
-#ifndef __FileLogger_h__
-#define  __FileLogger_h__
-
-enum eLogLevel
-{
-    logDEBUG = 0,
-    logNORMAL = 1,
-    logCRITICAL = 2
-};
-// ----------------------------------------------UNREAL CODE---------------------------------------------------------------
-//Unreal engine log categories matching eLogLevel
-// ----------------------------------------------UNREAL CODE---------------------------------------------------------------
-
-// Bit mask options that are used when we construct object
-enum eFileLoggerOptions
-{
-    logFunctionEntryExit    = 1,
-    logTimeStamp            = 2,
-    logDateStamp            = 4,
-    logDeleteOldFile        = 8,
-    logFunctionTiming       = 16,
-    logOutputScreen         = 32
-};
-
-#include "Misc/Paths.h"
-#include "Misc/DateTime.h"
-#include <string>
-
-/// \ingroup Logging
-/// @{
-class CFileLogger
-{
-public:
-    CFileLogger(const std::string& strFilenamePath, eLogLevel level, int optionsMask);
-    ~CFileLogger();
-
-
-    void Log(const char* szText, eLogLevel iLogLevel = logNORMAL, ...);         // Logs a string to our file if it meets or exceeds our logging level
-    void LogDebug(const char* szText, ...);                                     // Logs debug level messages
-    void LogNormal(const char* szText, ...);                                    // Logs normal level messages    
-    void LogCritical(const char* szText, ...);                                  // Logs critical level messages
-
-    // Versions that exists so we can pass in STL strings
-    void Log(const std::string strText, eLogLevel iLogLevel = logNORMAL, ...);        // Logs a string to our file if it meets or exceeds our logging level
-    
-    void SetFilename(const std::string& strFilename);
-    void SetLogLevel(const eLogLevel newLevel);
-    void SetFunctionLogging(bool functionLogging);
-
-    void LogFunctionEntry(const std::string& strFunctionName);                  // Used by FunctionLogger to log entry to a function
-    void LogFunctionExit(const std::string& strFunctionName);                   // Used by FunctionLogger to log exit from a function
-    bool GetFunctionTiming();
-    
-    static std::string GetFullFilenamePath(std::string strFilename);
-
-private:
-    std::string     m_strFilenamePath;          // Filename and path of our output file	
-    eLogLevel       m_iLogLevel;                // What level of logging this object should write
-    bool            m_bFunctionLogging;         // Whether we will log function entry/exit 
-    bool            m_bTimeStamp;               // Whether we log the time
-    bool            m_bDateStamp;               // Whether we log the date
-    bool            m_bFunctionTiming;          // Whether our FunctionLogger objects should do performance timing
-    bool            m_bDeleteOldFile;           // Should we delete a previous instance of the log file
-    bool            m_bOutputScreen;            // Should we output to stdout as well as the file
-    int             m_iFunctionIndentLevel;     // How many nested calls to FunctionLogger we have
-
-
-    std::string     GetIndentedString(const std::string& strText);
-    std::string     GetTimeDateStamp();
-
-
-
-};
-
-// Helper class, you can create CFunctionLogger objects at 
-// the top of a function and it will log its entry and exit.
-class CFunctionLogger
-{
-public:
-    CFunctionLogger(const std::string& strFunctionName, CFileLogger* pLogger);
-    ~CFunctionLogger();
-
-private:
-    std::string     m_strFunctionName;          // Name of the function this object is logging
-    CFileLogger*    m_pLogger;                  // Pointer to the logging object to use 
-
-};
-/// @}
-#endif
diff --git a/Source/DasherVR/Public/SDasherWidget.h b/Source/DasherVR/Public/SDasherWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..2a2be8a4d4464b47383ef8e8d584f7a8bed6146f
--- /dev/null
+++ b/Source/DasherVR/Public/SDasherWidget.h
@@ -0,0 +1,163 @@
+#pragma once
+#include "CoreMinimal.h"
+#include "Widgets/SCompoundWidget.h"
+#include "DasherCoreWrapper.h"
+#include <utility>
+
+#include "DasherInterface.h"
+#include "Math/Vector2D.h"
+#include "Fonts/FontMeasure.h"
+
+//using namespace Dasher;
+
+
+
+//Structs to hold the elements making up the UI
+
+enum GeometryType
+{
+	Rectangle,
+	Writing,
+	PolyLine
+};
+
+struct DasherDrawGeometry
+{
+	GeometryType Type;
+	DasherDrawGeometry(GeometryType Type) : Type(Type) {}
+	virtual ~DasherDrawGeometry() {};
+};
+
+struct FFilledRect : DasherDrawGeometry{
+	FVector2D top;
+	FVector2D bottom;
+	FLinearColor color;
+
+	FFilledRect(FVector2D Top, FVector2D Bottom, FLinearColor Color) : DasherDrawGeometry(Rectangle), top(Top), bottom(Bottom), color(Color) {}
+};
+
+struct FWriting : DasherDrawGeometry{
+	Dasher::CDasherScreen::Label *label;
+	FVector2D pos;
+	int size;
+	FLinearColor color;
+
+	FWriting(Dasher::CDasherScreen::Label *Label, FVector2D Pos, int Size, FLinearColor Color) : DasherDrawGeometry(Writing), label(Label), pos(Pos), size(Size), color(Color)  {}
+};
+
+struct FPolyLine : DasherDrawGeometry{
+	TArray<FVector2D> points;
+	float linewidth;
+	FLinearColor color;
+
+	FPolyLine(TArray<FVector2D> Points, float LineWidth, FLinearColor Color): DasherDrawGeometry(PolyLine), points(Points), linewidth(LineWidth), color(Color)  {}
+};
+
+DECLARE_MULTICAST_DELEGATE(FDasherMouseUpDelegate);
+DECLARE_MULTICAST_DELEGATE(FDasherMouseDownDelegate);
+DECLARE_DELEGATE_TwoParams(FBufferManiputlationDelegate, FString, FString);
+
+
+class DASHERVR_API SDasherWidget : public SCompoundWidget, public Dasher::CDasherScreen, public Dasher::CScreenCoordInput
+{
+public:
+
+	SLATE_BEGIN_ARGS(SDasherWidget)
+	{}
+	
+	SLATE_ARGUMENT(int, height);
+	SLATE_ARGUMENT(int, width);
+	SLATE_END_ARGS()
+
+	
+
+	typedef Dasher::screenint screenint;
+	
+	SDasherWidget(): CDasherScreen(0,0), CScreenCoordInput(0, _("Mouse Input")) {}
+
+	// Constructs this widget with InArgs. Needed for every widget. Builds this widget and any of its children
+	void Construct(const FArguments& InArgs);
+	void SetBoolParamter(FString ParameterName, bool Value);
+	void SetLongParamter(FString ParameterName, int64 Value);
+	void SetStringParamter(FString ParameterName, FString Value);
+
+	virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
+
+	//set of functions inherited from Dasherscreen used for displaying, see DasherScreen for further info
+
+	virtual void SetColourScheme(const Dasher::CColourIO::ColourInfo* pcolours) override;
+
+    virtual std::pair<screenint, screenint> TextSize(CDasherScreen::Label* Label, unsigned int Size) override;
+
+	virtual void DrawString(CDasherScreen::Label *label, screenint x1, screenint y1, unsigned int size, int colour) override;
+
+	virtual void DrawRectangle(Dasher::screenint x1, Dasher::screenint y1, Dasher::screenint x2, Dasher::screenint y2, int colour, int ioutlinecolour, int ithickness) override;
+
+	virtual void DrawCircle(screenint icx, screenint icy, screenint ir, int ifillcolour, int ilinecolour, int ithickness) override {} //we don't really need to draw circles, so it's not implemented
+
+	virtual void Polyline(CDasherScreen::point* points, int number, int iwidth, int colour) override;
+
+	virtual void Polygon(CDasherScreen::point* points, int number, int fillcolour, int outlinecolour, int iwidth) override;
+
+	virtual void Display() override;
+
+	virtual void SendMarker(int imarker) override {}
+
+	virtual bool IsPointVisible(screenint x, screenint y) override { return true; }
+
+	virtual bool MultiSizeFonts() override {return true;}
+
+	//Pass-me-down returning Buffer
+	FString GetBuffer() const;
+	void ResetBuffer();
+
+	void StartTraining(FString PathToTextFile);
+
+	//Tick function inherited from SCompoundWidget
+	virtual void Tick(const FGeometry& AllotedGeometry, const double InCurrentTime, const float InDeltaTime) override;
+
+	//Function to set if the widget is in editor or not
+	void SetEditor(bool EditorState);
+
+	//mouse handling function
+	FReply HandleMouseMoveEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+	FReply HandleMouseDownEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+	FReply HandleMouseUpEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+    FReply HandleMouseDoubleClickEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+
+	virtual bool SupportsKeyboardFocus() const override {return true;};
+
+	virtual bool GetScreenCoords(screenint& iX, screenint& iY, Dasher::CDasherView* pView) override;
+
+	FVector2D GetMousePosition();
+	
+	FDasherMouseUpDelegate MouseUpListeners;
+	FDasherMouseUpDelegate MouseDownListeners;
+	FBufferManiputlationDelegate CharacterEntered;
+	FBufferManiputlationDelegate CharacterDeleted;
+
+private:
+	
+	//Buffers to store geometry that is drawn in OnPaint
+	TArray<TUniquePtr<DasherDrawGeometry>> GeometryBufferA;
+	TArray<TUniquePtr<DasherDrawGeometry>> GeometryBufferB;
+	TArray<TUniquePtr<DasherDrawGeometry>>* BackBuffer = &GeometryBufferA;
+	TArray<TUniquePtr<DasherDrawGeometry>>* FrontBuffer = &GeometryBufferB;
+	
+	int Height;
+	int Width;
+	bool HasBeenPainted = false;
+	FVector2D MousePosition;
+
+	//are we in the Editor?
+	bool IsEditor = true;
+
+	//set up the font measure service to ... measure fonts.
+	TSharedPtr<FSlateFontMeasure> FontMeasureService;
+
+protected:
+	// stores color information 
+	const Dasher::CColourIO::ColourInfo* ColorPalette = nullptr;
+	TSharedPtr<Dasher::DasherInterface> DasherMainInterface;
+};
+
diff --git a/Source/DasherVR/Public/UDasherWidget.h b/Source/DasherVR/Public/UDasherWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..6c709cc2d7149f5607b0fbfd8ecae00424be8cba
--- /dev/null
+++ b/Source/DasherVR/Public/UDasherWidget.h
@@ -0,0 +1,63 @@
+#pragma once
+
+#include "CoreMinimal.h"
+
+//~~~~~~~~~~~~ UMG ~~~~~~~~~~~~~~~~
+#include "Runtime/UMG/Public/UMG.h"
+#include "Runtime/UMG/Public/UMGStyle.h"
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+//Custom Slate Element
+#include "SDasherWidget.h"
+#include "UDasherWidget.generated.h"
+
+
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FCharManipulatedEvent, FString, Char, FString, Buffer);
+
+UCLASS(BlueprintType)
+class DASHERVR_API UDasherWidget : public UWidget
+{
+	GENERATED_UCLASS_BODY()
+
+private:
+	//Custom Slate Element 
+	TSharedPtr<SDasherWidget> DasherScreen;
+
+public:
+	//Functions to get and reset the Dasher Text Buffer
+	UFUNCTION(BlueprintPure) FString GetBuffer();
+
+	UFUNCTION(BlueprintCallable) void ResetBuffer();
+
+	UFUNCTION(BlueprintCallable) void StartTraining(FString PathToTextFile);
+
+	UFUNCTION(BlueprintCallable) void SetBoolParamter(FString ParameterName, bool Value);
+	UFUNCTION(BlueprintCallable) void SetLongParamter(FString ParameterName, int64 Value);
+	UFUNCTION(BlueprintCallable) void SetStringParamter(FString ParameterName, FString Value);
+
+	UPROPERTY(BlueprintAssignable) FCharManipulatedEvent CharacterEntered;
+	UPROPERTY(BlueprintAssignable) FCharManipulatedEvent CharacterDeleted;
+
+public:
+
+	// UWidget interface
+	virtual void SynchronizeProperties() override;
+	// End of UWidget interface
+
+	// UVisual interface
+	virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+	// End of UVisual interface
+
+#if WITH_EDITOR
+	// UWidget interface
+	//virtual const FSlateBrush* GetEditorIcon() override;
+	virtual const FText GetPaletteCategory() override;
+	// End UWidget interface
+#endif
+
+protected:
+	// UWidget interface
+	virtual TSharedRef<SWidget> RebuildWidget() override;
+	// End of UWidget interface
+	
+};
\ No newline at end of file
diff --git a/Source/Dashervr/Private/Dasher.cpp b/Source/Dashervr/Private/Dasher.cpp
deleted file mode 100644
index 68969c23ebdc543db9b06bbd76cde7c2c7860658..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/Dasher.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-#include "Dasher.h"
-#include "DasherMouseInput.h"
-#include "Misc/FileHelper.h"
-
-
-
-namespace Dasher {
-
-
-	//Unreal File Utils Implementations
-	//
-
-	int UnrealFileUtils::GetFileSize(const std::string& strFileName)
-	{
-		//Not sure if there's a better way to do this. Sadly the Unreal internal function to get file size is also named GetFileSize
-		FString File = "";
-		FFileHelper::LoadFileToString(File, UTF8_TO_TCHAR(strFileName.c_str()));
-		return File.Len();
-	}
-
-	//This doesn't actually Parse all files with the pattern, just the file with exactly the name strPattern in the Project directory
-	void UnrealFileUtils::ScanFiles(AbstractParser* parser, const std::string& strPattern)
-	{ 
-		const FString path = FPaths::ConvertRelativePathToFull(FPaths::Combine(FPaths::ProjectDir(), UTF8_TO_TCHAR(strPattern.c_str())));
-		parser->ParseFile(TCHAR_TO_UTF8(*path), true);
-	}
-
-	bool UnrealFileUtils::WriteUserDataFile(const std::string& filename, const std::string& strNewText, bool append)
-	{
-		if (strNewText.length() == 0)
-		{
-			return true;
-		}
-		return FFileHelper::SaveStringToFile(UTF8_TO_TCHAR(filename.c_str()), UTF8_TO_TCHAR(filename.c_str()), FFileHelper::EEncodingOptions::AutoDetect, &IFileManager::Get(), FILEWRITE_Append); //Will Write to a new File if none exists, making the append option obsolete
-	}
-
-	//CDasher Implementations
-	//
-
-
-	//Constructor
-	CDasher::CDasher(CSettingsStore * settings, UnrealFileUtils * fileUtils) : CDashIntfScreenMsgs(settings, fileUtils) {
-	}
-
-	void CDasher::CreateModules() {
-		CDasherInterfaceBase::CreateModules();
-		const auto m_pMouseInput = static_cast<CDasherMouseInput*>(RegisterModule(new CDasherMouseInput()));
-		SetDefaultInputDevice(m_pMouseInput);
-		Input = m_pMouseInput;
-	}
-
-	void CDasher::SetTraining(std::string filename) {
-		ImportTrainingText(filename);
-	}
-
-	std::string CDasher::GetContext(unsigned int iStart, unsigned int iLength) {
-		const FString output = Buffer.Mid(iStart, iLength);
-		return TCHAR_TO_UTF8(*output);		
-		
-	}
-
-	//The next functions operate on the buffer
-
-	//For now can only return one character around the cursor
-	std::string CDasher::GetTextAroundCursor(Dasher::CControlManager::EditDistance iDist) {		
-		if (Buffer.Len()>Cursor) {
-			if (iDist == Dasher::CControlManager::EditDistance::EDIT_CHAR) {
-				FString output = Buffer.Mid(Cursor, 1);
-				return TCHAR_TO_UTF8(*output);
-			}
-			else {
-				UE_LOG(LogTemp, Error, TEXT("This is not Implemented"));
-				return std::string("tried to get more than just a char");
-			}
-		}
-		UE_LOG(LogTemp, Error, TEXT("Cursor out of bounds"));
-		return std::string("Cursor out of bounds");
-	}
-
-	unsigned int CDasher::ctrlMove(bool bForwards, Dasher::CControlManager::EditDistance dist) {
-		if (dist == Dasher::CControlManager::EditDistance::EDIT_CHAR) {
-			if (bForwards) Cursor++;
-			else Cursor--;
-		}
-		return Cursor;
-	}
-
-	unsigned int CDasher::ctrlDelete(bool bForwards, Dasher::CControlManager::EditDistance dist) {
-
-		if (dist == Dasher::CControlManager::EditDistance::EDIT_CHAR) {
-			
-			Buffer.RemoveAt(Cursor-(bForwards ? 0 : 1));
-		}
-		if(!bForwards)Cursor--;
-		return Cursor;		
-	}
-
-
-	//currently outputs as a debug message
-	void CDasher::editOutput(const std::string& strText, CDasherNode* pNode) {
-		if ((Buffer.GetAllocatedSize() - strText.length() - Buffer.Len())< 0) {
-			Buffer.Reserve(Buffer.GetAllocatedSize() * 2);
-		}
-		Buffer.Append(UTF8_TO_TCHAR(strText.c_str()));
-		Cursor++;
-		GEngine->AddOnScreenDebugMessage(INDEX_NONE, 1.0f, FColor::Yellow, Buffer);
-		CDasherInterfaceBase::editOutput(strText, pNode);
-	}
-
-
-	std::string CDasher::GetAllContext() {
-		FString output = Buffer;
-		Buffer.Empty();
-		return std::string(TCHAR_TO_UTF8(*output));
-	}
-
-
-	void CDasher::editDelete(const std::string& strText, CDasherNode* pNode) {
-		FString text(strText.c_str());
-		Buffer.RemoveFromEnd(text);
-		CDasherInterfaceBase::editDelete(strText, pNode);
-	}
-
-
-	void CDasher::Tick(unsigned int time) {
-		KeyDown(time, 100);
-		NewFrame(time, true);
-	}
-
-	void CDasher::SetScreen(SDasherWidget* screen) {
-		//set the widget as screen that dasher will be displayed on
-		ChangeScreen(screen);
-		//set up stuff that can't be done in the constructor (for explanation see comments in DasherInterfaceBase.h etc. in DasherCore)
-		Realize(0);
-		
-	}
-
-
-	bool CDasher::RegisterWidget(SDasherWidget* Widget){
-		if (Input)
-		{
-			Input->RegisterWidget(Widget);
-			return true;
-		}else
-		{
-			return false;
-		}
-	}
-}
diff --git a/Source/Dashervr/Private/DasherController.cpp b/Source/Dashervr/Private/DasherController.cpp
deleted file mode 100644
index 56c856ca14d240d0c0eeb599e0a2460a9225b758..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/DasherController.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-
-#include "DasherController.h"
-
-DasherController::DasherController()
-{
-	Controller = nullptr;
-}
-
-void DasherController::ControllerInit(Dasher::CDasher* controllerArg)
-{	
-	if (controllerArg != nullptr) {
-		Controller = controllerArg;
-	}
-	else {
-		UE_LOG(LogTemp, Error, TEXT("Controller can't be Null"));
-	}
-	FString path = FPaths::ConvertRelativePathToFull(FPaths::Combine(FPaths::ProjectDir(), TEXT("training_english_GB.txt")));
-	Controller->SetTraining(TCHAR_TO_UTF8(*path));
-
-}
-
-void DasherController::SetScreen(SDasherWidget* screen)
-{
-	if (Controller) {
-		Controller->SetScreen(screen);
-	}
-	else {
-		UE_LOG(LogTemp, Error, TEXT("tried setting screeen before having a canvas"));
-	}
-
-}
-
-
-void DasherController::Tick(unsigned int time) {
-	if (Controller) {
-		Controller->Tick(time);
-	}
-	else {
-		UE_LOG(LogTemp, Error, TEXT("tried ticking screeen before having a canvas"));
-	}
-}
-
-
-void DasherController::SetOffset(int iOffset, bool bForce) 
-{
-	Controller->SetOffset(iOffset, bForce);
-}
-
-
-void DasherController::SetBuffer(int iOffset) 
-{
-	Controller->SetBuffer(iOffset);
-}
-
-
-void DasherController::ScreenResized(SDasherWidget* screen) 
-{
-	Controller->ScreenResized(screen);
-	
-}
diff --git a/Source/Dashervr/Private/DasherGameMode.cpp b/Source/Dashervr/Private/DasherGameMode.cpp
deleted file mode 100644
index d6275110d74a3a8ee8527c485daa7e4140aaed08..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/DasherGameMode.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-
-#include "DasherGameMode.h"
-
diff --git a/Source/Dashervr/Private/DasherMouseInput.cpp b/Source/Dashervr/Private/DasherMouseInput.cpp
deleted file mode 100644
index 8e51fd76ea5052ab447c957cc428d001280f7aa3..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/DasherMouseInput.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "DasherMouseInput.h"
-
-#include "Blueprint/SlateBlueprintLibrary.h"
-#include "Runtime/Engine/Classes/Kismet/GameplayStatics.h"
-#include "Runtime/Engine/Classes/GameFramework/PlayerController.h"
-#include "Blueprint/WidgetLayoutLibrary.h"
-#include "Blueprint/SlateBlueprintLibrary.h"
-#include "Layout/Geometry.h"
-
-//taken from https://old.reddit.com/r/unrealengine/comments/fxnoqh/how_to_get_normalized_mouse_location_in_widget/
-bool GetNormalizedMousePositionInGeometry(UObject* WorldContextObject, FGeometry Geometry, FVector2D& Position)
-{
-	FVector2D pixelPosition;
-	FVector2D viewportMinPosition;
-	FVector2D viewportMaxPosition;
-	
-
-	// Get the top left and bottom right viewport positions
-	USlateBlueprintLibrary::LocalToViewport(WorldContextObject, Geometry, FVector2D(0, 0), pixelPosition, viewportMinPosition);
-	USlateBlueprintLibrary::LocalToViewport(WorldContextObject, Geometry, Geometry.GetLocalSize(), pixelPosition, viewportMaxPosition);
-
-	// Get the mouse's current position in the viewport
-	FVector2D mousePosition = UWidgetLayoutLibrary::GetMousePositionOnViewport(WorldContextObject);
-
-	// Determine where the mouse is relative to the widget geometry
-	Position = (mousePosition - viewportMinPosition) / (viewportMaxPosition - viewportMinPosition);
-
-	// Calculate if the mouse is inside the geometry or not
-	return FMath::Min(Position.X, Position.Y) >= 0.f && FMath::Max(Position.X, Position.Y) <= 1.f;
-}
-
-bool Dasher::CDasherMouseInput::GetScreenCoords(screenint& iX, screenint& iY, CDasherView* pView) {
-
-	if (!GEngine) {
-		UE_LOG(LogTemp, Fatal, TEXT("GEngine Undefined"));
-
-	}
-	UWorld* World = GEngine->GetWorldContexts()[0].World();
-	float X = 0;
-	float Y = 0;	
-	FVector2D position = Widget->getMousePosition();
-	//bool result = GetNormalizedMousePositionInGeometry(WorldContext, Widget->GetPaintSpaceGeometry(), position);
-	//position = UWidgetLayoutLibrary::GetMousePositionOnViewport(World) * UWidgetLayoutLibrary::GetViewportScale(World);
-	/*if(!result)
-	{
-		UE_LOG(LogTemp, Warning, TEXT("Cursor Outside Widget"));
-		iX = 0;
-		iY = 0;
-		return false;
-	}*/
-	float PosX = position.X; //* Widget->GetWidth();
-	float PosY = position.Y; //* Widget->GetHeight();
-	
-	iX = position.X;
-	iY = position.Y;
-
-	return true;
-}
-
-void Dasher::CDasherMouseInput::RegisterWidget(SDasherWidget* WidgetInput){
-	Widget = WidgetInput;
-	if (!GEngine) {
-		UE_LOG(LogTemp, Fatal, TEXT("GEngine Undefined"));
-
-	}
-	WorldContext = GEngine->GetWorldContexts()[0].World();
-}
-
diff --git a/Source/Dashervr/Private/SDasherWidget.cpp b/Source/Dashervr/Private/SDasherWidget.cpp
deleted file mode 100644
index 7f82e2751a01f73f52995254a5e9b455c71f9d2d..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/SDasherWidget.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-#include "SDasherWidget.h"
-#include "SlateOptMacros.h"
-#include "Styling/CoreStyle.h"
-#include "Brushes/SlateColorBrush.h"
-#include "Rendering/DrawElements.h"
-#include "Dasher.h"
-#include <tuple>
-
-#include "Components/SlateWrapperTypes.h"
-
-BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
-
-
-// ++ This is needed in order to use the localization macro LOCTEXT
-#define LOCTEXT_NAMESPACE "SStandardSlateWidget"
-
-
-//Set the state if we're in the editor or not.
-void SDasherWidget::SetEditor(bool EditorState)
-{
-
-	IsEditor = EditorState;
-}
-
-
-FReply SDasherWidget::HandleMouseMoveEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent)
-{
-	mouseposition = MouseEvent.GetScreenSpacePosition();
-	return FReply::Handled();
-}
-
-
-FVector2D SDasherWidget::getMousePosition()
-{
-	return mouseposition;
-}
-
-void SDasherWidget::Construct(const FArguments& InArgs)
-{	
-
-	width = InArgs._width;
-	height = InArgs._height;	
-
-	//Initial resize, needed for setup
-	resize(width, height);
-	
-	//initialize the font measuring service.
-	FontMeasureService = FSlateApplication::Get().GetRenderer()->GetFontMeasureService();
-
-	//Setting up Dasher
-	static Dasher::UnrealFileUtils fileUtils;
-	static Dasher::XMLErrorDisplay display;
-	auto settings = new Dasher::XmlSettingsStore("test.xml", &fileUtils, &display);
-	settings->Load();
-	settings->Save();
-	//settings->SetLongParameter(APP_LP_STYLE, APP_STYLE_FULLSCREEN);
-
-	auto m_pInterface = new Dasher::CDasher(settings, &fileUtils);
-	if (InArgs._ControllerArg != NULL) {
-		Controller = InArgs._ControllerArg;
-		Controller->ControllerInit(m_pInterface);
-		//needed for initialisation
-		Controller->SetScreen(this);
-		Controller->SetBuffer(0);
-		//change dasher parameters
-		m_pInterface->SetBoolParameter(BP_AUTO_SPEEDCONTROL, false);
-		m_pInterface->SetLongParameter(LP_MAX_BITRATE, 300);
-		m_pInterface->RegisterWidget(this);
-	}
-	SetOnMouseMove(FPointerEventHandler::CreateLambda([this](const FGeometry& Geometry, const FPointerEvent& MouseEvent) {return HandleMouseMoveEvent(Geometry, MouseEvent) ; }));
-	//You could add Slate Code here for child slots etc.
-
-}
-
-
-//Set the colour Scheme for dasher
-void SDasherWidget::SetColourScheme(const Dasher::CColourIO::ColourInfo* pcolours) {
-	m_pColours = pcolours;
-}
-
-
-//Utility function: returns a rectangle given by corner coordinates in size+transformation tuple
-std::tuple<FVector2D, FSlateLayoutTransform> GetTransform(int x1, int y1, int x2, int y2) {
-	FVector2D size(abs(x1 - x2), abs(y1 - y2));
-	FVector2D offset(x1, y1);
-	return std::make_pair(size, FSlateLayoutTransform(1, offset));
-}
-
-
-//paints our stuff, then lets compoundwidget draw its stuff
-//This draws from bottom to top rectangles->lines->labels, this is enough for our use, but for more complex scenarios a proper layering system might have to be implemented
-int32 SDasherWidget::OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const
-{
-	//this doesn't draw anything red, we just need a brush. Could probably find a better "empty" brush
-	auto MyBrush = FSlateColorBrush(FColor::Red);
-	
-	//iterate over rectangles
-	for (FFilledRect obj : RectanglesOutBuffer) {
-		FVector2D size;
-		FSlateLayoutTransform transform;
-		tie (size, transform) = GetTransform(obj.top.X, obj.top.Y, obj.bottom.X, obj.bottom.Y);	 //Get the location where the rectangles should be
-		FSlateDrawElement::MakeBox(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(size, transform), &MyBrush, ESlateDrawEffect::None, obj.color); //actually adds the box to the geometry
-	}
-
-	//iterate over lines
-	for (FPolyLine obj : PolyLineOutBuffer) {
-		FSlateDrawElement::MakeLines(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(), obj.points, ESlateDrawEffect::None, obj.color, true, obj.linewidth);
-	}
-
-	//iterate over text
-	for (FWriting obj : BoxlabelsOutBuffer) {
-		FString text(obj.label->m_strText.c_str());
-		auto font = FCoreStyle::GetDefaultFontStyle("Robot", obj.size, FFontOutlineSettings::NoOutline); //get the font, we're using the default font for now
-		FVector2D textsize	= FontMeasureService->Measure(text, font, 1); //get the real size of the text, using the fontmeasuring service
-		FSlateDrawElement::MakeText(OutDrawElements, LayerId++, AllottedGeometry.ToPaintGeometry(FVector2D(obj.pos.X, obj.pos.Y + textsize.Y), FVector2D(1,1)), text , font, ESlateDrawEffect::None, FLinearColor::Black); //Set the text colour to black for better contrast
-	}
-
-	return SCompoundWidget::OnPaint(Args, AllottedGeometry, MyClippingRect, OutDrawElements, LayerId, InWidgetStyle,  bParentEnabled); //call the parent onPaint
-}
-
-
-void SDasherWidget::Tick(const FGeometry& AllotedGeometry, const double InCurrentTime, const float InDeltaTime) {
-	if (!IsEditor) { //don't tick in the editor
-		SCompoundWidget::Tick(AllotedGeometry, InCurrentTime, InDeltaTime);
-		if (Controller.IsValid()) {
-			Controller->Tick(FDateTime::Now().ToUnixTimestamp());
-		}
-
-		//This probably doesn't have to be done every tick, but it does not seem to have a huge hit on performance
-		auto geometry = GetCachedGeometry();
-		auto absoluteSize = geometry.GetLocalSize();
-		int x = (int)absoluteSize.X;
-		int y = (int)absoluteSize.Y;
-		if (width != x || height != y) {
-			width = x;
-			height = y;
-			resize(width, height);
-			//tell dasher we resized the screen, but only if there's actually a screen
-			if (width && height) Controller->ScreenResized(this);
-		};
-	}
-}
-
-
-Dasher::CDasherScreen::Label* SDasherWidget::MakeLabel(const std::string& strtext, unsigned int iwrapsize) {
-	return  CDasherScreen::MakeLabel(strtext);
-}
-
-
-
-
-void SDasherWidget::Display() {
-	//This could be generalized
-
-	//Swap buffers to ensure rectangles are drawn once. Buffers for rectangles
-	RectanglesOutBuffer.Empty();
-	RectanglesOutBuffer = RectanglesInBuffer;
-	RectanglesInBuffer.Empty();
-	
-	//Buffers for Labels
-	BoxlabelsOutBuffer.Empty();
-	BoxlabelsOutBuffer = BoxlabelsInBuffer;
-	BoxlabelsInBuffer.Empty();
-
-	//Buffers
-	PolyLineOutBuffer.Empty();
-	PolyLineOutBuffer = PolyLineInBuffer;
-	PolyLineInBuffer.Empty();
-}
-
-
-//Functions for Drawing
-
-
-void SDasherWidget::DrawRectangle(Dasher::screenint x1, Dasher::screenint y1, Dasher::screenint x2, Dasher::screenint y2, int colour, int iOutlineColour, int iThickness)
-{
-	FVector2D top(x1, y1);
-	FVector2D bottom(x2, y2);
-	
-	FLinearColor rectcolour;
-
-	if (m_pColours) {
-		rectcolour = FLinearColor(m_pColours->Reds[colour]/255.0, m_pColours->Greens[colour]/255.0, m_pColours->Blues[colour]/255.0);
-	}
-	else {
-		rectcolour = FLinearColor::Blue;
-	}
-
-	FFilledRect rect = { top, bottom, rectcolour };
-	RectanglesInBuffer.Add(rect);
-
-}
-
-void SDasherWidget::DrawString(CDasherScreen::Label* lab, screenint x1, screenint y1, unsigned int iSize, int colour) {
-	FVector2D pos(x1, y1);
-
-	if (lab) {
-		UE_LOG(LogTemp, Log, TEXT("Label:%hs"),lab->m_strText.c_str());
-	}
-
-	FLinearColor textcolour;
-
-	if (m_pColours) {
-		textcolour = FLinearColor(m_pColours->Reds[colour] / 255.0, m_pColours->Greens[colour] / 255.0, m_pColours->Blues[colour] / 255.0);
-	}
-	else {
-		textcolour = FLinearColor::Blue;
-	}
-
-	const FWriting writing = { lab, pos, iSize, textcolour };
-	BoxlabelsInBuffer.Add(writing);
-}
-
-
-
-void SDasherWidget::Polyline(CDasherScreen::point* points, int number, int iwidth, int colour) {
-	
-	FLinearColor linecolour;
-
-	if (m_pColours) {
-		linecolour = FLinearColor(m_pColours->Reds[colour] / 255.0, m_pColours->Greens[colour] / 255.0, m_pColours->Blues[colour] / 255.0);
-	}
-	else {
-		linecolour = FLinearColor::Blue;
-	}
-
-	TArray<FVector2D> pointarray;
-	for (int i = 0; i < number; i++) {
-		FVector2D point(points[i].x, points[i].y);
-		pointarray.Add(point);
-	}
-
-
-	FPolyLine line = { pointarray, iwidth, linecolour };
-	PolyLineInBuffer.Add(line);
-
-}
-
-void SDasherWidget::Polygon(CDasherScreen::point* points, int number, int fillcolour, int outlinecolour, int iwidth) {
-	FLinearColor linecolour;
-
-	if (m_pColours) {
-		linecolour = FLinearColor(m_pColours->Reds[outlinecolour] / 255.0, m_pColours->Greens[outlinecolour] / 255.0, m_pColours->Blues[outlinecolour] / 255.0);
-	}
-	else {
-		linecolour = FLinearColor::Blue;
-	}
-
-	TArray<FVector2D> pointarray;
-	for (int i = 0; i < number; i++) {
-		FVector2D point(points[i].x, points[i].y);
-		pointarray.Add(point);
-	}
-	pointarray.Add(FVector2D(points[0].x, points[0].y));
-
-	FPolyLine line = { pointarray, iwidth, linecolour };
-	PolyLineInBuffer.Add(line);
-}
-
-//#TODO
-//Use OnMouseMove 
-
-// ++ We need to undefine this namespace after we finish creating the Slate widget
-#undef LOCTEXT_NAMESPACE
-
-END_SLATE_FUNCTION_BUILD_OPTIMIZATION
diff --git a/Source/Dashervr/Private/training_english_GB.txt b/Source/Dashervr/Private/training_english_GB.txt
deleted file mode 100644
index 78b76537352e4c677c123d19546a37f877732c57..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Private/training_english_GB.txt
+++ /dev/null
@@ -1,664 +0,0 @@
-hello there! Hi. 
-The Dasher Project. Dasher is an information-efficient text-entry interface, driven by natural continuous pointing gestures.
-Dasher is a competitive text-entry system wherever a full-size keyboard cannot be used - for example, (1) on a palmtop computer; (2) on a wearable computer; (3) when operating a computer one-handed, by joystick, touchscreen, trackball, or mouse; (4) when operating a computer with zero hands (i.e., by eyetracker).
-We expect the eyetracking version of Dasher to be an especially big hit, as it allows the user to write text as fast as normal handwriting.
-Dasher is fast, efficient, easy to learn, and fun to use.
-Dasher is like an arcade game: `Attack of the killer alphabets', perhaps.
-Financial Times, 5th February 2002.
-Dasher is a zooming interface. You point where you want to go, and the display zooms in wherever you point.
-The world into which you are zooming is painted with letters, so that any point you zoom in on corresponds to a piece of text.
-The more you zoom in, the longer the piece of text you have written. You choose what you write by choosing where to zoom.
-To make the interface efficient, our software uses the predictions of a language model to determine how much of the world is devoted to each piece of text.
-Probable pieces of text are given more real-estate, so they are quick and easy to select.
-Improbable pieces of text (for example, text with spelling mistakes) are given less space, so they are harder to write.
-The language model learns all the time: if you use a novel word once, it is easier to write next time.
-A big advantage of Dasher over other predictive text-entry interfaces is that it is mode-free: the user does not need to switch from a writing mode to an "accept-model-predictions" mode.
-Another advantage is that it is easy to train the model	on any writing style: simply load up an example	file, then write away!
-Imagine a library containing all possible books, ordered alphabetically on a single shelf.
-Books in which the first letter is "a" are at the left hand side.
-Books in which the first letter is "z" are at the right.
-The first book in the "a" section reads "aaaa..."; somewhere to its right are books that start "all good things must come to an end..."; a tiny bit further to the right are books that start "all good things must come to an enema...".
-When someone writes a piece of text, their choice of the text string can be viewed as a choice of a book from this library of all books - the book that contains exactly the chosen text.
-How do they choose that book? Let's imagine they want to write "all good things..."
-First, they walk into the "a" section of the library.
-There, they are confronted by books starting "aa", "ab", 
-Looking more closely at the "al" section, they can find books starting "ala", "alb",... "alz"
-By looking ever more closely at the shelf, the writer can find the book containing the text he wishes to write.
-Thus writing can be described as zooming in on an alphabetical library, steering as you go.
-This is exactly how Dasher works, except for one crucial point ...
-we alter the SIZE of the shelf space devoted to each book in proportion to the probability of the corresponding text.
-For example, not very many books start with an "x", so we devote less space to "x..." books, and more to the more plausible books, thus making it easier to find books that contain probable text.
- Tips for Novices 
-The single most important concept that a novice user needs to understand is that one should always continue inside the text written so far: to select the book that contains "all" as its first word, one does not enter the "a" section of the library, then exit the "a" section, and enter the "l" section.
-One enters the "a" section, then finds the "al" section that is within the "a" section, then enters the "all" section within the "al" section.
-The second most important idea is that what you have written depends only on where you finally end up in the library, not on how you got there; so there is no need to steer carefully on your way to your destination. You are allowed to cut corners. 
-The dasher software consists of a language-modelling module, a rendering module, and a dynamics module.
-Dasher is brought to you by the Inference Group, led by David MacKay, Cavendish Laboratory, Madingley Road, Cambridge.
-The research version of the software was developed by David Ward. The project manager is Phil Cowans. 
-The Dasher project is supported by the Gatsby charitable foundation.
-The programmer's favourite phrase is Hello how are you? - or hello world. Hi hi 
-Only the crumbliest flakiest chocolate 
-London is the capital of Paris, and Paris is the capital of Rome, and Rome -- no, THAT'S all wrong, I'm certain! By contrast, the Big Bang is a beginning that is required by the dynamical laws that govern the universe. Ask jail deputies on other matters, the jury recommended that : 1 four additional deputies be employed at the Fulton County Jail and a doctor, medical intern or extern be employed for night and weekend duty at the jail. Oh, that way madness lies. There was nothing so VERY remarkable in that; nor did Juliette think it so VERY much out of the way to hear the rabbit say to itself, `Oh dear! 
-He always waxes lyrical about his school. Far out, man! It's a different planet. The supreme court justice has a swing vote. Roe versus Wade may be overturned. The court might overturn Roe versus Wade. George Bush might put up a moderate nominee. 
-I told you so. What did I tell you? I use a Nokia phone. 
-The speaker waxed lyrical about his invention's benefits. He's mad as a hatter. As any economist could have predicted, the result of all that borrowing was inflation. Henry L. Bowden was listed on the petition as the mayor's attorney. His beard was as white as snow. `I told you butter wouldn't suit the works!' he added looking angrily at the March hare. God might have created such a warped universe, but we have no reason to think that He did. 
-Bellows made the disclosure when he asked Judge Parsons to grant his client, Alan Clements, 30, a separate trial. He gets on my wick. `And what an ignorant little girl she'll think me for asking! What does the no boundary proposal predict for the future of the universe? A glutton for punishment.
-`Perhaps it doesn't understand English,' thought Juliette; `I daresay it's a French mouse, come over with William the Conqueror.' The predictions of the no boundary proposal seem to agree with observation. All Dallas members voted with Roberts, except Rep. Bill Jones, who was absent. Take with a grain of salt. `But perhaps he can't help it,' she said to herself; `his eyes are so VERY nearly at the top of his head. 
-This view had to be modified, when Heisenberg put forward his Uncertainty Principle, which said that one could not know both the position, and the speed, accurately. Indeed, she had quite a long argument with the Lory, who at last turned sulky, and would only say, `I am older than you, and must know better'; and this Laura would not allow without knowing how old it was, and, as the Lory positively refused to tell its age, there was no more to be said. We know that General Relativity can not be quite correct on very small distances, because it is a classical theory. To be or not to be, that is the question. 
-She was a good deal frightened by this very sudden change, but she felt that there was no time to be lost, as she was shrinking rapidly; so she set to work at once to eat some of the other bit. 
-His contention was denied by several bankers, including Scott Hudson of Sherman, Gaynor B. Jones of Houston, J. B. Brady of Harlingen and Howard Cox of Austin. The girl with colitis goes by. Oh! won't she be savage if I've kept her waiting!' I have not been there myself. I didn't smell a drop of liquor, and we didn't have a bit of trouble.
-I spy with my little eye. To show this diagram properly, I would really need a four dimensional screen. This is not a program of socialized medicine. Shuffle off this mortal coil. The West Texan reported that he had finally gotten Chairman Bill Hollowell of the committee to set it for public hearing on Feb. 22.
-If I had my druthers. Events before the Big Bang are simply not defined, because there's no way one could measure what happened at them. Nursing home care the aged care plan carries these benefits for persons over 65 who are under the social security and railroad retirement systems : 1 full payment of hospital bills for stays up to 90 days for each illness, except that the patient would pay $10 a day of the cost for the first nine days. Some men are born mediocre, some men achieve mediocrity, and some men, have. I shall be a great deal too far off to trouble myself about you: you must manage the best way you can; -- but I must be kind to them,' thought Laura, `or perhaps they won't walk the way I want to go! 
-The expansion will start with an inflationary phase, but the collapse will not in general end with an anti inflationary phase. He calls for help while saying he is against centralization, but you can't have it both ways, Jones said. But screw your courage to the sticking-place. The Queen turned angrily away from him, and said to the Knave `Turn them over!' They would say that UFO's come from the future, and that governments are engaged in a gigantic conspiracy to cover them up, and keep for themselves, the scientific knowledge that these visitors bring. 
-Strenuous efforts were made to remove pin pricking from administration statements. Doesn't know shit from Shinola. `I have answered three questions, and that is enough,' Said his father; `don't give yourself airs! The sideways velocities could have meant that the galaxies didn't collide, but rushed past each other, and then started to move apart. 
-In the last eight years, all Presidential appointments, including those of cabinet rank, have been denied immediate action because of a Senate rule requiring at least a 24 hour delay after they are reported to the floor.
-Forgive them for they know not what they do. * `Come, my head's free at last!' said Mary in a tone of delight, which changed into alarm in another moment, when she found that her shoulders were nowhere to be found: all she could see, when she looked down, was an immense length of neck, which seemed to rise like a stalk out of a sea of green leaves that lay far below her. They claimed that there would be no singularities in a solution of the field equations of general relativity, which was fully general, in the sense that it didn't have any exact symmetry. The largest hurdle the Republicans would have to face is a state law which says that before making a first race, one of two alternative courses must be taken : 1 five per cent of the voters in each county must sign petitions requesting that the Republicans be allowed to place names of candidates on the general election ballot, or 2 the Republicans must hold a primary under the county unit system -- a system which the party opposes in its platform. Know which way the wind blows.
-It was the white rabbit returning, splendidly dressed, with a pair of white kid gloves in one hand and a large fan in the other: he came trotting along in a great hurry, muttering to himself as he came, `Oh! the Duchess, the Duchess! Genius is one percent inspiration and 99 percent perspiration. If you have a positive bank balance, you can distribute it in various ways. All you need is love. If there were a passage right the way through, like we have, the poor animal would fall apart. 
-Gorgeous Doris Day and her producer-hubby, Marty Melcher, drive in today from a motor tour thru New England. Butter wouldn't melt in her mouth. There was a young lady of Wight, who traveled much faster than light; she departed one day, in a relative way, and arrived on the previous night. Mrs. Harry K. Cohen is chairman of this phase and she is getting an artistic assist from A. Van Hollander, display director of Gimbel Brothers. There she blows! It isn't over until the fat lady sings. I will survive. 
-The jury did not elaborate, but it added that there should be periodic surveillance of the pricing practices of the concessionaires for the purpose of keeping the prices reasonable. Would you Adam and Eve it?. `Whoever lives there,' thought Mary, `it'll never do to come upon them THIS size: why, I should frighten them out of their wits!' To the French, this just confirmed their suspicions. To deal with principles the meetings in Zurich, the statement said, would deal only with principles that would guide the three factors in their search for a coalition Government.
-Men's evil manners live in brass; their virtues we write in water. `We won't talk about her any more if you'd rather not.' All the evidence points to him being an inveterate gambler, who throws the dice on every possible occasion. He broke that boy (Air Force fullback Nick Arshinkoff) in two and knocked him loose from the football. 
-He understands every word I say to him. Tony Blair misled the country over weapons of mass destruction. 
-`And yet what a dear little puppy it was!' said he, as she leant against a buttercup to rest herself, and fanned herself with one of the leaves: `I should have liked teaching it tricks very much, if -- if I'd only been the right size to do it! You look as if you've been dragged through a hedge backwards. [later editions continued as follows: When the sands are all dry, he is gay as a lark, And will talk in contemptuous tones of the Shark, But, when the tide rises and sharks are around, His voice has a timid and tremulous sound.] `That's different from what I used to say when I was a child,' said the octopus. Although quantum mechanics has been around for nearly 70 years, it is still not generally understood or appreciated, even by those that use it to do calculations. A veteran Jackson County legislator will ask the Georgia House Monday to back federal aid to education, something it has consistently opposed in the past.
-Elvis has left the building. Killed in a bar when he was only three. He who can, does; he who cannot, teaches. He will give the Devil his due. He was more famous for proving you couldn't prove everything that is true, even in such an apparently simple subject as arithmetic. 
-In 1960 more than 6,000 Communist technicians were present in those countries. More honoured in the breach than in the observance. No religious group, he declared in an interview, will receive Peace Corps funds unless it forswears all proselytizing on the project it proposes. No pain, no gain. If Barnett doesn't call a special session in 1961, it will be the first year in the last decade that the Legislature has not met in regular or special session.
-All the evidence is, that the universe started out in the Big Bang, without the kind of warping needed, to allow travel into the past. While details are still to be worked out, Ratcliff said he expects to tell home folks in Dallas why he thinks Berry's proposed constitutional amendment should be rejected. Let the cat out of the bag. There were attempts to explain away this number count graph, by claiming that some of the faint radio sources, were within our own galaxy, and so did not tell us anything about cosmology. This is being done so that Georgia Tech can complete the final phase of a traffic survey on the North Expressway.
-As you sow so shall you reap. The Louisiana city is known, of course, for its fine food, good music and its colorful hospitality and, when guests arrive at Philmont that night, says Mrs. Grinsfelder, that is exactly what we expect to offer them. No, I've made up my mind about it; if I'm Mabel, I'll stay down here! A balls up. 
-Instead, the universe has every single possible history, each with its own probability. 
-Like a chicken with its head cut off. Of course, this isn't taking into consideration the population of Nevada and New York city, but it's the way things look from here at this point. It's no skin off my nose. Certain people must have known about it. About turn.
-Then Throneberry rapped into a fast double play. Press into service. However, because of government cuts, we could manage to provide only a two dimensional screen. Pass over to the other side. This was such a new idea to her, that she was quite silent for a minute or two, which gave the Pigeon the opportunity of adding, `You're looking for eggs, I know THAT well enough; and what does it matter to me whether you're a little girl or a serpent?' 
-When they arrived at a new star, they could land on a suitable planet, and mine material to produce more machines, which could be sent on to yet more stars. The new school superintendent is Harry Davis, a veteran agriculture teacher, who defeated Felix Bush, a school principal and chairman of the Miller County Democratic Executive Committee. Turn over a new leaf. And then, some churchmen remarked, there is a more classical church-state problem : can religious agencies use Government funds and Peace Corps personnel in their projects and still preserve the constitutional requirement on separation of church and state? So the time of zero separation, would have been less than twenty billion years ago. 
-But I am not in favor of a sales or state income tax at this time, Mitchell said. It's a legend in his own life time. He could terminate special sessions of the Legislature. It's a face that only a mother could love. `And who are THESE?' said the Queen, pointing to the three gardeners who were lying round the rosetree; for, you see, as they were lying on their faces, and the pattern on their backs was the same as the rest of the pack, she could not tell whether they were gardeners, or soldiers, or courtiers, or three of her own children. 
-Put two and two together. `Here! you may nurse it a bit, if you like!' the lady said to her, flinging the baby at her as she spoke. The forsaken particle may fall into the hole as well, but it may also escape to a large distance from the hole, where it will become a real particle, that can be measured by a particle detector. The issue which may make it necessary to have a session is the highly sensitive problem of cutting the state's congressional districts from six to five to eliminate one congressional seat. 
-May you live in interesting times.
-And then a voice she had never heard before, `Sure then I'm here! The female of the species is more deadly then the male. No, it'll never do to ask: perhaps I shall see it written up somewhere.' Mr. Hawksley said he was not critical of city residents for not knowing what to do or where to assemble in case of an air attack. So she began again: `Ou est ma chatte?' which was the first sentence in her French lesson-book. 
-At first sight, all these seem possible. First blood. But there never is any need. What's in a name? That which we call a rose by any other name would smell as. Dirac was my predecessor but one, as the Lucasian Professor in Cambridge. 
-My experience as public safety commissioner, Roos said, has shown me that the office of sheriff is best filled by a man with law enforcement experience, and preferably one who is a lawyer. Just then she heard something splashing about in the pool a little way off, and she swam nearer to make out what it was: at first she thought it must be a walrus or hippopotamus, but then she remembered how small she was now, and she soon made out that it was only a mouse that had slipped in like herself. Einstein's view was what would now be called, a hidden variable theory. The famed Yankee Clipper, now retired, has been assisting as a batting coach. Now is the winter of our discontent.
-I never knew there were such neighbors and friends around me and my family. Such stuff as dreams are made on. Foods, which long had been considered recession resistant but hardly dynamic stocks, have been acting like growth stocks, going to higher price-earnings ratios. And yet I wish I could show you our cat Dinah: I think you'd take a fancy to cats if you could only see her. The navy captain disclosed also that a list of questions found in Miss Gee's purse would, if completed and handed back, have given the Kremlin a complete picture of our current anti-submarine effort and would have shown what we are doing in research and development for the future.
-But what distinguishes us from them, is the knowledge that we have accumulated over the last ten thousand years, and particularly, over the last three hundred. You MUST have meant some mischief, or else you'd have signed your name like an honest man.' But although Laplace may not have realised it, the same idea had been put forward 16 years earlier by a Cambridge man, John Mitchell, in a paper in the Philosophical Transactions of the Royal Society. No man is an island. 
-This result came as a total surprise to me, and everyone else. 
-Beats me. `Why, you don't even know what they're about!' A young man doesn't like to be driven up in front of a school in a car driven by a girl who isn't even in a higher class than he is, and is also a girl. Even Steven. `I've seen hatters before,' she said to herself; `the tiger will be much the most interesting, and perhaps as this is May it won't be raving mad -- at least not so mad as it was in March.' 
-This is probably the most remarkable discovery of modern cosmology. The most valuable player award was split three ways, among Glen Mankowski, Gordon Hartweger and Tom Kieffer. If one made a research grant application to work on time travel, it would be dismissed immediately. And oh, I wish you could see her after the birds! People will continue to get older, even after the universe has begun to contract. 
-He was a man after his own heart. Seven flung down his brush, and had just begun `Well, of all the unjust things --' when his eye chanced to fall upon him, as she stood watching them, and he checked himself suddenly: the others looked round also, and all of them bowed low. At Berger's direction, the city also intervened in the Hughes bankruptcy case in U. S. District Court in a move preliminary to filing a claim there. The Butler did it. `I didn't know it was YOUR table,' she said; `it's laid for a great many more than three.' 
-To achieve such an equilibrium, it is necessary for the radiation to be scattered by matter, many times. After it allotted shares to 41 underwriters and 52 selling group members from coast to coast there were not many shares for anyone. Many are called but few are chosen. Is this a dagger which I see before me?. Like the argument about human progress, it indicates that there must have been a beginning. 
-All things must pass. Please, Ma'am, is this New Zealand or Australia?' (and she tried to curtsey as she spoke -- fancy CURTSEYING as you're falling through the air! While emphasizing that technical details were not fully worked out, Pelham said his resolution would seek to set aside the privilege resolution which the House voted through 87-31. Hardly knowing what she did, she picked up a little bit of stick, and held it out to the puppy; whereupon the puppy jumped into the air off all its feet at once, with a yelp of delight, and rushed at the stick, and made believe to worry it; then he dodged behind a great thistle, to keep herself from being run over; and the moment she appeared on the other side, the puppy made another rush at the stick, and tumbled head over heels in its hurry to get hold of it; then, thinking it was very like having a game of play with a cart-horse, and expecting every moment to be trampled under its feet, ran round the thistle again; then the puppy began a series of short charges at the stick, running a very little way forwards each time and a long way back, and barking hoarsely all the while, till at last it sat down a good way off, panting, with its tongue hanging out of its mouth, and its great eyes half shut. 
-Their explanation for human progress was that there had been periodic floods, or other natural disasters, which repeatedly set back the human race to a primitive state. 
-I scratch your back and you scratch mine. Lastly, she pictured to herself how this same little sister of hers would, in the after-time, be herself a grown woman; and how she would keep, through all her riper years, the simple and loving heart of her childhood: and how she would gather about her other little children, and make THEIR eyes bright and eager with many a strange tale, perhaps even with the dream of Wonderland of long ago: and how she would feel with all their simple sorrows, and find a pleasure in all their simple joys, remembering her own child-life, and the happy summer days. Donkey's years. `I don't know where Dinn may be,' said the Mock Turtle, `but if you've seen them so often, of course you know what they're like.' Where there's muck there's brass.
-It was a nice round figure, that 12, he said as he headed for the clubhouse, not too much perturbed. Much Ado about Nothing. You can throw television sets, diamond rings, or even your worst enemies into a black hole, and all the black hole will remember, is the total mass, and the state of rotation. For if ye forgive men their trespasses, your heavenly Father will also forgive you : but if ye forgive not men their trespasses, neither will your Father forgive -- your trespasses. He came all the way around on Gardner's hit before 5777 fans.
-The outlook the Vienna meeting will bring together a seasoned, 67-year-old veteran of the cold war who, in Mr. Kennedy's own words, is shrewd, tough, vigorous, well-informed and confident, and a 44-year-old President (his birthday is May 29) with a demonstrated capacity for political battle but little experience in international diplomacy. Leave well enough alone. But the wave function will vary very rapidly near the peak, up on one side, and down on the other. Since the constitution forbids introduction of a tax bill at a fiscal session, the administration will either have to cut down expenses or inflate its estimates of anticipated revenues. Down the hatch.
-Some people have questioned whether viruses should count as life, because they are parasites, and can not exist independently of their hosts. I did not much like keeping so close to her: first, because the Duchess was VERY ugly; and secondly, because she was exactly the right height to rest her chin upon her shoulder, and it was an uncomfortably sharp chin. He was also pleased with the wide distribution because he thought it proved again his argument that Dallas investment men can do just as good a job as the big New York investment bankers claim only they can do. Just in time. `I don't know the meaning of half those long words, and, what's more, I don't believe you do either!' 
-They're dreadfully fond of beheading people here; the great wonder is, that there's any one left alive!' We do not know how DNA molecules first appeared. While he declined to suggest how, he said that sooner or later we must get rid of Castro, for unless we do we're liable to face similar situations in this hemisphere. How now brown cow?. 
-It is difficult to imagine that one could build a living system, out of just hydrogen and helium, and anyway the early universe was still far too hot for atoms to combine into molecules. 
-The lady doth protest too much, methinks. For example, it was found that elementary particles behaved rather like little tops, spinning about an axis. `What I was going to say,' said the Dodo in an offended tone, `was, that the best thing to get us dry would be a Caucus-race.' That permitted us to start controlling the ball right away, said Stram, quipping, I think I'll put that play in the book. Here was another puzzling question; and as he could not think of any good reason, and as the caterpillar seemed to be in a VERY unpleasant state of mind, she turned away. 
-Something is rotten in the state of Denmark. That wouldn't be much good for space Westerns. Fight the good fight. Naturally, enterprises of the size of General Electric are in a position to structure their prices in such a way that the relatively small competitors can be forced to the wall in a very short time. This is very midsummer madness.
-It might be possible to use genetic engineering, to make DNA based life survive indefinitely, or at least for a hundred thousand years. You can lead a whore to culture but you can't make her think. `If everybody minded their own business,' the lady said in a hoarse growl, `the world would go round a deal faster than it does.' In ancient times, the world must have seemed pretty arbitrary. The company sells a complete line of gin machinery all over the cotton-growing world.
-Come the three corners of the world in arms. So she stood still where she was, and waited. It involved scanning the radio frequencies, to see if we could pick up signals from alien civilisations. Said he : we will see whether whites and Negroes are treated the same around here. However, `jury-men' would have done just as well. 
-Aggression, in the form of subjugating or killing other men, and taking their women and food, has had definite survival advantage, up to the present time. The third belief, in six points, emphasizes the Deity of the Lord Jesus Christ, and : -- emphasizes the Virgin birth -- the sinless life of Christ -- his miracles -- his substitutionary work on the cross -- his bodily resurrection from the dead -- and His exaltation to the right hand of God. What a piece of work is man. However, long distance space travel, will be difficult for chemically based life forms, like DNA. 
-The live-long day.
-If they weren't, we wouldn't be here. After Thursday's open date, Solly plans to open with Larry Jackson against the Cubs here Friday night. Overpaid, oversexed, and over here. Districts issue legislators always get restless for a special session (whether for the companionship or the $22.50 per diem is not certain) and if they start agitating. Get thee behind me Satan.
-And she kept on puzzling about it while the Mouse was speaking, so that her idea of the tale was something like this:-- `Fury said to a mouse, That he met in the house, "Let us both go to law: I will prosecute YOU. A plague o' both your houses. `Yes, that's it,' said the Hatter with a sigh: `it's always tea-time, and we've no time to wash the things between whiles.' This could lead to the graph of the separation between two galaxies, being a curve that approached zero, but didn't actually pass through it, at any finite time in the past. Skorich received a three-year contract at a salary believed to be between $20,000 and $25,000 a year.
-Between the Devil and the deep blue sea. The smallest worm will turn, being trodden on. Because they are under such great tension, one might have expected them to accelerate to almost the speed of light. Sailing under false colours. Not only do the particles and unlucky astronauts that fall into a black hole, never come out again, but also the information that they carry, is lost forever, at least from our region of the universe. 
-Never never land. `As if it wasn't trouble enough hatching the eggs,' said the Pigeon; `but I must be on the look-out for serpents night and day! Singing from the same hymn sheet. But if you can travel from one side of the galaxy, to the other, in a week or two, you could go back through another wormhole, and arrive back before you set out. Price support loans may total another $1 billion this year.
-If you think that you have another think coming. Speaking of the present status of civil defense in the city, Mr. Hawksley said he would be willing to bet that not more than one person in a hundred would know what to do or where to go in the event of an enemy attack. `Does YOUR watch tell you what year it is?' So the rate of biological evolution in humans, is about a bit a year. 
-Barber, who is in his 13th year as a legislator, said there are some members of our congressional delegation in Washington who would like to see it (the resolution) passed.
-This could connect the two sides of the galaxy, and act as a short cut, to get from one to the other and back while your friends were still alive. Fiddling while Rome burns. He who laughs last laughs longest. `Poor little thing!' said Diana, in a coaxing tone, and she tried hard to whistle to it; but she was terribly frightened all the time at the thought that it might be hungry, in which case it would be very likely to eat her up in spite of all her coaxing. He did not want the effort weakened by any illusion that summit magic might make it unnecessary.
-The Belgians also placed great emphasis on education. Some are born great, some achieve greatness, and some have greatness thrust. One would also expect to have seen large numbers of tourists from the future, curious to look at our quaint, old-fashioned ways. The 53-year-old Shea, a prominent corporation lawyer with a sports background, is generally recognized as the man most responsible for the imminent return of a National League club to New York. Old lang syne.
-Even if there were sound reasons for keeping us in ignorance, human nature being what it is, it is difficult to believe that someone wouldn't show off, and tell us poor benighted peasants, the secret of time travel. We'll work out about an hour on Saturday, then we'll work Monday and Tuesday of next week, then taper off. He promised nearly 200 Democratic county committee members at the meeting in the Puddingstone Inn : when I come back here after the November election you'll think, you're my man -- elected. I guessed in a moment that it was looking for the fan and the pair of white kid gloves, and she very good-naturedly began hunting about for them, but they were nowhere to be seen -- everything seemed to have changed since her swim in the pool, and the great hall, with the glass table and the little door, had vanished completely. Since we haven't cracked time travel yet, I have run out of time. 
-Go Cap in hand. Laws will be passed, against genetic engineering with humans. Against the grain. It came like a bolt from the blue. The Customer is always right.
-What it shows is that there are many initial states, containing television sets, diamond rings, and even people, that evolve to the same final state, at least outside the black hole. Offenses multiply the President has also called upon the Attorney General, the Secretary of Health, Education and Welfare, and the Secretary of Labor to coordinate their efforts in the development of a program of federal leadership to assist states and local communities in their efforts to cope with the problem. There used to be a project called SETI, the search for extra-terrestrial intelligence. The United States, State Department officials explain, now is mainly interested in setting up an international inspection system which will prevent Laos from being used as a base for Communist attacks on neighboring Thailand and South Viet Nam. 
-Olive the other reindeer used to laugh and call him names.
-This means, it doesn't take into account, the Uncertainty Principle of Quantum Mechanics, which says that an object can not have both a well defined position, and a well defined speed: the more accurately one measures the position, the less accurately one can measure the speed, and vice versa. Mrs. Molvar, who kept reiterating her request that they please take a stand, said, we must have faith in somebody -- on the local level, and it wouldn't be possible for everyone to rush to a school to get their children. Interestingly enough, Laplace himself wrote a paper in 1799 on how some stars could have a gravitational field so strong that light could not escape, but would be dragged back onto the star. The biggest single act would doubtless be staged by Frankie himself : his Inaugural wardrobe had been designed by Hollywood Couturier Don Loper, who regularly makes up ladies' ensembles. He is a law unto himself.
-It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes, and began talking to herself, as usual. This indicates that the present phase of human history can not have been going for more than a few thousand years. Except for a few months in late 1960 and early 1961, retail farm equipment sales have trailed year-earlier levels since the latter part of 1959. Or the green house effect becoming unstable. Eaten out of house and home.
-`Come, there's no use in crying like that!' she said to herself, rather sharply; `I advise you to leave off this minute!' During that time, the useful information in our DNA, has probably changed by only a few million bits. During his college career, Dr. Clark was captain of his basketball team and was a football letterman. Several signers affixed their names, it was learned, after being told that no tax increase would be possible without consent of the General Assembly and that a provision could be included in the charter to have the town take over the Johnston Sanitary District sewer system. Absent without leave.
-Born again. `I want a clean cup,' interrupted the Joker: `let's all move one place on.' What would stop you blowing up the rocket on its launch pad, or otherwise preventing you from setting out in the first place. Such objects were given the name Black Holes, by the American physicist John Wheeler, who was one of the first to recognise their importance, and the problems they pose. The trial will be held, probably the first week of March, in the famous Old Bailey central criminal court where Klaus Fuchs, the naturalized British German born scientist who succeeded in giving American and British atomic bomb secrets to Russia and thereby changed world history during the 1950s, was sentenced to 14 years in prison.
-The American dream. Green around the gills. An Emory spokesman indicated, however, that the university itself did not intend to make any test of the laws. Run home this moment, and fetch me a pair of gloves and a fan! 
-A small step for man, a giant leap for mankind.
-However, in a remarkable paper written in 1905, when he was a clerk in the Swiss patent office, Einstein showed that the time and position at which one thought an event occurred, depended on how one was moving. The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that she had not a moment to think about stopping herself before she found herself falling down a very deep well. However, the graph of the number of radio sources, against there strength, went up much more sharply at low source strengths, than the Steady State theory predicted. He ran his string of successful conversions this season to 13 straight before one went astray last Saturday night in the 41-8 slaughter of Washington State. You'll wonder where the chartreuse went when you brush your teeth with Pepsodent.
-He did not say by how much. Her listeners were perfectly quiet till she got to the part about her repeating `YOU ARE OLD, FATHER WILLIAM,' to the caterpillar, and the words all coming different, and then the whale drew a long breath, and said `That's very curious.' These irregularities are so little, only one part in a hundred thousand, that for years people looked for them in vain. But, for my own part, it was Greek to me. The cosmologist, Sir Arthur Eddington, once said, 'Don't worry if your theory doesn't agree with the observations, because they are probably wrong.' 
-If working in a zinc mine, which he once did for 87-1/2 cents an hour, paid more than playing center field for the Yankees, Mantle would work in a zinc mine. Once in a blue moon. It was high time to go, for the pool was getting quite crowded with the birds and animals that had fallen into it: there were a Duck and a Dodo, a Lory and an Eaglet, and several other curious creatures. But in extreme conditions, like in the early universe, or in high energy particle collisions, there could be significant loss of information. Students have been using electric computers and high speed movie cameras during the study.
-Knee high to a grasshopper. There was a general clapping of hands at this: it was the first really clever thing the King had said that day. I will wear my heart upon my sleeve. `When we were little,' the Mock Turtle went on at last, more calmly, though still sobbing a little now and then, `we went to school in the sea. As those of you that were forced to learn Euclidean geometry at school may remember, one of the consequences of these axioms is, that the angles of a triangle, add up to a hundred and 80 degrees. 
-And shining morning face, creeping like a snail unwillingly to school. When I was a kid, Maris told a sportswriter last week, I used to follow Williams every day in the box score, just to see whether he got a hit or not. But if they show self-restraint, they don't get the orders. Don't look a gift horse in the mouth. 
-Break in Georgia the University of Georgia has long claimed that it does not discriminate against any applicant on the basis of race or color.
-Unfortunately, in the same paper, Einstein showed that the rocket power needed to accelerate a space ship, got greater and greater, the nearer it got to the speed of light. Soviet Premier Khrushchev sent New Year's hopes for peace to President-elect Kennedy, and got a cool acknowledgment in reply. Got the hump. Information requires energy to carry it, and there won't be enough energy left when the black hole disappears. Party leaders came out of the final meeting apparently satisfied and stated that complete agreement had been reached on a solution to the crisis created by the elections which left no party with enough strength to form a government on its own.
-(He had been to the seaside once in her life, and had come to the general conclusion, that wherever you go to on the English coast you find a number of bathing machines in the sea, some children digging in the sand with wooden spades, then a row of lodging houses, and behind them a railway station.) Only a relative handful of such reports was received, the jury said, considering the widespread interest in the election, the number of voters and the size of this city. Of course, some people would claim that we have been visited from the future. The course of true love never did run smooth. A nuclear war, is still the most immediate danger, but there are others, such as the release of a genetically engineered virus. 
-Cry havoc and let slip the dogs of war. But she went on all the same, shedding gallons of tears, until there was a large pool all round her, about four inches deep and reaching half down the hall. This may have been reasonable, given the notoriously unreliable character of cosmological observations, until fairly recently. The 187-mile Illinois State Toll Highway, for example, was not opened over its entire length until December, 1958. Until Hell freezes over.
-This says that the total amount of disorder, or entropy, in the universe, always increases with time. Beaver away at. So the total amount of useful information in our genes, is probably something like a hundred million bits. Two began in a low voice, `Why the fact is, you see, Miss, this here ought to have been a RED rose-tree, and we put a white one in by mistake; and if the Queen was to find it out, we should all have our heads cut off, you know. But I shall see what conclusions can be drawn, from the fact that life exists on this planet, at this stage in the history of the universe. 
-This is the key fact emerging from Sunday's national election. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. This is not only a compliment to Mijbil, of whom there are a fine series of photographs and drawings in the book, but to the author who has catalogued the saga of a frightened otter cub's journey by plane from Iraq to London, then by train (where he lay curled in the wash basin playing with the water tap) to Camusfearna, with affectionate detail. There must be a possible history in which there is a lasting peace in the Middle East, though maybe the probability is low. 
-Though Walter Ulbricht, by grace of Soviet tanks, may be head man in East Germany, that does not give him any right to usurp the government of East Berlin or to absorb that semi-city into the Soviet zone.
-Though last, not least in love. This time there could be NO mistake about it: it was neither more nor less than a pig, and she felt that it would be quite absurd for her to carry it further. If this choice is less exciting than New York Democrats may wish, it nevertheless must be made. Less is more. No government agency could afford to be seen to be spending public money, on anything as way out as time travel. 
-Now, if you only kept on good terms with him, he'd do almost anything you liked with the clock. To almost two generations of Americans it must have seemed as though the existence of Mr. Sam coincided with that of the House. On the other hand, the remaining four directions are fairly flat, and are what we call space-time. Although the resolution might have been far more specific, it was considerably tougher than the earlier one. Thus far into the bowels of the land.
-Just then her head struck against the roof of the hall: in fact she was now more than nine feet high, and she at once took up the little golden key and hurried off to the garden door. It took two and a half billion years, to evolve from the earliest cells to multi-cell animals, and another billion years to evolve through fish and reptiles, to mammals. The Bears took the lead in the first inning, as they did in Sunday's opener, and never lagged. Yet your editorial said : now the Attorney General writes that no considerations justify any loss of revenue of this proportion. Though this be madness, yet there is method in it.
-This precious stone set in the silver sea, this sceptered isle. Because time is not going to go backwards, I think I better stop now. This time, they were much better prepared and organized, and the political climate was favorable. Better to have loved and lost than never to have loved at all. Instead, it would be an ordinary point of space and time, like the North Pole is an ordinary point on the Earth, or so I'm told. 
-A little bird told me. Eventually, at a critical weight and size, they will make a bottomless hole in the sheet, which particles can fall into, but nothing can get out of. Nothing that is likely to happen, however, should prompt the sending of United States soldiers for other than instructional missions. Night soil. 
-And with that she began nursing her child again, singing a sort of lullaby to it as she did so, and giving it a violent shake at the end of every line: `Speak roughly to your little boy, And beat him when he sneezes: He only does it to annoy, Because he knows it teases.' 
-But it also briefly suggested the possibility of a meeting with Mr. Khrushchev before the end of the year if the international climate were favorable and schedules permitted. At his wits end. That is why we don't get sunburn from a cup of coffee. He called after it; and the others all joined in chorus, `Yes, please do!' but the Mouse only shook its head impatiently, and walked a little quicker. Look to Coosa Valley for industrial progress cities and counties interested in industrial development would do well in the months ahead to keep their eyes peeled toward the 13 northwest Georgia counties that are members of the Coosa Valley Area Planning and Development Commission.
-Sans teeth, sans eyes, sans taste, sans everything. But they have not managed to find any mechanism that would return the information. I'll need more than a single day to find the words to properly express my thanks to them. A hard man is good to find. Going, going, gone.
-`After that,' continued the idiot, `I cut some more bread- and-butter --' `But what did the dormouse say?' one of the jury asked. When I gave a lecture in Japan, I was asked not to mention the possible re-collapse of the universe, because it might affect the stock market. After that, some of the stars would have exploded as supernovas, and scattered the heavy elements back into space, to form the raw material for later generations of stars. Point Percy at the porcelain. And she began thinking over all the children she knew that were of the same age as herself, to see if she could have been changed for any of them. 
-If you knew the state of the universe at some time in the past, you could predict it in the future. Alas, poor Yorick! I knew him, Horatio. I suppose you'll be telling me next that you never tasted an egg!' This is shown on this next diagram, which is not to scale, because there's no way one can show a period of ten thousand years, on the same scale as billions of years. Sitting next to Nellie.
-For example, a computer virus is a program that will make copies of itself in the memory of a computer, and will transfer itself to other computers. It also indicated that space travel to other stars, was going to be a very slow and tedious business. Admitting that main streets and the central business district should have priority, the Councilman said it is also essential that small shopping areas not be overlooked if our small merchants are to survive. Do your business. 
-So I will give a different argument, to show that the universe contains enough matter, to focus our past light cone. 
-Happy hitting if it's true that contented cows give more milk, why shouldn't happy ball players produce more base hits? An even greater limitation and danger for future generations, is that we still have the instincts, and in particular, the aggressive impulses, that we had in cave man days. We have seen better days. `Hold your tongue, Ma!' said the young Crab, a little snappishly. An Angry young man.
-A scientific law is not a scientific law, if it only holds when some supernatural being decides to let things run, and not intervene. He said, let's work for peace instead of protection from aggression. Just at this moment She felt a very curious sensation, which puzzled her a good deal until she made out what it was: she was beginning to grow larger again, and she thought at first she would get up and leave the court; but on second thoughts she decided to remain where she was as long as there was room for her. A $12,500 payment Leavitt, as he entered the jury room, said he was prepared to answer questions about the $12,500 his liquor firm paid to Stein for labor consultant work with five unions which organized Leavitt's workers. Leave the room.
-He was a teflon president. League regularly stands on the side of right the League of Women Voters, 40 now and admitting it proudly, is inviting financial contributions in the windup of its fund drive. `A cheap sort of present!' I thought. All present and correct. `We quarrelled last March -- just before HE went mad, you know --' (pointing with his tea spoon at the American girl,) `-- it was at the great concert given by the Queen of Hearts, and I had to sing "Twinkle, twinkle, little bat! 
-But, the fact that several pulsars are observed to have planets suggests that a reasonable fraction of the hundred billion stars in our galaxy may also have planets. The Frog-Footman repeated, in the same solemn tone, only changing the order of the words a little, `From the Queen. In order to understand this, considered a sheet of rubber, with a weight placed on it, to represent a star. Apologies are in order from anybody who said, are you sure you're not making a mistake? Apple pie order.
-A major national library can contain about five million books, or about ten trillion bits. This observation can be elevated to the status of a law, the so-called Second Law of Thermodynamics. Salem (special) -- for a second month in a row, Multnomah County may be short of general assistance money in its budget to handle an unusually high summer month's need, the state public welfare commission was told Friday. Second wind. 
-She did not get hold of anything, but she heard a little shriek and a fall, and a crash of broken glass, from which she concluded that it was just possible it had fallen into a cucumber-frame, or something of the sort. 
-The deeper wonder is how this miracle was accomplished in decades, rather than in centuries and by immigrant minorities at that. He was rather doubtful whether she ought not to lie down on her face like the three gardeners, but she could not remember ever having heard of such a rule at processions; `and besides, what would be the use of a procession,' thought she, `if people had all to lie down upon their faces, so that they couldn't see it?' She had just succeeded in curving it down into a graceful zigzag, and was going to dive in among the leaves, which she found to be nothing but the tops of the trees under which she had been wandering, when a sharp hiss made her draw back in a hurry: a large pigeon had flown into her face, and was beating her violently with its wings. `Why,' said the Gryphon, `you first form into a line along the sea-shore --' `Two lines!' cried the turtle. Some of the jury wrote it down `important,' and some `unimportant.' 
-But for tops as small as atoms, the discrete nature of spin is very important. The Illinois Commission for Handicapped Children, which for 20 years has had the responsibility of coordinating the services of tax supported and voluntary organizations serving handicapped children, of studying the needs of handicapped children in Illinois, and of promoting more adequate services for them, indeed welcomes this new important resource which will help the people of Illinois toward the goal of providing an education for all of its children. It is difficult to say how often such collisions occur, but a reasonable guess might be every twenty million years, on average. Point is that developing countries often build up a textile industry first, need encouragement to get on their feet. Some good news although it looked like a routine technical snapback to Wall Streeters it was accompanied by some good news.
-The mother of young queen, Mrs. G. Henry Pierson Jr. chose a white brocade gown made on slim lines with panels of tomato-red and bright green satin extending down the back. Survivors include two brothers, C. E. Killingsworth, Atlanta, and John Killingsworth, Warren, Ohio; and two sisters, Minnie and Mrs. Bessie Bloom, both of Gettysburg, Pa.. If this were the case, it would raise a whole host of questions and problems. It is a basket case. She folded her hands, and began:-- `You are old, Father William,' the young man said, `And your hair has become very white; And yet you incessantly stand on your head -- Do you think, at your age, it is right?' 
-In other words, the anti-trust laws, designed to reduce prices to the consumer on Monday, Wednesday and Friday, become a tool to protect the marginal manufacturer on Tuesday, Thursday and Saturday. This is an area nearly as large as Western Europe; and it was filled then as now by quarreling tribes with no political or historical unity. By and large. Big in Japan. Four corners of the earth.
-While she was trying to fix on one, the cook took the cauldron of soup off the fire, and at once set to work throwing everything within her reach at the woman and the baby -- the fire-irons came first; then followed a shower of saucepans, plates, and dishes. But at the same time he moved his helicopter-borne marines to within an hour of the fighting. Born within the sound of Bow Bells. Although this lecture is partly about time travel, I felt I had to give it the scientifically more respectable title, Space and Time warps. 
-By the end of the century the Roman Catholic Church was beginning to make itself felt, mainly through such institutions as hospitals but also through its attitude towards organized labour.
-The week went along briskly enough. So she began telling them her adventures from the time when she first saw the rabbit. We saw back to the origin of the universe. (the last doorman that saw me do that should calm himself. According to string theory, which is our best hope of uniting General Relativity and Quantum Theory, into a Theory of Everything, space-time ought to have ten dimensions, not just the four that we experience. 
-Six of the best. The idea that the state of the universe at one time determines the state at all other times, has been a central tenet of science, ever since Laplace's time. Holmes was asked if he had ever visited a house of prostitution, or a beatnik parlor or teahouse. For ever and a day. Fair Dealer Humphrey upped the ante, asked cloture power for a mere majority of Senators.
-Power dressing. But with the human race, evolution reached a critical stage, comparable in importance with the development of DNA. The nearest thing to a straight line on the surface of the Earth, is what is called, a great circle. There is one thing I know; a person will never have spiritual poise and inner peace as long as the heart holds a grudge. A thing of beauty is a joy forever.
-At the left is a pair of dressy straw pumps in a light, but crisp texture. It's a trick of the light. Our family always HATED cats: nasty, low, vulgar things! The Black sheep of the family. `Once upon a time there were three little sisters,' the carrot began in a great hurry; `and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well --' `What did they live on?' said Jane, who always took a great interest in questions of eating and drinking. 
-I therefore want to show you, that observational evidence indicates the universe contains sufficient matter, that it is like the time reverse of a black hole, and so contains a singularity. In the case of a black hole, this definite prediction involves both members of a particle pair. Two of these are in or near Dallas and the others away from the vicinity. It has been championed by the physicist David Deutsch, and it seems to have been what Steven Spielberg had in mind when he filmed, Back to the Future. 
-We have not the leisure, or the patience, or the skill, to comprehend what was working in the mind and heart of a then recent graduate from the Harvard Divinity School who would muster the audacity to contradict his most formidable instructor, the majesterial Andrews Norton, by saying that, while he believed Jesus like other religious teachers, worked miracles, I see not how a miracle proves a doctrine.
-Have Half a mind to. The Antipathies, I think --' (she was rather glad there WAS no one listening, this time, as it didn't sound at all the right word) `-- but I shall have to ask them what the name of the country is, you know. He pointed out to the young musicians that the National Gallery is the only museum in the country to have a full-time music director, Richard Bales. As one goes back in time on the diagram, the light cone spreads out to greater distances, and its area increases. Done in.
-In a universe that was essentially static, there would not have been any dynamical reason, why the stars should have suddenly turned on, at some time. As we know, the Soviet peasant today still very largely thrives on being able to sell the produce grown on his private plot; and it is still very far from certain how valid the party's claim is that in a growing number of kolkhozes the peasants are finding it more profitable, to surrender their private plots to the kolkhoz and to let the latter be turned into something increasingly like a state farm. That is a well turned calf. Suddenly she came upon a little three-legged table, all made of solid glass; there was nothing on it except a tiny golden key, and Diane's first thought was that it might belong to one of the doors of the hall; but, alas! either the locks were too large, or the key was too small, but at any rate it would not open any of them. How long the self-design phase will last is open to question. 
-Open house. man to enter into the kingdom of God. William Smythe, director of field service, told the commissioners that Multnomah, as of Aug. 22, had spent $58,918 out of its budgeted $66,000 in the category, leaving only $7,082 for the rest of the month. The only way of avoiding this problem would be if, for some reason, the stars did not shine before a certain time. Houston, we have a problem.
-Nothing is certain but death and taxes. The pattern here pictured is clearly not peculiar to Notre Dame : it is simply that the paradox involved in this kind of control of the institution by the organization which actually owns it, becomes more obvious where there is a larger and more distinguished outside faculty. If so, it might be worth while to assign a future jazz show to a different department -- one with enough confidence in the musical material to cut down on the number of performers and give them a little room to display their talents. Thus it would require the direct intervention of God, if the universe began at that date. Thus he will be in a position to disabuse the Soviet leader of any notions he may have about grave Allied disunity.
-The company began operation in 1900 with hardware and oil mill supplies. The answer lies in a bumper sticker that I used to have on the door of my office: Black Holes are Out of Sight. The door panels are designed to accommodate standard doors which should be of exterior grade. Katy bar the door. 
-And even if it could, it would not really help explain the origin of life, because the time available since the formation of carbon is only just over double the age of the Earth. 
-They were just beginning to write this down on their slates, when the white rabbit interrupted: `UNimportant, your Majesty means, of course,' he said in a very respectful tone, but frowning and making faces at him as he spoke. Mr. Balaguer's troubles are by no means over. Who wooed in haste, and means to wed at leisure. `Ah, well! It means much the same thing,' said the woman, digging her sharp little chin into Melanie's shoulder as she added, `and the moral of THAT is --"Take care of the sense, and the sounds will take care of themselves."' There is no need here to spell out the conditions of creative teaching except to point out that, at the college level, the sense of community and of community responsibility is even more necessary than it is at other levels.
-Why, it fills the whole window!' For it was the millions of buffalo and prairie chicken and the endless seas of grass that symbolized for a whole generation of Americans the abundant supply that was to take many of them westward when the Ohio and Mississippi valleys began to fill. The whole nine yards. This matter is of great importance, and the outcome may mean the difference between life or death, or at least serious injuries, for many veterans. The Root of the matter.
-It is perhaps too late now to talk of mandate because it is inconsistent with what is termed political realism. A house divided against itself cannot stand. A butterfly flapping its wings can cause rain in Central Park, New York. Richard of York gave battle in vain. Let me see: four times five is twelve, and four times six is thirteen, and four times seven is -- oh dear! 
-Each had been shot in the back several times with a.22-CALIBER As the new clouds of radioactive fallout spread silently and invisibly around the earth, the Soviet Union stands guilty of a monstrous crime against the human race. Milk of human kindness. The thin red line. `It goes on, you know,' the sport continued, `in this way:-- "Up above the world you fly, Like a tea-tray in the sky. 
-They could be miles north and east of Oxford circus, and height above sea level. Seven of the eight companies that turn out full lines of farm machinery say sales by their dealers since the start of August have shown gains averaging nearly 10% above last year. Above board. Even though headquarters actually have been moved into the Chatham building, do they believe that they can make the new name stick? 
-Action man.
-`Come on, then,' said the Queen, `and he shall tell you his history,' As they walked off together, Dorothy heard the King say in a low voice, to the company generally, `You are all pardoned.' Such a decision should have placed a powerful weapon in the hands of the entire housing industry, but there is little evidence that realtors, or at least their associations, have repudiated the principle in such clauses. He is a safe pair of hands. Local derby. Five figures.
-History is bunk. Whee the people : lovely thrush Annamorena gave up a promising show biz career to apply glamor touches to her hubby, Ray Lenobel's fur firm here. `But everything's curious today. But today's science fiction, is often tomorrow's science fact. If these constants had significantly different values, either the nucleus of the carbon atom would not be stable, or the electrons would collapse in on the nucleus. 
-The chief difficulty Kate found at first was in managing her flamingo: she succeeded in getting its body tucked away, comfortably enough, under her arm, with its legs hanging down, but generally, just as she had got its neck nicely straightened out, and was going to give the hedgehog a blow with its head, it WOULD twist itself round and look up in her face, with such a puzzled expression that she could not help bursting out laughing: and when she had got its head down, and was going to begin again, it was very provoking to find that the hedgehog had unrolled itself, and was in the act of crawling away: besides all this, there was generally a ridge or furrow in the way wherever she wanted to send the hedgehog to, and, as the doubled-up soldiers were always getting up and walking off to other parts of the ground, Katharine soon came to the conclusion that it was a very difficult game indeed. Act the fool. Run off your feet. Oh dear! I shall be late!' (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural); but when the hedgehog actually TOOK A WATCH OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on, Catharine started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge. These regularities were most obvious, in the motion of the heavenly bodies across the sky. 
-There has been more activity across the state line in Massachusetts than in Rhode Island in recent weeks toward enforcement of the Sunday sales laws. That is a shot across the bows. The other guests had taken advantage of the Queen's absence, and were resting in the shade: however, the moment they saw her, they hurried back to the game, the Queen merely remarking that a moment's delay would cost them their lives. This could have taken only a few hundred million years. Taken aback.
-`Not at first, perhaps,' said the teacher: `but you could keep it to half-past one as long as you liked.' Past it. In Donnybrook, there is quite a different Eire, a rural land where singing, dancing, fist-fighting and romancing are the thing. I am not doing anything, of myself. 
-Before memory, too, clouds over, let us make a note or two of what could be seen.
-However, physicists began to find other behaviour, that could be explained only in terms of quantities having discrete, or quantised values, rather than continuously variable ones. He gave the impression of never having read a word about art, but there was no doubt that he had an eye for the best. "I'll be judge, I'll be jury," Said cunning old Fury: "I'll try the whole cause, and condemn you to death."' If it does not, it should be able to survive the death of the Sun, in about 5 billion years, by moving to planets around other stars. `I'm a poor man, your Majesty,' the royal began, in a trembling voice, `-- and I hadn't begun my tea -- not above a week or so -- and what with the bread-and-butter getting so thin -- and the twinkling of the tea --' `The twinkling of the what?' said the King. 
-It is thought the collision of a rather smaller body with the Earth, about 70 million years ago, was responsible for the extinction of the dinosaurs. The appestat, which adjusts the appetite to keep weight constant, is located, says Jolliffe, in the hypothalamus -- near the body's temperature, sleep and water-balance controls. Keep body and soul together. Toying with her field in the early stages, Garden Fresh was asked for top speed only in the stretch by Jockey Philip Grimm and won by a length and a half in 1.24 3-5 for the 7 furlongs. Further, do our reforming friends really believe that the cartoonists will consent to the banishment of the tiger from their zoo?
-Back the field. Nevertheless, I am sure that during the next century, people will discover how to modify both intelligence, and instincts like aggression. Am I my brother's keeper?. Friday afternoon car. thought I would like to quote you Laplace's actual words, so I asked a friend to track them down. 
-To Have words with. She had already heard her sentence three of the players to be executed for having missed their turns, and she did not like the look of things at all, as the game was in such confusion that she never knew whether it was her turn or not. On this view, you couldn't set out on the rocket ship to travel into the past, unless you had already come back, and failed to blow up the launch pad. Judge Bootle's decision : the two plaintiffs are qualified for admission to said university and would already have been admitted had it not been for their race and color. There have even been serious errors in the U. S. Forest Service, whose officials pride themselves in their scientific training, he added.
-Many of you are familiar, I'm sure, with the story of my early struggles : the fire in January, 1947, that destroyed everything -- even our precious list of subscribers. I'm not so green as I am cabbage looking. A couple of days later an assistant told me he had telephoned Allied Arts for ticket information and was told the newspapers had made a mistake. Kiss and tell. 
-In fact, James Hartle of the University of California Santa Barbara, and I have proposed that space and imaginary time together, are indeed finite in extent, but without boundary. 
-The Charter does stipulate that due regard shall be paid to the importance of recruiting the staff on as wide a geographical basis as possible. Money makes the world go round. But by the end of the three-month period, in October 1960, something approaching calm settled on the Congo. They form the basis of the mental picture of the universe, held by many scientists, and almost all philosophers of science. That is a sure thing.
-There could be no doubt that it had a VERY turn-up nose, much more like a snout than a real nose; also its eyes were getting extremely small for a baby: altogether Elizabeth did not like the look of the thing at all. The progress reported by the advisory committee is real. The Real McCoy. So much for free will. His reference to discredited carcass or tattered remains of the president's leadership is an insult to the man who led our forces to victory in the greatest war in all history, to the man who was twice elected overwhelmingly by the American people as president of the United States, and who has been the symbol to the world of the peace-loving intentions of the free nations.
-Scot free. `How cheerfully he seems to grin, How neatly spread his claws, And welcome little fishes in With gently smiling jaws!' And Walker looks stronger, seems to be throwing better than he did last year. Once such super humans appear, there are going to be major political problems, with the unimproved humans, who won't be able to compete. `The trial cannot proceed,' said the King in a very grave voice, `until all the jurymen are back in their proper places -- ALL,' he repeated with great emphasis, looking hard at George as he said do. 
-A more dangerous formula for national frustration cannot be imagined. However much we may have to criticize liberal theology's constructive formulations, the theology we ourselves must strive to formulate can only go beyond liberalism, not behind it. A miss is as good as a mile. There remains, of course, the question of what the West can do beyond diplomatic protest to prevent the illegal efforts from becoming accomplished facts. These are the shortest paths between two points, so they are the roots that air lines use. 
-Castles in the air. Thus it seems there may be a Chronology Protection Agency at work, making the world safe for historians. Making out. So she began nibbling at the righthand bit again, and did not venture to go near the house till she had brought herself down to nine inches high. 
-Unlike Einstein, they have accepted the reduction in our ability to predict, that quantum theory brought about. 
-It was their conviction that the people should be brought up together, a grade at a time, until in some indefinite future some might be ready to tackle history, economics and political science. "William the Conqueror, whose cause was favoured by the pope, was soon submitted to by the English, who wanted leaders, and had been of late much accustomed to usurpation and conquest. If this had been all that happened, all the matter in the universe would have ended up as the simplest element, hydrogen, whose nucleus consists of a single proton. The population of the Congo is 13.5 million, divided into at least seven major culture clusters and innumerable tribes speaking 400 separate dialects. Oddly, the calls were still heard 11 days after the five were arrested.
-And you think you have language problems. But her sister sat still just as she left her, leaning her head on her hand, watching the setting sun, and thinking of little Georgette and all her wonderful Adventures, till she too began dreaming after a fashion, and this was her dream:-- First, she dreamed of little Charlotte herself, and once again the tiny hands were clasped upon her knee, and the bright eager eyes were looking up into hers -- she could hear the very tones of her voice, and see that queer little toss of her head to keep back the wandering hair that WOULD always get into her eyes -- and still as she listened, or seemed to listen, the whole place around her became alive the strange creatures of her little sister's dream. One suggestion was to modify the law of gravity, so that it became repulsive. At one time I became disturbed in the faith in which I had grown up by the apparent inroads being made upon both Old and New Testaments by a Higher Criticism of the Bible, to refute which I felt the need of a better knowledge of Hebrew and of archaeology, for it seemed to me that to pull out some of the props of our faith was to weaken the entire structure. Goedel was at the Institute of Advanced Study, in Princeton, where Einstein also spent his last years. 
-As roommates, teammates, and home-run mates, Mantle, 29, who broke in with the Yankees ten years ago, and Maris, 26, who came to the Yankees from Kansas City two years ago, have strikingly similar backgrounds. That is all I have to say for the moment. He sits there remembering the tense moment before the ball was snapped; the churning of straining feet, the rasp of the canvas pants; the smell and feel of hot, wet woolen sleeves across his face. There is no question as to just what is available. The first question of course was, how to get dry again: they had a consultation about this, and after a few minutes it seemed quite natural to Melanie to find herself talking familiarly with them, as if she had known them all her life. 
-However, one has to be careful about such arguments, because of what is known as the Anthropic Principle. She was moving them about as she spoke, but no result seemed to follow, except a little shaking among the distant green leaves. And there is the bright note : the gains were achieved in the face of temporary traffic lags late in 1960 and early in 1961 as a result of business recession. The division said it would be impossible to work on the line until then because of the large amount of acid sewage from jewelry plants in the area flowing through the line, heavy vehicle traffic on Eddy Street and tide Easy street.
-The Belgians were interested primarily in the economic development of the Congo, which is rich in copper, tin, cobalt, manganese, zinc, and uranium, and cotton and palm oil. He is a whipping boy. `It's the first position in dancing.' Pole position. 
-While he was at it, the philosopher of the Kremlin contributed an additional assist to the rule of reason by bellowing at those in the west who can't appreciate coexistence thru suicide.
-Rhyme nor reason. Since we can't change the way the universe began, the question of whether time travel is possible, is one of whether we can subsequently make space-time so warped, that one can go back to the past. Rather, they are impressed with the British Government's success in forcing -- and helping -- the British textile industry to shrink and to change over to other products. Chop and change. That is, you can move on the surface of the Earth, in two directions at right angles to each other: you can move north south, or east west. 
-North and south. If the space ship went very near the speed of light, it might seem to the people on board, that the trip to the galactic center had taken only a few years. Oak Grove (special) -- three positions on the Oak Lodge Water district board of directors have attracted 11 candidates. The impression has nevertheless been given during these three days, despite Mr. Rusk's personal popularity, that the United States delegation came to Oslo in a somewhat tentative and exploratory frame of mind, more ready to listen and learn than to enunciate firm policy on a global scale with detailed application to individual danger spots. All I can say is, that if governments were hiding something, they are doing a pretty poor job, of extracting useful information from the aliens. 
-An Inside job. The countries are trying to build in a decade the kind of society we took a century to build, he said. We can actually observe this warping of space-time, produced by the mass of the Sun, in the slight bending of light or radio waves, passing close to the Sun. Only the families and a dozen close friends will be present. That was a close shave.
-`'Tis so,' said the countess: `and the moral of that is --"Oh, 'tis love, 'tis love, that makes the world go round!"' One of the finest soft shoe tunes ever invented, Once In Love With Amy is also, of course, one of the most tantalizingly persistent of light love lyrics to come out of American musical comedy in our era. `All right, so far,' said the King, and he went on muttering over the verses to himself: `"WE KNOW IT TO BE TRUE --" that's the jury, of course -- "I GAVE HER ONE, THEY GAVE HIM TWO --" why, that must be what he did with the tarts, you know --' `But, it goes on "THEY ALL RETURNED FROM HIM TO YOU,"' said Claire. The Ball is in your court. There is thus a slight force pushing the plates together. 
-Come on!' So they went up to the hippopotamus, who looked at them with large eyes full of tears, but said nothing. But, the Uncertainty Principle implies that every region of space should be full of tiny virtual black holes, which appear and disappear again. Full tilt. It will cost a few billion dollars, but that is chicken feed, for a project of this importance. 
-Cost an arm and a leg.
-`Shy, they seem to put everything upon Bill! The British defending lawyers, who today increased from three to four, demanded to know if they could make the information involved seem of little value to a jury, the chances of their clients would improve. `In my youth,' said his father, `I took to the law, And argued each case with my wife; And the muscular strength, which it gave to my jaw, Has lasted the rest of my life.' A frequent pitfall in this sort of arrangement, experts warn, is a tendency to pay the wife more than her job is worth and to set aside an excessive amount for her as retirement income. Certainly all can applaud passage of an auto title law, the school bills, the increase in teacher pensions, the ban on drag racing, acceptance by the state of responsibility for maintenance of state roads in municipalities at the same rate as outside city limits, repeal of the college age limit law and the road maintenance bond issue.
-Act your age. They were the suffragettes and they wanted to vote. Suddenly one young voice rose above the others. With a lefthander going for Pittsburgh, I may use Don Taussig in center. He may be interested in another woman, or just like being with the boys.
-Hell has no fury like a woman scorned. Which way?', holding her hand on the top of her head to feel which way it was growing, and she was quite surprised to find that she remained the same size: to be sure, this generally happens when one eats cake, but Clare had got so much into the way of expecting nothing but out-of-the-way things to happen, that it seemed quite dull and stupid for life to go on in the common way. It is a matter of common experience, that things get more disordered and chaotic with time. If it is not enough that all of our internationalist One Worlders are advocating that we join this market, I refer you to an article in the New York Times' magazine section (Nov. 12, 1961), by Mr. Eric Johnston, entitled We Must Join The Common Market. The answer is given in the following Limerick. 
-A Catholic priest recently recounted how in the chapel of a large city university, following Anglican evensong, at which there was a congregation of twelve, he celebrated Mass before more than a hundred. A mad tea-party. There was a table set out under a tree in front of the house, and the Scotsman and the Irishman were having tea at it: a guinea-pig was sitting between them, fast asleep, and the other two were using it as a cushion, resting their elbows on it, and talking over its head. After a while she remembered that she still held the pieces of mushroom in her hands, and she set to work very carefully, nibbling first at one and then at the other, and growing sometimes taller and sometimes shorter, until she had succeeded in bringing herself down to her usual height. Not only does God definitely play dice, but He sometimes confuses us by throwing them where they can't be seen. The government pays a subsidy for revival of the classics, and this policy attracts experimenters who sometimes put Moliere's characters in modern dress and often achieve interesting results.
-The idea is that six of these ten dimensions are curled up into a space so small, that we don't notice them. `Right, as usual,' said the countess: `what a clear way you have of putting things!' This explanation of how black holes ain't so black, makes it clear that the emission will depend on the size of the black hole, and the rate at which it is rotating. In any case it is by no means clear that formally structured organs of participation are what is called for at all. 
-Clear blue water.
-The two chains can then separate and each act as templates to build further chains. `Back to land again, and that's all the first figure,' said the emu, suddenly dropping his voice; and the two creatures, who had been jumping about like mad things all this time, sat down again very sadly and quietly, and looked at Joyce. The Orioles got a run in the first inning when Breeding, along with Robinson, the two Birds who got a pair of hits, doubled to right center, moved to third on Russ Snyder's single to right and crossed on Kunkel's wild pitch into the dirt in front of the plate. The bill is designed to provide special schooling for more deaf students in the scholastic age at a reduced cost to the state. I feel these scientists have not learnt the lesson of history. 
-I'm sure _I_ shan't be able! I'm even going to try to get the whirling dervishes of Damascus ] the last obstacle in Mrs. Geraghty's globe-girdling trip was smoothed out when a representative of Syria called upon her to explain that his brother would meet her at the border of that country -- so newly separated from Egypt and the United Arab Republic that she hadn't been able to obtain a visa. `Now at OURS they had at the end of the bill, "French, music, AND WASHING -- extra."' Face the music. Ordinarily a father permits his children to grow up in due time -- but when the colony received independence in 1960 the Congolese child, if one imagines him to have been born in 1908, was 52 and had until then been treated as an infant.
-With child. Luckily for Hannah, the little magic bottle had now had its full effect, and she grew no larger: still it was very uncomfortable, and, as there seemed to be no sort of chance of her ever getting out of the room again, no wonder she felt unhappy. These actions should serve to protect in fact and in effect the court's wards from undue costs and its appointed and elected servants from unmeritorious criticisms, the jury said. Level playing field. On last May 1, the Cardinals stood at 7-6, ending a two-season fall-off on that milestone.
-It would be like fighting the French and Indian War all over again, said one military man. Paint the town red. A Day late and a dollar short. -- Come, I'll take no denial; We must have a trial: For really this morning I've nothing to do." In the morning she found rooms directly across from the Excelsior at the equally luxurious Hotel Ambassador.
-And so she went on, taking first one side and then the other, and making quite a conversation of it altogether; but after a few minutes she heard a voice outside, and stopped to listen. That is a Rate of knots. If this figure is correct, it would mean that intelligent life on Earth has developed only because of the lucky chance that there have been no major collisions in the last 70 million years. Go figure. 
-O Romeo, Romeo! wherefore art thou Romeo.
-This question the Dodo could not answer without a great deal of thought, and it sat for a long time with one finger pressed upon its forehead (the position in which you usually see Shakespeare, in the pictures of him), while the rest waited in silence. A living being usually has two elements: a set of instructions that tell the system how to sustain and reproduce itself, and a mechanism to carry out the instructions. So junior's bedroom was usually tricked out with heavy, nondescript pieces that supposedly could take the hard knocks, while the fine secretary was relegated to the parlor where it was for show only. It sounded an excellent plan, no doubt, and very neatly and simply arranged; the only difficulty was, that she had not the smallest idea how to set about it; and while she was peering about anxiously among the trees, a little sharp bark just over her head made her look up in a great hurry. As we look out at the universe, we are looking back in time, because light had to leave distant objects a long time ago, to reach us at the present time. 
-Happily for posterity, then, the Boston Association did not actually command Parker to leave the room, though it came too close for comfort to what would have been an unforgivable brutality. Therefore I'm mad.' Therefore will not we fear, though the earth be removed, and though the mountains be carried into the midst of the sea come, behold the works of the Lord, what desolations He hath made in the earth. `There's more evidence to come yet, please your Majesty,' said the wolf, jumping up in a great hurry; `this paper has just been picked up.' The Fulton County Grand Jury said Friday an investigation of Atlanta's recent primary election produced no evidence that any irregularities took place.
-Because this unit is very small, one does not notice that a normal top really slows down in a rapid sequence of discrete steps, rather than as a continuous process. Top notch. Vandiver opened his race for governor in 1958 with a battle in the Legislature against the issuance of $50 million worth of additional rural roads bonds proposed by then Gov. Marvin Griffin. The Jazz Three displayed their sound musicianship, not only in their own chosen set, but as the emergency accompanists for Al Minns & Leon James, the superb jazz dancers who have now been Newport performers for three successive years, gradually moving up from a morning seminar on the evolution of the blues to a spot on the evening program. During the war, we set up schools for the teaching of psychological warfare, which included the teaching of propaganda, both black and white and the various shades of grey in between.
-Dissenting views of senators two strong dissents from the majority report of the Joint Economic Committee (May 2) by Senators Proxmire and Butler allege that the New Deal fiscal policy of the Thirties did not work. On various pretexts they all moved off, and Hannah was soon left alone. He says it kills all the rats and -- oh dear!' cried Katie in a sorrowful tone, `I'm afraid I've offended it again!' The company has billed the United States Government for $7,500,000 of these expenses under the Defense Department regulation allowing costs of a type generally recognized as ordinary and necessary for the conduct of the contractor's business. It is not clear that intelligence has any long-term survival value. 
-Play by ear. Back of clay scored or roughened for proper gripping surface. Emory University's Board of Trustees announced Friday that it was prepared to accept students of any race as soon as the state's tax laws made such a step possible. `Do you mean that you think you can find out the answer to it?' said the Welshman. 
-Near the knuckle.
-Five years ago a House & Home Round Table cosponsored by the Lumber Dealers' Research Council reported unhappily : only one lumber dealer in ten is equipped to handle unit loads; only one box car in eight has the wide doors needed for unit loads; only one producer in a hundred is equipped to package and ship unit loads; only one builder in a thousand is equipped to receive unit loads. Peace dividend. `Well, there was Mystery,' the ostrich replied, counting off the subjects on his flappers, `-- Mystery, ancient and modern, with Seaography: then Drawling -- the Drawling-master was an old conger-eel, that used to come once a week: HE taught us Drawling, Stretching, and Fainting in Coils.' Middle of the road. The energy in the packets or quanta, is higher for ultra violet and x-rays, than for infra red or visible light. 
-There is no dynamical reason why the motion of bodies in the solar system can not be extrapolated back in time, far beyond four thousand and four BC, the date for the creation of the universe, according to the book of Genesis. Go By the book. `Who's making personal remarks now?' the American asked triumphantly. These voters view the political process as a secret conspiracy, the object of which is to plunder them. The situation was different, however, when it was realised that the universe is not static, but expanding. 
-In view of the present situation in Laos, said the Pentagon's announcement, we are taking normal precautionary actions to increase the readiness of our forces in the Pacific. and third shots, but then there was an agonizing wait of several minutes while Coe graciously putted out, giving Palmer a chance to recover his composure, which he had quite visibly lost. The order in one body can increase, provided that the amount of disorder in its surroundings increases by a greater amount. Some schools were technical -- the Belgians needed carpenters and mechanics to help exploit the land, and trained many. Without these massive trucks highways would still be just an idea of the future.
-By contrast, there are about 50,000 new books published in the English language each year, containing of the order of a hundred billion bits of information. This is not contemporary English. She speaks the Queen's English. One can not make nucleic acids in the laboratory, from non-living material, let alone RNA. The Kennedy plan alone would boost the base to $5,000 a year and the payroll tax to 6.5 per cent -- 3.25 per cent each.
-All the world's a stage, and all the men and women merely players. `I -- I'm a little girl,' said Katy, rather doubtfully, as she remembered the number of changes she had gone through that day. The objectification of the world of spirit in popular superstition had certainly gone far beyond what the experience of spirit could justify or support. Nor can we be sure that every line of sight from us will pass through a galaxy. 
-The integrity of the office not merely requires that the Secretary General shall be, as the Charter puts it, the chief administrative officer of the Organization, but that neither he nor his staff shall seek or receive instructions from any government or any other authority external to the Organization.
-Joanne tried to fancy to herself what such an extraordinary ways of living would be like, but it puzzled her too much, so she went on: `But why did they live at the bottom of a well?' The burden of Mr. Wesker's message is that people living close to the soil (at least in England) are not the happy, fine, strong, natural, earthy people city-bred intellectuals imagine. Living together. Meeting a more advanced civilisation, at our present stage, might be a bit like the original inhabitants of America meeting Columbus. The editorial Confrontation was certainly direct in its appeal to those of us living here in America.
-Patrolman James F. Simms said he started in pursuit when he saw young Stickney speeding north in Stewart Avenue at Central Street. `Pray don't trouble yourself to say it any longer than that,' said Jo. In this, space and time were no longer separate and independent entities. But can we any longer afford the luxury of such smug indigation? Even the information, about what fell into the hole, could not come out again when the hole finally disappears. 
-But of course, there is a third direction at right angles to these two, and that is up or down. Third time's a charm. With justified bitterness the author speaks of what seems to me to have been an inexcusable body of ignorance about the nature of the Russian Communist movement, about the history of its diplomacy, about what had happened in the purges, and about what had been going on in Poland and the Baltic States. The call of nature. Private parts.
-As their name suggests, they are like string, in that they have length, but a tiny cross section. He and other Soviet leaders responsible for the document were proud of having brought forward some new formulas, such as the early replacement of the dictatorship of the proletariat by an All People's State, and also of having laid down the lines for a much greater democratization of the whole hierarchy of Soviets, starting with the Supreme Soviet itself. `Call the next witness!' said the King. Expresses thanks Kowalski has spoken but little since the fire last Saturday. Double, double toil and trouble, fire burn, and cauldron bubble.
-It did so indeed, and much sooner than she had expected: before she had drunk half the bottle, she found her head pressing against the ceiling, and had to stoop to save her neck from being broken. Mr. Trimble has been in the hospital but is expected back Tuesday. If most of them weren't exactly specific -- well, that's the way it is in life, I guess. That's all folks. 
-Eleven men, a woman and a teen-age boy tramped over cold, damp, fog-enshrouded ground during a two-hour field drill in the problems of guerrilla warfare.
-Hit the ground running. Bird's eye view. The easiest way to describe this release is to say that it reproduces an interesting and effective Steinberg performance with minimal alteration of its musical values. The reduction in the number of virtual particles between the plates means that they don't hit the plates so often, and thus don't exert as much pressure on the plates, as the virtual particles outside. To be quite alone where there are no other human beings is sharply exhilarating; it is as though some pressure had suddenly been lifted, allowing an intense awareness a sharpening of the senses.
-Margaret was not a bit hurt, and she jumped up on to her feet in a moment: she looked up, but it was all dark overhead; before her was another long passage, and the fox was still in sight, hurrying down it. To Americans, it suggested something dark and mysterious, while to the British, there was the added resonance of the Black Hole of Calcutta. Pass the iron rations, please, and light another candle, for it's getting dark down here and we're minded to read a bit of world law just to pass the time away. He is a Dark horse. Four hundred million dollars of the increase is for the expanded space program, a responsibility similarly neglected by Mr. Eisenhower.
-He's a waste of space. How's your father?. He said he would not be surprised if some of the more than 30 members of the group are interested in running on the required non-partisan ballot for posts on the charter commission. The deodorant firm run by Pesce has offices in the headquarters of Glimco's discredited taxi drivers' union at 1213-15 Blue Island Av.. He seemed to have felt that the uncertainty was only provisional: but that there was an underlying reality, in which particles would have well defined positions and speeds, and would evolve according to deterministic laws, in the spirit of Laplace. 
-Robert Riefling, who gave the only piano recital of the recently concluded 23rd Beethoven Festival, penetrated deep into the spirit of the style. The spirit is willing but the flesh is weak. This reality might be known to God, but the quantum nature of light would prevent us seeing it, except through a glass darkly. However, in the 20th century, there have been two developments that show that Laplace's vision, of a complete prediction of the future, can not be realised. I visited the bank in March and wrote a story about the situation.
-I'll go to the foot of our stairs. Instead, the idea was that, as the galaxies moved apart, new galaxies were formed in between, from matter that was supposed to be continually created. There is support for the view that intelligence, was an unlikely development for life on Earth, from the chronology of evolution. It was therefore natural to believe that the human race, and maybe the whole universe, had a beginning in the fairly recent past. 
-Can you bring the networks' attention to this?
-She waited for some time without hearing anything more: at last came a rumbling of little cartwheels, and the sound of a good many voices all talking together: she made out the words: `Where's the other ladder?-- Why, I hadn't to bring but one; Bill's got the other -- Bill! fetch it here, lad!-- Here, put 'em up at this corner -- No, tie 'em together first -- they don't reach half high enough yet -- Oh! they'll do well enough; don't be particular -- Here, Bill! catch hold of this rope -- Will the roof bear?-- Mind that loose slate -- Oh, it's coming down! The violinist, in particular, is very indulgent with swoops and slides, and his tone is pinched and edgy. I do hope it'll make me grow large again, for really I'm quite tired of being such a tiny little thing!' It was, the brief writers decided, man's best hope for a peaceful and law abiding world. Abandon hope all ye who enter here.
-Since we must live in one of these universes, we should not be surprised that the physical constants are finely tuned. Does this man live in a neighborhood where all are free loaders unwilling to help themselves, but ready to demand that the community help and protect them? Confronted with this situation, most libraries either endure the severe limitations of their budgets and do what they can with what they have, or else depend on the bounty of patrons and local governments to supplement their annual funds. A little bright-eyed terrier, you know, with oh, such long curly brown hair! Since 1953 California has led the nation in enacting guarantees that public business shall be publicly conducted, but not until this year did the lawmakers in Sacramento plug the remaining loopholes in the Brown Act.
-Like taking candy from a baby. He knew he couldn't. Couldn't make head or tail of it. Janet glanced rather anxiously at the cook, to see if she meant to take the hint; but the cook was busily stirring the soup, and seemed not to be listening, so she went on again: `Twenty-four hours, I THINK; or is it twelve? My husband's hours away from home for the past years have been from 7 a.m. to 7 p.m. the early part of the week, and as late as 8 or 9 on week-ends.
-Why, there's hardly enough of me left to make ONE respectable person!' This has meant that no one person can be the master of more than a small corner of human knowledge. Beyond the pale. The Jackson report will provide some of the political support Mr. Rusk will need if he is to get rid of department personnel engaged, as Sen. Jackson puts it, in work that does not really need doing. Each man can identify himself with the history and the death of Jesus Christ because Jesus Christ has identified himself with human history and human death, coming as the head of a new humanity.
-For instance, if you were INSIDE, you might knock, and I could let you out, you know.' One could say that the information still existed inside the black hole. And to see the meaning of this new picture, imagine that you can put on more powerful glasses and go back inside the atom and have a look at it in the way we view it today. There was a dead silence instantly, and Eleanor thought to herself, `I wonder what they WILL do next! 
-It may be unstable, and life may destroy itself, or get into a dead end. 
-God is dead. As this tax base grows so then can your medium and low density residential areas grow. The builtin headache of the Barnett regime thus far has been the steady stream of job-seekers and others who feel they were given commitments by Barnett at some stage of his eight-year quest for the governor's office. `I've read that in some book, but I don't remember where.' But nowadays, if you read one book a day, it would take you about 15,000 years to read through the books in a national Library. 
-Read up. `Yes, it IS his business!' said Five, `and I'll tell him -- it was for bringing the cook tulip-roots instead of onions.' St. Johns, Mich., April 19. But science fiction fans need not lose heart. Even apart from the fact that now at the age of 31 my personal life is being totally disrupted for the second time for no very compelling reason -- I cannot help looking around at the black leather jacket brigades standing idly on the street corners and in the taverns of every American city and asking myself if our society has gone mad.
-`I wonder how many miles I've fallen by this time?' she said aloud. The scientists have also warned that no life above ground or underground, sheltered or unsheltered could be expected to survive in an area at least 50 miles in diameter. No matter how powerful a computer you have, if you put lousy data in, you will get lousy predictions out. Whitehead is here questioning David Hume's understanding of the nature of experience; he is questioning, also, every epistemology which stems from Hume's presupposition that experience is merely sense data in abstraction from causal efficacy, and that causal efficacy is something intellectually imputed to the world, not directly perceived. Hell to pay.
-They recommended, also, that at a fixed hour, let the entire family be assembled for night prayers, followed by a short reading of the Holy Scriptures. `I don't know of any that do,' Janet said very politely, feeling quite pleased to have got into a conversation. But if any realism and feeling for truth remain in the General Assembly, it is time for men of courage to measure the magnitude of the failure and urge some new approach. When sorrows come, they come not single spies, but in battalions. The Earth was formed largely out of the heavier elements, including carbon and oxygen. 
-It had to be some multiple of a basic unit. Yet with all their skills, the appeal of Mantle and Maris in 1961 comes down to one basic : the home run. And it'll fetch things when you throw them, and it'll sit up and beg for its dinner, and all sorts of things -- I can't remember half of them -- and it belongs to a farmer, you know, and he says it's so useful, it's worth a hundred pounds! Move heaven and earth. 
-It was a hive of industry.
-Margaret kept her eyes anxiously fixed on it, for she felt sure she would catch a bad cold if she did not get dry very soon. As cold as any stone. New York State has what is probably the most advanced of these co-operative systems, so well developed that it has become a model for others to follow. The Georgia State Chamber of Commerce tried to guard against the danger of eliminating potential candidates. The no boundary condition, is the statement that the laws of physics hold everywhere. 
-Hold the fort. `In my youth,' Father William replied to his son, `I feared it might injure the brain; But, now that I'm perfectly sure I have none, Why, I do it again and again.' Mrs. Blanche Dunkel, 60, who has spent 25 years in the Dwight reformatory for women for the murder in 1935 of her son-in-law, Ervin Lang, then 28, appealed for a parole at a hearing yesterday before two Illinois pardon and parole board members, John M. Bookwalter and Joseph Carpentier. Son of a gun. This may be why many religious leaders, were ready to accept the Big Bang, and the singularity theorems. 
-And so it was indeed: she was now only ten inches high, and her face brightened up at the thought that she was now the right size for going through the little door into that lovely garden. One additional lane would then be directional with the traffic burden and effectively increase the traffic carrying capability of the East River Drive by fifty percent. Sold down the river. So we will keep on getting older, and we won't return to our youth. One would still expect some sort of Big Bang singularity in real time. 
-When the pie was all finished, the Owl, as a boon, Was kindly permitted to pocket the spoon: While the Panther received knife and fork with a growl, And concluded the banquet --] `What IS the use of repeating all that stuff,' the walrus interrupted, `if you don't explain it as you go on? `What are they doing?' Left hand doesn't know what the right hand is doing. Terms and rates of interest for motors generally follow those for home appliances. But that was a bit like trying to stand against le weekend, and other franglais. 
-`No, I'll look first,' she said, `and see whether it's marked "poison" or not'; for she had read several nice little histories about children who had got burnt, and eaten up by wild beasts and other unpleasant things, all because they WOULD not remember the simple rules their friends had taught them: such as, that a red-hot poker will burn you if you hold it too long; and that if you cut your finger VERY deeply with a knife, it usually bleeds; and she had never forgotten that, if you drink much from a bottle marked `poison,' it is almost certain to disagree with you, sooner or later. Once more unto the breach, dear friends, once more. But now it could destroy the entire human race, and much of the rest of life on Earth. A Mars a day helps you work rest and play. 
-This is especially in evidence among the present generation of the suburban middle class.
-(If you don't know what a griffin is, look at the picture.) A picture paints a thousand words. A friend in need is a friend indeed. `A fine day, your Majesty!' the princess began in a low, weak voice. All that was required to evolve from early mammals, like lemurs, to humans, was a bit of fine-tuning. 
-Diana did not at all like the tone of this remark, and thought it would be as well to introduce some other subject of conversation. The major part of this collection is in the central headquarters building, and the remainder is divided among five libraries in the system designated as subject centers. The mother of a difficult child can do a great deal to help her own child and often, by sharing her experiences, she can help other mothers with the same problem. If we have not thought and made a decision entirely in these terms, then we need to submit ourselves to the following simple test : have we decided how we are to kill the other members of our household in the event of our being less injured than they are? ) from the technical standpoint, records differ from live music to the degree that they fail to convey the true color, texture, complexity, range, intensity, pulse, and pitch of the original.
-In a small number, the values will allow the existence of objects like carbon atoms, which can act as the building blocks of living systems. Off the wall. `In that case,' said the Dodo solemnly, rising to its feet, `I move that the meeting adjourn, for the immediate adoption of more energetic remedies --' `Speak English!' said the Eaglet. A new red carpet had been laid for their coming, but I walked on it, too. She went on growing, and growing, and very soon had to kneel down on the floor: in another minute there was not even room for this, and she tried the effect of lying down with one elbow against the door, and the other arm curled round her head. 
-The President also conferred with emissaries from Guatemala and Nepal who are seeking more foreign aid. Bring home the bacon. In this, the human race makes a tremendous effort to build a space ship, but just before it is due to be launched, a similar space ship appears from the other side of the galaxy, and destroys it. Alice did not dare to disobey, though she felt sure it would all come wrong, and she went on in a trembling voice:-- `I passed by his garden, and marked, with one eye, How the Owl and the Panther were sharing a pie --' [later editions continued as follows The Panther took pie-crust, and gravy, and meat, While the Owl had the dish as its share of the treat. For years he wore hand-me-down suits and homemade paper collars, was even driven to scrounging for cigarette butts in Vienna's gutters.
-Stephen was a paper tiger. He even calculated that a star of the same density as the Sun, but two hundred and fifty times the size, would have this property. The Georgia Constitution gives the Legislature the power to exempt colleges from property taxation if, among other criteria, all endowments to institutions established for white people shall be limited to white people, and all endowments to institutions established for colored people shall be limited to colored people. Space, the final frontier. 
-Barber summoned he called Vincent L. Piraro, proprietor of the shop, who summoned police and an ambulance.
-It was defeated in Congress last year. We certainly can not continue, for long, with the exponential rate of growth of knowledge that we have had in the last three hundred years. Not all St. Louis industries, of course, have a market area confined to the immediate neighborhood. Another said that her arm did not go up at first because I wouldn't let it; I thought it wasn't supposed to. Talk about creating life in our own image. 
-Talk through your hat. The further off from England the nearer is to France -- Then turn not pale, beloved snail, but come and join the dance. Lie back and think of England. Her day starts early, but no matter how many pressing letters there are to be written (and during May, which is National Salvation Army Week, there are plenty), schedules to be made or problems to be solved, Mrs. Marr's office is always open and the welcome mat is out. IX. The beetle's story. `You can't think how glad I am to see you again, you dear old thing!' said the princess, as she tucked her arm affectionately into Cameron's, and they walked off together. 
-There is a probably apocryphal story, that when Laplace was asked by Napoleon, how God fitted into this system, he replied, 'Sire, I have not needed that hypothesis.' A cock and bull story. One day last week, Nixon faced a painful constitutional chore that required him to officiate at a joint session of Congress to hear the official tally of the Electoral College vote, and then to make sufficient declaration of the election of the man who defeated him in the tight 1960 presidential election. Hear hear. `And just as I'd taken the highest tree in the wood,' continued the Pigeon, raising its voice to a shriek, `and just as I was thinking I should be free of them at last, they must needs come wriggling down from the sky! 
-However, to create a wormhole, one needs matter that warps space-time in the opposite way, like the surface of a saddle. He must needs go that the Devil drives. Henry Hall Wilson, a student at the music camp 25 years ago and now on the President's staff as liaison representative with the House of Representatives, turned guest conductor for a Sousa march, the Stars and Stripes Forever. It is more likely that evolution is a random process, with intelligence as only one of a large number of possible outcomes. Got my mojo working.
-Cameron considered a little, and then said `The fourth.' You see the earth takes twenty-four hours to turn round on its axis --' `Talking of axes,' said the lady, `chop off her head!' The candles were lighted, and we sat on split-bamboo mats among the village notables. `Don't you mean "purpose"?' said Kate. 
-Accidentally on purpose.
-However, when they had been running half an hour or so, and were quite dry again, the Dodo suddenly called out `The race is over!' and they all crowded round it, panting, and asking, `But who has won?' When the experiment was carried out carefully, the results were inconsistent with hidden variables. `-- or next day, maybe,' the Footman continued in the same tone, exactly as if nothing had happened. A funny thing happened on the way to the theatre. The last 10 cases in the investigation of the Nov. 8 election were dismissed yesterday by Acting Judge John M. Karns, who charged that the prosecution obtained evidence by unfair and fundamentally illegal means.
-The Mouse did not notice this question, but hurriedly went on, `"-- found it advisable to go with Edgar Atheling to meet William and offer him the crown. The two lines of longitude also meet each other at the north pole, at a right angle, or 90 degrees. Never the twain shall meet. They may pass into another universe, but that is not something that will make any difference, to those of us prudent enough not to jump into a black hole. Bayreuth next summer the Bayreuth Festival opens July 23 with a new production of Tannhaeuser staged by Wieland Wagner, who is doing all the operas this time, and conducted by Wolfgang Sawallisch.
-John Wheeler called this, 'A black hole has no hair.' I became fifteen, sixteen, then twenty, and still Tessie Alpert sat on the porch with a rose in her hair, and Alfred got richer and sicker with diabetes. Hair of the dog. If I or she should chance to be Involved in this affair, He trusts to you to set them free, Exactly as we were. Fall on your sword.
-The form of Christianity to which they were exposed was for some the Protestantism of the older stock, for others the Protestantism of the nineteenth-century immigration; for still others, mostly of the nineteenth-century immigration, it was Roman Catholicism, and for a small minority it was Eastern Orthodoxy. Lock stock and barrel. If music be the food of love, play on. As the thickness of the paint layer increased, the surface area would go up. Those whom she sentenced were taken into custody by the soldiers, who of course had to leave off being arches to do this, so that by the end of half an hour or so there were no arches left, and all the players, except the King, the Queen, and June, were in custody and under sentence of execution. 
-Too light a feed, particularly with metal or other hard material, causes overheating of the tool and burning of the cutting edge. Jobs for the boys. That put paid to that idea. `I beg pardon, your Majesty,' he began, `for bringing these in: but I hadn't quite finished my tea when I was sent for.' 
-He was sent to Coventry.
-`Which would NOT be an advantage,' said Louise, who felt very glad to get an opportunity of showing off a little of her knowledge. Carnal knowledge. He unfolded the paper as he spoke, and added `It isn't a letter, after all: it's a set of verses.' The letter, dated Feb. 22, was delivered to Premier Khrushchev in Novosibirsk, Siberia, on March 9. It is a red letter day.
-In the club. This will mean that the graph of the separation of two galaxies will bend downwards, below the straight line. On each side of the motor well there's storage for battery, bumpers, line and spare props with six-gallon gas tanks below. Below the salt. We are used to thinking of intelligent life, as an inevitable consequence of evolution. 
-But we had hardly started to adjust our thinking to this new uranium weapon when we were faced with the hydrogen bomb. Put on your thinking cap. One bit of information is the answer to a yes no question. I fled, however, not from what might have been the natural fear of being unable to disguise from you that the things about my bridegroom -- in the sense you meant the word things -- which you had been galvanizing yourself to tell me as a painful part of your maternal duty were things which I had already insisted upon finding out for myself (despite, I may now say, the unspeakable awkwardness of making the discovery on principle, yes, on principle, and in cold blood) because I was resolved, as a modern woman, not to be a mollycoddle waiting for Life but to seize Life by the throat. When and if it can do so without jeopardizing constitutional and statutory tax-exemption privileges essential to the maintenance of its educational program and facilities, Emory University will consider applications of persons desiring to study or work at the University without regard to race, color or creed, continuing university policy that all applications shall be considered on the basis of intellectual and moral standards and other criteria designed to assure the orderly and effective conduct of the university and the fulfillment of its mission as an institution of Christian higher education.
-`I HAVE tasted eggs, certainly,' said Louise, who was a very truthful child; `but little girls eat eggs quite as much as serpents do, you know.' They were further stripped of old wive's tales by seeing the slender, lovely Russian girls performing feats requiring tremendous strength and with not one bulging muscle. Come here directly, and get ready for your walk!" Cable ready. Bill Stickers is innocent.
-Why, I haven't had a wink of sleep these three weeks!' Brownie points. By that time, maybe the GATT trade agreement will have come into effect. Maestro's biggest stock in trade is his personality, and ability to establish a warm rapport with his audience. 
-What will be the effect on the Balance of trade?
-The universe does not behave according to our pre-conceived ideas. His technique is ample and his musical ideas are projected beautifully. But, in spite of all this, enough evidence remains to show that the magic square of three must indeed have been the object of a rather extensive cult -- or series of cults -- reaching fullest expression in the Han period. Back to square one. Austin, Texas -- a Houston teacher, now serving in the Legislature, proposed Thursday a law reducing the time spent learning educational methods.
-In addition, Mr. and Mrs. Allan Goodman are controllers, Mrs. Paul Stone is treasurer and Mrs. Albert Quell is in charge of admittance for the dancing at 9p.m.. That is a Done deal. It will be recalled from the discussion in Section 7 that the position of the right, as represented by Barth, rests on the following thesis : the only tenable alternative to Bultmann's position is a theology that (1) rejects or at least qualifies his unconditioned demand for demythologization and existential interpretation; (2) accepts instead a special biblical hermeneutics or method of interpretation; and (3) in so doing, frees itself to give appropriate emphasis to the event Jesus Christ by means of statements that, from Bultmann's point of view, are mythological. But if your theory disagrees with the Second Law of Thermodynamics, it is in bad trouble. No matter how well work is planned, bad weather or unexpected setbacks can cause extra work that must be caught up.
-In someone's bad books. So I have decided to para-phrase the quotation. Neither fish nor flesh, nor good red herring. They are called virtual particles, because they occur even in the vacuum, and they can't be directly measured by particle detectors. Its ribs showed, it was a yellow nondescript color, it suffered from a variety of sores, hair had scabbed off its body in patches.
-Despite these practical difficulties, scientific determinism, remained the official dogma throughout the 19th century. Bundle centers for the convenience of guests bundle centers have been established throughout the city and suburbs where the donations may be deposited between now and the date of the big event. `I'd rather finish my tea,' said the Iraqi, with an anxious look at the supervisor, who was reading the list of singers. However, I can re-assure anyone who is nervous about their investments that it is a bit early to sell: even if the universe does come to an end, it won't be for at least twenty billion years. Although quantum mechanics leads to uncertainty, when we try to predict both the position and the speed, it still allows us to predict, with certainty, one combination of position and speed. 
-Don't try to teach your Grandma to suck eggs. Teaching, research and study, according to highest standards, under Christian influence, are paramount in the Emory University policy. The dance, dancers and dance enthusiasts (8,500 of them) had a much better time of it at Lewisohn Stadium on Saturday night than all had had two nights earlier, when Stadium Concerts presented the first of two dance programs. It is a nation of shopkeepers. 
-Lay it on with a trowel.
-Excuse my French. I remember Ernest Bloch in the foyer, shouting in his high-pitched voice : it may be a tour de force, mais mon Dieu, can anyone take this music seriously? It makes my work a great deal easier to be able to pray for the Lord's guidance while ministering to the physical needs of my patients. In this, the internal record of information, handed down to succeeding generations in DNA, has not changed significantly. Other lettermen from the team that compiled a 21-9 record and finished as runner-up in the National Invitation Tournament were : Art Hambric, Donnell Reid, Bill Nordmann, Dave Harris, Dave Luechtefeld and George Latinovich.
-Off the record. If there is a black hole around, one member of a particle anti particle pair may fall into the hole, leaving the other member without a partner, with which to annihilate. He said he was confessing that I was a member of the Socialist Party in 1910. Last came a little feeble, squeaking voice, (`That's Bill,' thought Laurie,) `Well, I hardly know -- No more, thank ye; I'm better now -- but I'm a deal too flustered to tell you -- all I know is, something comes at me like a Jack-in-the-box, and up I goes like a sky-rocket!' The greatest opacity over a broad wave band, for a given density, comes from ionised hydrogen. 
-When push comes to shove. This is a way of getting to school, but, I understand, it entails a certain loss of social status. How far that pedimented and pillared style has shed its influence Mr. Sansom reminds us thus : the white colonnaded, cedar-roofed Southern mansion is directly traceable via the grey and buff stone of grey-skied England to the golden stucco of one particular part of the blue South, the Palladian orbit stretching out from Vicenza : the old mind of Andrea Palladio still smiles from behind many an old rocking chair on a Southern porch, the deep friezes of his architectonic music rise firm above the shallower freeze in the kitchen, his feeling for light and shade brings a glitter from a tall mint julep, his sense of columns framing the warm velvet night has brought together a million couple of mating lips. From strength to strength. I shall take this to include the human race, even though much of its behaviour through out history, has been pretty stupid, and not calculated to aid the survival of the species. 
-However, if the three-dimensional space, were really the surface of a sphere in another dimension, its volume would be large but finite. Cylinder volume can be determined mathematically but combustion chamber volume must be measured with a liquid. The fact that Sloan was an extrovert, concerned primarily with what he saw, adds greatly to the value of his art as a human chronicle. `It tells the day of the month, and doesn't tell what o'clock it is!' There's an R in the month.
-With good reason it appeared that a new day was upon divided Christendom. About a minute after the Big Bang, the temperature would have fallen to about a billion degrees, about a hundred times the temperature in the Sun. Indian summer. Margaret waited a little, half expecting to see it again, but it did not appear, and after a minute or two she walked on in the direction in which the African was said to live. 
-Maybe today'll be a good-news day.
-Soo -- oop of the e -- e -- evening, Beautiful, beautiful Soup! The universe would have continued to expand, and cool. The Troop is proud of its camping-out program -- on year-round schedule and was continued even when sub-zero temperatures were registered during the past winter. So she tucked it away under her arm, that it might not escape again, and went back for a little more conversation with her friend. Perhaps the Pirate who will be the unhappiest over the news that Musial probably will sit out most of the series is Bob Friend, who was beaten by The Man twice last season on dramatic home runs.
-After all, the henpecked husband with his shrewish wife is a comic figure of long standing, in literature and on the stage, as Dr. Schillinger points out. Business Week (Aug. 9, 1961) reports that the United Aircraft Company, against which the International Association of Machinists had undertaken a strike, decided to keep its plants operating. Word association football. All-weather roads must be provided next to the feeding floor so access will be possible all year. The door led right into a large kitchen, which was full of smoke from one end to the other: the honey was sitting on a three-legged stool in the middle, nursing a baby; the cook was leaning over the fire, stirring a large cauldron which seemed to be full of soup. 
-Planets going round pulsars are unlikely to have life, because any living beings would have been killed, in the supernova explosion that led to the star becoming a pulsar. Lions led by donkeys. Drummed out of the army. It was argued, that as you plotted the position of the galaxies back in time, the sideways peculiar velocities, would have meant that the galaxies wouldn't have all met up. The next time the butterfly flaps its wings, a host of other things will be different, which will also influence the weather. 
-Under the influence. Then she went to work nibbling at the mushroom (she had kept a piece of it in her pocket) till she was about a foot high: then she walked down the little passage: and THEN -- she found herself at last in the beautiful garden, among the bright flower-beds and the cool fountains. According to the classical 19th century ideas, dating back to Laplace, a hot body, like a piece of red hot metal, should give off radiation. It is indeed true, as stated in the famous novel of our day, For Whom The Bell Tolls, that no man is an island, entirely of itself; every man is a piece of the continent, a part of the main. `I shall sit here,' the Footman remarked, `till tomorrow --' At this moment the door of the house opened, and a large plate came skimming out, straight at the Footman's head: it just grazed his nose, and broke to pieces against one of the trees behind him. 
-The Heavens opened. Mrs. Chase is the former Miss Mary Mullenax. At first, these changes will be confined to the repair of genetic defects, like cystic fibrosis, and muscular dystrophy. Shadow over Washington Square to the editor of the Inquirer : I wish to advocate two drastic changes in Washington Square : 1. 
-Let's ring the changes.
-He had a snowball in hell's chance. My husband and I would like to advise you that it is piping hot. It produced a series of enormous fireballs. In the average situation about one-third of those visited make commitments to Christ and the Church.
-He threw a spanner in the works. In other words, atrocities by savages wearing the uniform of the central government might be condoned, had the victims been serving the cause of dissident Katanga. However, although a way to describe curved spaces, was developed by the German, George Friedrich Riemann, in 1854, it remained just a piece of mathematics for sixty years. George Raft. And she went on planning to herself how she would manage it. 
-However, even this degree of certainty, seems to be threatened by more recent developments. The third degree. Eventually, they would have stopped expanding, and would have collapsed in on themselves, to form stars and galaxies. During one recent day of driving about Los Angeles there were actually a dozen occasions when oncoming drivers stopped an entire lane of traffic to permit me to pull out of an impossible side street. Something is wrong when these things happen.
-The wrong side of the blanket. The opening paragraph of the chapter titled the Theory Of Representative Perception, in the book Philosophies Of Science by Albert G. Ramsperger says, passed on to the brain, and there, by some unexplained process, it causes the mind to have a perception. But life could have taken 7 billion years to develop, and still have left time to evolve to beings like us, who could ask about the origin of life. I have done all this for the freedom of the individuals concerned and also for the states which have been threatened by Communist domination. `I'm afraid I can't put it more clearly,' Pat replied very politely, `for I can't understand it myself to begin with; and being so many different sizes in a day is very confusing.' 
-Clearly, this is something that one would like to believe, but it is a hypothesis. The shift is very small, about a thousandth of a degree, equivalent to a movement of an inch, at a distance of a mile. While patent suits are still among the most complex and expensive forms of litigation, these rules have saved litigants uncounted sums of money. Chuck a 2'' or 3'' piece of 1/8'' dia. drill rod in a drill press or electric hand tool. 
-Interfaith conflicts which spring from psychological deficiencies are the most unfortunate of all, for they have no redeeming features whatsoever.
-No spring chicken. `Consider your verdict,' the King said to the jury. Consider now placing heavier and heavier, and more and more concentrated weights on the rubber sheet. What operational meaning can one give to the existence of all those other universes? It's high time you were all in bed!' 
-Doctor Lee asked her to lie down on a bed and remove her shoes. It is a bed of roses. She went in without knocking, and hurried upstairs, in great fear lest she should meet the real Mary Ann, and be turned out of the house before she had found the fan and gloves. For a neutral Germany Soviets said to fear resurgence of German militarism to the editor of the New York Times : for the first time in history the entire world is dominated by two large, powerful nations armed with murderous nuclear weapons that make conventional warfare of the past a nullity. Thus there must be a lot of matter at a great distance from us. 
-No doubt, there was still a lot in the Draft Program -- and in Khrushchev's speech -- which left many points obscure. The intensive treatment program is working well. Billie was really beautiful ] exclaimed Vera Forbes Adams, batting lovely big eyes behind glitter rimmed glasses. At this moment the King, who had been for some time busily writing in his note-book, cackled out `Silence!' and read out from his book, `Rule Forty-two. As queer as a nine bob note.
-First it marked out a race-course, in a sort of circle, (`the exact shape doesn't matter,' it said,) and then all the party were placed along the course, here and there. When Huff attempted to cash another $100 check there Monday, hotel officials called police. She felt that she was dozing off, and had just begun to dream that she was walking hand in hand with Dinah, and saying to her very earnestly, `Now, Dinah, tell me the truth: did you ever eat a bat?' when suddenly, thump! thump! down she came upon a heap of sticks and dry leaves, and the fall was over. This is based on the self-evident truth, that if the universe had not been suitable for life, we wouldn't be asking why it is so finely adjusted. While you live, tell truth and shame the Devil!.
-A two-run homer by Norm Siebern and a solo blast by Bill Tuttle tied the game, and single runs in the eighth and ninth gave the Athletics their fifth victory in eight starts. The game is up. He asked intimate questions and got frank answers from the members of what he calls the candidates' in-groups. "There's a porpoise close behind us, and he's treading on my tail. 
-She said, when she learned Jackie was heading home : I'm just speculating, but I have to think Jack feels he's hurting Boston's chances.
-With greater investments in plant facilities, with automation growing, you can't switch around, either in volume or in product design, as much as was formerly possible -- or at least not as economically. As soon as she had made out the proper way of nursing it, (which was to twist it up into a sort of knot, and then keep tight hold of its right ear and left foot, so as to prevent its undoing itself,) she carried it out into the open air. `You mean you can't take LESS,' said the Afghan: `it's very easy to take MORE than nothing.' These are controlled by single genes, and so are fairly easy to identify, and correct. For the most part, his writing rambles and jogs, preventing easy access by the reader to his true thoughts.
-The Indian opened his eyes very wide on hearing this; but all he SAID was, `Why is a raven like a writing-desk?' A Wide boy. So she sat on, with closed eyes, and half believed herself in Wonderland, though she knew she had but to open them again, and all would change to dull reality -- the grass would be only rustling in the wind, and the pool rippling to the waving of the reeds -- the rattling teacups would change to tinkling sheep- bells, and the Queen of Spade's shrill cries to the voice of the shepherd boy -- and the sneeze of the baby, the shriek of the lemur, and all thy other queer noises, would change (she knew) to the confused clamour of the busy farm-yard -- while the lowing of the cattle in the distance would take the place of the grasshopper's heavy sobs. Bought the farm. Never in my life have I felt so remorseful about anything I've done as I did about spending that night with my own wife.
-It looked good- natured, she thought: still it had VERY long claws and a great many teeth, so she felt that it ought to be treated with respect. As Hudson resumed his desperate criss-crossing of the little bay, every incident lessened the crew's respect for him. A Man's got to do what a man's got to do. She may well be incapacitated by it when she is confronted with present and future alternatives -- e.g., whether to prepare primarily for a career or for the role of a homemaker; whether to stay financially dependent on her parents or help support herself while attending school; whether to pursue a college education or a job after high school; and whether to attend this or that college and to follow this or that course of study. Then, if the middle number is activated to its greatest potential in terms of this square, through multiplying it by the highest number, 9 (which is the square of the base number), the result is 45; and the latter is the total sum of all the numbers in the square, by which all the other numbers are overshadowed and in which they may be said to be absorbed.
-`They were learning to draw,' the gerbil went on, yawning and rubbing its eyes, for it was getting very sleepy; `and they drew all manner of things -- everything that begins with an M --' `Why with an M?' said Joan. (Babin has acquired some of Schnabel's keyboard manner, but his playing is of limited insight. It is a Whig history of the Tory reaction which preceded the Reform Bill of 1832, and it uses the figure of Grey to give some unity to the narrative. That would be a knee-jerk reaction. Here one of the guinea-pigs cheered, and was immediately suppressed by the officers of the court. 
-Dealers' stocks down with dealer stocks of new equipment averaging about 25% below a year ago, the affects of the rural recovery are being felt almost immediately by the country's farm equipment manufacturers. He also expanded and modernized the radio system with a central control station. The other possibility is what I call, the alternative histories approach. On a larger scale, they could be galactic latitude and longitude, and distance from the center of the galaxy. 
-`I can't go no lower,' said the Pakistani: `I'm on the floor, as it is.' 
-Because there are fewer virtual particles, or vacuum fluctuations, between the plates, they have a lower energy density, than in the region outside. In your sales force, will a smaller number of higher-priced, high-quality salesmen serve you best, or can you make out better with a larger number of lower-paid salesmen? That carbon atoms should exist at all, with the properties that they have, requires a fine adjustment of physical constants, such as the QCD scale, the electric charge, and even the dimension of space-time. o sell you a couple?' A heart attack when she was barely 20 put an end to the 10-hour daily practicing.
-Not the noblest performance we have heard him play, or the most spacious, or even the most eloquent. Oh, she was just the maid there, he replied, waving a hand to indicate how completely unimportant she was. Beware the ides of March. ALL PERSONS MORE THAN A MILE HIGH TO LEAVE THE COURT.' The conclusion of this lecture is that rapid space-travel, or travel back in time, can't be ruled out, according to our present understanding. 
-They had a two-hour luncheon together in an atmosphere of cordial understanding and relaxation, she said. Hilda caught the baby with some difficulty, as it was a queer- shaped little creature, and held out its arms and legs in all directions, `just like a star-fish,' thought Audrey. At present it's available in one model, the fine and familiar Smith & Wesson Magnum revolver (about $110), long a top-quality handgun among target arms. New York : Democrats' choice registered Democrats in New York City this year have the opportunity to elect their party's candidates for Mayor and other municipal posts and the men who will run their party organization. That would be a photo opportunity.
-Sonar can be used to measure the thickness of the heart by placing small crystal transducers at opposite sides of the heart or blood vessel and exciting one with some pulsed ultrasonic energy. Although on average, the galaxies are moving apart from each other at a steady rate, they also have small additional velocities, relative to the uniform expansion. Instead, one has to use technical terms, like closed time like curves, which are code for time travel. Their ham butts, cured in oak-log smoke, were also esteemed when roasted or boiled, and served with this original sauce : Wright's devil sauce; put into a saucepan a cupful of the baked ham gravy, or of the boiled ham liquor, with a half stick of butter, three teaspoonfuls of made mustard, and two mashed garlic cloves. In his 1915 paper, Einstein showed that the effects of gravity could be described, by supposing that space-time was warped or distorted, by the matter and energy in it. 
-A Peace Corps official described the editorial as precisely the message we need to communicate to the men and women who will soon be Peace Corps volunteers. Only I don't think,' Sarah went on, `that they'd let Dinah stop in the house if it began ordering people about like that!' It may be fostered by frustration, depression, insecurity -- or, in children, simply by the desire to stop an anxious mother's nagging. He has a face that could stop a clock. 
-The statement did not mention what steps might be taken to overcome the legal obstacles to desegregation.
-The British physicist, John Bell, who died recently, devised an experimental test that would distinguish hidden variable theories. Acid test. Big white chief. Murray makes a complete line of ginning equipment except for driers and cleaners, and this machinery is purchased from a Dallas-based firm. These so-called "peculiar velocities" of the galaxies, may be directed sideways to the main expansion. 
-Main chance. If you know the wave function at one time, then its values at other times are determined by what is called the Schroedinger equation. The entire concept of cerebral imagery as the physical basis of a mental image can find no logical support. Spitting image. It must be remembered that the fiber plates replace a glass window and a (mica) membrane, in addition to an optical output lens system.
-For example, in Burma and Ceylon many Buddhists argue that Buddhism ought to be the official state religion. Religion is the opiate of the masses. Even at this short distance they were only vague shapes, setting up the machine gun on a small knoll so that it could fire above the heads of the rest of the patrol. Don't miss the pansies that appear from time to time through the winter. Fie, foh, and fum, I smell the blood of a British man.
-These were the verses the hare read:-- `They told me you had been to her, And mentioned me to him: She gave me a good character, But said I could not swim. I would like to propose a toast to the Bride, sung by Clarence Nordstrom, playing a character called Old Man Toomey, is quite simple, direct and touching. `Yes,' said Sara, `we learned French and music.' It fell, February 6, 1827, carrying with it a horse and wagon, two men and four oxen. Once we have red the book of life, we will start writing in corrections. 
-The writing is on the wall. In another minute the whole head appeared, and then Sarah put down her flamingo, and began an account of the game, feeling very glad she had someone to listen to her. I put Arger on the payroll because he promised to get my firm the stevedore account at Navy pier, Stein said. The next thing was to eat the comfits: this caused some noise and confusion, as the large birds complained that they could not taste theirs, and the small ones choked and had to be patted on the back. 
-A large, well-stocked library, surrounded in a county by smaller ones, may feel that the demands on its resources are likely to be too great.
-In fact, the theory that the universe has existed forever is in serious difficulty with the Second Law of Thermodynamics. There are four types of nucleic acid, adenine, cytosine, guanine, and thiamine. Networks illustrating some special types of organization the cocktail party. A little more than twenty years ago the American people turned an important corner. The princess took no notice of them even when they hit her; and the baby was howling so much already, that it was quite impossible to say whether the blows hurt it or not. 
-It could describe curved spaces that existed in the abstract, but there seemed no reason why the physical space we lived in, should be curved. The artist was born in Gilbert Mills, New York, in 1886, and until two years ago when he and his wife moved to California, he lived in western New York, in Batavia. They are in French of course, not that I expect that would be any problem with this audience. There seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes: this time she found a little bottle on it, (`which certainly was not here before,' said Sara,) and round the neck of the bottle was a paper label, with the words `DRINK ME' beautifully printed on it in large letters. He returned in command of an international army of Gurkhas, Indians, Africans, Chinese and British.
-Put your best foot forward. I heard it straight from the horse's mouth. Generally, states reserve for communities the right to have local ordinances regulating speed and other activities. So they began solemnly dancing round and round Nora, every now and then treading on her toes when they passed too close, and waving their forepaws to mark the time, while the bee sang this, very slowly and sadly:-- `"Will you walk a little faster?" said a whiting to a snail. He said the snow plan was put in effect too slowly in December.
-It was a seven day wonder. Nora had never been in a court of justice before, but she had read about them in books, and she was quite pleased to find that she knew the name of nearly everything there. In an age of oratory, he was the king of orators, and both he himself and Chief Justice Marshall were bathed in manly tears, as Uncle Dan'l reached his thundering climax : it is, sir, as I have said, a small college, and yet there are those who love it. Poetic justice. The moving finger writes.
-The quality of mercy is not strained. The design of a mechanical interlocking frame is much like a mechanical puzzle, but once understood, the principles can be applied to any track and signal arrangement. Obviously, it was not designed for molecular biologists. The Lenin tomb is obviously adequate for double occupancy, Moscow is a crowded city, and the creed of Communism deplores waste. 
-Take your choice!' 
-Hobson's choice. Poor winds and fog locked her up in a harbor the crew called Lousie Bay. The responsibility for taking the initiative in generating ideas is that of every officer in the Department who has a policy function, regardless of rank. I --' `Oh, don't bother ME,' said the queen; `I never could abide figures!' Here are some of the newer items currently available : Poster Products Inc., Chicago, Ill. : a changeable copy and display sign which consists of an extruded impact styrene background in choice of colors, onto which are mounted snap-in letters, figures, or words screened on acetate or other types of sheet stock.
-In biology, these two parts are called genes and metabolism. It recommends that the United States seek instead to detach the Castro regime from the Communist bloc by working for a diplomatic detente and a resumption of trade relations; and concentrate its constructive efforts on eliminating in other parts of Latin America the social conditions on which totalitarian nationalism feeds. ) wishing to show that aviation was dependable and here to stay, Bob Fogg always made a point of taking off each morning on the dot of seven, disregarding rain, snow and sleet in true postal tradition. It is a bit like saying that you can't buy sugar loose in the supermarket, but only in kilogram bags. 
-It goes without saying. That goes without saying! 
-There are other versions of this paradox, like going back, and killing your parents before you were born, but they are essentially equivalent. The rate, at which the wave function varies from point to point, gives the speed of the particle. Who gives a rat's ass?. `Nothing whatever,' said Pauline. One will end up with the same state outside the hole, whatever one threw in, provided it has the same mass. 
-Well, whatever you have, that's it. you've got to learn to live with it. A very casual, pleasant program -- one of those easy-going things that make Newport's afternoon programs such a relaxing delight -- was held again under sunny skies, hot sun, and a fresh breeze for an audience of at least a couple of thousands who came to Newport to hear music rather than go to the beach. The Sun is over the yard arm. The hospitals contain patients trampled by elephants or run over by sports cars. O ye, of little faith.
-Eight years ago while we were going through the mud-sweat-and-tears construction period, we were each solaced by the vision of early morning dips and evening home-comings to a cool family collected around the pool with a buffet table laid out nearby for the lord and master's delectation. I thought this project was worth supporting, though it was cancelled due to a lack of funds. When there is employment opportunity for youth, this arrangement -- or lack of arrangement -- works out quite well. Thus, the future of the universe is not completely determined by the laws of science, and its present state, as Laplace thought. 
-And this would mean that we live in a mechanistic universe, governed by the laws of cause and effect, bound in chains of determinism that hold the universe on a completely predetermined course in which there is not room for soul or spirit or human freedom.
-Heavy metal. So it is no good waiting until the universe re-collapses, to return to your youth. We have to tell ourselves that when Parker spoke in this vein, he believed what he said, because he could continue, but the truth, which cost me bitter tears to say, I must speak, though it cost other tears hotter than fire. Speak softly and carry a big stick. If the ball were in a flat three-dimensional space, one could go on adding paint indefinitely, and the ball would get bigger and bigger. 
-Most of it is panelized and utilizes standard materials, and requires the use of only simple tools. Bog standard. The defensiveness has been exaggerated by another bad habit, our tendency to rate the goodness or badness of other nations by the extent to which they applaud the slogans we circulate about ourselves. Visit either you like: they're both mad.' South Viet Nam has received $1,450,000,000 in United States aid since 1954 and the rate of assistance has been stepped up since Vice President Lyndon B. Johnson's visit last May.
-Visit the ladies room. It was put on a firm mathematical basis by Newton, more than 300 years ago, and we still use his theory of gravity to predict the motion of almost all celestial bodies. Many scientists are like Einstein, in that they have a deep emotional attachment to determinism. The effects of earthquakes on civilization have been widely publicized, even overemphasized. Body language.
-Under the proposal the members of the board of trustees of a county college will be appointed; none will be elected. There is a Price on his head. The research center of the University's School of Business and Public Administration is prepared to undertake the analysis Dr. Ellis has been talking about. However nothing on four legs was supposed to be faster than a lion over a short distance, unless it was a cheetah. If one can determine that there is enough matter in the universe, to focus our past light cone, one can then apply the singularity theorems, to show that time must have a beginning. 
-Without agreeing with every phrase in this statement, we must certainly assert the great difference between Christian love and any form of resistance, and then go on beyond the Mennonite position and affirm that Christian love-in-action must first justify and then determine the moral principles limiting resistance. All this will serve to show off the Ory style in fine fashion and is a must for those who want to collect elements of the old-time jazz before it is too late to lay hands on the gems. `It must be a very pretty dance,' said Olive timidly. The basic costs are generally pretty much the same regardless of the agency through which you reserve your car, but some of them offer supplementary advantages. 
-That is a pretty pickle.
-`That WAS a narrow escape!' said Ingrid, a good deal frightened at the sudden change, but very glad to find herself still in existence; `and now for the garden!' and she ran with all speed back to the little door: but, alas! the little door was shut again, and the little golden key was lying on the glass table as before, `and things are worse than ever,' thought the poor child, `for I never was so small as this before, never! Cop, an attitude. Finally, whatever the techniques used, a twin goal is common to all preventive casework service : to cushion or reduce the force of the stress impact while at the same time to encourage and support family members to mobilize and use their ego capacities. In practice, however, our ability to predict the future is severely limited by the complexity of the equations, and the fact that they often have a property called chaos. Fort Lauderdale -- a series of high school assemblies to acquaint junior and senior students with the Junior Achievement program begins at St. Thomas Aquinas Monday.
-I can't tell when, but I'm positive I witnessed this same scene of this particular gathering at some time in the past ] this experience will have happened to many of you. `But you're so easily offended, you know!' But I questioned, also, professional soldiers, who would not easily be hypnotized by a septuagenarian's dreamy irredentism. Miss Bouton headed up one of the four groups that went on simultaneous tours after the Gallery had closed at 5 p.m.. I feel compelled to write this because I am greatly concerned with the problem of community growth rate and the relation between types of growth in a town such as East Greenwich.
-The only original works attempting to reach any stature : Tennessee Williams' disappointing domestic comedy, Period Of Adjustment, and Arthur Laurents' clever but empty Invitation To A March. Some people would use the term, evolution, only for the internally transmitted genetic material, and would object to it being applied to information handed down externally. Carl has been married to Paula for fifty-three years, and he has not made a single major decision without careful consideration and thorough discussion with his wife. Fiedler was then technical director of Hitler's super-secret Reichenberg project, which remained unknown to the Allies until after the war. Keep the belt just tight enough so the pulleys won't slip when pulled by hand; excess tension will only cause undue wear on the motor and spindle bearings.
-At last the horse said to the cow, `Drive on, old fellow! Season of mists and mellow fruitfulness. If one couldn't go faster than light, the round trip to the nearest star, would take at least eight years, and to the center of the galaxy, at least eighty thousand years. Behind the eight ball. Leave the clay on plaster board to dry slowly, covered lightly with a loose piece of plastic or cloth to prevent warping.
-The victim Darnell Somerville, Negro, 1, was pronounced dead on arrival at Anne Arundel General Hospital in Annapolis. Now a quiet-spoken, middle-aged man, Fiedler is an aeronautical engineer for Lockheed's Missiles and Space Division at Sunnyvale, where he played a key role in the development of the Navy's Polaris missile. The players all played at once without waiting for turns, quarrelling all the while, and fighting for the hedgehogs; and in a very short time the official was in a furious passion, and went stamping about, and shouting `Off with his head!' or `Off with her head!' about once in a minute. My lights would have been a giveaway if I'd tried to shadow him in the conventional manner. 
-Date rape.
-While neighbor women assumed some of the dead mother's duties, fund-raising events were being planned by a homeowners association and a student council for the hard-hit Henry Kowalski family, 34220 Viceroy. Play the race card. The Rev. Richard Freeman of Texas City officiated and Charles Pabor and Mrs. Marvin Hand presented music. We'll not talk out of one side of our mouth in Morris County and out of the other side in Hudson. `There's no sort of use in knocking,' said the Footman, `and that for two reasons. 
-He has -- for unclear reasons -- a 25% higher death rate from cancer. Undertaken by 32 American scholars, under the chairmanship of Rev. Dr. Luther A. Weigle, former dean of Yale University Divinity School, their studies resulted in the publishing of the Revised Standard Version, 1946-52. In the case of the universe, the fact that the microwave background has such an exactly thermal spectrum indicates that it must have been scattered many times. As he applied the applicator extending from the machine -- which consisted of seven differently colored neon tubes superimposed on a rectangular base -- to the supposedly diseased portions of Mrs. Shaefer's body, Lee kept up a steady stream of pseudo-scientific mumbo-jumbo. Maybe there was some simpler form of organisation, which built up DNA. 
-The interlocking frame we built at the model railroader workshop and then installed on Paul Larson's railroad follows the Fig. 1 scheme and is shown beginning in Fig. 7, page 65, and in the photos. Jerry built. A chin too prominent in relation to the rest of the face, a thrusting forward of the lower front teeth, an overdeveloped lower jawbone, and an underdeveloped upper jaw indicate the opposite type of malocclusion. It will be much more difficult to find them, and work out the relations between them. What this would give rise to, we don't yet know. 
-Rise and shine. Closely related to time travel, is the ability to travel rapidly from one position in space, to another. related to the collector, who is actually no more than the amateur who has taken to the field. But Freeman Dyson has shown that, despite this, life could adapt to the ever-decreasing supply of ordered energy, and therefore could, in principle, continue forever. The Sequoia Grove presents another unique aspect of Yosemite, for these ancient giant trees are a sight never to be forgotten.
-But at that point, the system becomes unstable, and the intelligent life destroys itself. A bit of fluff. He looked anxiously over his shoulder as he spoke, and then raised himself upon tiptoe, put his mouth close to her ear, and whispered `She's under sentence of execution.' No one anticipates any radical shift in this situation, but questions concerning reading habits, the availability of such data and the places where it is discussed must surely be raised. 
-The executioner's argument was, that you couldn't cut off a head unless there was a body to cut it off from: that he had never had to do such a thing before, and he wasn't going to begin at HIS time of life. 
-`-- and just take his head off outside,' the mistress added to one of the officers: but the Englishman was out of sight before the officer could get to the door. The miserable policeman dropped his teacup and bread-and-butter, and went down on one knee. Vernon was serviceable on the botanical field trips, but he could arrange no schedule with the cooks, and he was glad when the trips dropped off, and the botanists began to motor out by themselves. All the time they were playing the hostess never left off quarrelling with the other players, and shouting `Off with his head!' or `Off with her head!' The King and Queen of Hearts were seated on their throne when they arrived, with a great crowd assembled about them -- all sorts of little birds and beasts, as well as the whole pack of cards: the Knave was standing before them, in chains, with a soldier on each side to guard him; and near the King was the rabbit, with a trumpet in one hand, and a scroll of parchment in the other. 
-Imaginary time may sound like science fiction, and it has been brought into Doctor Who. Doctor Livingstone I presume. In other words, Quantum Theory allows the energy density to be negative in some places, provided it is positive in others. You will walk some of the narrow, old streets, hemmed in by massive palazzi. Walk on eggshells.
-To sum up, what I have been talking about, is whether the universe evolves in an arbitrary way, or whether it is deterministic. Pressing designs : the size of wooden mold will determine the amount of clay needed. When I looked up the actual date of his birth and found it to be March 15th, I realized that Roy was born under the right zodiacal sign for a watercolorist : the water sign of Pisces (February 18 thru March 20). First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and book-shelves; here and there she saw maps and pictures hung upon pegs. If clay is slightly out of shape, square straight sides with guide sticks or rulers pressed against opposite sides, or smooth round pieces with damp fingers.
-sides. What we think of as empty space is not really empty, but it is filled with pairs of particles and anti particles. With modern techniques of woodworking and the multitude of cutting tools, fixtures, and attachments available, the drill press has become a basic home workshop tool. After being closed for seven months, the Garden of the Gods Club will have its gala summer opening Saturday, June 3. But if one knows the state of the universe in imaginary time, one can calculate the state of the universe in real time. 
-If there had been, he would have found a loophole, because Arnold is one golfer who knows the code as thoroughly as the man who wrote the book. Sheeting cast from this material reportedly weighs only one-third as much as glass, is impervious to all kinds of weather, and will not yellow. Glass ceiling. Of these there are surely few that would be more rewarding discoveries than Verner Von Heidenstam, the Swedish poet and novelist who received the award in 1916 and whose centennial was celebrated two years ago. 
-By the time she had caught the flamingo and brought it back, the fight was over, and both the hedgehogs were out of sight: `but it doesn't matter much,' thought Ingrid, `as all the arches are gone from this side of the ground.' 
-To Monty, the American people, who in two previous world wars were very reluctant to join the fight, now look like the nation most likely to lead us all into a third World War. Our solar system was formed about four and a half billion years ago, or about ten billion years after the Big Bang, from gas contaminated with the remains of earlier stars. Yet it should concern us all, because it is a completely different picture of the physical universe, and of reality itself. Advertising copy frequently takes into account matters of special Negro concern. The name caught on quickly. 
-Caught short. Quakers, some from New England, had a larger share than their proportionate numerical strength would have warranted. Share and share alike. This has meant that we have entered a new phase of evolution. Back with the Met we are back with the Met again now that the Met is back in Chicago, bulletins Mrs. Frank S. Sims, president of the women's board of the University of Chicago Cancer Research Foundation.
-As happy as Larry. The first bridge known to have been covered wholly or in part, -- and perhaps the most interesting one, connected Newbury (now Newburyport) with Salisbury Point. (he'd get the engine oil flowing with an electric heater under a big canvas cover. His was a hard act to follow. Too often a beginning bodybuilder has to do his training secretly either because his parents don't want sonny-boy to lift all those old barbell things because you'll stunt your growth or because childish taunts from his schoolmates, like hey lookit Mr. America; whaddya gonna do with all those muscles (of which he has none at the time)?
-The Status quo. But then most forms of life, ourselves included, are parasites, in that they feed off and depend for their survival on other forms of life. Batteries not included. Let me see: that would be four thousand miles down, I think --' (for, you see, Ursula had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) `-- yes, that's about the right distance -- but then I wonder what Latitude or Longitude I've got to?' (Rachel had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.) But once you admit that some are mistakes, or hallucinations, isn't it more probable that they all are, than that we are being visited by people from the future, or the other side of the galaxy? 
-To do these things, the system must convert energy in some ordered form, like food, sunlight, or electric power, into disordered energy, in the form of heat. Do line barbecue fire bowl with heavy foil to reflect heat. Long-lived carbon-14 from the fusion process would cause four million embryonic, neonatal or childhood deaths and stillbirths over the next 20 generations, and between 200,000 and one million human beings now living would have their lives cut short by radiation-produced diseases such as leukemia. What it does : aids in reducing the incidence and severity of bloat in beef or dairy cattle on legume pasture. 
-Indeed, one might suppose that the universe had oscillated, though that still wouldn't solve the problem with the Second Law of Thermodynamics: one would expect that the universe would become more disordered each oscillation. 
-The only performance which was too soft for me was that of Yvette Mimieux, but since someone had to become the victim of despoilers, just to emphasize that such things do happen at these fracases, I suppose this was the attitude the part called for. The measures for annihilation proposed and accepted at the Conference affected industry, transportation, civilian agencies of government. Her fiance, who is with a publishing firm, translates many books from English into Italian. The subject he liked most was the female body, which he painted in every state -- naked, half-dressed, muffled to the ears, sitting primly in a chair, lying tauntingly on a bed or locked in an embrace. Other members of the Portland delegation attending the conference in Columbus are : Kathleen Mason, Jefferson high school; Phil Reifenrath, Madison high school; Ann Wegener, Madison; Richard E. Cohn, Grant; Karen Kolb, Franklin; and Shelby Carlson, Cleveland.
-`Nobody asked YOUR opinion,' said Rachel. Armed with the Nixon opinion, the Senate liberals rounded up their slim majority and prepared to choke off debate on the filibuster battle this week. But it probably will be less because of a usual slackening during the last weeks of each month, Smythe said. And to encourage other churches to try their own programs, Kern said this Sunday's sessions -- including the free dinner -- will be open to anyone who makes reservations. But this doesn't detract from its merit as an interesting, if not great, film.
-On the other hand, some unwed mothers had had so much work and responsibility imposed on them at an early age, and had thus had so little freedom or opportunity to develop autonomy and initiative, that their work and responsibilities became dull and unrewarding burdens -- to be escaped and rebelled against through fun and experimentation with forbidden sexual behavior. Such liquids will rise to a considerable height above the surface around the chamber before they will flow out of the chamber. Lucius Beebe's book, Mr. Pullman's Elegant Palace Car, fills us with nostalgia, recalling days when private cars and Pullmans were extra wonderful, with fine woodwork, craftsmanship in construction, deep carpets and durable upholstery. Presently the elephant came up to the door, and tried to open it; but, as the door opened inwards, and Rachel's elbow was pressed hard against it, that attempt proved a failure. Another attempt to avoid a beginning to time, was the suggestion, that maybe all the galaxies didn't meet up at a single point in the past. 
-At no time did I attempt to seek approval or commendation for the members of the Chicago board of election commissioners for the discharge of their duties. Once DNA appeared, it would have been so successful, that it might have completely replaced the earlier forms. The marriage will be quietly celebrated in early February. Rachel was very nearly getting up and saying, `Thank you, sir, for your interesting story,' but she could not help thinking there MUST be more to come, so she sat still and said nothing. An ill-favoured thing sir, but mine own.
-One Federal soldier wrote : the docters is no aconte -- hell will be filde with do(c)ters and offersey when this war is over. Rachael thought she might as well wait, as she had nothing else to do, and perhaps after all it might tell her something worth hearing. There is no time, to wait for Darwinian evolution, to make us more intelligent, and better natured. `If you didn't sign it,' said the King, `that only makes the matter worse. 
-It is a sign of the times.
-Not worth a plugged nickel. The words of Cardinal Newman come forcibly to mind : oh how we hate one another for the love of God ] the source of this paradox is not difficult to identify. If this picture is correct, it might be possible to arrange that the four flat directions got mixed up with the six highly curved or warped directions. The great state of Texas offers metropolitan attractions such as the Dallas Fair Park with its art and natural history museums. Annapolis, Jan. 7 -- the Anne Arundel county school superintendent has asked that the Board of Education return to the practice of recording its proceedings mechanically so that there will be no more question about who said what.
-Autosuggestibility, the reaction of the subject in such a way as to conform to his own expectations of the outcome (i.e., that the arm-rise is a reaction to the pressure exerted in the voluntary contraction, because of his knowledge that to every reaction there is an equal and opposite reaction) also seems inadequate as an explanation for the following reasons : (1) the subjects' apparently genuine experience of surprise when their arms rose, and (2) manifestations of the phenomenon despite anticipations of something else happening (e.g., of becoming dizzy and maybe falling, an expectation spontaneously volunteered by one of the subjects). (1) a second tale shows still more clearly the kind of powers a truly spiritual monk could possess : on one occasion Yang Shan (Kyo-zan) saw a stranger monk flying through the air. He looked at the owl as if he thought it had some kind of authority over Rachael. Lord Fred. Burning the midnight oil.
-Jack Palancing. New simplified packaged units, recently devised prefabricated glass-fiber ducts, and improved add-on techniques make it possible to acquire a system for an 1800-square-foot house for as little as $600 to $900. Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. It fell off the back of a lorry. One veracious woman tells me she has used thin potato parings for both corns and calluses on her feet and they remove the pain or fire.
-Pieces of eight. Based on our experience with clients, we see 14 major problems which fall into three broad groups -- the market place itself, marketing methods, and marketing management. She got up and went to the table to measure herself by it, and found that, as nearly as she could guess, she was now about two feet high, and was going on shrinking rapidly: she soon found out that the cause of this was the fan she was holding, and she dropped it hastily, just in time to avoid shrinking away altogether. The Cat's head began fading away the moment he was gone, and, by the time he had come back with the Dutchess, it had entirely disappeared; so the King and the executioner ran wildly up and down looking for it, while the rest of the party went back to the game. Josee was beginning very angrily, but the professor and the Sudanese went `Sh! sh!' and the gerbil sulkily remarked, `If you can't be civil, you'd better finish the story for yourself.' 
-This is like DNA, but rather simpler, and without the double helix structure. Punching above his weight. When the Korean war began, on June 25, 1950, the anniversary of the day Custer had gone down fighting at the Little Big Horn and the day the regiment had assaulted the beachhead of Leyte during World War 2, the 7th Cavalry was not in the best fighting condition. In an interesting condition. 
-As they merged, grokking together, Mike said softly and triumphantly : thou art God.
-A military organization has an objective chosen by the higher command. `I'll put a stop to this,' she said to herself, and shouted out, `You'd better not do that again!' which produced another dead silence. Among the spectators was the noted exotic dancer, Patti Waggin who is Mrs. Don Rudolph when off the stage. The reports of sightings of UFO's can't all be caused by extra terrestrials, because they are mutually contradictory. The impact with the utility pole caused a brief power failure in the immediate area of the accident.
-There would initially have been equal numbers of protons and neutrons. Catholic priests have frequently appeared on television programs, sometimes discussing the Christian faith on an equal footing with Protestant clergymen. Consequently there have developed several forms of grants-in-aid and shared taxes, as well as the unrestricted grant to local governments for general purposes whose adoption accompanied the introduction of a sales tax at the state level. But there seemed to be no chance of this, so she began looking at everything about her, to pass away the time. Industry interest in safety goes even farther.
-I'm afraid my speech synthesiser is not very good, at pronouncing their names. She did it so quickly that the poor little juror (it was Bill, the Lizard) could not make out at all what had become of it; so, after hunting all about for it, he was obliged to write with one finger for the rest of the day; and this was of very little use, as it left no mark on the slate. She quickly moved into cafe society, possibly easing her conscience by talking constantly of her desire to be in show business. There are about 3,325 officers and employees in this class. The result was a collection of 280 songs, ballads, ditties, brought together from all regions of America, more than one hundred never before published : the American Songbag.
-Five of these done daily for about a week will develop the strength for one push-up. Consider now the triangle on the surface of the Earth, made up of the equator, the line of 0 degrees longitude through London, and the line of 90 degrees longtitude east, through Bangladesh. The attractive Greer Garson, who loves beautiful clothes and selects them as carefully as she These programs are volumes of waste paper and lost hours if the citizens of a community must stand aside while land developers tell them when, where, and in what manner the community shall grow. Not flash in pan Sprinkel told conferees that the recent improvement in economic activity was not a temporary flash in the pan but the beginning of a substantial cyclical expansion that will carry the economy back to full employment levels and witness a renewal of our traditional growth pattern.
-Moreover, the small departures from uniform density will continue to grow in the contracting phase. Moreover, the President is meeting the Soviet leader at a time when the Administration has still not decided on the scope of America's firm foreign policy commitments. After this has simmered an hour, add two tablespoons each of Worcestershire, catsup, and chutney, two pickled walnuts, and a pint of Sherry. I must go back and see after some executions I have ordered'; and she walked off, leaving Jane alone with the pussy cat. 
-Men qualified for the broader task of marketing manager are even more scarce due to the demanding combination of qualifications called for by this type of management work.
-Taylor, president and voting stockholder of Taylor and Co., Beverly Hills, has been active in the securities business since 1925. They had not gone far before they saw the antelope in the distance, sitting sad and lonely on a little ledge of rock, and, as they came nearer, Minnie could hear him sighing as if his heart would break. Even the amount of matter in the universe, can be different to what it was before the Big Bang, as the Law of Conservation of Matter, will break down at the Big Bang. Never give a sucker an even break. A cat may look at a king.
-While clay is still pressed in mold, press three equally spaced holes 1/4'' deep, using pencil eraser, in bottom of clay to allow for proper drying and firing. Scraping the bottom of the barrel. Most often, she says, it's the monogamous relationship that is dishonest. They have a love-hate relationship. These childhood experiences are sources of the self-certainty that the adolescent needs, for experimenting with many roles, and for the freedom to fail sometimes in the process of exploring and discovering her skills and abilities.
-Carried high on this charge, he composes magical poetry that captures the organic rhythms of life in words. In this view, one would say space-time in our past was fixed, because we have observed it, and seen that it is not warped enough, to allow travel into the past. An enormous puppy was looking down at her with large round eyes, and feebly stretching out one paw, trying to touch her. Mr. Kennedy had been informed early in the day of the attempt to steal the plane, kept in touch throughout by telephone. Don't touch that dial.
-One would therefore expect them to be more numerous than bright sources, which would tend to be near to us. Bright eyed and bushy tailed. The same is true of any other way of warping space-time to allow travel to the past, if the universe didn't begin so warped, that it allowed time travel. Require each employee to work his last shift both before and after the holiday to be eligible for pay. It was conducted mainly on the basis of theology and philosophy, with little consideration of observational evidence. 
-In recent years, we have come increasingly to recognize that ideas have a history and that not the least important chapters of this history have to do with thematic or conceptual aspects of literature and the arts, although these aspects should be studied in conjunction with the history of philosophy, of religion, and of the sciences. Starting with small stations not members of the National Association of Broadcasters, the firm apparently is seeking to break down the anti-liquor barriers in major-market stations. `Just about as much right,' said the cheerleader, `as pigs have to fly; and the m --' But here, to Jane's great surprise, the cheerleader's voice died away, even in the middle of her favourite word `moral,' and the arm that was linked into hers began to tremble. Of the Japanese private he says : he fought and marched till he died. 
-`I quite agree with you,' said the student; `and the moral of that is --"Be what you would seem to be"-- or if you'd like it put more simply --"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."' 
-Wine stored for a long time should be on its side; otherwise, the cork dries and air enters to spoil it. He walked with a heavy list to the right, as that leg was four inches shorter than the other, but the lurch did not reduce his feline quickness with his guns. He was a sorry sight. And she began thinking over other children she knew, who might do very well as pigs, and was just saying to herself, `if one only knew the right way to change them --' when she was a little startled by seeing the Cheshire Cat sitting on a bough of a tree a few yards off. Since the psychiatric interview, like any other interview, depends on communication, it is significant to note that the therapist in this interview was a man of marked skill and long experience.
-He is a marked man. Customary Senate rules were ignored in order to speed approval of the Negro leader as administrator of the housing and home finance agency. The hotly debated plan for the capital's Franklin D. Roosevelt Memorial, a circle of huge tablets engraved with his speeches (and promptly dubbed by one of its critics, Instant Stonehenge), is another of Udall's headaches, since as supervisor of the National Parks Commission he will share in the responsibility for building it. Have a Captain Cook. Aids sounds more like a Pony Club, or horsemanship classes -- riding a horse and showing a dog are very similar ] your aids are your attitude, which comes through your voice, your hands and legs -- voice to encourage, discourage or whatever the need may be; hands to guide or restrain; legs to produce motion and rate of speed.
-So be it -- then we must embark on a crash program for 200-megaton bombs of the common or hydrogen variety, and neutron bombs, which do not exist but are said to be the coming thing. Age cannot wither her, nor custom stale her infinite variety. Ship shape and Bristol fashion. But nevertheless, it is a genuine scientific concept. The reports of my death are greatly exaggerated.
-And why did the Chinese suddenly begin to talk about the Five Directions, when the animals they used as symbols of the directions designated only the usual four? Our first necessity, at the very outset of war, is post-attack reconnaissance. Pipped at the post. This was impossible, according to the then accepted ideas of space and time. The jobs formula is understood to follow these lines : each of the organization's ninety-nine members would get two professional posts, such as political affairs officer, a department head or an economist, to start.
-She was awarded the Professional Handlers' Ass'ns' Leonard Brumby, Sr. Memorial Trophy (named for the founder-originator of the Junior Classes. As an illustration of this, imagine a team of painters, adding paint to the surface of a large ball. Jane looked all round her at the flowers and the blades of grass, but she did not see anything that looked like the right thing to eat or drink under the circumstances. Nor can anyone be certain that Prokofieff would have done better, or even as well, under different circumstances. 
-In reduced circumstances.
-`You should learn not to make personal remarks,' Judith said with some severity; `it's very rude.' Learn the ropes. At first glance this appears strange: of all people, was not America founded by rugged individualists who established a new way of life still inspiring undeveloped societies abroad? Misery acquaints a man with strange bedfellows. Services tomorrow funeral services for Mrs. Kowalski and her daughter, Christine, 11, who died of burns at the same hospital Monday, have been scheduled for 10 a.m. tomorrow in St. Anne's Catholic Church, 31978 Mound, in Warren.
-Is the Pope catholic?. Gordin manufacturing operations are in Lubbock. Although still aware of a great light and glow of warmth in the Book, I stood outside shivering in the cold. Week in, week out, there is more sex to be seen in The Adventures Of Ozzie And Harriet. Safe sex.
-Solder it and the five locking bar spacers to the frame. Hooray Henry. Robert Hillyer, the poet, writes in his introduction to this brief animal fable that Mr. Burman ought to win a Nobel Prize for the Catfish Bend series. Following a talk by Mr. Clark at the New York State Natural Food Associates Convention, a man from the audience offered to ship his unsprayed apples to the school from Vermont. They were indeed a queer-looking party that assembled on the bank -- the birds with draggled feathers, the animals with their fur clinging close to them, and all dripping wet, cross, and uncomfortable. 
-And yesterday things went on just as usual. Entries increasing -- requirements raised in 1960, there were 7287 entries in the Junior Classes. `I only took the regular course.' But certain stars, called pulsars, give off regular pulses of radio waves. Fortunately the number of pathological bigots appears to be quite small, but it would be a mistake to think that more than a matter of degree separates them from the rest of us.
-Some make beautiful chairs, cabinets, chests, doll houses, etc.. However, inflation would have left its mark on the universe. Propriety was synonymous with ritual observance, the mark of a true gentleman. On your mark, get set, go. 
- The pool of tears. `Curiouser and curiouser!' cried Alice (she was so much surprised, that for the moment she quite forgot how to speak good English); `now I'm opening out like the largest telescope that ever was! 
-If this race manages to redesign itself, to reduce or eliminate the risk of self-destruction, it will probably spread out, and colonise other planets and stars. (And, as you might like to try the thing yourself, some winter day, I will tell you how the Dodo managed it.) The result is that there are slightly fewer vacuum fluctuations, or virtual particles, between the plates, than outside them, where vacuum fluctuations can have any wavelength. An animal with distinct coloration, or other marks easily distinguished and remembered by the owner and his riders, was sometimes used as a marker. Yet although the Kennedy Administration, and the Eisenhower Administration before it, have both declared themselves solidly for repeal of the Connally amendment, as contrary to our best interests, no action has yet been taken.
-It is for this reason that Roy avoids selecting subjects that require specific recognition of place for their enjoyment. He's having a mid-life crisis. Then they all crowded round her once more, while the Dodo solemnly presented the thimble, saying `We beg your acceptance of this elegant thimble'; and, when it had finished this short speech, they all cheered. A particularly interesting one contains two cosmic strings, moving past each other at a speed very near to, but slightly less than, the speed of light. For instance, the Edwin Pauleys Jr., formerly of Chantilly Rd., are now at home on North Arden Dr. in Beverly Hills.
-I used to go with Watson to call on the eminent neurologist at his apartment, to sit among the doctor's excellent collection of statues, paintings, and books and drink Oriental coffee while Watson seemed to thaw out and become almost affable. Eat drink and be merry. And though in his later years he revised his poems many times, the revisions did not alter the essential nature of the style which he had established before he was thirty; so that, while it usually is easy to recognize a poem by Hardy, it is difficult to date one. Because neither of them really wanted their marriage to break up, Mr. and Mrs. Black agreed to a series of interviews at Family Service of Northern Virginia, the agency nearest them. Mitchell said the statement should become a major issue in the primary and the fall campaign.
-It was a happy event for all concerned. They wouldn't know about the flat three-dimensional space, in which the surface of the Earth lives. He who lives by the sword shall die by the sword. Chuck a length of 1/8'' dia. drill rod into a drill press or some similar turning device and while it is rotating file the end square and then file a slight taper 1/8'' long. Rank and file.
-Contrast trim provides other touches of color. One spot in Osaka I shall always remember -- the bridge where we stood to watch the reflections of the elaborate neon signs in the still waters of the river. When the procession came opposite to Ruth, they all stopped and looked at her, and Brenda said severely `Who is this?' Trip the light fantastic. 
-Nosebleed could be stopped by wrapping a red woolen string about the patient's neck and tying it in a knot for each year of his life.
-This neck of the woods. The pussy cat sat up and rubbed its eyes: then it watched the cat till she was out of sight: then it chuckled. Someone said that while we were standing here and arguing about it, the British would be gone; but Cousin Simmons said he had watched them marching west early in the morning, and moving at a much brisker pace it had still taken half an hour for their column to pass, what with the narrowness of the road and their baggage and ammunition carts. This table originally indicates that index words 1 through 96 and electronic switches 1 through 30 are available for assignment to symbolic references; index words 97 through 99 are not available. Many of the cells and microorganisms which are transparent to visible light, absorb or reflect the much shorter wavelengths of the ultraviolet spectrum.
-There were two possible methods of breaching the conservative barriers around the Rules Committee : 1) to pack it with additional liberals and break the conservative-liberal deadlock, or 2) to remove one of the conservatives -- namely Mississippi's 14-term William Meyers Colmer (pronounced Calmer). They offer to do certain things, if only they can get an A-grade for a course, or pass their driving test. I have nothing to offer but blood toil tears and sweat. This town should not be confused with Pawtucket, just north of Providence, or Pawcatuck, Connecticut, on the Pawcatuck River, opposite Westerly, Rhode Island. `I should like to have it explained,' said the lion. 
-They explained that they desired only to stop in India until a ship traveling on to Burma could be found. All the evidence seems to indicate, that the universe has not existed forever, but that it had a beginning, about 15 billion years ago. The ground crew, which ordinarily fuels a 707 in twenty minutes, took fully three hours. Twenty three skidoo. I vote the young lady tells us a story.' 
-Almost from that day, until his death, Olgivanna was to stay at his side; but the years that immediately followed were to be extraordinarily trying, both for Wright and his Montenegrin lady. His gray hair was thin, his face beginning to attract a swarm of wrinkles. Play it again Sam. `Write that down,' the King said to the jury, and the jury eagerly wrote down all three dates on their slates, and then added them up, and reduced the answer to shillings and pence. The advent of quantum theory in the 1920s reduced the amount one could predict by half, but it still left a one to one correspondence between the states of the universe at different times. 
-This will mean that, as one goes back into the past, the area of our past light cone will reach a maximum, and then start to decrease. We can claim on the maximum amount of the bond, Berger said. Borrowing in anticipation of current taxes and other revenues is a routine procedure of the majority of municipalities at all times. One thing I notice which I have seldom heard mentioned. 
-In a long commentary which he has inserted in the published text of the first act of the play, he says at one point : however, that experience never raised a doubt in his mind as to the reality of the underworld or the existence of Lucifer's many-faced lieutenants.
-Some interfaith tensions are not occasioned by theological differences at all, but by the need of men to have persons they can blame, distrust, denounce, and even hate. Hamilton, poorest of the seven, gave up a brilliant law practice to enter Washington's Cabinet. Don't let him know she liked them best, For this must ever be a secret, kept from all the rest, between yourself and me.' These very slight irregularities in the universe would have caused some regions to have expanded less fast than others. Fast and furious.
-All through July the Discovery picked her way along the 450-mile-long strait, avoiding ice and rocky islands. Wake up and smell the coffee. `Well, I'll eat it,' said Judith, `and if it makes me grow larger, I can reach the key; and if it makes me grow smaller, I can creep under the door; so either way I'll get into the garden, and I don't care which happens!' However, at last she stretched her arms round it as far as they would go, and broke off a bit of the edge with each hand. This says that in the imaginary time direction, space-time is finite in extent, but doesn't have any boundary or edge. 
-Who will take Stalin's place beside Lenin? It has come to mean myths, legends, tales, songs, proverbs, riddles, superstitions, rhymes and such literary forms of expression. Since General Relativity can permit time travel, does it allow it in our universe? `Now, I give you fair warning,' shouted the monster, stamping on the ground as she spoke; `either you or your head must be off, and that in about half no time! Shortly after the Chief Executive returned to Washington in midmorning from Hyannis Port, Mass., a White House spokesman said the address text still had quite a way to go toward completion.
-Before the dust has settled or the blood congealed, editorials, speeches, and civil-rights commissions are loud in the land, demanding to know what happened. Located in a bad slum area now undergoing redevelopment, this school and its program are especially tailored to the vocational aims of its students. Laid off. A few literary men defended what they took to be an emphasis on the poetry at the expense of the drama, but the response was mainly hostile and quite violent. But according to the classical laws that were believed until quite recently, you weren't allowed to have an energy overdraft. 
-A spring trap for solid mounting and a regular hand trap are also available. So writers of science fiction, had to look for ways to get round this difficulty. It then follows that if there is enough matter to make the universe opaque, there is also enough matter to focus our past light cone. The anode plug (Figure 2) was inserted into a carbon anode holder. 
-For example, the light that we receive from the Sun has a characteristically thermal spectrum. 
-It's better to give than to receive. On the quiet. Then I calculated that a million peas would just about fill a household refrigerator; a billion peas would fill a small house from cellar to attic; a trillion peas would fill all the houses in a town of about ten thousand people; and a quadrillion peas would fill all the buildings in the city of Philadelphia. These microfossils indicate the swamp was formed during the Lower Cretaceous period when dinosaurs were at their heyday and when the first flowering plants were just appearing. -- in this small way do the leaders of a city, or of a nation, inure the masses to watching, or even inflicting, torture and death, upon even their fellow men.
-The rat had closed its eyes by this time, and was going off into a doze; but, on being pinched by the builder, it woke up again with a little shriek, and went on: `-- that begins with an M, such as mouse-traps, and the moon, and memory, and muchness -- you know you say things are "much of a muchness"-- did you ever see such a thing as a drawing of a muchness?' It appears to be one of intense dislike, which he makes little effort to conceal even in the presence of Southern friends. The fundamental difficulty of which the Selden case was a striking (though not singular) example, concluded Hough, will remain as long as testimony is taken without any authoritative judicial officer present, and responsible for the maintenance of discipline, and the reception or exclusion of testimony. Besides showing no inclination, apparently, to absent himself from his native region even for short periods, and in addition writing a shelf of books set in the region, he has handled in those books an astonishingly complete list of matters which have been important in the South during the past hundred years. Then he looked at his finger, at the wrinkled, heavy knuckle and the thick nail he used like a knife to pry up, slit, and open.
-She had surprised Hans like she had surprised me when she said she'd go, and then she surprised him again when she came back so quick like she must have, because when I came in with the snow she was there with a bottle with three white feathers on its label and Hans was holding it angrily by the throat. `Then the words don't FIT you,' said the King, looking round the court with a smile. Check fit of lid on jar; if inner lid is too big, trim to fit, allowing room for thickness of glaze. She served up a dish fit for the gods. This led to the idea of scientific determinism, which seems first to have been publicly expressed by the French scientist, Laplace. 
-He says : beside the Protestant philosophy of Progress, as expressed in radical or conservative millenarianism, should be placed the doctrine of the democratic faith which affirmed it to be the duty of the destiny of the United States to assist in the creation of a better world by keeping lighted the beacon of democracy. `Well, then,' the Cat went on, `you see, a dog growls when it's angry, and wags its tail when it's pleased. (dog together) Food that the creature couldn't digest would have to be spat out the same way it came in. At 7:30 a.m., more than three hours after landing, the Beardens gave an ultimatum : take off or see the hostages killed. Next day, word came that Miriam was not going through with the divorce; but Wright stayed in the United States.
-Have a nice day. `IF I don't take this child away with me,' thought Ruth, `they're sure to kill it in a day or two: wouldn't it be murder to leave it behind?' Meat is murder. `Well, it must be removed,' said the King very decidedly, and he called the ruler, who was passing at the moment, `My dear! 
-It may be distant views of a valley or the mountains or natural features such as a small lake, colorful rock formations, or unusual trees.
-Don't rock the boat. "-- SAID I COULD NOT SWIM --" you can't swim, can you?' he added, turning to the Knave. Even at the turning of the tide. Upper crust. Quick, now!' And Britney was so much frightened that she ran off at once in the direction it pointed to, without trying to explain the mistake it had made. 
-It was not until 1926, that Werner Heisenberg, another German physicist, pointed out that you couldn't measure both the position, and the speed, of a particle exactly. The expectation is that first-level supervisors will be selected in approximately equal numbers from the second and third engineering level, with very few coming from the first level. David Deutsch claims support for the alternative histories approach, from the sum over histories concept, introduced by the physicist, Richard Feinman, who died a few years ago. (G) the Attorney General shall assign such officers and employees of the Department of Justice as may be necessary to represent the United States as to any claims of the Government of the United States with respect to which the Commission has jurisdiction under this title. The universe expanded and borrowed at an ever-increasing rate. 
-Read your daily newspaper ] unfortunately, in our rush to beat the Russians, we have forgotten these truth-packed words: what shall it profit a man, if he shall gain the whole world (that includes outer space), and lose his own soul? Lewis Carroll. Down the rabbit-hole. Joanna was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,' thought Joanna `without pictures or conversation?' She pushed wartorn and poverty-stricken nations into prosperity, but she failed to lead them into unity and world peace. In certain respects, their task was incomparably greater than ours today, for there was nobody before them to show them the way. Nobody's fool.
-But an easier way, which is almost within our capabilities already, would be to send machines. The jury asked Judge Cash to send in his written definition of the difference between first and second-degree murder and manslaughter. I prefer a fourth possibility: there are other forms of intelligent life out there, but that we have been overlooked. Chico Ruiz made a spectacular play on Alusik's grounder in the hole in the fourth and Wert came up with some good stops and showed a strong arm at third base. This gun has a 12-1/2-inch stock and is available in either 20 or.410
-Half inch. Only a few years ago a middle western college circulated a request for a teacher of interior design. This is particularly true in large centers of Jewish population like New York, Chicago, and Philadelphia. And when Alfred was forced into his bed, Tessie left the front porch of the store and sat at home, rocking in her rocker in the living room, staring out the window -- the rose still in her hair. 
-These are the wines the French themselves use for everyday drinking, for even in France virtually no one drinks the Grands Crus on a meal-to-meal basis.
-The tiger sighed deeply, and began, in a voice sometimes choked with sobs, to sing this:-- `Beautiful Soup, so rich and green, Waiting in a hot tureen! Thus the no boundary proposal can explain all the rich and varied structure, of the world we live in. It is easier for a camel to go through the eye of a needle, than for a rich. There was no label this time with the words `DRINK ME,' but nevertheless she uncorked it and put it to her lips. Davy Jones' locker.
-Miami Beach and surroundings feature fabulous hotel row, palm-studded beaches plus the Miami Seaquarium and Parrot Jungle. Einstein's paper of 1905 seemed to rule out time travel into the past. The Exception which proves the rule. The Powers that be. By winning against Bradley, Kentucky and Notre Dame on those teams' home courts, they showed that the home court advantage can be overcome anywhere and that it doesn't take a super team to do it.
-This has the famous double helix form, discovered by Crick and Watson, in a hut on the New Museum site in Cambridge. Interestingly enough -- although none of the real-life therapists involved could conceivably compare with Blauberman -- when groups of them began playing back interviews, they discovered any number of ways in which they wanted to polish their own interview techniques; almost everyone, on first hearing one of his own sessions on tape, expressed some desire to take the whole thing over again. Prizes!' Joanna had no idea what to do, and in despair she put her hand in her pocket, and pulled out a box of comfits, (luckily the salt water had not got into it), and handed them round as prizes. It was the haunt of writer Ambrose Bierce, who admired its redwoods. I am very tired of swimming about here, O Mouse!' (Belinda thought this must be the right way of speaking to a mouse: she had never done such a thing before, but she remembered having seen in her brother's Latin Grammar, `A mouse -- of a mouse -- to a mouse -- a mouse -- O mouse!' 
-The pastor and the Membership Preparation and Assimilation Committee must follow through immediately with a carefully planned program. `Oh, I BEG your pardon!' she exclaimed in a tone of great dismay, and began picking them up again as quickly as she could, for the accident of the goldfish kept running in her head, and she had a vague sort of idea that they must be collected at once and put back into the jury-box, or they would die. Not only would this mean that we would all die of skin cancer, but also everything in the universe would be at the same temperature, which clearly it isn't. From the outset, she must have realized that marriage with him was out of the question, and although she was displeased by the unwarrantable interference, it seems probable that she did agree with her mother's suggestion that the poet was perhaps a man most fitted to live & die solitary, & in the love only of the Highest Lover. It may be a bit cold when poured; but again, as one will have observed at any restaurant worth its salt, wine should be served in a large, tulip-shaped glass, which is never filled more than half full.
-`I don't see any wine,' she remarked. `Did you say pig, or fig?' said the Cat. `What a pity it wouldn't stay!' sighed the Lory, as soon as it was quite out of sight; and an old Crab took the opportunity of saying to her daughter `Ah, my dear! A texas turkey. 
-I tried to do so by calling to their attention some of the problems that a senior departmental policy officer faces.
-Because of this diversionary attack the main group that had been pinned down on the hill was able to surge forward again. Fighting fit. What it does : increases rate of gain and improves feed efficiency. Their books found no less willing readers outside than inside the South, even while memories of the war were still sharp. He has a sharp tongue.
-Once more the fallacious equation is advanced to argue that since business is restricted under the anti-monopoly laws, there must be a corresponding restriction against labor unions : the law must treat everybody equally. Everybody out. One might not think it mattered very much, if determinism broke down near black holes. Go for broke. This is an ethical demand which cannot be evaded or glossed over by talking exclusively of weapon superiority or even of the evil of Communism.
-Apparently still sensitive about the idea with which General Gates had approached him at Saratoga, namely, that George Washington be replaced, Morgan was vehement in his support of the commander-in-chief during the campaign around Philadelphia. Her first idea was that she had somehow fallen into the sea, `and in that case I can go back by railway,' she said to herself. Many people hoped that quantum effects, would somehow smooth out the singularity of infinite density, and allow the universe to bounce, and continue back to a previous contracting phase. Somehow I think that Watson paid more attention to me than he otherwise might have because his foe, Colonel Van Hamm, wouldn't touch me with a ten-foot blue pencil. Instead, the fields would have to have a certain minimum amount of fluctuations. 
-Knowledge gained from studying earthquake waves has been applied in various fields. The main requirement is to be sure the boat is numbered according to the regulations of the state in which the boat will be principally used. April fool. The heightened tension, in fact, had been a major factor in the President's change of view about the urgency of a meeting with the Soviet leader. These would have been chosen by Darwinian natural selection. 
-This example shows that one can not deduce the geometry of the world from first principles, as the ancient Greeks thought. These words were followed by a very long silence, broken only by an occasional exclamation of `Hjckrrh!' from the scientist, and the constant heavy sobbing of the politician. It also had a fairly large value for a quantity called the cosmological constant, which is generally believed to be zero. But what he proved about General Relativity allowing time travel really upset Einstein, who had thought it wouldn't be possible. 
-First came ten soldiers carrying clubs; these were all shaped like the three gardeners, oblong and flat, with their hands and feet at the corners: next the ten courtiers; these were ornamented all over with diamonds, and walked two and two, as the soldiers did. 
-Carrying his bat. A special guard was posted at my end of the bridge to make sure I didn't cross, the ludicrousness of the situation being revealed fully in that everyone else -- men, women, and children, dogs, cats, horses, cars, trucks, baby carriages -- could cross Kehl bridge into Kehl without surveillance. Don't change horses in midstream. But Mercer's explanation was simple : I made out the check and carried it around a few days unsigned -- in case I lost it. But when waves with a period of between 10 and 40 minutes begin to roll over the ocean, they set in motion a corresponding oscillation in a column of mercury which closes an electric circuit.
-Fifth column. `Your hair wants cutting,' said the fireman. It also implies that a man wants his future to be free from the mistakes of the past. North and south, east and west, back and forth he sailed in the land-locked bay, plowing furiously forward until land appeared, then turning to repeat the process, day after day, week after week. Sally forth.
-It encompasses in its expanse areas where the natural beauty encourages a vacation of quiet contemplation, on the one hand, to places where entertainment and spectacles of all sorts have been provided for the tourist with camera. The time scale of the universe is very long compared to that for human life. In this respect, boats can be compared with houses. She said it to the Knave of Hearts, who only bowed and smiled in reply. She smiled at him wetly.
-He who pays the piper calls the tune. At 3:57 a.m., with the plane about twenty minutes out of El Paso, passenger Robert Berry, a San Antonio advertising man, glanced up and saw the man and boy, accompanied by a stewardess, walking up the aisle toward the cockpit. San fairy Ann. The Almagest and The Hypotheses outline Ptolemy's conception of his own task as the provision of computational tables, independent calculating devices for the prediction of future planetary perturbations. Until quite recently, sterile maggots could be bought to apply to a wound; they would feed on its surface, leaving it clean so that it could be medically treated.
-We'd like to make a clean slate. `Are you -- are you fond -- of -- of dogs?' It was interesting to note that many of these Juniors were showing dogs in various other classes at the show prior to the Finals of the Junior Class. Kate and Mrs. Tussle waited for letters anxiously. 
-As right as rain.
-`Oh, a song, please, if the dormouse would be so kind,' Belinda replied, so eagerly that the mouse said, in a rather offended tone, `Hm! In the more casually constructed musicals of the Nineteen Twenties and Nineteen Thirties there would seem to have been less reason for eliminating a song of merit. This is a swan song. Pope Pius the Sixth, at Rome, in April, 1778, wrote the following : the faithful should be excited to the reading of the Holy Scriptures : for these are the most abundant sources which ought to be left open to everyone, to draw from them purity of morals and of doctrine, to eradicate errors which are so widely disseminated in these corrupt times. Box and Cox.
-For many reasons, the demand to buy shares in the Dallas-headquartered company was tremendous. without -- Maybe it's always pepper that makes people hot-tempered,' she went on, very much pleased at having found out a new kind of rule, `and vinegar that makes them sour -- and camomile that makes them bitter -- and -- and barley-sugar and such things that make children sweet-tempered. Miss Catherine Vickery, who attends Sweet Briar College in Virginia, will rejoin her father, Dr. Eugene Vickery, at the family home in Richmond pl. Wednesday for part of the Carnival festivities. Sweet Fanny Adams. Usually, the cost of food and shelter will be somewhat less on the farm and the cost of transportation and utilities somewhat more.
-This arrangement was for Copernicus literally monstrous : with (the Ptolemaists) it is as though an artist were to gather the hands, feet, head and other members for his images from divers models, each part excellently drawn, but not related to a single body; and since they in no way match each other, the result would be a monster rather than a man. Hung, drawn and quartered. They got into a dust up. This Darwinian phase, lasted about three and a half billion years, and produced us, beings who developed language, to exchange information. There are other good representations of peasants and people of the court by actors who are finely costumed and magnificently photographed in this last of the Russian films to reach this country in the program of joint cultural exchange.
-Sections of the sequence can also be used to make proteins and other chemicals, which can carry out the instructions, coded in the sequence, and assemble the raw material for DNA to reproduce itself. In February, 1959, during the second admission to The New York Hospital, a biopsy specimen of the left gastrocnemius showed striking increase in the sarcolemmal sheath nuclei and shrunken muscle fibers in several sections. The values and talents which made the tile and the dome, the rug, the poem and the miniature, continue in certain social institutions which rise above the ordinary life of this city, as the great buildings rise above blank walls and dirty lanes. Climb the walls. General Relativity was a major intellectual revolution that has transformed the way we think about the universe. 
-The revolution is well under way, but much more remains to be done. However, in the last century, people began to realize that other forms of geometry were possible, in which the angles of a triangle, need not add up to a hundred and 80 degrees. Most people do not realize that the congregation, as a gathered fellowship meeting regularly face to face, personally sharing in a common experience and expressing that experience in daily relationships with one another, is unique. Connection is sought other witnesses, after appearances before the jury, which reportedly is probing into possible income tax violations, disclosed that government prosecutors were attempting to connect Stein and his company with a number of gangsters, including Glimco and Alex. 
-Udall, who comes from one of the Mormon first-families of Arizona, is a bluff, plain-spoken man with a lust for politics and a habit of landing right in the middle of the fight.
-Last fall, after they took their hopes for entering Georgia to court, Judge Bootle ordered them to apply again. For some minutes the whole court was in confusion, getting the flea turned out, and, by the time they had settled down again, the cook had disappeared. Eventually, the period of inflation would have ended, and the universe would have settled down to a stage of more moderate growth or expansion. Einstein had realized in 1905, that space and time, are intimately connected with each other. They would cause great logical problems, so let's hope there's a Chronology Protection Law, to prevent people going back, and killing our parents. 
-To these people, solidarity and unity with China should be the real basis of Russia's future policy. Like a bull in a china shop. Loose lips sink ships. During his two terms the Constitution was tested and found workable, strong national policies were inaugurated, and the traditions and powers of the Presidential office firmly fixed. Bacteria, and other single cell organisms, will live on, if all other life on Earth is wiped out by our actions. 
-`It isn't directed at all,' said the wolf; `in fact, there's nothing written on the OUTSIDE.' Pakistan was created in 1947 expressly as a Muslim state, but when the army took over eleven years later it did so on a wave of mass impatience which was directed in part against the inability of political and religious leaders to think their way through to the meaning of Islam for the modern political situation. Just as she said this, she noticed that one of the trees had a door leading right into it. As Mayor, Mr. Levitt might turn out to be more independent than some of his leading supporters would like. The Blind leading the blind.
-Paris, Texas (sp.) -- the board of regents of Paris Junior College has named Dr. Clarence Charles Clark of Hays, Kan. as the school's new president. Instead, they would collapse to form galaxies and stars, starting from about two billion years after the Big Bang. The forces which survive the initial attack must be found and destroyed. Makes your Hair stands on end. For outdoor signs and displays, where the problem of weathering resistance is no longer a factor, the choice of plastics is almost unlimited.
-For wasp stings onion juice, obtained by scraping an onion, gave quick relief. Would you like a quick one. If one drew a triangle on a saddle shaped surface, one would find that the angles added up to less than a hundred and eighty degrees. It could never happen as long as God was alert and the Drew steeple stood guard with its peaked lance. 
-She drew her foot as far down the chimney as she could, and waited till she heard a little animal (she couldn't guess of what sort it was) scratching and scrambling about in the chimney close above her: then, saying to herself `This is Bill,' she gave one sharp kick, and waited to see what would happen next. 
-Beat hell out of. This is characteristic of radiation that has been in thermal equilibrium, with matter at the same temperature. In fact, the antipathy to outward ceremonies hailed by modern exponents as so uniquely characteristic of the direct thinking Zennist was a feature of Taoism. Blue Skies, Brown Studies is illustrated with numerous excellent photographs. In working out the practical legal conclusions President Waters was not thinking only of this pilot project, for it is planned to duplicate this program or system in other builder developments nationally.
-These machines would be a new form of life, based on mechanical and electronic components, rather than macromolecules. Mr. Podger was just adding this to his pictures of the day when the screen door opened and Pam burst out. `Off with their heads!' and the procession moved on, three of the soldiers remaining behind to execute the unfortunate gardeners, who ran to Britney for protection. The Act further provides for a floor or minimum allotment, set at the 1954 level, which is called the base allotment, and a ceiling or maximum allotment, for each State. Keep your powder dry.
-The race problem has tended to obscure other, less emotional, issues which may fundamentally be even more divisive. He was tired and over emotional. The chairman's argument was, that if something wasn't done about it in less than no time she'd have everybody executed, all round. The loss in growth of sawtimber because of damage by destructive agencies in the United States in 1952 was estimated to be about 44 billion board feet. As in the United States, there is a flat fee-per-day rental charge plus a few cents per kilometer driven, and the per-day rate drops if the car is retained for a week.
-There is reason to suppose that Lucy would have made a record as publicly distinguished as her brother had it not been that her mother's death occurred just as she was about to enter college. But, apart from their potential for science fiction, what is their significance for determinism. Don't keep a dog and bark yourself. With your tail between your legs. Woe betide the interviewee if he answered vaguely.
-They all made a rush at Britney the moment she appeared; but she ran off as hard as she could, and soon found herself safe in a thick wood. The pleura and interlobular septa are thick in types 1 and 3. He gave him a thick ear. `-- I proceed. "Edwin and Morcar, the earls of Mercia and Northumbria, declared for him: and even Stigand, the patriotic archbishop of Canterbury, found it advisable --"' `Found WHAT?' said the Duck. 
-A dinner and celebration in honor of this piece of engineering took place July 4, 1793, in a tavern erected by the corporation on the island.
-He will discuss the significance of Christian commitment, the necessity of family religion and private devotions, and the importance of the membership preparation sessions. Bertha did not quite know what to say to this: so she helped herself to some tea and bread-and-butter, and then turned to the shrew, and repeated her question. A contrast of the scripture reading of, let us say, St. Augustine, John Bunyan, and Thomas Jefferson, all three of whom found in such study a real source of enlightenment, can tell us a great deal about these three men and the age that each represented and helped bring to conscious expression. Mr. Reama, who retired as vice president of the American Screw Co. in 1955 said, both parties in the last election told us that we need a five per cent growth in the gross national product -- but neither told us how to achieve it. So she went in search of her hedgehog. 
-From high in the tree, the whole block lay within range of the eye, but the ground was almost nowhere visible. New kid on the block. The universe will get more and more lumpy and irregular, as it gets smaller, and disorder will increase. Culmone gets first win Garden Fresh, the result of a mating of Better Self and Rosy Fingered, seems to improve with each start and appeared to win the St. Patrick's Day Purse with some speed in reserve. `Ah! then yours wasn't a really good school,' said the shrew in a tone of great relief. 
-He plays his sax principally for beauty of tone, rather than for scintillating flights of meaningless improvisations, and he has a quiet way of getting back and restating the melody after the improvising is over. You could even manage to travel back in time with a single wormhole, if its two ends were moving relative to each other. All's well that ends well. In Pimen's cell the soft prayers of the monks, heard from offstage, not only help to set the scene but emphasize the contrast between young Grigori's thoughts and his situation. The development and testing of new apparatus to measure other properties is nearing completion.
-However, the indirect effects of virtual particles, or vacuum fluctuations, have been observed in a number of experiments, and their existence confirmed. Under the general heading poetry-and-jazz widely divergent experiments have been carried out. Her chin was pressed so closely against her foot, that there was hardly room to open her mouth; but she did it at last, and managed to swallow a morsel of the lefthand bit. He was closely followed by the Ohio and Indiana troops -- thus the old bridge has another distinction; that of being the first such structure secured by force of arms in the war of the '60s. `There's PLENTY of room!' said Charlie indignantly, and she sat down in a large arm-chair at one end of the table. 
-Our only obligation for this day is to vote, free of persuasion, for the person we feel is capable in directing the public. My notion was that you had been (Before she had this fit) An obstacle that came between Him, and ourselves, and it. There are things about me that I can't tell you now, Mary Jane, I said, but if you'll go out to dinner with me when I get out of Hanover, I'd like to tell you the whole story. Samples zoomed into closeup range in regular succession, like telephone poles passing on the highway, while representative music reinforced the mood of the late teens and 1920's. 
-He said Morris County is rapidly changing and unless steps are taken to preserve the green areas, there will be no land left to preserve.
-There is only one escape left, a tragic one, and too many people are taking it : suicide. Join the colours. They're buying fun and adventure and family experiences. The ants are my friends, they're blowing in the wind. But the Maryland militia had likewise fled, all too typical of this type of soldier during the Revolution, an experience which gave Morgan little confidence in militia in general, as he watched other instances of their breaking in hot engagements.
-The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming. Save for brief periods in garrison or winter quarters, soldiers rarely enjoyed the luxury of a writing desk or table. `They must go by the carrier,' she thought; `and how funny it'll seem, sending presents to one's own feet! But one's confidence in it would be increased, particularly because there doesn't seem to be any other natural proposal, for the quantum state of the universe. And yet -- a year to a child is an eternity, and in the memory that phase of one's being -- a certain mental landscape -- will seem to have endured without beginning and without end.
-Give one's eye teeth for. Broadway the unoriginals to write a play, the dramatist once needed an idea plus the imagination, the knowledge of life and the craft to develop it. The smoke from that chimney rose as sluggishly as smoke from any other, and hung as sadly in the drizzle, creeping back down along the sopping canvas of the roof. By holding out prospects for external capital assistance, the United States can provide strong incentives to prepare for the concerted economic drive necessary to achieve self-sustaining growth. Left holding the baby.
-Indeed, one school superintendent in a large city objects to the use of the term comprehensive high school for the senior high schools in his city, because these schools do not offer strictly vocational programs. Sleep with. Particularly when based upon a single dominant party, governments may respond to such a situation by claiming a monopoly of understanding about the national interest. `Yes, but I grow at a reasonable pace,' said the squirrel: `not in that ridiculous fashion.' `It matters a good deal to ME,' said Claude hastily; `but I'm not looking for eggs, as it happens; and if I was, I shouldn't want YOURS: I don't like them raw.' 
-The new editions of topographic maps being made by the federal government are excellent for orienting yourself to the natural features of the site. When Johnny Mercer and Harold Arlen began their collaboration in 1940, Mercer, like Arlen, had several substantial film songs to his credit, among them Hooray For Hollywood, Ride, Tenderfoot, Ride, Have You Got Any Castles, Baby? It was so large a house, that she did not like to go nearer till she had nibbled some more of the lefthand bit of mushroom, and raised herself to about two feet high: even then she walked up towards it rather timidly, saying to herself `Suppose it should be raving mad after all! One would expect gravity, to cause the galaxies to accelerate towards each other. 
-Many people still partially subscribe to this belief, and try to make a pact with fortune. 
-Footnotes : in their first three games, the Longhorns have had the ball 41 times and scored 16 times, or 40 per cent; their total passing yardage in three games, 447 on 30 completions in 56 attempts, is only 22 yards short of their total passing yardage in 1959, when they made 469 on 37 completions in 86 tries. Simply out of bloodlust, their murderers dismembered the bodies and tossed the remains into the river. El Benefactor's vanity grew with his personal wealth. The degree of circumstance, the ratio of memory to forgetfulness, determines whether a dream will be a recognized, fulfilled prevision, or the vaguely effective source of the weird deja vue feeling. She took down a jar from one of the shelves as she passed; it was labelled `ORANGE MARMALADE', but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it. 
-There would have to be something outside the universe, to wind up the clockwork, and set the universe going. Then the wind died and the rain squall held steady. Tom Dick and Harry. Thou shalt not kill. A minister should not stay beyond the time that his leadership should benefit his church, he wrote, for he becomes ordinary.
-It is this focussing of our past light cone, by the gravitational effect of the matter in the universe, that is the signal that the universe is within its horizon, like the time reverse of a black hole. Tomorrow is another day. He is a fellow traveller. If the probability of life developing on a given planet, is very small, why did it happen on Earth, in about one 14th of the time available. Continuous motion of the arc contact area at the anode by flow or magnetic forces.
-But I think that is too narrow a view. It's a streamlined rifle, fast and well-made. The beginning of real time, would have been a singularity, at which the laws of physics would have broken down. But each step has been broken down into easy stages, utilizing standard materials and simple tools, well within the capabilities of the handyman. The Chenoweth brothers were experienced bridge builders, and against the competition of other, and better known, bridge designers and builders they had constructed nine of the covered, wooden bridges on the Parkersburg and Staunton Turnpike a dozen years before, as well as many other bridges for several counties.
-Mighty oaks from little acorns grow. Shall I try the experiment?' The mediums with whom the Parapsychology Foundation is working in this experiment are in a waking or only slightly dissociated state, so that the sitter can make comments, ask and answer questions, instead of talking with a control who speaks through an entranced sensitive. We assume for this illustration that the size of the land plots is so great that the distance between dwellings is greater than the voice can carry and that most of the communication is between nearest neighbors only, as shown in Figure 2. 
-One can describe the location of an event by four numbers. 
-This would seem to fix the tax situs of all movable personal property at its location on December 31. Location, location, location. Kerosene was very effective in ridding pioneer homes of the pests. He conducted it with less diplomacy and more spontaneous violence than the Sicilians, but he had his huge North Side portion to exploit and he made a great deal of money. There sit men who make moving averages of weekly volume, monthly averages of price-earnings ratios, ratios of the number of advances to the number of declines, ratios of an individual stock's performance to overall market performance, ratios of rising price volume to falling price volume, odd-lot indices, and what not.
-Send your return to the Director of Internal Revenue for the district in which you have your legal residence or principal place of business. A great deal depends on the crystallization of Mr. Kennedy's views on the world struggle. It will be an uphill struggle. We have ample light when the sun sets; the temperature of our homes is independent of the seasons; we fly through the air, although gravity pulls us down; the range of our voice ignores distance. The evening of our first day we drove with Christopher and Judy Sakellariadis, who were friends and patients of Norton, to dine at a restaurant on the shores of the Aegean.
-In both cases he desired information about placing the freedmen in homes once they arrived in the North. Save your bacon. She is such a dear quiet thing,' Deborah went on, half to herself, as she swam lazily about in the pool, `and she sits purring so nicely by the fire, licking her paws and washing her face -- and she is such a nice soft thing to nurse -- and she's such a capital one for catching mice -- oh, I beg your pardon!' cried Deborah again, for this time the Mouse was bristling all over, and she felt certain it must be really offended. Soft in the head. Manager Hemus, eager to end a pitching slump that has brought four losses in the five games on the current home stand, moved Gibson to the Wednesday night starting assignment.
-But one wouldn't have to appeal to something outside the universe, to determine how the universe began. He cites with pleasure the comment of a lady, who exclaimed after a concert : why, it's extremely interesting. As cool as a cucumber. Their demand against the Calvinist Orthodoxy for intellectual liberty had never meant that they would follow free inquiry to the extreme of proclaiming Christianity a natural religion. Apparently the population as a whole eventually acquires enough confidence in the explanations of the scientists to modify its procedures and its fears.
-Beyond the call of duty. They have not been friendly for years. `Oh, you can't help that,' said the Cat: `we're all mad here. On November 24th, they had made a raid on La Maddalena. 
-La dolce vita.
-And she squeezed herself up closer to Deborah's side as she spoke. This means that they were closer together in the past. Some government scientists say privately that the figure probably is closer to 80 megatons, and that the full 50-megaton bomb that Khrushchev mentioned may still be detonated. This has been his first encounter with mankind, and, although he has now become a legendary figure in the popular European press, it leaves him profoundly dissatisfied. It was a pyrrhic victory.
-When the writer uses material does he tamper with it to improve its commercial effect or does he leave it pure? First, because I'm on the same side of the door as you are; secondly, because they're making such a noise inside, no one could possibly hear you.' The Steady State theory, was what Karl Popper would call, a good scientific theory: it made definite predictions, which could be tested by observation, and possibly falsified. It certainly agrees with all the observational tests that have been carried out. Two wrongs to the editor of the Inquirer : I suppose I am missing some elementary point but I honestly cannot see how two wrongs can make a right ] I am referring to this country conducting atmosphere tests of nuclear bombs just because Russia is.
-Japanese fishermen have sometimes observed that sardines hauled up in their nets during a tsunami have enormously swollen stomachs; the fish have swallowed vast numbers of bottom-living diatoms, raised to the surface by the disturbance. Unfortunately, few of the artists (writers, movie producers, dramatists and musicians) who have used American folklore since 1900 have known enough to distinguish between the two streams even in the most general of ways. It is presumed that this negative head was associated with some geometric factor of the assembly, since different readings were obtained with the same fluid and the only apparent difference was the assembly and disassembly of the apparatus. There were a few blades of lint on the shoulder. Chip on his shoulder.
-The primary reason for the abandonment of the shore occupied by thesis has been the assimilation and accumulation of archaeological evidence, the most striking feature of early English studies in this century. In recent years Anna Xydis has played with the New York Philharmonic and at Lewisohn Stadium, but her program last night at Town Hall was the Greek-born pianist's first New York recital since 1948. A little investigation by telephone or reading the travel ads in the newspapers and magazines will give you these pertinent details on the additional money-saving benefits. To travel hopefully is a better thing than to arrive. `Well, perhaps your feelings may be different,' said Debbie; `all I know is, it would feel very queer to ME.' 
-Feelings of a community of interest will have to be recreated -- in some of the new nations, indeed, they must be built for the first time -- on a new basis which looks toward the future and does not rely only on shared memories of the past. This conclusion is dependent on the assumption that traditional sex mores will continue to sanction both premarital chastity as the ideal, and the double standard holding females primarily responsible for preserving the ideal. Why not put a cafe in each so the tourists would not have to travel too far to eat? Whether in his forthcoming book C. P. Snow commits the errors of judgment and of fact with which your heavily autobiographical critic charged him is important. 
-He ended his public career as a two-term governor of New York.
-Two questions I shall discuss are, 'What is the probability of life existing else where in the universe?' and, 'How may life develop in the future?' The same is true of areas which at first look good because of a few existing recreation features but may actually be poor areas to develop for general public use. `Of course,' the shrew said: `advance twice, set to partners --' `-- change lobsters, and retire in same order,' continued the rat. So it might seem possible, that as we advance in science and technology, we might be able to construct a wormhole, or warp space and time in some other way, so as to be able to travel into our past. This is an important step because any misalignment would cause progressively worse misalignment in the hull as you advance in construction.
-I'll try and say "How doth the little --"' and she crossed her hands on her lap as if she were saying lessons, and began to repeat it, but her voice sounded hoarse and strange, and the words did not come the same as they used to do:-- `How doth the little crocodile Improve his shining tail, And pour the waters of the Nile On every golden scale! The figure stopped and one hand was perilously freed from the hamper to scratch the nose. Mercer is supposed to have refused it with, anyone who wears a square monacle must be affected ] Everett Miller, then assistant director for the Garrick Gaieties, a Theatre Guild production, needed a lyricist for a song he had written; he just happened not to need any actor at the moment, however. Basin Street Beat but she does indicate festivities will start early, that a jazz combo will give with the Basin Street beat during the cocktail and dinner hours and that Lester Lanin's orchestra will take over during the dancing. Thus, the universe would be a completely self-contained system. 
-It contained, for example, a number of curious admissions about the peasants, who enjoy no sickness benefits, no old-age pensions, no paid holidays; they still benefit far less than the other 50 per cent of the nation from that welfare state which the Soviet Union so greatly prides itself on being. One can speculate that one might have life with some other chemical basis, such as silicon, but carbon seems the most favourable case, because it has the richest chemistry. Here Keys and others, such as Dr. A. E. Ahrens of the Rockefeller Institute, took over to demonstrate the chemical difference between vegetable and animal fats -- and even between different varieties of each. Climb onto the bandwagon. The really remarkable thing to me is that most California natives unhesitatingly elect to slow down and permit the invading car free access.
-The need that we not give unqualified approval to any but a limited use of economic pressure directed against the actual doers of injustice is clear also in light of the fact that White Citizens' Councils seem resolved to maintain segregation mainly by the use of these same means and not ordinarily by physical violence. `You are old,' said the youth, `as I mentioned before, And have grown most uncommonly fat; Yet you turned a back-somersault in at the door -- Pray, what is the reason of that?' She's fat. Chew the fat. Somewhere in Mrs. Reavey's play there is both protest and aspiration of merit.
-He dropped him into the street a couple of feet away from Geely's recumbent figure and stared down at both of them for a moment before kicking the big man lightly in the side. The Acropolis had been scheduled for the treatment too, but apparently it was to take place at the time of the full moon when the Athenians themselves, out of respect for the natural beauty of the occasion, were wont to forgo their own usual nocturnal illumination. Drop a line. It was so pretty and artless that she felt like a child again and would have enjoyed running out barefoot to play on the wet grass with all the growing things, but Doaty never permitted bare feet and she was decidedly not a child but une femme d'un certain age. 
-Perhaps present writers hypnotically cling to the older order because they consider it useful and reliable through repeated testings over the decades.
-Still, his finale is put together with taste and a most sensitive projection of that pale sustenance, despair. By contrast, a paper back novel might contain two million bits of information. The roof was about ready to fall in on Diane's little world, but it took nothing less than the Egyptian revolution to bring it down. Raise the roof. Kill two birds with one stone.
-It was a hell hole. This means that the events we observe lie on what is called our past light cone. But in this approach it is the artist's ultimate insight, rather than his immediate impressions, that gives form to the work. But there was terror in the thirties when the Nazis were on the loose and in those days Low struck like lightning. Up a gum tree.
-`How surprised he'll be when he finds out who I am! On the other hand, a husband who always has been vigorous and assertive may suddenly become passive -- asking, psychologists say, for reassurance that his wife still finds him desirable. The Charles Men consists not of a connected narrative but of a group of short stories, each depicting a special phase of the general subject. `Mine is a long and a sad tale!' said the Mouse, turning to Debbie, and sighing. `Would you tell me,' said Edna, a little timidly, `why you are painting those roses?' 
-Drafted into the Austrian army, he rebelliously rejected discipline, wangled a Vienna billet, went on painting. He moved forward to within thirty-five feet of her, being careful, because he knew the female is less predictable than the male. Thirty for now. The third amended the enabling act for creation of the Lamar county Hospital District, for which a special constitutional amendment previously was adopted. This causes the apparent position of the star or radio source, to shift slightly, when the Sun is between the Earth and the source. 
-She had talked her boy friend into sending her to New York to take a screen test. But it seems that quantum effects can remove the most objectionable feature, of singularities in classical General Relativity. The grounds for the Church's position are Scriptural (Old Testament), the teachings of the fathers and doctors of the early Church, the unbroken tradition of nineteen centuries, the decisions of the highest ecclesiastical authority and the natural law. You may be sure he marries her in the end and has a fine old knockdown fight with the brother, and that there are plenty of minor scraps along the way to ensure that you understand what the word Donnybrook means. 
-`I've so often read in the newspapers, at the end of trials, "There was some attempts at applause, which was immediately suppressed by the officers of the court," and I never understood what it meant till now.' 
-Perfect, complete entities, if they move at all, do not move towards what they lack. Because of these chewing troubles, a child may avoid certain foods he needs for adequate nutrition. Hence, if what is in question is whether in a given theology myth is or is not completely rejected, it is unimportant whether only a little bit of myth or a considerable quantity is accepted; for, in either event, the first possibility is excluded. Headquarters of the Nassau system is an increasingly busy place these days, threatening to expand beyond its boundaries. As busy as a bee.
-I mean, we all figured -- I guess anybody'd figure -- Angie -- Angelo gave him an affectionate smile. Lewis could let his eye caress The Prince's divan, covered with a rose-pink and silver Turkish cloth, or admire the lovely tapis, interwoven with gold, that spread across the floor. Thus the sequence of nucleic acids on one chain defines a unique, complementary sequence, on the other chain. A horizon even and seamless, binding the vast sun-bleached dome of sky to earth. That's just pie in the sky.
-On one of his 1921 ventures he was actually come upon by a Detective Sergeant John J. Ryan down on his knees with a tool embedded in a labour office safe in the Postal Telegraph Building; the jury wanted better evidence than that and he was acquitted, at a cost of $30,000 in bribes, it was estimated. `I don't think they play at all fairly,' Michelle began, in rather a complaining tone, `and they all quarrel so dreadfully one can't hear oneself speak -- and they don't seem to have any rules in particular; at least, if there are, nobody attends to them -- and you've no idea how confusing it is all the things being alive; for instance, there's the arch I've got to go through next walking about at the other end of the ground -- and I should have croqueted the Dalai-Lama's hedgehog just now, only it ran away when it saw mine coming!' Paradoxically the council is weakest in areas that register 4- and 5-to-1 in the party's favor, strongest where Democrats and Republicans compete on a fairly even basis. It's a complete thigh contraction-extension exercise. Let this be a lesson to you never to lose YOUR temper!' 
-Lose your lunch. On the other hand, it must have been obvious, that society is evolving in culture and technology. The place was evidently a familiar haunt and Claire wondered what other illicit loves had been celebrated in the comfortable rooms to which they were shown. The professor in turn dares not tolerate the influence in his classes of an organization in the policies and standards of which he has no voice. An Absent minded professor.
-Also on the bill at the Fifty-fifth Street is a nice ten-minute color film called Sunday In Greenwich Village, a tour of the haunts and joints. There's one born every minute. He said this constituted a very serious misuse of the Criminal court processes. Fall apart at the seams. 
-For example, don't pay in a truck policy for medical coverage that you may be paying for in a health and accident policy.
-Of course, the great majority of this information is garbage, and no use to any form of life. By the time he was prosperous enough -- his goals were high -- he was bald and afraid of women. The question might be asked : don't the managements of the heavy-electrical-goods manufacturers know these facts? She was looking about for some way of escape, and wondering whether she could get away without being seen, when she noticed a curious appearance in the air: it puzzled her very much at first, but, after watching it a minute or two, she made it out to be a grin, and she said to herself `It's the Cheshire Cat: now I shall have somebody to talk to.' One possibility is that the argument, about the appearance of life on Earth, is wrong. 
-Their appearance, next spring, coincides in an almost uncanny way with the flowering of their host plants. Michelle thought she had never seen such a curious croquet-ground in her life; it was all ridges and furrows; the balls were live hedgehogs, the mallets live flamingoes, and the soldiers had to double themselves up and to stand on their hands and feet, to make the arches. Both, of course, were remarkable feats and further embossed the fact that baseball rightfully is the national pastime. `Give your evidence,' said the King; `and don't be nervous, or I'll have you executed on the spot.' Pick the flowers, keep the soil dampened, and each of the pegged-down branches will take root and become a little plant and go on blooming for the rest of the season.
-Let one thousand flowers bloom. As always, a tape recording or detailed notes are made, and a typescript of this is sent to the absent sitter. VIII. The Croquet-Ground. A large rose-tree stood near the entrance of the garden: the roses growing on it were white, but there were three gardeners at it, busily painting them red. When words can be used in a more fresh and primitive way so that they strike with the force of sights and sounds, when tones of sound and colors of paint and the carven shape all strike the sensibilities with an undeniable force of data in and of themselves, compelling the observer into an attitude of attention, all this imitates the way experience itself in its deepest character strikes upon the door of consciousness and clamors for entrance. Uncle Dick.
-If I hafta do this to stay alive by God I'll do it. For ten minutes they ran beneath the squall, raising their arms and, for the first time, shouting and capering. By this method it was determined that the normal pressure exerted by a sample of polybutene (molecular weight reported to be 770) was over half an atmosphere. Protons and electrons bear opposite electrical charges which make them attract each other, and when they are joined they make up an atom of hydrogen -- the basic building block of matter. Bear down.
-When entries are being retrieved from this file, the table of dictionary usage indicates which entries to skip and which entries to store in the computer. His voice shook a little. Yet it is now taken for granted. Through which he has granted us the very great and precious promises, so that through them you may become partaker of the divine nature. 
-What God has joined together let no man put asunder.
-The girls are charming children and the men are wonderfully vital and engaging youngsters. It was September 20, 1960, in a lavishly decorated apartment littered with liquor bottles. Understanding, as he did, the difficulty of the art of poetry, and believing that the only technical criticism worth having in poetry is that of poets, he felt obliged to insist upon his duty to be hard to please when it came to the review of a book of verse. Thus, if public pressure sets the effective limit to the price that the industry may charge, this pressure is itself a function of the wage rate. However, on the second time round, she came upon a low curtain she had not noticed before, and behind it was a little door about fifteen inches high: she tried the little golden key in the lock, and to her great delight it fitted! 
-Planck regarded the idea of quanta, as just a mathematical trick, and not as having any physical reality, whatever that might mean. Result is a better prospect for a full payoff by bonds that once were regarded as highly speculative. In order to discuss observations in cosmology, it is helpful to draw a diagram of events in space and time, with time going upward, and the space directions horizontal. Draw a line in the sand. Shayne stepped back to let him slump to the ground, and then dived over him through the open door into Harris who was cursing loudly and trying to drag a gun from a shoulder holster, somewhat impeded by the steering wheel.
-The Vision thing. Wild and woolly. Instead, they are represented by what is called a wave function. `Take off your hat,' the King said to the plumber. He had retained his hat and his horn, and, whatever fun might still be going, he was ready to join it.
-Cosmic strings may sound far-fetched, and pure science fiction, but there are good scientific reasons to believed they could have formed in the very early universe, shortly after the Big Bang. As pure as the driven snow. At this date, it seems probable that the name of Serge Prokofieff will appear in the archives of History, as an effective Traditionalist, who was fully aware of the lure and danger of experimentation, and used it as it served his purpose; yet was never caught up in it -- never a slave to its academic dialectics. It is a consistent picture, but it would imply that we were completely determined: we couldn't change our minds. To his Harvard colleague, Josiah Royce, whose philosophic position differed radically from his own, James could write, different as our minds are, yours has nourished mine, as no other social influence ever has, and in converse with you I have always felt that my life was being lived importantly.
-Anybody's guess. The Szolds, like the Marches, enjoyed and loved living together, even in troubled times; and, as in the March home, any young man who called on the Szolds found himself confronted with a phalanx of femininity which made it rather difficult to direct his particular attention to any one of them. Cut off your nose to spite your face. The superb intellectual and spiritual vitality of William James was never more evident than in his letters. 
-So they go looking for mergers with other firms that have publicly quoted stock, and almost daily they pound on the doors of firms like Frito.
-Joe naturally ruled that a ball be dropped from alongside the spot where it had originally entered the stream. Martin Tahse has established quite a reputation for himself as a successful stager of touring productions. So, can space and time be warped enough, to meet the demands from science fiction, for things like hyper space drives, wormholes, or time travel. Her invitation from Premier Joseph Smallwood is reported to be the only one extended to a woman. `Not at all,' said Michelle: `she's so extremely --' Just then she noticed that Petra was close behind her, listening: so she went on, `-- likely to win, that it's hardly worth while finishing the game.' 
-It is a no win situation: the more accurately you try to measure the position of the particle, the less accurately you can know the speed, and vice versa. Win one for the Gipper. Cherry pick. The work had its beginning in 1938 with an eight-bar musical strain to which Koehler set the words there'll be no more work; there'll be no more worry, matching the spiritual feeling of the jot. Had the situation been reversed, had, for instance, England been the enemy in 1898 because of issues of concern chiefly to New England, there is little doubt that large numbers of Southerners would have happily put on their old Confederate uniforms to fight as allies of Britain.
-This is summed up in the Uncertainty Principle that Heisenberg formulated; the uncertainty in the position of a particle, times the uncertainty in its speed, is always greater than a quantity called Planck's constant, divided by the mass of the particle. In a certain perfectly definite way, the method and the theme of his stories are one and the same. William's conduct at first was moderate. Smooth runs the water where the brook is deep. `That's enough about lessons,' the walrus interrupted in a very decided tone: `tell her something about the games now.' 
-But it would still leave plenty of paradoxes. Many patent contests were waged over automobile components and accessories, among them tires, detachable rims, ball bearings, license brackets, and electric horns. The early appearance of life on Earth suggests that there's a good chance of the spontaneous generation of life, in suitable conditions. Generation X. This absence of boundaries means that the laws of physics would determine the state of the universe uniquely, in imaginary time. 
-Henrietta, however, was at that time engaged in a lengthy correspondence with Joe's older and more serious brother, Morris, who was just about her own age and whom she had got to know well during trips to Philadelphia with Papa, when he substituted for Rabbi Jastrow at Rodeph Shalom Temple there during its Rabbi's absence in Europe. Absence makes the heart grow fonder. First of all, it is now known that Pope John sees the renewal and purification of the Church as an absolutely necessary step toward Christian unity. Power corrupts; absolute power corrupts absolutely. 
-During early childhood, children are more interested in the approval of their parents and teachers than they are in the approval of other children; after they have been in school a few years, their interest in playmates of their own age increases, and their interest in adults decreases; the child who had once considered it a treat to accompany his parents on picnics and family gatherings now considers it a bore.
-For me, these will belong more completely to their surroundings if they are conceived in this early stage, though I freely admit that I do not hesitate to add or eliminate figures on the full sheet when it serves my final purpose. Instead, I shall adopt what is known as the Weak Anthropic Principle. We are forced, in our behavior towards others, to adopt empirically successful patterns in toto because we have such a minimal understanding of their essential elements. After the family has settled in the shelter, the housekeeping rules should be spelled out by the adult in charge. She generally gave herself very good advice, (though she very seldom followed it), and sometimes she scolded herself so severely as to bring tears into her eyes; and once she remembered trying to box her own ears for having cheated herself in a game of croquet she was playing against herself, for this curious child was very fond of pretending to be two people. 
-This organization will differ from existing assistance programs in that its members will supplement technical advisers by offering the specific skills needed by developing nations if they are to put technical advice to work. When the detective left, Andrus phoned his secretary to cancel his work and to advise the network to get a substitute director for his current project. Sometimes we'd have trouble persuading her to make tax-exempt charitable contributions, and I've known her to quarrel with a plumber over a bill for fixing a faucet; the next moment she'd put another half million into the scholarship fund or thirty thousand into something as impractical as this unfortunate Johnston affair. (D) since the shape of the drop conforms to the force field, it does not appreciably affect the distribution of forces in the fluid. `I couldn't afford to learn it.' 
-Only afterwards did an act like that become meaningless, so that he would puzzle over it for days, whereas at the time it had seemed quite real. Almost any travel agent will reserve a car for you. My aim in mentioning this factor obviously is not to give license to wild therapy but rather to encourage us to use the time-honored clinical casework skills we already possess, and to use them with greater confidence, precision, and professional pride. She's a bit of all right. There is no alternative.
-We hope, they said, that no family can be found amongst us without a correct version of the Holy Scriptures. Put the cat amongst the pigeons. But as I have said before, if I announce my candidacy, I will have something definite to say about running mates. All pricks like Coughlin run it anyway, one way or another. (C) payments made pursuant to this Title shall be made only to the person or persons on behalf of whom the award is made, except that -- (1) if such person is deceased or is under a legal disability, payment shall be made to his legal representative : provided, that if the total award is not over $500 and there is no qualified executor or administrator, payment may be made to the person or persons found by the Comptroller General of the United States to be entitled thereto, without the necessity of compliance with the requirements of law with respect to the administration of estates; (2) in the case of a partnership or corporation, the existence of which has been terminated and on behalf of which an award is made, payment shall be made, except as provided in paragraphs (3) and (4), to the person or persons found by the Comptroller General of the United States to be entitled thereto; (3) if a receiver or trustee for any such partnership or corporation has been duly appoint.
-The appointment was made in a move to expand the engineering services offered to the designers of electronic systems through assistance in electro-magnetic compatability problems. I would like to quote from the Charter of the United Nations : Article 17, Section 1 : the General Assembly shall consider and approve the budget of the Organization. `It's really dreadful,' she muttered to herself, `the way all the creatures argue. It may be, of course, that such objectives can be pursued consisently with a policy designed to overthrow Communism; my point is that where conflicts arise they must always be resolved in favor of achieving the indispensable condition for a tolerant world -- the absence of Soviet Communist power. 
-We had stopped before a shop window to assess its autumnal display, when you suddenly turned to me, looking up from beneath one of your wrong hats, and with your nervous ahem ] said : there are things I must tell you about this man you are marrying which he does not know himself.
-This accounts for the wide variance in assessment practices of movable tangible property in the various municipalities in Rhode Island. Their main asset is an abundance of unsaturated fatty acids, so necessary for maintaining the good health of the circulatory system. It has been my lot all through life to associate with eminent scientists and at times to discuss with them the deepest and most vital of all questions, the nature of the hope of a life beyond this. How in the world did one attach a pegboard to a stone wall? Aye-yah-ah-ah ] the Indian was again raising his bottle, but to my astonished relief -- probably only a fraction of Johnson's -- the bottle this time went to the Indian's lips.
-They had a large canvas bag, which tied up at the mouth with strings: into this they slipped the guinea-pig, head first, and then sat upon it.) Pale yellow snapdragons that by pinching could be made to bite; seed-pods of the balsams that snapped like fire-crackers at a touch; red-and-yellow columbines whose round-tipped spurs were picked off and eaten for the honey in them; morning-glory buds which could be so grasped and squeezed that they burst like a blown-up paper bag; bright flowers from the trumpet vine that made gloves on the ends of ten waggling fingers. Everywhere there are little touches of humor, and the leader of the on-stage band of musicians is an ebullient comedian who plays all sorts of odd instruments with winning warmth. We few, we happy few, we band of brothers. The threadbare notion that belief, unlike behaviour, is not subject to objective analysis, has placed intuitive metaphysics squarely against the sociology of knowledge, since it is precisely the job of the sociology of knowledge to treat beliefs as social facts no less viable than social behaviour.
-The common codes, for religious action as such and in their ethical aspects for everyday moral behavior, bind the devotees together. `Only mustard isn't a bird,' Penelope remarked. The ungainly bird thing ran away, and to David its croaking sounded like the crowing of a tormented rooster. He glanced up in time to see Roberts hurtling down on him from above, literally flying through the air, his bloody face twisted. A good many pages of the first section are taken up with an account of the dogged determination of the prisoners to write to their wives and families -- even when it becomes clear that the Germans are simply allowing the letters to blow away in the wind.
-Blow chunks. `Same as if he had a bone in his throat,' said the unicorn: and it set to work shaking him and punching him in the back. Why it was ever forgotten for even a moment I cannot say because it works perfectly for everyone, no matter whether he has short or long thigh-bone lengths ] it is the one exercise that drastically influences the definition of the thighs at the hipline -- that mark of the champion that sets him apart from all other bodybuilders; a criterion of muscle drama that is unforgettable to judges and audiences alike; the facet of muscular development that wins prizes. Have a Bone to pick. As she said this, she looked up, and there was the Cat again, sitting on a branch of a tree. 
-The first mention of an electric plant in Manchester seems to be one installed in Reuben Colvin's and Houghton's gristmill on the West Branch in Factory Point. Olive branch. Along the 127-mile route through Great Smoky Mountains National Park you can photograph the breath-taking peaks, gorges and valleys which come into view at every turn. A second twitched his shirtsleeve, and he felt a brief burn on his upper arm. 
-As the bus turned into the main highway and headed toward Hanover I settled back in my seat and closed my eyes, thinking over the events of the past two weeks, trying to put the pieces in order.
-She had a face like the back of a bus. County Supervisor Weldon R. Sheets, who is a candidate for the Democratic gubernatorial nomination, today called for an end to paper ballots in those counties in the state which still use them. Use of nomenclature, symbols, units, physical constants for punched-card or tape storage of information all literature values must be conformed to a common language. They all surrounded him, the family circle, Theresa and George as solemn as if they were watching the cat have kittens, and Cousin Emma running back and forth with a kettle of hot water which she poured steaming into a white enamelled pan. For a moment, she could not catch her breath and then, her breath returning in short, frightened spasms, she lifted herself to her feet laboriously.
-Catch 22. `I must be getting somewhere near the centre of the earth. We now have observations that point to black holes in a number of objects, from binary star systems, to the centre of galaxies. The wheel of social life spun around the royal or aristocratic centre. So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a rabbit with pink eyes ran close by her. 
-Greasy soils, which are typified by hydrocarbons and fats (esters of glycerol with long-chain organic acids). Ball and chain. As a designer and manufacturer of textile production machinery, Leesona and other companies in its industry have sought to meet this challenge with new or improved equipment and methods that would increase production, yet maintain both quality and flexibility. Here the absent sitter makes a date with a communicator (someone close to him who is deceased), asking him to come in at a certain hour, when a channel will be open for him. At the same time, Roosevelt's Federal Housing Administration, coupled with Henry Morgenthau's cheap-money policy, permitted ordinary lower-middle-class families to build their own homes.
-In general, any outcome we choose may be labeled success. Just as now anyone may hurl insults at a citizen of Mars, or even of Tikopia, and no senatorial investigation will result. After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Penelope! when she got to the door, she found she had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried. At least he could climb up on the fence when his tormenters roared by again. In 1922, the United Mine Workers struck the Coronado Coal Company.
-By an effort of historical sympathy we can cast our minds back into the art of a remote past or an alien present, and enjoy the carvings of cavemen and Japanese colour-prints; but the possibility of this effort is bound up with that development of historical thought which is the greatest achievement of our civilization in the last two centuries, and it is utterly impossible to people in whom this development has not taken place. The place was a riot of colour. At one extreme are the systems of upper New York State, where libraries in two or more counties combine to serve a large, sparsely populated area. County college costs to the editor : Sir -- permit me to commend your editorial in which you stress the fact that a program of county colleges will substantially increase local tax burdens and that taxpayers have a right to a clear idea of what such a program would commit them to. 
-Shall I compare thee to a summer's day?.
-Decide first what the place is worth to you and your family as a home in comparison with what it would cost to live in town. It was possible, however, to decompose the compliance into a sum of a frequency-independent component and two viscoelastic mechanisms, each compatible with the Boltzmann superposition principle and with a consistent set of time-temperature equivalence factors. Although there was some variation in results which must be attributed either to trace impurities or to variation in wall effects, the photochemical exchange in the gas phase was sufficiently reproducible so that it seemed meaningful to compare the reaction rates in different series of reaction tubes for the purpose of obtaining information on the effect of chlorine concentration and of carbon tetrachloride concentration on the reaction rate. If the observations disagreed with the predictions of the no boundary hypothesis, we would have to conclude the hypothesis was false. One may conclude that most of the detected micrometeoritic material is concentrated in orbital streams which intersect the Earth's orbit.
-The reason is, I think, my awareness that my remarks last quarter on pacifism may well have served to confirm the opinion of some that my tendency to skepticism and dissent gets us nowhere, and that I am simply too old to hope. There is a conflict among the defendants. We have every obligation to take seriously their claims to being democratic and free countries; we also have, in consequence, the duty to appraise realistically and honestly their performance and to communicate our judgments to their leaders in frank but friendly ways. Basically, the foam machines that produce such stock consist of two or more pumping units, a variable mixer, a nozzle carriage assembly, and, in many cases, a conveyor belt to transport and contain the liquid during the reaction process and until it solidifies into foam. `Are you content now?' said the caterpillar. 
-This intellectual approach to spiritual life suited me well, because I was never content to lead a divided life. Context is of extreme importance. Such errors would contribute to a gradual genetic drift, which seems to occur in all populations. The State Ballet of Rhode Island, the first incorporated group, was formed for the purpose of extending knowledge of the art of ballet in the Community, to promote interest in ballet performances, to contribute to the cultural life of the State, and to provide opportunity for gifted dance students who, for one reason or another, are unable to pursue a career and to develop others for the professional state; and now, therefore, do I, John A. Notte, Jr., Governor of the State of Rhode Island and Providence Plantations, proclaim the week of Monday, November 13, 1961, as the State Ballet of Rhode Island Week, requesting all Rhode Islanders to give special attention to this unusual event which should contribute to the cultural life of the State. Mr. Nikolais has made a distinctive contribution to the arts of costume and decor.
-But no President ever before referred to his as a lousy job (as Walter Trohan recently quoted President Kennedy as doing in conversation with Sen. Barry Goldwater). According to the new theories, the nineteenth century corporate sovereign was sovereign in a quite new and different sense from his historical predecessors. Several times it came near breaking, and there were in fact some lovely peals of thunder from Jerry Mulligan's big band, which is about as fine an aggregation as has come along in the jazz business since John Hammond found Count Basie working in a Kansas City trap. Folk-lore, superstition and remembered passages from erotic literature can create physical and emotional problems if blindly taken as scientific facts and useful hints. He has a nose for crime.
-Piepsam's fatal rage arises not only because he cannot stop the cyclist, but also because God will not stop him; as Piepsam says to the crowd in his last moments : his justice is not of this world. Far from the madding crowd. `Chorus again!' cried the lion, and the cheetah had just begun to repeat it, when a cry of `The trial's beginning!' was heard in the distance. Today a battle cry may seem an anachronism, for in the modern Army, esprit de corps has been sacrificed to organizational charts and tables. 
-They all three had another cup of coffee.
-My cup runneth over. Other brothers later joined them for instruction with Oldenburg, the wigmaker, and also arithmetic was added to Bible reading, German, and Danish in the informal curriculum. The customer loses again. There was collateral damage. A little knowledge is a dangerous thing.
-Fortunately, the debt of gravitational energy will not have to be repaid until the end of the universe. A third Thomas Bushell (1594-1674), much loved by Bacon, called himself The Superlative Prodigall in The First Part of Youths Errors (1628) and became an expert on silver mines and on the art of running into debt. However, she got up, and began to repeat it, but her head was so full of the Lobster Quadrille, that she hardly knew what she was saying, and the words came very queer indeed:-- `'Tis the voice of the Lobster; I heard him declare, "You have baked me too brown, I must sugar my hair." Bergson and Leroy announce that the secret is the center of a philosophy and thereafter a hundred followers declare secrecy a higher verity. I have nothing to declare but my genius.
-Here are the two Preambles : Federal Constitution, 1789 we the people of the United States, in order to form a more perfect union, establish justice, insure domestic tranquility, provide for the common defence, promote the general welfare, and secure the blessings of liberty to ourselves and our posterity, do ordain and establish this Constitution for the United States of America. In such a case the defendant should serve as a clear example and not have to be tied to the issue by argument. One can define Life to be an ordered system that can sustain itself against the tendency to disorder, and can reproduce itself. Here briefly in this humble tribute I have sought for some simple and succinct summation that would define the immense service of this patriot to his country. Thus it fits the definition of a living system, that I have given. 
-Very soon after his arrival in Little Rock, Pike had joined one of the most influential organizations in town, the Little Rock Debating Society, and it was with this group that he made his debut as an orator, being invited to deliver the annual Fourth of July address the club sponsored every year. Stand and deliver. `I deny it!' said the squirrel. Most of these, with horrible exceptions, were conceived as is a ship, not as an attempt to quell the ocean of mankind, nor to deny its force, but as a means to survive and enjoy it. He or his deputy or one of their seven assistants, all full colonels, mans the heart of the command post twenty-four hours a day.
-The terms renewal and refreshed, which often come up in aesthetic discussion, seem partly to derive their import from the renewal of purpose and a refreshed sense of significance a person may receive from poetry, drama, and fiction. It becomes most evident in his description of Christ as the second Adam, who does indeed come to destroy sin, but whose work culminates in the achievement of immortality. It beggar'd all description. During the first few days of wearing the appliance and immediately following each adjustment, Susan may have a slight discomfort or soreness, but after a short time this will disappear. 
-It would not be easy to discover a more thoroughly Southern pedigree than that of his family.
-But some people won't be able to resist the temptation, to improve human characteristics, such as size of memory, resistance to disease, and length of life. To the middle of September 1918, there had been fewer than 10,000 deaths from disease in the new army. They divide up the household chores : Cerv does most of the cooking (breakfast and sandwich snacks, with dinner out), Mantle supplies the transportation (a white 1961 Oldsmobile convertible), and Maris drives the 25-minute course from the apartment house to Yankee Stadium. The potters, in particular, had virtually eschewed freehand drawing, elaborate motifs, and the curving lines of nature, while yet expressing a belief that there was order in the universe. On the glass partition between me and the driver were three signs : one asked for help for the blind, another help for orphans, and the third for relief for the war refugees.
-He was a back seat driver. All the additives listed here are sanctioned for use by the Food and Drug Administration of the federal government. Mr. Sansom actually writes his with a nice ear for a gracefully composed sentence, with an intense relish in all the metaphorical resources of English, with a thick shower of sophisticated, cultural references. Minors minors must also file returns if they earn $600 or more during the year. Set the apples in the pastry-lined tin, spread over them three tablespoonfuls of softened butter, with as much brown sugar, a sprinkling of nutmeg, and a fresh bay leaf, then lay on a cover of pastry, and gild it with beaten yolk of egg.
-I will give you a nest egg. The electric gadget is most helpful when there are many crowned teeth and in individuals who are elderly, bedfast with a chronic disease, or are handicapped by disorders such as cerebral palsy or muscular dystrophy. There is some indication from a limited number of interviews with members of the population that the element of power, primarily the voluntary influence of non-authoritative power, has been exerted on actors in the system, particularly in regard to mate selection. Some people have therefore suggested that life came to Earth from elsewhere, and that there are seeds of life floating round in the galaxy. An alert dean will confer all through the year on personnel needs, plans for the future, qualifications of those on the job, and bright prospects elsewhere.
-When these fields are surveyed together, important patterns of relationship emerge indicating a vast community of reciprocal influence, a continuity of thought and expression including many traditions, primarily literary, religious, and philosophical, but frequently including contact with the fine arts and even, to some extent, with science. The conversion to magnetic tape is not yet completed, he said, and added Field's long service in state government and welfare employ gave him familiarity with the welfare program. To win her favors, her husband first took an additional job, then desperately began to embezzle from his employer. This is that the classical theory, does not enable one to calculate what would come out of a singularity, because all the Laws of Physics would break down there. What better affirmative step could be taken to this end than repeal of the Connally amendment -- an act which could expose the United States to no practical risk yet would put an end to our self-judging attitude toward the court, enable us to utilize it, and advance in a tangible way the cause of international law and order?
-This did not seem to encourage the witness at all: he kept shifting from one foot to the other, looking uneasily at Rebecca, and in his confusion he bit a large piece out of his teacup instead of the bread-and-butter. The poor little thing was snorting like a steam-engine when she caught it, and kept doubling itself up and straightening itself out again, so that altogether, for the first minute or two, it was as much as she could do to hold it. While the pupil sang the second verse of the song, she kept tossing the baby violently up and down, and the poor little thing howled so, that Penelope could hardly hear the words:-- `I speak severely to my boy, I beat him when he sneezes; For he can thoroughly enjoy The pepper when he pleases!' In the middle grades, however, he begins to participate more effectively in group activities such as selecting a leader, helping to make plans and carry on group activities, and setting up rules governing the enterprise. 
-The sweep of space, the delicate counterbalance of the white masses, the over-all completeness and unity, the originality and imagination, all entitle it to be called an authentic masterpiece.
-Most entry blanks for competitive events require engine displacement information because of class restrictions. All areas of history were either favorably or adversely affected by the geographical environment, and no respectable historian could pursue the study of history without a thorough knowledge of geography. Simultaneously, a variety of environmental supports -- a calm but not too motherly homemaker, referral for temporary economic aid, intelligent use of nursing care, accompaniment to the well-baby clinic for medical advice on the twins' feeding problem -- combined to prevent further development of predictable pathological mechanisms. They were asked to vote true if they thought they had seen him make the error, false if they thought he had not; and cannot say if they were not certain. A recent, and more pertinent action, has been the establishment of a technical staff reporting to the vice-president for Engineering.
-A fragmented Society (3) over the years, individuals engaged in the sale of real estate have developed remarkable unity in the methods and practices employed. The unshielded flux is given in the last column; these figures constitute the best estimate for the flux in interplanetary space near the Earth. Comprehensive examination of any policy question calls for the performance of the intellectual tasks inseparable from any problem-solving method. And he added in an undertone to Rebecca, `Really, my dear, YOU must cross-examine the next witness. We must, therefore, have a look at the new archaeological material and re-examine the literary and place-name evidence which bears upon the problem.
-So it was that when Mr. Brown and Mr. Sharpe first saw the French tool on exhibition in Paris in 1868, they brought a sample with them to the United States and started Brown & Sharpe in yet another field where it retains its leadership to this day. (B) all research within the United States contracted for, sponsored, cosponsored, or authorized under authority of this Act, shall be provided for in such manner that all information, uses, products, processes, patents, and other developments resulting from such research developed by Government expenditure will (with such exceptions and limitations, if any, as the Secretary may find `-- so long as I get SOMEWHERE,' Sharon added as an explanation. What are the chances that we will encounter some alien form of life, as we explore the galaxy. He bases his present contention on the general right to explore, indicating that he hopes to find some discrepancy in the resume.
-He can be expected, however, to examine and interpret the information already available; to refine and extend his own techniques for studying individual children; and to utilize opportunities, arising in connection with regular classroom activities, for gaining a better understanding of his pupils. A third possibility is that there is a reasonable probability for life to form, and to evolve to intelligent beings, in the external transmission phase. Extra, extra, read all about it. One possibility is that the formation of something like DNA, which could reproduce itself, is extremely unlikely. During the early part of this century, the Brown & Sharpe works in Providence were unchallenged as the largest single manufacturing facility devoted exclusively to precision machinery and tool manufacture anywhere in the world.
-Another way, in which life could fail to develop to an intelligent stage, would be if an asteroid or comet were to collide with the planet. Always troubled by poor circulation in his feet, he experimented with various combinations of socks and shoes before finally adopting old-style felt farmer's boots with his sheepskin flying boots pulled over them. There was no way to predict what they would do, and the only hope was to win favour by gifts or actions. I ask you to do me the last favour of reading them by 8 to-morrow evening, about which time I sh 
-As one added more layers of paint, the ball would eventually fill half the space. 
-In both cases the finger-post represents Pip's heightened awareness of contrary magnetisms. After spending two nights (Wednesday and Thursday) in Catskill, the deputies again headed for the Vermejo to finish their business. Others, which are reached by walking up a single flight of stairs, have balconies. To me you'll always be the girl o' my dreams, an' the sweetest flower that grows. Fly by the seat of your pants.
-Here the war would flame to its focus, and here Lewis Littlepage had come. But it is not too difficult to visualise a two dimensional surface, like a saddle, or the surface of a football. `They're putting down their names,' the giraffe whispered in reply, `for fear they should forget them before the end of the trial.' The concern they felt for me was such as I shall never forget and for which I will always be grateful. In contrast to cocktail parties, military organizations, even in the field, are more formal.
-Along with the fruit they did also fall under the power of death, because they did eat in disobedience; and disobedience to God entails death. Forbidden fruit. If a massive star, which has burnt up its nuclear fuel, cools and shrinks below a critical size, it will quite literally make a bottomless hole in space-time, that light can't get out of. Patterson Moos research our Patterson Moos Research Division has made further very encouraging progress in development of fuel cells. I hadn't been doing as much work as I used to in Westfield and I felt funny about that and wanted to work harder than ever.
-They were staring at him in the same blank and menacing way that the men outside the gate had stared. Hark, hark! the lark at heaven's gate sings. There was considerable contrast between this Mulligan performance and that of Art Blakey and The Jazz Messengers, who are able to generate a tremendous sound for such a small group. This was the Steady State theory, proposed by Bondi, Gold, and Hoyle. To gild refined gold, to paint the lily.
-You grant that?' `In my youth,' said the sage, as he shook his grey locks, `I kept all my limbs very supple By the use of this ointment -- one shilling the box -- Allow me. A paying guest. But because it is the function of the mind to turn the one into the other by means of the capacities with which words endow it, we do not unwisely examine the type of distinction, in the sphere of politics, on which decisions hang. 
-When the Mouse heard this, it turned round and swam slowly back to her: its face was quite pale (with passion, Sharon thought), and it said in a low trembling voice, `Let us get to the shore, and then I'll tell you my history, and you'll understand why it is I hate cats and dogs.' 
-And the Eaglet bent down its head to hide a smile: some of the other birds tittered audibly. Does the surface hide a quite different picture? Neither hide nor hair. `Then the eleventh day must have been a holiday?' The stranger's eyes were large and sad, as if Phil Haney had hurt his feelings.
-The natural and primary aesthetic attitude is to enjoy contemporary art, to despise and dislike the art of the recent past, and wholly to ignore everything else. Let me illustrate. And our question is, is such an implication consistent with what we meant? In one now-historic first interview, for example, the transcript (reproduced from the book, the First Five Minutes) goes like this : the therapist's level tone is bland and neutral -- he has, for example, avoided stressing you, which would imply disapproval; or surprise, which would set the patient apart from other people. It is always a temptation for a religious organization, especially a powerful or dominant one, to impose through the clenched fist of the law its creedal viewpoint upon others.
-All these emotions were screwed up to new heights when, after acceptance and the first rehearsals, there ensued such a buzz of excitement among Parisian music lovers that Duclos had to come running to Rousseau to inform him that the news had reached the superintendent of the King's amusements, and that he was now demanding that the work be offered first at the royal summer palace of Fontainebleau. Hospital officials said the injury was severe but the youth was in good condition last night. Such a general boycott might still be a blunt or indiscriminating instrument, and therefore of questionable justification. It can put an end to marginal claims which play havoc with your insurance rates. Before they could guess his intention Rankin stepped forward and swung the guard's own gun against the uncovered head, hard.
-Democrat Stanley H. Dent, Chairman of the House Military Affairs Committee, declined to introduce the bill. His assignment was not a new one because Baker had sent him to the Mexican border in 1916 to investigate lurid newspaper stories about lack of discipline, drunkenness, and venereal disease in American military camps. I couldn't invite Viola to our house, for Mother snobbishly refused to receive her. However, this need not involve problems with determinism or free will, if the probabilities are very small, for histories in which space-time is so warped, that time travel is possible over a macroscopic region. The capital expansion programs of business firms involve multi-year budgeting and the same is true of country development programs.
-They would have been hotter than the Sun, and would have burnt the original hydrogen and helium, into heavier elements, such as carbon, oxygen, and iron. An Iron hoof. Determine if the particular State's unadjusted allotment (result obtained in item 11 above) is greater than its maximum allotment, and if so lower its unadjusted allotment to its maximum allotment. Put your nose out of joint. 
-`Of course not,' said the porpoise: `why, if a fish came to ME, and told me he was going on a journey, I should say "With what porpoise?"' 
-Over the rapidly-diminishing outline of a jump seat piled high with luggage Herry's black brushcut was just discernible, near, or enviably near that spot where -- hidden -- more delicately-textured, most beautifully tinted hair must still be streaming back in cool, oh cool wind sweetly perfumed with sagebrush and yucca flowers and engine fumes. Most of the letters were written in the hubbub of camp, on stumps, pieces of bark, drum heads, or the knee. It was a labour of love. Sharon thought the whole thing very absurd, but they all looked so grave that she did not dare to laugh; and, as she could not think of anything to say, she simply bowed, and took the thimble, looking as solemn as she could. You can laugh at His blood-bought salvation, curse His followers, and laugh at hell.
-It was a quarter of seven when the crowd washed me up among the other gallants who had established the Astor steps as the beach-head from which to launch their night of merrymaking. Barrack room lawyer. They went as rigid as black statuary six figures, lean and tall and angular, went still. It is because each side has sought to implement its distinctive theological belief through legislation and thus indirectly force its belief, or at least the practical consequences thereof upon others. Usually premium reductions can be obtained by applying deductibles to your liability plan.
-There was no use in standing there in the drizzle, trying to find a link between Emile's murder and opium in a cup of coffee. She was biting into a small red radish; and that action always caused her to lift her lip from the sting of the thing. Bite your lip. The Carbondale Industrial Development Corp. has obtained a $500,000 loan to help defray the cost of remodeling a city-owned factory to accommodate production that will provide 500 new jobs. In the Piazza Navona there are many delightful cafes where you can sit, have a drink or lunch, and watch the fountains in the square.
-He must deal with the question of how to manage a part when it cannot be handled without relation to the whole -- when the whole is too large to grasp. There is a project now on, to map the entire sequence of human DNA. Various methods of pulsing, scanning, and displaying these sound waves are used to detect submarines, map ocean floors, and even communicate under water. Mary was free to marry again, not knowing that the Sturch had secretly given her a divorce, thinking that death had dissolved her marriage. We will hatch, match and dispatch.
-The long grass rustled at her feet as the porcupine hurried by -- the frightened Mouse splashed his way through the neighbouring pool -- she could hear the rattle of the teacups as the soldier and his friends shared their never-ending meal, and the shrill voice of Tracey ordering off her unfortunate guests to execution -- once more the pig-baby was sneezing on the teacher's knee, while plates and dishes crashed around it -- once more the shriek of the rhino, the squeaking of the Lizard's slate-pencil, and the choking of the suppressed guinea-pigs, filled the air, mixed up with the distant sobs of the miserable whale. She served up a square meal. `May it please your Majesty,' said Two, in a very humble tone, going down on one knee as he spoke, `we were trying --' `I see!' said Tracey, who had meanwhile been examining the roses. Vicky Kowalski meanwhile learned that several of her fellow students had collected almost $25 for her family during the lunch hour yesterday at Fuhrmann Junior High School, 5155 Fourteen Mile road east. 
-The basic difference between the continuous cutting mechanism and that of the chipping mechanism is that instead of shear occurring in the coating ahead of the knife continuously without fracture, rupture intermittently occurs along the shear plane.
-Thus, for aqueous media, we can think of the idealized organic active as an oleophilic or hydrophobic surface-active agent, and of an idealized builder as a oleophobic or hydrophilic surface-active agent. `I hope they'll remember her saucer of milk at tea-time. Both parties and the Ministry of the Interior were busily at work after the elections trying to unearth the political affiliations of the successful candidates and, thereby, give the elections a confidential but known degree of national political significance. Zion was surprised when Roy's buggy stopped beside her on the pike one early summer day as she was walking home from the country school where she was teaching now that Eph Showers had had a call to preach in some mountain town. In a general way, psychiatrists were able to establish on a wide basis what many of them had always felt -- that the most telling cues in psychotherapy are acoustic, that such things as stress and nagging are transmitted by sound alone and not necessarily by words.
-The third choice, negotiation, presupposes, as Russian behavior demonstrates, a great deal of wishful thinking to make it appear reasonable. Gertrude could see, as well as if she were looking over their shoulders, that all the jurors were writing down `stupid things!' on their slates, and she could even make out that one of them didn't know how to spell `stupid,' and that he had to ask his neighbour to tell him. Reliance is therefore not to be placed upon the archaeological particulars in an oral poem; no-one today would hope to discover the unmistakable ruins of Heorot or the palace of Priam. Gavin began to nod. It's as good as a nod and a wink.
-If high accuracy is required in preflight leveling, it is usually necessary to integrate or doubly integrate the accelerometer outputs (this also minimizes the noise problem). There was a big noise. This is called imaginary time, because it is not the kind of time we normally experience. When someone says, for example, they took x-rays to see that there was nothing wrong with me, it pays to consider how this statement would normally be made. When he heard of his brothers' anger, Palfrey was still hopeful that they could be persuaded to accept his notion of paying wages.
-Tenderly and rather tediously, the camera rivets on the abrupt, deep love of a pretty nurse and a uniformed teacher, complicated by nothing more than a friend they don't want to hurt. The 10.3-cm observation of Sloanaker was made on May 20, 1958, using the 84-foot reflector at the Maryland Point Observatory of the U. S. Naval Research Laboratory. Centering around this historic old structure, a group of public-spirited Barbour County citizens have organized and planned a week-long series of events, beginning on May 28th and continuing through June 3rd, to observe most appropriately the centennial of the first land engagement of the Civil War at Philippi. As early as 1913 Ghoreyeb and Karsner demonstrated with perfusion studies in dogs that bronchial artery flow would remain constant at a certain low level when pressure was maintained in the pulmonary artery and vein, but that increases in bronchial artery flow would occur in response to a relative drop in pulmonary artery pressure. And how odd the directions will look! 
-Okay, Stormy, this isn't the place for fun and games. Okay. Its pretense to operate in the public interest is little more than a sham. Some opposition to the home rule movement started to be heard yesterday, with spokesmen for the town's insurgent Democratic leadership speaking out against the home rule charter in favor of the model municipal league charter. 
-Any adjustments which are made, Mr. Grenier said earlier this month, will appear on the balance of the tax bill since most of the town's taxpayers take the option of paying quarterly with the balance due next year.
-Our objectives, as we have stated many times, are -- (1) to provide some service to all listeners; (2) to provide as many choices of service to as many listeners as possible; (3) to provide service of local origin to as many listeners as possible. Don't go splashing paint over me like that!' Center panel, hand-screened wood, actually is a back of one of the tall bookcases. Girls, my dear parent, are here to stay ] get my old man to bed early. In 1899, Parliament erected a statue to Cromwell in Westminster, facing Whitehall and there, presumably, he still stands.
-`-- you advance twice --' `Each with a lobster as a partner!' cried the giraffe. She was ready for her great adventures and the arrival of her mobile partner. She is a bird of passage. This strange person quarrels with a cyclist because the latter is using the path rather than the highroad. Primrose path.
-He had returned to the pension a week ago. These specialists perform valuable services by helping teachers learn to identify children who need special attention, by suggesting ways of meeting the needs of individual children in the regular classroom, and by providing clinical services for severely maladjusted children. If a child loses a molar at the age of two, the adjoining teeth may shift toward the empty space, thus narrowing the place intended for the permanent ones and producing a jumble. In Revulsion, on the other hand, the pessimism is a case not proven; the poem offers nothing to persuade us of the speaker's right to speak as he does. Information can not be carried free, as those of you with phone bills will know. 
-Phone service criticized to the editor of the New York Times : as a business man I have to use the telephone constantly, from three to four hours a day. China plate. The respectability which money confers implies a different etiquette, and, upon taking up the life of a London gentleman, Pip must learn from Herbert Pocket that the spoon is not generally used over-hand, but under. Out of pocket. I prefer to speak, however, of Sam Rayburn, the person, rather than Sam Rayburn, the American institution.
-A prime objective of the Army Quartermaster Corps program is to find the reasons for beef's low palatability and means of overcoming it, since it is a major and desirable dietary item. `She's in prison,' Tracy said to the executioner: `fetch her here.' `Are they in the prisoner's handwriting?' asked another of they jurymen. 1 Andre Malraux's The Walnut Trees Of Altenburg was written in the early years of the second World War, during a period of enforced leisure when he was taken prisoner by the Germans after the fall of France. 
-`And so these three little sisters -- they were learning to draw, you know --' `What did they draw?' said Chris, quite forgetting her promise. 
-Man was created with the capacity for immortality, but the devil's promise of immortality in exchange for disobedience cost Adam his immortality. I'll give you a lick and a promise. I would propose, first, an abandonment of attempts at a universal lexical list, as intrinsically unachievable, and operationally inadequate in proportion as it is achieved. `I'm afraid I don't know one,' said Harriet, rather alarmed at the proposal. `Please your Majesty,' said the Knave, `I didn't write it, and they can't prove I did: there's no name signed at the end.' 
-What determines the morality, they state, is not the means used, but the motive in general, the means (excluding abortion) that prove most effective are considered the most ethical. If, say, the Russians intended to stop Tom Jones' going to the pub, then Tom Jones would fight the Commies. Have you set specific objectives for your employee publication? To begin with, the all-powerful Los Angeles Times does not publish a transcript of these press conferences. Pull out all the stops.
-He was crouched over his anvil in the courtyard getting his chisels into trim, when a splinter of steel flew into his eye and imbedded itself in his pupil. He sent them word I had not gone (We know it to be true): If she should push the matter on, What would become of you? In the railway station at Berlin, a uniformed attendant was chanting, foreigners this way ] foreigners this way ] one woman -- she could have been either English or American -- went up to him and said, but you are the foreigners. It argued, inter alia, that a divestiture order would severely depress the market value of the stock of both General Motors and Du Pont, with consequent serious loss and hardship to hundreds of thousands of innocent investors, among them thousands of small trusts and charitable institutions; that there would be a similar decline in the market values of other automotive and chemical stocks, with similar losses to the stockholders of those companies; that the tremendous volume of General Motors stock hanging over the market for ten years would hamper the efforts of General Motors and other automobile manufacturers to raise equity capital; and that all this would have a serious adverse effect on the entire stock market and on general business activity. For that matter, Stan Musial is rare, possessing the disposition that enabled him to put out the same for seven managers, reserving his opinions, but not his effort.
-However, I now realise I was wrong, as these solutions show. If the change, at first sight, seems minor, we may recall that it took the Italian painters about two hundred years to make an analogous change, and the Italian painters, by universal consent, were the most brilliant group of geniuses any art has seen. This brief resume hardly does the book justice, but I heartily recommend it to all those who are engages with the major problems of our time. These increased costs are partially offset by a decrease of $56 million in expenditures for the reserve forces, largely because of the planned reduction in strength of the Army Reserve components during 1961. And I was certain he would refuse.
-Give him an offer he can't refuse. Nor have we remembered that in the melting pot of America the hundreds of isolated and semi-isolated ethnic, regional and occupational groups did not fuse into a homogeneous national unit until long after education and industrialization had caused them to cast oral tradition aside as a means of carrying culturally significant material. He does not mean, in fact he addresses himself specifically to reject the proposition, that if we took the risk of surrendering, a new generation in Britain would soon begin to amass its strength in secret in order to reverse the consequences of that surrender. In the areas that do not relate directly to the educational program, expert subordinates will serve the college or university better than close presidential attention. 
-Industry costs we assume that average total unit cost in the relevant region of operation is constant with respect to quantity produced (the average cost curve is horizontal, and therefore is identical with the marginal cost curve), and is the same for every firm (and therefore for the industry).
-Newspaper punditry was inspired to remind everyone that Judas, too, had been able to smile. They could eventually replace DNA based life, just as DNA may have replaced an earlier form of life. It resembles, too, pictures such as Durer and Bruegel did, in which all that looks at first to be solely pictorial proves on inspection to be also literary, the representation of a proverb, for example, or a deadly sin. In this way, the system can satisfy the requirement that the total amount of disorder increases, while, at the same time, increasing the order in itself and its offspring. Still she went on growing, and, as a last resource, she put one arm out of the window, and one foot up the chimney, and said to herself `Now I can do no more, whatever happens. 
-We took the matches -- they were book matches and once they'd been touched might retain fingerprints -- and the change. Simple yes or no answers do not reveal the different shades of opinion that the various respondents may have. Taken for a ride. However, it was over at last, and they sat down again in a ring, and begged the Mouse to tell them something more. This is the tale of one John Enright, an American who has accidentally killed a man in the prize ring and is now trying to forget about it in a quiet place where he may become a quiet man.
-Rock and roll. Route one. `Get up!' said Tracy, in a shrill, loud voice, and the three gardeners instantly jumped up, and began bowing to Robert, Valerie, the royal children, and everybody else. It was a battle royal. Most marketing people agree it is going to take redoubled efforts to satisfy future requirements.
-But the really controversial aspect of customer-cost imputation arises because of the cost analyst's frequent practice of including not just those costs that can be definitely earmarked as incurred for the benefit of specific customers but also a substantial fraction of the annual maintenance and capital costs of the secondary (low-voltage) distribution system -- a fraction equal to the estimated annual costs of a hypothetical system of minimum capacity. More than that, Allied air had complete superiority in the Eighth Army's sector. By the very nature of the situation, it is the union which has been able to select the time and place to bring pressure upon management. The only requirements on dictionary information made by the text-lookup operation are that each form represented by the dictionary be available for lookup in the text-form list and that information for each form be available in a sequence identical with the sequence of the forms. `If you're going to turn into a pig, my dear,' said Harriet, seriously, `I'll have nothing more to do with you. 
-Such wormholes have been seriously suggested, as being within the capabilities of a future civilization. The old woman complained to the deputy governor, who ordered the servant brought before the court. The moment Harriet appeared, she was appealed to by all three to settle the question, and they repeated their arguments to her, though, as they all spoke at once, she found it very hard indeed to make out exactly what they said. Could be scramble some predict the administration will settle down during 1961 and iron out the rough edges which it has had thus far. 
-Attorneys for the mayor said that an amicable property settlement has been agreed upon.
-Once again, there was a negative shake. Shake a leg. I'll shoot the first man who doesn't. Shoot a fairy. With shout and slow dance, with tears and song, with scream and contortion, the corner group was beset by hysteria and shivering, wailing, shouting, possession of something that seemed like an alien and outside force. I like cream of mushroom soup. 
-Giselle was reluctant but Alex succeeded in persuading her to come back in five minutes and the door was shut again. Shut your cake hole. There seems to be almost a conspiracy of silence veiling it. It is perhaps difficult to conceive, but imagine that tonight on London bridge the Teddy boys of the East End will gather to sing Marlowe, Herrick, Shakespeare, and perhaps some lyrics of their own. He thought of Joe Harris, the nigger who had gone after his sister.
-A ministering angel shall my sister be. He carried it in a little wallet made of fish skin. A difference of opinion arose between Mr. Martinelli and John P. Bourcier, town solicitor, over the exact manner in which the vote is handled. `I'm very sorry you've been annoyed,' said Ingrid, who was beginning to see its meaning. I am terribly sorry to keep you waiting, she said, but won't you make yourself a little drink while you wait?
-`You're a very poor speaker,' said the King. As to protection, the speaker disapproved of shelters, pointing out that fallout shelters would not save everyone. Fishing interest calls for a check of the species found, quantity and size, the season they are available, and the stocking program of the fish commission. Some manufacturers have had the foresight to provide a socket for the chuck key; otherwise, you'll have to spend a few minutes to either attach a suitable spring clip somewhere on the press head or fit the key to a length of light chain and fasten to the bottom of the motor mount so that the key is out of the way when not in use. Spend a penny.
-It is blind, fundamentalist dogmatism to say, messing around with the King James version seems to us a perilous sport at best. The Sport of kings. More than the fans of Pagnol's old films and of their heroic star, the great Raimu, were looking askance at the project. Star crossed lovers. 
-Steal a march.
-Rector was warming to his over-all strategy by the time he got back to the residential hall. Strike a deal. One can have a wave function that is very strongly peaked in a small region. The twirled, stylized design of winding stems and floral forms strongly suggests the embroidered patterns used so extensively for upholstery during the Jacobean period in England. Exhibition ballroom dancers from the studio of Helen Wick Walters of Hillsboro won the all-county talent contest.
-More potent a charm to bring back that time of life than this record of a few pictures and a few remembered facts would be a catalogue of the minutiae which are of the very stuff of the mind, intrinsic, because they were known in the beginning not by the eye alone but by the hand that held them. With the neutralists maintaining pressure for one of their own to succeed Mr. Clinton, Joe emerged as the only possible candidate unlikely to be waylaid by a veto. I suffer from mixed feelings. Cogito ergo sum. Yet, the idea imbedded in each was identical : to surround the unknown with mystery and to isolate that class which had been given special dominion over the secrets of God.
-Red tape. At the same time, I am aware that my recoil could be interpreted by readers of the tea leaves at the bottom of my psyche as an incestuous sign, since theirs is a science of paradox : if one hates, they say it is because one loves; if one bullies, they say it is because one is afraid; if one shuns, they say it is because one desires; and according to them, whatever one fancies one feels, what one feels in fact is the opposite. Can you see a tea leaf. One of the greatest obstacles to the achievement of this goal is the lack of trained men and women with the skill to teach the young and assist in the operation of development projects -- men and women with the capacity to cope with the demands of swiftly evolving economics, and with the dedication to put that capacity to work in the villages, the mountains, the towns and the factories of dozens of struggling nations. Magwitch terrifies Pip into stealing a pork pie for him by creating the image in the boy's imagination of a bogy man who may softly creep his way to him and tear him open, imbruing his hands in him.
-This has been more evident since our products have incorporated astronomically increased technology. Substances other than detergent actives also tend to be strongly sorbed from aqueous media onto surfaces of other contiguous condensed phases. The rocking is actually felt in the story, a terrible and ominous rhythm that prophesies the tragedy. Thank you for listening. At last he said, Well, thank you for calling, Mr. Benson.
-That society responds by condemning the private eye as a threat to the status quo, a potential criminal. The official military establishment can only threaten to use its nuclear arms; it cannot bring them into actual play. If it fails to pass, he can throw up his hands and say the Legislature would not support him in his efforts to prevent integration. It was a stone's throw from there. 
-Still another group of seeds (sometimes tiny, dry, seed-bearing fruits) provide distinctive flavors and odors to foods, although the nutrients they supply are quite negligible.
-Not tonight Josephine. It expanded from hand screw machines to automatic screw machines, from simple formed-tooth gear cutting machines to gear hobbing machines and a large contract gear manufacturing business, from rudimentary belt-driven universal milling machines to a broad line of elaborately controlled knee-type and manufacturing type milling machines. How sharper than a serpent's tooth it is to have a thankless child. Fast track. The twenty-five-year-old recording offers rather faded string tone, but the balance between the instruments is good and the transfer is very quiet.
-Trick or treat. Catherine's first war against the Grand Turk had ended in 1774 with a peace treaty quite favorable to her. However, in the same three-month period, toll-road bonds, as a group, have bucked this trend. Juliet looked at the jury-box, and saw that, in her haste, she had put the Lizard in head downwards, and the poor little thing was waving its tail about in a melancholy way, being quite unable to move. These gentlemen already have done the party harm by their seeming reluctance to vote aid for the depressed areas and by their criticism of Mr. Kennedy for talking about a recession and unemployment.
-Perhaps the Jewish students at Brooklyn College -- constituting 85 per cent of those who attend the day session -- can serve as a paradigm of the urban, lower-middle class Jewish student. In the final analysis, then, the user becomes either a bull or a bear in a given instance, notwithstanding any amount of forethought and calculation, however elaborate. We observe a slight variation in the rate of some pulsars, and this is interpreted as indicating that they are being disturbed, by having Earth sized planets going round them. Test specimens the preparation of test specimens will vary depending upon the type of dimensional restorability procedure (if any) to be used. Fashion victim.
-The video signal is amplified and then switched, in synchronism with the three ultraviolet light sources which are sequenced by the rotating mirror so that during one-twentieth of a second only one wavelength, corresponding to red, green, or blue, is seen. Pig!' She said the last word with such sudden violence that Juliet quite jumped; but she saw in another moment that it was addressed to the baby, and not to her, so she took courage, and went on again:-- `I didn't know that Cheshire cats always grinned; in fact, I didn't know that cats COULD grin.' Probably every visitor has a favorite time for his first sight of it. If they really want to colonize the Earth, or warn us of some danger, they are being pretty ineffective. The game was a wash out.
-The crowd did a Mexican wave. Analysis in roleplaying is usually done for the purpose of understanding strong and weak points of an individual or as a process to eliminate weak parts and strengthen good parts. Something for the weekend sir?. Whereas the earlier cases turned rather narrowly upon the availability of adequate state remedies, the new emphasis is upon the nature of the state policy at issue. 
-However, in a universe with a very large, or infinite, number of stars, one would expect it to occur in a few stellar systems, but they would be very widely separated. 
-The dark brown bombs hanging under each wing looked large and powerful. On a wing and a prayer. Who can resist a name that is such a winner? The Rocking Horse Winner is also a story about a boy's love for his mother. Maybe I should withdraw my advice - no?
-Knock on wood. Special time off in granting bereavement leaves, specify the maximum time off and list what the worker's relation to the deceased must be to qualify. He boomed a 280-yard drive. Yeah, passed your road block as I drove in, I said, sitting on his polished desk. 
-My name is Jacob. 
-Hello I'm Michael. My name is Matthew. Hello I am Joshua. 
-My name is Christopher. My name is Nicholas. 
-My name is Andrew. My name is Joseph. My name is Daniel. 
-My name is William. 
-My name is Emily. My name is Madison. My name is Hannah. 
-My name is Ashley. 
-My name is Alexis. My name is Samantha. My name is Sarah. 
-My name is Abigail. 
-My name is Elizabeth. My name is Jessica. Hi. I am Emma. 
-Hi, I am Kaitlyn. 
-Hello, I'm Hailey. Hi, my name is Olivia. Hi, my name is Isabella. 
-Hello I am Jacob. Hi my name is Aidan. Hello my name is Ethan. 
-I am Ryan. Hello my name is Matthew. Hi my name is Nicholas. 
-My name is Michael. My name is Joshua. I am Tyler. My name is Ryan. 
-My name is Joshua. My name is Michael. I am Nicholas.
-My name is Zachary. My name is Connor. Hello my name is Tyler.
-Hello Michael. Jessica and Matthew and Ashley and Christopher and Amanda 
-and Joseph and Nicole and Daniel and Samantha and Nicholas and Stephanie
-and Anthony Lauren and John and Jennifer and Kevin and Sarah and Ryan and
-Danielle.
-Michael is Jessica is Matthew is Ashley is Christopher is Amanda is
-Nicholas is Samantha is Daniel is Stephanie is Joseph is Nicole is
-John is Jennifer is Ryan is Christina is Anthony is Brittany is Andrew
-is Melissa is talking nonsense.
diff --git a/Source/Dashervr/Public/DasherController.h b/Source/Dashervr/Public/DasherController.h
deleted file mode 100644
index 8fd0a2454de6c743e0a3f218a345043d0c6b86e7..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Public/DasherController.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-#pragma once
-
-#include "Dasher.h"
-#include "CoreMinimal.h"
-#include "UObject/NoExportTypes.h"
-
-namespace Dasher {
-	class CDasher;
-}
-class SDasherWidget;
-/**
- *  Wrapper for the CDasher Class, basically just calls the CDasher functions.
- */
-
-class  DasherController
-{
-public:
-	DasherController();
-	//constructs the CDasher Object
-	void ControllerInit(Dasher::CDasher* controllerArg);
-	//calls ChangeScreen() on the CDasherObject to register the screen
-	void SetScreen(SDasherWidget* screen);
-	//Ticks CDasherObject to Tick the DasherInterface
-	void Tick(unsigned int time);
-	//give acess to SetOffset()
-	void SetOffset(int iOffset, bool bForce);
-	//give acess to SetBuffer()
-	void SetBuffer(int iOffset);
-	//confirm ScreenResize
-	void ScreenResized(SDasherWidget* screen);
-
-private:
-	Dasher::CDasher* Controller;
-};
diff --git a/Source/Dashervr/Public/DasherGameMode.h b/Source/Dashervr/Public/DasherGameMode.h
deleted file mode 100644
index a18cd2b8d14c0b5fb0e86e8df1fa7913eb56713c..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Public/DasherGameMode.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-#pragma once
-
-#include "CoreMinimal.h"
-#include "GameFramework/GameMode.h"
-#include "DasherGameMode.generated.h"
-
-/**
- * 
- */
-UCLASS()
-class DASHERVR_API ADasherGameMode : public AGameMode
-{
-	GENERATED_BODY()
-	
-};
diff --git a/Source/Dashervr/Public/DasherMouseInput.h b/Source/Dashervr/Public/DasherMouseInput.h
deleted file mode 100644
index cd70b114e41ad7781a44576642257fd02d188d8b..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Public/DasherMouseInput.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#include "DasherCoreWrapper.h"
-#include "SDasherWidget.h"
-
-class SDasherWidget;
-
-namespace Dasher {
-	class CDasherMouseInput;
-}
-
-//input class for the mouse input, alternative inputs can be implemented analogously
-class Dasher::CDasherMouseInput : public CScreenCoordInput {
-public:
-	CDasherMouseInput() : CScreenCoordInput(0, _("Mouse Input")) {
-		m_iX = 0;
-		m_iY = 0;
-	};
-	//gets screen corrdinates of the mouse
-	virtual bool GetScreenCoords(screenint& iX, screenint& iY, CDasherView* pView);
-	void RegisterWidget(SDasherWidget* Widget);
-private:
-	int m_iX;
-	int m_iY;
-	SDasherWidget* Widget;
-	UWorld* WorldContext;
-};
diff --git a/Source/Dashervr/Public/SDasherWidget.h b/Source/Dashervr/Public/SDasherWidget.h
deleted file mode 100644
index c4df02e3c6ef1f6ec3b60a139afe2339032587f9..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Public/SDasherWidget.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#pragma once
-#include "CoreMinimal.h"
-#include "Widgets/SCompoundWidget.h"
-#include "DasherCoreWrapper.h"
-#include <stack>
-#include <utility>
-#include "Math/Vector2D.h"
-#include "Dasher.h"
-#include "DasherController.h"
-#include "Fonts/FontMeasure.h"
-
-//using namespace Dasher;
-
-
-
-//Structs to hold the elements making up the UI, could maybe be generalized 
-struct FFilledRect {
-	FVector2D top;
-	FVector2D bottom;
-	FLinearColor color;
-};
-
-struct FWriting {
-	Dasher::CDasherScreen::Label *label;
-	FVector2D pos;
-	int size;
-	FLinearColor color;
-};
-
-struct FPolyLine {
-	TArray<FVector2D> points;
-	float linewidth;
-	FLinearColor color;
-};
-
-
-class DASHERVR_API SDasherWidget : public SCompoundWidget, public Dasher::CDasherScreen
-{
-public:
-
-	SLATE_BEGIN_ARGS(SDasherWidget)
-	{}
-	
-	SLATE_ARGUMENT(TSharedPtr<DasherController>, ControllerArg);
-	SLATE_ARGUMENT(int, height);
-	SLATE_ARGUMENT(int, width);
-	SLATE_END_ARGS()
-
-	typedef Dasher::screenint screenint;
-	
-	SDasherWidget(): CDasherScreen(0,0){}
-
-	// Constructs this widget with InArgs. Needed for every widget. Builds this widget and any of it's children
-	void Construct(const FArguments& InArgs);
-	virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyClippingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
-
-	//set of functions inherited from Dasherscreen used for displaying, see DasherScreen for further info	
-	typedef Dasher::screenint screenint; 
-
-	virtual void SetColourScheme(const Dasher::CColourIO::ColourInfo* pcolours) override;
-
-	CDasherScreen::Label* MakeLabel(const std::string& strtext, unsigned int iwrapsize = 0) override;
-
-	std::pair<screenint, screenint> TextSize(CDasherScreen::Label* label, unsigned int size)  { return std::make_pair(100, 100); };
-
-	virtual void DrawString(CDasherScreen::Label *label, screenint x1, screenint y1, unsigned int size, int colour) override;
-
-	virtual void DrawRectangle(Dasher::screenint x1, Dasher::screenint y1, Dasher::screenint x2, Dasher::screenint y2, int colour, int ioutlinecolour, int ithickness) override;
-
-	virtual void DrawCircle(screenint icx, screenint icy, screenint ir, int ifillcolour, int ilinecolour, int ithickness) override {} //we don't really need to draw circles, so it's not implemented
-
-	virtual void Polyline(CDasherScreen::point* points, int number, int iwidth, int colour) override;
-
-	virtual void Polygon(CDasherScreen::point* points, int number, int fillcolour, int outlinecolour, int iwidth) override;
-
-	virtual void Display() override;
-
-	virtual void SendMarker(int imarker) override {}
-
-	virtual bool IsWindowUnderCursor() override { return true; }
-
-
-	//Tick function inherited from SCompoundWidget
-	virtual void Tick(const FGeometry& AllotedGeometry, const double InCurrentTime, const float InDeltaTime) override;
-
-	//Function to set if the widget is in editor or not
-	void SetEditor(bool EditorState);
-
-	//mouse handling function
-	FReply HandleMouseMoveEvent(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
-
-	FVector2D getMousePosition();
-
-private:
-	
-	//Buffers to store Rectangles boxes and lines, so a rectangle is deleted a frame after it's created.
-	TArray<FFilledRect> RectanglesInBuffer;
-	TArray<FFilledRect> RectanglesOutBuffer;
-
-	TArray<FWriting> BoxlabelsInBuffer;
-	TArray<FWriting> BoxlabelsOutBuffer;
-
-	TArray<FPolyLine> PolyLineInBuffer;
-	TArray<FPolyLine> PolyLineOutBuffer;
-
-	TSharedPtr<DasherController>  Controller;
-	int height;
-	int width;
-	bool HasBeenPainted = false;
-	FVector2D mouseposition;
-
-	//are we in the Editor?
-	bool IsEditor = true;
-
-	//set up the font measure service to ... measure fonts.
-	TSharedPtr<FSlateFontMeasure> FontMeasureService;
-protected:
-	// stores colour information 
-	const Dasher::CColourIO::ColourInfo* m_pColours = NULL;
-};
-
diff --git a/Source/Dashervr/Public/UDasherWidget.h b/Source/Dashervr/Public/UDasherWidget.h
deleted file mode 100644
index cfa3384b857cd91fafaaad062f5afd1abf446485..0000000000000000000000000000000000000000
--- a/Source/Dashervr/Public/UDasherWidget.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-	Adapted from JoySoftEdgeImage by Rama https://nerivec.github.io/old-ue4-wiki/pages/umg-custom-widget-components-and-render-code-usable-in-umg-designer.html
-*/
-#pragma once
-
-//~~~~~~~~~~~~ UMG ~~~~~~~~~~~~~~~~
-#include "Runtime/UMG/Public/UMG.h"
-#include "Runtime/UMG/Public/UMGStyle.h"
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-//Custom Slate Element
-#include "SDasherWidget.h"
-#include "DasherController.h"
-
-#include "UDasherWidget.generated.h"
-
-UCLASS()
-
-//This class still has some unnecessary stuff
-class UDasherWidget : public UWidget
-{
-	GENERATED_UCLASS_BODY()
-
-		//Custom Slate Element 
-protected:
-	TSharedPtr<SDasherWidget> DasherScreen;
-
-private:
-	TSharedPtr<DasherController> controller;
-
-	
-public:
-
-	/** Image to draw */
-	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Appearance)
-		FSlateBrush Brush;
-
-	/** A bindable delegate for the Image. */
-	UPROPERTY()
-		FGetSlateBrush BrushDelegate;
-
-	/** Color and opacity */
-	UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Appearance)
-		FLinearColor ColorAndOpacity;
-
-	/** A bindable delegate for the ColorAndOpacity. */
-	UPROPERTY()
-		FGetLinearColor ColorAndOpacityDelegate;
-
-public:
-
-	UPROPERTY(EditDefaultsOnly, Category = Events)
-		FOnPointerEvent OnMouseButtonDownEvent;
-
-public:
-
-	// UWidget interface
-	virtual void SynchronizeProperties() override;
-	// End of UWidget interface
-
-	// UVisual interface
-	virtual void ReleaseSlateResources(bool bReleaseChildren) override;
-	// End of UVisual interface
-
-#if WITH_EDITOR
-	// UWidget interface
-	virtual const FSlateBrush* GetEditorIcon() override;
-	virtual const FText GetPaletteCategory() override;
-	// End UWidget interface
-#endif
-
-protected:
-	// UWidget interface
-	virtual TSharedRef<SWidget> RebuildWidget() override;
-	// End of UWidget interface
-
-	/** Translates the bound brush data and assigns it to the cached brush used by this widget. */
-	const FSlateBrush* ConvertImage(TAttribute<FSlateBrush> InImageAsset) const;
-
-	FReply HandleMouseButtonDown(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
-	
-};
\ No newline at end of file
diff --git a/Source/Thirdparty/CMakeLists.txt b/Source/Thirdparty/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d3216b98683de4053361cb4cb9b4a2a79b005124
--- /dev/null
+++ b/Source/Thirdparty/CMakeLists.txt
@@ -0,0 +1,62 @@
+########################
+# CURRENTLY LINUX ONLY!#
+########################
+
+
+
+cmake_minimum_required(VERSION 3.10)
+project("DasherLib")
+############################################################################################################
+# How to use this cmake:
+# Make sure to update and init your git submodules recursively (to get expat)
+# make a build directory right next to this CMakeLists.txt
+# Run cmake and make in the build directory. Then run make install to get the library in the correct folder
+# If using visual studio, make sure to select the release configuration if it is not your default
+############################################################################################################
+
+
+############################################################################################################
+# Set this to your libc++ path included with Unreal
+############################################################################################################
+set(LIBC_PATH "/home/unreal/UE4_Build_426/Engine/Source/ThirdParty/Linux/LibCxx/")
+
+
+if (UNIX)
+	############################################################################################################
+	# Flags needed for clang to use unreal's libc++
+	############################################################################################################
+
+	set(CMAKE_CXX_STANDARD 17)
+	set(CMAKE_CXX_STANDARD_REQUIRED ON)
+	add_compile_definitions(HAVE_ROUND XML_STATIC _CRT_SECURE_NO_WARNINGS HAVE_OWN_FILEUTILS HAVE_OWN_FILELOGGER)
+	set(CMAKE_SUPPRESS_REGENERATION true)
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++17 -stdlib=libc++ -nostdinc++ -I${LIBC_PATH}include/c++/v1 -L${LIBC_PATH}lib -Wl -rpath ${LIBC_PATH}lib")
+	set(CMAKE_EXE_LINKER_FLAGS "-stdlib=libc++")
+
+
+	############################################################################################################
+	#Silence Warnings stemming from giving linker arguments to the compiler and vice versa
+	############################################################################################################
+	add_definitions(-Wno-unused-command-line-argument -Wno-defaulted-function-deleted -Wno-inconsistent-missing-override -Wno-unknown-warning-option)
+endif (UNIX)
+
+
+############################################################################################################
+#We use include since install doesn't like subdirectory targets
+############################################################################################################
+include(${CMAKE_CURRENT_SOURCE_DIR}/Dasher/DasherCore/CMakeLists.txt)
+
+############################################################################################################
+#Set the appropriate name and directory for the output
+#Install header files during make install
+############################################################################################################
+set(CMAKE_BUILD_TYPE Release)
+set_target_properties(DasherCore PROPERTIES PREFIX "")
+set_target_properties(DasherCore PROPERTIES OUTPUT_NAME "DasherCore")
+set_target_properties(DasherCore PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/../Dasher/Lib)
+
+if(WIN32)
+	set_target_properties(DasherCore PROPERTIES MSVC_RUNTIME_LIBRARY MultiThreaded)
+	set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
+endif(WIN32)
+
diff --git a/Source/Thirdparty/Dasher/Dasher.Build.cs b/Source/Thirdparty/Dasher/Dasher.Build.cs
index a07d83d52365fe47e8291bd82fdaa3fec18558a8..fd0d3f918403627286c52a31b980824e8c3ded41 100644
--- a/Source/Thirdparty/Dasher/Dasher.Build.cs
+++ b/Source/Thirdparty/Dasher/Dasher.Build.cs
@@ -11,20 +11,13 @@ public class Dasher : ModuleRules
 		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
 		Type = ModuleType.External;
 
-		AddEngineThirdPartyPrivateStaticDependencies(Target, "Expat");
-		PrivateDefinitions.Add("XML_STATIC");
+		PrivateDefinitions.Add("HAVE_OWN_FILEUTILS");
 
 		PublicIncludePaths.AddRange(new string[] {});
 				
 		
 		PrivateIncludePaths.AddRange(new string[] {});
 
-		//PublicDependencyModuleNames.Add("Expat");
-
-
-
-	//	PublicAdditionalLibraries.Add("ThirdParty/Expat/expat-2.2.0/Win64/VS2015/Release/expat.lib");
-
 
 		PublicDependencyModuleNames.AddRange(new string[]{"Core"});
 			
@@ -43,18 +36,25 @@ public class Dasher : ModuleRules
 		
 		DynamicallyLoadedModuleNames.AddRange(new string[]{});
 		
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "Common"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "Common", "Allocators"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "Common", "Platform"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "Common", "Unicode"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "DasherCore"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "DasherCore", "Alphabet"));
-		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Include", "DasherCore", "LanguageModelling"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore"));
+        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src"));
+        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Allocators"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Platform"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "Common", "Unicode"));
+        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore"));
+        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore", "Alphabet"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Src", "DasherCore", "LanguageModelling"));
+		PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "DasherCore", "Thirdparty", "pugixml", "src"));
 		
 		if (Target.Platform == UnrealTargetPlatform.Win64)
 		{
 			PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "Lib", "DasherCore.lib"));
+			PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "Lib", "pugixml.lib"));
+		}
+		if (Target.Platform == UnrealTargetPlatform.Linux)
+		{
+			PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "Lib", "DasherCore.a"));
 		}
 	}
 }
diff --git a/Source/Thirdparty/Dasher/DasherCore b/Source/Thirdparty/Dasher/DasherCore
new file mode 160000
index 0000000000000000000000000000000000000000..40e174642e77b3a59038820a589f853fc6c4415d
--- /dev/null
+++ b/Source/Thirdparty/Dasher/DasherCore
@@ -0,0 +1 @@
+Subproject commit 40e174642e77b3a59038820a589f853fc6c4415d
diff --git a/Source/Thirdparty/Dasher/Include/Common/Allocators/PooledAlloc.h b/Source/Thirdparty/Dasher/Include/Common/Allocators/PooledAlloc.h
deleted file mode 100644
index 7ea72acbe5a9a54cd09e400bed87928db0cbecd4..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Allocators/PooledAlloc.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// PooledAlloc.h
-//
-// Copyright (c) 2005 David Ward
-
-#ifndef __PooledAlloc_h__
-#define __PooledAlloc_h__
-
-// CPooledAlloc allocates objects T in fixed-size blocks (specified in the constructor) 
-// Alloc returns an uninitialized T*
-// Free returns an object to the pool
-
-#include "SimplePooledAlloc.h"
-
-/////////////////////////////////////////////////////////////////////////////
-
-template<typename T> class CPooledAlloc {
-
-public:
-
-  // Construct with given block size
-  CPooledAlloc(size_t iBlockSize);
-  ~CPooledAlloc();
-
-  // Return an uninitialized object
-  T *Alloc();
-
-  // Return an object to the pool
-  void Free(T * pFree);
-
-private:
-
-  // Use simple pooled alloc for the blocked allocation
-  CSimplePooledAlloc < T > m_Alloc;
-
-  // The free list
-  std::vector < T * >m_vpFree;
-
-};
-
-template<typename T> CPooledAlloc<T>::CPooledAlloc(size_t iSize):m_Alloc(iSize) {}
-
-template<typename T> CPooledAlloc<T>::~CPooledAlloc() {}
-
-template<typename T> T * CPooledAlloc < T >::Alloc() {
-  if(m_vpFree.size() > 0) {
-    T *pLast = m_vpFree.back();
-    m_vpFree.pop_back();
-    return pLast;
-  }
-  return m_Alloc.Alloc();
-}
-
-template<typename T> void CPooledAlloc<T>::Free(T *pFree) {
-  m_vpFree.push_back(pFree);
-}
-
-#endif // __include__
diff --git a/Source/Thirdparty/Dasher/Include/Common/Allocators/SimplePooledAlloc.h b/Source/Thirdparty/Dasher/Include/Common/Allocators/SimplePooledAlloc.h
deleted file mode 100644
index 9141240deff95d440d91807389928e081003d801..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Allocators/SimplePooledAlloc.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// SimplePooledAlloc.h
-//
-// Copyright (c) 2005 David Ward
-
-#ifndef __SimplePooledAlloc_h__
-#define __SimplePooledAlloc_h__
-
-// CSimplePooledAlloc allocates objects T in fixed-size blocks (specified) 
-// Alloc returns a default-constructed T*
-// Memory is only freed on destruction of the allocator
-
-#include <cstddef>
-#include <vector>
-
-template<typename T>
-class CSimplePooledAlloc {
-public:
-  // Construct with given block size
-  CSimplePooledAlloc(std::size_t iBlockSize);
-
-  ~CSimplePooledAlloc();
-
-  // Return an uninitialized object
-  T *Alloc();
-
-private:
-  class CPool {
-  public:
-    CPool(std::size_t iSize):m_iCurrent(0), m_iSize(iSize) {
-      m_pData = new T[m_iSize];
-    }
-    ~CPool() {
-      delete[]m_pData;
-    }
-    T *Alloc() const {
-      if(m_iCurrent < m_iSize)
-        return &m_pData[m_iCurrent++];
-      return NULL;
-    }
-  private:
-    mutable std::size_t m_iCurrent;
-    std::size_t m_iSize;
-    T *m_pData;
-  };
-
-  std::vector < CPool * >m_vPool;
-
-  std::size_t m_iBlockSize;
-  int m_iCurrent;
-};
-
-template < typename T > CSimplePooledAlloc < T >::CSimplePooledAlloc(std::size_t iSize):m_iBlockSize(iSize), m_iCurrent(0) {
-  m_vPool.push_back(new CPool(m_iBlockSize));
-}
-
-template < typename T > CSimplePooledAlloc < T >::~CSimplePooledAlloc() {
-  for(std::size_t i = 0; i < m_vPool.size(); i++)
-    delete m_vPool[i];
-}
-
-template < typename T > T * CSimplePooledAlloc < T >::Alloc() {
-  T *p = m_vPool[m_iCurrent]->Alloc();
-  if(p)
-    return p;
-  m_vPool.push_back(new CPool(m_iBlockSize));
-  m_iCurrent++;
-  return m_vPool.back()->Alloc();
-}
-
-#endif // __include__
diff --git a/Source/Thirdparty/Dasher/Include/Common/AppSettingsData.h b/Source/Thirdparty/Dasher/Include/Common/AppSettingsData.h
deleted file mode 100644
index c9d84ba4e5a17f4197d572fdcfc5f5b26e20ac69..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/AppSettingsData.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "AppSettingsHeader.h"
-#include "../DasherCore/Parameters.h"
-
-// This file is an include file purely for the purposes of
-// cross-platform consistency. IT WILL NOT LINK IF INCLUDED IN MORE
-// THAN ONE PLACE! You probably want to obtain values via the
-// application settings object instead.
-
-// The following tables contain details of the application specific
-// settings. Fields are:
-//
-// Key: See corresponding enum in AppSettingsHeader.h - entries *must*
-// be in the same order as in the enum
-// 
-// Registry Name: Short text, without spaces. Used as the registry key
-// and for other 'machine readable' purposes. Please make the name
-// indicative of the purpose of the setting.
-//
-// Persistence: Whether this should be persistent or set at the begining of each setting.
-//
-// Default value: Hopefully pretty obvious
-//
-// Human-readable Name: Used for help text etc. Please make sure this
-// is useful
-
-Dasher::Settings::bp_table app_boolparamtable[] = {
-  { APP_BP_TIME_STAMP, "TimeStampNewFiles", Persistence::PERSISTENT, true, "TimeStampNewFiles" },
-  { APP_BP_CONFIRM_UNSAVED, "ConfirmUnsavedFiles", Persistence::PERSISTENT, true, "ConfirmUnsavedFiles" },
-  {APP_BP_SHOW_TOOLBAR, "ViewToolbar", Persistence::PERSISTENT, true, "ViewToolbar"},
-#ifdef WITH_MAEMO
-  { APP_BP_SHOW_STATUSBAR, "ViewStatusbar", Persistence::PERSISTENT, false, "ViewStatusbar" },
-#else
-  { APP_BP_SHOW_STATUSBAR, "ViewStatusbar", Persistence::PERSISTENT, true, "ViewStatusbar" },
-#endif
-{ APP_BP_MIRROR_LAYOUT, "MirrorLayout", Persistence::PERSISTENT, false, "MirrorLayout" },
-{ APP_BP_FULL_SCREEN, "FullScreen", Persistence::PERSISTENT, false, "FullScreen" },
-{ APP_BP_RESET_ON_FOCUS_CHANGE, "ResetOnFocusChange", Persistence::PERSISTENT, true, "ResetOnFocusChange" },
-};
-
-Dasher::Settings::lp_table app_longparamtable[] = {
-  {APP_LP_FILE_ENCODING, "FileEncodingFormat", Persistence::PERSISTENT, -1, "FileEncodingFormat"},
-  {APP_LP_EDIT_FONT_SIZE, "EditFontSize", Persistence::PERSISTENT, 0, "EditFontSize"},
-  {APP_LP_EDIT_SIZE, "EditSize", Persistence::PERSISTENT, 75, "The size of the edit window"},
-  {APP_LP_SCREEN_WIDTH, "ScreenWidth", Persistence::PERSISTENT, 400, "ScreenWidth"},
-  {APP_LP_SCREEN_HEIGHT, "ScreenHeight", Persistence::PERSISTENT, 500, "ScreenHeight"},
-  {APP_LP_STYLE, "AppStyle", Persistence::PERSISTENT, 0, "Application style"},
-  {APP_LP_X, "XPosition", Persistence::PERSISTENT, 100, "X location of window"},
-  {APP_LP_Y, "YPosition", Persistence::PERSISTENT, 100, "Y location of window"},
-#ifdef WITH_MAEMO
-  {APP_LP_MAEMO_SIZE, "MaemoSize", Persistence::PERSISTENT, 0, "Size of Maemo input window"},
-#endif
-};
-
-Dasher::Settings::sp_table app_stringparamtable[] = {
-#ifdef WITH_MAEMO
-  {APP_SP_EDIT_FONT, "EditFont", Persistence::PERSISTENT, "Sans 20", "EditFont"},
-#else
-  {APP_SP_EDIT_FONT, "EditFont", Persistence::PERSISTENT, "Sans 10", "EditFont"},
-#endif
-{ APP_SP_TOOLBAR_ID, "ToolbarID", Persistence::PERSISTENT, "", "ToolbarID" },
-};
diff --git a/Source/Thirdparty/Dasher/Include/Common/AppSettingsHeader.h b/Source/Thirdparty/Dasher/Include/Common/AppSettingsHeader.h
deleted file mode 100644
index da12729aa67aeff19226c8871eaa0415e9394dee..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/AppSettingsHeader.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __appsettingsheader_h__
-#define __appsettingsheader_h__
-
-#include "../DasherCore/Parameters.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-enum { 
-  APP_BP_TIME_STAMP = END_OF_SPS, APP_BP_CONFIRM_UNSAVED, APP_BP_SHOW_TOOLBAR,
-  APP_BP_SHOW_STATUSBAR, APP_BP_MIRROR_LAYOUT, APP_BP_FULL_SCREEN, APP_BP_RESET_ON_FOCUS_CHANGE,
-  END_OF_APP_BPS
-};
-
-enum { 
-  APP_LP_FILE_ENCODING = END_OF_APP_BPS, APP_LP_EDIT_FONT_SIZE, // TODO Extract font size from APP_SP_EDIT_FONT as linux
-  APP_LP_EDIT_SIZE,
-  APP_LP_SCREEN_WIDTH, APP_LP_SCREEN_HEIGHT,
-  APP_LP_STYLE, APP_LP_X, APP_LP_Y,
-#ifdef WITH_MAEMO
-  APP_LP_MAEMO_SIZE,
-#endif
-  END_OF_APP_LPS
-};
-
-enum {
-  APP_SP_EDIT_FONT = END_OF_APP_LPS, 
-  APP_SP_TOOLBAR_ID,
-  END_OF_APP_SPS
-};
-
-enum {
-  APP_STYLE_TRAD = 0,
-  APP_STYLE_COMPOSE,
-  APP_STYLE_DIRECT,
-  APP_STYLE_FULLSCREEN };
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/Common.h b/Source/Thirdparty/Dasher/Include/Common/Common.h
deleted file mode 100644
index 6a96ada60ad245fd3c4a7869e7fbdb0ddcd51171..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Common.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Common.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2004 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __Common_h__
-#define __Common_h__
-
-// Place common includes here - to be include by every .cpp file before its header 
-//              - can be used for precompiled headers
-//              - also when order of headers is important
-
-/////////////////////////////////////////////////////////////////////////////
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-
-#ifdef _WIN32
-#include "MSVC_Unannoy.h"
-
-#if _MSC_VER < 1300
-#include "Platform/stdminmax.h"
-#endif
-
-#endif
-
-#ifndef HAVE_ROUND
-#include "round.h"
-#endif
-
-#include "myassert.h"
-
-#include "mydebug.h"
-
-#include "Trace.h"
-
-#include "I18n.h"
-
-#endif // __include__
diff --git a/Source/Thirdparty/Dasher/Include/Common/Globber.h b/Source/Thirdparty/Dasher/Include/Common/Globber.h
deleted file mode 100644
index 41879a74b33f2ba15e685ff047cebb2c394da30d..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Globber.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-//  Globber.h
-//  Dasher
-//
-//  Created by Alan Lawrence on 21/9/11.
-//  Copyright 2011 Cambridge University. All rights reserved.
-//
-
-#ifndef __GLOBBER_H__
-#define __GLOBBER_H__
-
-#include "../DasherCore/AbstractXMLParser.h"
-
-void globScan(AbstractParser *parser,
-              const char **userPaths,
-              const char **systemPaths);
-void globScan(AbstractParser *parser, 
-              const char **usrPaths, 
-              const char **sysPaths, 
-              int(*error_callback)(const char *,int));
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/I18n.h b/Source/Thirdparty/Dasher/Include/Common/I18n.h
deleted file mode 100644
index ac688873b90a2ada24dab96bbcd5aeeefe4c34f7..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/I18n.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// I18n.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-#ifndef __i18n_h__
-#define __i18n_h__
-
-#if defined(_WIN32) || defined(__APPLE__)
-
-#define _(szText) szText
-#define N_(szText) (szText)
-
-#else
-
-#include <libintl.h>
-// Attempt to get rid of '"_" redefined' compiler warnings.  I'm not sure the
-// proper way to verify that gnome i18n support is present, so if you have a
-// better idea...
-#ifndef _
-#define _(szText) gettext(szText)
-#endif
-
-#ifndef N_
-#define N_(szText) (szText)
-#endif
-
-#endif
-
-#endif
-
diff --git a/Source/Thirdparty/Dasher/Include/Common/IOstreamDasherEdit.h b/Source/Thirdparty/Dasher/Include/Common/IOstreamDasherEdit.h
deleted file mode 100644
index 2d6ec8315cc4d80887fc3114add79bf4f474c2f3..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/IOstreamDasherEdit.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// IOstreamDasherEdit.h
-// (c) 2003 Yann Dirson
-// Derived from GtkDasherEdit.h
-// (c) 2002 Philip Cowans
-
-#ifndef IOSTREAM_DASHER_EDIT_H
-#define IOSTREAM_DASHER_EDIT_H
-
-#include "Common.h"
-#include "DashEdit.h"
-#include "DasherTypes.h"
-#include "DasherInterface.h"
-
-#include <string.h>
-#include <iostream>
-
-#ifndef ICONV_CONST
-#define ICONV_CONST const
-#endif
-
-using namespace Dasher;
-
-class IOstreamDasherEdit:public Dasher::CDashEditbox {
-public:
-  IOstreamDasherEdit(CDasherInterface * _interface, std::ostream * os = &std::cout);
-  ~IOstreamDasherEdit();
-
-  void write_to_file();
-  void get_new_context(std::string & str, int max);
-  void unflush();
-  void output(symbol Symbol);
-  void flush(symbol Symbol);
-  void deletetext();
-  void Clear();
-
-  void SetFont(std::string Name, long Size);
-  bool SaveAs(const std::string filename, bool a);
-  bool Save(bool a = false);
-  bool Open(const std::string filename);
-
-  void TimeStampNewFiles(bool Value);
-
-  void kill_flush();
-
-  void set_display_encoding(int _enc);
-
-protected:
-  int flush_count;
-  CDasherInterface *interface;
-
-  std::ostream * outstream;
-
-  int enc;
-  char encstr[256];
-};
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/MSVC_Unannoy.h b/Source/Thirdparty/Dasher/Include/Common/MSVC_Unannoy.h
deleted file mode 100644
index e19c5889a41efb30b898eb98d5de649ff871bf89..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/MSVC_Unannoy.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __MSVC_Unannoy_h__
-#define __MSVC_Unannoy_h__
-
-// Sorry about this frequently included header non-VC++ users.
-// It shouldn't do any harm.
-
-// Warning 4786 is so annoying if you have VC++ 6.
-// It produces *pages* of complaints if you use certain STL headers.
-// The warning just means that VC++ is unable to produce certain debug
-// information - there is nothing wrong with the code. IAM 08/2002
-#ifdef _MSC_VER
-#pragma warning(disable:4786)
-#pragma warning(disable:4018)
-
-#pragma warning(disable:4996)   // warning C4996: 'fopen' was declared deprecated
-#endif
-
-#endif /* #ifndef __MSVC_Unannoy_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/Common/ModuleSettings.h b/Source/Thirdparty/Dasher/Include/Common/ModuleSettings.h
deleted file mode 100644
index 4e6e72f2b6b96ec6858545b59e363c2ea6d0676b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/ModuleSettings.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __ModuleSettings_h__
-#define __ModuleSettings_h__
-
-enum setting_t {
-  T_BOOL,
-  T_LONG,
-  T_LONGSPIN,
-  T_STRING
-};
-
-typedef struct _SModuleSettings SModuleSettings;
-
-struct _SModuleSettings {
-  int iParameter;
-  setting_t iType;
-  int iMin;
-  int iMax;
-  int iDivisor;
-  int iStep;
-  const char *szDescription;
-};
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/NoClones.h b/Source/Thirdparty/Dasher/Include/Common/NoClones.h
deleted file mode 100644
index 6490c58164c3b4446a7f679e1160334a61eb4db8..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/NoClones.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __NoClones_h__
-#define __NoClones_h__
-
-/* Explanation of NoClones {{{
-
-C++ defines default copy constructors and assignment operators, which clone
-every member of a class. Stroustrup describes this behaviour as the result of
-"historical accident". For many non-trivial classes, especially those
-containing pointers, this default behaviour is too naive. In fact it often leads
-to heap corruption.
-
-Sometimes it does not make any sense to copy an instance of a class. For
-example if it contains a unique file handle, or other lock on a system resource.
-Sometimes it is too much effort to write reliable replacement copy operations[1].
-In either case a private copy constructor and a private assignment operator
-prevent accidental copying. [2]
-
-Deriving a class from this class has the same preventative effect. It is also a
-bit neater and means that all the above explanation is centralised here.
-
-IAM 09/2002
-
-[1] An example of how it is very easy to make mistakes:
-http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html
-If we don't need a copy feature it really isn't worth the hassle.
-[2] The C++ Programming Language. Stroustrup. 3rd edition. Section 10.4.6.3
-
-}}} */
-
-class NoClones {
-protected:                     // Default constructor doesn't need to be public, but can't be private.
-  NoClones() {
-  };                            // Lots of compiler complaints without default constructor.
-private:
-  NoClones(const NoClones &);
-  NoClones & operator=(const NoClones &);
-};
-
-#endif /* #ifndef __NoClones_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/Common/OpenGLScreen.h b/Source/Thirdparty/Dasher/Include/Common/OpenGLScreen.h
deleted file mode 100644
index d9004df81519690d1be3d680480637e52236b399..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/OpenGLScreen.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-//  AlphabetLetter.h
-//  Dasher
-//
-//  Created by Alan Lawrence on 20/03/2009.
-//  Copyright 2009 Cavendish Laboratory. All rights reserved.
-//
-#if TARGET_OS_IPHONE
-#import <OpenGLES/ES1/gl.h>
-#else
-#import <AppKit/AppKit.h>
-#import <OpenGL/gl.h>
-#endif
-
-#import "DasherScreen.h"
-#include <string>
-
-namespace Dasher {
-  class OpenGLScreen : public CLabelListScreen {
-  protected:
-    class AlphabetLetter : public Label {
-    public: //to OpenGLScreen and subclasses - all read by DrawString
-      NSString *str;
-      GLuint texture;
-      GLfloat texcoords[8];
-      CGSize sz; //at base font size, or wrapped size if appropriate
-      AlphabetLetter(OpenGLScreen *pScreen, const std::string &strText, unsigned int iWrapSize);
-      ~AlphabetLetter();
-      void PrepareTexture();
-    };    
-  public:
-    OpenGLScreen(screenint iWidth, screenint iHeight, GLshort backingWidth, GLshort backingHeight, GLfloat tc_x, GLfloat tc_y, GLuint *textures);
-    ~OpenGLScreen();
-    
-    ///Note, subclasses should override to additionally have buffers ready, etc.
-    void Display();
-    void SetColourScheme(const CColourIO::ColourInfo *pColourScheme);
-    void Polyline(point *Points, int iNum, int iWidth, int iColour);
-    void Polygon(point *points, int iNum, int iFillColour, int iOutlineColour, int iWidth);  
-    void DrawRectangle(int x1, int y1, int x2, int y2, int iFillColorIndex, int iOutlineColour, int iThickness);
-    void DrawCircle(screenint iCX, screenint iCY, screenint iR, int iFillColour, int iLineColour, int iLineWidth);
-    
-    bool MultiSizeFonts() {return true;}
-    AlphabetLetter *MakeLabel(const std::string &strText,unsigned int iWrapSize=0);
-    std::pair<screenint,screenint> TextSize(CDasherScreen::Label *label, unsigned int iFontSize);
-    void DrawString(CDasherScreen::Label *label, screenint x, screenint y, unsigned int iFontSize, int iColour);
-    //leave virtual: SendMarker, Display
-  protected:
-    void resize(screenint iWidth, screenint iHeight, GLshort backingWidth, GLshort backingHeight, GLfloat tc_x, GLfloat tc_y);
-    void RegenerateLabels();
-    ///Render a string onto a CoreGraphics context, using the context's current colour etc.
-    /// \param iFontSize font size to use
-    /// \param bWrap if true, constrain to screen width and wrap across multiple lines (if necessary);
-    /// if false, render on a single line.
-    virtual void RenderStringOntoCGContext(NSString *string, CGContextRef context, unsigned int iFontSize, bool bWrap)=0;
-    /// Get the pixel dimensions of a string when rendered in a specified font size
-    /// \param bWrap if true, string should be wrapped to the screen width, possibly
-    /// over multiple lines (=> returned height will reflect this); if false,
-    /// keep on one line (even if that makes it wider than the screen)
-    virtual CGSize TextSize(NSString *str, unsigned int iFontSize, bool bWrap)=0;
-  private:
-    typedef struct {
-      float r, g, b;
-    } colour_t;
-    
-    //colours in use, we cache these as floats for feeding to OpenGL.
-    colour_t *colourTable;
-    
-    ///Caches for circleCallbackWithCentrePoint:... (see therein)
-    float circ_rad;
-    GLshort *circ_coords;
-    int circPoints;
-
-    GLshort rectcoords[8];
-    GLfloat texcoords[8];
-    GLuint *textures;
-    
-  };
-}
\ No newline at end of file
diff --git a/Source/Thirdparty/Dasher/Include/Common/Platform/stdminmax.h b/Source/Thirdparty/Dasher/Include/Common/Platform/stdminmax.h
deleted file mode 100644
index e7206d1b26e7eee680adc2ec9a09a20e69caf542..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Platform/stdminmax.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// stdminmax.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2005 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __Platform_stdminmax__
-#define __Platform_stdminmax__
-
-#if _MSC_VER < 1300
-
-namespace std {
-  template < typename T > inline T min(T t1, T t2) {
-    return std::_cpp_min(t1, t2);
-  } template < typename T > inline T max(T t1, T t2) {
-    return std::_cpp_max(t1, t2);
-  }
-
-};
-#endif
-
-#endif // __Platform_stdminmax__
diff --git a/Source/Thirdparty/Dasher/Include/Common/SBTree.h b/Source/Thirdparty/Dasher/Include/Common/SBTree.h
deleted file mode 100644
index 7ba589bc3231d6c2127b707f5881dc9e2e3d69a5..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/SBTree.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  SBTree.h
- *  Dasher
- *
- *  Created by Alan Lawrence on 17/04/2009.
- *  Copyright 2009 Cavendish Laboratory. All rights reserved.
- *
- */
-
-#include <stdlib.h>
-
-class SBTree {
-public:
-    SBTree(int iValue);
-    ~SBTree();
-	
-    void Add(int iValue);
-    SBTree* Delete(int iValue);
-	
-    int GetCount() {
-		return m_iCount;
-    };
-	
-    int GetOffset(int iOffset);
-		
-private:
-	void SetRightMost(SBTree* pNewTree);
-    int m_iValue;
-    SBTree *m_pLeft;
-    SBTree *m_pRight;
-    int m_iCount;
-};
diff --git a/Source/Thirdparty/Dasher/Include/Common/Trace.h b/Source/Thirdparty/Dasher/Include/Common/Trace.h
deleted file mode 100644
index 40f3d419a827dff138cb57a8c103432b3c95a957..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Trace.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Trace.h
-//
-// Copyright (c) 2005 David Ward
-
-#ifndef __Common_Trace_h__
-#define __Common_Trace_h__
-
-// Trace is a mechanism for printf-like debugging that can be switched on/off
-// at compile time
-
-// To use Trace, define DASHER_TRACE in your build files, or uncomment the 
-// following line
-// #define DASHER_TRACE
-
-// Use the DASHER_TRACEOUTPUT macro to format a message to trace
-// Syntax is identicaly to printf:
-//
-// int i=6;
-// DASHER_TRACEOUTPUT("Hello World %d", i); 
-
-// The behaviour of DASHER_TRACEOUTPUT can be customized by changing
-// DasherTraceOutputImpl in Trace.cpp
-
-// Note that if DASHER_TRACE is not defined, trace code should be completely
-// removed by the compiler
-
-#include <stdarg.h>
-#include <stdio.h>
-
-void DasherTraceOutput(const char *pszFormat, ...);
-void DasherTraceOutputImpl(const char *pszFormat, va_list vargs);
-
-inline void DasherTraceOutput(const char *pszFormat, ...) {
-  va_list v;
-  va_start(v, pszFormat);
-  DasherTraceOutputImpl(pszFormat, v);
-  va_end(v);
-}
-
-// Define main Trace macro
-
-#ifdef DASHER_TRACE
-
-        // Active
-#define DASHER_TRACEOUTPUT \
-        DasherTraceOutput
-#else
-
-        // Inactive - function should never get called
-#define DASHER_TRACEOUTPUT (void) 0
-
-#endif // DASHER_TRACE
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/Types/int.h b/Source/Thirdparty/Dasher/Include/Common/Types/int.h
deleted file mode 100644
index 82fa009305facf23f38cb0666e9ef7eafd22acb4..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Types/int.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// int.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2001-2004 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __int_h__
-#define __int_h__
-
-#ifdef _WIN32
-
-typedef __int64 int64;
-typedef unsigned __int64 uint64;
-typedef int int32;
-typedef unsigned int uint32;
-
-#else
-
-typedef long long int int64;
-typedef unsigned long long int uint64;
-typedef int int32;
-typedef unsigned int uint32;
-
-#endif
-
-#include <limits>
-
-const int64 int64_max = std::numeric_limits<int64>::max();
-const int64 int64_min = std::numeric_limits<int64>::min();
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/Unicode/ConvertUTF.h b/Source/Thirdparty/Dasher/Include/Common/Unicode/ConvertUTF.h
deleted file mode 100644
index 8607f7db00826c3c3969f27f38c04ec3311f7534..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/Unicode/ConvertUTF.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2001 Unicode, Inc.
- * 
- * Disclaimer
- * 
- * This source code is provided as is by Unicode, Inc. No claims are
- * made as to fitness for any particular purpose. No warranties of any
- * kind are expressed or implied. The recipient agrees to determine
- * applicability of information provided. If this file has been
- * purchased on magnetic or optical media from Unicode, Inc., the
- * sole remedy for any claim will be exchange of defective media
- * within 90 days of receipt.
- * 
- * Limitations on Rights to Redistribute This Code
- * 
- * Unicode, Inc. hereby grants the right to freely use the information
- * supplied in this file in the creation of products supporting the
- * Unicode Standard, and to make copies of this file in any form
- * for internal or external distribution as long as this notice
- * remains attached.
- */
-
-/* ---------------------------------------------------------------------
-
-    Conversions between UTF32, UTF-16, and UTF-8.  Header file.
-
-    Several funtions are included here, forming a complete set of
-    conversions between the three formats.  UTF-7 is not included
-    here, but is handled in a separate source file.
-
-    Each of these routines takes pointers to input buffers and output
-    buffers.  The input buffers are const.
-
-    Each routine converts the text between *sourceStart and sourceEnd,
-    putting the result into the buffer between *targetStart and
-    targetEnd. Note: the end pointers are *after* the last item: e.g. 
-    *(sourceEnd - 1) is the last item.
-
-    The return result indicates whether the conversion was successful,
-    and if not, whether the problem was in the source or target buffers.
-    (Only the first encountered problem is indicated.)
-
-    After the conversion, *sourceStart and *targetStart are both
-    updated to point to the end of last text successfully converted in
-    the respective buffers.
-
-    Input parameters:
-	sourceStart - pointer to a pointer to the source buffer.
-		The contents of this are modified on return so that
-		it points at the next thing to be converted.
-	targetStart - similarly, pointer to pointer to the target buffer.
-	sourceEnd, targetEnd - respectively pointers to the ends of the
-		two buffers, for overflow checking only.
-
-    These conversion functions take a ConversionFlags argument. When this
-    flag is set to strict, both irregular sequences and isolated surrogates
-    will cause an error.  When the flag is set to lenient, both irregular
-    sequences and isolated surrogates are converted.
-
-    Whether the flag is strict or lenient, all illegal sequences will cause
-    an error return. This includes sequences such as: <F4 90 80 80>, <C0 80>,
-    or <A0> in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code
-    must check for illegal sequences.
-
-    When the flag is set to lenient, characters over 0x10FFFF are converted
-    to the replacement character; otherwise (when the flag is set to strict)
-    they constitute an error.
-
-    Output parameters:
-	The value "sourceIllegal" is returned from some routines if the input
-	sequence is malformed.  When "sourceIllegal" is returned, the source
-	value will point to the illegal value that caused the problem. E.g.,
-	in UTF-8 when a sequence is malformed, it points to the start of the
-	malformed sequence.  
-
-    Author: Mark E. Davis, 1994.
-    Rev History: Rick McGowan, fixes & updates May 2001.
-		 Fixes & updates, Sept 2001.
-
------------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------
-    The following 4 definitions are compiler-specific.
-    The C standard does not guarantee that wchar_t has at least
-    16 bits, so wchar_t is no less portable than unsigned short!
-    All should be unsigned values to avoid sign extension during
-    bit mask & shift operations.
------------------------------------------------------------------------- */
-
-typedef unsigned long UTF32;    /* at least 32 bits */
-typedef unsigned short UTF16;   /* at least 16 bits */
-typedef unsigned char UTF8;     /* typically 8 bits */
-typedef unsigned char Boolean;  /* 0 or 1 */
-
-/* Some fundamental constants */
-#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
-#define UNI_MAX_BMP (UTF32)0x0000FFFF
-#define UNI_MAX_UTF16 (UTF32)0x0010FFFF
-#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
-
-typedef enum {
-  conversionOK,                 /* conversion successful */
-  sourceExhausted,              /* partial character in source, but hit end */
-  targetExhausted,              /* insuff. room in target for conversion */
-  sourceIllegal                 /* source sequence is illegal/malformed */
-} ConversionResult;
-
-typedef enum {
-  strictConversion = 0,
-  lenientConversion
-} ConversionFlags;
-
-/* This is for C++ and does no harm in C */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-  ConversionResult ConvertUTF8toUTF16(const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags);
-
-  ConversionResult ConvertUTF16toUTF8(const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags);
-
-  ConversionResult ConvertUTF8toUTF32(const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags);
-
-  ConversionResult ConvertUTF32toUTF8(const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags);
-
-  ConversionResult ConvertUTF16toUTF32(const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags);
-
-  ConversionResult ConvertUTF32toUTF16(const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags);
-
-  Boolean isLegalUTF8Sequence(const UTF8 * source, const UTF8 * sourceEnd);
-
-#ifdef __cplusplus
-}
-#endif
-/* --------------------------------------------------------------------- */
diff --git a/Source/Thirdparty/Dasher/Include/Common/myassert.h b/Source/Thirdparty/Dasher/Include/Common/myassert.h
deleted file mode 100644
index 0217acdbccd55a12975a77bc5bda4891b9b26638..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/myassert.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// myassert.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __assert_h__
-#define __assert_h__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-// The DASHER_ASSERT macro causes execution to break into the debugger in DEBUG mode
-// In non-debug debug builds - no check is done
-
-#ifdef DEBUG
-#ifdef _WIN32
-
-#include <crtdbg.h>
-#define DASHER_ASSERT(expr) _ASSERT(expr)
-
-#else 
-
-// POSIX platforms (eg Linux)
-#include <cassert>
-#define DASHER_ASSERT(expr) assert(expr)
-
-#endif // _WIN32
-
-#else
-
-// Non-debug version (assertions disabled)
-#define DASHER_ASSERT(expr) ((void)true)
-
-#endif // DEBUG
-
-/////////////////////////////////////////////////////////////////////////////
-
-// Pointer checking - some CRTs provide functionality to check the integrity of memory
-
-// DASHER_ASSERT_VALIDPTR_RW(p) asserts that a pointer is valid for read and write
-// DASHER_ASSERT_VALIDPTR_R(p) asserts that a pointer is valid for read
-
-#if _MSC_VER >= 1300
-#define DASHER_ASSERT_VALIDPTR_RW(p)	DASHER_ASSERT(_CrtIsValidPointer(p, sizeof(p), 1))
-#define DASHER_ASSERT_VALIDPTR_R(p)		DASHER_ASSERT(_CrtIsValidPointer(p, sizeof(p), 0))
-#else
-
-        // Please implement any platform-specific pointer checking
-
-        // Simple check that the pointer is non-null
-#define DASHER_ASSERT_VALIDPTR_RW(p)	DASHER_ASSERT(p!=NULL)
-#define DASHER_ASSERT_VALIDPTR_R(p)		DASHER_ASSERT(p!=NULL)
-
-#endif
-
-#endif // __assert_h__
diff --git a/Source/Thirdparty/Dasher/Include/Common/mydebug.h b/Source/Thirdparty/Dasher/Include/Common/mydebug.h
deleted file mode 100644
index 829f86cd41495a991aabce3ced59f0786950b5fa..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/mydebug.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __mydebug_h__
-#define __mydebug_h__
-
-#define DASHER_DEBUG(x) g_message(x)
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/Common/round.h b/Source/Thirdparty/Dasher/Include/Common/round.h
deleted file mode 100644
index f2f5b0a22b343cab7eee46cf8ff2d169dcf02006..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/Common/round.h
+++ /dev/null
@@ -1,3 +0,0 @@
-extern "C" {
-double round(double);
-}
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/AbstractXMLParser.h b/Source/Thirdparty/Dasher/Include/DasherCore/AbstractXMLParser.h
deleted file mode 100644
index 55d8668a327f16e9e8a36bd6c72b239ca3ebe8c6..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/AbstractXMLParser.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  AbstractXMLParser.h
- *  Dasher
- *
- *  Created by Alan Lawrence on 17/03/2011.
- *  Copyright 2011 Cavendish Laboratory. All rights reserved.
- *
- */
-
-#ifndef __ABSTRACT_XML_PARSER_H__
-#define __ABSTRACT_XML_PARSER_H__
-
-#include "../Common/Common.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "Messages.h"
-
-#include <string>
-#include <expat.h>
-#include <iostream>
-
-class AbstractParser {
-public:
-  AbstractParser(CMessageDisplay *pMsgs) : m_pMsgs(pMsgs) { }
-  ///Utility method: constructs an ifstream to read from the specified file,
-  /// then calls Parse(string&,istream&,bool) with the description 'file://strPath'
-  virtual bool ParseFile(const std::string &strPath, bool bUser);
-  
-  /// \param strDesc string to display to user to identify the source of this data,
-  /// if there is an error. (Suggest: use a url, e.g. file://...)
-  /// \param bUser if True, the file is from a user location (editable), false if from a
-  /// system one. (Some subclasses treat the data differently according to which of these
-  /// it is from.)
-  virtual bool Parse(const std::string &strDesc, std::istream &in, bool bUser) = 0;
-  
-protected:
-  ///The MessageDisplay to use to inform the user. Subclasses should use this
-  /// too for any (e.g. semantic) errors they may detect.
-  CMessageDisplay * const m_pMsgs;
-};
-
-///Basic wrapper over (Expat) XML Parser, handling file IO and wrapping C++
-/// virtual methods over C callbacks. Subclasses must implement methods to
-/// handle actual tags.
-class AbstractXMLParser : public AbstractParser {
-public:
-  ///Parse (the whole) file - done in chunks to avoid loading the whole thing into memory.
-  /// Any errors _besides_ file-not-found, will be passed to m_pMsgs as modal messages.
-  virtual bool Parse(const std::string &strDesc, std::istream &in, bool bUser);
-protected:
-  ///Create an AbstractXMLParser which will use the specified MessageDisplay to
-  /// inform the user of any errors.
-  AbstractXMLParser(CMessageDisplay *pMsgs);
-
-  ///Subclasses may call to get the description of the current file
-  const std::string &GetDesc() {return m_strDesc;}
-  ///Subclasses may call to determine if the current file is from a user location
-  bool isUser();
-  
-  ///Subclass should override to handle a start tag
-  virtual void XmlStartHandler(const XML_Char *name, const XML_Char **atts)=0;
-  ///Subclass should override to handle an end tag
-  virtual void XmlEndHandler(const XML_Char *name)=0;
-  ///Subclass may override to handle character data; the default implementation does nothing.
-  ///\param str pointer to string data, note is NOT null-terminated
-  ///\param len number of bytes to read from pointer
-  virtual void XmlCData(const XML_Char *str, int len);
-  
-  ///Utility function provided for subclasses wishing to perform XML _output_.
-  // & to &amp;  < to &lt; and > to &gt;  and if (Attribute) ' to &apos; and " to &quot;
-  /// \param Input string to escape, will be updated in-place.
-  void XML_Escape(std::string &Input, bool Attribute);
-private:
-  /// The actual callbacks passed to the expat library.
-  /// These just convert the void* we passed to the library back into
-  /// an instance pointer, to get a C++ class to work with a plain C library.
-  static void XML_StartElement(void *userData, const XML_Char * name, const XML_Char ** atts);
-  static void XML_EndElement(void *userData, const XML_Char * name);
-  static void XML_CharacterData(void *userData, const XML_Char * s, int len);
-  bool m_bUser;
-  std::string m_strDesc;
-};
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphIO.h b/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphIO.h
deleted file mode 100644
index 4e4ee00bb2cbab0bae1a520b74c60749ebeb2dab..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphIO.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// AlphIO.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __AlphIO_h__
-#define __AlphIO_h__
-
-#include "../../Common/Common.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "../AbstractXMLParser.h"
-
-#include "../DasherTypes.h"
-#include "AlphInfo.h"
-
-#include <map>
-#include <vector>
-#include <utility>              // for std::pair
-
-namespace Dasher {
-  class CAlphIO;
-}
-
-/// \ingroup Alphabet
-/// @{
-
-/// This class is used to read in alphabet definitions from all files
-/// alphabet.*.xml at startup (realization) time; it creates one CAlphInfo
-/// object per alphabet at this time, and stores them in a map from AlphID
-/// string until shutdown/destruction. (CAlphIO is a friend of CAlphInfo,
-/// so can create/manipulate instances.)
-class Dasher::CAlphIO : public AbstractXMLParser {
-public:
-
-  ///Create a new AlphIO. Initially, it will have only a 'default' alphabet
-  /// definition (English); further alphabets may be loaded in by calling the
-  /// Parse... methods inherited from Abstract[XML]Parser
-  CAlphIO(CMessageDisplay *pMsgs);
-  
-  virtual ~CAlphIO();
-  void GetAlphabets(std::vector < std::string > *AlphabetList) const;
-  std::string GetDefault();
-  const CAlphInfo *GetInfo(const std::string & AlphID) const;
-private:
-  CAlphInfo::character *SpaceCharacter, *ParagraphCharacter;
-  std::vector<SGroupInfo *> m_vGroups;
-  std::map < std::string, const CAlphInfo* > Alphabets; // map AlphabetID to AlphabetInfo. 
-  CAlphInfo *CreateDefault();         // Give the user an English alphabet rather than nothing if anything goes horribly wrong.
-
-  // XML handling:
-  /////////////////////////
-
-  void ReadCharAtts(const XML_Char **atts, CAlphInfo::character &ch);
-  // Alphabet types:
-  std::map < std::string, Opts::AlphabetTypes > StoT;
-  std::map < Opts::AlphabetTypes, std::string > TtoS;
-
-  // Data gathered
-  std::string CData;            // Text gathered from when an elemnt starts to when it ends
-  CAlphInfo *InputInfo;
-  int iGroupIdx;
-  std::string LanguageCode;
-
-  void XmlStartHandler(const XML_Char * name, const XML_Char ** atts);
-  void XmlEndHandler(const XML_Char * name);
-  void XmlCData(const XML_Char * s, int len);
-};
-/// @}
-
-#endif /* #ifndef __AlphIO_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphInfo.h b/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphInfo.h
deleted file mode 100644
index 26dfbc5471bf96c7661bf91ca8959e0fee33939c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphInfo.h
+++ /dev/null
@@ -1,170 +0,0 @@
-// AlphInfo.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __ALPHINFO_H__
-#define __ALPHINFO_H__
-
-#include "../../Common/Common.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "../DasherTypes.h"
-#include "AlphabetMap.h"
-#include "GroupInfo.h"
-
-#include <string>
-#include <vector>
-#include <utility>              // for std::pair
-
-namespace Dasher {
-  class CAlphInfo;
-  class CAlphIO;
-}
-
-/// \ingroup Alphabet
-/// @{
-
-/// This structure completely describes the characters used in alphabet.
-/// It maps from the "symbol" type (integers, starting at 1 for alphabet
-/// characters, with 0 used for error / "unknown") to display text (that
-/// rendered onto the canvas - e.g. a box or "_" for a space character),
-/// text (that which is written/output, or indeed, read in by CAlphabetMap),
-/// colour (an index into the current colour scheme; note values below 130
-/// are increased by 130 on alternate offsets, this is known as the "phase"),
-/// also foreground colour information (but these does not seem to be used
-/// ATM).
-///
-/// One CAlphInfo object is created per alphabet when the alphabet.*.xml
-/// files are read in by CAlphIO, and a CAlphabetMap object is created for
-/// the alphabet currently in use (and deleted when the alphabet is changed).
-///
-/// Note the group structure stored by inheriting from SGroupInfo; these are filled
-/// with iStart==1 (as symbol numbers are 1-indexed; 0 is reserved to indicate an
-/// "unknown symbol", and for element 0 of the prob. array to contain a 0, and
-/// symbol -1 indicates End-Of-Stream), and iEnd == one more than the number of
-/// "text" symbols (i.e. inc space and para, but no control/conversion start/end)
-/// - this is for consistency with SGroupInfo, preserving that iEnd is one more
-/// than the highest valid index.
-class Dasher::CAlphInfo : public SGroupInfo {
-public:
-  ///Format a character ready to write to a training file, by doubling
-  /// up any escape character (context-switch / conversion-start)
-  std::string escape(const std::string &ch) const;
-  
-  const std::string &GetID() const {return AlphID;}
-
-  Opts::ScreenOrientations GetOrientation() const {return Orientation;}
-
-  Opts::AlphabetTypes GetType() const {return Type;}
-
-  const std::string & GetTrainingFile() const {return TrainingFile;}
-
-  const std::string &GetGameModeFile() const {return GameModeFile;}
-
-  const std::string & GetPalette() const {return PreferredColours;}
-  
-  const std::string & GetLanguageCode() const {return LanguageCode;}
-
-  symbol GetParagraphSymbol() const {return iParagraphCharacter;}
-
-  ///Space symbol is special in three ways:
-  /// (1) defines word boundaries for speak-as-we-go, i.e. we speak when we see a space;
-  /// (2) Unknown characters in game mode text file are converted into spaces;
-  /// (3) Default colour is 9 if none specified
-  symbol GetSpaceSymbol() const {return iSpaceCharacter;}
-
-  //symbol GetStartConversionSymbol() const;
-  //symbol GetEndConversionSymbol() const;
-
-  /// return display string for i'th symbol
-  const std::string & GetDisplayText(symbol i) const {return m_vCharacters[i-1].Display;}
-
-  /// return text for edit box for i'th symbol
-  const std::string & GetText(symbol i) const {return m_vCharacters[i-1].Text;}
-
-  // return colour specified for i'th symbol, or -1 if nothing in the XML
-  int GetColour(symbol i) const {
-    return m_vCharacters[i-1].Colour;
-  };
-
-  const std::string &GetDefaultContext() const {return m_strDefaultContext;}
-
-  ///A single unicode character to use as an escape sequence in training files
-  ///to indicate context-switching commands; 0-length => don't use context-switching commands.
-  /// Defaults to § if not specified in alphabet.
-  const std::string &GetContextEscapeChar() const {return m_strCtxChar;}
-
-  ///0 = normal alphabet, contains symbols to output
-  ///1 = Japanese (defunct)
-  ///2 = Mandarin: symbols are merely phonemes, and match up (via displaytext)
-  /// with groups in a second alphabet, identified by strConversionTarget,
-  /// which contains actual output symbols possibly including duplicates;
-  /// all this handled by MandarinAlphMgr (+MandarinTrainer, PPMPYLanguageModel).
-  int m_iConversionID;
-
-  ///Single-unicode characters used in the training file to delimit the name of a group
-  /// containing the next symbol, in order to disambiguate which group (=route, pronunciation)
-  /// was used to produce the symbol in this case (see MandarinTrainer).
-  /// Only used if m_iConversionID==2, 3 or 4. Default to "<" and ">"
-  std::string m_strConversionTrainStart,m_strConversionTrainStop;
-
-  ~CAlphInfo();
-
-private:
-  friend class CAlphIO;
-  CAlphInfo();
-  // Basic information
-  std::string AlphID;
-  bool Mutable;               // If from user we may play. If from system defaults this is immutable. User should take a copy.
-
-  // Complete description of the alphabet:
-  std::string TrainingFile;
-  std::string GameModeFile;
-  std::string PreferredColours;
-  std::string LanguageCode; //LanguageCode in IETF Format. https://en.wikipedia.org/wiki/IETF_language_tag
-  Opts::AlphabetTypes Type;
-  Opts::ScreenOrientations Orientation;
-
-  std::string m_strDefaultContext;
-  std::string m_strCtxChar;
-
-protected:
-  struct character {
-    character();
-    std::string Display;
-    std::string Text;
-    int Colour;
-  };
-  std::vector<character> m_vCharacters;
-
-  symbol iParagraphCharacter;       // symbol number (index into m_vCharacters +1) of paragraph char (for display and default edit-text), 0 for none.
-  symbol iSpaceCharacter;   // symbol number (index into m_vCharacters +1) of space char (display and edit text), 0 for none.
-  character *ControlCharacter; // display and edit text of Control character. Typically ("", "Control"). Use ("", "") if no control character.
-  character *StartConvertCharacter;
-  character *EndConvertCharacter;
-
-  void copyCharacterFrom(const CAlphInfo *other, int idx);
-};
-
-
-/// @}
-
-#endif /* #ifndef __AlphInfo_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphabetMap.h b/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphabetMap.h
deleted file mode 100644
index 3418708d02cb8819ed8d7deaa3e6cd729b471d48..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/AlphabetMap.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// AlphabetMap.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2002 Iain Murray
-//
-/////////////////////////////////////////////////////////////////////////////
-
-
-#ifndef __AlphabetMap_h__
-#define __AlphabetMap_h__
-
-#ifndef _WIN32
-#include <sys/types.h>
-#endif
-
-#include "../DasherTypes.h"
-
-#include <vector>
-#include <string>
-
-namespace Dasher {
-  class CAlphabetMap;
-} 
-
-/// \ingroup Alphabet
-/// \{
-
-/// Class used for fast conversion from training text (i.e. catenated
-/// non-display text of symbols; Mandarin / Super-PinYin is a bit more
-/// complicated but still uses one!) into Dasher's internal "symbol" indices.
-/// One of these is created for the alphabet (CAlphInfo) currently in use,
-/// tho there are no restrictions on creation of CAlphabetMaps in other places
-/// (Mandarin!) - or modification, if you have a non-const pointer!
-///
-/// Ian clearly had reservations about this system, as follows; and I'd add
-/// that much of the fun comes from supporting single unicode characters
-/// which are multiple octets, as we use  std::string (which works in octets)
-/// for everything...note that we do *not* support multi-unicode-character
-/// symbols (such as the "asdf" suggested below) except in the case of "\r\n"
-/// for the paragraph symbol.
-///
-/// Note that in 2010 we did indeed tailor this to the alphabet more closely,
-/// fast-casing single-octet characters to avoid using a hash etc. - this makes
-/// many common alphabets substantially faster!
-///
-/// Anyway, Ian writes:
-///
-/// If I were just using GCC, which comes with the CGI "STL" implementation, I would
-/// use hash_map (which isn't part of the ANSI/ISO standard C++ STL, but hey it's nice).
-/// Using a plain map is just too slow for training on large files (or it is with certain
-/// STL implementations). I'm sure training could be made much faster still, but that's
-/// another matter...
-/// 
-/// While I could (and probably should) get a hash_map for VC++ from
-/// http://www.stlport.org I thought it would be nicer if people didn't have
-/// to download extra stuff and then have to get it working alongside the STL
-/// with VC++, especially for just one small part of Dasher.
-/// 
-/// The result is this:
-/// ***************************************************
-/// very much thrown together to get Dasher out ASAP.
-/// ***************************************************
-/// It is deliberately not like an STL container.
-/// However, as it has a tiny interface, it should still be easy to replace.
-/// Sorry if this seems really unprofressional.
-/// 
-/// Replacing it might be a good idea. On the other hand it could be customised
-/// to the needs of the alphabet, so that it works faster.
-///
-/// You can't remove items once they are added as Dasher has no need for that.
-/// 
-/// IAM 08/2002
-
-#include "../Messages.h"
-
-class Dasher::CAlphabetMap {
-
-public:
-  ~CAlphabetMap();
-
-  // Return the symbol associated with Key or Undefined.
-  symbol Get(const std::string & Key) const;
-  symbol GetSingleChar(char key) const;
-
-  class SymbolStream {
-  public:
-    ///pMsgs used for reporting errors in utf8 encoding
-    SymbolStream(std::istream &_in, CMessageDisplay *pMsgs=NULL);
-    ///Gets the next symbol in the stream, using the specified AlphabetMap
-    /// to convert unicode characters to symbols.
-    /// \return 0 for unknown symbol (not in map); -1 for EOF; else symbol#.
-    symbol next(const CAlphabetMap *map);
-    
-    ///Finds the next complete character in the stream,  but does not advance past it.
-    /// Hence, repeated calls will return the same string. (Always constructs a string,
-    /// which next() avoids for single-octet chars, so may be slower)
-    std::string peekAhead();
-    
-    ///Returns the string representation of the previous symbol (i.e. that returned
-    /// by the previous call to next()). Undefined if next() has not been called, or
-    /// if peekAhead() has been called since the last call to next(). Does not change
-    /// the stream position. (Always constructs a string, which next() avoids for 
-    /// single-octet chars, so may be slower.)
-    std::string peekBack();
-  protected:
-    ///Called periodically to indicate some number of bytes have been read.
-    /// Default implementation does nothing; subclasses may override for e.g. logging.
-    /// \param num number of octets read _since_ the previous call.
-    virtual void bytesRead(off_t num) {};
-  private:
-    ///Finds beginning of next unicode character, at position 'pos' or later,
-    /// filling buffer and skipping invalid characters as necessary.
-    /// Leaves 'pos' pointing at beginning of said character.
-    /// \return the number of octets representing the next character, or 0 for EOF
-    /// (inc. where the file ends with an incomplete character)
-    inline int findNext();
-    void readMore();
-    char buf[1024];
-    off_t pos, len;
-    std::istream &in;
-    CMessageDisplay * const m_pMsgs;
-  };
-  
-  // Fills Symbols with the symbols corresponding to Input. {{{ Note that this
-  // is not necessarily reversible by repeated use of GetText. Some text
-  // may not be recognised; any such will be turned into symbol number 0.}}}  
-  void GetSymbols(std::vector<symbol> &Symbols, const std::string &Input) const;
-
-  CAlphabetMap(unsigned int InitialTableSize = 255);
-  void AddParagraphSymbol(symbol Value);
-  
-  ///Add a symbol to the map
-  /// \param Key text of the symbol; must not be present already
-  /// \param Value symbol number to which that text should be mapped
-  void Add(const std::string & Key, symbol Value);
-  
-private:
-  class Entry {
-  public:
-    Entry(std::string Key, symbol Symbol, Entry * Next)
-  :  Key(Key), Symbol(Symbol), Next(Next) {
-    } std::string Key;
-    symbol Symbol;
-    Entry *Next;
-  };
-
-  // A standard hash -- could try and research something specific.
-  inline unsigned int Hash(const std::string & Input) const {
-    unsigned int Result = 0;
-
-    typedef std::string::const_iterator CI;
-    CI Cur = Input.begin();
-    CI end = Input.end();
-
-    while(Cur != end)
-      Result = (Result << 1) ^ *Cur++;
-    Result %= HashTable.size();
-
-    return Result;
-    /*
-       if (Input.size()==1) // Speedup for ASCII text
-       return Input[0];
-
-       for (int i=0; i<Input.size(); i++)
-       Result = (Result<<1)^Input[i];
-
-       return Result%HashTable.size();
-     */
-  } std::vector < Entry > Entries;
-  std::vector < Entry * >HashTable;
-  symbol *m_pSingleChars;
-  /// both "\r\n" and "\n" are mapped to this (if not Undefined).
-  /// This is the only case where >1 character can map to a symbol.
-  symbol m_ParagraphSymbol;
-};
-/// \}
-
-#endif /* #ifndef __AlphabetMap_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/GroupInfo.h b/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/GroupInfo.h
deleted file mode 100644
index 4b4ca693716224f29aca5b991fb79e31d890e607..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Alphabet/GroupInfo.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __GROUP_INFO_H__
-#define __GROUP_INFO_H__
-
-#include <string>
-/// \ingroup Alphabet
-/// \{
-struct SGroupInfo {
-  SGroupInfo *pChild;
-  SGroupInfo *pNext;
-  std::string strLabel;
-  ///lowest index of symbol that is in group
-  int iStart;
-  //one more than the highest index of a symbol in the group.
-  // (iStart+1==iEnd => single character)
-  int iEnd;
-  int iColour;
-  bool bVisible;
-  int iNumChildNodes;
-  //This is purely descriptive/for debugging, except for MandarinDasher,
-  // where it is used in training text to disambiguate which pinyin/pronunciation
-  // (i.e. group) was used to produce a given target(chinese)-alphabet symbol
-  std::string strName;
-  void RecursiveDelete() {
-    for(SGroupInfo *t=this; t; ) {
-      SGroupInfo *next = t->pNext;
-      t->pChild->RecursiveDelete();
-      delete t;
-      t = next;
-    }
-  }
-};
-/// \}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/AlphabetManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/AlphabetManager.h
deleted file mode 100644
index 74370d72ee856a07081f56ea2b76c124859be6bd..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/AlphabetManager.h
+++ /dev/null
@@ -1,316 +0,0 @@
-// AlphabetManager.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __alphabetmanager_h__
-#define __alphabetmanager_h__
-
-#include "LanguageModelling/LanguageModel.h"
-#include "DasherNode.h"
-#include "NodeManager.h"
-#include "Trainer.h"
-#include "Alphabet/AlphInfo.h"
-#include "SettingsStore.h"
-#include "Observable.h"
-#include "WordGeneratorBase.h"
-
-class CNodeCreationManager;
-struct SGroupInfo;
-
-namespace Dasher {
-
-  class CDasherInterfaceBase;
-
-  /// \ingroup Model
-  /// @{
-
-  /// Implementation of CNodeManager for regular 'alphabet' nodes, ie
-  /// the basic Dasher behaviour. Child nodes are populated according
-  /// to the appropriate alphabet file, with sizes given by the
-  /// language model.
-  ///
-  /// Note Dec11, refactoring to allow subclasses to change how character
-  /// data is obtained from the alphabet. All information on valid symbol indices
-  /// and the tree of groups, is obtained from m_pBaseGroup, which is created
-  /// by a call to copyGroups. Besides this, the only routines accessing _symbol_
-  /// data from the alphabet are: CreateLanguageModel; GetTrainer;
-  /// GetColour (called from CSymbolNode constructor); CreateSymbolNode and
-  /// CSymbolNode::outputText(). [many other routines access e.g. default context, training file, and so on]
-
-  class CAlphabetManager : public CNodeManager, protected CSettingsUser {
-  public:
-    ///Create a new AlphabetManager. Note, not usable until Setup() called.
-    CAlphabetManager(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager, const CAlphInfo *pAlphabet);
-    
-    ///Must be called after construction, before the AlphMgr is used. Calls
-    /// InitMap(), looks for a usable context-switch delimiter, and
-    /// calls CreateLanguageModel.
-    void Setup();
-
-    virtual void MakeLabels(CDasherScreen *pScreen);
-    ///Gets a new trainer to train this LM. Caller is responsible for deallocating the
-    /// trainer later.
-    virtual CTrainer *GetTrainer();
-    
-    /// Gets a (Game) Word Generator to make target sentences for the current alphabet
-    CWordGeneratorBase *GetGameWords();
-
-    virtual ~CAlphabetManager();
-    /// Flush to the user's training file everything written in this AlphMgr
-    /// \param pInterface to use for I/O by calling WriteTrainFile(fname,txt)
-    void WriteTrainFileFull(CDasherInterfaceBase *pInterface);
-  protected:
-    ///Initializes the alphabet map (m_map) from the characters in the alphabet.
-    /// Called from Setup(), i.e. before the manager is or need be usable.
-    /// The default adds all symbols in the alphabet to the map (inc. dealing
-    /// with the paragraph symbol, if any), and DASHER_ASSERTs that all such
-    /// characters have distinct texts.
-    virtual void InitMap();
-    
-    ///Creates the LM, and stores in m_pLanguageModel.
-    /// Default implementation switches on LP_LANGUAGE_MODEL_ID.
-    /// Note subclasses changing the interpretation of the AlphInfo, should override
-    /// this to take account of its new meaning.
-    virtual void CreateLanguageModel();
-
-    ///Base of all group+character information presented to the user;
-    /// created by calling copyGroups on the alphabet.
-    SGroupInfo *m_pBaseGroup;
-    ///Called to create the base group the AlphMgr will use from the alphabet.
-    /// The default implementation elides all single-element groups, and fills in
-    /// m_mGroupLabels and m_vLabels using the supplied screen; subclasses may
-    /// override to do more, but should call the superclass method to set up the
-    /// labels too.
-    /// (Note: each invocation creates labels for all symbols in pBase, *and*
-    /// all symbols in any later siblings of pBase (by recursive call on pNext).
-    /// Of those, symbols in any child groups may be made by recursive call on
-    /// pChild, but only if pBase has >1 child node (symbol/group).)
-    virtual SGroupInfo *copyGroups(const SGroupInfo *pBase, CDasherScreen *pScreen);
-    
-    ///A label for each group in the elided tree
-    std::map<const SGroupInfo *,CDasherScreen::Label *> m_mGroupLabels;
-    ///A label for each symbol, indexed by symbol id (element 0 = null)
-    std::vector<CDasherScreen::Label *> m_vLabels;
-    
-    virtual const std::string &GetLabelText(symbol i) const;
-    
-    class CAlphNode;
-    /// Abstract superclass for alphabet manager nodes, provides common implementation
-    /// code for rebuilding parent nodes = reversing.
-    class CAlphBase : public CDasherNode {
-    public:
-      CAlphabetManager *mgr() const {return m_pMgr;}
-      ///Rebuilds this node's parent by recreating the previous 'root' node,
-      /// then calling RebuildForwardsFromAncestor
-      CDasherNode *RebuildParent();
-      ///Called to build a symbol (leaf) node which is a descendant of the symbol or root node preceding this.
-      /// Default implementation just calls the manager's CreateSymbolNode method to create a new node,
-      /// but subclasses can override to graft themselves into the appropriate point beneath the previous node.
-      /// \param pParent parent of the symbol node to create; could be the previous root, or an intervening node (e.g. group)
-      /// \param iBkgCol background colour to show through any new transparent node created;
-      /// if the existing node is grafted in, again this will already have been taken into account.
-      virtual CDasherNode *RebuildSymbol(CAlphNode *pParent, symbol iSymbol);
-      ///Called to build a group node which is a descendant of the symbol or root node preceding this.
-      /// Default implementation calls the manager's CreateGroupNode method to create a new node,
-      /// but then populates that group (i.e. further descends the hierarchy) _if_ that group
-      /// would contain this node (see IsInGroup). Subclasses can override to graft themselves into the hierarchy, if appropriate.
-      /// \param pParent parent of the symbol node to create; could be the previous root, or an intervening node (e.g. group)
-      virtual CDasherNode *RebuildGroup(CAlphNode *pParent, int iBkgCol, const SGroupInfo *pInfo);
-      ///Just keep track of the last node output (for training file purposes)
-      void Undo();
-      ///Just keep track of the last node output (for training file purposes)
-      void Output();
-    protected:
-      ///Called in process of rebuilding parent: fill in the hierarchy _beneath_ the
-      /// the previous root node, by calling IterateChildGroups passing this node as
-      /// last parameter, until the point where this node fits in is found,
-      /// at which point RebuildSymbol/Group should graft it in.
-      /// \param pNewNode newly-created root node beneath which this node should fit
-      virtual void RebuildForwardsFromAncestor(CAlphNode *pNewNode);
-      CAlphBase(int iOffset, int iColour, CDasherScreen::Label *pLabel, CAlphabetManager *pMgr);
-      CAlphabetManager *m_pMgr;
-      ///Number of unicode characters entered by this node; i.e., the number
-      /// to take off this node's offset, to get the offset of the most-recent
-      /// root (e.g. previous symbol). Default is 0.
-      virtual int numChars() {return 0;}
-      ///return true if the specified group would contain this node
-      /// (as a symbol or subgroup), any number of levels beneath it
-      virtual bool isInGroup(const SGroupInfo *pGroup)=0;
-    };
-    ///Additionally stores LM contexts and probabilities calculated therefrom
-    class CAlphNode : public CAlphBase {
-    public:
-      CAlphNode(int iOffset, int iColour, CDasherScreen::Label *pLabel, CAlphabetManager *pMgr);
-      CLanguageModel::Context iContext;
-      ///
-      /// Delete any storage alocated for this node
-      ///
-      virtual ~CAlphNode();
-      ///Have to call this from CAlphabetManager, and from CGroupNode on a _different_ CAlphNode, hence public...
-      virtual std::vector<unsigned int> *GetProbInfo();
-      virtual int ExpectedNumChildren();
-    private:
-      std::vector<unsigned int> *m_pProbInfo;
-    };
-    class CSymbolNode : public CAlphNode {
-    public:
-      ///Standard constructor, gets colour from GetColour(symbol,offset) and label from current alphabet
-      /// Note we treat GetColour() as always returning an opaque color.
-      CSymbolNode(int iOffset, CDasherScreen::Label *pLabel, CAlphabetManager *pMgr, symbol iSymbol);
-
-      ///Create the children of this node, by starting traversal of the alphabet from the top
-      virtual void PopulateChildren();
-      virtual void Output();
-      virtual void Undo();
-      ///Override to provide symbol number, probability, _edit_ text from alphabet
-      virtual SymbolProb GetSymbolProb() const;
-
-      virtual void SetFlag(int iFlag, bool bValue);
-
-      virtual bool GameSearchNode(symbol sym);
-      virtual void GetContext(CDasherInterfaceBase *pInterface, const CAlphabetMap *pAlphabetMap, std::vector<symbol> &vContextSymbols, int iOffset, int iLength);
-      virtual symbol GetAlphSymbol();
-      ///Override: if the symbol to create is the same as this node's symbol, return this node instead of creating a new one
-      virtual CDasherNode *RebuildSymbol(CAlphNode *pParent, symbol iSymbol);
-    protected:
-      virtual const std::string &outputText() const;
-      ///Text to write to user training file/buffer when this symbol output.
-      /// Default just returns the output text escaped if necessary.
-      virtual std::string trainText();
-      /// Number of unicode _characters_ (not octets) for this symbol.
-      /// Uniquely, a paragraph symbol can enter two distinct unicode characters
-      /// (i.e. '\r' and '\n'); every other symbol enters only a single
-      /// unicode char, even if that might take >1 octet.
-      int numChars();
-      ///Compatibility constructor, so that subclasses can specify their own colour & label
-      CSymbolNode(int iOffset, int iColour, CDasherScreen::Label *pLabel, CAlphabetManager *pMgr, symbol _iSymbol);
-      ///Override: true iff pGroup encloses this symbol (according to its start/end symbol#)
-      bool isInGroup(const SGroupInfo *pGroup);
-      const symbol iSymbol;
-    };
-
-    class CGroupNode : public CAlphNode {
-    public:
-      CGroupNode(int iOffset, CDasherScreen::Label *pLabel, int iBkgCol, CAlphabetManager *pMgr, const SGroupInfo *pGroup);
-
-      ///Override: if m_pGroup==NULL, i.e. whole/root-of alphabet, cannot rebuild.
-      virtual CDasherNode *RebuildParent();
-
-      ///Create children of this group node, by traversing the section of the alphabet
-      /// indicated by m_pGroup.
-      virtual void PopulateChildren();
-      virtual int ExpectedNumChildren();
-      virtual bool GameSearchNode(symbol sym);
-      std::vector<unsigned int> *GetProbInfo();
-      ///Override: if the group to create is the same as this node's group, return this node instead of creating a new one
-      virtual CDasherNode *RebuildGroup(CAlphNode *pParent, int iBkgCol, const SGroupInfo *pInfo);
-    protected:
-      ///Override: true if pGroup encloses this one (by start/end symbol#)
-      bool isInGroup(const SGroupInfo *pGroup);
-    private:
-      const SGroupInfo *m_pGroup;
-    };
-
-  public:
-    ///
-    /// Get a new root node owned by this manager
-    /// pContext - node from which to extract context (e.g. perhaps an un-seen node);
-    /// the new root is NOT made  a child, and initially has no parent.
-    /// bEnteredLast - true if this "root" node should be considered as entering the preceding symbol
-    /// Offset is the index of the character which _child_ nodes (i.e. between which this root allows selection)
-    /// will enter. (Also used to build context for preceding characters.)
-    /// Note, the new node will _not_ be NF_SEEN
-    CAlphNode *GetRoot(CDasherNode *pContext, bool bEnteredLast, int iOffset);
-
-    const CAlphInfo *GetAlphabet() const;
-
-  protected:
-    ///Called to get the symbols in the context for (preceding) a new node
-    /// \param pParent node to assume has been output, when obtaining context
-    /// \param iRootOffset offset of the node that will be constructed; i.e. context should include symbols
-    /// up to & including this offset.
-    /// \param pAlphMap use to convert entered text into symbol numbers
-    /// (could be the managers m_pAlphabetMap, but subclasses can pass in something different)
-    /// \return pair: first element is the last symbol in the context, _if_ a usable context
-    /// could be extracted, else 0 (=> couldn't get context, using alphabet default); second
-    /// element is the result of entering the symbols retrieved, into a fresh LM context.
-    std::pair<symbol, CLanguageModel::Context> GetContextSymbols(CDasherNode *pParent, int iRootOffset, const CAlphabetMap *pAlphMap);
-
-    ///Called to create a node for a given symbol (leaf), as a child of a specified parent node
-    /// \param iBkgCol colour behind the new node, i.e. that should show through if the (group) node is transparent
-    virtual CDasherNode *CreateSymbolNode(CAlphNode *pParent, symbol iSymbol);
-    virtual CGroupNode *CreateGroupNode(CAlphNode *pParent, int iBkgCol, const SGroupInfo *pInfo);
-    ///Called to create a new symbol root, e.g. for going backwards
-    /// \param iOffset index of symbol entered by the node
-    /// \param sym symbol number as returned as first element of GetContextSymbols
-    virtual CAlphNode *CreateSymbolRoot(int iOffset, CLanguageModel::Context ctx, symbol sym);
-    
-    ///Called to compute colour for a symbol at a specified offset.
-    /// Wraps CAlphabet::GetColour(sym), but (a) implements a default
-    ///  scheme for symbols not specifying a colour, and (b) implements
-    /// colour-cycling by phase (two cycles, using the LSBit of offset)
-    virtual int GetColour(symbol sym, int iOffset) const;
-    
-    CDasherInterfaceBase * const m_pInterface;
-
-    CLanguageModel *m_pLanguageModel;
-
-    CNodeCreationManager *m_pNCManager;
-    const CAlphInfo *m_pAlphabet;
-    CAlphabetMap m_map;
-    
-  private:
-    ///Wraps m_pLanguageModel->GetProbs to implement nonuniformity
-    /// (also leaves space for NCManager::AddExtras to add control node)
-    /// Returns array of non-cumulative probs. Should this be protected and/or virtual???
-    void GetProbs(std::vector<unsigned int> *pProbs, CLanguageModel::Context iContext);
-    
-    ///Constructs child nodes under the specified parent according to provided group.
-    /// Nodes are created by calling CreateSymbolNode and CreateGroupNode, unless buildAround is non-null.
-    /// \param pParentGroup group describing which symbols and/or subgroups should be constructed
-    /// (these will fill the parent), or NULL meaning the entire alphabet (i.e. toplevel groups
-    /// and symbols not in any group).
-    /// \param buildAround if non-null, its RebuildSymbol and RebuildGroup methods will be called
-    /// instead of the AlphabetManager's CreateSymbolNode/CreateGroupNode methods. This is used when
-    /// rebuilding parents: passing in the pre-existing node here, allows it to intercept those calls
-    /// and graft itself in in place of a new node, when appropriate.
-    void IterateChildGroups(CAlphNode *pParent, const SGroupInfo *pParentGroup, CAlphBase *buildAround);
-
-    ///Last node (owned by this manager) that was output; if a node
-    /// is Undo()ne, this is set to its parent. This is used to detect
-    /// context switches.
-    CDasherNode *m_pLastOutput;
-    ///Text actually written in the current context; both appended and truncated
-    /// as nodes are Output() and Undo()ne.
-    std::string strTrainfileBuffer;
-    ///Context in (i.e. after) which anything in strTrainfileBuffer was written.
-    /// Set when first character put in strTrainfileBuffer (following a context switch),
-    /// as we may not be able to get the preceding characters if we wait too long.
-    std::string strTrainfileContext;
-
-    ///A character, 33<=c<=255, not in the alphabet; used to delimit contexts.
-    ///"" if no such could be found (=> will be found on a per-context basis)
-    std::string m_sDelim;
-  };
-/// @}
-
-}
-
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/AlternatingDirectMode.h b/Source/Thirdparty/Dasher/Include/DasherCore/AlternatingDirectMode.h
deleted file mode 100644
index 3dd4f2d2fd666302abebef6510c9eaa125d3dbcb..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/AlternatingDirectMode.h
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// DasherButtons.h
-// Copyright 2005 by Chris Ball
-
-#ifndef __ALTERNATING_DIRECT_MODE_H__
-#define __ALTERNATING_DIRECT_MODE_H__
-
-#include <string>
-#include <vector>
-#include <iostream>
-#include <fstream>
-#include <algorithm>
-#include "Event.h"
-#include "DasherButtons.h"
-
-
-using namespace std;
-namespace Dasher {
-/// \ingroup Input
-/// @{
-
-//TODO maybe some kind of scanning/menu option here, too, tho slightly more complicated than for direct/menu mode?
-
-  class CAlternatingDirectMode : public CDasherButtons
-{
- public:
-  CAlternatingDirectMode(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface);
-
-  bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
- protected:
-  void SetupBoxes();
-
- private:
-  void DirectKeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherModel *pModel);
-
-  int m_iLastBox;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/AutoSpeedControl.h b/Source/Thirdparty/Dasher/Include/DasherCore/AutoSpeedControl.h
deleted file mode 100644
index 27a2101b514b34eeaef72259a43fe88ffb3b7ae8..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/AutoSpeedControl.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef __AUTO_SPEED_CONTROL_H__
-#define __AUTO_SPEED_CONTROL_H__
-
-#include "DasherTypes.h"
-#include "DasherView.h"
-#include "SettingsStore.h"
-
-#include <deque>
-
-/// \defgroup AutoSpeed Auto speed control
-/// @{
-namespace Dasher {
-  class CAutoSpeedControl : private CSettingsUser {
- public:
-  CAutoSpeedControl(CSettingsUser *pCreateFrom);
-  
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// This is the main speed control function and drives all of auto speed control.
-  /// \param iDasherX non-linear Dasher x coord
-  /// \param iDasherY non-linear Dasher y coord
-  /// \param dFrameRate The current frame rate
-  /// \param pView The current Dasher view class
-  ///
-  void SpeedControl(myint iDasherX, myint iDasherY, CDasherView *pView);
-
- private:
-
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// Calculates the running variance of the angle between the +ve x-axis and the line joining 
-  /// the cross hair to the mouse position.
-  ///
-  inline double Variance();
-
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// Updates the exclusion radius for auto speed control.
-  ///
-  inline double UpdateMinRadius();
-
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// Applies changes to the max bit rate depending on the running variance
-  /// of the angle between the +ve x-axis and the line joining 
-  /// the cross hair to the mouse position.
-  ///
-  double UpdateBitrate();
-
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// Adapts the number of samples taken so that auto speed control
-  /// is invariant to clock rate and user ability (!!!).
-  ///
-  
-  inline int UpdateSampleSize(double dFrameRate);
-
-  ///
-  /// AUTO-SPEED-CONTROL
-  /// Updates the *variances* of the two populations of mixture-of-2-Gaussians
-  /// distribution of radii. These are used to calculate the exclusion radius.
-  /// \param r radius
-  /// \param dFrameRate The current frame rate
-  ///
-  void UpdateSigmas(double r, double dFrameRate);
-
-  double m_dBitrate; //  stores max bit rate internally
-  double m_dSampleScale, m_dSampleOffset; // internal, control sample size
-  unsigned int m_nSpeedCounter;  // keep track of how many samples
-  unsigned int m_nSpeedSamples;  // upper limit on #samples
-  double m_dSpeedMax, m_dSpeedMin; // bit rate always within this range
-  double m_dTier1, m_dTier2, m_dTier3, m_dTier4; // variance tolerance tiers 
-  double m_dChange1, m_dChange2, m_dChange3, m_dChange4; // fractional changes to bit rate
-  double m_dMinRRate; // controls rate at which min. r adapts HIGHER===SLOWER!
-  double m_dSensitivity; // not used, control sensitivity of auto speed control
-  std::deque<double> m_dequeAngles; // store angles for statistics
-  
-  //variables for adaptive radius calculations...
-  double m_dSigma1, m_dSigma2, m_dMinRadius;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/BasicLog.h b/Source/Thirdparty/Dasher/Include/DasherCore/BasicLog.h
deleted file mode 100644
index 9bb95eea458658b977e5df378013026df73b3c76..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/BasicLog.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __BasicLog_h__
-#define __BasicLog_h__
-
-#include "UserLogBase.h"
-#include "SettingsStore.h"
-
-/// \ingroup Logging
-/// @{
-class CBasicLog : public CUserLogBase, public Dasher::CSettingsUser {
- public:
-  CBasicLog(Dasher::CSettingsUser *pCreateFrom, Dasher::CDasherInterfaceBase *pIntf);
-  ~CBasicLog();
-
-  virtual void AddParam(const string& strName, const string& strValue, int iOptionMask = 0) {};
-  virtual void AddParam(const string& strName, double dValue, int iOptionMask = 0) {};
-  virtual void AddParam(const string& strName, int iValue, int iOptionMask = 0) {};
-  virtual void StartWriting();
-  virtual void StopWriting(float dNats);
-  virtual void StopWriting() {};
-  virtual void AddSymbols(Dasher::VECTOR_SYMBOL_PROB* pVectorNewSymbolProbs, eUserLogEventType iEvent = userLogEventMouse);
-  virtual void DeleteSymbols(int iNumToDelete, eUserLogEventType iEvent = userLogEventMouse);    
-  virtual void NewTrial();
-  virtual void AddWindowSize(int iTop, int iLeft, int iBottom, int iRight) {};
-  virtual void AddCanvasSize(int iTop, int iLeft, int iBottom, int iRight) {};
-  virtual void AddMouseLocation(int iX, int iY, float dNats) {};
-  virtual void AddMouseLocationNormalized(int iX, int iY, bool bStoreIntegerRep, float dNats) {};
-  virtual void OutputFile() {};
-  virtual void InitIsDone() {};
-  virtual void SetOuputFilename(const string& strFilename = "") {};
-  virtual int GetLogLevelMask() {return 0;};
-  virtual void KeyDown(int iId, int iType, int iEffect);
-
- private:
-  void StartTrial();
-  void EndTrial();
-  std::string GetDateStamp();
-
-  bool m_bStarted;
-  int m_iSymbolCount;
-  int m_iKeyCount;
-  int m_iInitialRate;
-  double m_dBits;
-  std::string m_strStartDate;
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMode.h b/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMode.h
deleted file mode 100644
index a6fb2ac994348865ad2644772dc5d45cfa620499..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMode.h
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// ButtonMode.h 
-// Copyright 2009 by Alan Lawrence
-
-#ifndef __BUTTON_MODE_H__
-#define __BUTTON_MODE_H__
-
-#include <string>
-#include <vector>
-#include <iostream>
-#include <fstream>
-#include <algorithm>
-#include "Event.h"
-#include "DasherButtons.h"
-
-using namespace std;
-namespace Dasher {
-/// \ingroup Input
-/// @{
-/// Handles the "menu mode" and "direct mode" input filters, according to the bMenu constructor parameter.
-class CButtonMode : public CDasherButtons, protected CSettingsObserver
-{
- public:
-  CButtonMode(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, bool bMenu, int iID, const char *szName);
-
-  virtual void HandleEvent(int iParameter);
-  void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel, CExpansionPolicy **pol);
-  bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-
-  //override to get mouse clicks/taps back again
-  virtual void KeyDown(unsigned long Time, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
- protected: 
-  void SetupBoxes();
-  void DirectKeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherModel *pModel);
- private:
-  bool m_bHighlight;
-  unsigned long m_iLastTime;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMultiPress.h b/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMultiPress.h
deleted file mode 100644
index 2f46a3e2f3b67bb91957ec315d9de738e38ee7b8..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ButtonMultiPress.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// DynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __ButtonMultiPress_h__
-#define __ButtonMultiPress_h__
-
-#include "DynamicButtons.h"
-
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-/// DynamicButtons filter which detects long and multiple presses - the latter of the
-/// same button, up to maxClickCount() consecutive presses,
-/// with a gap of up to LP_MULTIPRESS_TIME ms between the start of _each_pair_ of 
-/// presses. Long- and multi-presses are passed onto the standard ButtonEvent method,
-/// with iType 1 or to the number of presses, respectively, for subclasses to decide how to respond.
-class CButtonMultiPress : public CDynamicButtons {
- public:
-  CButtonMultiPress(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID, const char *szName);
-
-  void Timer(unsigned long iTime, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel, CExpansionPolicy **pol);
-  void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-
-  void pause();
- protected:
-  virtual unsigned int maxClickCount()=0;
-  void reverse(unsigned long iTime);
-  void run(unsigned long iTime);
-
- private:
-  virtual void RevertPresses(int iCount) {};
-
-  int m_iQueueId;
-  std::deque<unsigned long> m_deQueueTimes;
-
-  ///Whether a long-press has been handled (in Timer) - as the key
-  /// may still be down (and the press becoming ever-longer)!
-  bool m_bKeyHandled;
-  unsigned long m_iKeyDownTime;
- };
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/CannaConversionHelper.h b/Source/Thirdparty/Dasher/Include/DasherCore/CannaConversionHelper.h
deleted file mode 100644
index 53daa5ca65a3938239eb48e76d711391835bc1df..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/CannaConversionHelper.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef __CANNA_CONVERSION_HELPER_H__
-#define __CANNA_CONVERSION_HELPER_H__
-
-#define BUFSIZE 10240
-
-#include "ConversionManager.h"
-#include <iconv.h>
-
-#include <iostream> 
-/// \ingroup Model
-/// @{
-class CCannaConversionHelper : public Dasher::CConversionManager {
- public:
-  CCannaConversionHelper(CNodeCreationManager *pNCManager, Dasher::const CAlphInfo *pAlphabet, int Type, int Order);
-  ~CCannaConversionHelper();
-
-  virtual bool Convert(const std::string &strSource, SCENode ** pRoot);
-
-
-  virtual void AssignSizes(SCENode ** pStart, Dasher::CLanguageModel::Context context, long normalization, int uniform, int iNChildren);
-
-
-  virtual Dasher::CLanguageModel * GetLanguageModel() { return NULL; };
-
-
-
-/*   virtual bool GetPhraseList(int HZIndex, SCENode ** psOutput, int CMid) { */
-/*     return false; */
-/*   }; */
-
-/*   virtual void BuildDataBase() { */
-/*   }; */
-
-   virtual void ClearData(int CMid) { 
-   }; 
-  
-/*   virtual std::vector<std::vector<std::vector<std::vector<std::vector<int> > > > > * GetDP(int CMid) { */
-/*     return NULL; */
-/*   };//get data pointer */
-
- private:
-  void ProcessCandidate(std::string strCandidate, SCENode *pRoot, SCENode *pTail);
-
-  unsigned int iUTF8Decode(const std::string &strChar) {
-    int iLength = strChar.size();
-
-    unsigned int iCode = 0;
-
-    switch(iLength) {
-    case 0:
-      // Invalid - return 0;
-      iCode = 0;
-      break;
-    case 1:
-      iCode =  static_cast<int>(strChar[0]) & 127;
-      break;
-    case 2:
-      iCode = static_cast<int>(strChar[1]) & 63 + ((static_cast<int>(strChar[0]) & 31) << 6);
-      break;
-    case 3:
-      iCode = static_cast<int>(strChar[2]) & 63 + ((static_cast<int>(strChar[1]) & 63) << 6) + 
-	((static_cast<int>(strChar[0]) & 15) << 12);
-      break;
-    case 4:
-      // Invalid (as far as we're concerned) - return 0;
-      iCode = 0;
-      break;
-    }
-
-    return iCode;
-  }
-
-//Kazue 
-
-
-  #define JMS1(c) (((((unsigned char)(c))>=0x81)&&(((unsigned char)(c))<=0x9F))||((((unsigned char)(c))>=0xE0)&&(((unsigned char)(c))<=0xFC)))
-  #define JMS2(c) ((((unsigned char)(c))!=0x7F)&&(((unsigned char)(c))>=0x40)&&(((unsigned char)(c))<=0xFC))
-
-  int isJMS( const char *str, int nPos )
-  {
-        int i;
-        int state; // { 0, 1, 2 } = { 1byte, 1st of 2byte, 2nd of 2byte }
-
-        state = 0;
-        for( i = 0; str[i] != '\0'; i++ )
-        {
-                if      ( ( state == 0 ) && ( JMS1( str[i] ) ) ) state = 1; // 0 -> 1
-                else if ( ( state == 1 ) && ( JMS2( str[i] ) ) ) state = 2; // 1 -> 2
-                else if ( ( state == 2 ) && ( JMS1( str[i] ) ) ) state = 1; // 2 -> 1
-                else                                             state = 0; // 2 -> 0, others
-
-                if ( i == nPos ) return state;
-        }
-        return 0;
-  }//isJMS
-
-  #define MAKEJMS(lead,trail)  ((unsigned short)(((unsigned char)(trail) & 0xff) | (((unsigned char)(lead) & 0xff) << 8)))
-
-  int jmscode( const char *p )
-  {
-        if ( JMS1( p[0] ) && ('\0' != p[1]) )
-                return MAKEJMS(p[0],p[1]);
-
-        return (unsigned char)p[0];
-  }//jmscode   
-
-  unsigned int iShiftJISDecode(const std::string &strChar) {
-    
-    if(strChar.size() == 0)
-     return false;
-
-    char *pQuery = (char *)strChar.c_str();
-
-    unsigned char *buf = (unsigned char *)malloc(sizeof(unsigned char) * BUFSIZE);
-
-    char *inbuf = (char *)pQuery;
-    char *outbuf = (char *)buf;
-    size_t inbytesleft = strChar.length();
-    size_t outbytesleft = BUFSIZE;
-
-    //iconv_t cd = iconv_open("SJIS", "UTF8");
-    //iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
-    iconv(this->icon, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
-
-    const std::string strSJIS = (char *)buf;
-
-    *outbuf = '\0';
-    inbuf = (char *)buf;
-    //iconv_close(cd);
-    
-    int iCode = 0;
-    
-    if(strSJIS.size() == 2)
-       iCode = jmscode((char *)buf);
-   
-    return iCode;
-  }
- 
-  int context_id;
-  bool IsInit;
-
-  int iType; // 0 = uniform, 1 = 1/(n+1),2 = 1/(n+1)/n
-  int iOrder; // 0 = canna, 1 = Unicode , 2 = Shift_JIS
-  
-  iconv_t icon;
- 
-};
-/// @}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/CircleStartHandler.h b/Source/Thirdparty/Dasher/Include/DasherCore/CircleStartHandler.h
deleted file mode 100644
index 1cf6129f5148b550dc37ae9c53fbe8559067ed7a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/CircleStartHandler.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __CIRCLE_START_HANDLER_H__
-#define __CIRCLE_START_HANDLER_H__
-
-#include "StartHandler.h"
-#include "SettingsStore.h"
-#include "DasherScreen.h"
-
-/// \ingroup Start
-/// @{
-namespace Dasher {
-class CCircleStartHandler : public CStartHandler, public CSettingsUserObserver, public Observer<CDasherView *> {
-public:
-  CCircleStartHandler(CDefaultFilter *pCreator);
-  ~CCircleStartHandler();
-  virtual bool DecorateView(CDasherView *pView);
-  virtual void Timer(unsigned long iTime, dasherint iX, dasherint iY, CDasherView *pView);
-  virtual void HandleEvent(int iParameter);
-  virtual void HandleEvent(CDasherView *pView);
-  void onPause();
-  void onRun(unsigned long iTime);
-protected:
-  ///Time (as unix timestamp) when user entered circle; max() => already acted upon
-  long m_iEnterTime;
-  ///Whether the user was in the circle in last call to Timer
-  bool m_bInCircle;
-  ///Radius of circle in screen coordinates (-1 = needs recomputing)
-  int m_iScreenRadius;
-  CDasherView *m_pView;
-  virtual CDasherScreen::point CircleCenter(CDasherView *pView);
-private:
-  ///Cached center of screen circle (needs recomputing if radius does)
-  CDasherScreen::point m_screenCircleCenter;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ClickFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/ClickFilter.h
deleted file mode 100644
index f8bce1faaa207a38de480b109920b8b738b369f5..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ClickFilter.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef __CLICK_FILTER_H__
-#define __CLICK_FILTER_H__
-
-#include "InputFilter.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-  ///Utility class for transforming co-ordinates of a mouse click to zoom target
-  class CZoomAdjuster {
-  public:
-    /// Adjust co-ordinates of mouse click into coordinates for zoom target.
-    /// \param safety Fraction (/1024) by which not to zoom in (e.g. 25 = 
-    /// zoom in ~~2.5% less than suggested)
-    /// \param maxZoom maximum factor by which to zoom in; note that
-    /// regardless of this parameter, we never zoom in to x<2.
-    void AdjustZoomX(myint &iDasherX, CDasherView *comp, myint safety, myint maxZoom);
-  };
-  
-class CClickFilter : public CStaticFilter, private CZoomAdjuster {
- public:
-  CClickFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface)
-    : CStaticFilter(pCreator, pInterface, 7, _("Click Mode")) { };
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount);
-  
- private:
-  //for mouse lines
-  myint m_iLastX, m_iLastY;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ColourIO.h b/Source/Thirdparty/Dasher/Include/DasherCore/ColourIO.h
deleted file mode 100644
index bed071024f0375acf07f092cd8bec2d8557a71f0..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ColourIO.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// ColourIO.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2002 Iain Murray
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __ColourIO_h__
-#define __ColourIO_h__
-
-#include "DasherTypes.h"
-
-#include "AbstractXMLParser.h"
-
-#include <map>
-#include <vector>
-#include <utility>              // for std::pair
-
-namespace Dasher {
-  class CColourIO;
-}
-
-
-/// \defgroup Colours Colour scheme information
-/// @{
-/// Class for reading in colour-scheme definitions, and storing all read schemes
-/// in a list.
-class Dasher::CColourIO : public AbstractXMLParser {
-public:
-  virtual ~CColourIO() = default;
-    // This structure completely describes the characters used in alphabet
-  struct ColourInfo {
-    // Basic information
-    std::string ColourID;
-    bool Mutable;               // If from user we may play. If from system defaults this is immutable. User should take a copy.
-
-    // TODO: It would make a lot more sense if this was a vector of triples rather than three vectors
-    // Complete description of the alphabet:
-    std::vector < int >Reds;
-    std::vector < int >Greens;
-    std::vector < int >Blues;
-  };
-  
-  ///Construct a new ColourIO. It will have only a 'default' colour scheme;
-  /// further schemes may be loaded in by calling the Parse... methods inherited
-  /// from Abstract[XML]Parser.
-  CColourIO(CMessageDisplay *pMsgs);
-  void GetColours(std::vector < std::string > *ColourList) const;
-  const ColourInfo & GetInfo(const std::string & ColourID);
-private:
-  ColourInfo BlankInfo;
-  std::map < std::string, ColourInfo > Colours; // map short names (file names) to descriptions
-
-  void CreateDefault();         // Give the user a default colour scheme rather than nothing if anything goes horribly wrong.
-
-  // XML handling:
-  /////////////////////////
-
-  // Data gathered
-  std::string CData;            // Text gathered from when an elemnt starts to when it ends
-  ColourInfo InputInfo;
-
-  void XmlStartHandler(const XML_Char * name, const XML_Char ** atts);
-  void XmlEndHandler(const XML_Char * name);
-  void XmlCData(const XML_Char * s, int len);
-};
-/// @}
-
-#endif /* #ifndef __ColourIO_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/CompassMode.h b/Source/Thirdparty/Dasher/Include/DasherCore/CompassMode.h
deleted file mode 100644
index ed4db094edfc36a001c43c062e1b6c9842ceefc1..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/CompassMode.h
+++ /dev/null
@@ -1,41 +0,0 @@
-
-// DasherButtons.h
-// Copyright 2005 by Chris Ball
-
-#ifndef __COMPASS_MODE_H__
-#define __COMPASS_MODE_H__
-
-#include <string>
-#include <vector>
-#include <iostream>
-#include <fstream>
-#include <algorithm>
-#include "Event.h"
-#include "DasherButtons.h"
-
-
-using namespace std;
-namespace Dasher {
-/// \ingroup Input
-/// @{
-class CCompassMode : public CDasherButtons
-{
- public:
-  CCompassMode(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface);
-
-  virtual void HandleEvent(int iParameter);
-
-  bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
- protected:
-  void SetupBoxes();
-
- private:
-  int iTargetWidth;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ControlManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/ControlManager.h
deleted file mode 100644
index 25ff21824c76da9d0229afd72a3adc43ad6d217f..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ControlManager.h
+++ /dev/null
@@ -1,225 +0,0 @@
-// ControlManager.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __controlmanager_h__
-#define __controlmanager_h__
-
-#include "DasherNode.h"
-#include "Event.h"
-#include "NodeManager.h"
-#include "NodeCreationManager.h"
-
-#include <list>
-#include <vector>
-#include <map>
-#include <fstream>
-#include <iostream>
-#include <string>
-
-#include <expat.h>
-
-using namespace std;
-
-class CNodeCreationManager;
-
-namespace Dasher {
-
-  class CDasherInterfaceBase;
-  class SpeechHeader;
-  class CopyHeader;
-
-  /// \ingroup Model
-  /// @{
-
-  /// A node manager which deals with control nodes.
-  ///
-  class CControlBase : public CNodeManager, protected CSettingsUser {
-  public:
-
-    class NodeTemplate;
-
-    class CContNode : public CDasherNode {
-    public:
-      CControlBase *mgr() const override {return m_pMgr;}
-      CContNode(int iOffset, int iColour, NodeTemplate *pTemplate, CControlBase *pMgr);
-      CDasherScreen::Label *getLabel() override { return m_pTemplate->m_pLabel; }
-
-      bool bShove() override {return false;}
-      double SpeedMul() override;
-      ///
-      /// Provide children for the supplied node
-      ///
-
-      virtual void PopulateChildren() override;
-      virtual int ExpectedNumChildren() override;
-
-      virtual void Output() override;
-
-    private:
-      NodeTemplate *m_pTemplate;
-      CControlBase *m_pMgr;
-    };
-
-    class Action {
-    public:
-      virtual ~Action() { };
-      virtual int calculateNewOffset(CControlBase::CContNode *pNode, int offsetBefore) { return offsetBefore; }
-        virtual void happen(CContNode *pNode) {}
-    };
-    class NodeTemplate : public Action {
-    public:
-      NodeTemplate(const std::string &strLabel, int iColour);
-      virtual ~NodeTemplate();
-      const std::string m_strLabel;
-      const int m_iColour;
-      std::list<NodeTemplate *> successors;
-
-    private:
-      friend class CControlBase;
-      CDasherScreen::Label *m_pLabel;
-    };
-
-    NodeTemplate *GetRootTemplate();
-
-    CControlBase(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager);
-
-    ///Make this manager ready to make nodes renderable on the screen by preallocating labels
-    virtual void ChangeScreen(CDasherScreen *pScreen);
-    
-    ///
-    /// Get a new root node owned by this manager
-    ///
-
-    virtual CDasherNode *GetRoot(CDasherNode *pContext, int iOffset);
-    CDasherInterfaceBase* GetDasherInterface() { return m_pInterface; }
-  protected:
-    ///Sets the root - should be called by subclass constructor to make
-    /// superclass ready for use.
-    ///Note, may only be called once, and with a non-null pRoot, or will throw an error message.
-    void SetRootTemplate(NodeTemplate *pRoot);
-
-    CDasherInterfaceBase *m_pInterface;
-    CNodeCreationManager *m_pNCManager;
-    
-    int getColour(NodeTemplate *pTemplate, CDasherNode *pParent);
-    CDasherScreen *m_pScreen;
-    
-  private:
-    NodeTemplate *m_pRoot;
-  };
-
-  ///Class reads node tree definitions from an XML file, linking together the NodeTemplates
-  /// according to defined names, nesting of <node/>s, and  <ref/>s. Also handles the
-  /// <alph/> tag, meaning one child of the node is to escape back to the alphabet. Subclasses
-  /// may override parseAction to provide actions for the nodes to perform, also parseOther
-  /// to link with NodeTemplates from other sources.
-  class CControlParser : public AbstractXMLParser {
-  public:
-    CControlParser(CMessageDisplay *pMsgs);
-    ///Loads all node definitions from the specified filename. Note that
-    /// system files will not be loaded if user files are (and user files will
-    /// clear out any nodes from system ones). However, multiple system or multiple
-    /// user files, will be concatenated. (However, files are processed separately:
-    /// e.g. names defined in one file will not be seen from another)
-    /// \param strFilename name+full-path of xml file to load
-    /// \param bUser true if from user-specific location (takes priority over system)
-    /// \return true if the file was opened successfully; false if not.
-    bool ParseFile(const std::string &strFilename, bool bUser);
-  protected:
-    /// \return all node definitions that have been loaded by this CControlParser.
-    const list<CControlBase::NodeTemplate*> &parsedNodes();
-    ///Subclasses may override to parse other nodes (besides "node", "ref" and "alph").
-    ///The default implementation always returns NULL.
-    /// \return A node template, if the name was recognised; NULL if not recognised.
-    virtual CControlBase::NodeTemplate *parseOther(const XML_Char *name, const XML_Char **atts) {
-      return NULL;
-    }
-    ///Subclasses may override to parse actions within nodes.
-    ///The default implementation always returns NULL.
-    /// \return A (new) action pointer, if the name+attributes were successfully parsed; NULL if not recognised.
-    virtual CControlBase::Action *parseAction(const XML_Char *name, const XML_Char **atts) {
-      return NULL;
-    };
-    //TODO cleanup/deletion
-    void XmlStartHandler(const XML_Char *name, const XML_Char **atts);
-    void XmlEndHandler(const XML_Char *szName);
-  private:
-    ///all top-level parsed nodes
-    std::list<CControlBase::NodeTemplate *> m_vParsed;
-    ///whether parsed nodes were from user file or not
-    bool m_bUser;
-
-    ///Following only used as temporary variables during parsing...
-    map<string,CControlBase::NodeTemplate*> namedNodes;
-    list<pair<CControlBase::NodeTemplate**,string> > unresolvedRefs;
-    list<CControlBase::NodeTemplate*> nodeStack;
-  };
-
-  ///subclass which we actually construct! Parses editing node definitions from a file,
-  /// then adds Pause and/or Stop, Speak, and Copy (to clipboard), all as children
-  /// of the "root" control node.
-  class CControlManager : public CSettingsObserver, public CControlBase, public CControlParser {
-  public:
-    CControlManager(CSettingsUser *pCreateFrom, CNodeCreationManager *pNCManager, CDasherInterfaceBase *pInterface);
-    void HandleEvent(int iParameter);
-
-    typedef enum {
-      EDIT_CHAR, EDIT_WORD, EDIT_SENTENCE, EDIT_PARAGRAPH, EDIT_FILE, EDIT_LINE, EDIT_PAGE, EDIT_SELECTION,
-    } EditDistance;
-
-    ///Recomputes which of pause, stop, speak and copy the root control node should have amongst its children.
-    /// Automatically called whenever copy-on-stop/speak-on-stop or input filter changes;
-    /// subclasses of CDasherInterfaceBase should also call this if
-    ///  (a) they override Stop() and hasStopTriggers() with additional actions, if these are enabled/disabled
-    ///      and this causes the value returned by hasStopTriggers() to change;
-    ///  (b) the values returned by SupportsSpeech() and/or SupportsClipboard() ever change.
-    void updateActions();
-    ~CControlManager();
-
-  protected:
-    ///Override to allow a <root/> tag to include a fresh control root
-    NodeTemplate *parseOther(const XML_Char *name, const XML_Char **atts);
-    ///Override to recognise <move/> and <delete/> tags as actions.
-    Action *parseAction(const XML_Char *name, const XML_Char **atts);
-
-  private:
-    map<string, CControlBase::Action*> m_actions;
-    ///group of statefull actions (all/new/repeat/...)
-    SpeechHeader *m_pSpeech;
-    CopyHeader *m_pCopy;
-  };
-  /// @}
-
-  class CControlBoxIO : public AbstractXMLParser {
-  public:
-    CControlBoxIO(CMessageDisplay *pMsgs);
-    void GetControlBoxes(std::vector < std::string > *pList) const;
-    CControlManager* CreateControlManager(const std::string& id, CSettingsUser *pCreateFrom, CNodeCreationManager *pNCManager, CDasherInterfaceBase *pInterface) const;
-    bool ParseFile(const std::string &strFilename, bool bUser) override;
-    void XmlStartHandler(const XML_Char *name, const XML_Char **atts) override;
-    void XmlEndHandler(const XML_Char *szName) override {};
-  private:
-    std::map<std::string, std::string> m_controlFiles;
-    std::string m_filename;
-  };
-}
-
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ConversionManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/ConversionManager.h
deleted file mode 100644
index 0050fcdbadd5f2c816f45c08e424d9f4032e3d85..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ConversionManager.h
+++ /dev/null
@@ -1,222 +0,0 @@
-// ConversionManager.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __conversion_manager_h__
-#define __conversion_manager_h__
-
-#include "DasherTypes.h"
-#include "LanguageModelling/LanguageModel.h" // Urgh - we really shouldn't need to know about language models here
-#include "DasherNode.h"
-#include "SCENode.h"
-#include "NodeManager.h"
-#include "Alphabet/AlphInfo.h"
-#include "SettingsStore.h"
-
-// TODO: Conversion manager needs to deal with offsets and contexts - Will: See Phil for an explanation.
-
-class CNodeCreationManager;
-
-namespace Dasher {
-  class CDasherInterfaceBase;
-  /// \ingroup Model
-  /// @{
-
-  /// This class manages nodes in conversion subtrees, typically used
-  /// for languages where complex characters are entered through a
-  /// composition process, for example Japanese and Chinese.
-  ///
-  /// A new CConversionManager is created for each subtree, and
-  /// therefore represents the conversion of a single phrase. The
-  /// phrase to be converted is read by recursing through the parent
-  /// tree. An instance of CConversionHelper is shared by several
-  /// CConversionManagers, and performs the language dependent aspects
-  /// of conversion. Specifically construction of the candidate
-  /// lattice and assignment of weights.
-  ///
-  /// The general policy is to delay computation as far as possible,
-  /// to avoid unnecessary computational load. The candidate lattice
-  /// is therefore built at the first call to PopulateChildren, and
-  /// weights are only assigned when the appropriate node has its
-  /// child list populated.
-  ///
-  /// See CConversionHelper for details of the language specific
-  /// aspects of conversion, and CNodeManager for details of the node
-  /// management process.
-  ///
-  class CConversionManager : protected CSettingsUser, public CNodeManager {
-    friend class CConvertingAlphMgr;
-  protected:  class CConvNode; //fwd decl
-  public:
-    CConversionManager(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager, const CAlphInfo *pAlphabet, CLanguageModel *pLanguageModel);
-
-    ///
-    /// Get a new root node owned by this manager
-    ///
-    
-    virtual CConvNode *GetRoot(int iOffset, CLanguageModel::Context newCtx);
-
-    ///Tells us to use the specified screen to create node labels.
-    /// (note we cache the screen and create labels lazily)
-    void ChangeScreen(CDasherScreen *pScreen);
-    
-  protected:
-    
-    class CConvNode : public CDasherNode {
-    public:
-      CConversionManager *mgr() const {return m_pMgr;}
-      CConvNode(int iOffset, int iColour, CDasherScreen::Label *pLabel, CConversionManager *pMgr);
-    ///
-    /// Provide children for the supplied node
-    ///
-
-    virtual void PopulateChildren();
-    virtual int ExpectedNumChildren();
-      virtual void SetFlag(int iFlag, bool bValue);
-
-    ~CConvNode();
-
-    ///Attempts to fill vContextSymbols with the context that would exist _after_ this node has been entered
-    void GetContext(CDasherInterfaceBase *pInterface, const CAlphabetMap *pAlphabetMap, std::vector<symbol> &vContextSymbols, int iOffset, int iLength);
-
-    ///
-    /// Called whenever a node belonging to this manager first
-    /// moves under the crosshair
-    ///
-
-    virtual void Output();
-
-    ///
-    /// Called when a node is left backwards
-    ///
-
-    virtual void Undo();
-
-    protected:
-      CConversionManager *m_pMgr;
-    public: //to ConversionManager and subclasses only, of course...
-
-    //TODO: REVISE
-      symbol iSymbol;
-      //     int iPhase;
-      CLanguageModel::Context iContext;
-      SCENode * pSCENode;
-      bool bisRoot; // True for root conversion nodes
-      //int iGameOffset;
-    };
-
-    virtual CConvNode *makeNode(int iOffset, int iColour, CDasherScreen::Label *pLabel);
-
-    CDasherInterfaceBase *m_pInterface;
-	CNodeCreationManager *m_pNCManager;
-	const CAlphInfo *m_pAlphabet;
-	
-    ///Utility method for subclasses, lazily makes+caches node labels
-    /// \return a node label displaying the specified string
-    CDasherScreen::Label *GetLabel(const char *pszConversion);
-    
-    /// Convert a given string to a lattice of candidates. Sizes for
-	/// candidates aren't assigned at this point. The input string
-	/// should be UTF-8 encoded.
-	///
-	/// @param strSource UTF-8 encoded input string.
-	/// @param pRoot Used to return the root of the conversion lattice.
-	/// @param childCount Unsure - document this.
-	/// @param CMid A unique identifier for the conversion helper 'context'.
-	///
-	/// @return True if conversion succeeded, false otherwise
-	virtual bool Convert(const std::string &strSource, SCENode ** pRoot) = 0;
-    
-	/// Assign sizes to the children of a given conversion node. This
-	/// happens when the conversion manager populates the children of
-	/// the Dasher node so as to avoid unnecessary computation.
-	///
-	/// @param pStart The parent of the nodes to be sized.
-	/// @param context Unsure - document this, shouldn't be in general class (include userdata pointer).
-	/// @param normalization Normalisation constant for the child sizes (TODO: check that this is a sensible value, ie the same as Dasher normalisation).
-	/// @param uniform Unsure - document this.
-	///
-    virtual void AssignSizes(const std::vector<SCENode *> &vChildren, Dasher::CLanguageModel::Context context, long normalization, int uniform)=0;
-    
-	/// Assign colours to the children of a given conversion node.
-	/// This function needs a rethink.
-	///
-	/// @param parentClr
-	/// @param pNode
-	/// @param childIndex
-	///
-	/// @return
-	///
-	virtual int AssignColour(int parentClr, SCENode * pNode, int childIndex) {
-      int which = -1;
-      
-      for (int i=0; i<2; i++)
-        for(int j=0; j<3; j++)
-          if (parentClr == colourStore[i][j])
-            which = i;
-      
-      if(which == -1)
-        return colourStore[0][childIndex%3];
-      else if(which == 0)
-        return colourStore[1][childIndex%3];
-      else
-        return colourStore[0][childIndex%3];
-	};
-    
-    ///
-    /// Calculate sizes for each of the children - default
-    /// implementation assigns decending probabilities in a power law
-    /// fashion (so assumes ordering), but specific subclasses are
-    /// free to implement their own behaviour. The only restriction is
-    /// that sizes should be positive and sum to the appropriate
-    /// normalisation constant
-    ///
-    
-    virtual void AssignChildSizes(const std::vector<SCENode *> &vChildren, CLanguageModel::Context context);
-    
-    ///
-    /// Build the conversion tree (lattice) for the given string -
-    /// evaluated late to prevent unnecessary conversions when the
-    /// children of the root node are never instantiated
-    ///
-    
-    virtual void BuildTree(CConvNode *pRoot);
-
-  private:
-
-    std::map<std::string, CDasherScreen::Label *> m_vLabels;
-    CDasherScreen *m_pScreen;
-
-    ///
-    /// Dump tree to provided stream (debug)
-    ///
-
-    void RecursiveDumpTree(std::ostream &out, SCENode *pCurrent, unsigned int iDepth);
-
-    CLanguageModel *m_pLanguageModel;
-    
-    CLanguageModel::Context m_iLearnContext;
-    
-	int colourStore[2][3];
-
-  };
-  /// @}
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ConvertingAlphMgr.h b/Source/Thirdparty/Dasher/Include/DasherCore/ConvertingAlphMgr.h
deleted file mode 100644
index c1760ce6f499f8cb11217064fd72872ea0f0482c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ConvertingAlphMgr.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *  ConvertingAlphMgr.h
- *  Dasher
- *
- *  Created by Alan Lawrence on 06/08/2010.
- *  Copyright 2010 Cavendish Laboratory. All rights reserved.
- *
- */
-
-#ifndef __CONVERTING_ALPH_MGR_H__
-#define __CONVERTING_ALPH_MGR_H__
-
-#include "AlphabetManager.h"
-#include "ConversionManager.h"
-
-namespace Dasher {
-  //TODO Need to override CreateLanguageModel to use something appropriate for conversion.
-  // The created model, needs to have a GetSize() _including_ the conversion node
-  // (as this is not included in the Alphabet's GetNumberTextSymbols).
-  //TODO in fact IterateChildGroups will not include the conversion symbol (expected by
-  // CreateSymbolNode below) either, as it stops at Alphabet GetNumberTextSymbols too...
-  //TODO do we also need to override GetProbs? Existing impl will add uniformity onto the conversion root too.
-  class CConvertingAlphMgr : public CAlphabetManager {
-  public:
-    CConvertingAlphMgr(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager, CConversionManager *pConvMgr, const CAlphInfo *pAlphabet);
-    ///Override to also tell the ConversionManager that the screen has changed.
-    void MakeLabels(CDasherScreen *pScreen);
-    virtual ~CConvertingAlphMgr();
-  protected:
-    ///Override to return a conversion root for iSymbol==(one beyond last alphabet symbol)
-    virtual CDasherNode *CreateSymbolNode(CAlphNode *pParent, symbol iSymbol);
-  private:
-    CConversionManager *m_pConvMgr;
-    
-    //TODO do we need to override
-    //void GetProbs(vector<unsigned int> *pProbInfo, CLanguageModel::Context context);
-    //to do something for the conversion symbol, or does the LM do that for us???
-  };
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/CustomColours.h b/Source/Thirdparty/Dasher/Include/DasherCore/CustomColours.h
deleted file mode 100644
index 76b906ffcb0d1409d0ba612b7af562cee4553bbe..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/CustomColours.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// CustomColours.h
-//
-// Copyright (c) 2002 Iain Murray
-
-#ifndef __CustomColours_h__
-#define __CustomColours_h__
-
-#include "ColourIO.h"
-
-namespace Dasher {
-  class CCustomColours;
-}
-
-/// \ingroup Colours
-/// @{
-class Dasher::CCustomColours {
- public:
-  CCustomColours(const CColourIO::ColourInfo & ColourInfo);
-  int GetNumColours() const {
-    return m_Red.size();
-  }
-  int GetRed(int colour) const {
-    return m_Red[colour];
-  }
-  int GetGreen(int colour) const {
-    return m_Green[colour];
-  }
-  int GetBlue(int colour) const {
-    return m_Blue[colour];
-  }
- private:
-  const CColourIO::ColourInfo * m_ColourInfo;
-  std::vector<int> m_Red;
-  std::vector<int> m_Green;
-  std::vector<int> m_Blue;
-};
-/// @}
-
-#endif /* #ifndef __CustomColours_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfScreenMsgs.h b/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfScreenMsgs.h
deleted file mode 100644
index 9d63377bc4396f1d168c90b385236ed8d6ea1ed0..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfScreenMsgs.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// DashIntfScreenMsgs.h
-//
-// Created 2011 by Alan Lawrence
-// Copyright (c) 2011 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DASH_INTF_SCREEN_MSGS_H__
-#define __DASH_INTF_SCREEN_MSGS_H__
-
-#include "DashIntfSettings.h"
-
-namespace Dasher {
-///Implements the MessageDisplay part of CDasherInterfaceBase by rendering messages
-/// directly onto the CDasherScreen (using MakeLabel wrapping to LP_MESSAGE_FONTSIZE).
-///Also implements CreateGameModule to return a ScreenGameModule, which provides
-/// text prompts in much the same fashion.
-/// Note we subclass CDashIntfSettings as currently all platforms want to inherit from
-/// the latter; if this changes, we could declare ScreenMsgs & Settings separately and
-/// combine via multiple inheritance?? (from CSettingsUser, not DashIntfBase!)
-class CDashIntfScreenMsgs : public CDashIntfSettings {
-public:
-
-  CDashIntfScreenMsgs(CSettingsStore *pSettingsStore, CFileUtils* fileUtils);
-
-  /// Stores messages for Redraw to render onto the Screen on top of the view.
-  /// For modal messages (bInterrupt=true), pauses Dasher, and keeps the message
-  /// onscreen until the user starts moving again (via normal mechanisms);
-  /// For non-modal or asynchronous messages (bInterrupt=false), we render
-  /// the message over the canvas for LP_MESSAGE_TIME milliseconds without pausing.
-  /// (This method merely stores the messages into m_dqAsyncMessages or m_dqModalMessages
-  /// as appropriate; display, timeout, etc. is handled in Redraw.)
-  /// \param strText text of message to display.
-  /// \param bInterrupt whether to interrupt any text entry in progress.
-  virtual void Message(const std::string &strText, bool bInterrupt);
-  
-  /// Override to render (on top of nodes+decorations) any messages, for
-  /// LP_MESSAGE_TIME ms, before removing from queue.
-  bool FinishRender(unsigned long ulTime);
-
-  ///Override to re-MakeLabel any messages.
-  void ChangeScreen(CDasherScreen *pNewScreen);
-  
-  ///Flush any modal messages that have been displayed before resuming.
-  void onUnpause(unsigned long lTime);
-  
-  ///Implement to return a ScreenGameModule, i.e. rendering text prompts
-  /// onto the Screen with Labels, much as we do for messages!
-  CGameModule *CreateGameModule();
-private:
-  /// Asynchronous (non-modal) messages to be displayed to the user, longest-ago
-  /// at the front, along with the timestamp of the frame at which each was first
-  /// displayed to the user - 0 if not yet displayed.
-  std::deque<pair<CDasherScreen::Label*, unsigned long> > m_dqAsyncMessages;
-  
-  /// Modal messages being or waiting to be displayed to the user, longest-ago
-  /// at the front, along with the timestamp when each was first displayed to the
-  /// user (0 if not yet displayed).
-  std::deque<pair<CDasherScreen::Label*, unsigned long> > m_dqModalMessages;  
-};
-
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfSettings.h b/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfSettings.h
deleted file mode 100644
index 6a218391248a49574649af8b4f63e26fdec0c324..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DashIntfSettings.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// DashIntfSettings.h
-//
-// Created 2011 by Alan Lawrence
-// Copyright (c) 2011 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DASH_INTF_SETTINGS_H__
-#define __DASH_INTF_SETTINGS_H__
-
-#include "DasherInterfaceBase.h"
-
-namespace Dasher {
-///Class exists only to redefine the settings accessor methods in CDasherInterfaceBase
-/// and make them public (otherwise they are protected). As opposed to making them public
-/// in CDasherInterfaceBase directly, this has the advantage that it forces all settings
-/// accesses to use the proper channel of CSettingsUser _within_DasherCore_ (as all types etc.
-/// are CDasherInterfaceBase, and should be kept that way!). However, in platform-specific code,
-/// we are often writing stuff in other languages besides C++ and thus cannot get through its
-/// access control; hence, rather than each platform-specific subclass of CDasherInterfaceBase
-/// redeclaring all the settings methods itself, we'll do it once here.
-/// Possible TODO: could make a subclass of CSettingsUser rather than CDasherInterfaceBase, and use multiple inheritance?
-class CDashIntfSettings : public CDasherInterfaceBase {
-public:
-
-	CDashIntfSettings(CSettingsStore *pSettingsStore, CFileUtils* fileUtils);
-
-  CSettingsUser* GetSettingsUser() { return this; }
-  bool GetBoolParameter(int iParameter) const;
-  long GetLongParameter(int iParameter) const;
-  const std::string &GetStringParameter(int iParameter) const;
-  void SetBoolParameter(int iParameter, bool bValue);
-  void SetLongParameter(int iParameter, long lValue);
-  void SetStringParameter(int iParameter, const string &sValue);
-  bool IsParameterSaved(std::string & Key);
-};
-
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherButtons.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherButtons.h
deleted file mode 100644
index f1bf0a1e52ed5d6ac2064c6680dab8c9e1785278..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherButtons.h
+++ /dev/null
@@ -1,55 +0,0 @@
-
-// DasherButtons.h 
-// Copyright 2005 by Chris Ball
-
-#ifndef __DASHER_BUTTONS_H__
-#define __DASHER_BUTTONS_H__
-
-#include <string>
-#include <vector>
-#include <iostream>
-#include <fstream>
-#include <algorithm>
-#include "Event.h"
-#include "InputFilter.h"
-
-
-using namespace std;
-namespace Dasher {
-/// \ingroup Input
-/// @{
-class CDasherButtons : public CStaticFilter
-{
- public:
-  CDasherButtons(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, bool bMenu, ModuleID_t iID, const char *szName);
-
-  ~CDasherButtons();
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput)=0;
-  
-  void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  void Activate();
-  
-  struct SBoxInfo {
-    int iTop;
-    int iBottom;
-    int iDisplayTop;
-    int iDisplayBottom;
-  };
-
- protected:
-  virtual void SetupBoxes()=0;
-  void NewDrawGoTo(CDasherView *pView, myint iDasherMin, myint iDasherMax, bool bActive);
-  bool m_bMenu;
-  bool m_bDecorationChanged;
-  SBoxInfo *m_pBoxes;
-  int m_iNumBoxes, iActiveBox;
-  unsigned long m_iScanTime;
-  
-  virtual void DirectKeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherModel *pModel);
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherInput.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherInput.h
deleted file mode 100644
index b5998ec4aa2724943070be3d2f3ee276a8859ec3..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherInput.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// DasherInput.h
-//
-// Copyright (c) 2005 Phil Cowans
-
-#ifndef __DasherInput_h__
-#define __DasherInput_h__
-
-#include "DasherTypes.h"
-#include "DasherModule.h"
-#include "ModuleManager.h"
-#include "DasherView.h"
-
-namespace Dasher {
-  class CDasherInput;
-  class CDasherCoordInput;
-  class CScreenCoordInput;
-  class CDasherInterfaceBase;
-}
-/// \defgroup Input Input devices
-/// \{
-class Dasher::CDasherInput : public CDasherModule {
-
-public:
-
-  CDasherInput(ModuleID_t iID, const char *szName) 
-    : CDasherModule(iID, InputDevice, szName) {};
-
-  /// Get the position of the input in Dasher coordinates.
-  /// \param iDasherX X-coordinate; if only one coordinate (axis) is available, this should be 0.
-  /// \param iDasherY Y-coordinate; if only one coordinate (axis) is available, this should be it.
-  /// \param pView view to use to convert Screen2Dasher, if necessary
-  /// \return true if coordinates were obtained; false if they could not be.
-  virtual bool GetDasherCoords(myint &iDasherX, myint &iDasherY, CDasherView *pView)=0;
-
-  /// Get the position of the input in screen coordinates. If only one coordinate (axis) is available,
-  /// it should be returned in Y for left-to-right / right-to-left orientations, X for top-to-bottom/
-  /// bottom-to-top. (As would happen if performing Dasher2Screen on values obtained from GetDasherCoords!)
-  /// \param iX Screen X-coordinate
-  /// \param iY Screen Y-coordinate
-  /// \param pView view to use to convert Dasher2Screen, if necessary
-  /// \return true if coordinates were obtained; false if they could not be.
-  virtual bool GetScreenCoords(screenint &iX, screenint &iY, CDasherView *pView)=0;
-  
-  /// Activate the device. If a helper thread needs to be started in
-  /// order to listen for input then do it here.
-  virtual void Activate() {};
-
-  /// Deactivate the device. Please don't hold on to any significant
-  /// resources (eg helper threads) after deactivation.
-  virtual void Deactivate() {};
-
-  /// Handle key down events
-  ///
-  virtual void KeyDown(unsigned long iTime, int iId) {};
-
-  ///
-  /// Handle key up events
-  virtual void KeyUp(unsigned long iTime, int iId) {};
-};
-///Abstract superclasses for CDasherInputs which natively provide screen coordinates;
-/// thus, when dasher-coordinates are requested, they will be converted
-/// via the views Screen2Dasher. (=>Subclasses must implement GetScreenCoords)
-class Dasher::CScreenCoordInput : public CDasherInput {
-public:
-  CScreenCoordInput(ModuleID_t iId, const char *szName)
-  : CDasherInput(iId, szName) {
-  }
-  virtual bool GetDasherCoords(myint &iDasherX, myint &iDasherY, CDasherView *pView)  {
-    screenint iX, iY;
-    if (!GetScreenCoords(iX, iY, pView)) return false;
-    pView->Screen2Dasher(iX, iY, iDasherX, iDasherY);
-    return true;
-  }
-};
-
-///Abstract superclasses for CDasherInputs which natively provide dasher coordinates;
-/// thus, when screen-coordinates are requested, they will be converted
-/// via the views Dasher2Screen. (=>Subclasses must implement GetDasherCoords)
-class Dasher::CDasherCoordInput : public CDasherInput {
-public:
-  CDasherCoordInput(ModuleID_t iId, const char *szName)
-  : CDasherInput(iId, szName) {
-  }
-  
-  virtual bool GetScreenCoords(screenint &iX, screenint &iY, CDasherView *pView) {
-    myint iDasherX, iDasherY;
-    if (!GetDasherCoords(iDasherX, iDasherY, pView)) return false;
-    pView->Dasher2Screen(iDasherX, iDasherY, iX, iY);
-    return true;
-  }
-  
-};
-
-/// \}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherInterfaceBase.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherInterfaceBase.h
deleted file mode 100644
index 38d185a78c79566a94b9d675340dfe2ed7cded1c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherInterfaceBase.h
+++ /dev/null
@@ -1,607 +0,0 @@
-// DasherInterfaceBase.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DasherInterfaceBase_h__
-#define __DasherInterfaceBase_h__
-
-///
-/// \mainpage
-///
-/// This is the Dasher source code documentation. Please try to keep
-/// it up to date!
-///
-
-// TODO - there is a list of things to be configurable in my notes
-// Check that everything that is not self-contained within the GUI is covered.
-
-#include "Messages.h"
-#include "../Common/NoClones.h"
-#include "../Common/ModuleSettings.h"
-#include "Alphabet/AlphIO.h"
-#include "AutoSpeedControl.h"
-#include "ColourIO.h"
-#include "InputFilter.h"
-#include "ModuleManager.h"
-#include "ControlManager.h"
-#include "FrameRate.h"
-#include <set>
-#include <algorithm>
-
-namespace Dasher {
-  class CDasherScreen;
-  class CDasherView;
-  class CDasherInput;
-  class CInputFilter;
-  class CDasherModel;
-  class CSettingsStore;
-  class CGameModule;
-  class CDasherInterfaceBase;
-}
-
-class CUserLogBase;
-class CNodeCreationManager;
-
-/// \defgroup Core Core Dasher classes
-/// @{
-
-
-/// @name Platform dependent utility functions
-/// These functions provide various platform dependent functions
-/// required by the core. A derived class is created for each
-/// supported platform which implements these.
-// @{
-class CFileUtils {
-public:
-	virtual ~CFileUtils(){}
-	///
-	/// Obtain the size in bytes of a file - the way to do this is
-	/// dependent on the OS (TODO: Check this - any posix on Windows?)
-	///
-	virtual int GetFileSize(const std::string &strFileName) = 0;
-
-	///Look for files, matching a filename pattern, in whatever system and/or user
-	/// locations as may exist - e.g. on disk, in app package, on web, whatever.
-	/// TODO, can we add a default implementation that looks on the Dasher website?
-	/// \param pattern string matching just filename (not path), potentially
-	/// including '*'s (as per glob)
-	virtual void ScanFiles(AbstractParser *parser, const std::string &strPattern) = 0;
-
-	// Writes file to user data directory. 
-	virtual bool WriteUserDataFile(const std::string &filename, const std::string &strNewText, bool append) = 0;
-
-};
-
-/// The central class in the core of Dasher. Ties together the rest of
-/// the platform independent stuff and provides a single interface for
-/// the UI to use. Note: CMessageDisplay unimplemented; platforms should
-/// provide their own methods using appropriate GUI components, or subclass
-/// CDashIntfScreenMsgs instead.
-class Dasher::CDasherInterfaceBase : public CMessageDisplay, public Observable<const CEditEvent *>, protected Observer<int>, protected CSettingsUser, private NoClones {
-public:
-  ///Create a new interface by providing the only-and-only settings store that will be used throughout.
-  CDasherInterfaceBase(CSettingsStore *pSettingsStore, CFileUtils* fileUtils);
-  virtual ~CDasherInterfaceBase();
-
-  /// @name Access to internal member classes
-  /// Access various classes contained within the interface. These
-  /// should be considered dangerous and use minimised. Eventually to
-  /// be replaced by properly encapsulated equivalents.
-  /// @{
-
-  CUserLogBase* GetUserLogPtr();
-
-  // @}
-
-  ///
-  /// @name Parameter manipulation
-  /// Members for manipulating the parameters of the core Dasher object.
-  ///
-
-  //@{
-
-  ///
-  /// Reset a parameter to the default value
-  ///
-
-  void ResetParameter(int iParmater);
-
-  ///
-  /// Obtain the permitted values for a string parameter - used to
-  /// geneate preferences dialogues etc.
-  ///
-
-  void GetPermittedValues(int iParameter, std::vector<std::string> &vList);
-
-  ///
-  /// Get a list of settings which apply to a particular module
-  ///
-
-  bool GetModuleSettings(const std::string &strName, SModuleSettings **pSettings, int *iCount);
-
-  //@}
-
-  /// Called when a parameter changes - but *after* components have been notified.
-  /// Subsumes previous Interface level event handler, for example, responsible for
-  /// restarting the Dasher model whenever parameter changes make it
-  /// invalid. Subclasses should override to forward events to SettingsUI, editbox,
-  /// etc., as appropriate, but should _call_through_to_superclass_method_ first.
-  /// \param iParameter The parameter that's just changed.
-  /// \todo Should be protected (??)
-
-  virtual void HandleEvent(int iParameter);
-  
-  ///Locks/unlocks Dasher. The default here stores the lock message and percentage
-  /// in m_strLockMessage, such that NewFrame renders this instead of the canvas
-  /// if we are locked. Subclasses may override to implement better (GUI)
-  /// notifications/dialogues, but should call through to this method to ensure
-  /// isLocked() returns the correct value.
-  /// Note that we do not support multiple/concurrent locks; each call to SetLockStatus
-  /// overrides any/all previous ones.
-  /// \param strText text of message to display, excluding %age, _if_ locked;
-  ///  ignored, if unlocked.
-  /// \param iPercent -1 unlocks Dasher; anything else locks it, and indicates
-  ///  %progress.
-  virtual void SetLockStatus(const std::string &strText, int iPercent);
-
-  /// Tells us whether Dasher is locked (i.e. for training).
-  /// TODO This just replaces the old BP_TRAINING; however, I'd think that _if_ we
-  /// do actually need a global function to tell whether Dasher's locked, it probably
-  /// needs to be threadsafe, which neither this nor BP_TRAINING is (I don't think!)...
-  inline bool isLocked() {return !m_strLockMessage.empty();}
-
-  ///Does this subclass support speech (i.e. the speak(string) method?)
-  /// Default is just to return false.
-  virtual bool SupportsSpeech() {return false;}
-  ///Does this subclass support clipboard copying (i.e. the copyToClipboard(string) method?)
-  /// Default is just to return false.
-  virtual bool SupportsClipboard() {return false;}
-
-  ///Subclasses supporting speech should override to speak the supplied text
-  /// (Default implementation does nothing)
-  virtual void Speak(const std::string &text, bool bInterrupt) {}
-
-  ///Subclasses supporting clipboard operations should override to copy
-  /// the specified text to the clipboard. (Default implementation does nothing).
-  virtual void CopyToClipboard(const std::string &text) {}
- 
-  ///Called to calculate offset after control-mode "move" or delete commands.
-  ///\param bForwards true to move forwards (right), false for backwards
-  ///\param dist how far to move: character, word, line, ..., file. (Usually defined
-  /// by OS, e.g. for non-european languages)
-  ///\return the offset, into the edit buffer where the cursor would be *after* the move.
-  virtual unsigned int ctrlOffsetAfterMove(unsigned int offsetBefore, bool bForwards,
-    CControlManager::EditDistance iDist) {
-    return offsetBefore;
-  }
-
-  ///Called to execute a control-mode "move" command.
-  ///\param bForwards true to move forwards (right), false for backwards
-  ///\param dist how far to move: character, word, line, file. (Usually defined
-  /// by OS, e.g. for non-european languages)
-  ///\return the offset, into the edit buffer of the cursor *after* the move.
-  virtual unsigned int ctrlMove(bool bForwards, CControlManager::EditDistance dist)=0;
-
-  ///Called to execute a control-mode "delete" command.
-  ///\param bForwards true to delete forwards (right), false for backwards
-  ///\param dist how much to delete: character, word, line, file. (Usually defined
-  /// by OS, e.g. for non-european languages)
-  ///\return the offset, into the edit buffer, of the cursor *after* the delete
-  /// (for forwards deletion, this will be the same as the offset *before*)
-  virtual unsigned int ctrlDelete(bool bForwards, CControlManager::EditDistance dist)=0;
-
-  virtual void editOutput(const std::string &strText, CDasherNode *pCause);
-  virtual void editDelete(const std::string &strText, CDasherNode *pCause);
-  virtual void editConvert(CDasherNode *pCause);
-  virtual void editProtect(CDasherNode *pCause);
-
-  class TextAction {
-  public:
-    TextAction(CDasherInterfaceBase *pMgr);
-    void executeOnDistance(CControlManager::EditDistance dist);
-    void executeOnNew();
-    void executeLast();
-    void NotifyOffset(int iOffset);
-    virtual ~TextAction();
-  protected:
-    virtual void operator()(const std::string &strText)=0;
-    CDasherInterfaceBase *m_pIntf;
-  private:
-    int m_iStartOffset;
-    std::string strLast;
-  };
-
-
-  /// @name Starting and stopping
-  /// Methods used to instruct dynamic motion of Dasher to start or stop
-  /// @{
-
-  /// Call when the user has finished writing a piece of text, to execute
-  /// any "on-stop" actions: the default implements speak on stop (if
-  /// BP_SPEAK_ON_STOP is set) and copy-on-stop (if BP_COPY_ALL_ON_STOP) is set;
-  /// subclasses may override to do more.
-  virtual void Done();
-
-  ///Whether the Done() method does anything (and so should be presented
-  /// to the user) - default deals with speak/copy-on-stop, and subclasses
-  /// which override Done() to add additional on-stop actions must/should
-  /// override this to match.
-  virtual bool hasDone();
-  /// @}
-
-  ///
-  /// Append text to the user training file - used to store state between sessions
-  /// \param filename name of training file, without path (e.g. "training_english_GB.txt")
-  /// \param strNewText text to append
-  ///
-  void WriteTrainFile(const std::string &filename, const std::string &strNewText) {
-    m_fileUtils->WriteUserDataFile(filename, strNewText, true);
-  };
-
-  // App Interface
-  // -----------------------------------------------------
-
-  // std::map<int, std::string>& GetAlphabets(); // map<key, value> int is a UID string can change. Store UID in preferences. Display string to user.
-  // std::vector<std::string>& GetAlphabets();
-  // std::vector<std::string>& GetLangModels();
-  // std::vector<std::string>& GetViews();
-
-  /// Supply a new CDasherScreen object onto which to render. Note this should
-  /// only be called (a) at startup, and (b) when the new screen is _significantly_
-  /// different from the old, rather than just a window resize: specifically, this means
-  /// the tree of nodes will be rebuilt with new Labels for the new screen; and in the future,
-  /// maybe also if things like colour depth, alpha transparency support, etc., change.
-  /// If the existing rendering setup should just scale to the new screen dimensions,
-  /// call ScreenResized() instead (we expect this to be the case most/all of the time,
-  /// and this method subsumes a call to ScreenResized.) Note, at startup, ChangeScreen
-  /// and Realize may occur in either order; if ChangeScreen comes after, Resize will create a 
-  /// tree with null Labels, which will have to be rebuilt in the call to ChangeScreen.
-  /// \param NewScreen Pointer to the new CDasherScreen.
-  virtual void ChangeScreen(CDasherScreen * NewScreen);
-  
-  ///Call when the screen dimensions have been changed, to recalculate scaling factors etc.
-  /// \param pScreen the screen whose dimensions have changed. TODO we expect this to be
-  /// the same one-and-only screen that we are using anyway, so remove parameter?
-  void ScreenResized(CDasherScreen *pScreen);
-
-  /// Train Dasher from a file
-  /// All traing data must be in UTF-8
-  /// \param Filename File to load.
-  /// \param iTotalBytes documentme
-  /// \param iOffset Document me
-  //  int TrainFile(std::string Filename, int iTotalBytes, int iOffset);
-
-  /// New control mechanisms:
-
-  ///Equivalent to SetOffset(iOffset, true)
-  void SetBuffer(int iOffset) {SetOffset(iOffset, true);}
-
-  /// Rebuilds the model at the specified location, potentially reusing nodes if !bForce
-  /// @param iOffset Cursor position in attached buffer from which to obtain context
-  /// @param bForce if true, model should be completely rebuilt (even for
-  /// same offset) - characters at old offsets may have changed, or we have
-  /// a new AlphabetManager. If false, assume buffer and alphabet unchanged,
-  /// so no need to rebuild the model if an existing node covers this point.
-
-  /// @param bForce true meaning the entire context may have changed,
-  /// false if we've just moved around within it.
-  void SetOffset(int iOffset, bool bForce=false);
-
-  /// @name Status reporting
-  /// Get information about the runtime status of Dasher which might
-  /// be of interest for debugging purposes etc.
-  /// @{
-
-  /// Get the current rate of text entry.
-  /// \retval The rate in characters per minute.
-  /// TODO: Check that this is still used
-
-  double GetCurCPM();
-
-  /// Get current refresh rate.
-  /// \retval The rate in frames per second
-  /// TODO: Check that this is still used
-
-  double GetCurFPS();
-
-  /// Get the total number of nats (base-e bits) entered.
-  /// \retval The current total
-  /// \todo Obsolete since new logging code?
-
-  double GetNats() const;
-
-  /// Reset the count of nats entered.
-  /// \todo Obsolete since new logging code?
-
-  void ResetNats();
-
-  /// @}
-
-  /// @name User input
-  /// Deals with forwarding user input to the core
-  /// @{
-  /// Called from outside to indicate a key or mouse button has just been pushed down
-  /// \param iTime time at which button pressed
-  /// \param iId integer identifying button. TODO we need a better system here.
-  /// At present 1-4 are keys on the keyboard (or external), after mapping from e.g.
-  /// qwerty layout, such that for a user who can press 2 buttons, 1 is the primary, 2
-  /// secondary (maybe harder for them), etc. Direct mode can use an arbitrary number.
-  /// 100 is left mouse button, 101 right, 102 middle (if there is one), and so on.
-  /// (Note we do not specify the location at which mouse presses occur: the current
-  /// pointer location can be obtained from the input device if necessary)
-  void KeyDown(unsigned long iTime, int iId);
-
-  /// Called from outside to indicate a key or mouse button has just been released
-  /// \param iTime time at which button released
-  /// \param iId integer identifying button. See comments for KeyDown.
-  void KeyUp(unsigned long iTime, int iId);
-
-  /// @}
-
-  // Module management functions
-  CDasherModule *RegisterModule(CDasherModule *pModule);
-  CDasherModule *GetModule(ModuleID_t iID);
-  CDasherModule *GetModuleByName(const std::string &strName);
-  CDasherInput *GetActiveInputDevice() {return m_pInput;}
-  CInputFilter *GetActiveInputMethod() {return m_pInputFilter;}
-  const CAlphInfo *GetActiveAlphabet();
-  void SetDefaultInputDevice(CDasherInput *);
-  void SetDefaultInputMethod(CInputFilter *);
-
-  void StartShutdown();
-
-  void ScheduleRedraw() {
-    m_bRedrawScheduled = true;
-  };
-
-  ///Subclasses should return the contents of (the specified subrange of) the edit buffer
-  virtual std::string GetContext(unsigned int iStart, unsigned int iLength)=0;
-
-  ///Clears all written text from edit buffer and rebuilds the model. The default
-  /// implementation does this using the control mode editDelete mechanism
-  /// (one call forward, one back), followed by a call to SetBuffer(0). Subclasses
-  /// may (optionally) override with more efficient / easier implementations, but
-  /// should make the same call to SetBuffer.
-  virtual void ClearAllContext();
-  virtual std::string GetAllContext()=0;
-
-  /// Subclasses should return the length of whole text. In letters, not bytes.
-  virtual int GetAllContextLenght() = 0;
-
-  /// Subclasses should return character, word, sentence, ... at current text cursor position.
-  /// For character around cursor decision is arbitrary. Let's settle for character before cursor.
-  /// TODO. Consistently name functions dealing with dasher context, versus functions dealing with editor text.
-  /// I.E. GetAllContext should be named GetAllTtext
-  virtual std::string GetTextAroundCursor(CControlManager::EditDistance) { // =0;
-    return std::string();
-  }
-
-  /// Set a key value pair by name - designed to allow operation from
-  /// the command line.  Returns 0 on success, an error string on failure.
-  ///
-  const char* ClSet(const std::string &strKey, const std::string &strValue);
-
-  void ImportTrainingText(const std::string &strPath);
-
-  /// Flush the/all currently-written text to the user's training file(s).
-  /// Just calls through to WriteTrainFileFull(this) on the AlphabetManager;
-  /// public so e.g. iPhone can flush the buffer when app is backgrounded.
-  void WriteTrainFileFull();
-
-  /// @name Platform dependent utility functions
-  /// These functions provide various platform dependent functions
-  /// required by the core. A derived class is created for each
-  /// supported platform which implements these.
-  // @{
-
-  ///
-  /// Obtain the size in bytes of a file - the way to do this is
-  /// dependent on the OS (TODO: Check this - any posix on Windows?)
-  ///
-  int GetFileSize(const std::string &strFileName) {
-	  return m_fileUtils->GetFileSize(strFileName);
-  }
-  
-  ///Look for files, matching a filename pattern, in whatever system and/or user
-  /// locations as may exist - e.g. on disk, in app package, on web, whatever.
-  /// TODO, can we add a default implementation that looks on the Dasher website?
-  /// \param pattern string matching just filename (not path), potentially
-  /// including '*'s (as per glob)
-  void ScanFiles(AbstractParser *parser, const std::string &strPattern)  {
-	  m_fileUtils->ScanFiles(parser, strPattern);
-  }
-  
-  // @}
-  
-  ///Gets a pointer to the game module. This is the correct way to determine
-  /// whether game mode is currently on or off.
-  /// \return pointer to current game module, if game mode on; or null, if off.
-  CGameModule *GetGameModule() {
-    return m_pGameModule;
-  }
-
-  ///Call to enter game mode. The correct procedure for UI activation of game
-  /// mode, is to first create a game module (the method CreateGameModule is
-  /// provided for this purpose), and then prompt the user to change any
-  /// ModuleSettings for that GameModule (hence needing to create it first in
-  /// order to determine what settings it has); if the user clicks ok,
-  /// then the created module can be passed to this method. (If the user instead
-  /// clicks cancel, then the module should be deleted.)
-  /// Note method is virtual, so subclasses can override e.g. to detect entering
-  /// game mode (they should call this method, then check GetGameModule()).
-  /// \param pGameModule concrete instance of GameModule to use. This can be null,
-  /// in which case we will use the module returned by CreateGameModule (e.g.
-  /// this is done for demo filter). However
-  /// \param pGameModule newly-constructed GameModule to use, or NULL to use one
-  /// returned from CreateGameModule; in either case, will be deleted when we
-  /// leave game mode.
-  virtual void EnterGameMode(CGameModule *pGameModule);
-  
-  ///Exits game mode, including deleting the game module that was in use.
-  /// virtual so subclasses can override to detect leaving game mode.
-  void LeaveGameMode();
-  
-protected:
-
-  /// @name Startup
-  /// Interaction with the derived class during core startup
-  /// @{
-
-  ///
-  /// Finish initializing the DasherInterface; we can't do everything in the constructor,
-  /// because some initialization depends on virtual methods provided by subclasses.
-  /// Both Realize and ChangeScreen must be called after construction before other functions
-  /// will work, but they can be called in either order (as the SettingsStore is passed into
-  /// the c'tor).
-  /// \param ulTime timestamp, much as per NewFrame, used for initializing the RNG (i.e. srand).
-  /// (Is that too hacky?)
-  ///
-  void Realize(unsigned long ulTime);
-
-  ///
-  /// Creates a default set of modules. Override in subclasses to create any
-  /// extra/different modules specific to the platform (eg input device drivers)
-  ///
-  virtual void CreateModules();
-
-  /// @}
-
-  ///Creates the game module. Subclasses must implement to return a concrete
-  /// subclass of CGameModule, perhaps by using platform-specific widgets (e.g.
-  /// the edit box?). Note the view and model can be obtained by calling GetView()
-  /// and reading m_pDasherModel, respectively
-  virtual CGameModule *CreateGameModule() = 0;
-
-  /// Draw a new Dasher frame, regardless of whether we're paused etc.
-  /// \param iTime Current time in ms.
-  /// \param bForceRedraw Passing in true is equivalent to calling ScheduleRedraw() first,
-  /// and forces the nodes/canvas to be re-rendered (even if we haven't moved).
-  void NewFrame(unsigned long iTime, bool bForceRedraw);
-
-  ///Renders the current state of the nodes (optionally), decorations, etc. (Does not move around the nodes.)
-  /// \param ulTime Time of rendering, for time-dependent decorations (e.g. messages)
-  /// \param bRedrawNodes whether to re-render the nodes (expensive!)
-  /// \param policy if redrawing nodes, use this to expand/collapse nodes, and set m_bLastChanged if any were.
-  bool Redraw(unsigned long ulTime, bool bRedrawNodes, CExpansionPolicy &policy);
-
-  ///Called at the end of each frame, after lock-message / nodes+decorations have been rendered.
-  /// Default does nothing, but subclasses can override if they need to do anything else.
-  /// \return true if anything has been rendered to the Screen such that it needs to be blitted
-  /// (i.e. Display() called) - the default just returns false.
-  virtual bool FinishRender(unsigned long ulTime) {return false;}
-
-  /// @}
-
-  ///Called (from NewFrame) if this frame moved and the previous didn't
-  /// (moved = was scheduled in the model, even if no actual change to
-  /// co-ordinates - the latter might occur if e.g. running default filter
-  /// but with the mouse precisely over the crosshair)
-  virtual void onUnpause(unsigned long lTime);
-  
-  CDasherView *GetView() {return m_pDasherView;}
-  
-  CDasherModel * const m_pDasherModel;
-  ///Framerate monitor; created in constructor, req'd for DynamicFilter subclasses
-  CFrameRate * const m_pFramerate;
-  
- private:
-  
-  ///We keep a reference to the (currently unique/global) SettingsStore with which
-  /// this interface was created, as ClSet and ResetParameter need to access it.
-  /// (TODO _could_ move these into CSettingsUser, but that seems uglier given so few clients?)
-  CSettingsStore * const m_pSettingsStore;
-
-  class CPreSetObserver : public Observer<CParameterChange> {
-    CSettingsStore& m_settingsStore;
-  public:
-    CPreSetObserver(CSettingsStore& settingsStore) : m_settingsStore(settingsStore) {};
-    void HandleEvent(CParameterChange evt) override;
-  };
-
-  CPreSetObserver m_preSetObserver;
-  CFileUtils* m_fileUtils;
-
-  //The default expansion policy to use - an amortized policy depending on the LP_NODE_BUDGET parameter.
-  CExpansionPolicy *m_defaultPolicy;
-
-  /// Provide a new CDasherInput input device object.
-
-  void CreateInput();
-
-  void CreateInputFilter();
-
-  void CreateModel(int iOffset);
-  void CreateNCManager();
-
-  void ChangeAlphabet();
-  void ChangeColours();
-  void ChangeView();
-
-  //Compute the screen orientation to use - i.e. combining the user's
-  // preference with the alphabet.
-  Opts::ScreenOrientations ComputeOrientation();
-
-  class WordSpeaker : public TransientObserver<const CEditEvent *> {
-  public:
-    WordSpeaker(CDasherInterfaceBase *pIntf);
-    void HandleEvent(const CEditEvent *);
-  private:
-    ///builds up the word currently being entered
-    std::string m_strCurrentWord;
-  } *m_pWordSpeaker;
-  
-  /// @name Child components
-  /// Various objects which are 'owned' by the core.
-  /// @{
-  CDasherScreen *m_DasherScreen;
-  CDasherView *m_pDasherView;
-  CDasherInput *m_pInput;
-  CInputFilter* m_pInputFilter;
-  CModuleManager m_oModuleManager;
-  CAlphIO *m_AlphIO;
-  CColourIO *m_ColourIO;
-  CControlBoxIO *m_ControlBoxIO;
-  CNodeCreationManager *m_pNCManager;
-  CUserLogBase *m_pUserLog;
-
-  // the game mode module - only
-  // initialized if game mode is enabled
-  CGameModule *m_pGameModule;
-  /// @}
-
-  ///If non-empty, Dasher is locked, and this is the message that should be displayed.
-  std::string m_strLockMessage;
-  /// (Cache) renderable version of previous; created only to render
-  /// (so may still be NULL even if locked)
-  CDasherScreen::Label *m_pLockLabel;
-
-  ///Whether a full redraw (inc of nodes) has been requested externally,
-  /// via ScheduleRedraw, for the next frame
-  bool m_bRedrawScheduled;
-  
-  ///Whether we moved anywhere in the last call to NewFrame.
-  bool m_bLastMoved;
-
-  /// @}
-
-  std::set<TextAction *> m_vTextActions;
-};
-/// @}
-
-#endif /* #ifndef __DasherInterfaceBase_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherModel.h
deleted file mode 100644
index 2c433a8679f9b799a168cbf84e3ee97e0f9f226e..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherModel.h
+++ /dev/null
@@ -1,267 +0,0 @@
-// DasherModel.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DasherModel_h__
-#define __DasherModel_h__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <climits>
-#include <deque>
-#include <cmath>
-#include <vector>
-
-#include "../Common/NoClones.h"
-#include "DasherNode.h"
-#include "DasherTypes.h"
-#include "ExpansionPolicy.h"
-#include "SettingsStore.h"
-#include "AlphabetManager.h"
-
-namespace Dasher {
-  class CDasherModel;
-  class CDasherView;
-}
-
-/// \defgroup Model The Dasher model
-/// @{
-
-/// \brief Dasher 'world' data structures and dynamics.
-///
-/// The DasherModel implements arithmetic coding for Dasher.
-/// It contains a tree of DasherNodes and the current viewpoint, 
-/// and evolves the tree by expanding leaves (somewhat in response to DasherView) and
-/// (eventually) deleting ancestors/parents.
-
-///
-/// DasherModel does not care what the nodes in the tree are or mean, tho it does handle
-/// calling CDasherNode::Output() / Undo() on nodes falling under/leaving the crosshair
-/// (However, determining which nodes are under the crosshair, is done by the CDasherView).
-///
-/// The class is Observable in that it broadcasts a pointer to a CDasherNode when the node's
-/// children are created.
-class Dasher::CDasherModel: public Observable<CDasherNode*>, private NoClones
-{
- public:
-  static const unsigned int NORMALIZATION = 1<<16;
-  static const myint ORIGIN_X=2048, ORIGIN_Y=2048, MAX_Y=4096;
-
-  /// Constructs a new CDasherModel. Note, must be followed by a call to
-  /// SetNode() before the model can be used.
-  CDasherModel();
-  ~CDasherModel();
-
-  /// @name Offset routines
-  /// For "bouncing" the display up and down (dynamic button modes)
-  /// @{
-
-
-  ///
-  /// Apply an offset to the 'target' coordinates - implements the jumps in
-  /// two button dynamic mode.
-  ///
-  void Offset(int iOffset);
-
-  ///
-  /// Make the 'target' root coordinates match those currently visible, so any
-  /// Offset(int) currently in progress (i.e. being smoothed over several
-  /// frames) stops (at whatever point it's currently reached). Appropriate for
-  /// abrupt changes in behaviour (such as backing off in  button modes)
-  void AbortOffset();
-
-  /// @}
-
-  ///
-  /// Reset counter of total nats entered
-  ///
-
-  void ResetNats() {
-    m_dTotalNats = 0.0;
-  }
-
-  ///
-  /// Return the total nats entered
-  ///
-
-  double GetNats() {
-    return m_dTotalNats;
-  }
-
-  ///
-  /// @name Rendering
-  /// Methods to do with rendering the model to a view
-  /// @{
-
-  ///
-  /// Render the model to a given view, and cause output to happen.
-  /// Note, enqueues nodes onto the Expansion Policy, but does not apply it.
-  ///
-  void RenderToView(CDasherView *pView, CExpansionPolicy &policy);
-
-  /// @}
-
-  ///
-  /// @name Dynamics
-  /// For controlling movement of the model
-  /// @{
-
-  ///
-  /// Schedule a zoom over many frames, such that after the last frame,
-  /// the given  range of Dasher coordinates (in the current view)
-  /// will fill the Y-axis. (Used by click mode, button mode etc.)
-  /// Note any safety margin, max-zoom, etc., are the responsibility
-  /// of the caller; this method requires only that y2 > y1.
-  /// \param y1,y2 - target range of y axis, i.e. to move to 0,MAXY
-  /// \param nSteps number of steps to schedule to take us all the way there
-  void ScheduleZoom(dasherint y1, dasherint y2, int nSteps);
-  
-  /// Schedule one frame of movement, with the property that
-  /// <nsteps> calls with the same parameter, should bring
-  /// the given range of Dasher Y-space to fill the axis.
-  /// (Roughly - we use approximations! - but more accurate
-  /// than the first step of a zoom).
-  /// \param y1,y2 - target range of y axis, i.e. to move to 0,MAXY
-  /// \param nSteps number of steps that would take us all the way there
-  /// \param limX X coord at which max speed achieved (any X coord lower than
-  /// this, will be slowed down to that speed).
-  /// \param bExact whether to do "exact" calculations (slower, using floating-point
-  /// pow), or approximate with integers (will move at not-ideal rate in some directions)
-  void ScheduleOneStep(dasherint y1, dasherint y2, int nSteps, int limX, bool bExact);
-
-  ///Cancel any steps previously scheduled (most likely by ScheduleZoom)
-  void ClearScheduledSteps();
-
-  ///
-  /// Called by DasherInterfaceBase to update the bounds of the root node for
-  /// the next step that has been scheduled (whether a multi-step zoom or a
-  /// single step from ScheduleOneStep).
-  /// \return True if this moves the model (by applying a previously-scheduled
-  /// step); false if there were no scheduled steps (=> the model hasn't moved).
-  ///
-  bool NextScheduledStep();
-
-  /// @}
-
-  /// Returns the node that was under the crosshair in the
-  /// last frame that was rendered. (I.e., this is the last
-  /// node output.)
-  CDasherNode *Get_node_under_crosshair();
-  
-  ///
-  /// This is pretty horrible - a rethink of the start/reset mechanism
-  /// is definitely in order. Used to prevent the root node from being
-  /// too large in various modes before Dasher is started.
-  ///
-
-  void LimitRoot(int iMaxWidth);
-
-  ///
-  /// Rebuild the tree of nodes from a given root
-  ///
-
-  void SetNode(CDasherNode *pNewRoot);
-
-  ///
-  /// The current offset of the cursor/insertion point in the text buffer
-  /// - measured in (unicode) characters, _not_ octets.
-  ///
-
-  int GetOffset();
-
-  /// Create the children of a Dasher node
-  void ExpandNode(CDasherNode * pNode);
-
- private:
-
-  // The root of the Dasher tree
-  CDasherNode *m_Root;
-
-  // Old root notes
-  // TODO: This should probably be rethought at some point - it doesn't really make a lot of sense
-  std::deque < CDasherNode * >oldroots;
-
-  // Rootmin and Rootmax specify the position of the root node in Dasher coords
-  myint m_Rootmin;
-  myint m_Rootmax;
-
-  // Permitted range for root node - model cannot zoom beyond this
-  // point without falling back to a new root node.
-  myint m_Rootmin_min;
-  myint m_Rootmax_max;
-
-  // TODO: Does this need to be brought back? Make it relative to visible region?
-  // The active interval over which Dasher nodes are maintained - this is most likely bigger than (0,DasherY)
-  // CRange m_Active;
-
-  // Offset used when presenting the model to the user, specified as
-  // Displayed rootmin/max - actual rootmin/rootmax
-  myint m_iDisplayOffset;
-
-  CDasherNode *m_pLastOutput;
-
-  // Queue of steps scheduled, represented as pairs
-  // of min/max coordinates for root node
-  std::deque<std::pair<myint,myint> > m_deGotoQueue;
-
-  /// TODO: Not sure what this actually does
-  double m_dAddProb;
-
-  // Model parameters... (cached from settings store)
-
-  // Whether characters entered by alphabet manager are expected to
-  // require conversion.
-  // TODO: Need to rethink this at some point.
-  bool m_bRequireConversion;
-
-  // Information entered so far in this model
-  double m_dTotalNats;
-
-  ///
-  /// Make a child of the root into a new root
-  ///
-
-  void Make_root(CDasherNode *pNewRoot);
-
-  ///
-  /// Make the parent of the current root into the new root (rebuilding if necessary) - used during backing off
-  /// Return true if successful, false if couldn't.
-  ///
-  bool Reparent_root();
-
-  /// Handle the output caused by a change in node over the crosshair. Specifically,
-  /// deletes from m_pLastOutput back to closest ancestor of pNewNode,
-  /// then outputs from that ancestor to that node
-  /// @param pNewNode innermost node now covering the crosshair
-  void OutputTo(CDasherNode *pNewNode);
-
-
-  ///
-  /// Clear the queue of old roots - used when those nodes become
-  /// invalid, eg during changes to conrol mode
-  ///
-
-  void ClearRootQueue();
-
-};
-/// @}
-
-#endif /* #ifndef __DasherModel_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherModule.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherModule.h
deleted file mode 100644
index 3ac3222b456b282ced7ed33817e316452142805e..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherModule.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// DasherModule.h
-// 
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//  
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//  
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef DASHER_MODULE_H
-#define DASHER_MODULE_H
-
-#include <vector>
-
-#include "../Common/ModuleSettings.h"
-
-class CDasherModule;
-typedef std::vector<CDasherModule*>::size_type ModuleID_t;
-
-/// \ingroup Core
-/// @{
-class CDasherModule {
- public:
-  CDasherModule(ModuleID_t iID, int iType, const char *szName);
-
-  virtual ModuleID_t GetID();
-  virtual void SetID(ModuleID_t);
-  virtual int GetType();
-  virtual const char *GetName();
-
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount) {
-    return false;
-  };
-
- private:
-  ModuleID_t m_iID;
-  int m_iType;
-  const char *m_szName;
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherNode.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherNode.h
deleted file mode 100644
index 3b6ff854babc00b96a49dcaac44e6ee8a7695014..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherNode.h
+++ /dev/null
@@ -1,345 +0,0 @@
-// DasherNode.h
-//
-// Copyright (c) 2007 David Ward
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DasherNode_h__
-#define __DasherNode_h__
-
-#include "../Common/Common.h"
-#include "../Common/NoClones.h"
-#include "LanguageModelling/LanguageModel.h"
-#include "DasherTypes.h"
-#include "NodeManager.h"
-#include "Alphabet/AlphabetMap.h"
-#include "DasherScreen.h"
-
-namespace Dasher {
-  class CDasherNode;
-  class CDasherInterfaceBase;
-}
-#include <deque>
-#include <iostream>
-#include <vector>
-
-// Node flag constants
-/// NF_COMMITTED: The node is 'above' the root, i.e. all onscreen parts of it
-/// are covered by the root; this is when we train the language model etc
-#define NF_COMMITTED 1
-
-/// NF_SEEN - Node is under the crosshair and has (already) been output
-#define NF_SEEN 2
-
-/// NF_CONVERTED - Node has been converted (eg Japanese mode)
-#define NF_CONVERTED 4
-
-/// NF_GAME - Node is on the path in game mode
-#define NF_GAME 8
-
-/// NF_ALLCHILDREN - Node has all children. TODO Since nodes only
-/// ever have all their children, or none of them, can we not
-/// just check it has children, and get rid of this flag?
-#define NF_ALLCHILDREN 16
-
-/// NF_SUPER - Node covers entire visible area (and so is eligible
-/// to be made the new root)
-#define NF_SUPER 32
-
-/// NF_VISIBLE - an invisible node is one which lets its parent's
-/// colour show through, and has no outline drawn round it (it may
-/// still have a label). Note that this flag is set (i.e. the node
-/// is drawn and outlined) by default in the constructor.
-#define NF_VISIBLE 64
-
-///Flags to assign to a newly created node:
-#define DEFAULT_FLAGS NF_VISIBLE
-
-/// \ingroup Model
-/// @{
-
-/// @brief A node in the Dasher model
-///
-/// The Dasher node represents a box drawn on the display. This class
-/// contains the information required to render the node, as well as
-/// navigation within the model (parents and children
-/// etc.). Additional information is stored in m_pUserData, which is
-/// interpreted by the node manager associated with this class. Any
-/// logic specific to a particular node manager should be stored here.
-///
-/// @todo Encapsulate presentation data in a structure?
-/// @todo Check that all methods respect the pseudochild attribute
-class Dasher::CDasherNode:private NoClones {
- public:
-
-  /// Display attributes of this node, used for rendering.
-  /// Colour; note invisible nodes just have the same colour as their parent.
-  /// (so we know what colour to use when their parents are deleted)
-  inline int getColour() {return m_iColour;}
-  virtual CDasherScreen::Label *getLabel() { return m_pLabel; }
-  ///Whether labels on child nodes should be displaced to the right of this node's label.
-  /// (Default implementation returns true, subclasses should override if appropriate)
-  virtual bool bShove() {return true;}
-
-  ///Multiplier to apply to the speed (in dynamic modes, inc. default mouse
-  /// control) when the crosshair is inside this node (but not inside any child.)
-  /// This creates a sort of "viscosity", i.e. makes some nodes harder to move
-  /// through than others - used to slow down movement inside control nodes,
-  /// making it harder to make mistakes therein. The default just returns 1.0,
-  /// i.e. no change.
-  virtual double SpeedMul() {return 1.0;}
-  
-  inline int offset() const {return m_iOffset;}
-  CDasherNode *onlyChildRendered; //cache that only one child was rendered (as it filled the screen)
-
-  /// Container type for storing children. Note that it's worth
-  /// optimising this as lookup happens a lot
-  typedef std::deque<CDasherNode*> ChildMap;
-
-  /// @brief Constructor
-  ///
-  /// Note the flags of the new node are initialized to DEFAULT_FLAGS,
-  /// and the node has no parent, and range 0-CDasherModel::NORMALIZATION:
-  /// caller will likely want to change these via a call to Reparent().
-  ///
-  /// \param pParent Parent of the new node; automatically adds to end of parent's child list
-  /// \param iOffset Index into text buffer of character to LHS of cursor _after_ this node is Output().
-  /// \param iColour background colour of node (for transparent nodes, same colour as parent)
-  /// \param pLabel label to render onto node, NULL if no label required.
-  CDasherNode(int iOffset, int iColour, CDasherScreen::Label *pLabel);
-
-  /// @brief Destructor
-  ///
-  virtual ~CDasherNode();
-
-  void Trace() const;           // diagnostic
-
-  /// @name Routines for manipulating node status
-  /// @{
-
-  /// @brief Set a node flag
-  ///
-  /// Set various flags corresponding to the state of the node. 
-  /// 
-  /// @param iFlag The flag to set
-  /// @param bValue The new value of the flag
-  ///
-  virtual void SetFlag(int iFlag, bool bValue);
-
-  /// @brief Get the value of a flag for this node
-  ///
-  /// @param iFlag The flag to get
-  ///
-  /// @return The current value of the flag
-  ///
-  inline bool GetFlag(int iFlag) const;
-
-  /// @}
-
-  /// @name Routines relating to the size of the node
-  /// @{
-
-  // Lower and higher bounds, and the range
-
-  /// @brief Get the lower bound of a node
-  ///
-  /// @return The lower bound
-  ///
-  inline unsigned int Lbnd() const;
-
-  /// @brief Get the upper bound of a node
-  ///
-  /// @return The upper bound
-  ///
-  inline unsigned int Hbnd() const;
-
-  /// @brief Get the range of a node (upper - lower bound)
-  ///
-  /// @return The range
-  ///
-  /// @todo Should this be here (trivial arithmethic of existing methods)
-  ///
-  inline unsigned int Range() const;
-
-  /// @brief Get the size of the most probable child
-  ///
-  /// @return The size
-  ///
-  int MostProbableChild();
-  /// @}
-
-  /// @name Routines for manipulating relatives
-  /// @{
-
-  inline const ChildMap & GetChildren() const;
-  inline unsigned int ChildCount() const;
-  inline CDasherNode *Parent() const;
-  
-  /// Makes the node be the child of a new parent, and set its range amongst
-  /// that parent's children. This node will be positioned AFTER any/all
-  /// existing children of the new parent; so TODO - iLower redundant?
-  /// Before the call is made, the (child) node must have no parent.
-  void Reparent(CDasherNode *pNewParent, unsigned int iLower, unsigned int iUpper);
-  
-  /// @brief Orphan a child of this node
-  ///
-  /// Deletes all other children, and the node itself
-  ///
-  /// @param pChild The child to keep
-  ///
-  void OrphanChild(CDasherNode * pChild);
-
-  /// @brief Delete the nephews of a given child
-  ///
-  /// @param pChild The child to keep
-  ///
-  void DeleteNephews(CDasherNode *pChild);
-
-  /// @brief Delete the children of this node
-  ///
-  ///
-  void Delete_children();
-  /// @}
-
-  ///
-  /// Sees if a *child* / descendant of the specified node (not that node itself)
-  /// represents the specified character. If so, set the child & intervening nodes'
-  /// NF_GAME flag, and return true; otherwise, return false.
-  ///
-  bool GameSearchChildren(symbol sym);
-
-  /// @name Management routines (once accessed via NodeManager)
-  /// @{
-  /// Gets the node manager for this object. Meaning defined by subclasses,
-  ///  which should override and refine the return type appropriately;
-  ///  the main use is to provide runtime type info to check casting!
-  virtual CNodeManager *mgr() const = 0;
-  ///
-  /// Provide children for the supplied node
-  ///
-
-  virtual void PopulateChildren() = 0;
-
-  /// The number of children which a call to PopulateChildren can be expected to generate.
-  /// (This is not required to be 100% accurate, but any discrepancies will likely cause
-  /// the node budgetting algorithm to behave sub-optimally)
-  virtual int ExpectedNumChildren() = 0;
-
-  ///
-  /// Called whenever a node belonging to this manager first
-  /// moves under the crosshair
-  ///
-
-  virtual void Output() {};
-  virtual void Undo() {};
-
-  ///Called by logging code to get information about node which has just been
-  /// output. Subclasses performing output, should override to return appropriate
-  /// information. (Will only be called if necessary i.e. logging enabled).
-  /// The default returns a very uninformative SymbolProb with just display text.
-  virtual SymbolProb GetSymbolProb() const {
-    return SymbolProb(0,m_pLabel->m_strText,0.0);
-  }
-
-  virtual CDasherNode *RebuildParent() {
-    return 0;
-  };
-
-  ///
-  /// Get as many symbols of context, up to the _end_ of the specified range,
-  /// as possible from this node and its uncommitted ancestors
-  ///
-  virtual void GetContext(CDasherInterfaceBase *pInterface, const CAlphabetMap *pAlphabetMap, std::vector<symbol> &vContextSymbols, int iOffset, int iLength);
-
-  ///
-  /// See if this node represents the specified symbol; if so, set it's NF_GAME flag and
-  /// return true; otherwise, return false.
-  ///
-  virtual bool GameSearchNode(symbol sym) {return false;}
-
-  virtual symbol GetAlphSymbol() {
-    throw "Hack for pre-MandarinDasher ConversionManager::BuildTree method, needs to access CAlphabetManager-private struct";
-  }
-
-  /// @}
-
- private:
-  inline ChildMap &Children();
-
-  unsigned int m_iLbnd;
-  unsigned int m_iHbnd;   // the cumulative lower and upper bound prob relative to parent
-
-  ChildMap m_mChildren;         // pointer to array of children
-  CDasherNode *m_pParent;       // pointer to parent
-
-  // Binary flags representing the state of the node
-  int m_iFlags;
-
-  int m_iOffset;
-
- protected:
-  const int m_iColour;
-  CDasherScreen::Label * m_pLabel;
-};
-/// @}
-
-namespace Dasher {
-  /// Return the number of CDasherNode objects currently in existence.
-  int currentNumNodeObjects();
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Inline functions
-/////////////////////////////////////////////////////////////////////////////
-
-namespace Dasher {
-
-inline unsigned int CDasherNode::Lbnd() const {
-  return m_iLbnd;
-}
-
-inline unsigned int CDasherNode::Hbnd() const {
-  return m_iHbnd;
-}
-
-inline unsigned int CDasherNode::Range() const {
-  return m_iHbnd - m_iLbnd;
-}
-
-inline CDasherNode::ChildMap &CDasherNode::Children() {
-  return m_mChildren;
-}
-
-inline const CDasherNode::ChildMap &CDasherNode::GetChildren() const {
-  return m_mChildren;
-}
-
-inline unsigned int CDasherNode::ChildCount() const {
-  return m_mChildren.size();
-}
-
-inline bool CDasherNode::GetFlag(int iFlag) const {
-  return ((m_iFlags & iFlag) != 0);
-}
-
-inline CDasherNode *CDasherNode::Parent() const {
-  return m_pParent;
-}
-
-}
-#endif /* #ifndef __DasherNode_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherScreen.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherScreen.h
deleted file mode 100644
index e79d9e0be9801c46e4da92c5c06fcca6bd8d9c38..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherScreen.h
+++ /dev/null
@@ -1,225 +0,0 @@
-// DasherScreen.h
-//
-// Copyright (c) 2001-2004 David Ward
-
-#ifndef __DasherScreen_h_
-#define __DasherScreen_h_
-
-#include "DasherTypes.h"
-#include "../DasherCore/ColourIO.h"
-#include <set>
-
-// DJW20050505 - renamed DrawText to DrawString - windows defines DrawText as a macro and it's 
-// really hard to work around
-// Also make CDasher screen operate in UTF8 strings only
-
-namespace Dasher {
-  class CDasherScreen;
-  class CLabelListScreen;
-  class CDasherInterfaceBase;
-}
-
-/// \ingroup View
-/// @{
-/// Abstract interface for drawing operations, implemented by platform-specific canvases.
-/// Instances have _mutable_ dimensions; changes should be reported to the
-/// interface's ScreenResized method.
-/// Note the DrawString and TextSize methods: these now take platform-specific
-/// Label objects returned from MakeLabel. Thus, it is up to external clients to
-/// cache and reuse Labels. (This replaces the previous scheme where these methods
-/// took arbitrary std::strings, which were cached in a hashmap internal to each
-/// platform's screen. The new scheme allows clients to control cache preloading
-/// and flushing.)
-class Dasher::CDasherScreen
-{
-public:
-  //! \param width Width of the screen
-  //! \param height Height of the screen
-  CDasherScreen(screenint width, screenint height)
-  :m_iWidth(width), m_iHeight(height) {
-  } 
-
-  virtual ~ CDasherScreen() {
-  }
-
-/*   //! Set the widget interface used for communication with the core */
-/*   virtual void SetInterface(CDasherInterfaceBase * DasherInterface) { */
-/*     m_pDasherInterface = DasherInterface; */
-/*   } */
-
-  //! Return the width of the screen
-  screenint GetWidth() {
-    return m_iWidth;
-  }
-  //! Return the height of the screen screen
-  int GetHeight() {
-    return m_iHeight;
-  }
-  //! Structure defining a point on the screen 
-  typedef struct tagpoint {
-    screenint x;
-    screenint y;
-  } point;
-  
-  /// (Default implementation returns false)
-  ///\return true if this Screen can efficiently support fonts of many sizes (by continuous scaling);
-  /// false if clients should try to minimise the number of distinct font sizes required.
-  virtual bool MultiSizeFonts() {return false;}
-  
-  ///Abstract class for objects representing strings that can be drawn on the screen.
-  /// Platform-specific instances are created by the MakeLabel(String) method, which
-  /// may then be passed to GetSize() and DrawText().
-  class Label {
-    friend class CDasherScreen;
-  protected:
-    Label(const std::string &strText, unsigned int iWrapSize)
-    : m_strText(strText), m_iWrapSize(iWrapSize) {};
-  public:
-    const std::string m_strText;
-    ///If 0, Label is to be rendered on a single line.
-    /// Any other value, Label need only be renderable at that size, but should 
-    /// be _wrapped_ to fit the screen width. (It is up to platforms to decide
-    /// whether to support DrawString/TextSize at any other size but this is
-    /// NOT required.)
-    unsigned int m_iWrapSize;
-    ///Delete the label. This should free up any resources associated with
-    /// drawing the string onto the screen, e.g. layouts or textures.
-    virtual ~Label() {}
-  };
-
-  ///Make a label for use with this screen.
-  /// \param strText UTF8-encoded text.
-  /// \param iWrapSize 0 => create a Label that will be rendered on a single line,
-  /// potentially at multiple sizes; appropriate for DasherNode labels.
-  /// Any other value => Label SHOULD ONLY BE USED AT THAT SIZE, but should 
-  /// be _wrapped_ onto multiple lines if necessary to fit within the screen width.
-  /// (DrawString/TextSize with any other font size may produce unpredictable results,
-  /// depending on platform.)
-  virtual Label *MakeLabel(const std::string &strText, unsigned int iWrapSize=0) {return new Label(strText,iWrapSize);}
-
-  ///Get Width and Height of a Label previously created by MakeLabel. Note behaviour
-  /// undefined if the Label is not one returned from a call to MakeLabel _on_this_Screen_.
-  virtual std::pair<screenint,screenint> TextSize(Label *label, unsigned int iFontSize) = 0;
-
-  /// Draw a label at position (x1,y1)
-  /// \param label a Label previously created by MakeLabel. Note behaviour
-  /// undefined if the Label is not one returned from a call to MakeLabel _on_this_Screen_.
-  /// \param x Coordinate of top left corner (i.e., left hand side)
-  /// \param y Coordinate of top left corner (i.e., top)
-  virtual void DrawString(Label *label, screenint x, screenint y, unsigned int iFontSize, int iColour) = 0;
-
-  // Send a marker to indicate 'phases' of drawing. 
-
-  virtual void SendMarker(int /*iMarker*/ ) {
-  };
-
-  /// Draw a filled rectangle
-  ///
-  /// Draw a coloured rectangle on the screen
-  /// \param x1 top left of rectangle (x coordinate)
-  /// \param y1 top left corner of rectangle (y coordinate)
-  /// \param x2 bottom right of rectangle (x coordinate)
-  /// \param y2 bottom right of rectangle (y coordinate)
-  /// \param Colour the colour to be used (numeric), or -1 for no fill
-  /// \param iOutlineColour The colour for the node outlines; -1 = use default
-  /// \param iThickness Line thickness for outline; <1 for no outline
-  virtual void DrawRectangle(screenint x1, screenint y1, screenint x2, screenint y2, int Colour, int iOutlineColour, int iThickness) = 0;
-
-  ///Draw a circle, potentially filled and/or outlined
-  /// \param iFillColour colour in which to fill; -1 for no fill
-  /// \param iLineColour colour to draw outline; -1 = use default
-  /// \param iLineWidth line width for outline; <1 for no outline
-  virtual void DrawCircle(screenint iCX, screenint iCY, screenint iR, int iFillColour, int iLineColour, int iLineWidth) = 0;
-
-  /// Draw a line of fixed colour (usually black). Intended for static UI elements such as a cross-hair
-  /// Draw a line between each of the points in the array
-  ///
-  /// \param Points an array of points
-  /// \param Number the number of points in the array
-  /// \param iWidth The line width
-  /// \todo This is dumb - why does this need to be a separate function to the coloured version?
-
-  virtual void Polyline(point * Points, int Number, int iWidth) {
-    Polyline(Points, Number, iWidth, 0);
-  };
-
-  // Draw a line of arbitrary colour.
-  //! Draw a line between each of the points in the array
-  //!
-  //! \param Points an array of points
-  //! \param Number the number of points in the array
-  //! \param iWidth Width of the line
-  //! \param Colour the colour to be drawn
-
-  virtual void Polyline(point * Points, int Number, int iWidth, int Colour) = 0;
-
-  /// Draw a polygon - given vertices and colour id
-  ///
-  /// \param Points Vertices of polygon in clockwise order. (No need to repeat the first point at the end)
-  /// \param Number number of points in the array
-  /// \param fillColour colour to fill polygon (numeric); -1 for don't fill
-  /// \param outlineColour colour to draw polygon outline (right the way around, i.e. repeating first point)
-  /// \param lineWidth thickness of outline; 0 or less => don't draw outline.
-  virtual void Polygon(point * Points, int Number, int fillColour, int outlineColour, int lineWidth) = 0;
-
-  //! Signal that a frame is finished - the screen should be updated
-  virtual void Display() = 0;
-
-  /// Set a colour scheme
-  ///
-  /// \param pColourScheme A colour scheme that should be used
-  virtual void SetColourScheme(const Dasher::CColourIO::ColourInfo *pColourScheme) = 0;
-  
-  // Returns true if cursor is over visible part of this window.
-  virtual bool IsWindowUnderCursor() = 0;
-
-private:
-  //! Width and height of the screen
-  screenint m_iWidth, m_iHeight;
-
-protected:
-  ///Subclasses should call this if the canvas dimensions have changed.
-  /// It is up to subclasses to make sure they also call
-  /// ScreenResized on the intf.
-  void resize(screenint width, screenint height) {
-    m_iWidth = width; m_iHeight = height;
-  }
-};
-
-/// Subclass that preserves a list of all labels returned from MakeLabel
-/// (and not yet deleted) so that they can be mutated en mass (by further
-/// subclasses) if necessary. Note we have to return a new Labels each time,
-/// and cannot hash/flyweight together similar Labels, because _clients_ are
-/// in control of deletion.
-class Dasher::CLabelListScreen : public Dasher::CDasherScreen {
-protected:
-  CLabelListScreen(screenint width, screenint height) : CDasherScreen(width,height) {
-  }
-  class Label : public CDasherScreen::Label {
-  public: //to instances of CLabelListScreen and subclasses
-    Label(CLabelListScreen *pScreen, const std::string &strText, unsigned int iWrapSize)
-    : CDasherScreen::Label(strText, iWrapSize), m_pScreen(pScreen) {
-      m_pScreen->m_sLabels.insert(this);
-    }
-    ~Label() {
-      std::set<Label *>::iterator it = m_pScreen->m_sLabels.find(this);
-      DASHER_ASSERT(it != m_pScreen->m_sLabels.end());
-      m_pScreen->m_sLabels.erase(it);
-    }
-    CLabelListScreen * const m_pScreen;
-  };
-  ///An iterator pointing to the first extant (non-deleted) label created
-  /// from this screen. This allows iteration through modifiable labels,
-  /// but without being able to access or hence modify the set.
-  std::set<Label *>::iterator LabelsBegin() {return m_sLabels.begin();}
-
-  ///An iterator pointing just beyond the last extant (non-deleted) label
-  /// created from this screen. This allows iteration through modifiable labels,
-  /// but without being able to access or hence modify the set.
-  std::set<Label *>::iterator LabelsEnd() {return m_sLabels.end();}
-private:
-  std::set<Label *> m_sLabels;
-};
-/// @}
-
-#endif /* #ifndef __DasherScreen_h_ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherTypes.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherTypes.h
deleted file mode 100644
index 41af4d734c425acbae82fded858e14749c3eb036..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherTypes.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// DasherTypes.h
-//
-// Copyright (c) 2001-2002 David Ward
-
-#ifndef __DasherTypes_h__
-#define __DasherTypes_h__
-
-// We use our own version of hungarian notation to indicate
-// the type of variables:
-//
-//    i       - integer and enumerated types 
-//    c       - char
-//    str     - STL string
-//    sz      - char* string
-//    b       - boolean
-//    p       - pointer (to a primative type or to an object)
-//    pp      - pointer to a pointer (and so on)
-//    v       - STL vector
-//    map     - STL map
-//    d       - float or double
-//    s       - structure 
-//    o       - object
-//    h       - HANDLE type in Windows
-//
-// Class member variables and global variables should 
-// have the additional prefixes:
-//
-//    m_      - member variables 
-//    g_      - global variablse
-//    s_      - static member variables
-//
-// Variables names (local and member) should capitalize each 
-// new word and don't use underscores (except as above).
-//
-
-#include "../Common/Types/int.h"
-#include <string>
-#include <vector>
-
-namespace Dasher {
-  // DasherModel co-ordinates are of type myint
-  typedef int64 myint;
-  typedef int64 dasherint;
-
-  // All screen co-ordinates are of type screenint
-  typedef int32 screenint;
-
-  // Using a signed symbol type allows "Out of band" ie negative {{{
-  // values to be used to flag non-symbol data. For example commands
-  // in dasher nodes.
-  //typedef unsigned int symbol; // }}}
-  typedef int symbol;
-
-  namespace Opts {
-    // Numbers should be applied to elements of the following two enumerations as these preferences may be stored to file. Constancy between
-    // versions is a good idea. It should *not* be assumed that the numbers map onto anything useful. Different codepages may be appropriate on different systems for different character sets.
-    enum FileEncodingFormats { UserDefault = -1, UTF8 = 65001, UTF16LE = 1200, UTF16BE = 1201 }; 
-    enum AlphabetTypes { MyNone = 0, Arabic = 1256, Baltic = 1257, CentralEurope = 1250, ChineseSimplified = 936, ChineseTraditional = 950, Cyrillic = 1251, Greek = 1253, Hebrew = 1255, Japanese = 932, Korean = 949, Thai = 874, Turkish = 1254, VietNam = 1258, Western = 1252 };
-    enum ScreenOrientations { AlphabetDefault = -2, LeftToRight = 0, RightToLeft = 1, TopToBottom = 2, BottomToTop = 3 };
-    enum FontSize { Normal = 1, Big = 2, VBig = 4 };
-  }
-
-  // Types added so model can report back what it has done for
-  // user logging purposes.
-  struct SymbolProb
-  {
-  public:
-    SymbolProb(symbol _sym, const std::string &sDisp, double _prob)
-      : sym(_sym), strDisplay(sDisp), prob(_prob) {}
-    symbol          sym;
-    std::string     strDisplay; //easiest to generate at source!
-    double          prob;
-  };
-
-  typedef std::vector<SymbolProb>         VECTOR_SYMBOL_PROB;
-
-}
-
-#endif /* #ifndef __DasherTypes_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherView.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherView.h
deleted file mode 100644
index 66b9a1bc59136ce94d5e4db7711660a9a2348489..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherView.h
+++ /dev/null
@@ -1,204 +0,0 @@
-// DasherView.h
-//
-// Copyright (c) 2001-2005 David Ward
-
-#ifndef __DasherView_h_
-#define __DasherView_h_
-
-namespace Dasher {
-  class CDasherView;
-  class CDasherNode;
-}
-
-#include "DasherTypes.h"
-#include "ExpansionPolicy.h"
-#include "DasherScreen.h"
-#include "Observable.h"
-#include "Event.h"
-
-/// \defgroup View Visualisation of the model
-/// @{
-
-/// \brief View base class.
-///
-/// Dasher views render the tree of Dasher nodes onto a screen.
-///
-/// Note that we really should aim to avoid having to try and keep
-/// multiple pointers to the same object (model etc.) up-to-date at
-/// once. We should be able to avoid the need for this just by being
-/// sane about passing pointers as arguments to the relevant
-/// functions, for example we could pass a pointer to the canvas every
-/// time we call the render routine, rather than worrying about
-/// notifying this object every time it changes. The same logic can be
-/// applied in several other places.
-///
-/// There are really three roles played by CDasherView: providing high
-/// level drawing functions, providing a mapping between Dasher
-/// co-ordinates and screen co-ordinates and providing a mapping
-/// between true and effective Dasher co-ordinates (eg for eyetracking
-/// mode). We should probably consider creating separate classes for
-/// these.
-
-///Also an Observable: CDasherView* events should be generated whenever the screen
-/// geometry changes: e.g. aspect ratio, size, degree of nonlinearity,
-/// orientation, or generally whenever values returned by Dasher2Screen/Screen2Dasher
-/// might have changed (thus, any code caching such values should recompute/invalidate them).
-/// The "event" is just a pointer to the View itself, but can also be used
-/// to send round a pointer to a new view (i.e. replacing this one).
-/// CGameNodeDrawEvents are broadcast whenever a node with NF_GAME set is rendered (or has
-/// its y-coordinate range computed); is using an Observable worth it, or should we just
-/// call directly to the game module?
-class Dasher::CDasherView : public Observable<CDasherView *>, public Observable<CGameNodeDrawEvent*> {
-public:
-
-  /// Constructor
-  /// 
-  /// \param DasherScreen Pointer to the CDasherScreen object used to do rendering
-  CDasherView(CDasherScreen * DasherScreen, Opts::ScreenOrientations orient);
-
-  virtual ~CDasherView() {
-  }
-
-  virtual void SetOrientation(Opts::ScreenOrientations newOrient) {m_Orientation=newOrient;}
-  Opts::ScreenOrientations GetOrientation() {return m_Orientation;}
-
-  /// 
-  /// @name Coordinate system conversion
-  /// Convert between screen and Dasher coordinates
-  /// @{
-
-  /// 
-  /// Convert a screen co-ordinate to Dasher co-ordinates
-  ///
-
-  virtual void Screen2Dasher(screenint iInputX, screenint iInputY, myint & iDasherX, myint & iDasherY) = 0;
-
-  ///
-  /// Convert Dasher co-ordinates to screen co-ordinates
-  ///
-
-  virtual void Dasher2Screen(myint iDasherX, myint iDasherY, screenint & iScreenX, screenint & iScreenY) = 0;
-
-  ///
-  /// Convert Dasher co-ordinates to polar co-ordinates (r,theta), with 0<r<1, 0<theta<2*pi
-  ///
-  virtual void Dasher2Polar(myint iDasherX, myint iDasherY, double &r, double &theta) = 0;
-
-  virtual bool IsSpaceAroundNode(myint y1, myint y2)=0;
-
-  virtual void VisibleRegion( myint &iDasherMinX, myint &iDasherMinY, myint &iDasherMaxX, myint &iDasherMaxY ) = 0;
-
-  /// @}
-
-  /// Change the screen - must be called if the Screen is replaced (not resized).
-  /// Default implementation just stores pointer. Note that a call to ChangeScreen
-  /// is usually followed by a call to ScreenResized as well, so stuff that only
-  /// depends on screen size/resolution can be done there instead.
-  /// \param NewScreen Pointer to the new CDasherScreen.
-  virtual void ChangeScreen(CDasherScreen * NewScreen);
-  
-  ///Call when the screen dimensions have been changed, to recalculate scaling factors etc.
-  /// The default implementation does nothing.
-  /// \param pScreen the screen whose dimensions have changed. TODO we expect this to be
-  /// the same one-and-only screen that we are using anyway, so remove parameter?
-  virtual void ScreenResized(CDasherScreen *pScreen) {}
-
-  void TransferObserversTo(CDasherView *pNewView) {
-    Observable<CDasherView*>::DispatchEvent(pNewView);
-  }
-  /// @name High level drawing
-  /// Drawing more complex structures, generally implemented by derived class
-  /// @{
-
-  /// Top-level/public render function - render all the nodes.
-  /// @param pRoot outermost node to render. should cover screen if possible;
-  /// function will blank out around it (in white) if not
-  /// @return the innermost node covering the crosshair
-  virtual CDasherNode *Render(CDasherNode *pRoot, myint iRootMin, myint iRootMax, CExpansionPolicy &policy)=0;
-
-  /// @}
-
-  ////// Return a reference to the screen - can't be protected due to circlestarthandler
-  
-  CDasherScreen *Screen() {
-    return m_pScreen;
-  }
-
-  ///
-  /// @name Low level drawing
-  /// Basic drawing primitives specified in Dasher coordinates.
-  /// @{
-
-  ///Draw a straight line in Dasher-space - which may be curved on the screen...
-  void DasherSpaceLine(myint x1, myint y1, myint x2, myint y2, int iWidth, int iColour);
-  
-  virtual void DasherSpaceArc(myint cy, myint r, myint x1, myint y1, myint x2, myint y2, int iColour, int iLineWidth)=0;
-
-  ///
-  /// Draw a polyline specified in Dasher co-ordinates
-  ///
-
-  void DasherPolyline(myint * x, myint * y, int n, int iWidth, int iColour);
-
-  /// Draw a polyarrow
-  /// The parameters x and y allow the client to specify points in Dasher space
-  /// through which the arrow's main line should be drawn. For example, to draw an
-  /// arrow through the Dasher coordinates (1000, 2000) and (3000, 4000), one would pass in:
-  ///
-  /// myint x[2] = {1000, 3000};
-  /// myint y[2] = {2000, 4000};
-  ///
-  /// \param x - an array of x coordinates to draw the arrow through
-  /// \param y - an array of y coordinates to draw the arrow through
-  /// \param iWidth - the width to make the arrow lines - typically of the form
-  ///        GetLongParameter(LP_LINE_WIDTH)*CONSTANT
-  /// \param iColour line colour, as per Polyline (-1 => use "default" 0)
-  /// \param dArrowSizeFactor - the factor by which to scale the "hat" on the arrow
-  ///
-  void DasherPolyarrow(myint * x, myint * y, int n, int iWidth, int iColour, double dArrowSizeFactor = 0.7071);
-
-  ///
-  /// Draw a rectangle specified in Dasher co-ordinates
-  /// \param Color color in which to fill, -1 => no fill
-  /// \param iOutlineColor colour in which to draw outline, -1 => use default
-  /// \param iThickness line width for outline, < 1 => no outline.
-  ///
-  void DasherDrawRectangle(myint iDasherMaxX, myint iDasherMinY, myint iDasherMinX, myint iDasherMaxY, const int Color, int iOutlineColour, int iThickness);
-
-  ///
-  /// Draw a centred rectangle specified in Dasher co-ordinates (used for mouse cursor)
-  /// \param Color fill color for rectangle (-1 => don't fill)
-  /// \param bDrawOutline if true, rectangle will be outlined with width 1 and default line colour (-1 => 3)
-  ///
-
-  void DasherDrawCentredRectangle(myint iDasherX, myint iDasherY, screenint iSize, const int Color, bool bDrawOutline);
-
-  /// @}
-
-protected:
-  /// Clips a line (specified in Dasher co-ordinates) to the visible region
-  /// by intersecting with all boundaries.
-  /// \return true if any part of the line was within the visible region; in this case, (x1,y1)-(x2,y2) delineate exactly that part
-  /// false if the line would be entirely outside the visible region; x1, y1, x2, y2 undefined.
-  bool ClipLineToVisible(myint &x1, myint &y1, myint &x2, myint &y2); 
-  
-  ///Convert a straight line in Dasher-space, to coordinates for a corresponding polyline on the screen
-  /// (because of nonlinearity, this may require multiple line segments)
-  /// \param x1,y1 Dasher co-ordinates of start of line segment; note that these are guaranteed within VisibleRegion.
-  /// \param x2,y2 Dasher co-ordinates of end of line segment; also guaranteed within VisibleRegion.
-  /// \param vPoints vector to which to add screen points. Note that at the point that DasherLine2Screen is called,
-  /// the screen coordinates of the first point should already have been added to this vector; DasherLine2Screen
-  /// will then add exactly one CDasherScreen::point for each line segment required.
-  virtual void DasherLine2Screen(myint x1, myint y1, myint x2, myint y2, std::vector<CDasherScreen::point> &vPoints)=0;
-  
-  ///Number of nodes actually rendered. Updated only by subclasses; TODO does
-  /// this belong here? (perhaps for subclass-agnostic clients to inspect...)
-  int m_iRenderCount;
-
-private:
-  Opts::ScreenOrientations m_Orientation;
-  CDasherScreen *m_pScreen;    // provides the graphics (text, lines, rectangles):
-};
-/// @}
-
-#endif /* #ifndef __DasherView_h_ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DasherViewSquare.h b/Source/Thirdparty/Dasher/Include/DasherCore/DasherViewSquare.h
deleted file mode 100644
index 0233fd6fef5fef10bab217327276117f3ab94a17..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DasherViewSquare.h
+++ /dev/null
@@ -1,212 +0,0 @@
-// DasherViewSquare.h
-//
-// Copyright (c) 2001-2004 David Ward
-
-#ifndef __DasherViewSquare_h__
-#define __DasherViewSquare_h__
-
-#include "DasherView.h"
-#include "DasherScreen.h"
-#include <deque>
-#include "Alphabet/GroupInfo.h"
-#include "SettingsStore.h"
-
-
-using namespace std;
-
-namespace Dasher {
-  class CDasherViewSquare;
-  class CDasherView;
-  class CDasherModel;
-  class CDasherNode;
-}
-
-/// \ingroup View
-/// @{
-
-/// An implementation of the DasherView class
-///
-/// This class renders Dasher in the vanilla style,
-/// but with horizontal and vertical mappings
-///
-/// Horizontal mapping - linear and log
-/// Vertical mapping - linear with different gradient
-class Dasher::CDasherViewSquare : public Dasher::CDasherView, public CSettingsUserObserver
-{
-public:
-
-  /// Constructor
-  ///
-  /// \param DasherScreen Pointer to screen to which the view will render.
-  /// \todo Don't cache screen and model locally - screen can be
-  /// passed as parameter to the drawing functions, and data structure
-  /// can be extracted from the model and passed too.
-
-  CDasherViewSquare(CSettingsUser *pCreateFrom, CDasherScreen *DasherScreen, Opts::ScreenOrientations orient);
-  ~CDasherViewSquare();
-
-  ///
-  /// Event handler
-  ///
-
-  virtual void HandleEvent(int iParameter);
-
-  //Override to additionally reset scale factors etc.
-  void SetOrientation(Opts::ScreenOrientations newOrient);
-
-  /// Resets scale factors etc. that depend on the screen size, to be recomputed when next needed.
-  void ScreenResized(CDasherScreen * NewScreen);
-
-  ///
-  /// @name Coordinate system conversion
-  /// Convert between screen and Dasher coordinates
-  /// @{
-
-  ///
-  /// Convert a screen co-ordinate to Dasher co-ordinates
-  ///
-  void Screen2Dasher(screenint iInputX, screenint iInputY, myint & iDasherX, myint & iDasherY);
-
-  ///
-  /// Convert Dasher co-ordinates to screen co-ordinates
-  ///
-  void Dasher2Screen(myint iDasherX, myint iDasherY, screenint & iScreenX, screenint & iScreenY);
-
-  ///
-  /// Convert Dasher co-ordinates to polar co-ordinates (r,theta), with 0<r<1, 0<theta<2*pi
-  ///
-  virtual void Dasher2Polar(myint iDasherX, myint iDasherY, double &r, double &theta);
-
-  ///
-  /// Return true if there is any space around a node spanning y1 to y2
-  /// and the screen boundary; return false if such a node entirely encloses
-  /// the screen boundary
-  ///
-  bool IsSpaceAroundNode(myint y1, myint y2);
-
-  ///
-  /// Get the bounding box of the visible region.
-  ///
-  void VisibleRegion( myint &iDasherMinX, myint &iDasherMinY, myint &iDasherMaxX, myint &iDasherMaxY );
-
-  ///
-  /// Render all nodes, inc. blanking around the root (supplied)
-  ///
-  virtual CDasherNode *Render(CDasherNode *pRoot, myint iRootMin, myint iRootMax, CExpansionPolicy &policy);
-
-  /// @}
-
-  void DasherSpaceArc(myint cy, myint r, myint x1, myint y1, myint x2, myint y2, int colour, int iLineWidth);
-  
-private:
-  ///draw a possibly-truncated triangle given dasher-space coords & accounting for non-linearity
-  /// @param x = max dasher-x extent
-  /// @param y1, y2 = dasher-y extent along y-axis
-  /// @param midy1,midy2 = extent along line of max x (midy1==midy2 => triangle, midy1<midy2 => truncated tri)
-  void TruncateTri(myint x, myint y1, myint y2, myint midy1, myint midy2, int fillColor, int outlineColor, int lineWidth);
-
-  /// compute screen coords for a circle, centered on y-axis, between two points
-  /// cy, r - dasher coords of center (on y-axis), radius
-  /// x1,y1 - one end-point of arc (dasher coords)
-  /// x2,y2 - other end-point (dasher-coords)
-  /// dest - point (x2,y2) in screen coords
-  /// pts - vector into which to store points; on entry, last element should already be screen-coords of (x1,y1)
-  /// dXMul - multiply x coords (in dasher space) by this (i.e. aspect ratio), for ovals
-  void CircleTo(myint cy, myint r, myint y1, myint x1, myint y3, myint x3, CDasherScreen::point dest, vector<CDasherScreen::point> &pts, double dXMul);
-  void Circle(myint Range, myint lowY, myint highY, int fCol, int oCol, int lWidth);
-  void Quadric(myint Range, myint lowY, myint highY, int fillColor, int outlineColour, int lineWidth);
-  ///draw isoceles triangle, with baseline from y1-y2 along y axis (x=0), and other point at (x,(y1+y2)/2)
-  /// (all in Dasher coords).
-  void Triangle(myint x, myint y1, myint y2, int fillColor, int outlineColor, int lineWidth);
-
-  class CTextString {
-  public: //to CDasherViewSquare...
-    ///Creates a request that label will be drawn.
-    /// x,y are screen coords of midpoint of leading edge;
-    /// iSize is desired size (already computed from requested position)
-    CTextString(CDasherScreen::Label *pLabel, screenint x, screenint y, int iSize, int iColor)
-    : m_pLabel(pLabel), m_ix(x), m_iy(y), m_iSize(iSize), m_iColor(iColor) {
-    }
-    ~CTextString();
-    CDasherScreen::Label *m_pLabel;
-    screenint m_ix,m_iy;
-    vector<CTextString *> m_children;
-    int m_iSize;
-    int m_iColor;
-  };
-
-  std::vector<CTextString *> m_DelayedTexts;
-
-  void DoDelayedText(CTextString *pText);
-  ///
-  /// Draw text specified in Dasher co-ordinates
-  ///
-
-  CTextString *DasherDrawText(myint iMaxX, myint iMidY, CDasherScreen::Label *pLabel, CTextString *pParent, int iColor);
-
-  ///
-  /// (Recursively) render a node and all contained subnodes, in disjoint rects.
-  /// (i.e. appropriate for LP_SHAPE_TYPE==0). Each call responsible for rendering
-  /// exactly the area contained within the node.
-  /// @param pOutput The innermost node covering the crosshair (if any)
-  void DisjointRender(CDasherNode * Render, myint y1, myint y2, CTextString *prevText, CExpansionPolicy &policy, double dMaxCost, CDasherNode *&pOutput);
-
-  /// (Recursively) render a node and all contained subnodes, in overlapping shapes
-  /// (according to LP_SHAPE_TYPE: 1=rects, 2=triangles, 3=truncated triangles,
-  /// 4=quadrics, 5=semicircles)
-  /// Each call responsible for rendering exactly the area contained within the node.
-  /// @param pOutput The innermost node covering the crosshair (if any)
-  void NewRender(CDasherNode * Render, myint y1, myint y2, CTextString *prevText, CExpansionPolicy &policy, double dMaxCost, CDasherNode *&pOutput);
-
-  /// @name Nonlinearity
-  /// Implements the non-linear part of the coordinate space mapping
-
-  /// Maps a dasher coordinate (linear in probability space, -ive x = in margin) to an abstract/resolution-independent
-  /// screen coordinate (linear in screen space, -ive x = offscreen) - i.e. pixel coordinate = scale({x,y}map(dasher coord)))
-  inline myint ymap(myint iDasherY) const;
-  inline myint xmap(myint iDasherX) const;
-
-  /// Inverse of the previous - i.e. dasher coord = iymap(scale(screen coord))
-  inline myint iymap(myint y) const;
-  inline myint ixmap(myint x) const;
-
-  ///Parameters for y non-linearity. (TODO Make into preprocessor defines?)
-  const myint m_Y1, m_Y2, m_Y3;
-
-  inline void Crosshair();
-  bool CoversCrosshair(myint Range,myint y1,myint y2);
-
-  //Divides by SCALE_FACTOR, rounding away from 0
-  inline myint CustomIDivScaleFactor(myint iNumerator);
-
-  void DasherLine2Screen(myint x1, myint y1, myint x2, myint y2, vector<CDasherScreen::point> &vPoints);
-
-  bool m_bVisibleRegionValid;
-
-  // Called on screen size or orientation changes
-  void SetScaleFactor();
-
-  // Parameters for x non-linearity
-  double m_dXlogCoeff;
-  myint m_iXlogThres;
-
-  //width of margin, in abstract screen coords
-  myint iMarginWidth;
-
-  /// There is a ratio of iScaleFactor{X,Y} abstract screen coords to SCALE_FACTOR real pixels
-  /// (Note the naming convention: iScaleFactorX/Y refers to X/Y in Dasher-space, which will be
-  /// the other way around to real screen coordinates if using a vertical (T-B/B-T) orientation)
-  myint iScaleFactorX, iScaleFactorY;
-  static const myint SCALE_FACTOR = 1<<26; //was 100,000,000; change to power of 2 => easier to multiply/divide
-
-  /// Cached extents of visible region
-  myint m_iDasherMinX;
-  myint m_iDasherMaxX;
-  myint m_iDasherMinY;
-  myint m_iDasherMaxY;
-};
-/// @}
-#include "DasherViewSquare.inl"
-
-#endif /* #ifndef __DasherViewSquare_h__ */
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DefaultFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/DefaultFilter.h
deleted file mode 100644
index 6eb7f755c7767f24db2dda53a1911b00ae559570..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DefaultFilter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef __DEFAULT_FILTER_H__
-#define __DEFAULT_FILTER_H__
-
-#include "DynamicFilter.h"
-#include "AutoSpeedControl.h"
-#include "StartHandler.h"
-
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-class CDefaultFilter : public CDynamicFilter, public CSettingsObserver {
- public:
-  CDefaultFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID, const char *szName);
-  ~CDefaultFilter();
-
-  /// Responds to changes in BP_START_MOUSE / BP_MOUSEPOS_MODE to create StartHandler
-  virtual void HandleEvent(int iParameter);
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-  virtual void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel, CExpansionPolicy **pol);
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void Activate();
-  virtual void Deactivate();
-  bool GetSettings(SModuleSettings **, int *);
-  void pause();
-  //pauses, and calls the interface's Done() method
-  void stop();
- protected:
-  void CreateStartHandler();
-  void run(unsigned long iTime);
-  virtual CStartHandler *MakeStartHandler();
-  virtual void ApplyTransform(myint &iDasherX, myint &iDasherY, CDasherView *pView);
-  void ApplyOffset(myint &iDasherX, myint &iDasherY);
-  
-  /// Last-known Dasher-coords of the target
-  myint m_iLastX, m_iLastY;
-  bool m_bGotMouseCoords;
-private:
-  friend class CCircleStartHandler;
-  friend class CTwoBoxStartHandler;
-  CAutoSpeedControl *m_pAutoSpeedControl;
-  myint m_iSum;
-  CStartHandler *m_pStartHandler;
-  int m_iCounter;
-  bool m_bTurbo;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DemoFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/DemoFilter.h
deleted file mode 100644
index ea8375aecd6d10ea5e79ac6bd3ef19c45ed3c94a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DemoFilter.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __DEMO_FILTER_H__
-#define __DEMO_FILTER_H__
-
-#include "DynamicFilter.h"
-
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-class CDemoFilter : public CDynamicFilter {
- public:
-  CDemoFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate);
-  ~CDemoFilter();
-
-  virtual void HandleEvent(int iParameter);
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-  virtual void Timer(unsigned long Time, CDasherView *m_pDasherView, CDasherInput *pInput, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void Activate();
-  virtual void Deactivate();
- private:
-  double m_dSpring, m_dNoiseNew, m_dNoiseOld;
-  double m_dNoiseX, m_dNoiseY;
-  myint m_iDemoX, m_iDemoY;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DynamicButtons.h b/Source/Thirdparty/Dasher/Include/DasherCore/DynamicButtons.h
deleted file mode 100644
index f6d0386dd6f2b1f82def577c803d26c9fa4a9d5d..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DynamicButtons.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// DynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DynamicButtons_h__
-#define __DynamicButtons_h__
-
-#include "DynamicFilter.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-///filter with three states: paused, reversing, running. Button 1 is dedicated reverse
-/// button (subclasses may also call reverse());  when reversing, any key pauses,
-/// then any key restarts.
-class CDynamicButtons : public CDynamicFilter {
- public:
-  CDynamicButtons(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID, const char *szName);
-
-  ///when reversing, backs off; when paused, does nothing; when running, delegates to TimerImpl
-  virtual void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-
- protected:
-  ///Called when a key event is detected - could be a single press (a la KeyDown/KeyUp),
-  /// but is also called with explicit indication of "long" or other types of press,
-  /// avoiding need for subclasses to try to detect these manually. In the default implementation:
-  /// if paused, any key restarts; if reversing, any key pauses; if running, short presses
-  /// of button 0 or 100 act as a dedicated reverse button, and button 1 pauses; any other
-  /// press type or button is passed onto ActionButton.
-  /// \param iType 0=normal press, 1=long press; see also CButtonMultiPress.
-  virtual void ButtonEvent(unsigned long iTime, int iButton, int iType, CDasherModel *pModel);
-
-  ///Called to handle key events when the Filter is running forwards normally.
-  /// Short presses of buttons 0, 100 and 1 have been handled already, but all
-  /// other buttons/press-types will be passed here.
-  /// \param iType 0=normal press, 1=long press; see also CButtonMultiPress.
-  virtual void ActionButton(unsigned long iTime, int iButton, int iType, CDasherModel *pModel) = 0;
-
-  ///Whether a key (any that we might respond to) is held down.
-  /// If so, m_iHeldId identifies the key in question. We need this
-  /// not just for detecting long-presses etc. (in subclasses), and
-  /// ignoring presses of other keys while the first is down, but also
-  /// simply to filter out key-repeat events (=multiple keydown without a keyup)
-  bool m_bKeyDown;
-
-  ///if m_bKeyDown is true, identifies the key that was first pressed
-  /// that is currently still held down.
-  int m_iHeldId;
-
-  bool m_bDecorationChanged;
-  bool isReversing() {return !isPaused() && !m_bForwards;}
-  bool isRunning() {return !isPaused() && m_bForwards;}
-  virtual void pause();
-  virtual void reverse(unsigned long iTime);
-  virtual void run(unsigned long iTime);
-
-  virtual void TimerImpl(unsigned long Time, CDasherView *m_pDasherView, CDasherModel *m_pDasherModel, CExpansionPolicy **pol) = 0;
-
-  ///Subclasses should all this (rather than pModel->Offset()) to offset the model
-  /// (it also stores the model, to abort the offset upon pause if necessary)
-  void ApplyOffset(CDasherModel *pModel, int iOffset);
-
-private:
-  bool m_bForwards;
-  unsigned long m_uSpeedControlTime;
-  CDasherModel *m_pModel;
-};
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/DynamicFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/DynamicFilter.h
deleted file mode 100644
index 84a6369802ad511f0da93536b10dd3be5af393ce..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/DynamicFilter.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// DynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __DynamicFilter_h__
-#define __DynamicFilter_h__
-
-#include "InputFilter.h"
-#include "SettingsStore.h"
-#include "FrameRate.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-///Abstract superclass for filters which produce continuous movement
-/// i.e. steadily towards a target (perhaps moving). These filters
-/// need to monitor the framerate (using CFrameRate) to maintain a steady
-/// speed of movement. Also implements Slow Start following a call to the
-/// Unpause method.
-class CDynamicFilter : public CInputFilter, public CSettingsUser {
- public:
-  CDynamicFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID, const char *szName);
-
-  virtual bool supportsPause() {return true;}
-  
-  void pause() {m_bPaused = true;}
-  
- protected:
-  ///wraps Model's one-step method to compute the number of steps and minsize
-  /// (from framerate) that the Model requires, from just the frame time and a
-  /// multiplier to speed.
-  /// \param dSpeedMul multiply normal speed of movement by this; 1.0 = normal speed,
-  /// 0.0 = go nowhere. This allows for slow start, turbo mode, control nodes being
-  /// more "viscous", etc. Values <=0.0 will result in no movement
-  /// \return true if dSpeedMul>0.0, false if <=0.0.
-  bool OneStepTowards(CDasherModel *pModel, myint X, myint Y, unsigned long iTime, double dSpeedMul);
-  
-  ///Calculates a multiplier by which to adjust our speed (for a given frame).
-  /// Defalut implementation implements slow-start (i.e. a multiplier increasing
-  /// from zero to one over the slow-start-time) as well as by checking the speedMul
-  /// of the node under the cursor.
-  virtual double FrameSpeedMul(CDasherModel *pModel, unsigned long iTime);
-
-  ///Starts moving, i.e. just records that we are no longer paused,
-  /// for the next call to Timer. Protected, to prevent external calls 
-  /// so subclasses have control over all calls, as a call to run() may not be
-  /// appropriate without performing other setup first.
-  /// \param Time Time in ms, used to keep a constant frame rate and
-  /// initialize slow start.
-
-  virtual void run(unsigned long iTime);
-  bool isPaused() {return m_bPaused;}
-  
-  CFrameRate * const m_pFramerate;
- private:
-  //Time at which Unpause() was called, used for Slow Start.
-  unsigned long m_iStartTime;
-  bool m_bPaused;
-};
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Event.h b/Source/Thirdparty/Dasher/Include/DasherCore/Event.h
deleted file mode 100644
index 522e0c8c89f80f61d14d4e061d7fc054ba5206cf..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Event.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __event_h__
-#define __event_h__
-
-// Classes representing different event types.
-
-#include <string>
-#include "DasherTypes.h"
-
-
-namespace Dasher {
-  class CEditEvent;
-  class CGameNodeDrawEvent;
-  class CDasherNode; //fwd decl, avoid include...we just store ptr
-}
-/// \ingroup Core
-/// @{
-
-/// \defgroup Events Events generated by Dasher modules.
-/// @{
-
-/**
- * An event that notifies listeners that a node previously flagged for
- * game mode has been drawn.
- */
-class Dasher::CGameNodeDrawEvent {
-public:
-  CGameNodeDrawEvent(CDasherNode* pNode, myint y1, myint y2)
-    : m_pNode(pNode), m_y1(y1), m_y2(y2) {
-  };
-  
-  /**
-   * The node itself.
-   */
-  CDasherNode* m_pNode;
-
-  /**
-   * the y range of the node (in dasher coords)
-   */
-  myint m_y1, m_y2;
-};
-
-class Dasher::CEditEvent {
-  friend class CDasherInterfaceBase;
-  CEditEvent(int iEditType, const std::string & sText, CDasherNode *pNode)
-  : m_iEditType(iEditType), m_sText(sText), m_pNode(pNode) {
-  };  
-public:
-  static const int EDIT_OUTPUT=1, EDIT_DELETE=2, EDIT_CONVERT=10, EDIT_PROTECT=11;
-  const int m_iEditType;
-  const std::string m_sText;
-  /// Node causing the event - allows calling GetSymbolProb, offset(), etc.
-  /// _if necessary_
-  const CDasherNode *m_pNode;
-};
-
-/// @}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ExpansionPolicy.h b/Source/Thirdparty/Dasher/Include/DasherCore/ExpansionPolicy.h
deleted file mode 100644
index 7b05f0e2b9a5c07048397c001e6489b31edc1d77..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ExpansionPolicy.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *  ExpansionPolicy.h
- *  Dasher
- *
- *  Created by Alan Lawrence on 03/06/2009.
- *  Copyright 2009 Cavendish Laboratory. All rights reserved.
- *
- */
-
-#ifndef __ExpansionPolicy_h__
-#define __ExpansionPolicy_h__
-
-#include <vector>
-#include <queue>
-#include <limits>
-#include <algorithm>
-#include "DasherNode.h"
-
-class CNodeCreationManager;
-
-namespace Dasher {
-  class CDasherModel;
-class CExpansionPolicy
-{
-public:
-    virtual ~CExpansionPolicy() { };
-  ///dMaxCost should be the value returned by pushNode from the call for the node most closely enclosing pNode (that was pushed!)
-  ///for the first (outermost) node, i.e. when no enclosing node has been passed, (+ive) INFINITY should be passed in.
-	virtual double pushNode(CDasherNode *pNode, int iDasherMinY, int iDasherMaxY, bool bExpand, double dMaxCost)=0;
-  ///Return TRUE if another frame should be forced.
-  virtual bool apply()=0;
-  ///Expand node immediately (do not wait for a call to apply()) - subclasses may use
-  /// to implement their apply() methods, but public so the view can call directly for nodes
-  /// which must be expanded during rendering. (Delegates to CDasherModel.)
-  void ExpandNode(CDasherNode *pNode);
-protected:
-  CExpansionPolicy(CDasherModel *pModel) : m_pModel(pModel) {}
-private:
-  CDasherModel *m_pModel;
-};
-
-class NoExpansions : public CExpansionPolicy
-{
-public:
-  NoExpansions() = default;
-	double pushNode(CDasherNode *pNode, int iMin, int iMax, bool bExpand, double dMaxCost) override {return dMaxCost;}
-  bool apply() override {return false;}
-};
-
-///A policy that expands/collapses nodes to maintain a given node budget.
-///Also ascribes uniform costs, according to size within the range 0-4096.
-class BudgettingPolicy : public CExpansionPolicy
-{
-public:
-  BudgettingPolicy(CDasherModel *pModel, unsigned int iNodeBudget);
-  ///sets cost according to getCost(pNode,iMin,iMax);
-  ///then assures node is cheaper (less important) than its parent;
-  ///then adds to relevant queue
-  double pushNode(CDasherNode *pNode, int iMin, int iMax, bool bExpand, double dParentCost) override;
-  bool apply() override;
-protected:
-  virtual double getCost(CDasherNode *pNode, int iDasherMinY, int iDasherMaxY);
-  ///return the intersection of the ranges (y1-y2) and (iMin-iMax)
-  int getRange(int y1, int y2, int iMin, int iMax);
-  std::vector<std::pair<double,CDasherNode *> > sExpand, sCollapse;
-  unsigned int m_iNodeBudget;
-};
-
-///limits expansion to a few nodes (per instance i.e. per frame)
-///(collapsing is at present unlimited, have to test this...)
-class AmortizedPolicy : public BudgettingPolicy
-{
-public:
-  AmortizedPolicy(CDasherModel *pModel, unsigned int iNodeBudget);
-	AmortizedPolicy(CDasherModel *pModel, unsigned int iNodeBudget, unsigned int iMaxExpands);
-  ~AmortizedPolicy() override = default;
-  bool apply() override;
-  double pushNode(CDasherNode *pNode, int iMin, int iMax, bool bExpand, double dParentCost) override;
-private:
-	unsigned int m_iMaxExpands;
-  void trim();
-};
-}
-#endif /*defined __ExpansionPolicy_h__*/
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/FileLogger.h.old b/Source/Thirdparty/Dasher/Include/DasherCore/FileLogger.h.old
deleted file mode 100644
index 9f1104d7c5b17692856624f45d6c2a27215fa6b9..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/FileLogger.h.old
+++ /dev/null
@@ -1,158 +0,0 @@
-// FileLogger
-//
-// A very simple class that does logging to a file.
-// Currently not thread safe and uses CRT file I/O that will melt down 
-// on Windows if too many files are open.
-//
-// Copyright 2004 by Keith Vertanen
-//
-
-#ifndef __FileLogger_h__
-#define __FileLogger_h__
-
-#include <stdio.h>
-#include <string>
-#include <stdarg.h>
-#include <time.h>
-#include <map>
-#include "DasherTypes.h"
-// Probably better to enable in project settings since FileLogger.h is included from several physical locations.
-// #define DEBUG_ONLY_LOGGING   // Enabled debug logging that has been ifdef'd to prevent performance problems in release build
-
-// Macro that lets us wrap log statements that we want compiled out of the code in non-debug builds
-#ifdef DEBUG_ONLY_LOGGING
-#define DEBUG_ONLY( s )     s
-#else
-#define DEBUG_ONLY( s )
-#endif
-
-// Macros that can be used to call a globally declared logging object.  These
-// would need to be modified if the global variable is named differently.  By
-// using these macros you are protected from using the logger if it hasn't
-// yet been created (it should be intialized to NULL).  Also has versions that
-// automatically indicate the log level without sending a parameter.
-//
-// Note: to use these you must use double open and close parentheses, this
-// is due to the variable parameter list that logging can take to do printf
-// style output.  GCC supports variadic macros, but Visual Studio doesn't yet.
-//
-
-// General purpose version, a log level must be sent in prior to any variable
-// length parameter list.  Usage:
-//    LOG(("my favorite number is %d!", logDEBUG, 42))
-#define LOG( s )\
-  if (g_pLogger != NULL)\
-    g_pLogger->Log s ;
-
-// Debug only logging macro.  Usage:
-//    LOG(("my favorite number is %d!", 42))
-#define LOG_DEBUG( s )\
-  if (g_pLogger != NULL)\
-    g_pLogger->LogDebug s ;
-
-// Normal error message macro.  Usage:
-//    LOG(("errors number %d!", 42))
-#define LOG_ERROR( s )\
-  if (g_pLogger != NULL)\
-    g_pLogger->LogNormal s ;
-
-// Normal error message macro.  Usage:
-//    LOG(("plane %d crashed into plane %d!", 42, 24))
-#define LOG_CRITICAL( s )\
-  if (g_pLogger != NULL)\
-    g_pLogger->LogCritical s ;
-
-#ifdef _WIN32
-// Types required by our high resolution WIN32 timing routines
-#include "WinCommon.h"
-typedef std::map<std::string, __int64> MAP_STRING_INT64;
-
-#endif
-
-
-enum eLogLevel
-{
-    logDEBUG = 0,
-    logNORMAL = 1,
-    logCRITICAL = 2
-};
-
-// Bit mask options that are used when we construct object
-enum eFileLoggerOptions
-{
-    logFunctionEntryExit    = 1,
-    logTimeStamp            = 2,
-    logDateStamp            = 4,
-    logDeleteOldFile        = 8,
-    logFunctionTiming       = 16,
-    logOutputScreen         = 32
-};
-/// \ingroup Logging
-/// @{
-class CFileLogger
-{
-public:
-    CFileLogger(const std::string& strFilenamePath, eLogLevel level, int optionsMask);
-    ~CFileLogger();
-
-
-    void Log(const char* szText, eLogLevel iLogLevel = logNORMAL, ...);         // Logs a string to our file if it meets or exceeds our logging level
-    void LogDebug(const char* szText, ...);                                     // Logs debug level messages
-    void LogNormal(const char* szText, ...);                                    // Logs normal level messages    
-    void LogCritical(const char* szText, ...);                                  // Logs critical level messages
-
-    // Versions that exists so we can pass in STL strings
-    void Log(const std::string strText, eLogLevel iLogLevel = logNORMAL, ...);        // Logs a string to our file if it meets or exceeds our logging level
-    
-    void SetFilename(const std::string& strFilename);
-    void SetLogLevel(const eLogLevel newLevel);
-    void SetFunctionLogging(bool functionLogging);
-
-    void LogFunctionEntry(const std::string& strFunctionName);                  // Used by FunctionLogger to log entry to a function
-    void LogFunctionExit(const std::string& strFunctionName);                   // Used by FunctionLogger to log exit from a function
-#ifdef _WIN32
-    void LogFunctionTicks(const std::string& strFunctionName, __int64 iTicks);  // Used by FunctionLogger to log how long was spent in a function
-#endif
-    bool GetFunctionTiming();
-    
-    static std::string GetFullFilenamePath(std::string strFilename);
-
-private:
-    std::string     m_strFilenamePath;          // Filename and path of our output file	
-    eLogLevel       m_iLogLevel;                // What level of logging this object should write
-    bool            m_bFunctionLogging;         // Whether we will log function entry/exit 
-    bool            m_bTimeStamp;               // Whether we log the time
-    bool            m_bDateStamp;               // Whether we log the date
-    bool            m_bFunctionTiming;          // Whether our FunctionLogger objects should do performance timing
-    bool            m_bDeleteOldFile;           // Should we delete a previous instance of the log file
-    bool            m_bOutputScreen;            // Should we output to stdout as well as the file
-    int             m_iFunctionIndentLevel;     // How many nested calls to FunctionLogger we have
-
-    std::string     GetIndentedString(const std::string& strText);
-    std::string     GetTimeDateStamp();
-
-#ifdef _WIN32
-    MAP_STRING_INT64    m_mapFunctionTicks;     // Keeps track of how many ticks spent in each of our functions (who create a CFunctionLogger object)
-#endif
-
-};
-
-// Helper class, you can create CFunctionLogger objects at 
-// the top of a function and it will log its entry and exit.
-class CFunctionLogger
-{
-public:
-    CFunctionLogger(const std::string& strFunctionName, CFileLogger* pLogger);
-    ~CFunctionLogger();
-
-private:
-    std::string     m_strFunctionName;          // Name of the function this object is logging
-    CFileLogger*    m_pLogger;                  // Pointer to the logging object to use 
-    
-#ifdef _WIN32
-    LARGE_INTEGER   m_iStartTicks;              // Tick count at start of timing
-#endif
-
-};
-/// @}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/FileWordGenerator.h b/Source/Thirdparty/Dasher/Include/DasherCore/FileWordGenerator.h
deleted file mode 100644
index b54d8648e725dbd68d1f34d286ea68c96cb8902e..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/FileWordGenerator.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef __FileWordGenerator_h__
-#define __FileWordGenerator_h__
-
-#include <string>
-#include <iostream>
-#include <fstream>
-#include <stdexcept>
-using namespace std;
-
-#include "WordGeneratorBase.h"
-
-namespace Dasher {
-  
-  
-/**
- * This class implements the Word Generator interface. This means
- * that after construction, your primary method of retrieving words
- * will be calling GetNextWord(). For specifics on Word Generators,
- * see CWordGeneratorBase.
- * 
- * This class specifically reads words from a given file. Files ARE
- * kept open for the lifetime of this object and the size of the file
- * should not pose an issue. 
- * 
- * However, if you read in a file that has unreasonably long lines,
- * the behavior is undefined as you may cause the file to be read in all
- * at once. 
- */
-class CFileWordGenerator : public CWordGeneratorBase, public AbstractParser {
-public:
-  CFileWordGenerator(CMessageDisplay *pMsgs, const CAlphInfo *pAlph, const CAlphabetMap *pAlphMap);
-
-  ///Attempt to read from an arbitrary stream. Returns false, as we
-  /// only support reading game mode sentences from files.
-  bool Parse(const std::string &strDesc, std::istream &in, bool bUser);
-  
-  ///Attempt to open the specified file. Return true for success, false for failure
-  bool ParseFile(const std::string &strFileName, bool bUser);
-    
-  virtual ~CFileWordGenerator() {
-    m_sFileHandle.close();
-  }
-
-  /**
-   * Return the next line from the file
-   * @throw  Throws an exception if the file cannot be read.
-   */
- virtual std::string GetLine();
-  
-  void setAcceptUser(bool bAcceptUser) {m_bAcceptUser = bAcceptUser;}
-
-  bool HasLines() {return !m_vLineIndices.empty();}
-  
-private:
-
-/* ---------------------------------------------------------------------
- * Member Variables
- * ---------------------------------------------------------------------
- */
-
-  /**
-   * The path to the file this generator reads from.
-   */
-  std::string m_sPath;
-  
-  /**
-   * The input stream that acts as the handle to the underlying file.
-   */
-  ifstream m_sFileHandle;
-  
-  std::vector<streampos> m_vLineIndices;
-  
-  bool m_bAcceptUser;
-};
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/FrameRate.h b/Source/Thirdparty/Dasher/Include/DasherCore/FrameRate.h
deleted file mode 100644
index 6e44b83d502fa09c38da9b1c815ac774400388cd..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/FrameRate.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// FrameRate.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2002 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __FrameRate_h__
-#define __FrameRate_h__
-
-#include <cmath>
-#include "../Common/Common.h"
-#include "SettingsStore.h"
-#include "DasherModel.h"
-
-namespace Dasher {
-/// \ingroup Model
-/// \{
-
-/// keeps the framerate (LP_FRAMERATE / 100.0) up-to-date,
-/// computes the Steps parameter,
-/// computes RXmax - which controls the maximum rate of zooming in
-class CFrameRate : public CSettingsUserObserver  {
-public:
-  CFrameRate(CSettingsUser *pCreator);
-
-  //Responds to a change to LP_FRAMERATE or LP_MAX_BITRATE
-  // by recomputing the Steps() parameter.
-  virtual void HandleEvent(int iParameter);
-
-  ///The number of frames, in which we will attempt to bring
-  /// the target location (under the cursor, or in dynamic button
-  /// modes) to the crosshair. See DJW thesis.
-  int Steps() const {
-    return m_iSteps;
-  }; 
-
-  ///
-  /// Reset the framerate class
-  /// TODO: Need to check semantics here
-  /// Called from CDasherInterfaceBase::UnPause;
-  ///
-  void Reset_framerate(unsigned long Time) {
-    m_iFrames = 0;
-    m_iTime = Time;
-  }
-
-  void RecordFrame(unsigned long Time);
-  
-private:
-  ///number of frames that have been sampled
-  int m_iFrames;
-  ///time at which first sampled frame was rendered
-  unsigned long m_iTime;
-  ///number of frames over which we will compute average framerate
-  int m_iSamples;
-
-  int m_iSteps;
-  
-  double m_dBitsAtLimX;
-};
-/// \}
-}
-#endif /* #ifndef __FrameRate_h__ */
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/GameModule.h b/Source/Thirdparty/Dasher/Include/DasherCore/GameModule.h
deleted file mode 100644
index 3a9e1d2a1dd87d01881fcf87521fe2483ef41334..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/GameModule.h
+++ /dev/null
@@ -1,175 +0,0 @@
-// GameModule.h
-
-#ifndef __GameModule_h__
-#define __GameModule_h__
-
-#include <string>
-#include <cstring>
-
-using namespace std;
-
-#include "DasherScreen.h"
-#include "DasherModel.h"
-#include "../Common/ModuleSettings.h"
-#include "DasherNode.h"
-#include "DasherView.h"
-#include "DasherTypes.h"
-#include "DasherInterfaceBase.h"
-#include "WordGeneratorBase.h"
-#include "DemoFilter.h"
-
-namespace Dasher {
-
-/**
- * This Dasher Module encapsulates all game mode logic. In game mode, users will be given
- * a target string to type as well as visual feedback for their progress and a helpful 
- * arrow to guide them in the right path through the dasher model.
- * 
- * The way target strings will be displayed and reasoned about in code is in terms
- * of chunks. Chunks represent the collection of strings that is displayed at once
- * on the screen. After typing all the words in a given chunk, a new chunk of size
- * m_iTargetChunkSize is retrieved from the word generator and displayed.
- *
- * This class handles logic and drawing code with respect to the above.
- */
-class CGameModule : protected CSettingsUser, protected TransientObserver<const CEditEvent *>, protected TransientObserver<CGameNodeDrawEvent*>, private TransientObserver<CDasherNode*>, private TransientObserver<CDasherView*> {
- public:
-  friend class CDemoFilter;
-  /**
-   * Constructor
-   * @param pEventHandler A pointer to the event handler
-   * @param pSettingsStore A pointer to the settings store
-   * @param pInterface A pointer to a Dasher interface
-   * @param iID The ID of this module.
-   * @param szName The name of this module
-   * @param pWordGenerator A pointer to the word generator
-   */
-  CGameModule(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CDasherView *pView, CDasherModel *pModel);
-
-  ~CGameModule();
-
-  void StartWriting(unsigned long lTime);
-  
-  /**
-   * Draws Game Mode specific visuals to the screen.
-   * \param pView The Dasher View to be modified
-   */
-  void DecorateView(unsigned long lTime, CDasherView *pView, CDasherModel *pModel);
-
-  /**
-   * Set the word generator for this instance to draw words from.
-   * @param pWordGenerator the word generator to be used
-   */ 
-  void SetWordGenerator(const CAlphInfo *pAlph, CWordGeneratorBase *pWordGenerator);
-  
-  /// The "GameModule" isn't actually a DasherModule, and/so this will be never called,
-  /// but for uniformity with existing module settings API, I'm using this to record
-  /// what preferences there are that affect Game Mode - really, these should be
-  /// displayed to the user each time (s)he enters Game Mode.
-  bool GetSettings(SModuleSettings **sets, int *count);
-
-protected:
-  ///Called after each successful call to GenerateChunk. Subclasses may override
-  /// to do any necessary extra processing given the new chunk. Default does nothing.
-  virtual void ChunkGenerated() {}
-  
-  /// Called when a node has been populated. Look for Game children.
-  virtual void HandleEvent(CDasherNode *pNode);
-  
-  void DrawBrachistochrone(Dasher::CDasherView* pView);
-  void DrawHelperArrow(Dasher::CDasherView* pView);
-  myint ComputeBrachCenter();
-    
-  /// Called when a node has been output/deleted. Update string (to be/) written.
-  virtual void HandleEvent(const CEditEvent *);
-  
-  /// Called when a NF_GAME node has been drawn.
-  virtual void HandleEvent(CGameNodeDrawEvent *evt); 
-  
-  /// Called when screen geometry has changed. We just use this to look for when the View changes
-  /// (to re-register for CGameNodeDrawEvents - a bit of a hack...)
-  virtual void HandleEvent(CDasherView *);
-
-  ///Draw the target and currently-entered text for the user to follow.
-  /// Subclasses should implement using appropriate GUI components, maybe using
-  /// m_strWrong, and lastCorrectSym() as an index into targetSyms()
-  /// (any of which can be converted to text using m_pAlph).
-  virtual void DrawText(CDasherView *pView)=0;
-  
-  ///Any text wrongly entered since the last on-target character
-  std::string m_strWrong;
-  const vector<symbol> &targetSyms() {return m_vTargetSymbols;}
-  int lastCorrectSym() {return m_iLastSym;}
-  const CAlphInfo *m_pAlph;
-  CDasherInterfaceBase * const m_pInterface;
-private:
-
-  ///
-  /// Gets a new line from the generator into m_vTargetSymbols
-  /// and positions us at the beginning.
-  /// \return true if a new line was obtained; false if the wordgenerator
-  /// indicated EOF.
-  bool GenerateChunk();
-
-   
-  /**
-   * Pointer to the object that encapsulates the word generation
-   * algorithm being used.
-   */
-  CWordGeneratorBase *m_pWordGenerator;
-  
-  /**
-   * The target string the user must type.
-   */ 
-  vector<symbol> m_vTargetSymbols;
-
-  /**
-   * The last correct symbol we have seen
-   */
-  int m_iLastSym;
-  
-  /**
-   * Min and max dasher coordinates of the smallest (known) game node
-   */
-  myint m_y1, m_y2;
-
-  ///Best-known Location of target sentence in each frame
-  vector<myint> m_vTargetY;
-  ///Last element of above, i.e. current location of target sentence
-  myint m_iTargetY;
-  ///Time at which we first needed help, or numeric_limits<unsigned long>::max()
-  /// if we don't.
-  unsigned long m_uHelpStart;
-  
-  ///Statistics over all _previous_ sentences: total time, total nats, total syms
-  unsigned long m_ulTotalTime;
-  double m_dTotalNats;
-  unsigned int m_uiTotalSyms;
-  
-  ///Time and nats at which this sentence started
-  unsigned long m_ulSentenceStartTime;
-  double m_dSentenceStartNats;
-
-/* ---------------------------------------------------------------------
- * Constants
- * ---------------------------------------------------------------------
- */
-
-  /**
-   * The color (in Dasher colors) to make the crosshair.
-   */
-  const int m_iCrosshairColor;
-
-  /**
-   * The font size used to draw the target string.
-   */
-  const int m_iFontSize;
-  
-};
-
-}
-
-
-
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/GameStatistics.h b/Source/Thirdparty/Dasher/Include/DasherCore/GameStatistics.h
deleted file mode 100644
index 11a7656e060e0fa74883411b67dcbf49093ab8be..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/GameStatistics.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef __GameStatistics_h__
-#define __GameStatistics_h__
-
-// Code examples modified from C++ Cookbook O'Reilly.
-// Code use falls under fair use as dicussed in the book
-
-#include <numeric>
-#include <cmath>
-#include <algorithm>
-#include <functional>
-#include <vector>
-
-template<class T>
-T nthPower(T x, int n)
-{
-  T ret = x;
-  for (int i=1; i < n; ++i)
-    ret*=x;
-  return ret;
-}
-
-template<class T>
-struct SumDiffNthPower 
-{
-  SumDiffNthPower(T x, int n) : m_mean(x), m_n(n) {}
-  T operator()(T sum, T current)
-  {
-    return sum+nthPower(current-m_mean, m_n);
-  }
-  T m_mean;
-  int m_n;
-};
-
-template<class T, class Iter_T>
-  T nthMoment(int n, Iter_T first, Iter_T last, T mean)
-{
-  size_t cnt = last - first;
-  return std::accumulate(first, last, T(), SumDiffNthPower<T>(mean, n))/cnt;
-}
-template<typename T>
-std::string ComputeStats(const std::vector<T> &v)
-{
-  if (v.empty()) return "";
-  
-  double m1 = nthMoment(1,v.begin(), v.end(), 0.0);
-  double m2 = nthMoment(2,v.begin(), v.end(), m1);
-  double m3 = nthMoment(3,v.begin(), v.end(), m1);
-  double m4 = nthMoment(4,v.begin(), v.end(), m1);
-  
-  double dev = sqrt(m2); // Standard Deviation
-  double skew = m3/(m2*dev); // Skewness
-  double kurt = m4 / (m2*m2) - 3.0; // Excess Kurtosis
-
-  ostringstream m_Statsbreakdown("");  
-#define SEP " "
-  m_Statsbreakdown << "Samples: " << v.size() << SEP
-    << "Mean: " << m1 << SEP
-    << "StdDev: " << dev << SEP
-    << "Skew: " << skew << SEP
-    << "Kurt: " << kurt << SEP;
-#undef SEP
-  return m_Statsbreakdown.str();
-}
-
-template<class A, class B, class T>
-struct MemberSumDiffNthPower 
-{
-  MemberSumDiffNthPower(A T::* pm, B x, int n) : m_mean(x), m_pm(pm), m_n(n) {}
-  B operator()(B sum, T current)
-  {
-    return sum+nthPower(current.*m_pm-m_mean, m_n);
-  }
-  B m_mean;
-  A T::* m_pm;
-  int m_n;
-};
-
-template<class T, class Iter_T, class A, class B>
-  B MemberNthMoment(int n, Iter_T first, Iter_T last, A T::* pmember, B mean)
-{
-  size_t cnt = last - first;
-  return std::accumulate(first, last, B(), MemberSumDiffNthPower<A,B,T>(pmember,mean,n))/cnt;
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/InputFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/InputFilter.h
deleted file mode 100644
index 6d4fb2b938b97f87fb8b4db7a4462fceda51c549..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/InputFilter.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef __INPUT_FILTER_H__
-#define __INPUT_FILTER_H__
-
-#include "DasherView.h"
-#include "DasherModel.h"
-#include "ModuleManager.h"
-#include "UserLogBase.h"
-#include "DasherInput.h"
-
-namespace Dasher {
-  class CDasherInterfaceBase;
-}
-/// \defgroup InputFilter Input filters
-/// @{
-namespace Dasher {
-class CInputFilter : public CDasherModule {
- public:
-  CInputFilter(CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName)
-    : CDasherModule(iID, InputMethod, szName), m_pInterface(pInterface) {
-  };
-
-  ///Called after nodes have been rendered, to draw any decorations on the view.
-  ///\return True if the decorations were (potentially) different from the last
-  /// frame; false if the decorations drawn are definitely the same as those
-  /// drawn in the previous frame.
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput) { return false; };
-
-  virtual void KeyDown(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel) {}
-  
-  virtual void KeyUp(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel) {}
-
-  ///Called for each frame, before rendering. Filter thus has the opportunity
-  /// to schedule one or more steps with the model (or cancel scheduled steps!);
-  /// after calling, model will move to the next step that has been scheduled -
-  /// whether by Timer(), or elsewhere. Thus, a filter in which movement is
-  /// continuous while the filter is in some unpaused state, can ScheduleOneStep
-  /// in each call to Timer; alternatively, a filter responding to clicks, can
-  /// schedule a whole bunch of steps when a click occurs, and then Timer need
-  /// do nothing (as the model will run through those steps, one per frame).
-  ///\param pView useful for co-ordinate conversions; however, no drawing should
-  /// be performed here (that should be done in DecorateView).
-  virtual void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel, CExpansionPolicy **pol) {};
-
-  ///Called to tell the Filter to halt any movement that may be in progress:
-  /// e.g. if some UI action has occurred taking focus/control away from the
-  /// Dasher canvas. Thus, filters should (a) ensure they do not schedule any
-  /// movement in subsequent Timer() calls; and (b) also ensure the model is
-  /// cleared of any steps already scheduled with it.
-  virtual void pause() = 0;
-
-  virtual void Activate() {};
-  virtual void Deactivate() {};
-
-  virtual bool GetMinWidth(int &iMinWidth) {
-    return false;
-  }
-
-  ///Used by Control Mode to determine whether to display a Pause node (perhaps
-  /// in addition to a Stop/Done). If general, this is desirable if the filter
-  /// will continuously enter bits in the absence of user input, and thus there
-  /// should be the option to tell the filter to stop doing this (without the
-  /// user necessarily having finished the phrase); no if the filter will not
-  /// enter bits without the user actively pushing buttons / performing input.
-  virtual bool supportsPause() {return false;}
-  
- protected:
-  CDasherInterfaceBase * const m_pInterface;
-};
-  
-  ///Simple class, basis for filters using ScheduleZoom rather than
-  /// ScheduleOneStep, providing a ScheduleZoom method wrapping the
-  /// DasherModel one, using LP_ZOOMSTEPS steps and such that pause()
-  /// cancels any such zoom in progress.
-  class CStaticFilter : public CInputFilter, protected CSettingsUser {
-  public:
-    CStaticFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pIntf, ModuleID_t iId, const char *szName)
-    : CInputFilter(pIntf, iId, szName), CSettingsUser(pCreator), m_pModel(NULL) {
-    }
-    void pause() {if (m_pModel) m_pModel->ClearScheduledSteps();}
-  protected:
-    void ScheduleZoom(CDasherModel *pModel, myint y1, myint y2) {
-      (m_pModel = pModel)->ScheduleZoom(y1,y2,GetLongParameter(LP_ZOOMSTEPS));
-    }
-  private:
-    CDasherModel *m_pModel;
-  };
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/CTWLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/CTWLanguageModel.h
deleted file mode 100644
index 154304d5de3f8e550d5bec906f64421089d70b8a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/CTWLanguageModel.h
+++ /dev/null
@@ -1,131 +0,0 @@
-// CTWLanguageModel.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-//
-// For information on the CTW method visit 
-// http://www.sps.ele.tue.nl/members/F.M.J.Willems/RESEARCH_files/CTW/ResearchCTW.htm
-//
-
-#ifndef __CTWLanguageModel_h__
-#define __CTWLanguageModel_h__
-
-#include <vector>			
-#include <fstream>			
-#include "LanguageModel.h"	
-#include "HashTable.h"
-#include <deque>			
-
-using namespace Dasher;
-using namespace std;
-
-namespace Dasher {  
- 
-  // CTW language model 
-  class CCTWLanguageModel: public CLanguageModel {
-  public:    
-	CCTWLanguageModel(int iNumSyms);
-	virtual ~ CCTWLanguageModel(); 
-
-    Context CreateEmptyContext();			
-	Context CloneContext(Context context);	
-	void ReleaseContext(Context context);	
-
-    virtual void EnterSymbol(Context context, int Symbol); 
-	virtual void LearnSymbol(Context context, int Symbol); 	
-	virtual void GetProbs(Context context, std::vector < unsigned int >&Probs, int Norm, int iUniform) const; 
-	
-	Dasher::CHashTable HashTable; // Hashtable used for storing CCTWNodes in an array
-      unsigned int MaxDepth;	// Maximum depth of the tree
-	int MaxTries;	// Determines how many times to try to find an empty index for a new node (max number of collisions)
-	int alpha;		// Parameter of the KT-estimator 
-	
-	int MaxNrNodes; // Max number of CCTWNodes in the table
-	int TotalNodes; // keep track of how many nodes are created, and memory usage
-	float MaxFill;  // Treshold to decide when to freeze the tree
-	int Failed;		// keep track of how many nodes couldn't be found or created		
-	bool Frozen;	// to indicate if there is still room in the array of CCTWNodes
-	int MaxCount;   // The maximum number of a and b, the counts of zeros and ones in each CCTWnode, before they are halved.
-	unsigned short int MaxValue; // representation of probability one
-	unsigned short int NrBits;   // number of bits used to represent probabilities 
-	int NrPhases;   // Number of bits per input Symbol
-
-	class CCTWNode {
-    public:         
-      unsigned char a;		 // number of zeros
-	  unsigned char b;	 // number of ones
-	  unsigned char Symbol;  // newest context symbol, needed to check if the correct node is found by hashing
-	  unsigned char NrTries; // needed to check if the correct node is found by hashing. MaxTries is bounded, 4-5 bits would suffice
-	  unsigned short int Pe; // Numerator of the local block probability
-	  unsigned short int PwChild; // Numerator of the product of the weighted block probabilities of the child nodes
-
-	  CCTWNode(){ // constructor		
-		a = 0;
-		b = 0;
-	    Pe = 511;      // Should be initialised to MaxValue, make that a static const
-		PwChild = 511;
-		Symbol = 0; 
-		NrTries = 0; 		
-	  }
-	~CCTWNode(){}
-	};
-	
-	CCTWNode *Tree;     // array of CCTWNodes
-	int RootIndex[255]; // array of indices of the RootNodes. Depends on number of bits per character, assuming 8 
-	//TODO only create necessary rootnodes no more. Need to dynamically create this array
-
-	class CCTWContext {
-	public:
-		CCTWContext(CCTWContext const &Input) { // copy constructor
-			Full = Input.Full;
-			Context.assign(Input.Context.begin( ), Input.Context.end( ));			
-		} 
-		CCTWContext() { // default constructor
-			Full = false;			
-		}		
-		~ CCTWContext(){};
-		bool Full;
-		deque<int> Context;	
-	};	
-
-	virtual bool WriteToFile(std::string strFilename, std::string AlphabetName);
-	virtual bool ReadFromFile(std::string strFilename, std::string AlphabetName);	
-// **** used help functions *****
-    
-	private:
-
-	int MapIndex(int b, int f); 	
-		
-	void UpdatePath(int bit, int Update, int ValidDepth, int* & index, unsigned short int & Pw0, unsigned short int & Pw1);
-	// calculates the new weighted conditional probabilities of a zero and a one (Pw0, Pw1) after an update with 'bit'
-	// on the path given in 'index'. 'Update' specifies whether or not the tree is actually updated (LearnSymbol),
-	// or only the probabilities are calculated (GetProbs).
-	
-	int FindPath(CCTWContext & context, char NewChar, int phase, int create, int* & index); 
-    // Puts the Tree-array indices of the CCTWNodes on the path of Context in index. 
-	// Returns depth of found path. ``Create'' specifies whether non-existing nodes need to be
-	// created (LearnSymbol) or not (GetProbs).
-
-	void Scale(uint64 & a, uint64 & b);
-	// Scales both inputs to fit in NrBits
-
-  }; // end class CCTWLanguageModel
-
-} // end namespace 
-
-#endif // __LanguageModelling__CTWLanguageModel_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/DictLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/DictLanguageModel.h
deleted file mode 100644
index 573262d8b16469d8480807ef14b3e4a396b900db..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/DictLanguageModel.h
+++ /dev/null
@@ -1,155 +0,0 @@
-// PPMLanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 1999-2004 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __DictLanguageModel_h__
-#define __DictLanguageModel_h__
-
-#include "../../Common/NoClones.h"
-#include "../../Common/Allocators/PooledAlloc.h"
-#include "PPMLanguageModel.h"
-#include "../Alphabet/AlphInfo.h"
-#include "../Alphabet/AlphabetMap.h"
-#include <vector>
-#include <map>
-#include <string>
-#include <stdio.h>
-
-//static char dumpTrieStr[40000];
-//const int maxcont =200;
-
-namespace Dasher {
-  /// \ingroup LM
-  /// \{
-  class CDictLanguageModel:public CLanguageModel, protected CSettingsUser {
-  public:
-    CDictLanguageModel(CSettingsUser *pCreator, const CAlphInfo *pAlph, const CAlphabetMap *pAlphMap);
-    virtual ~CDictLanguageModel();
-
-    Context CreateEmptyContext();
-    void ReleaseContext(Context context);
-    Context CloneContext(Context context);
-
-    virtual void GetProbs(Context Context, std::vector < unsigned int >&Probs, int iNorm, int iUniform) const;
-
-    virtual void EnterSymbol(Context context, int Symbol);
-    virtual void LearnSymbol(Context context, int Symbol) {
-      EnterSymbol(context, Symbol);
-    };                          // Never learn in this model
-
-  private:
-
-    void MyLearnSymbol(Context context, int Symbol);
-
-    class CDictnode {
-    public:
-      CDictnode * find_symbol(int sym) const;
-      CDictnode *child;
-      CDictnode *next;
-      CDictnode *vine;
-      unsigned short int count;
-      int sbl;
-
-        CDictnode(int sym);
-        CDictnode();
-    };
-
-    class CDictContext {
-    public:
-      CDictContext(CDictContext const &input) {
-        head = input.head;
-        word_head = input.word_head;
-        current_word = input.current_word;
-        order = input.order;
-        word_order = input.word_order;
-    } CDictContext(CDictnode * _head = 0, int _order = 0):head(_head), order(_order), word_head(_head), word_order(0) {
-      };                        // FIXME - doesn't work if we're trying to create a non-empty context
-      ~CDictContext() {
-      };
-      void dump();
-      CDictnode *head;
-      int order;
-
-      std::string current_word;
-      CDictnode *word_head;
-      int word_order;
-
-    };
-    
-    const CAlphabetMap *m_pAlphMap;
-    const int m_iSpaceSymbol;
-
-    CDictnode *AddSymbolToNode(CDictnode * pNode, symbol sym, int *update);
-
-    void AddSymbol(CDictContext & context, symbol sym);
-
-    void CollapseContext(CDictContext & context) const;
-
-    int lookup_word(const std::string & w);
-    int lookup_word_const(const std::string & w) const;
-
-    CDictContext *m_rootcontext;
-    CDictnode *m_pRoot;
-
-    std::map < std::string, int >dict;  // Dictionary
-    int nextid;
-
-    int NodesAllocated;
-
-    int max_order;
-
-    mutable CSimplePooledAlloc < CDictnode > m_NodeAlloc;
-    CPooledAlloc < CDictContext > m_ContextAlloc;
-  };
-  /// \}
-
-////////////////////////////////////////////////////////////////////////
-// Inline functions 
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-
-  inline Dasher::CDictLanguageModel::CDictnode::CDictnode(symbol sym):sbl(sym) {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-////////////////////////////////////////////////////////////////////////
-
-  inline CDictLanguageModel::CDictnode::CDictnode() {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CDictLanguageModel::CreateEmptyContext() {
-    CDictContext *pCont = m_ContextAlloc.Alloc();
-    *pCont = *m_rootcontext;
-    return (Context) pCont;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CDictLanguageModel::CloneContext(Context Copy) {
-    CDictContext *pCont = m_ContextAlloc.Alloc();
-    CDictContext *pCopy = (CDictContext *) Copy;
-    *pCont = *pCopy;
-    return (Context) pCont;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline void CDictLanguageModel::ReleaseContext(Context release) {
-    m_ContextAlloc.Free((CDictContext *) release);
-  }
-
-///////////////////////////////////////////////////////////////////
-
-}                               // end namespace Dasher
-
-#endif /* #ifndef __DictLanguageModel_H__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/HashTable.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/HashTable.h
deleted file mode 100644
index d557651a404aa4b3db38bf7d7833c38f8655cd7f..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/HashTable.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// HashTable.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __Hashtable_h__
-#define __Hashtable_h__
-
-#include "LanguageModel.h"	
-
-using namespace Dasher;
-//using namespace std;
-
-namespace Dasher {
-
-  class CHashTable { //class to store the hashtable used to find indices of nodes	 
-	public:
-		CHashTable(){}		
-		int GetHashOffSet(int c){
-			return Tperm[c];
-		}	 
-		private: 
-			static const unsigned int Tperm[256];				
-  };
-
-} // end namespace 
-
-#endif // __Hashtable_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/JapaneseLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/JapaneseLanguageModel.h
deleted file mode 100644
index af3b9cb5401b5b1da18a8a054a17b80aa8cc1635..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/JapaneseLanguageModel.h
+++ /dev/null
@@ -1,150 +0,0 @@
-// JapaneseLanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 1999-2005 David Ward
-//                    2005 Takashi Kaburagi
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __JapaneseLanguageModel_h__
-#define __JapaneseLanguageModel_h__
-
-#include "../../Common/NoClones.h"
-#include "../../Common/Allocators/PooledAlloc.h"
-
-#include "LanguageModel.h"
-#include "Alphabet.h"
-
-namespace Dasher {
-  /// \ingroup LM
-  /// \{
-  class CJapaneseLanguageModel:public CLanguageModel, private NoClones {
-  public:
-    CJapaneseLanguageModel(CSettingsStore * pSettingsStore, const CAlphInfo *pAlph);
-
-    virtual ~ CJapaneseLanguageModel();
-
-    Context CreateEmptyContext();
-    void ReleaseContext(Context context);
-    Context CloneContext(Context context);
-
-    virtual void EnterSymbol(Context context, int Symbol);
-    virtual void LearnSymbol(Context context, int Symbol);
-
-    virtual void GetProbs(Context context, std::vector < unsigned int >&Probs, int norm) const;
-
-    void dump();
-
-  private:
-    CSettingsStore *m_pSettingsStore;
-
-    class CJaPPMnode {
-    public:
-      CJaPPMnode * find_symbol(int sym) const;
-      CJaPPMnode *child;
-      CJaPPMnode *next;
-      CJaPPMnode *vine;
-      unsigned short int count;
-      short int symbol;
-      CJaPPMnode(int sym);
-      CJaPPMnode();
-    };
-
-    class CJaPPMContext {
-    public:
-      CJaPPMContext(CJaPPMContext const &input) {
-        head = input.head;
-        order = input.order;
-        history = input.history;
-      } CJaPPMContext(CJaPPMnode * _head = 0, int _order = 0):head(_head), order(_order) {
-      };
-      ~CJaPPMContext() {
-      };
-      void dump();
-      CJaPPMnode *head;
-      int order;
-      std::vector < symbol > history;
-    };
-
-    CJaPPMnode *AddSymbolToNode(CJaPPMnode * pNode, int sym, int *update);
-
-    //--Start:Kanji Conversion Related Addition
-    symbol GetStartConversionSymbol() const {
-      return SymbolAlphabet().GetAlphabetPointer()->GetStartConversionSymbol();
-    } //Added 23 June 2005
-    symbol GetEndConversionSymbol() const {
-      return SymbolAlphabet().GetAlphabetPointer()->GetEndConversionSymbol();
-    } //Added 7 July 2005
-    const std::string & GetText(symbol i) const {
-      return SymbolAlphabet().GetAlphabetPointer()->GetText(i);
-    } // return string for i'th symbol
-    const std::string & GetDisplayText(symbol i) const {
-      return SymbolAlphabet().GetAlphabetPointer()->GetDisplayText(i);
-    } // return string for i'th symbol 
-    const void GetSymbols(std::vector < symbol > &Symbols, std::string &Input) const {
-      SymbolAlphabet().GetAlphabetPointer()->GetSymbols(Symbols, Input);
-    }
-    //--End:Kanji Conversion Related
-    virtual void AddSymbol(CJaPPMContext & context, int sym);
-    void dumpSymbol(int sym);
-    void dumpString(char *str, int pos, int len);
-    void dumpTrie(CJaPPMnode * t, int d);
-
-    CJaPPMContext *m_pRootContext;
-    CJaPPMnode *m_pRoot;
-
-    int m_iMaxOrder;
-    double m_dBackOffConstat;
-
-    int NodesAllocated;
-
-    bool bUpdateExclusion;
-
-    mutable CSimplePooledAlloc < CJaPPMnode > m_NodeAlloc;
-    CPooledAlloc < CJaPPMContext > m_ContextAlloc;
-  };
-  /// \}
-
-  ////////////////////////////////////////////////////////////////////////
-
-  inline Dasher::CJapaneseLanguageModel::CJaPPMnode::CJaPPMnode(int sym):symbol(sym) {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-  ////////////////////////////////////////////////////////////////////////
-
-  inline CJapaneseLanguageModel::CJaPPMnode::CJaPPMnode() {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-  ///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CJapaneseLanguageModel::CreateEmptyContext() {
-    CJaPPMContext *pCont = m_ContextAlloc.Alloc();
-    *pCont = *m_pRootContext;
-    return (Context) pCont;
-  }
-
-  ///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CJapaneseLanguageModel::CloneContext(Context Copy) {
-    CJaPPMContext *pCont = m_ContextAlloc.Alloc();
-    CJaPPMContext *pCopy = (CJaPPMContext *) Copy;
-    *pCont = *pCopy;
-    return (Context) pCont;
-  }
-
-  ///////////////////////////////////////////////////////////////////
-
-  inline void CJapaneseLanguageModel::ReleaseContext(Context release) {
-    m_ContextAlloc.Free((CJaPPMContext *) release);
-  }
-
-  ///////////////////////////////////////////////////////////////////
-
-}                               // end namespace Dasher
-
-#endif // __JapaneseLanguageModell_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversion.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversion.h
deleted file mode 100644
index f83951ba6b4e73baef956a8e77df2fdab175f4cd..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversion.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// KanjiConversion.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2005 Takashi Kaburagi
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __KanjiConversion_h__
-#define __KanjiConversion_h__
-
-#include <string>
-#include <vector>
-
-namespace Dasher {
-  /// \ingroup LM
-  /// \{
-  class CKanjiConversion {
-  public:
-    CKanjiConversion();
-    virtual ~ CKanjiConversion();
-
-    virtual int ConvertKanji(std::string);
-
-    class CPhrase {
-    public:
-      CPhrase() {
-      };
-      CPhrase(CPhrase * p) {
-        candidate_list = p->candidate_list;
-      };
-      ~CPhrase() {
-        candidate_list.clear();
-      };
-      std::vector < std::string > candidate_list;
-    };
-
-    std::vector < CPhrase > phrase;       //      a list of phrases
-
-    bool IsInit;                  // true if dictionary is loaded
-  };
-  /// \}
-  
-  inline CKanjiConversion::CKanjiConversion(){
-    IsInit = 0;
-  }
-  
-  inline CKanjiConversion::~CKanjiConversion(){
-    IsInit = 0;
-  }
-  
-  inline int CKanjiConversion::ConvertKanji(std::string s){
-    return 0;
-  }
-}
-
-#endif /* #ifndef __KanjiConversion_H__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionCanna.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionCanna.h
deleted file mode 100644
index c14b340180ffe8aa9f158bc23a1fb3fa38d4a52b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionCanna.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// KanjiConversionCanna.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2005 Takashi Kaburagi
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __KanjiConversionCanna_h__
-#define __KanjiConversionCanna_h__
-
-// For Kanji support
-#include <canna/jrkanji.h>
-#include <canna/RK.h>
-#include <iconv.h>
-
-#include "KanjiConversion.h"
-
-#define BUFSIZE 10240
-
-namespace Dasher {
-  /// \ingroup LM
-  /// \{
-  class CKanjiConversionCanna:public CKanjiConversion {
-  public:
-    CKanjiConversionCanna();
-    virtual ~ CKanjiConversionCanna();
-
-    int ConvertKanji(std::string);
-    int context_id;
-  };
-  /// \}
-}
-#endif /* #ifndef __KanjiConversionCanna_H__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionIME.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionIME.h
deleted file mode 100644
index 99f8d5b2028c0b9158fd7ae0c9b33d96f1bcd9af..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/KanjiConversionIME.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// KanjiConversionIME.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2005 Takashi Kaburagi
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __KanjiConversionIME_h__
-#define __KanjiConversionIME_h__
-
-// For Kanji support
-#include <windows.h>
-#include <imm.h>
-
-#include "KanjiConversion.h"
-
-namespace Dasher {
-  /// \ingroup LM
-  /// \{
-  class CKanjiConversionIME:public CKanjiConversion {
-  public:
-    CKanjiConversionIME();
-    ~CKanjiConversionIME();
-
-    int ConvertKanji(std::string);
-    HIMC hIMC;
-  };
-  /// \}
-}
-#endif /* #ifndef __KanjiConversionCanna_H__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/LanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/LanguageModel.h
deleted file mode 100644
index 816f9f82763eefa207aa3137086db15fd6ef7181..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/LanguageModel.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// LanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2001-2005 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __LanguageModelling_LanguageModel_h__
-#define __LanguageModelling_LanguageModel_h__
-
-#include "../DasherTypes.h"
-
-
-#include <vector>
-
-/////////////////////////////////////////////////////////////////////////////
-
-namespace Dasher {
-  class CLanguageModel;
-}
-
-///
-/// \defgroup LM Language modelling
-/// @{
-
-///
-/// \brief Language model base class
-/// Base class for all language model components
-///
-
-class Dasher::CLanguageModel
-{
-public:
-
-  /////////////////////////////////////////////////////////////////////////////
-
-  CLanguageModel(int iNumSyms) : m_iNumSyms(iNumSyms) {};
-
-  virtual ~CLanguageModel() {};
-  
-  /// 
-  /// Index of registered context 
-  ///
-
-  typedef size_t Context;
-
-  ///
-  /// Representation of an invalid context
-  ///
-
-  static const size_t nullContext = 0;
-
-  ///
-  /// @name Context manipulation
-  /// Functions for creating, destroying and altering contexts
-  /// @{
-
-  ///
-  /// Create an empty context
-  ///
-
-  virtual Context CreateEmptyContext() = 0;
-
-  ///
-  /// Create a copy of an existing context
-  ///
-
-  virtual Context CloneContext(Context Context) = 0;
-
-  ///
-  /// Free resources associated with a context
-  ///
-
-  virtual void ReleaseContext(Context Context) = 0;
-
-  ///
-  /// Update context with a character - only modifies context
-  ///
-
-  virtual void EnterSymbol(Context context, int Symbol) = 0;
-
-  ///
-  /// Add character to the language model at the current context and update the context 
-  /// - modifies both the context and the LanguageModel
-  ///
-
-  virtual void LearnSymbol(Context context, int Symbol) = 0;
-
-  /// @}
-
-  /// @name Prediction
-  /// Determination of probabilities in a given context
-  /// @{
-  
-  ///
-  /// Get symbol probability distribution
-  /// 
-
-  virtual void GetProbs(Context Context, std::vector < unsigned int >&Probs, int iNorm, int iUniform) const = 0;
-
-  /// @}
-
-  /// @name Persistant storage
-  /// Binary representation of language model state
-  /// @{
-
-  virtual bool WriteToFile(std::string strFilename) {
-    return false;
-  };
-
-  virtual bool ReadFromFile(std::string strFilename) {
-    return false;
-  };
-
-  /// @}
-
-  ///
-  /// Get the maximum useful context length for this language model
-
-  virtual int GetContextLength() const {
-    // TODO: Fix hard coded value
-    return 5;
-  };
-
- protected:
-  struct SLMFileHeader {
-    // Magic number ("%DLF" in ASCII)
-    char szMagic[4];
-    // Version of the header
-    unsigned short int iHeaderVersion;
-    // Total size of header (including variable length alphabet name)
-    unsigned short int iHeaderSize;
-    // ID of the language model
-    unsigned short int iLMID;
-    // Version number of the language model
-    unsigned short int iLMVersion;
-    // Minimum compatible version for the language model
-    unsigned short int iLMMinVersion;
-    // Number of characters in the alphabet
-    unsigned short int iAlphabetSize;
-    // UTF-8 encoded alphabet name follows (variable length struct)
-  };
-
-  ///Return the number of symbols over which we are making predictions, plus one
-  /// (to leave space for an initial 0).
-  int GetSize() const {
-    return m_iNumSyms+1;
-  }
-
-  const int m_iNumSyms;
-
-};
-
-/// @}
-
-/////////////////////////////////////////////////////////////////////////////
-
-#endif // ndef __LanguageModelling_LanguageModel_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/MixtureLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/MixtureLanguageModel.h
deleted file mode 100644
index 6f0d518351e5b3246e3885a955b9c923fa2a754e..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/MixtureLanguageModel.h
+++ /dev/null
@@ -1,176 +0,0 @@
-// MixtureLanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2001-2005 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __LanguageModelling_MixtureLanguageModel_h__
-#define __LanguageModelling_MixtureLanguageModel_h__
-
-#include "LanguageModel.h"
-#include "PPMLanguageModel.h"
-#include "DictLanguageModel.h"
-
-//#include <iostream>
-#include <vector>
-
-/////////////////////////////////////////////////////////////////////////////
-
-namespace Dasher {
-  class CMixtureLanguageModel;
-
-  /// \ingroup LM
-  /// \{
-  class CMixtureLanguageModel:public CLanguageModel, protected CSettingsUser {
-  public:
-
-    /////////////////////////////////////////////////////////////////////////////
-
-    CMixtureLanguageModel(CSettingsUser *pCreator, const CAlphInfo *pAlph, const CAlphabetMap *pAlphMap)
-    : CLanguageModel(pAlph->iEnd-1), CSettingsUser(pCreator) {
-
-      //      std::cout << m_pAlphabet << std::endl;
-
-      NextContext = 0;
-
-      lma = new CPPMLanguageModel(this, m_iNumSyms);
-      lmb = new CDictLanguageModel(this, pAlph, pAlphMap);
-
-    };
-
-      virtual ~ CMixtureLanguageModel() {
-      delete lma;
-      delete lmb;
-    };
-
-    /////////////////////////////////////////////////////////////////////////////
-    // Context creation/destruction
-    ////////////////////////////////////////////////////////////////////////////
-
-    // FIXME - need to work out how to do this
-
-    // Create a context (empty)
-    virtual CLanguageModel::Context CreateEmptyContext();
-    virtual CLanguageModel::Context CloneContext(CLanguageModel::Context Context);
-    virtual void ReleaseContext(CLanguageModel::Context Context);
-
-    /////////////////////////////////////////////////////////////////////////////
-    // Context modifiers
-    ////////////////////////////////////////////////////////////////////////////
-
-    // Update context with a character - only modifies context
-    virtual void EnterSymbol(CLanguageModel::Context context, int Symbol) {
-      lma->EnterSymbol(ContextMap.find(context)->second->GetContextA(), Symbol);
-      lmb->EnterSymbol(ContextMap.find(context)->second->GetContextB(), Symbol);
-    };
-
-    // Add character to the language model at the current context and update the context 
-    // - modifies both the context and the LanguageModel
-    virtual void LearnSymbol(CLanguageModel::Context context, int Symbol) {
-      lma->LearnSymbol(ContextMap[context]->GetContextA(), Symbol);
-      lmb->LearnSymbol(ContextMap[context]->GetContextB(), Symbol);
-    };
-
-    /////////////////////////////////////////////////////////////////////////////
-    // Prediction
-    /////////////////////////////////////////////////////////////////////////////
-
-    // Get symbol probability distribution
-    virtual void GetProbs(CLanguageModel::Context context, std::vector < unsigned int >&Probs, int iNorm, int iUniform) const {
-
-      int iNumSymbols = GetSize();
-
-        Probs.resize(iNumSymbols);
-
-        std::vector < unsigned int >ProbsA(iNumSymbols);
-        std::vector < unsigned int >ProbsB(iNumSymbols);
-
-      int iNormA(iNorm * GetLongParameter(LP_LM_MIXTURE) / 100);
-      int iNormB(iNorm - iNormA);
-      
-      // TODO: Fix uniform here
-        lma->GetProbs(ContextMap.find(context)->second->GetContextA(), ProbsA, iNormA, 0);
-        lmb->GetProbs(ContextMap.find(context)->second->GetContextB(), ProbsB, iNormB, 0);
-
-      for(int i(1); i < iNumSymbols; i++) {
-        Probs[i] = ProbsA[i] + ProbsB[i];
-    }};
-
-  private:
-    CLanguageModel * lma;
-    CLanguageModel *lmb;
-
-    class CMixtureContext {
-    public:
-      CMixtureContext(CLanguageModel * _lma, CLanguageModel * _lmb):lma(_lma), lmb(_lmb) {
-        ca = lma->CreateEmptyContext();
-        cb = lmb->CreateEmptyContext();
-      };
-
-    CMixtureContext(CLanguageModel * _lma, CLanguageModel * _lmb, CLanguageModel::Context _ca, CLanguageModel::Context _cb):lma(_lma), lmb(_lmb), ca(_ca), cb(_cb) {
-      };
-
-      ~CMixtureContext() {
-        lma->ReleaseContext(ca);
-        lmb->ReleaseContext(cb);
-      };
-
-      CLanguageModel::Context GetContextA() {
-        return ca;
-      }
-
-      CLanguageModel::Context GetContextB() {
-        return cb;
-      }
-
-    private:
-      CLanguageModel * lma;
-      CLanguageModel *lmb;
-
-      CLanguageModel::Context ca;
-      CLanguageModel::Context cb;
-    };
-
-    int NextContext;
-
-    std::map < int, CMixtureContext * >ContextMap;
-
-  };
-  /// \}
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CMixtureLanguageModel::CreateEmptyContext() {
-    CMixtureContext *pCont = new CMixtureContext(lma, lmb);
-    ContextMap[NextContext] = pCont;
-    ++NextContext;
-    return NextContext - 1;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CMixtureLanguageModel::CloneContext(CLanguageModel::Context Copy) {
-    CMixtureContext *pCopy = ContextMap[Copy];
-    CMixtureContext *pCont = new CMixtureContext(lma, lmb, lma->CloneContext(pCopy->GetContextA()), lmb->CloneContext(pCopy->GetContextB()));
-
-    ContextMap[NextContext] = pCont;
-    ++NextContext;
-    return NextContext - 1;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline void CMixtureLanguageModel::ReleaseContext(CLanguageModel::Context release) {
-    // m_ContextAlloc.Free( (CMixtureContext*) release );
-    delete ContextMap[release];
-    ContextMap[release] = NULL;
-  }
-}
-
-///////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-
-#endif // ndef __LanguageModelling_MixtureLanguageModel_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMLanguageModel.h
deleted file mode 100644
index f08db06abadbd6da79aa1f95c2a6f58f5e455134..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMLanguageModel.h
+++ /dev/null
@@ -1,221 +0,0 @@
-// PPMLanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 1999-2005 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __PPMLanguageModel_h__
-#define __PPMLanguageModel_h__
-
-#include "../../Common/NoClones.h"
-#include "../../Common/Allocators/PooledAlloc.h"
-
-#include "LanguageModel.h"
-#include "../SettingsStore.h"
-#include "stdlib.h"
-#include <vector>
-#include <fstream>
-#include <set>
-#include <map>
-
-namespace Dasher {
-
-  ///
-  /// \ingroup LM
-  /// @{
-  ///
-  /// Common superclass for both PPM and PPMY language models. Implements the PPM tree,
-  /// inc. fast hashing of child nodes by symbol number; and entering and learning symbols
-  /// in a context, i.e. navigating and updating the tree, with update exclusion according
-  /// to LP_LM_UPDATE_EXCLUSION
-  ///
-  /// Subclasses must implement CLanguageModel::GetProbs and a makeNode() method (perhaps
-  /// using a pooled allocator).
-  ///
-  class CAbstractPPM :public CLanguageModel, protected CSettingsUser, private NoClones {
-  protected:
-    class ChildIterator;
-    class CPPMnode {
-    private:
-      union {
-        CPPMnode **m_ppChildren;
-        CPPMnode *m_pChild;
-      };
-      ///Elements in above array, including nulls, as follows:
-      /// (a) negative -> absolute value is number of elems in m_ppChildren, but use direct indexing
-      /// (b) 1 -> use m_pChild as direct pointer to CPPMnode (no array)
-      /// (c) 2-MAX_RUN -> m_ppChildren is unordered array of that many elems
-      /// (d) >MAX_RUN ->  m_ppChildren is an inline hash (overflow to next elem) with that many slots
-      int m_iNumChildSlots;
-      friend class CPPMLanguageModel;
-	  public:
-      ChildIterator children() const;
-      const ChildIterator end() const;
-      void AddChild(CPPMnode *pNewChild, int numSymbols);
-      CPPMnode * find_symbol(symbol sym)const;
-      CPPMnode *vine;
-      unsigned short int count;
-      symbol sym;
-      CPPMnode(symbol sym);
-      CPPMnode();
-      virtual ~CPPMnode();
-      virtual bool eq(CPPMnode *other, std::map<CPPMnode *,CPPMnode *> &equivs);
-	  };
-    class ChildIterator {
-    private:
-      void nxt() {
-        if (m_ppChild == m_ppStop) return;
-        while ((--m_ppChild) != m_ppStop)
-          if (*m_ppChild) break;
-      }
-    public:
-      bool operator==(const ChildIterator &other) const {return m_ppChild==other.m_ppChild && m_ppStop == other.m_ppStop;}
-      bool operator!=(const ChildIterator &other) const {return m_ppChild!=other.m_ppChild || m_ppStop!=other.m_ppStop;}
-      CPPMnode *operator*() const {return (m_ppChild == m_ppStop) ? NULL : *m_ppChild;}
-      ChildIterator &operator++() {nxt(); return *this;} //prefix
-      ChildIterator operator++(int) {ChildIterator temp(*this); nxt(); return temp;}
-      //operator CPPMnode *() {return node;} //implicit conversion
-      //operator bool();                     //implicit conversion 2
-      ChildIterator(CPPMnode *const *ppChild, CPPMnode *const *ppStop) : m_ppChild(ppChild), m_ppStop(ppStop) {nxt();}
-    private:
-      CPPMnode *const *m_ppChild, *const *m_ppStop;
-    };
-
-    class CPPMContext {
-    public:
-      CPPMContext(CPPMContext const &input) {
-        head = input.head;
-        order = input.order;
-      } CPPMContext(CPPMnode * _head = 0, int _order = 0):head(_head), order(_order) {
-      };
-      ~CPPMContext() {
-      };
-      void dump();
-      CPPMnode *head;
-      int order;
-    };
-    
-    ///Makes a new node, of whatever kind (subclass of CPPMnode, perhaps with extra info)
-    /// is required by the subclass, for the specified symbol. (Initial count will be 1.)
-    virtual CPPMnode *makeNode(int sym)=0;
-    /// \param iMaxOrder max order of model; anything <0 means to use LP_LM_MAX_ORDER.
-    CAbstractPPM(CSettingsUser *pCreator, int iNumSyms, CPPMnode *pRoot, int iMaxOrder=-1);
-    
-    void dumpSymbol(symbol sym);
-    void dumpString(char *str, int pos, int len);
-    void dumpTrie(CPPMnode * t, int d);
-    
-    CPPMContext *m_pRootContext;
-    CPPMnode *m_pRoot;
-    
-    /// Cache parameters that don't make sense to adjust during the life of a language model...
-    const int m_iMaxOrder; 
-    const bool bUpdateExclusion;
-    
-  public:
-    virtual bool eq(CAbstractPPM *other);
-    virtual ~CAbstractPPM() {};
-
-    Context CreateEmptyContext();
-    void ReleaseContext(Context context);
-    Context CloneContext(Context context);
-
-    virtual void EnterSymbol(Context context, int Symbol);
-    virtual void LearnSymbol(Context context, int Symbol);
-
-    void dump();
-    bool isValidContext(const Context c) const ;
-  private:
-    CPPMnode *AddSymbolToNode(CPPMnode * pNode, symbol sym);
-
-    CPooledAlloc < CPPMContext > m_ContextAlloc;
-    
-    std::set<const CPPMContext *> m_setContexts;
-  };
-
-  ///"Standard" PPM language model: GetProbs uses counts in PPM child nodes,
-  /// universal alpha+beta values read from LP_LM_ALPHA and LP_LM_BETA,
-  /// max order from LP_LM_MAX_ORDER.
-  class CPPMLanguageModel : public CAbstractPPM {
-  public:
-    CPPMLanguageModel(CSettingsUser *pCreator, int iNumSyms);
-    virtual void GetProbs(Context context, std::vector < unsigned int >&Probs, int norm, int iUniform) const;
-  protected:
-    /// Makes a standard CPPMnode, but using a pooled allocator (m_NodeAlloc) - faster!
-    virtual CPPMnode *makeNode(int sym);
-    
-    virtual bool WriteToFile(std::string strFilename);
-    virtual bool ReadFromFile(std::string strFilename);
-  private:
-    int NodesAllocated;
-
-    bool RecursiveWrite(CPPMnode *pNode, CPPMnode *pNextSibling, std::map<CPPMnode *, int> *pmapIdx, int *pNextIdx, std::ofstream *pOutputFile);
-    int GetIndex(CPPMnode *pAddr, std::map<CPPMnode *, int> *pmapIdx, int *pNextIdx);
-    CPPMnode *GetAddress(int iIndex, std::map<int, CPPMnode*> *pMap);
-
-    mutable CSimplePooledAlloc < CPPMnode > m_NodeAlloc;
-  };
-
-  /// @}
-  inline CAbstractPPM::ChildIterator CPPMLanguageModel::CPPMnode::children() const {
-    //if m_iNumChildSlots = 0 / 1, m_ppChildren is direct pointer, else ptr to array (of pointers)
-    CPPMnode *const *ppChild = (m_iNumChildSlots == 0 || m_iNumChildSlots == 1) ? &m_pChild : m_ppChildren;
-    return ChildIterator(ppChild + abs(m_iNumChildSlots), ppChild - 1);
-  }
-  
-  inline const CAbstractPPM::ChildIterator CPPMLanguageModel::CPPMnode::end() const {
-    //if m_iNumChildSlots = 0 / 1, m_ppChildren is direct pointer, else ptr to array (of pointers)
-    CPPMnode *const *ppChild = (m_iNumChildSlots == 0 || m_iNumChildSlots == 1) ? &m_pChild : m_ppChildren;
-    return ChildIterator(ppChild, ppChild - 1);
-  }
-
-  inline Dasher::CAbstractPPM::CPPMnode::CPPMnode(symbol _sym): sym(_sym) {
-    vine = 0;
-    m_iNumChildSlots = 0;
-    m_ppChildren = NULL;
-    count = 1;
-  }
-
-  inline CAbstractPPM::CPPMnode::CPPMnode() {
-    vine = 0;
-    m_iNumChildSlots = 0;
-    m_ppChildren = NULL;
-    count = 1;
-  }
-  
-  inline CAbstractPPM::CPPMnode::~CPPMnode() {
-    //single child = is direct pointer to node, not array...
-    if (m_iNumChildSlots != 1)
-      delete[] m_ppChildren;
-  }
-
-  inline CLanguageModel::Context CAbstractPPM::CreateEmptyContext() {
-    CPPMContext *pCont = m_ContextAlloc.Alloc();
-    *pCont = *m_pRootContext;
-
-    m_setContexts.insert(pCont);
-
-    return (Context) pCont;
-  }
-
-  inline CLanguageModel::Context CAbstractPPM::CloneContext(Context Copy) {
-    CPPMContext *pCont = m_ContextAlloc.Alloc();
-    CPPMContext *pCopy = (CPPMContext *) Copy;
-    *pCont = *pCopy;
-
-    m_setContexts.insert(pCont);
-
-    return (Context) pCont;
-  }
-
-  inline void CAbstractPPM::ReleaseContext(Context release) {
-
-    m_setContexts.erase(m_setContexts.find((CPPMContext *) release));
-
-    m_ContextAlloc.Free((CPPMContext *) release);
-  }
-}                               // end namespace Dasher
-
-#endif // __LanguageModelling__PPMLanguageModel_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMPYLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMPYLanguageModel.h
deleted file mode 100644
index 6389f53388c6f44335b0350784cb3d01cd9a227b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/PPMPYLanguageModel.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// PPMPYLanguageModel.h
-//
-// Mandarin character - py prediction by a extension in PPM (subtrees attached to Symbol nodes)
-//
-// Started from a replicate of PPMLanguageModel
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 1999-2005 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __PPMPYLanguageModel_h__
-#define __PPMPYLanguageModel_h__
-
-#include "../../Common/NoClones.h"
-#include "../../Common/Allocators/PooledAlloc.h"
-
-#include "PPMLanguageModel.h"
-
-#include <vector>
-
-namespace Dasher {
-
-  ///
-  /// \ingroup LM
-  /// @{
-
-  ///
-  /// PPM language model (with PinYin). Implements a standard PPM model amongst chinese characters,
-  /// but with each ppm-node additionally storing counts of possible Pinyin symbols which might be
-  /// entered in that context. GetProbs returns probabilities for the next Pinyin symbol, which (NB!)
-  /// is _not_ entered into the context; new method GetPartProbs is used to compute probabilities
-  /// for the next chinese symbol (which should be entered into context), by filtering to a set.
-  ///
-  /// That is: from the superclass (CAbstractPPM) perspective, the alphabet is the chinese one;
-  /// hence, contexts store chinese symbols only, and EnterSymbol+LearnSymbol should be called
-  /// with _chinese_ symbol numbers. All PY-alph details are handled in this subclass, with extra
-  /// LearnPYSymbol method for updating the LM's pinyin predictions.
-  class CPPMPYLanguageModel : public CAbstractPPM {
-  public:
-    ///Construct a new PPMPYLanguageModel. 
-    /// \param iNumCHSyms number of symbols in the alphabet in which we actually want to write (i.e. Chinese),
-    /// i.e. from which contexts are formed; this is passed to the CAbstractPPM superclass.
-    /// \param iNumPYSyms number of pinyin phonemes, i.e. which we generate probabilities for in GetProbs
-    /// based (only) on the preceding _Chinese_ symbols.
-    CPPMPYLanguageModel(CSettingsUser *pCreator, int iNumCHsyms, int iNumPYsyms);
-
-    ///Learns a pinyin symbol in the specified context, but does not move the context on.
-    void LearnPYSymbol(Context context, int Symbol);
-
-    ///Predicts probabilities for the next Pinyin symbol (blending as per PPM,
-    /// but using the pychild map rather than child CPPMPYnodes).
-    /// \param Probs vector to fill with predictions for pinyin symbols: will be filled
-    ///  with m_iNumPYsyms numbers plus an initial 0. 
-    virtual void GetProbs(Context context, std::vector < unsigned int >&Probs, int norm, int iUniform) const;
-    
-    ///Predicts probabilities for the next Chinese symbol, filtered to only include symbols within a specified set.
-    /// Predictions are made as per PPM, but considering only counts for the specified symbols; this means
-    /// the value of LP_LM_ALPHA is relative to the total counts of _those_ chinese symbols (in the specified
-    /// context), not to the total count of all chinese symbols in that context.
-    /// \param vChildren vector of (chinese symbol, probability) pairs; on entry, the first element of each pair
-    /// indicates a possible chinese symbol; on exit, the second element will have been filled in.
-    void GetPartProbs(Context context, std::vector<std::pair<symbol, unsigned int> > &vChildren, int norm, int iUniform);
-
-    virtual bool WriteToFile(std::string strFilename);
-    virtual bool ReadFromFile(std::string strFilename);
-
-  protected:
-    class CPPMPYnode : public CPPMnode {
-    public:
-      /// map from pinyin-symbol to count: the number of times each pinyin symbol has been seen in this context
-      std::map<symbol,unsigned short int> pychild;
-      inline CPPMPYnode(int sym) : CPPMnode(sym) {}
-      inline CPPMPYnode() : CPPMnode() {}
-    };
-    CPPMPYnode *makeNode(int sym);
-    
-  private:
-    int NodesAllocated;
-    mutable CSimplePooledAlloc < CPPMPYnode > m_NodeAlloc;
-
-    const int m_iNumPYsyms;
-  };
-
-  /// @}  
-}                               // end namespace Dasher
-
-#endif // __LanguageModelling__PPMPYLanguageModel_h__
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/RoutingPPMLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/RoutingPPMLanguageModel.h
deleted file mode 100644
index ffe1c62af1a852066013be573a5cf241b068e726..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/RoutingPPMLanguageModel.h
+++ /dev/null
@@ -1,93 +0,0 @@
-//
-//  RoutingPPMLanguageModel.h
-//  Dasher
-//
-//  Created by Alan Lawrence on 13/12/11.
-//  Copyright 2011 Cambridge University. All rights reserved.
-//
-
-#ifndef __RoutingPPMLanguageModel_h__
-#define __RoutingPPMLanguageModel_h__
-
-#include "PPMLanguageModel.h"
-
-#include <set>
-
-namespace Dasher {
-  
-  ///
-  /// \ingroup LM
-  /// @{
-  
-  ///
-  /// Routing Language Model: tries to independently learn a sequence of 'base'
-  /// symbols, as per PPM, and also which of multiple routes are used to enter them;
-  /// predicts probabilities for (base*route) by dividing probability for base sym
-  /// (as per first part of model) up between its possible routes according to
-  /// second part of model.
-  ///
-  /// All contexts are base syms only, so extends PPM over base sym; but overrides
-  /// GetProbs to return larger array of probs over (base*route), also LearnSymbol
-  /// (to learn base*route; if only base is available, call LearnBaseSymbol).
-  /// EnterSymbol (which doesn't do learning) takes base symbols (for context) only.
-  class CRoutingPPMLanguageModel : public CAbstractPPM {
-  public:
-    /// \param pBaseSyms vector identifying the base symbol for each (base+route).
-    ///        Thus, size indicates the number of (base+route)s.
-    /// \param pRoutes vector identifying all possible route#s for each base sym
-    ///        Thus, size indicates the number of base syms.
-    /// \param bRoutesContextSensitive if false, the distribution over (routes by
-    ///        which a given symbol is entered) is considered independent of context;
-    ///        if true, likely routes are learnt according to the preceding context.
-    CRoutingPPMLanguageModel(CSettingsUser *pCreator, const std::vector<symbol> *pBaseSyms, const std::vector<std::set<symbol> > *pRoutes, bool bRoutesContextSensitive);
-    
-    /// Learns a base symbol (but not which route we are likely to enter it by).
-    /// Includes moving on the context to include that base sym.
-    void LearnBaseSymbol(Context context, int Symbol);
-    
-    /// Learns a base+route, including moving the context on to include the base.
-    void LearnSymbol(Context context, int Symbol);
-
-    ///Note we can only ever enter base symbols.
-
-    ///Returns the most likely route by which a symbol might have been entered
-    /// \param ctx context whose most-recent character identifies the base symbol
-    ///        in which we are interested.
-    symbol GetBestRoute(Context ctx);
-        
-    ///Predicts probabilities for all (base*route)s.
-    /// \param Probs vector to fill with predictions; will be filled m_pBaseSyms->size()
-    ///  elements (including initial 0)
-    virtual void GetProbs(Context context, std::vector < unsigned int >&Probs, int norm, int iUniform) const;
-
-    ///disable file i/o
-    virtual bool WriteToFile(std::string strFilename);
-    virtual bool ReadFromFile(std::string strFilename);
-    
-  protected:
-    ///Subclass to additionally store counts of route by which this context (i.e.
-    /// the last base symbol within) was entered, when we know that.
-    class CRoutingPPMnode : public CPPMnode {
-    public:
-      ///map from route (to the last base sym only) to count by which that route
-      /// was definitely used.
-      std::map<symbol,unsigned short int> m_routes;
-      inline CRoutingPPMnode(int sym) : CPPMnode(sym) {}
-      inline CRoutingPPMnode() : CPPMnode() {}
-    };
-    ///Always returns a CRoutingPPMnode. TODO, work through class and use standard
-    /// map-less PPMnodes for unambiguous base syms (which have only one route) ?
-    CRoutingPPMnode *makeNode(int sym);
-    
-  private:
-    int NodesAllocated;
-    CSimplePooledAlloc < CRoutingPPMnode > m_NodeAlloc;
-    const std::vector<symbol> *m_pBaseSyms;
-    const std::vector<std::set<symbol> > *m_pRoutes;
-    const bool m_bRoutesContextSensitive;
-  };
-  
-  /// @}  
-}                               // end namespace Dasher
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/WordLanguageModel.h b/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/WordLanguageModel.h
deleted file mode 100644
index 5ba0787a1e58cd793a829cd174f766ed91ac6fad..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/LanguageModelling/WordLanguageModel.h
+++ /dev/null
@@ -1,193 +0,0 @@
-// PPMLanguageModel.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 1999-2004 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __WordLanguageModel_h__
-#define __WordLanguageModel_h__
-
-#include <cstdlib>
-
-#include "../../Common/NoClones.h"
-#include "../../Common/Allocators/PooledAlloc.h"
-#include "PPMLanguageModel.h"
-#include "../SettingsStore.h"
-#include "../Alphabet/AlphInfo.h"
-#include "../Alphabet/AlphabetMap.h"
-
-#include <vector>
-#include <map>
-#include <string>
-#include <stdio.h>
-
-//static char dumpTrieStr[40000];
-//const int maxcont =200;
-
-namespace Dasher {
-
-  /// \ingroup LM
-  /// \{
-
-  ///
-  /// Language model using words
-  ///
-  class CWordLanguageModel:public CLanguageModel, protected CSettingsUser {
-  public:
-    CWordLanguageModel(CSettingsUser *pCreator, const CAlphInfo *pAlph, const CAlphabetMap *pAlphMap);
-      virtual ~ CWordLanguageModel();
-
-    Context CreateEmptyContext();
-    void ReleaseContext(Context context);
-    Context CloneContext(Context context);
-
-    virtual void GetProbs(Context Context, std::vector < unsigned int >&Probs, int iNorm, int iUniform) const;
-
-    virtual void EnterSymbol(Context context, int Symbol);
-    virtual void LearnSymbol(Context context, int Symbol);
-
-  private:
-    
-      class CWordnode {
-    public:
-      CWordnode * find_symbol(int sym)const;
-      CWordnode *child;
-      CWordnode *next;
-      CWordnode *vine;
-      unsigned int count;
-      int sbl;
-
-        CWordnode(int sym);
-        CWordnode();
-
-      void RecursiveDump(std::ofstream & file);
-    };
-
-
-
-    class CWordContext {
-    public:
-      CWordContext(CWordContext const &input) {
-        head = input.head;
-        word_head = input.word_head;
-        current_word = input.current_word;
-        order = input.order;
-        word_order = input.word_order;
-      } 
-      
-      CWordContext(CWordnode * _head = 0, int _order = 0): head(_head), order(_order), word_head(_head), word_order(0)
-	{};                        // FIXME - doesn't work if we're trying to create a non-empty context
-      ~CWordContext() {
-      };
-      void dump();
-      CWordnode *head;
-      int order;
-
-      std::string current_word;
-      CWordnode *word_head;
-      int word_order;
-
-      std::vector < unsigned int >oSpellingProbs;
-      int m_iSpellingNorm;
-      double m_dSpellingFactor;
-
-      /// Pointer to the letter based model - note that we don't
-      /// actually own this, so don't delete it
-
-      CPPMLanguageModel *m_pSpellingModel;
-
-      ///
-      /// The corresponding context in the spelling model
-
-      CPPMLanguageModel::Context oSpellingContext;
-
-    };
-
-    CWordnode *AddSymbolToNode(CWordnode * pNode, symbol sym, int *update, bool bLearn);
-
-    void AddSymbol(CWordContext & context, symbol sym, bool bLearn);
-
-    void CollapseContext(CWordContext & context, bool bLearn);
-
-    int lookup_word(const std::string & w);
-    int lookup_word_const(const std::string & w) const;
-
-    const int m_iSpaceSymbol;
-    
-    CWordContext *m_rootcontext;
-    CWordnode *m_pRoot;
-
-    std::map < std::string, int >dict;  // Dictionary
-    int nextid;
-    int iWordStart;
-
-    int wordidx;
-
-    int NodesAllocated;
-
-    int max_order;
-
-    CPPMLanguageModel *pSpellingModel;  // Use this to predict the spellings of new words
-
-
-    mutable CSimplePooledAlloc < CWordnode > m_NodeAlloc;
-    CPooledAlloc < CWordContext > m_ContextAlloc;
-  };
-  /// \}
-
-////////////////////////////////////////////////////////////////////////
-// Inline functions 
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-
-  inline Dasher::CWordLanguageModel::CWordnode::CWordnode(symbol sym):sbl(sym) {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-////////////////////////////////////////////////////////////////////////
-
-  inline CWordLanguageModel::CWordnode::CWordnode() {
-    child = next = vine = 0;
-    count = 1;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CWordLanguageModel::CreateEmptyContext() {
-    return CloneContext((Context)m_rootcontext);
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline CLanguageModel::Context CWordLanguageModel::CloneContext(Context Copy) {
-    CWordContext *pCont = m_ContextAlloc.Alloc();
-    CWordContext *pCopy = (CWordContext *) Copy;
-    *pCont = *pCopy;
-
-    // Create a clone of the spelling context
-
-    pCont->oSpellingContext = pCont->m_pSpellingModel->CloneContext(pCopy->oSpellingContext);
-
-    return (Context) pCont;
-  }
-
-///////////////////////////////////////////////////////////////////
-
-  inline void CWordLanguageModel::ReleaseContext(Context release) {
-    // Urgh!
-    CWordContext *pCont(reinterpret_cast<CWordContext *>(release));
-    
-    pCont->m_pSpellingModel->ReleaseContext(pCont->oSpellingContext);
-
-    m_ContextAlloc.Free(pCont);
-  }
-
-///////////////////////////////////////////////////////////////////
-
-}                               // end namespace Dasher
-
-#endif /* #ifndef __WordLanguageModel_H__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/MandarinAlphMgr.h b/Source/Thirdparty/Dasher/Include/DasherCore/MandarinAlphMgr.h
deleted file mode 100644
index 8c50c4281cb11a21601f734306498955e10d4c47..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/MandarinAlphMgr.h
+++ /dev/null
@@ -1,256 +0,0 @@
-// MandarinAlphMgr.h
-//
-// Copyright (c) 2009 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __mandarinalphmgr_h__
-#define __mandarinalphmgr_h__
-
-#include "AlphabetManager.h"
-#include <set>
-namespace Dasher {
-
-  class CDasherInterfaceBase;
-
-  /// \ingroup Model
-  /// @{
-
-  /// Subclass of AlphabetManager, generalizing what's needed for Mandarin Dasher.
-  /// This class, along with PPMPYLanguageModel, allows the user to write symbols
-  /// in the target alphabet (e.g. Chinese) aka "CH", by first selecting a group,
-  /// e.g. Pin Yin sound+tone aka "PY" then picking the output symbol within that
-  /// group - with the same output symbol potentially appearing in multiple groups.
-  /// Thus each sentence in the target (CH) alphabet may appear in arbitrarily
-  /// many different (sub)intervals of the real line, but each with different PY.
-  /// The possible mappings between PY and CH are obtained entirely from the
-  /// alphabet definition, but must be (a) fixed regardless of context, and
-  /// (b) enter precisely one CH symbol for each PY selected.
-  ///
-  /// In use, the user first navigates into a PY symbol, but this may not enter any text:
-  /// instead it may offer a choice between multiple CH symbols or "conversions";
-  /// the user navigates into one of these, which is then written, and the process repeats
-  /// (PY-CH-PY-CH...). Some PY symbols offer no choice, i.e. only a single CH symbol, in
-  /// which case the "navigate into CH" step disappears.
-  ///
-  /// The language model treats all occurrences of the same CH symbol the same regardless of PY,
-  /// and builds a context of CH symbols only; however, for a given CH context, it predicts
-  /// both the next PY symbol, and the next CH symbol, using distinct counts. (See GetConversions).
-  /// Note that the group structure of the alphabet definition determines the PY-CH
-  /// mapping (as follows), i.e. changing the structure can change the treatment
-  /// given it by the LM (unlike standard Dasher, where groups are presentational
-  /// only): the _set_ of symbols which are the direct children of each group (not
-  /// in subgroups) are assigned together to one PY symbol for LM purposes, and
-  /// moreover will all be presented together as the first children of the group,
-  /// i.e. before any subgroups. (Indeed, they may even be sorted, according to the
-  /// PYProbabilitySortThreshold.) The name attribute of the group is used in training
-  /// files for disambiguating which PY was used to enter a CH symbol - see
-  /// nested class CMandarinTrainer.
-  ///
-  /// This class is used for alphabets with conversionid==2. 
-  class CMandarinAlphMgr : public CAlphabetManager {
-  private:    
-    /// Trains a PPMPYLanguageModel. The training file is expected to consist of
-    /// a sequence of CH syms (+ context switch commands), where CH syms may (and
-    /// should, if they appear more than once in the alphabet) be preceded by 
-    /// annotations <py> (angle brackets are the default delimiters, alternatives
-    /// may be provided in the start & stop attributes of the alphabet conversionid
-    /// tag). The PY must identify exactly one group containing the following CH symbol.
-    class CMandarinTrainer : public CTrainer {
-    public:
-      /// Construct a new MandarinTrainer. Reads alphabet etc. directly from pMgr.
-      CMandarinTrainer(CMessageDisplay *pMsgs, CMandarinAlphMgr *pMgr);
-    protected:
-      //override...
-      virtual void Train(CAlphabetMap::SymbolStream &syms);
-    private:
-      CMandarinAlphMgr * const m_pMgr;
-      int m_iStartSym;
-      symbol getPYsym(bool bHavePy, const string &strPy, symbol symCh);
-    };
-    
-  public:
-    /// Create a MandarinAlphabetManager!
-    /// \param pAlphabet the Pinyin alphabet. This should have a hierarchy of groups to be
-    /// displayed to the user, where all CH symbols that are direct children of the same group,
-    /// are to be modelled as sharing the PY sound+tone represented by that group.
-    CMandarinAlphMgr(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager, const CAlphInfo *pAlphabet);
-    ~CMandarinAlphMgr();
-    
-    ///ACL: returns a MandarinTrainer too.
-    CTrainer *GetTrainer();
-    
-    ///Disable game mode. The target sentence might appear in several places...!!
-    CWordGeneratorBase *GetGameWords() {return NULL;}
-
-  protected:
-    ///Initializes all our data:
-    /// *Chinese alphabet symbols are rehashed into m_vCHtext, m_vCHdisplayText, and m_vCHcolours;
-    /// *m_pPYgroups is initialized to a group tree of PY sounds;
-    /// *m_vConversionsByGroup, m_vGroupsByConversion record the mapping between the two
-
-    /// the character information methods (GetDisplayText, etc.,
-    /// also MakeMap) return information on the target(chinese)-alphabet symbols, which
-    /// are rehashed from the original/input alphabet to remove duplicates;
-    void InitMap();
-    ///WZ: Mandarin Dasher Change. Sets language model to PPMPY.
-    void CreateLanguageModel();
-    
-    ///Process SGroupInfo's from the alphabet into form suitable for m_pPYgroups
-    /// \param pBase group from alphabet (i.e. containing unhashed CH symbol numbers)
-    /// \return new group, in terms of PY sound+tone/group numbers
-    SGroupInfo *makePYgroup(const SGroupInfo *in);
-    
-    ///Override just to cache the screen so we can make (CH) labels lazily
-    void MakeLabels(CDasherScreen *pScreen);
-
-    ///Override just to create root of tree from m_pPYgroups instead of m_pAlphabet
-    SGroupInfo *copyGroups(const SGroupInfo *pBase, CDasherScreen *pScreen);
-
-    //Remove label on the "symbols" i.e. PY sounds; we use the label
-    // internally to identify a CH group, but for display purposes the symbol is
-    // identified entirely by the PY groups around it.
-    const std::string &GetLabelText(symbol i) const;
-
-    ///Override to create a CMandSym; context and sym both obtained from the
-    // ChineseAlphabet's (hashed) symbols stored in m_map.
-    CAlphNode *CreateSymbolRoot(int iOffset, CLanguageModel::Context ctx, symbol sym);
-
-    class CConvRoot;
-    ///Subclass of CSymbolNode for (converted) chinese-alphabet symbols:
-    /// we need to keep track of the pinyin used to enter it, to output
-    /// correct training text and for rebuilding.
-    class CMandSym : public CSymbolNode {
-    public:
-      CMandarinAlphMgr *mgr() const {return static_cast<CMandarinAlphMgr *>(CSymbolNode::mgr());}
-      ///Symbol constructor: display text from (CH)Alphabet, colour as superclass = from GetColour
-      CMandSym(int iOffset, CMandarinAlphMgr *pMgr, symbol iSymbol, symbol pyParent);
-      CDasherNode *RebuildSymbol(CAlphNode *pParent, symbol iSymbol);
-      CMandSym *RebuildCHSymbol(CConvRoot *pParent, symbol iNewSym);
-    protected:
-      ///Override to compute which pinyin symbol to make our parent...
-      void RebuildForwardsFromAncestor(CAlphNode *pNewNode);
-      bool isInGroup(const SGroupInfo *pGroup);
-      ///Override to read from m_vCHtext
-      virtual const std::string &outputText() const;
-      ///Override to also output <preceding PY> if ambiguous
-      virtual std::string trainText();
-    private:
-      ///The Pinyin symbol used to produce this chinese symbol, if known (0 if not!)
-      symbol m_pyParent;
-    };
-    ///Offers a choice between a set of chinese symbols, all corresponding to a single PY symbol.
-    /// Relative sizes of the CH symbols is obtained by CPPMPYLanguageModel::GetPartProbs, passing
-    /// the set of possible CH symbols.
-    class CConvRoot : public CAlphBase {
-    public:
-      /// \param pySym symbol in pinyin alphabet; must have >1 possible chinese conversion.
-      CConvRoot(int iOffset, CMandarinAlphMgr *pMgr, symbol pySym);
-      CMandarinAlphMgr *mgr() const {return static_cast<CMandarinAlphMgr *>(CAlphBase::mgr());}
-      void PopulateChildren();
-      void PopulateChildrenWithExisting(CMandSym *existing);
-      int ExpectedNumChildren();
-      CLanguageModel::Context iContext;
-      void SetFlag(int iFlag, bool bValue);
-      const symbol m_pySym;
-      ///A "symbol" to be rebuilt, is a PY sound, i.e. potentially this
-      CDasherNode *RebuildSymbol(CAlphNode *pParent, symbol iSymbol);
-    protected:
-      bool isInGroup(const SGroupInfo *pGroup);
-    private:
-      std::vector<std::pair<symbol, unsigned int> > m_vChInfo;
-    };
-    ///Called to create the node for a pinyin leaf symbol;
-    /// Overridden to call either CreateConvRoot or CreateCHSymbol, according to #chinese symbols under specified pinyin
-    /// \param iSymbol Symbol number in pinyin alphabet
-    virtual CDasherNode *CreateSymbolNode(CAlphNode *pParent, symbol iSymbol);
-
-    ///Creates a CConvRoot, for a Pinyin symbol with multiple possible chinese symbols.
-    /// Colour is always 9 (opaque), so no need for background colour.
-    /// \param pParent parent node, context will be taken from here
-    /// \param iPYsym Symbol (leaf) in pinyin alphabet
-    CConvRoot *CreateConvRoot(CAlphNode *pParent, symbol iPYsym);
-      
-    ///Creates a node for (i.e. that will actually enter) a chinese symbol
-    /// \param pParent parent node: could be a CGroupNode (directly), if some pinyin symbol in that group had only
-    /// one corresponding chinese symbol (=> this), or a CConvRoot (if this chinese symbol is one of many possible
-    /// chinese symbols for a particular pinyin).
-    /// \param iContext parent node's context, from which to generate context for this node
-    /// \param iCHsym symbol number in chinese alphabet
-    /// \param pyParent pinyin-alphabet symbol which was used to enter this chinese symbol (if known, else 0)
-    CMandSym *CreateCHSymbol(CDasherNode *pParent, CLanguageModel::Context iContext, symbol iCHsym, symbol pyParent);
-
-    ///Gets the possible chinese symbols for a pinyin one, along with their probabilities in the specified context.
-    ///Probabilities are computed by CPPMPYLanguageModel::GetPartProbs, then renormalized here. (TODO unnecessary?)
-    /// \param vChildren initially empty vector which procedure fills with pairs: first element chinese symbol number,
-    /// second element probability (/NORMALIZATION).    
-    void GetConversions(std::vector<std::pair<symbol,unsigned int> > &vChildren, symbol pySym, Dasher::CLanguageModel::Context context);
-
-    ///Override to get colour for a specified chinese symbol and offset.
-    /// Wraps m_vCHcolours getcolour in case anything specified; if not,
-    /// supplies defaults (different from GetColour(sym,int)!). Also
-    /// implements 2-phase colour cycling by low-bit of offset (as superclass).
-    int GetColour(symbol CHsym, int iOffset) const;
-    
-    ///The same structure as the the original alphabet group tree, but for each
-    /// group in the original which contained symbols (directly, not in subgroups),
-    /// the new group tree allocates exactly one index (for that PY group), being
-    /// the first index in the SGroupInfo. We run the superclass on this group tree,
-    /// so it will call CreateSymbolNode for each index (=PY sound) here, and we
-    /// override that to create PY "symbols" i.e. CConvRoots
-    SGroupInfo *m_pPYgroups;
-    
-    ///Texts (multiple-octet but single unicode chars) for chinese characters - every element unique
-    /// Element 0 is blank, for the "unknown symbol" (easiest to store it)
-    ///TODO We're replicating a lot of CAlphInfo here for character storage; could
-    /// we just inline a CAlphInfo object and use that?
-    std::vector<std::string> m_vCHtext;
-    /// Display texts, as per previous
-    std::vector<std::string> m_vCHdisplayText;
-    ///colour, as per previous
-    std::vector<int> m_vCHcolours;
-    ///Index of paragraph symbol after rehashing
-    int m_iCHpara;
-    ///Labels for rehashed chinese symbols, as previous
-    std::vector<CDasherScreen::Label *> m_vCHLabels;
-    
-    ///Keys are sound (Pinyin) numbers, i.e. the first index in an SGroupInfo
-    /// containing any child symbols; values are the list of target(CH) alphabet
-    // symbols, in the order they appeared in the original group in the input CAlphInfo.
-    std::vector<std::vector<symbol> > m_vConversionsByGroup;
-    
-    ///Keys are (rehashed) chinese-alphabet symbol numbers; values
-    /// are the set of pinyin sounds which convert to that key.
-    std::vector<std::set<symbol> > m_vGroupsByConversion;
-    
-    ///Keys are sound (pinyin) numbers; values are the name attributes
-    /// of the corresponding SGroupInfos to which those numbers (in the new
-    /// tree) are allocated - i.e. the name in the original alphabet
-    /// file, of the group containing the conversions which we have joined together
-    /// under the new pinyin #.
-    std::vector<std::string> m_vGroupNames;
-
-    //Used to create labels lazily
-    CDasherScreen *m_pScreen;
-    CDasherScreen::Label *GetCHLabel(int iCHsym);
-  };
-  /// @}
-
-}
-
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/MemoryLeak.h b/Source/Thirdparty/Dasher/Include/DasherCore/MemoryLeak.h
deleted file mode 100644
index a31be32675a0a70a658d9cbc2baa5ff08bc5c444..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/MemoryLeak.h
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#ifdef _WIN322
-
-// Include the following code at the top of a cpp file to enable
-// line level memory leak detection on Windows:
-//
-//      // Track memory leaks on Windows to the line that new'd the memory
-//      #ifdef _WIN32
-//      #ifdef _DEBUG
-//      #define DEBUG_NEW new( _NORMAL_BLOCK, THIS_FILE, __LINE__ )
-//      #define new DEBUG_NEW
-//      #undef THIS_FILE
-//      static char THIS_FILE[] = __FILE__;
-//      #endif
-//      #endif
-
-#pragma once
-
-#include <windows.h>
-
-#ifdef _DEBUG
-#define _CRTDBG_MAP_ALLOC
-#include <crtdbg.h>
-#define DEBUG_NEW new( _NORMAL_BLOCK, THIS_FILE, __LINE__ )
-#endif
-
-void EnableLeakDetection(void);
-void SetOutputLeaksToFile();
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Messages.h b/Source/Thirdparty/Dasher/Include/DasherCore/Messages.h
deleted file mode 100644
index b8cfdc2d3ead11bb24880c736476f1ec7d214d5a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Messages.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// Messages.h
-//
-// Created 2011 by Alan Lawrence
-// Copyright (c) 2011 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __MESSAGES_H__
-#define __MESSAGES_H__
-
-///Abstract superclass = interface for displaying messages to the user.
-///Each platform must implement: see CDasherInterfaceBase, CDashIntfScreenMsgs
-
-#include <string>
-
-/// \ingroup Core
-/// @{
-
-class CMessageDisplay {
-public:
-  ///Displays a message to the user - somehow. Two styles
-  /// of message are supported: (1) modal messages, i.e. which interrupt text entry;
-  /// these should be explicitly dismissed (somehow) before text entry resumes; and
-  /// (2) non-modal or asynchronous messages, which should be displayed in the background
-  /// but allow the user to continue text entry as normal.
-  /// NOTE for subclasses: it is best not to popup any modal window here but rather to
-  /// store all messages until the next frame is rendered and then combine them into one.
-  /// \param strText text of message to display.
-  /// \param bInterrupt if true, text entry should be interrupted; if false, user should
-  /// be able to continue writing uninterrupted.
-  virtual void Message(const std::string &strText, bool bInterrupt)=0;
-  
-  ///Utility method for common case of displaying a modal message with a format
-  /// string containing a single %s.
-  void FormatMessageWithString(const char* fmt, const char* str);
-
-  ///Utility method for less-but-still-quite-common case of displaying a modal
-  /// message with a format string containing two %s
-  void FormatMessageWith2Strings(const char* fmt, const char* str1, const char* str2);
-
-};
-
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ModuleManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/ModuleManager.h
deleted file mode 100644
index 116e25b058d947174114903e88b88e7621a8de2c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ModuleManager.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// ModuleManager.h
-//
-// Copyright (c) 2008 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef MODULE_MANAGER_H
-#define MODULE_MANAGER_H
-
-#include "DasherModule.h"
-
-#include <map>
-#include <string>
-#include <vector>
-
-namespace Dasher {
-  class CDasherInput;
-  class CInputFilter;
-
-enum ModuleType {InputDevice = 0, InputMethod = 1};
-
-/// \ingroup Core
-/// \{
-class CModuleManager {
- public:
-  ~CModuleManager();
-  CDasherModule *RegisterModule(CDasherModule *pModule);
-  CDasherModule *GetModule(ModuleID_t iID);
-  CDasherModule *GetModuleByName(const std::string strName);
-  CDasherInput *GetDefaultInputDevice();
-  CInputFilter *GetDefaultInputMethod();
-  void SetDefaultInputDevice(CDasherInput *);
-  void SetDefaultInputMethod(CInputFilter *);
-
-  void ListModules(int iType, std::vector<std::string> &vList);
-
- private:
-  std::vector<CDasherModule *> m_vModules;
-  std::map<std::string, ModuleID_t> m_mapNameToID;
-  CDasherInput *m_pDefaultInputDevice;
-  CInputFilter *m_pDefaultInputMethod;
-};
-/// \}
-
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/NodeCreationManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/NodeCreationManager.h
deleted file mode 100644
index 26d88781a0e90c736a52e226652b6b94f2de539c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/NodeCreationManager.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef __NodeCreationManager_h__
-#define __NodeCreationManager_h__
-
-#include "Alphabet/AlphabetMap.h"
-#include "Alphabet/AlphIO.h"
-#include "AlphabetManager.h"
-#include "ConversionManager.h"
-#include "ControlManager.h"
-#include "LanguageModelling/LanguageModel.h"
-#include "Trainer.h"
-#include "Event.h"
-#include "SettingsStore.h"
-
-#include <string>
-#include <vector>
-
-namespace Dasher {
-  class CDasherNode;
-  class CDasherInterfaceBase;
-  class CControlManager;
-  class CDasherScreen;
-  class CControlBoxIO;
-}
-//TODO why is CNodeCreationManager _not_ in namespace Dasher?!?!
-/// \ingroup Model
-/// @{
-class CNodeCreationManager : public Dasher::CSettingsUserObserver {
- public:
-  CNodeCreationManager(Dasher::CSettingsUser *pCreateFrom,
-                       Dasher::CDasherInterfaceBase *pInterface,
-                       const Dasher::CAlphIO *pAlphIO,
-                       const Dasher::CControlBoxIO *pControlBoxIO);
-  ~CNodeCreationManager();
-  
-  ///Tells us the screen on which all created node labels must be rendered
-  void ChangeScreen(Dasher::CDasherScreen *pScreen);
-  
-  ///Create/ or not Control Manager, as appropriate (according to
-  /// BP_CONTROL_MODE and game mode status)
-  void CreateControlBox(const Dasher::CControlBoxIO* pControlIO);
-
-  void HandleEvent(int iParameter) {}
-  ///
-  /// Get a root node of a particular type
-  ///
-
-  Dasher::CAlphabetManager *GetAlphabetManager() {return m_pAlphabetManager;}
-
-  Dasher::CControlManager *GetControlManager() {return m_pControlManager;}
-  
-  ///
-  /// Get a reference to the current alphabet
-  ///
-
-  const Dasher::CAlphInfo *GetAlphabet() const {
-    return m_pAlphabetManager->GetAlphabet();
-  }
-
-  void ImportTrainingText(const std::string &strPath);
-
-  unsigned long GetAlphNodeNormalization() {return m_iAlphNorm;}
-  
-  ///Called to add any non-alphabet (non-symbol) children to a top-level node (root or symbol).
-  /// Default is just to add the control node, if appropriate.
-  void AddExtras(Dasher::CDasherNode *pParent);
- private:
-  Dasher::CTrainer *m_pTrainer;
-  
-  Dasher::CDasherInterfaceBase *m_pInterface;
-  
-  Dasher::CAlphabetManager *m_pAlphabetManager;
-  Dasher::CControlManager *m_pControlManager;
-  
-  ///Amount of probability space to assign to letters (language model + smoothing),
-  /// i.e. remaining after taking away whatever we need for control mode (perhaps 0)
-  unsigned long m_iAlphNorm;
-  
-  ///Screen to use to create node labels
-  Dasher::CDasherScreen *m_pScreen;
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/NodeManager.h b/Source/Thirdparty/Dasher/Include/DasherCore/NodeManager.h
deleted file mode 100644
index a53f951200019d7696315d9dd99ee915d1e5c808..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/NodeManager.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __nodemanager_h__
-#define __nodemanager_h__
-namespace Dasher {
-  
-  /// A marker class for anything that can be returned by CDasherNode::mgr()
-  ///  - as a void* return type can't be covariantly overridden :-(
-  class CNodeManager {
-  };
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Observable.h b/Source/Thirdparty/Dasher/Include/DasherCore/Observable.h
deleted file mode 100644
index 4a00c80f54b499d9c0ce7a6c865b97b00746a9a2..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Observable.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef __eventhandler_h__
-#define __eventhandler_h__
-
-#include <list>
-#include <algorithm>
-
-template <typename  T> class Observable;
-
-///Thing that listens to events - parameterized by the type of event.
-template <typename T> class Observer {
-public:
-  virtual ~Observer() {};
-  ///Called to indicate an event has occurred! Subclasses must implement.
-  virtual void HandleEvent(T evt)=0;
-};
-
-///An Event handler for a single type of event: maintains a list of listeners,
-/// allows listeners to (un/)register, and allows dispatching of events to all
-/// listeners.
-template <typename T> class Observable {
-public:
-  Observable();
-  void Register(Observer<T> *pLstnr);
-  void Unregister(Observer<T> *pLstnr);
-  void DispatchEvent(T t);
-private:
-  typedef typename std::list< Observer<T>* > ListenerList;
-  typedef typename ListenerList::iterator L_it;
-  ListenerList m_vListeners;
-  ListenerList m_vListenersToAdd;
-  int m_iInHandler;
-};
-
-template <typename T> Observable<T>::Observable()
-{
-  m_iInHandler = 0;
-}
-
-///Utility class for Observers which register with an Observable at construction
-/// and deregister at destruction. (I.e. which are strictly shorter-lived, than the
-/// Observable they listen to!)
-template <typename T> class TransientObserver : public Observer<T> {
-public:
-  TransientObserver(Observable<T> *pObservable) : m_pEventHandler(pObservable) {
-    m_pEventHandler->Register(this);
-  }
-  virtual ~TransientObserver() {
-    m_pEventHandler->Unregister(this);
-  }
-protected:
-  Observable<T> *m_pEventHandler;
-};
-
-template <typename T> void Observable<T>::Register(Observer<T> *pListener) {
-  if (m_iInHandler == 0)
-    m_vListeners.push_back(pListener);
-  else
-    m_vListenersToAdd.push_back(pListener);
-}
-
-template <typename T> void Observable<T>::Unregister(Observer<T> *pListener) {
-  if (m_iInHandler == 0)
-    m_vListeners.remove(pListener);
-  else {
-    L_it it = std::find(m_vListeners.begin(), m_vListeners.end(), pListener);
-    if (it != m_vListeners.end())
-	  *it = NULL;
-  }
-}
-
-template <typename T> void Observable<T>::DispatchEvent(T evt) {
-
-  // Speed up start-up before any listeners are registered
-  if (m_vListeners.empty()) return;
-
-  // Just in case the same event handler was registered twice.
-  if (m_iInHandler == 0)
-    m_vListeners.unique();
-
-  // We may end up here recursively, so keep track of how far down we
-  // are, and only permit new handlers to be registered after all
-  // messages are processed.
-
-  // An alternative approach would be a message queue - this might actually be a bit more sensible
-  ++m_iInHandler;
-
-  // Loop through components and notify them of the event
-  for(L_it I=m_vListeners.begin(), E=m_vListeners.end(); I!=E; I++) {
-    if (*I != NULL) { // Listener not removed during iteration
-      (*I)->HandleEvent(evt);
-    }
-  }
-
-  --m_iInHandler;
-
-  if (m_iInHandler == 0) {
-    m_vListeners.remove(NULL);
-    m_vListeners.splice(m_vListeners.end(), m_vListenersToAdd);
-  }
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonDynamicFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonDynamicFilter.h
deleted file mode 100644
index 858c648e3778b76f88322174051d779b027f4bab..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonDynamicFilter.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// OneButtonDynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __ONE_BUTTON_DYNAMIC_FILTER_H__
-#define __ONE_BUTTON_DYNAMIC_FILTER_H__
-
-#include "ButtonMultiPress.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-class COneButtonDynamicFilter : public CButtonMultiPress {
- public:
-  COneButtonDynamicFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate);
-  ~COneButtonDynamicFilter();
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
-  //override to get mouse clicks / taps back again...
-  virtual void KeyDown(unsigned long Time, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long Time, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-
- private:
-  unsigned int maxClickCount() {return 2;} //double-click to reverse
-  virtual void TimerImpl(unsigned long Time, CDasherView *pView, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  virtual void ActionButton(unsigned long iTime, int iButton, int iType, CDasherModel *pModel);
-  
-  int m_iTarget;
-
-  int m_iTargetX[2];
-  int m_iTargetY[2];
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonFilter.h
deleted file mode 100644
index 037baae3d77065836b0d26e3d97e4c2995e8ebfe..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/OneButtonFilter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __ONE_BUTTON_FILTER_H__
-#define __ONE_BUTTON_FILTER_H__
-
-#include "InputFilter.h"
-#include "SettingsStore.h"
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-class COneButtonFilter : public CStaticFilter {
- public:
-  COneButtonFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface);
-
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
-  virtual void Timer(unsigned long Time, CDasherView *pView, CDasherInput *pInput, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
- private:
-  ///true iff the scan line is moving down/up, or is in the 'reverse' stage
-  bool bStarted;
-  ///set by DecorateView: true iff we have drawn an undecorated display, else false.
-  bool m_bNoDecorations;
-  unsigned long iStartTime;
-  int iLocation;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/OneDimensionalFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/OneDimensionalFilter.h
deleted file mode 100644
index 5d516c0728b9fec547f416de30d325094803ecf0..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/OneDimensionalFilter.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __ONE_DIMENSIONAL_FILTER_H__
-#define __ONE_DIMENSIONAL_FILTER_H__
-
-#include "DefaultFilter.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-class COneDimensionalFilter : public CDefaultFilter {
- public:
-//  COneDimensionalFilter(CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, CDasherModel *m_pDasherModel);
-  COneDimensionalFilter(CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID = 4, const char *szName = _("One Dimensional Mode"));
-  ///Override to remove DefaultFilters BP_REMAP_XTREME, BP_AUTOCALIBRATE, LP_OFFSET
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
- protected:
-  virtual void ApplyTransform(myint &iDasherX, myint &iDasherY, CDasherView *pView);
-  const myint forwardmax;
-  virtual CStartHandler *MakeStartHandler();
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Parameters.h b/Source/Thirdparty/Dasher/Include/DasherCore/Parameters.h
deleted file mode 100644
index de844abaefe685bf1f17817ea14823e00fe7ee43..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Parameters.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// Parameters.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __parameters_h__
-#define __parameters_h__
-
-#include "../Common/Common.h"
-
-#include <string>
-
-// All parameters go into the enums here
-// They are unique across the different types
-enum { 
-  BP_DRAW_MOUSE_LINE, BP_DRAW_MOUSE, BP_CURVE_MOUSE_LINE,
-  BP_START_MOUSE,
-  BP_START_SPACE, BP_CONTROL_MODE, 
-  BP_MOUSEPOS_MODE,
-  BP_PALETTE_CHANGE, BP_TURBO_MODE, BP_EXACT_DYNAMICS,
-  BP_AUTOCALIBRATE, BP_REMAP_XTREME,
-  BP_AUTO_SPEEDCONTROL,
-  BP_LM_ADAPTIVE, BP_SOCKET_DEBUG, 
-  BP_CIRCLE_START, BP_GLOBAL_KEYBOARD, BP_NONLINEAR_Y,
-  BP_STOP_OUTSIDE, BP_BACKOFF_BUTTON,
-  BP_TWOBUTTON_REVERSE, BP_2B_INVERT_DOUBLE, BP_SLOW_START,
-  BP_COPY_ALL_ON_STOP, BP_SPEAK_ALL_ON_STOP, BP_SPEAK_WORDS,
-  BP_GAME_HELP_DRAW_PATH, BP_TWO_PUSH_RELEASE_TIME,
-  BP_SLOW_CONTROL_BOX,
-  END_OF_BPS
-};
-
-enum { 
-  LP_ORIENTATION = END_OF_BPS, LP_MAX_BITRATE, LP_FRAMERATE,
-  LP_LANGUAGE_MODEL_ID, LP_DASHER_FONTSIZE, LP_MESSAGE_FONTSIZE, LP_SHAPE_TYPE,
-  LP_UNIFORM, LP_YSCALE, LP_MOUSEPOSDIST, LP_PY_PROB_SORT_THRES, LP_MESSAGE_TIME,
-  LP_LM_MAX_ORDER, LP_LM_EXCLUSION,
-  LP_LM_UPDATE_EXCLUSION, LP_LM_ALPHA, LP_LM_BETA,
-  LP_LM_MIXTURE, LP_LINE_WIDTH, LP_GEOMETRY,
-  LP_LM_WORD_ALPHA, LP_USER_LOG_LEVEL_MASK, 
-  LP_ZOOMSTEPS, LP_B, LP_S, LP_BUTTON_SCAN_TIME, LP_R, LP_RIGHTZOOM,
-  LP_NODE_BUDGET, LP_OUTLINE_WIDTH, LP_MIN_NODE_SIZE, LP_NONLINEAR_X,
-  LP_AUTOSPEED_SENSITIVITY, LP_SOCKET_PORT, LP_SOCKET_INPUT_X_MIN, LP_SOCKET_INPUT_X_MAX,
-  LP_SOCKET_INPUT_Y_MIN, LP_SOCKET_INPUT_Y_MAX,
-  LP_CIRCLE_PERCENT, LP_TWO_BUTTON_OFFSET, LP_HOLD_TIME, LP_MULTIPRESS_TIME,
-  LP_SLOW_START_TIME,
-  LP_TWO_PUSH_OUTER, LP_TWO_PUSH_LONG, LP_TWO_PUSH_SHORT, LP_TWO_PUSH_TOLERANCE,
-  LP_DYNAMIC_BUTTON_LAG, LP_STATIC1B_TIME, LP_STATIC1B_ZOOM,
-  LP_DEMO_SPRING, LP_DEMO_NOISE_MEM, LP_DEMO_NOISE_MAG, LP_MAXZOOM, 
-  LP_DYNAMIC_SPEED_INC, LP_DYNAMIC_SPEED_FREQ, LP_DYNAMIC_SPEED_DEC,
-  LP_TAP_TIME, LP_MARGIN_WIDTH, LP_TARGET_OFFSET, LP_X_LIMIT_SPEED,
-  LP_GAME_HELP_DIST, LP_GAME_HELP_TIME,
-  END_OF_LPS
-};
-
-enum {
-  SP_ALPHABET_ID = END_OF_LPS, SP_ALPHABET_1, SP_ALPHABET_2, SP_ALPHABET_3, SP_ALPHABET_4, 
-  SP_COLOUR_ID, SP_CONTROL_BOX_ID, SP_DASHER_FONT, SP_GAME_TEXT_FILE,
-  SP_SOCKET_INPUT_X_LABEL, SP_SOCKET_INPUT_Y_LABEL, SP_INPUT_FILTER, SP_INPUT_DEVICE,
-  SP_BUTTON_0, SP_BUTTON_1, SP_BUTTON_2, SP_BUTTON_3, SP_BUTTON_4, SP_BUTTON_10, SP_JOYSTICK_DEVICE,
-  END_OF_SPS
-};
-
-// Define first int value of the first element of each type.
-// Useful for offsetting into specific arrays,
-// since each setting is a unique int, but all 3 arrays start at 0
-#define FIRST_BP 0
-#define FIRST_LP END_OF_BPS
-#define FIRST_SP END_OF_LPS
-
-// Define the number of each type of setting
-#define NUM_OF_BPS END_OF_BPS
-#define NUM_OF_LPS (END_OF_LPS - END_OF_BPS)
-#define NUM_OF_SPS (END_OF_SPS - END_OF_LPS)
-
-enum class Persistence { PERSISTENT, EPHEMERAL };
-
-struct CParameterChange {
-    CParameterChange(int parameter, bool value)
-        :iParameter(parameter), bool_value(value) {}
-    CParameterChange(int parameter, long value)
-        :iParameter(parameter), long_value(value) {}
-    CParameterChange(int parameter, const char* value)
-        :iParameter(parameter),string_value(value){}
-    int iParameter;
-    bool bool_value = false;
-    long long_value = 0;
-    const char* string_value = "";
-};
-
-namespace Dasher {
-  ///Namespace containing all static (i.e. fixed/constant) data about
-  /// settings, that is _not_ dependent on the storage mechanism,
-  /// the SettingsStore in use, or platform-specific details.
-  /// (Except, some defaults are #ifdef'd according to platform).
-  /// This data does NOT change at runtime.
-  namespace Settings {
-    ///Structure storing fixed data about bool settings...
-    struct bp_table {
-      int key;
-      const char *regName;
-      Persistence persistent;
-      bool defaultValue;
-      const char *humanReadable;
-    };
-    ///One bp_table per bool param, in the same order as the enum declarations
-    /// (i.e.: boolparamtable[x]->key == x-FIRST_BP)
-    extern const bp_table boolparamtable[NUM_OF_BPS];
-
-    ///Structure storing fixed data about long settings...
-    struct lp_table {
-      int key;
-      const char *regName;
-      Persistence persistent;
-      long defaultValue;
-      const char *humanReadable;
-    };
-    ///One lp_table per long param, in the same order as the enum declarations
-    /// (i.e.: longparamtable[x]->key == x-FIRST_LP)
-    extern const lp_table longparamtable[NUM_OF_LPS];
-    
-    ///Structure storing fixed data about string settings...
-    struct sp_table {
-      int key;
-      const char *regName;
-      Persistence persistent;
-      const char *defaultValue;
-      const char *humanReadable;
-    };
-    
-    ///One sp_table per string param, in the same order as the enum declarations
-    /// (i.e.: stringparamtable[x]->key == x-FIRST_SP)
-    extern const sp_table stringparamtable[NUM_OF_SPS];
-    
-    // Types that are parameters can be
-    enum ParameterType {
-      ParamBool,
-      ParamLong,
-      ParamString,
-      ParamInvalid
-    };
-    
-    ///Get the type of a parameter by its key.
-    /// \param iParameter one of the BP_*, LP_* or SP_* enum constants
-    /// \return ParamBool, ParamLong or ParamString, respectively; or
-    /// ParamInvalid if iParameter is not in the range of those enums.
-    ParameterType GetParameterType(int iParameter);
-    
-    ///Gets the regName member of the struct for a parameter (of any of the 3 types).
-    /// This is appropriate for use as a key for storing the setting value into e.g. a registry.
-    /// Note - returns a string not a reference to one, because the table stores only a char*.
-    /// \param iParameter one of the BP_*, LP_* or SP_* enum constants
-    /// \return the regName member of the corresponding bp_table, lp_table,
-    /// or sp_table struct.
-    std::string GetParameterName(int iParameter);
-  }
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/RoutingAlphMgr.h b/Source/Thirdparty/Dasher/Include/DasherCore/RoutingAlphMgr.h
deleted file mode 100644
index b36f65bd14c22f19868c2b98639b5e3c8dfb2142..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/RoutingAlphMgr.h
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-//  RoutingAlphMgr.h
-//  Dasher
-//
-//  Created by Alan Lawrence on 13/12/11.
-//  Copyright 2011 Cambridge University. All rights reserved.
-//
-
-#ifndef __RoutingAlphMgr_h__
-#define __RoutingAlphMgr_h__
-
-#include "../Common/Common.h"
-
-#include "AlphabetManager.h"
-#include "LanguageModelling/RoutingPPMLanguageModel.h"
-
-namespace Dasher {
-  
-  class CDasherInterfaceBase;
-  
-  /// \ingroup Model
-  /// @{
-  
-  ///An AlphabetManager that works with alphabets containing duplicate symbols;
-  /// hence, an alternative to MandarinAlphMgr. Uses a RoutingPPMLanguageModel,
-  /// to separately learn both the output symbols and the ways the user wishes
-  /// to write them.
-  /// The alphabet + group structure is presented to the user exactly as per
-  /// alphabet definition, including repeated symbols, sized as per the LM; groups
-  /// play no part in modelling, just being sized to fit around their contents,
-  /// as per standard Dasher. However, just as in MandarinAlphMgr, the names of
-  /// the groups are used in training files to disambiguate which route was used
-  /// to enter a symbol - see nested class CRoutingTrainer. (The aim is that both
-  /// this and CMandarinAlphMgr can be used with the same training files.)
-  ///
-  /// Note we use the term 'base' or 'base symbol' to indicate a particular character
-  /// appearing in the output; this may appear multiple times in the alphabet, in
-  /// which case each occurrence is called a 'route'.
-  ///
-  /// This class is used for alphabets with conversionid 3 or 4; the former differs
-  /// in treating the route by which the user likes to enter a particular base symbol,
-  /// as not dependent on context.
-  class CRoutingAlphMgr : public CAlphabetManager {
-  public:
-    /// Create a RoutingAlphMgr! Changes are in InitMap() and CreateLanguageModel()...
-    CRoutingAlphMgr(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CNodeCreationManager *pNCManager, const CAlphInfo *pAlphabet);
-    
-    ///Override to return a CRoutingTrainer
-    CTrainer *GetTrainer();
-    
-    ///Disable game mode. The target sentence might appear in several places...!!
-    CWordGeneratorBase *GetGameWords() {return NULL;}
-
-  protected:
-    ///Fills map w/ rehashed base symbols, filling m_vBaseSyms, m_vRoutes,
-    /// and m_vGroupsByRoute to record which symbols were identified together.
-    void InitMap();
-    ///Override to create a RoutingPPMLanguageModel
-    void CreateLanguageModel();
-
-    ///Creates a symbol, i.e. including route.
-    /// Both ctx and sym were reconstructed from m_map (filled by InitMap), so
-    /// are in terms of hashed base symbols; thus, this method identifies the best
-    /// route by which that base may have been entered, and creates a symbol node
-    /// for that.
-    CAlphNode *CreateSymbolRoot(int iOffset, CLanguageModel::Context ctx, symbol sym);
-    
-    /// Override to create a CRoutedSym and enter only base sym into the LM
-    ///\param iSymbol symbol number from the alphabet defn, i.e. identifies both
-    /// base symbol and route
-    virtual CDasherNode *CreateSymbolNode(CAlphNode *pParent, symbol iSymbol);
-
-    ///Subclass to override trainText
-    class CRoutedSym : public CSymbolNode {
-    public:
-      string trainText();
-      CRoutedSym(int iOffset, CDasherScreen::Label *pLabel, CRoutingAlphMgr *pMgr, symbol iSymbol);
-    protected:
-      CRoutingAlphMgr *mgr() const {return static_cast<CRoutingAlphMgr*>(m_pMgr);}
-    };
-    ///Override to provide different defaults! Otherwise as GetColour,
-    /// this uses the character data in the alphabet anyway.
-    int GetColour(symbol CHsym, int iOffset) const;
-  private:
-    ///for each (not necessarily unique) symbol in the alphabet, the id of the unique base symbol with that text
-    std::vector<symbol> m_vBaseSyms;
-    ///for each base symbol, the symbol#'s of all syms-with-routes with that text
-    std::vector<std::set<symbol> > m_vRoutes;
-    ///closest containing group for each route
-    std::vector<const SGroupInfo*> m_vGroupsByRoute;
-    
-    /// Trains a RoutingPPMLanguageModel. Just as for MandarinAlphMgr/PPMPY, the
-    /// training file is expected to consist of a sequence of CH syms (+ context
-    /// switch commands), where CH syms may be preceded by annotations <py> 
-    /// (angle brackets are the default delimiters, alternatives may be provided
-    /// in the start & stop attributes of the alphabet conversionid tag). The PY
-    /// should identify exactly one group containing the following CH symbol (or
-    /// will be ignored, but the LM handles ambiguous base symbols where no route
-    /// is specified, somewhat better than PPMPY).
-    class CRoutingTrainer : public CTrainer {
-    public:
-      CRoutingTrainer(CMessageDisplay *pMsgs, CRoutingAlphMgr *pMgr);
-    protected:
-      //override...
-      virtual void Train(CAlphabetMap::SymbolStream &syms);
-    private:
-      CRoutingAlphMgr * const m_pMgr;
-      ///Symbol # of the start-of-annotation, or 0 if out-of-alphabet
-      int m_iStartSym;
-      symbol getRoute(bool bHaveRoute, const string &strRoute, symbol baseSym);
-    };
-  };
-  /// @}
-  
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/SCENode.h b/Source/Thirdparty/Dasher/Include/DasherCore/SCENode.h
deleted file mode 100644
index f061008be03aa7e487720b2e83ebe940dbd39e69..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/SCENode.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// SCENode.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __SCENODE_H__
-#define __SCENODE_H__
-
-/*Common Node Definition for Chinese Pinyin (possibly also Japanese) 
-  Conversion Library and Dasher ConversionManager*/
-
-#include <vector>
-
-/// \ingroup Model
-/// \{
-class SCENode {
- public:
-  SCENode();
-
-  ~SCENode();
-
-  void Ref() {
-    ++m_iRefCount;
-  };
-
-  void Unref() {
-    --m_iRefCount;
-    
-    if(m_iRefCount == 0) {
-      delete this;
-    }
-  };
-  
-  const std::vector<SCENode *> &GetChildren() const {
-    return m_vChildren;
-  }
-  void AddChild(SCENode *pChild) {
-    m_vChildren.push_back(pChild);
-    pChild->Ref();
-  }
-
-  char *pszConversion;
-
-  //int IsHeadAndCandNum;
-  //int CandIndex;
-  int Symbol;
-  //unsigned int SumPYProbStore;
-  
-  //int IsComplete;
-  //int AcCharCount;  /*accumulative character count*/
-  
-  int NodeSize;
-  
-  //unsigned int HZFreq;
-  //float HZProb;
- private:
-  int m_iRefCount;
-
-  std::vector<SCENode *> m_vChildren;
-};
-/// \}
-
-#endif
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/ScreenGameModule.h b/Source/Thirdparty/Dasher/Include/DasherCore/ScreenGameModule.h
deleted file mode 100644
index b6e82d3666447f2cdfbae629a4bf37f523644dc7..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/ScreenGameModule.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// ScreenGameModule.h
-//
-// Created by Alan Lawrence on 17/06/2011.
-// Copyright 2011 The Dasher Team.
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __SCREEN_GAME_MODULE_H__
-#define __SCREEN_GAME_MODULE_H__
-
-#include "GameModule.h"
-
-namespace Dasher {
-  class CScreenGameModule : public CGameModule {
-  public:
-    CScreenGameModule(Dasher::CSettingsUser *pCreateFrom, CDasherInterfaceBase *pInterface,CDasherView *pView, CDasherModel *pModel);
-    void HandleEvent(const CEditEvent *);
-  protected:
-    virtual void ChunkGenerated();
-    virtual void DrawText(CDasherView *pView);
-  private:
-    std::string m_strEntered, m_strTarget;
-    CDasherScreen::Label *m_pLabEntered, *m_pLabTarget, *m_pLabWrong;
-    int m_iFirstSym, m_iLastSym;
-  };
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/SettingsStore.h b/Source/Thirdparty/Dasher/Include/DasherCore/SettingsStore.h
deleted file mode 100644
index 748f6a7daed8a2cdbd9376ce39331f82869fde65..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/SettingsStore.h
+++ /dev/null
@@ -1,183 +0,0 @@
-// SettingsStore.h
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2008 Iain Murray
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef __SettingsStore_h__
-#define __SettingsStore_h__
-
-#include <string>
-#include <unordered_map>
-
-#include "Observable.h"
-#include "Parameters.h"
-
-namespace Dasher {
-/// \ingroup Core
-/// @{
-
-/// \brief Abstract representation of persistant storage.
-///
-/// Stores current runtime _values_ of all BP_, LP_, and SP_ preferences;
-/// subclasses may load these from and persist them to disk;
-/// is also an Observable for things that want to be notified when prefs change.
-///
-/// At present we allow for only one global SettingsStore across the whole of Dasher,
-/// but the framework should allow for multiple SettingsStores with only minor changes.
-/// (The exact use case for multiple SettingsStore's is not clear, and one suggestion is
-/// that they should all share the same runtime data - perhaps persisting to different
-/// locations. This requires only (a) defining SettingsObservers which persist changes
-/// to arbitrary locations, or (b) make the actual pref-value data static i.e. shared
-/// between instances.)
-///
-/// The public interface uses UTF-8 strings. All Keys should be
-/// in American English and encodable in ASCII. However,
-/// string Values may contain special characters where appropriate.
-class CSettingsStore : public Observable<int> {
-public:
-
-  CSettingsStore();
-
-  virtual ~CSettingsStore() = default;
-
-  // New functions for event driven interface
-
-  void SetBoolParameter(int iParameter, bool bValue);
-  void SetLongParameter(int iParameter, long lValue);
-  void SetStringParameter(int iParameter, const std::string sValue);
-
-  bool GetBoolParameter(int iParameter) const;
-  long GetLongParameter(int iParameter) const;
-  const std::string &GetStringParameter(int iParameter) const;
-
-  void ResetParameter(int iParameter);
-
-  const char *ClSet(const std::string &strKey, const std::string &strValue);
-
-  // TODO: just load the application parameters by default?
-  void AddParameters(const Settings::bp_table* table, size_t count);
-  void AddParameters(const Settings::lp_table* table, size_t count);
-  void AddParameters(const Settings::sp_table* table, size_t count);
-  Observable<CParameterChange>& PreSetObservable() { return pre_set_observable_; }
-    
-  virtual bool IsParameterSaved(const std::string & Key) { return false; }; // avoid undef sub-classes error
-
-protected:
-    ///Loads all (persistent) prefs from disk, using+storing default values when no
-    /// existing value stored; non-persistent prefs are reinitialized from defaults.
-    void LoadPersistent();
-    
-private:
-  // Platform Specific settings file management
-
-  // LoadSetting changes Value only if it succeeds in loading the setting,
-  // in which case it also returns true. Failure is indicated by returning false.
-  //! Load a setting with a boolean value
-  //
-  //! Load a setting with a boolean value. Return true if successful
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting
-  virtual bool LoadSetting(const std::string & Key, bool * Value);
-
-  //! Load a setting with a long value
-  //
-  //! Load a setting with a long value. Return true if successful
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting
-  virtual bool LoadSetting(const std::string & Key, long *Value);
-
-  //! Load a setting with a string value
-  //
-  //! Load a setting with a string value. Return true if successful
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting, UTF8 encoded
-  virtual bool LoadSetting(const std::string & Key, std::string * Value);
-
-  //! Save a setting with a boolean value
-  //
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting
-  virtual void SaveSetting(const std::string & Key, bool Value);
-
-  //! Save a setting with a long value
-  //
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting
-  virtual void SaveSetting(const std::string & Key, long Value);
-
-  //! Save a setting with a string value
-  //
-  //! \param Key Name of the setting
-  //! \param Value Value of the setting, UTF8 encoded
-  virtual void SaveSetting(const std::string & Key, const std::string & Value);
-
-  struct Parameter {
-    const char* name;  // Doesn't own the string.
-    Settings::ParameterType type = Settings::ParamInvalid;
-    Persistence persistence = Persistence::PERSISTENT;
-    bool bool_value;
-    bool bool_default;
-    long long_value;
-    long long_default;
-    std::string string_value;
-    const char* string_default;  // Doesn't own the string.
-  };
-
-  std::unordered_map<int, Parameter> parameters_;
-  Observable<CParameterChange> pre_set_observable_;
-};
-  /// Superclass for anything that wants to use/access/store persistent settings.
-  /// (The nearest thing remaining to the old CDasherComponent,
-  /// but more of a mixin rather than a universal superclass.)
-  /// At the moment, _all_ clients share a single SettingsStore (static),
-  /// but for future-proofing in case we ever want more than one SettingsStore
-  /// (this has been suggested), SettingsUsers can only be created from other
-  /// SettingsUsers (i.e. in a tree), so _could_ be modified to copy a SettingsStore
-  /// pointer from the creator to inherit settings.
-  class CSettingsUser {
-  private:
-    friend class CDasherInterfaceBase;
-    ///Create the root of the SettingsUser hierarchy from a SettingsStore.
-    /// ATM we allow only one SettingsStore, so this c'tor is private and 
-    /// used only by the DasherInterface; if/when multiple SettingsStores
-    /// are used, could be made public.
-    CSettingsUser(CSettingsStore *pSettingsStore);
-  public:
-    virtual ~CSettingsUser();
-    bool IsParameterSaved(const std::string & Key);
-  protected:
-    ///Create a new SettingsUser, inheriting+sharing settings from the creator.
-    CSettingsUser(CSettingsUser *pCreateFrom);
-    bool GetBoolParameter(int iParameter) const;
-    long GetLongParameter(int iParameter) const;
-    const std::string &GetStringParameter(int iParameter) const;
-    void SetBoolParameter(int iParameter, bool bValue);
-    void SetLongParameter(int iParameter, long lValue);
-    void SetStringParameter(int iParameter, const std::string &strValue);
-  };
-  ///Superclass for anything that wants to be notified when settings change.
-  /// (Note inherited pure virtual HandleEvent(int) method, called when any pref changes).
-  ///Exists as a distinct class from CSettingsUserObserver (below) to get round C++'s
-  /// multiple inheritance problems, i.e. for indirect subclasses of CSettingsUser
-  /// wanting to introduce settings-listener capabilities.
-  ///Note we don't inherit from TransientObserver as it saves storing the SettingsStore ptr
-  /// in every instance; if we move to multiple settings stores, we could so inherit.
-  class CSettingsObserver : public Observer<int> {
-  public:
-    ///Create a CSettingsObserver listening to changes to the settings values
-    /// used by a particular CSettingsUser.
-    CSettingsObserver(CSettingsUser *pCreateFrom);
-    ~CSettingsObserver() override;
-  };
-  ///Utility class, for (majority of) cases where a class wants to be both
-  /// a CSettingsUser and CSettingsObserver.
-  class CSettingsUserObserver : public CSettingsUser, public CSettingsObserver {
-  public:
-    CSettingsUserObserver(CSettingsUser *pCreateFrom);
-  };
-/// @}
-}
-#endif /* #ifndef __SettingsStore_h__ */
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/SimpleTimer.h b/Source/Thirdparty/Dasher/Include/DasherCore/SimpleTimer.h
deleted file mode 100644
index c174a8a76eb7a663ad88c94aef19262690b2c40b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/SimpleTimer.h
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// Simple millisecond accurate timer.
-//
-// Copyright 2004 by Keith Vertanen
-
-#ifndef __SIMPLE_TIMER_H__
-#define __SIMPLE_TIMER_H__
-
-#include <time.h>
-
-/// \ingroup Logging
-/// \{
-class CSimpleTimer
-{
-public:
-  CSimpleTimer();
-  ~CSimpleTimer();
-
-  double GetElapsed();
-
-private:
-  int     m_iStartSecond;
-  int     m_iStartMs;
-
-};
-/// \}
-
-#endif
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/SocketInput.h b/Source/Thirdparty/Dasher/Include/DasherCore/SocketInput.h
deleted file mode 100644
index e7e047988b3a8e6cd3dfda78743aac8777deaed8..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/SocketInput.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// SocketInput.h
-//
-// (C) Copyright Seb Wills 2005
-//
-// Linux-specific subclass of SocketInputBase: provides network socket control of Dasher cursor
-
-#ifndef __SocketInput_h__
-#define __SocketInput_h__
-
-#include "./SocketInputBase.h"
-#include "./Observable.h"
-
-#include <iostream>
-#include <pthread.h>
-
-#define GCC_VERSION (__GNUC__ * 10000 \
-                     + __GNUC_MINOR__ * 100 \
-                     + __GNUC_PATCHLEVEL__)
-
-
-
-namespace Dasher {
-  class CSocketInput;
-#if GCC_VERSION >= 40100
-  void *ThreadLauncherStub(void *_myClass);
-#endif
-
-using namespace std;
-/// \ingroup Input
-/// \{
-class CSocketInput:public CSocketInputBase {
-
-  // This non-member launcher stub function is required because pthreads can't launch a non-static member method.
-  friend void *ThreadLauncherStub(void *_myClass) {
-    CSocketInput *myClass = (CSocketInput *) _myClass;
-
-    pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);     // kill this thread immediately if another thread cancels it
-    // don't know how this interacts with recv blocking
-
-    myClass->ReadForever();
-
-    return NULL;
-  }
-
-public:
-
-  CSocketInput(CSettingsUser *pCreator, CMessageDisplay *pMsgs);
-  ~CSocketInput();
-
-private:
-
-  pthread_t readerThread;
-
-  bool LaunchReaderThread();
-
-  void CancelReaderThread();
-
-  // TODO: should probably override ReportErrnoError() to popup a Gtk error message
-
-};
-}
-/// \}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/SocketInputBase.h b/Source/Thirdparty/Dasher/Include/DasherCore/SocketInputBase.h
deleted file mode 100644
index c6dfb6d28411ca00a881c9b926c069934f299c83..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/SocketInputBase.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// SocketInputBase.h
-//
-// (C) Copyright Seb Wills 2005
-//
-// Abstract base class for socket input: parent of non-abstract classes in each implementation (Windows, Linux, ...),
-
-#ifndef __socketinputbase_h__
-#define __socketinputbase_h__
-
-#include "DasherInput.h"
-#include "SettingsStore.h"
-#include "Messages.h"
-
-#include <iostream>
-
-#define DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT 2      // just X and Y for now
-#define DASHER_SOCKET_INPUT_MAX_COORDINATE_LABEL_LENGTH 128
-
-namespace Dasher {
-  class CSocketInputBase;
-
-using namespace std;
-/// \ingroup Input
-/// \{
-class CSocketInputBase : public CScreenCoordInput, public CSettingsUserObserver {
-
-public:
-
-  CSocketInputBase(CSettingsUser *pCreator, CMessageDisplay *pMsgs);
-
-  virtual ~CSocketInputBase();
-
-  virtual void HandleEvent(int iParameter);
-
-  virtual void SetDebug(bool _debug);
-
-  virtual bool StartListening();
-
-  virtual void StopListening();
-
-  virtual bool isListening() {
-    return readerRunning;
-  }
-
-  virtual void SetReaderPort(int port);
-
-  virtual int GetPort() {
-    return port;
-  }
-
-  void SetCoordinateCount(int _coordinateCount) {
-    DASHER_ASSERT(_coordinateCount <= DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT);
-    coordinateCount = _coordinateCount;
-  }
-
-  /// Gets the last coordinates received; if only one coordinate is being read, this is put
-  /// into iDasherY (and iDasherX set to 0).
-  bool GetScreenCoords(screenint &iScreenX, screenint &iScreenY, CDasherView *pView) {
-
-    //update max values for reader thread...(note any changes here won't be incorporated
-    // until values are next received over socket, but never mind)
-    dasherMaxCoordinateValues[0] = pView->Screen()->GetWidth();
-    dasherMaxCoordinateValues[1] = pView->Screen()->GetHeight();
-
-    if (coordinateCount==1) {
-      iScreenX = 0;
-      iScreenY = dasherCoordinates[0];
-    } else if (coordinateCount==2) {
-      iScreenX = dasherCoordinates[0];
-      iScreenY = dasherCoordinates[1];
-    } else {
-      //Aiieee, we're receiving >2 coords? Don't know what to do...
-      return false;
-    }
-    return true;
-  };
-
-  void Activate() {
-    StartListening();
-  };
-
-  void Deactivate() {
-    StopListening();
-  };
-
-  // Defines the label used in the input stream for a particular coordinate.
-  // We make our own copy of the label, in our own buffer. This should ensure thread-safety.
-  // Even if this method is called while our other thread is doing a strcmp on the label,
-  // the buffer will always be null-terminated somewhere (even if the last byte of the buffer, which is
-  // never overwritten), so won't segfault.
-  virtual void SetCoordinateLabel(int iWhichCoordinate, const char *Label);
-
-  virtual void SetRawRange(int iWhich, double dMin, double dMax);
-
-  bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
-protected:
-
-  myint dasherCoordinates[DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT];
-  myint dasherMaxCoordinateValues[DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT];
-  double rawMinValues[DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT];
-  double rawMaxValues[DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT];
-  int coordinateCount;
-  char coordinateNames[DASHER_SOCKET_INPUT_MAX_COORDINATE_COUNT][DASHER_SOCKET_INPUT_MAX_COORDINATE_LABEL_LENGTH + 1];
-
-  int port;
-  bool debug_socket_input;
-
-  int sock;
-
-  char buffer[4096];
-
-  bool readerRunning;
-
-  virtual bool LaunchReaderThread() =0;
-
-  virtual void CancelReaderThread() =0;
-
-  virtual void ReadForever();
-
-  virtual void ParseMessage(char *message);
-
-  //Reports an error by appending an error message obtained from strerror(errno) onto the provided prefix
-  void ReportErrnoError(const std::string &prefix);
-
-  virtual void SocketDebugMsg(const char *pszFormat, ...);
-  
-  CMessageDisplay *const m_pMsgs;
-
-};
-}
-/// \}
-#endif
-
-
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/StartHandler.h b/Source/Thirdparty/Dasher/Include/DasherCore/StartHandler.h
deleted file mode 100644
index caa83667c53d230ad32f40f9ab5e68ba4d874772..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/StartHandler.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __START_HANDLER_H__
-#define __START_HANDLER_H__
-
-#include "DasherTypes.h"
-
-namespace Dasher {
-  class CDefaultFilter;
-  class CDasherView;
-/// \defgroup Start Start handlers
-/// @{
-class CStartHandler {
-public:
-  CStartHandler(CDefaultFilter *pFilter) : m_pFilter(pFilter) {
-  };
-  virtual ~CStartHandler() {
-  }
-  
-  virtual bool DecorateView(CDasherView *pView) = 0;
-  virtual void Timer(unsigned long iTime, dasherint iX, dasherint iY, CDasherView *pView) = 0;
-  virtual void onRun(unsigned long iTime) {}
-  virtual void onPause() {}
-protected:
-  CDefaultFilter * const m_pFilter;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/StylusFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/StylusFilter.h
deleted file mode 100644
index a344d302de9eca15b4cc446942961521a5027fcc..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/StylusFilter.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __STYLUS_FILTER_H__
-#define __STYLUS_FILTER_H__
-
-#include "DefaultFilter.h"
-#include "ClickFilter.h"
-
-/// \ingroup InputFilter
-/// @{
-namespace Dasher {
-class CStylusFilter : public CDefaultFilter, protected CZoomAdjuster {
- public:
-  CStylusFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate, ModuleID_t iID=15, const char *szName=_("Stylus Control"));
-  ///Override DefaultFilter (which supports pause), as we don't
-  /// - motion requires continually holding stylus against screen
-  virtual bool supportsPause() {return false;}
-
-  //no Timer method required: DefaultFilter does fine when we're moving,
-  // and will ignore any zoom scheduled by a click.
-  
-  void pause();
-  virtual void KeyDown(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long iTime, int iId, CDasherView *pView, CDasherInput *pInput, CDasherModel *pModel);
- protected:
-  ///Transform coordinates of a click, to get location to zoom into.
-  /// Default is to call the same CZoomAdjuster::AdjustZoomCoords as CClickFilter
-  virtual void ApplyClickTransform(myint &iDasherX, myint &iDasherY, CDasherView *pView);
-  ///Do not make a start handler when in stylus mode
-  virtual CStartHandler *MakeStartHandler();
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount);
- private:
-  unsigned long m_iKeyDownTime;
-  CDasherModel *m_pModel;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/TimeSpan.h b/Source/Thirdparty/Dasher/Include/DasherCore/TimeSpan.h
deleted file mode 100644
index 6c4b750d75b4838dc9c2e7f7ae0a7e749bd467f2..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/TimeSpan.h
+++ /dev/null
@@ -1,62 +0,0 @@
-
-// Object that keeps track of a time span.
-// Span starts when the object is created, and
-// ends when someone asks it for its XML representation.
-// User can also call stop to cause timer to stop and
-// call for XML representation later.
-//
-// Copyright 2005 by Keith Vertanen
-
-#ifndef __TIME_SPAN_H__
-#define __TIME_SPAN_H__
-
-#include "FileLogger.h"
-#include <string>
-#include "SimpleTimer.h"
-#include <time.h>
-#include <vector>
-#include "XMLUtil.h"
-
-using namespace std;
-
-extern CFileLogger* g_pLogger;
-
-class CTimeSpan;
-
-typedef vector<CTimeSpan>    VECTOR_TIME_SPAN;
-typedef vector<CTimeSpan*>   VECTOR_TIME_SPAN_PTR;
-
-/// \ingroup Logging
-/// @{
-class CTimeSpan
-{
-public:
-  CTimeSpan(const string& strName, bool bAddDate);
-  CTimeSpan(const string& strName, const string& strXML);
-
-  ~CTimeSpan();
-
-  void                Stop();
-  string              GetXML(const string& strPrefix = "", bool bSinglePointInTime = false);
-
-  void                Continue();
-  bool                IsStopped();
-  double              GetElapsed();
-
-  static string       GetTimeStamp();
-  static string       GetDateStamp();
-
-private:
-  string              m_strName;
-  string              m_strStartTime;
-  string              m_strEndTime;
-  double              m_dElapsed;
-  CSimpleTimer*       m_pTimer;
-  string              m_strStartDate;
-
-  void                InitMemberVars();
-
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/Trainer.h b/Source/Thirdparty/Dasher/Include/DasherCore/Trainer.h
deleted file mode 100644
index 4e2094d8d6c815437d423b4d5fa467894585cd58..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/Trainer.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef __trainer_h__
-#define __trainer_h__
-
-#include "LanguageModelling/PPMPYLanguageModel.h"
-#include "Alphabet/AlphInfo.h"
-#include "AbstractXMLParser.h"
-
-namespace Dasher {
-  class CTrainer : public AbstractParser {
-            
-  public:
-    CTrainer(CMessageDisplay *pMsgs, CLanguageModel *pLanguageModel, const CAlphInfo *pInfo, const CAlphabetMap *pAlphabet);
-    virtual ~CTrainer();
-    class ProgressIndicator {
-    public:
-      virtual void bytesRead(off_t)=0;
-    };
-    
-    void SetProgressIndicator(ProgressIndicator *pProg) {m_pProg = pProg;}
-
-    ///Parses a text file; bUser ignored.
-    bool Parse(const std::string &strDesc, std::istream &in, bool bUser);
-  
-  protected:
-
-    virtual void Train(CAlphabetMap::SymbolStream &syms);
-    
-    ///Try to read a context-switch escape sequence from the symbolstream.
-    /// \param sContext context to be reinitialized if a context-switch command is found
-    /// \param sym symbol that was most recently read from stream, i.e. that
-    /// might be the start of the context-switch command
-    /// \syms symbolstream to read body of command from, if necessary; should be positioned
-    /// just after the first occurrence of the escape character.
-    /// \return true if a context-switch command was found (=> sContext reinitialized);
-    ///  false if the character was not a context-switch; specifically, if there was a
-    ///  double context-switch character, meaning that an actual occurrence of that
-    ///  character is desired to be fed into the LanguageModel, this method returns false
-    ///  with the stream positioned just after the second ctx-switch character
-    ///  (ready to continue reading as per normal)
-    bool readEscape(CLanguageModel::Context &sContext, symbol sym, CAlphabetMap::SymbolStream &syms);
-
-    ///Returns the description of the file as passed to Parse()
-    /// (usually a filename)
-    const std::string &GetDesc() {return m_strDesc;}
-    const CAlphabetMap * const m_pAlphabet;
-    CLanguageModel * const m_pLanguageModel;
-    const CAlphInfo * const m_pInfo;
-    // symbol number in alphabet of the context-switch character (maybe 0 if not in alphabet!)
-    int m_iCtxEsc;
-  private:
-    ProgressIndicator *m_pProg;
-    std::string m_strDesc;
-  };
-
-}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/TwoBoxStartHandler.h b/Source/Thirdparty/Dasher/Include/DasherCore/TwoBoxStartHandler.h
deleted file mode 100644
index cf6d8f156b8c59a47a7a10749993e056d0b87f7c..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/TwoBoxStartHandler.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __TWO_BOX_START_HANDLER_H__
-#define __TWO_BOX_START_HANDLER_H__
-
-#include "StartHandler.h"
-#include "SettingsStore.h"
-
-namespace Dasher {
-/// \ingroup Start
-/// @{
-class CTwoBoxStartHandler : public CStartHandler, public CSettingsUser {
-public:
-  CTwoBoxStartHandler(CDefaultFilter *pCreator);
-
-  virtual bool DecorateView(CDasherView *pView);
-  virtual void Timer(unsigned long iTime, dasherint iX, dasherint iY, CDasherView *pView);
-  virtual void onPause();
-
- private:
-  ///Box currently being displayed, _iff_ BP_DASHER_PAUSED is set
-  bool m_bFirstBox;
-  ///Time at which mouse entered whichever box is current, or numeric_limits::max() if it hasn't
-  unsigned long m_iBoxEntered;
-  ///Time at which second box was first displayed
-  unsigned long m_iBoxStart;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/TwoButtonDynamicFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/TwoButtonDynamicFilter.h
deleted file mode 100644
index 044ac17f57bad0c9c1afe103fe37e704fdd5637a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/TwoButtonDynamicFilter.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// TwoButtonDynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __TWO_BUTTON_DYNAMIC_FILTER_H__
-#define __TWO_BUTTON_DYNAMIC_FILTER_H__
-
-#include "ButtonMultiPress.h"
-
-#include <deque>
-
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-class CTwoButtonDynamicFilter : public CButtonMultiPress, public CSettingsObserver {
- public:
-  CTwoButtonDynamicFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate);
-
-  // Inherited methods
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
- 
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
-  virtual bool GetMinWidth(int &iMinWidth);
-
-  virtual void HandleEvent(int iParameter);
-  
- protected:
-  //override to inspect x,y coords of mouse clicks/taps
-  virtual void KeyDown(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-	
- private:
-  unsigned int maxClickCount() {return GetBoolParameter(BP_2B_INVERT_DOUBLE) ? 3 : 2;}
-  virtual void TimerImpl(unsigned long Time, CDasherView *m_pDasherView, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  virtual void ActionButton(unsigned long iTime, int iButton, int iType, CDasherModel *pModel);
-  double m_dLagBits;
-  ///id of physical key, whose pressing we have emulated, in response
-  /// to a mouse down event on one or other half of the canvas...
-  int m_iMouseButton;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/TwoPushDynamicFilter.h b/Source/Thirdparty/Dasher/Include/DasherCore/TwoPushDynamicFilter.h
deleted file mode 100644
index 8b55c596cccf5d925e5f3897cb068481e445ae26..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/TwoPushDynamicFilter.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// TwoPushDynamicFilter.h
-//
-// Copyright (c) 2007 The Dasher Team
-//
-// This file is part of Dasher.
-//
-// Dasher is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// Dasher is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Dasher; if not, write to the Free Software 
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-#ifndef __TWO_PUSH_DYNAMIC_FILTER_H__
-#define __TWO_PUSH_DYNAMIC_FILTER_H__
-
-#include "DynamicButtons.h"
-namespace Dasher {
-/// \ingroup InputFilter
-/// @{
-  ///Dynamic filter in which user has two gestures, both performed with a single
-  /// button: one gesture for up and one for down. According to BP_TWO_PUSH_RELEASE_TIME,
-  /// the two gestures are either (a) two pushes with a short gap between, vs
-  /// (b) two pushes with a long gap between; or else, (a) a short vs (b) a long press.
-  ///Note we do not detect long or multiple presses in the usual way (CButtonMultiPress):
-  /// for users capable of making long presses, we suggest turning BP_TWO_PUSH_RELEASE_TIME
-  /// on (and reversing can be achieved by making a press of ambiguous length -
-  /// too short, too long, or inbetween); otherwise, with BP_TWO_PRESS_RELEASE_TIME
-  /// off, reversing can be achieved by making just a single press, and then waiting.
-  class CTwoPushDynamicFilter : public CDynamicButtons, public CSettingsObserver {
- public:
-  CTwoPushDynamicFilter(CSettingsUser *pCreator, CDasherInterfaceBase *pInterface, CFrameRate *pFramerate);
-  
-  // Inherited methods
-  virtual bool DecorateView(CDasherView *pView, CDasherInput *pInput);
- 
-  virtual bool GetMinWidth(int &iMinWidth);
-  virtual bool GetSettings(SModuleSettings **pSettings, int *iCount);
-
-  //override to get mouse clicks / taps back again if BACKOFF_BUTTON off...
-  virtual void KeyDown(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-  virtual void KeyUp(unsigned long Time, int iId, CDasherView *pDasherView, CDasherInput *pInput, CDasherModel *pModel);
-
- protected:
-  virtual void TimerImpl(unsigned long Time, CDasherView *m_pDasherView, CDasherModel *m_pDasherModel, CExpansionPolicy **pol);
-  virtual void ActionButton(unsigned long iTime, int iButton, int iType, CDasherModel *pModel);
-
-  virtual void HandleEvent(int iParameter);
-
-  virtual void run(unsigned long iTime);
-
- private:
-  void updateBitrate(double dBitrate);
-  long upDist();
-  long downDist();
-  double m_dLogUpMul, m_dLogDownMul, m_dLagBits;
-  double m_dMinShortTwoPushTime, m_dMaxShortTwoPushTime,
-    m_dMinLongTwoPushTime, m_dMaxLongTwoPushTime;
-  int m_aiMarker[2];
-  int m_iActiveMarker;
-  int m_aiTarget[2];
-  int m_aaiGuideAreas[2][2];
-  double m_dLastBitRate;
-  double m_dNatsSinceFirstPush;
-};
-}
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserButton.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserButton.h
deleted file mode 100644
index 5ddf93d821260d6608f96bfdc00466d8825ff58f..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserButton.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef __UserButton_h__
-#define __UserButton_h__
-
-#include "FileLogger.h"
-#include <string>
-#include <vector>
-
-extern CFileLogger* g_pLogger;
-
-class CUserButton;
-
-typedef std::vector<CUserButton>               VECTOR_USER_BUTTON;
-typedef std::vector<CUserButton>::iterator     VECTOR_USER_BUTTON_ITER;
-typedef std::vector<CUserButton*>              VECTOR_USER_BUTTON_PTR;
-typedef std::vector<CUserButton*>::iterator    VECTOR_USER_BUTTON_PTR_ITER;
-
-/// \ingroup Logging
-/// \{
-class CUserButton {
- public:
-  CUserButton(int iId, int iType, int iEffect);
-
-  std::string GetXML(const std::string& strPrefix = "");
-
-  int GetCount() {
-    if(m_iType == 0)
-      return 1;
-    else
-      return 0;
-  }
-
- protected:
-  int m_iId;
-  int m_iType;
-  int m_iEffect;
-  std::string m_strStringTime;
-};
-/// \}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserLocation.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserLocation.h
deleted file mode 100644
index ef4cd8566dca3a4c9a7dffb7bd8f5c89404641ef..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserLocation.h
+++ /dev/null
@@ -1,66 +0,0 @@
-
-// Keeps track of the user's mouse location at a certain point in time.
-//
-// Can store a integer x, y coordinate and/or a normalized floating
-// point x, y pair where (1.0, 1.0) is the lower right corener of the
-// window.
-//
-// Copyright 2005 by Keith Vertanen
-
-#ifndef __USER_LOCATION_H__
-#define __USER_LOCATION_H__
-
-#include <cstdlib>
-#include "FileLogger.h"
-#include <string>
-#include <time.h>
-#include "TimeSpan.h"
-#include <math.h>
-#include "XMLUtil.h"
-
-using namespace std;
-
-extern CFileLogger* g_pLogger;
-
-class CUserLocation;
-
-typedef vector<CUserLocation>               VECTOR_USER_LOCATION;
-typedef vector<CUserLocation>::iterator     VECTOR_USER_LOCATION_ITER;
-typedef vector<CUserLocation*>              VECTOR_USER_LOCATION_PTR;
-typedef vector<CUserLocation*>::iterator    VECTOR_USER_LOCATION_PTR_ITER;
-
-/// \ingroup Logging
-/// @{
-class CUserLocation
-{
-public:
-  CUserLocation(int iX, int iY, float dNats);
-  CUserLocation(float iX, float iY, float dNats);
-  CUserLocation(int iX1, int iY1, float iX2, float iY2, float dNats);
-  CUserLocation(int iX, int iY, int iTop, int iLeft, int iBottom, int iRight, bool bStoreIntegerRep, float dNats);
-  ~CUserLocation();
-
-  string              GetXML(const string& strPrefix = "");
-  static double       ComputeNormalizedX(int iX, int iLeft, int iRight);
-  static double       ComputeNormalizedY(int iY, int iTop, int iBottom);
-
-  // Used when we want to post-process a XML log file:
-  CUserLocation(const string& strXML);
-  string              GetTabMouseXY(bool bReturnNormalized);
-  void                GetMouseGridLocation(int iGridSize, int* pRow, int* pCol);
-
-private:
-  string              m_strTime;
-  int                 m_iLocationX;
-  int                 m_iLocationY;
-  float               m_dNormalizedLocationX;
-  float               m_dNormalizedLocationY;
-  bool                m_bHasNormalized;           // Are we storing a normalized representation?
-  bool                m_bHasInteger;              // Are we storing an integer representation?
-  float               m_dNats;
-
-  void                InitMemeberVars();
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserLog.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserLog.h
deleted file mode 100644
index af91ee9970aa9b6b75f4d7f9f0142812715dd80a..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserLog.h
+++ /dev/null
@@ -1,163 +0,0 @@
-
-// Handles logging of user activities such as what they write, how 
-// long they were writing, mouse positions, parameters, etc
-//
-// Two different kinds of logging can be produced:
-//      1) Running stats file that records basic stats about
-//         how much and how fast a user is writing.
-//      2) Detailed per session log file for use during
-//         user trials.
-//
-// If detailed mode isn't enabled, calls should stop here in this object
-// and not go on to create UserLogTrial objects or anything that isn't
-// strictly needed to do the simple logging.
-//
-// For normal dasher, a new trial involves this sequence:
-//      1) Program start or new doc
-//      2) Nav start
-//      3) Nav stop
-//      4) Optionally goto 2
-// A new trial must be indicated by the user resetting using new doc event.
-// Time from 2-4 is elapsed trial time.
-//
-// Copyright 2005 by Keith Vertanen
-
-#ifndef __USER_LOG_H__
-#define __USER_LOG_H__
-
-#include "FileLogger.h"
-#include <string>
-#include <vector>
-#include "SimpleTimer.h"
-#include "TimeSpan.h"
-#include "UserLogTrial.h"
-#include <algorithm>
-#include "UserLogParam.h"
-#include "UserLogBase.h"
-#include "Event.h"
-#include "XMLUtil.h"
-#include "SettingsStore.h"
-
-using namespace std;
-
-extern CFileLogger* g_pLogger;
-
-const int USER_LOG_DEFAULT_SIZE_TRIAL_XML   = 65536;    // How big we think the XML string representing a single trial will be
-const int LOG_MOUSE_EVERY_MS                = 200;      // How often to log the mouse position (-1 for never), the frequency is also depends on how often the WM_TIMER event fires in dasher
-
-static const string    USER_LOG_SIMPLE_FILENAME         = "dasher_usage.log";      // Filename of the short text log file
-static const string    USER_LOG_DETAILED_PREFIX         = "dasher_";               // Prefix of the detailed XML log files
-static const bool      USER_LOG_DUMP_AFTER_TRIAL        = true;                    // Do we want to dump the XML after each trial is complete?
-static const string    USER_LOG_CURRENT_TRIAL_FILENAME  = "CurrentTrial.xml";      // Filename we look for information on what the subject is doing
-
-enum eUserLogLevel
-{
-  userLogSimple           = 1,    // Simple running log file
-  userLogDetailed         = 2     // Detailed per session user trial style
-};
-
-#ifndef VECTOR_STRING
-typedef vector<string>                      VECTOR_STRING;
-#endif
-#ifndef VECTOR_STRING_ITER
-typedef vector<string>::iterator            VECTOR_STRING_ITER;
-#endif
-#ifndef VECTOR_VECTOR_STRING
-typedef vector<VECTOR_STRING>               VECTOR_VECTOR_STRING;
-#endif
-#ifndef VECTOR_VECTOR_STRING_ITER
-typedef vector<VECTOR_STRING>::iterator     VECTOR_VECTOR_STRING_ITER;
-#endif
-
-/// \ingroup Logging
-/// @{
-
-// We need to be notified when parameters we are logging get changed, but UserLogBase
-// is already watching BP_DASHER_PAUSED
-class CUserLog : public CUserLogBase, protected Dasher::CSettingsUserObserver {
-public:
-  CUserLog(Dasher::CSettingsUser *pCreateFrom, Observable<const Dasher::CEditEvent *> *pHandler, int iLogTypeMask);
-
-  ~CUserLog();
-
-  // Methods called whenever our user interface gets a relevant event, this
-  // object will decide how to put it into its representation.
-  void                        AddParam(const string& strName, const string& strValue, int iOptionMask = 0);
-  void                        AddParam(const string& strName, double dValue, int iOptionMask = 0);
-  void                        AddParam(const string& strName, int iValue, int iOptionMask = 0);
-  void                        StartWriting();
-  void                        StopWriting(float dNats);
-  void                        StopWriting();
-  void                        AddSymbols(Dasher::VECTOR_SYMBOL_PROB* pVectorNewSymbolProbs, eUserLogEventType iEvent = userLogEventMouse);
-  void                        DeleteSymbols(int iNumToDelete, eUserLogEventType iEvent = userLogEventMouse);    
-  void                        NewTrial();
-
-  void                        AddWindowSize(int iTop, int iLeft, int iBottom, int iRight);
-  void                        AddCanvasSize(int iTop, int iLeft, int iBottom, int iRight);
-  void                        AddMouseLocation(int iX, int iY, float dNats);
-  void                        AddMouseLocationNormalized(int iX, int iY, bool bStoreIntegerRep, float dNats);
-  void                        OutputFile();
-  void                        InitIsDone();
-  void                        SetOuputFilename(const string& strFilename = "");
-  int                         GetLogLevelMask();
-  void KeyDown(int iId, int iType, int iEffect);
-  void                        HandleEvent(int iParameter);
-
-  // Methods used by utility that can post-process the log files:
-  CUserLog(string strXMLFilename);
-  VECTOR_VECTOR_STRING        GetTabMouseXY(bool bReturnNormalized);
-  VECTOR_VECTOR_DENSITY_GRIDS GetMouseDensity(int iGridSize);
-
-protected:
-  CTimeSpan*                  m_pApplicationSpan;         // How long the application has been up
-  string                      m_strFilename;              // Name we output our XML file to
-  VECTOR_USER_LOG_TRIAL_PTR   m_vpTrials;                 // Holds object for each trial in this session
-  VECTOR_USER_LOG_PARAM_PTR   m_vParams;                  // Stores general parameters we want in the XML
-  double                      m_dLastMouseUpdate;         // When the last mouse update was pushed
-  bool                        m_bSimple;                  // Are we outputting the simple running log file?
-  bool                        m_bDetailed;                // Are we outputting per session detailed logs?
-  CFileLogger*                m_pSimpleLogger;            // Used to log the simple running log file
-  bool                        m_bIsWriting;               // Has StartWriting() been called but not StopWriting()?
-  bool                        m_bInitIsDone;              // Set to true once the initialization of default values is done
-  WindowSize                  m_sCanvasCoordinates;       // The size of our canvas from the last call to AddCanvasSize()
-  WindowSize                  m_sWindowCoordinates;       // Records the window coordinates at the start of navigation
-  bool                        m_bNeedToWriteCanvas;       // Do we need to write new canvas coordinates on the next navigation?
-  int                         m_iLevelMask;               // What log level mask we were created with.
-  string                      m_strCurrentTrialFilename;  // Where info about the current subject's trial is stored
-
-  // Used whenever we need a temporary char* buffer
-  static const int            TEMP_BUFFER_SIZE = 4096;
-  char                        m_szTempBuffer[TEMP_BUFFER_SIZE];  
-
-  CUserLogTrial*              AddTrial();
-  CUserLogTrial*              GetCurrentTrial();
-  string                      GetXML();
-  bool                        WriteXML();
-  bool                        UpdateMouseLocation();
-  string                      GetParamsXML();
-  void                        PrepareNewTrial();
-  string                      GetCycleParamStats();
-  string                      GetVersionInfo();
-  void                        InitMemberVars();
-  void                        AddInitialParam();
-  void                        UpdateParam(int iParameter, int iOptionMask);
-
-  // Things that support simple stats of a single Start/Stop cycle:
-  Dasher::VECTOR_SYMBOL_PROB  m_vCycleHistory;          // Tracks just the most recent Start/Stop cycle, used for simple logging
-  unsigned int                m_iCycleNumDeletes;       // Track number of deletes in last Start/Stop cycle
-  CSimpleTimer*               m_pCycleTimer;            // Length of the last Start/Stop cycle
-  double                      m_dCycleMouseNormXSum;    // Sum of all normalized mouse X coordinates
-  double                      m_dCycleMouseNormYSum;    // Sum of all normalized mouse Y coordinates
-  unsigned long               m_iCycleMouseCount;       // How many mouse updates have been stores
-  double                      m_dCycleNats;             // The last nats value we got from a mouse event
-
-  string                      GetStartStopCycleStats();
-  double                      GetCycleBits();
-  void                        ComputeSimpleMousePos(int iX, int iY);
-  void                        ResetCycle();
-  void                        InitUsingMask(int iLogLevelMask);
-
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogBase.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserLogBase.h
deleted file mode 100644
index 4cbfe65ccaf4022c31cb8c6ce7d446e9fcf8e049..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogBase.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef __UserLogBase_h__
-#define __UserLogBase_h__
-
-#include "DasherTypes.h"
-#include "UserLogTrial.h" // Don't want to include this, but needed for event type enum
-#include "Observable.h"
-#include "Event.h"
-#include "SettingsStore.h"
-
-#include <string>
-#include <vector>
-
-namespace Dasher {
-  class CDasherInterfaceBase;
-}
-
-/// \defgroup Logging Logging routines
-/// @{
-class CUserLogBase : protected TransientObserver<const Dasher::CEditEvent *> {
- public:
-  CUserLogBase(Observable<const Dasher::CEditEvent*> *pHandler);
-
-  virtual void AddParam(const std::string& strName, const std::string& strValue, int iOptionMask = 0) = 0;
-  virtual void AddParam(const std::string& strName, double dValue, int iOptionMask = 0) = 0;
-  virtual void AddParam(const std::string& strName, int iValue, int iOptionMask = 0) = 0;
-  //Called when the user starts moving. Note this happens for _each_ click/zoom
-  // in Click Mode, Direct Mode, Menu Mode etc. (so should ignore extra calls
-  // after the first.)
-  virtual void StartWriting() = 0;
-  virtual void StopWriting(float dNats) = 0;
-  virtual void StopWriting() = 0;
-  virtual void NewTrial() = 0;
-  virtual void AddWindowSize(int iTop, int iLeft, int iBottom, int iRight) = 0;
-  virtual void AddCanvasSize(int iTop, int iLeft, int iBottom, int iRight) = 0;
-  virtual void AddMouseLocation(int iX, int iY, float dNats) = 0;
-  virtual void AddMouseLocationNormalized(int iX, int iY, bool bStoreIntegerRep, float dNats) = 0;
-  virtual void OutputFile() = 0;
-  virtual void InitIsDone() = 0;
-  virtual void SetOuputFilename(const std::string& strFilename = "") = 0;
-  virtual int GetLogLevelMask() = 0;
-  virtual void KeyDown(int iId, int iType, int iEffect) = 0;
-  ///Watches output events to record symbols added/deleted
-  virtual void HandleEvent(const Dasher::CEditEvent *pEvent);
-  ///Passes record of symbols added/deleted to AddSymbols/DeleteSymbols
-  void FrameEnded();
-protected:
-  virtual void AddSymbols(Dasher::VECTOR_SYMBOL_PROB* pVectorNewSymbolProbs, eUserLogEventType iEvent = userLogEventMouse) = 0;
-  virtual void DeleteSymbols(int iNumToDelete, eUserLogEventType iEvent = userLogEventMouse) = 0;  
-private:
-  std::vector<Dasher::SymbolProb> m_vAdded;
-  int m_iNumDeleted;
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogParam.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserLogParam.h
deleted file mode 100644
index 58fa9e0deeb435f32163a3fd6c6e3e6057e3d710..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogParam.h
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#ifndef __USER_LOG_PARAM_H__
-#define __USER_LOG_PARAM_H__
-
-// Class that stores a particular parameter
-// 
-// Could be a struct, but we want to sort and need to
-// overload the < operator.
-//
-// Copyright 2005 by Keith Vertanen
-
-#include <string>
-#include <vector>
-#include "Parameters.h"
-
-using namespace std;
-
-// Bit mask options that are sent in when logging parameters
-enum eUserLogParam
-{
-  userLogParamTrackMultiple   = 1,    // Should we track multiple values of a given parameter?
-  userLogParamOutputToSimple  = 2,    // Does this parameter get sent to the simple log file?
-  userLogParamTrackInTrial    = 4,    // Do we also store a copy of the parameter value within a trial?
-  userLogParamForceInTrial    = 8,    // Do we always log the value of this parameter when a new trial is created?
-  userLogParamShortInCycle    = 16    // In short logging, does the value get added to the end of a cycle stats line?
-};
-
-// We need to have a lookup table that maps parameters we want to track in 
-// the UserLog object and what their behavior is.
-struct UserLogParamMask {
-  int key;
-  int mask;
-};
-
-class CUserLogParam;
-
-typedef vector<CUserLogParam*>                      VECTOR_USER_LOG_PARAM_PTR;
-typedef vector<CUserLogParam*>::iterator            VECTOR_USER_LOG_PARAM_PTR_ITER;
-typedef vector<CUserLogParam*>::reverse_iterator    VECTOR_USER_LOG_PARAM_PTR_REV_ITER;
-
-/// \ingroup Logging
-/// @{
-class CUserLogParam
-{
-public:
-  string          strName;                // Name of the parameter
-  string          strValue;               // String version of the value
-  string          strTimeStamp;           // Optional timestamp if we want to know when a parameter was changed
-  int             options;                // The options that were used on the parameter
-
-  static bool     ComparePtr(CUserLogParam* pA, CUserLogParam* pB);
-};
-/// @}
-
-#endif
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogTrial.h b/Source/Thirdparty/Dasher/Include/DasherCore/UserLogTrial.h
deleted file mode 100644
index 123085871752f3b813c835d84189f2a8ad9b18a9..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/UserLogTrial.h
+++ /dev/null
@@ -1,159 +0,0 @@
-
-// Represent all the data about one trial by a user (ie one
-// input sequence using speech or normal Dasher).
-//
-// Copyright 2005 by Keith Vertanen
-
-#ifndef __USER_LOG_TRIAL_H__
-#define __USER_LOG_TRIAL_H__
-
-#include "FileLogger.h"
-#include <fstream>
-#include <string>
-#include <vector>
-#include "SimpleTimer.h"
-#include "TimeSpan.h"
-#include "UserButton.h"
-#include "UserLocation.h"
-#include "DasherTypes.h"
-#include "UserLogParam.h"
-#include <algorithm>
-#include "XMLUtil.h"
-
-// Types used to return two dimensional grid of double values
-typedef double**                                        DENSITY_GRID;
-typedef vector<DENSITY_GRID>                            VECTOR_DENSITY_GRIDS;
-typedef vector<DENSITY_GRID>::iterator                  VECTOR_DENSITY_GRIDS_ITER;
-typedef vector<VECTOR_DENSITY_GRIDS>                    VECTOR_VECTOR_DENSITY_GRIDS;
-typedef vector<VECTOR_DENSITY_GRIDS>::iterator          VECTOR_VECTOR_DENSITY_GRIDS_ITER;
-typedef vector<VECTOR_VECTOR_DENSITY_GRIDS>             VECTOR_VECTOR_VECTOR_DENSITY_GRIDS;
-typedef vector<VECTOR_VECTOR_DENSITY_GRIDS>::iterator   VECTOR_VECTOR_VECTOR_DENSITY_GRIDS_ITER;
-
-extern CFileLogger* g_pLogger;
-
-class CUserLogTrial;
-
-typedef vector<CUserLogTrial>               VECTOR_USER_LOG_TRIAL;
-typedef vector<CUserLogTrial>::iterator     VECTOR_USER_LOG_TRIAL_ITER;
-typedef vector<CUserLogTrial*>              VECTOR_USER_LOG_TRIAL_PTR;
-typedef vector<CUserLogTrial*>::iterator    VECTOR_USER_LOG_TRIAL_PTR_ITER;
-
-// Used to indicate what type of event caused symbols to
-// be added or deleted by Dasher.  This could for example
-// be used to log which button was pressed in button
-// Dasher.
-enum eUserLogEventType
-{
-  userLogEventMouse       = 0     // Normal mouse navigation
-};
-
-// Keeps track of a single instance of AddSymbols() or 
-// DeleteSymbols() being called.  
-struct NavLocation
-{
-  string                                  strHistory;     // Display symbol history after the adds or deletes are carried out
-  CTimeSpan*                              span;           // Track the time between this update and the one that comes next
-  eUserLogEventType                       event;          // What triggered the adding or deleting of symbols
-  int                                     numDeleted;     // How many symbols deleted (0 if it is an AddSymbols() call)
-  Dasher::VECTOR_SYMBOL_PROB*             pVectorAdded;   // Info on all added symbols   
-  double                                  avgBits;        // Average bits required to write this history (assuming no errors)
-};
-
-typedef vector<NavLocation*>    VECTOR_NAV_LOCATION_PTR;
-
-struct WindowSize
-{
-  int         top;
-  int         left;
-  int         bottom;
-  int         right;
-};
-
-// Stores the time span and all the locations and mouse locations
-// that occur during a start/stop cycle of navigation.
-struct NavCycle
-{
-  CTimeSpan*                  pSpan;                    // Tracks time span of this navgiation cycle
-  VECTOR_NAV_LOCATION_PTR     vectorNavLocations;       // Locations when text was added or deleted
-  VECTOR_USER_LOCATION_PTR    vectorMouseLocations;     // Stores mouse locations and time stamps    
-  VECTOR_USER_BUTTON_PTR      vectorButtons;        // Stores button presses and time stamps
-  double dBits; // Number of bits entered during the cycle, only updated at the end
-};
-
-typedef vector<NavCycle*>               VECTOR_NAV_CYCLE_PTR;
-typedef vector<NavCycle*>::iterator     VECTOR_NAV_CYCLE_PTR_ITER;
-
-using namespace std;
-/// \ingroup Logging
-/// @{
-class CUserLogTrial
-{
-public:
-  CUserLogTrial(const string& strCurrentTrialFilename);
-  ~CUserLogTrial();
-
-  bool                        HasWritingOccured();
-  void                        StartWriting();
-  void                        StopWriting(double dBits);
-  void                        AddSymbols(Dasher::VECTOR_SYMBOL_PROB* vpNewSymbolProbs, eUserLogEventType iEvent);
-  void                        DeleteSymbols(int iNumToDelete, eUserLogEventType iEvent);  
-  string                      GetXML(const string& strPrefix = "");
-  void                        Done();
-  void                        AddWindowSize(int iTop, int iLeft, int iBottom, int iRight);
-  void                        AddCanvasSize(int iTop, int iLeft, int iBottom, int iRight);
-  void                        AddMouseLocation(int iX, int iY, float dNats);
-  void                        AddMouseLocationNormalized(int iX, int iY, bool bStoreIntegerRep, float dNats);
-  void AddKeyDown(int iId, int iType, int iEffect);
-  bool                        IsWriting();
-  void                        AddParam(const string& strName, const string& strValue, int iOptionMask = 0);
-  static string               GetParamXML(CUserLogParam* pParam, const string& strPrefix = "");
-
-  int GetButtonCount();
-  double GetTotalBits();
-
-  // Methods used by utility that can post-process the log files:
-  CUserLogTrial(const string& strXML, int iIgnored);
-  static VECTOR_USER_LOG_PARAM_PTR    ParseParamsXML(const string& strXML);
-  static WindowSize                   ParseWindowXML(const string& strXML);
-  VECTOR_STRING                       GetTabMouseXY(bool bReturnNormalized);
-  VECTOR_DENSITY_GRIDS                GetMouseDensity(int iGridSize);
-  static DENSITY_GRID                 MergeGrids(int iGridSize, DENSITY_GRID pGridA, DENSITY_GRID pGridB);
-
-protected:
-  CTimeSpan*                          m_pSpan;
-  bool                                m_bWritingStart;
-  string                              m_strCurrentTrial;          // Stores information passed to us from the UserTrial app
-  WindowSize                          m_sWindowCoordinates;       // Records the window coordinates at the start of navigation
-  WindowSize                          m_sCanvasCoordinates;       // The size of our canvas during navigation
-  Dasher::VECTOR_SYMBOL_PROB          m_vHistory;                 // Tracks all the symbols, probs, display text entererd during this trial
-  VECTOR_USER_LOG_PARAM_PTR           m_vpParams;                 // Stores general parameters we want stored in each trial tag in the XML
-  VECTOR_NAV_CYCLE_PTR                m_vpNavCycles;
-  string                              m_strCurrentTrialFilename;  // Where to look for info on the current subject's trial
-
-  // Used whenever we need a temporary char* buffer
-  static const int                    TEMP_BUFFER_SIZE = 4096;
-  char                                m_szTempBuffer[TEMP_BUFFER_SIZE];  
-
-  void                        GetUserTrialInfo();
-  string                      GetHistoryDisplay();
-  double                      GetHistoryAvgBits();
-  void                        StopPreviousTimer();
-  void                        InitMemberVars();
-
-  NavCycle*                   GetCurrentNavCycle();
-  NavCycle*                   AddNavCycle();
-  NavLocation*                GetCurrentNavLocation();
-
-  // Various helpers for outputting the XML, this allows subclasses to
-  // add there own GetXML() method but reuse code for shared parts.
-  string                      GetLocationXML(NavLocation* pLocation, const string& strPrefix);
-  string                      GetSummaryXML(const string& strPrefix);
-  string                      GetStatsXML(const string& strPrefix, const string& strText, CTimeSpan* pSpan, double dAvgBits, int iButtonCount, double dTotalBits);
-  string                      GetWindowCanvasXML(const string& strPrefix);
-  string                      GetParamsXML(const string& strPrefix);
-  string                      GetNavCyclesXML(const string& strPrefix);
-
-};
-/// @}
-
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/WordGeneratorBase.h b/Source/Thirdparty/Dasher/Include/DasherCore/WordGeneratorBase.h
deleted file mode 100644
index 0f3ae55562cedd4e94bc5c34da425eaf73b85e7b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/WordGeneratorBase.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef __WordGeneratorBase_h__
-#define __WordGeneratorBase_h__
-
-#include <string>
-#include <sstream>
-#include "Alphabet/AlphabetMap.h"
-#include "Alphabet/AlphIO.h"
-
-using namespace std;
-
-namespace Dasher {
-/**
- * The base class for all word generators. Word generators encapsulate
- * logic for simply generating words based on implementation-specific
- * conditions. The benefit of this is that a generator can
- * easily be written that selects words based on a function of the current
- * value of the Sri Lankan rupee and the amount of twitter feeds regarding
- * the winter olympics, for example.
- * 
- * 
- * A typical use case for any class deriving from CWordGeneratorBase
- * would be the following:
- *    1) Construct the object (providing any implementation-specific params)
- *  * 
- *    2) To retrieve a word, simply call GetNextWord. This will continue
- *       until the specific implementation determines that there are no
- *       more words for any reason. When there are no more, GetNextWord
- *       returns the empty string.
- * 
- * Usage Example:
- *    CWordGeneratorBase gen = CWordGeneratorBase(params...);
- *    std::string word;
- *    while ((word = gen.GetNextWord()) != "") {
- *         Operate on the word
- *    }
- */ 
-class CWordGeneratorBase {
-private:
-  const CAlphInfo *m_pAlph;
-  const CAlphabetMap *m_pAlphMap;
-public:
-  CWordGeneratorBase(const CAlphInfo *pAlph, const CAlphabetMap *pAlphMap);
-
-  virtual ~CWordGeneratorBase() { } 
-  //
-  void GetSymbols(std::vector<symbol> &into);
-protected:
-  /// Gets the next line from this generator
-  /// @return the next line, or "" if exhausted
-  virtual std::string GetLine() = 0;
-  
-};
-}
-#endif
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/XMLUtil.h b/Source/Thirdparty/Dasher/Include/DasherCore/XMLUtil.h
deleted file mode 100644
index 72ca8108a7e1d32f36b60c61682e6e5479028b8b..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/XMLUtil.h
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// Some very simple XML utility functions that just function on STL strings.
-//
-// Good for recursively splitting up the job of reinstatiating objects
-// that have been serialized to an XML file.
-//
-// Copyright 2005 by Keith Vertanen
-
-#ifndef __XML_UTIL_H__
-#define __XML_UTIL_H__
-
-#include <cstdlib>
-#include <string>
-#include <vector>
-#include <stdio.h>
-#include "FileLogger.h"
-
-extern CFileLogger* gLogger;
-
-using namespace std;
-
-#ifndef VECTOR_STRING
-typedef vector<string> VECTOR_STRING;
-#endif
-#ifndef VECTOR_STRING_ITER
-typedef vector<string>::iterator VECTOR_STRING_ITER;
-#endif
-
-// We want to be able grab all the name/value pairs in XML like:
-//  <Params>
-//      <Color>red</Color>
-//      <Size>10</Size>
-//  </Params>
-struct NameValuePair
-{
-  string  strName;
-  string  strValue;
-};
-
-typedef vector<NameValuePair>               VECTOR_NAME_VALUE_PAIR;
-typedef vector<NameValuePair>::iterator     VECTOR_NAME_VALUE_PAIR_ITER;
-
-const int XML_UTIL_READ_BUFFER_SIZE     = 4096;
-const int XML_UTIL_DEFAULT_VECTOR_SIZE  = 128;
-/// \ingroup Logging
-/// @{
-class XMLUtil
-{
-public:
-  XMLUtil();
-
-  static string			              LoadFile(const string& filename, unsigned int iSizeHint = 128000);
-  static string			              GetElementString(const string& strTag, const string& strXML, bool bStripWhiteSpace = true);
-  static int				              GetElementInt(const string& strTag, const string& strXML, bool* pFound = NULL);
-  static int64		            GetElementLongLong(const string& strTag, const string& strXML, bool* pFound = NULL);
-  static float			              GetElementFloat(const string& strTag, const string& strXML, bool* pFound = NULL);
-  static VECTOR_STRING	          GetElementStrings(const string& strTag, const string& strXML, bool bStripWhiteSpace = true);
-  static VECTOR_NAME_VALUE_PAIR   GetNameValuePairs(const string& strXML, bool bStripWhiteSpace = true);
-
-  static bool				        IsWhiteSpace(char cLetter);
-  static string			        StripWhiteSpace(const string& strText);
-  static bool				        IsDigit(char cLetter);
-
-};
-/// @}
-
-#endif
-
diff --git a/Source/Thirdparty/Dasher/Include/DasherCore/XmlSettingsStore.h b/Source/Thirdparty/Dasher/Include/DasherCore/XmlSettingsStore.h
deleted file mode 100644
index 0d6ec046adf8a14aa64fceddf46ceb999c01990e..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Include/DasherCore/XmlSettingsStore.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef XML_SETTING_STORE_H_
-#define XML_SETTING_STORE_H_
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-#include <map>
-
-#include "SettingsStore.h"
-#include "AbstractXMLParser.h"
-
-class CFileUtils;
-
-namespace Dasher {
-// This class is not thread-safe.
-class XmlSettingsStore : public Dasher::CSettingsStore, public AbstractXMLParser {
- public:
-  XmlSettingsStore(const std::string& filename, CFileUtils* fileUtils, CMessageDisplay* pDisplay);
-  ~XmlSettingsStore() override = default;
-  // Load the XML file and fills in the default values needed.
-  // Returns true on success.
-  void Load();
-  // Saves the XML file, returns true on success.
-  bool Save();
-
- private:
-  bool LoadSetting(const std::string& Key, bool* Value) override;
-  bool LoadSetting(const std::string& Key, long* Value) override;
-  bool LoadSetting(const std::string& Key, std::string* Value) override;
-
-  void SaveSetting(const std::string& Key, bool Value) override;
-  void SaveSetting(const std::string& Key, long Value) override;
-  void SaveSetting(const std::string& Key, const std::string& Value) override;
-
-  void XmlStartHandler(const XML_Char* name, const XML_Char** atts) override;
-  virtual void XmlEndHandler(const XML_Char* name) override;
-
-  // Parses the tag attributes expecting exactly one 'value' and one 'name'
-  // attribute.
-  bool GetNameAndValue(const XML_Char** attributes, std::string* name,
-                       std::string* value);
-
-  // Save if the mode is 'SAVE_IMMEDIATELY', otherwise just set 'modified_' to
-  // true.
-  void SaveIfNeeded();
-
-  enum Mode {
-    // Save each time 'SaveSetting' is called.
-    SAVE_IMMEDIATELY,
-    // Save only when 'Save' is called.
-    EXPLICIT_SAVE
-  };
-
-  Mode mode_ = EXPLICIT_SAVE;
-  std::string filename_;
-  CFileUtils* fileutils_;
-  bool modified_ = false;
-  std::map<std::string, bool> boolean_settings_;
-  std::map<std::string, long> long_settings_;
-  std::map<std::string, std::string> string_settings_;
-};
-
-}  // namespace Dasher
-
-#endif  // XML_SETTING_STORE_H_
diff --git a/Source/Thirdparty/Dasher/Lib/DasherCore.lib b/Source/Thirdparty/Dasher/Lib/DasherCore.lib
index 7dec4d60b97993602da7ee1a920055233bd8136f..e28e9f889acad5b7d0331ee0b4117d3b6626f0a6 100644
--- a/Source/Thirdparty/Dasher/Lib/DasherCore.lib
+++ b/Source/Thirdparty/Dasher/Lib/DasherCore.lib
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:950299fb3c022b07c508d74502b9534fc656af4c2e51a909e486b31451c7aa26
-size 158227674
+oid sha256:efc45e55292d567f5cdff079d98a768723b5e382a62219a7b8646b3312532c72
+size 16491874
diff --git a/Source/Thirdparty/Dasher/Lib/DasherCore.pdb b/Source/Thirdparty/Dasher/Lib/DasherCore.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..f9f622be4d16948c77ef4e2d3f669a3ca6565aeb
Binary files /dev/null and b/Source/Thirdparty/Dasher/Lib/DasherCore.pdb differ
diff --git a/Source/Thirdparty/Dasher/Lib/pugixml.lib b/Source/Thirdparty/Dasher/Lib/pugixml.lib
new file mode 100644
index 0000000000000000000000000000000000000000..30f404a0edfac9f7f11df566e7824433a7ae29d1
--- /dev/null
+++ b/Source/Thirdparty/Dasher/Lib/pugixml.lib
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9058b270bd4951d95bd56f6e08bae9ed254b9343643566695236ec65a135360e
+size 708098
diff --git a/Source/Thirdparty/Dasher/Source/Common/Unicode/README.txt b/Source/Thirdparty/Dasher/Source/Common/Unicode/README.txt
deleted file mode 100644
index 9c38c5ed81c2d4b1ed6b66054685ae4dfb1ee3d5..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Source/Common/Unicode/README.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-ConvertUTF.c and ConvertUTF.h are unchanged.
-
-harness.c has a small bug fix in the test rig (that took me too long to find).
-This bug was subtle and only evident in release builds of harness.c in MSVC++ 6
-(which made debugging annoying). It was worth checking out though to confirm
-that the problem was not with ConvertUTF.
-
-MSVC++ can give some warnings about assigning a longs to chars when compiling
-ConvertUTF.c - they all seem safe to me.
-
-See the files themselves for documentation and copyright.
-
-IAM 09/2002
\ No newline at end of file
diff --git a/Source/Thirdparty/Dasher/Source/DasherCore/DasherViewSquare.inl b/Source/Thirdparty/Dasher/Source/DasherCore/DasherViewSquare.inl
deleted file mode 100644
index caa1b19f4d07937eac4e23f689b22609c7e9f4bb..0000000000000000000000000000000000000000
--- a/Source/Thirdparty/Dasher/Source/DasherCore/DasherViewSquare.inl
+++ /dev/null
@@ -1,86 +0,0 @@
-// DasherViewSquare.inl
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2001-2004 David Ward
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#include "DasherModel.h"
-
-namespace Dasher {
-
-  /// Draw the crosshair
-
-  inline void CDasherViewSquare::Crosshair() {
-    myint iDasherMinX;
-    myint iDasherMinY;
-    myint iDasherMaxX;
-    myint iDasherMaxY;
-    VisibleRegion(iDasherMinX, iDasherMinY, iDasherMaxX, iDasherMaxY);
-
-    myint x[2];
-    myint y[2];
-
-    // Vertical bar of crosshair
-
-    x[0] = CDasherModel::ORIGIN_X;
-    y[0] = iDasherMinY;
-
-    x[1] = CDasherModel::ORIGIN_X;
-    y[1] = iDasherMaxY;
-
-    DasherPolyline(x, y, 2, 1, 5);
-
-    // Horizontal bar of crosshair
-
-    x[0] = 12 * CDasherModel::ORIGIN_X / 14;
-    y[0] = CDasherModel::ORIGIN_Y;
-
-    x[1] = 17 * CDasherModel::ORIGIN_X / 14;
-    y[1] = CDasherModel::ORIGIN_Y;
-
-    DasherPolyline(x, y, 2, 1, 5);
-  }
-
-  inline myint CDasherViewSquare::ixmap(myint x) const
-  {
-    x -= iMarginWidth;
-    if (GetLongParameter(LP_NONLINEAR_X)>0 && x >= m_iXlogThres) {
-      double dx = (x - m_iXlogThres) / static_cast<double>(CDasherModel::MAX_Y);
-      dx =  (exp(dx * m_dXlogCoeff) - 1) / m_dXlogCoeff;
-      x = myint( dx * CDasherModel::MAX_Y) + m_iXlogThres;
-    }
-    return x;
-  }
-
-  inline myint CDasherViewSquare::xmap(myint x) const
-  {
-    if(GetLongParameter(LP_NONLINEAR_X) && x >= m_iXlogThres) {
-      double dx = log(1+ (x-m_iXlogThres)*m_dXlogCoeff/CDasherModel::MAX_Y)/m_dXlogCoeff;
-      dx = (dx*CDasherModel::MAX_Y) + m_iXlogThres;
-      x= myint(dx>0 ? ceil(dx) : floor(dx));
-    }
-    return x + iMarginWidth;
-  }
-
-  inline myint CDasherViewSquare::ymap(myint y) const {
-    if (GetBoolParameter(BP_NONLINEAR_Y)) {
-      if(y > m_Y2)
-        return m_Y2 + (y - m_Y2) / m_Y1;
-      else if(y < m_Y3)
-        return m_Y3 + (y - m_Y3) / m_Y1;
-    }
-    return y;
-  }
-
-  inline myint CDasherViewSquare::iymap(myint ydash) const {
-    if (GetBoolParameter(BP_NONLINEAR_Y)) {
-      if(ydash > m_Y2)
-        return (ydash - m_Y2) * m_Y1 + m_Y2;
-      else if(ydash < m_Y3)
-        return (ydash - m_Y3) * m_Y1 + m_Y3;
-    }
-    return ydash;
-  }
-}
diff --git a/Source/Thirdparty/Dasher/lib/DasherCore.pdb b/Source/Thirdparty/Dasher/lib/DasherCore.pdb
deleted file mode 100644
index e7f120d1ed689e60ac1e0d96c382527fd7023f4f..0000000000000000000000000000000000000000
Binary files a/Source/Thirdparty/Dasher/lib/DasherCore.pdb and /dev/null differ
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5cb14f81351397235392ab9229c7debbda1358e9
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+mkdir Source/Thirdparty/Build
+cd Source/Thirdparty/Build
+if ! command -V cmake3 &> /dev/null
+then
+	if ! command -V cmake &> /dev/null
+	then
+		echo "cmake not found"
+	else
+		cmake ..
+	fi
+else
+	cmake3 ..
+fi
+make install
+