diff --git a/SW/SW/Input_Selections.txt b/SW/SW/Input_Selections.txt
new file mode 100644
index 0000000..309cb71
--- /dev/null
+++ b/SW/SW/Input_Selections.txt
@@ -0,0 +1,3 @@
+THE OFFICE
+40 YEAR OLD VIRGIN
+IT CROWD
\ No newline at end of file
diff --git a/SW/SW/Output_Strings.txt b/SW/SW/Output_Strings.txt
new file mode 100644
index 0000000..2373dd9
Binary files /dev/null and b/SW/SW/Output_Strings.txt differ
diff --git a/SW/SW/SQL/CREATE_KeyboardGuide.sql b/SW/SW/SQL/CREATE_KeyboardGuide.sql
new file mode 100644
index 0000000..6faa1e1
--- /dev/null
+++ b/SW/SW/SQL/CREATE_KeyboardGuide.sql
@@ -0,0 +1,15 @@
+USE [SoftWriters]
+
+CREATE TABLE dbo.KeyboardGuide
+(
+ Keyboard_ID INT IDENTITY(1,1)
+ ,TextCol1 VARCHAR(10)
+ ,TextCol2 VARCHAR(10)
+ ,TextCol3 VARCHAR(10)
+ ,TextCol4 VARCHAR(10)
+ ,TextCol5 VARCHAR(10)
+ ,TextCol6 VARCHAR(10)
+)
+
+
+
diff --git a/SW/SW/SQL/CREATE_Keyboard_ASCII_Guide.sql b/SW/SW/SQL/CREATE_Keyboard_ASCII_Guide.sql
new file mode 100644
index 0000000..1d6ecba
--- /dev/null
+++ b/SW/SW/SQL/CREATE_Keyboard_ASCII_Guide.sql
@@ -0,0 +1,15 @@
+USE [SoftWriters]
+
+CREATE TABLE dbo.Keyboard_ASCII_Guide
+(
+ KeyBoardASCII_ID INT IDENTITY(1,1)
+ ,TextCol1 INT
+ ,TextCol2 INT
+ ,TextCol3 INT
+ ,TextCol4 INT
+ ,TextCol5 INT
+ ,TextCol6 INT
+)
+
+
+
diff --git a/SW/SW/SQL/CREATE_SearchTerm.sql b/SW/SW/SQL/CREATE_SearchTerm.sql
new file mode 100644
index 0000000..36c29da
--- /dev/null
+++ b/SW/SW/SQL/CREATE_SearchTerm.sql
@@ -0,0 +1,7 @@
+USE [SoftWriters]
+
+CREATE TABLE dbo.SearchTerm
+(
+ SearchTerm_ID INT IDENTITY(1,1)
+ ,SearchTerm VARCHAR(500)
+)
\ No newline at end of file
diff --git a/SW/SW/SQL/CREATE_SearchTerm_Conversion.sql b/SW/SW/SQL/CREATE_SearchTerm_Conversion.sql
new file mode 100644
index 0000000..b702aa4
--- /dev/null
+++ b/SW/SW/SQL/CREATE_SearchTerm_Conversion.sql
@@ -0,0 +1,13 @@
+USE [SoftWriters]
+
+CREATE TABLE dbo.SearchTerm_Conversion
+(
+ SearchTermConv_ID INT IDENTITY(1,1)
+ ,SearchTerm_ID INT
+ ,SearchTerm_ASCII INT
+ ,UpDown VARCHAR(50)
+ ,LeftRight VARCHAR(50)
+ ,EndSelect VARCHAR(10)
+)
+
+
diff --git a/SW/SW/SQL/CREATE_sp_ConvertSearch_CalcPath.sql b/SW/SW/SQL/CREATE_sp_ConvertSearch_CalcPath.sql
new file mode 100644
index 0000000..878c77a
--- /dev/null
+++ b/SW/SW/SQL/CREATE_sp_ConvertSearch_CalcPath.sql
@@ -0,0 +1,162 @@
+
+CREATE PROCEDURE [dbo].[sp_ConvertSearch_CalcPath]
+AS
+
+
+---Convert the Search Term from string into integers and calculate the character path
+
+DECLARE @Current_STConv_ID INT ----The ID value for SearchTerm_Conversion table
+DECLARE @STConv_Count INT ----Total number of IDs in SearchTerm_Conversion table
+DECLARE @ST_ID INT ----The ID for the SearchTerm
+DECLARE @STID_Count INT
+DECLARE @STID_Total INT
+DECLARE @ST_RunningCount INT
+DECLARE @Current_STConv_ASCII INT ----The current character INT value
+DECLARE @Current_ASCII_Row INT ----Will be used to join to KeyBoardASCII_ID in Keyboard_ASCII_Guide table. Also used to calculate directional move
+DECLARE @Previous_STConv_ASCII INT ----The INT value of the previous character to calculate next directional move
+DECLARE @Previous_ASCII_Row INT ----The previous character INT value used to calculate directional move
+DECLARE @UpDown VARCHAR(50) ----Calculates the Up or Down move and also populates UpDown column in SearTerm_Conversion table
+DECLARE @LeftRight VARCHAR(50) ----Calculates the Left or Right move and also populates LeftRight column in SearTerm_Conversion table
+DECLARE @EndSelect VARCHAR(10) ----Holding variable for Select value #. Will populate the EndSelect column in SearTerm_Conversion table
+DECLARE @Current_First_Col INT ----The INT value in of TextCol1 for the current @Current_ASCII_Row. Used to calculate directional move
+DECLARE @Previous_First_Col INT ----The INT value in of TextCol1 for the previous @Previous_ASCII_Row. Used to calculate directional move
+
+
+SET @Current_STConv_ID = 1
+SET @STConv_Count = (SELECT MAX(SearchTermConv_ID) FROM SoftWriters.dbo.SearchTerm_Conversion)
+SET @Current_STConv_ASCII = (SELECT SearchTerm_ASCII FROM SoftWriters.dbo.SearchTerm_Conversion WHERE @Current_STConv_ID = SearchTermConv_ID)
+SET @EndSelect = '#'
+SET @Previous_First_Col = 65 --The starting point for the Keyboard is always A
+SET @Previous_ASCII_Row = 1
+SET @Previous_STConv_ASCII = 65
+SET @ST_ID = 1
+SET @STID_Total = (SELECT MAX(SearchTerm_ID) FROM SoftWriters.dbo.SearchTerm_Conversion)
+SET @STID_Count = (SELECT COUNT(*) FROM SoftWriters.dbo.SearchTerm_Conversion WHERE SearchTerm_ID = @ST_ID)
+SET @ST_RunningCount = 1
+
+
+WHILE @ST_ID <= @STID_Total
+BEGIN
+
+ SET @STID_Count = (SELECT COUNT(*) FROM SoftWriters.dbo.SearchTerm_Conversion WHERE SearchTerm_ID = @ST_ID)
+ SET @Previous_ASCII_Row = 1
+ SET @Previous_STConv_ASCII = 65
+ SET @ST_RunningCount = 1
+ SET @Previous_First_Col = 65
+
+ WHILE @ST_RunningCount <= @STID_Count
+ BEGIN
+
+ SELECT @Current_STConv_ASCII = (SELECT SearchTerm_ASCII FROM SoftWriters.dbo.SearchTerm_Conversion WHERE @Current_STConv_ID = SearchTermConv_ID)
+
+ SELECT @Current_ASCII_Row =
+ CASE
+ WHEN @Current_STConv_ASCII BETWEEN 65 AND 70 THEN 1
+ WHEN @Current_STConv_ASCII BETWEEN 71 AND 76 THEN 2
+ WHEN @Current_STConv_ASCII BETWEEN 77 AND 82 THEN 3
+ WHEN @Current_STConv_ASCII BETWEEN 83 AND 88 THEN 4
+ WHEN @Current_STConv_ASCII BETWEEN 89 AND 94 THEN 5
+ WHEN @Current_STConv_ASCII BETWEEN 53 AND 58 THEN 6
+ END
+
+ SELECT @Current_First_Col = (SELECT TextCol1 FROM SoftWriters.dbo.Keyboard_ASCII_Guide WHERE @Current_ASCII_Row = KeyBoardASCII_ID)
+
+ SELECT @UpDown =
+ CASE
+ WHEN @Previous_ASCII_Row - @Current_ASCII_Row > 0 THEN REPLICATE('U,',@Previous_ASCII_Row - @Current_ASCII_Row)
+ WHEN @Previous_ASCII_Row - @Current_ASCII_Row < 0 THEN REPLICATE('D,',@Current_ASCII_Row - @Previous_ASCII_Row)
+ WHEN @Previous_ASCII_Row - @Current_ASCII_Row = 0 THEN ''
+ WHEN @Current_STConv_ASCII = 32 THEN ''
+ END
+
+ SELECT @LeftRight =
+ CASE
+ WHEN @Previous_STConv_ASCII - @Previous_First_Col < @Current_STConv_ASCII - @Current_First_Col THEN REPLICATE('R,',(@Current_STConv_ASCII - @Current_First_Col)-(@Previous_STConv_ASCII - @Previous_First_Col))
+ WHEN @Previous_STConv_ASCII - @Previous_First_Col > @Current_STConv_ASCII - @Current_First_Col THEN REPLICATE('L,',(@Previous_STConv_ASCII - @Previous_First_Col)-(@Current_STConv_ASCII - @Current_First_Col))
+ WHEN @Previous_STConv_ASCII - @Previous_First_Col = @Current_STConv_ASCII - @Current_First_Col THEN ''
+ WHEN @Current_STConv_ASCII = 32 THEN 'S'
+ END
+-------------------------------------------------------------------------------------------------
+---Update the conversion table with Up/Down, Left/Right strings
+-------------------------------------------------------------------------------------------------
+ UPDATE SoftWriters.dbo.SearchTerm_Conversion
+ SET UpDown = @UpDown
+ WHERE @Current_STConv_ID = SearchTermConv_ID
+
+ UPDATE SoftWriters.dbo.SearchTerm_Conversion
+ SET LeftRight = @LeftRight
+ WHERE @Current_STConv_ID = SearchTermConv_ID
+
+ UPDATE SoftWriters.dbo.SearchTerm_Conversion
+ SET EndSelect = @EndSelect
+ WHERE @Current_STConv_ID = SearchTermConv_ID
+
+
+-------------------------------------------------------------------------------------------------
+---SET PREVIOUS VARIABLE VALUES AND ADJUST FOR SPACES
+-------------------------------------------------------------------------------------------------
+ SELECT @Previous_STConv_ASCII =
+ CASE
+ WHEN @Current_STConv_ASCII = 32 THEN @Previous_STConv_ASCII
+ ELSE @Current_STConv_ASCII
+ END
+ SELECT @Previous_ASCII_Row =
+ CASE
+ WHEN @Current_STConv_ASCII = 32 THEN @Previous_ASCII_Row
+ ELSE @Current_ASCII_Row
+ END
+ SELECT @Previous_First_Col =
+ CASE
+ WHEN @Current_STConv_ASCII = 32 THEN @Previous_First_Col
+ ELSE @Current_First_Col
+ END
+ SELECT @ST_RunningCount = @ST_RunningCount + 1
+ SELECT @Current_STConv_ID = @Current_STConv_ID + 1
+ END
+
+SELECT @ST_ID = @ST_ID + 1
+END
+
+
+-------------------------------------------------------------------------------------------------
+---REMOVE THE # FROM ANY S
+-------------------------------------------------------------------------------------------------
+UPDATE SoftWriters.dbo.SearchTerm_Conversion
+SET EndSelect = ''
+WHERE LeftRight = 'S'
+
+--------------------------------------------------------------------------------------------------
+---OUTPUT
+---THE OUTPUT WILL NOT GENERATE A STRING IF AN INVALID CHARACTER IS SUBMITTED.
+--------------------------------------------------------------------------------------------------
+
+SELECT st.SearchTerm,
+ CASE
+ WHEN x.OutputString IS NULL THEN 'Your Input contained an invalid character. Please use either [A]-[Z], [a]-[z], or [0]-[9] values.'
+ ELSE x.OutputString
+ END AS 'OutputString'
+FROM
+(
+ SELECT SearchTerm_ID,OutputString = STUFF(
+ (SELECT ','+UpDown+LeftRight+EndSelect
+ FROM SoftWriters.dbo.SearchTerm_Conversion t1
+ WHERE t1.SearchTerm_ID = t2.SearchTerm_ID
+ FOR XML PATH ('')),1,1,'')
+ FROM SoftWriters.dbo.SearchTerm_Conversion t2
+ WHERE SearchTerm_ID NOT IN
+ (
+ SELECT x.SearchTerm_id
+ FROM
+ (
+ SELECT SearchTerm_id,
+ CASE
+ WHEN UpDown IS NULL AND LeftRight IS NULL THEN 1 --Do not calculate. Data input issue.
+ ELSE 0 --Ok to calculate
+ END AS 'Calc'
+ FROM SoftWriters.dbo.SearchTerm_Conversion
+ ) AS x
+ WHERE x.Calc = 1
+ )
+ GROUP BY SearchTerm_ID
+) as x
+RIGHT JOIN SoftWriters.dbo.SearchTerm st ON x.SearchTerm_ID = st.SearchTerm_ID
diff --git a/SW/SW/SQL/CREATE_sp_LoadSearchTerm_Conv.sql b/SW/SW/SQL/CREATE_sp_LoadSearchTerm_Conv.sql
new file mode 100644
index 0000000..24c3da5
Binary files /dev/null and b/SW/SW/SQL/CREATE_sp_LoadSearchTerm_Conv.sql differ
diff --git a/SW/SW/SQL/INSERT_KeyboardGuide.sql b/SW/SW/SQL/INSERT_KeyboardGuide.sql
new file mode 100644
index 0000000..79e92a1
--- /dev/null
+++ b/SW/SW/SQL/INSERT_KeyboardGuide.sql
@@ -0,0 +1,8 @@
+
+
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('A','B','C','D','E','F')
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('G','H','I','J','K','L')
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('M','N','O','P','Q','R')
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('S','T','U','V','W','X')
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('Y','Z','1','2','3','4')
+INSERT INTO SoftWriters.dbo.KeyboardGuide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES ('5','6','7','8','9','0')
diff --git a/SW/SW/SQL/INSERT_Keyboard_ASCII_Guide.sql b/SW/SW/SQL/INSERT_Keyboard_ASCII_Guide.sql
new file mode 100644
index 0000000..ecec602
--- /dev/null
+++ b/SW/SW/SQL/INSERT_Keyboard_ASCII_Guide.sql
@@ -0,0 +1,8 @@
+
+
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (65,66,67,68,69,70)
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (71,72,73,74,75,76)
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (77,78,79,80,81,82)
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (83,84,85,86,87,88)
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (89,90,91,92,93,94)
+INSERT INTO SoftWriters.dbo.Keyboard_ASCII_Guide (TextCol1,TextCol2,TextCol3,TextCol4,TextCol5,TextCol6) VALUES (53,54,55,56,57,58)
diff --git a/SW/SW/SetupSteps.txt b/SW/SW/SetupSteps.txt
new file mode 100644
index 0000000..dd6efb2
--- /dev/null
+++ b/SW/SW/SetupSteps.txt
@@ -0,0 +1,21 @@
+1. Create two folder structures. They are used in SSIS package
+ C:\temp\SW\Input
+ C:\temp\SW\Output
+I used Input_Selections.txt as my input file
+I used Output_Strings.txt as my output file
+
+2. Create a database named SoftWriters
+
+3. Run the following sQL files in order:
+ a. CREATE_KeyboardGuide
+ b. CREATE_Keyboard_ASCII_Guide
+ c. CREATE_SearchTerm
+ d. CREATE_SearchTerm_Conversion
+ e. INSERT_KeyboardGuide
+ f. INSERT_Keyboard_ASCII_Guide
+ g. CREATE_sp_LoadSearchTerm_Conv
+ h. CREATE_sp_ConvertSearch_CalcPath
+
+4. Execute SSIS pack after setup
+
+5. I've attached my Input and Output files as examples of my work.
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard.sln b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard.sln
new file mode 100644
index 0000000..e940048
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard.sln
@@ -0,0 +1,19 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{159641D6-6404-4A2A-AE62-294DE0FE8301}") = "SoftWriters_Keyboard", "SoftWriters_Keyboard\SoftWriters_Keyboard.dtproj", "{E47F5356-18ED-4411-9F3A-CE51F8F89452}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Development|Default = Development|Default
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E47F5356-18ED-4411-9F3A-CE51F8F89452}.Development|Default.ActiveCfg = Development
+ {E47F5356-18ED-4411-9F3A-CE51F8F89452}.Development|Default.Build.0 = Development
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Package.dtsx b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Package.dtsx
new file mode 100644
index 0000000..74255b2
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Package.dtsx
@@ -0,0 +1,825 @@
+
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+ EXEC [dbo].[sp_ConvertSearch_CalcPath]
+
+ 1252
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ [dbo].[SearchTerm]
+
+
+ 1252
+ false
+ 3
+ false
+ false
+ TABLOCK,CHECK_CONSTRAINTS
+ 2147483647
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSourceViewID
+
+
+ TableInfoObjectType
+ Table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSourceViewID
+
+
+
+]]>
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Project.params b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Project.params
new file mode 100644
index 0000000..b56a815
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/Project.params
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.database b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.database
new file mode 100644
index 0000000..1b9a635
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.database
@@ -0,0 +1,13 @@
+
+ SoftWriters_Keyboard
+ SoftWriters_Keyboard
+ 0001-01-01T00:00:00Z
+ 0001-01-01T00:00:00Z
+ 0001-01-01T00:00:00Z
+ Unprocessed
+ 0001-01-01T00:00:00Z
+
+ Default
+ Unchanged
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj
new file mode 100644
index 0000000..3a97291
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj
@@ -0,0 +1,532 @@
+
+
+ Project
+ 13.0.1601.5
+ 9.0.1.0
+ $base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg==
+
+ SoftWriters_Keyboard.database
+ SoftWriters_Keyboard.database
+
+
+
+
+
+
+
+ {c6206e82-4fda-4589-8a90-94ccc3ebfc5f}
+ SoftWriters_Keyboard
+ 1
+ 0
+ 0
+
+
+ 2019-06-07T14:16:16.6128299-04:00
+ PGH\emaurhof
+ ALEA02INFL52
+
+
+ AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAABWCaAXChp0GL3K2JqhTxSAAAAAACAAAAAAADZgAAwAAAABAAAACYfGIkXVsPUcehnXHGDu8tAAAAAASAAACgAAAAEAAAAOA7HMhtpiKKQO7IjDkouYGIAAAADtdVMm2veHPAtnEC+4Eq4Y8ZqeeYmxlzRa0yDc8TaYx4KWWJE+c9T6lCwdvaRqyOHNg87wpCXvN7wW5rpEL3U5YtrRraanvHIqRm9UVLnYETtX+y1mobcm2wi6o9puT+5s4BM0TzpGtvoHBvZ9vgGur7NWkqjDHtRmBUu0KWvO9eIDKAovdLZxQAAACrNpLC4A6UWdM26kBF7nI3ihumjA==
+ 1
+
+
+
+
+
+
+
+
+
+
+ {EC6FE4F3-C783-4B0D-935F-9B5B1450A887}
+ Package
+ 1
+ 0
+ 5
+
+
+ {FACF4F86-C3C8-446A-BCB4-8DB0F0A429CF}
+ 8
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Data Source=.;Initial Catalog=SoftWriters;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ SoftWriters
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 1
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ .
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1252
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ C:\temp\SW\Input\Input_Selections.txt
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Delimited
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1033
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ <none>
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1252
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ C:\temp\SW\Output\Output_Strings.txt
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Delimited
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1033
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ <none>
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Development
+
+ bin
+
+
+
+
+ SQLServer2016
+
+
+ LastModifiedTime
+ LastModifiedTime
+ 2019-06-07T18:40:07.4888792Z
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj.user b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj.user
new file mode 100644
index 0000000..c547be6
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/SoftWriters_Keyboard.dtproj.user
@@ -0,0 +1,22 @@
+
+
+
+
+ Development
+
+ true
+
+
+ false
+ true
+
+
+ LastModifiedTime
+ LastModifiedTime
+ 2019-06-07T18:40:07.4888792Z
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/bin/Development/SoftWriters_Keyboard.ispac b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/bin/Development/SoftWriters_Keyboard.ispac
new file mode 100644
index 0000000..d6b6a90
Binary files /dev/null and b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/bin/Development/SoftWriters_Keyboard.ispac differ
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/BuildLog.xml b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/BuildLog.xml
new file mode 100644
index 0000000..e10f60a
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/BuildLog.xml
@@ -0,0 +1,15 @@
+
+
+
+ SoftWriters_Keyboard
+ 2019-06-07T18:58:46.9057562Z
+ EncryptSensitiveWithUserKey
+
+
+
+ Package.dtsx
+ 2019-06-07T19:03:33.2006628Z
+ EncryptSensitiveWithUserKey
+
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Package.dtsx b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Package.dtsx
new file mode 100644
index 0000000..1bcae08
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Package.dtsx
@@ -0,0 +1,825 @@
+
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+ EXEC [dbo].[sp_ConvertSearch_CalcPath]
+
+ 1252
+ false
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ [dbo].[SearchTerm]
+
+
+ 1252
+ false
+ 3
+ false
+ false
+ TABLOCK,CHECK_CONSTRAINTS
+ 2147483647
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSourceViewID
+
+
+ TableInfoObjectType
+ Table
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSourceViewID
+
+
+
+]]>
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Project.params b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Project.params
new file mode 100644
index 0000000..ce6bfd5
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/Project.params
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/SoftWriters_Keyboard.dtproj b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/SoftWriters_Keyboard.dtproj
new file mode 100644
index 0000000..b26bb4e
--- /dev/null
+++ b/SW/SW/SoftWriters_Keyboard/SoftWriters_Keyboard/obj/Development/SoftWriters_Keyboard.dtproj
@@ -0,0 +1,536 @@
+
+
+ Project
+ 13.0.1601.5
+ 9.0.1.0
+ $base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg==
+
+ SoftWriters_Keyboard.database
+ SoftWriters_Keyboard.database
+
+
+
+
+
+
+
+ {c6206e82-4fda-4589-8a90-94ccc3ebfc5f}
+ SoftWriters_Keyboard
+ 1
+ 0
+ 0
+
+
+ 2019-06-07T14:16:16.6128299-04:00
+ PGH\emaurhof
+ ALEA02INFL52
+
+
+ AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAABWCaAXChp0GL3K2JqhTxSAAAAAACAAAAAAADZgAAwAAAABAAAACFosd0lyG8zfgGoZN7P5ujAAAAAASAAACgAAAAEAAAAOR3aK8+eHTZZR6s7TV37jmIAAAABja4w5ExMH9BBOb70tnVD/V8lPimp49F/oFLQN4+f1GSxgn29GNS/I0YfsaS9e3pbIGqnW6Ms/pudGp3mRUDAGnvze33kRs8FqD0W6AVfAqivcIq+xg7txnfUjoJZGbTkxvLPKtxa411XESVIDfsDfVQw0+ZGF2I1BVMcz/fwnZy+i8eZznNYRQAAACHwPtQkuTT7TdOiImfCiQzXNpnuA==
+ 1
+
+
+
+
+
+
+
+
+
+
+ {EC6FE4F3-C783-4B0D-935F-9B5B1450A887}
+ Package
+ 1
+ 0
+ 7
+
+
+ {51F5346A-5D39-472B-A9A4-83E11BAF77F2}
+ 8
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Data Source=.;Initial Catalog=SoftWriters;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ SoftWriters
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 1
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ .
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1252
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ C:\temp\SW\Input\Input_Selections.txt
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Delimited
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1033
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ <none>
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ false
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1252
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ C:\temp\SW\Output\Output_Strings.txt
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ Delimited
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1033
+ 9
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ <none>
+ 18
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ true
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Development
+
+ bin
+
+
+
+
+ SQLServer2016
+
+
+ LastModifiedTime
+ LastModifiedTime
+ 2019-06-07T18:40:07.4888792Z
+
+
+
+
+
+
\ No newline at end of file