diff --git a/.gitignore b/.gitignore
index 5f2915c..eaef6a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,19 @@ HyperSpec/*
HyperSpec-Legalese.text
HyperSpec-README.text
.vs/*
+# installer staff
+*.msi
+*.wixobj
+*.wixpdb
+*.tar
+installer/Standard/
+# automatically generated installer components
+installer/Libraries.wxs
+installer/Modules.wxs
+installer/Sys.wxs
+installer/Documentation.wxs
+installer/Examples.wxs
+installer/Headers.wxs
+installer/HyperSpec.wxs
+installer/LICENSE.rtf
diff --git a/Corman Lisp 3.0.ise b/Corman Lisp 3.0.ise
deleted file mode 100644
index 85fa4f6..0000000
Binary files a/Corman Lisp 3.0.ise and /dev/null differ
diff --git a/Corman Lisp 3.02.ism b/Corman Lisp 3.02.ism
deleted file mode 100644
index 4c0f95a..0000000
Binary files a/Corman Lisp 3.02.ism and /dev/null differ
diff --git a/Utilities/install-hyperspec.lisp b/Utilities/install-hyperspec.lisp
index 3d39998..9b9a2cc 100644
--- a/Utilities/install-hyperspec.lisp
+++ b/Utilities/install-hyperspec.lisp
@@ -72,29 +72,20 @@ typedef struct _header
(ccl:unmap-file address)))
(defun install-hyperspec ()
- (if (eq (win:message-box-yes-no "Do you want to install the Common Lisp HyperSpec (from Xanalys)?"
- "Install Common Lisp HyperSpec") 'win:idyes)
- (let ((gzpath (namestring (truename (merge-pathnames "HyperSpec-6-0.tar.gz"))))
- (tarpath (namestring (truename (merge-pathnames "HyperSpec-6-0.tar"))))
- (hyperspec-path (namestring (truename (merge-pathnames "hyperspec/")))))
-
- ;; unless the Hyperspec is already installed at this location, extract
- ;; it to that location
- (unless (probe-file (merge-pathnames "Front\\Contents.htm" hyperspec-path))
- (format t "Unzipping ~A...~%" gzpath)
- (force-output)
- (ccl:uncompress-file gzpath tarpath)
- (format t "Extracting files from ~A...~%" tarpath)
- (tar-extract tarpath))
-
- (with-open-file (init-file (merge-pathnames "init.lisp") :direction :output :if-exists :append)
- (format init-file "~%;;; Set the Hyperspec path~%(setf *hyperspec-local-path* ~S)~%"
- hyperspec-path))
- (setf *hyperspec-local-path* hyperspec-path))
- (let ()
- (with-open-file (init-file (merge-pathnames "init.lisp") :direction :output :if-exists :append)
- (format init-file "~%;;; Set the Hyperspec path~%(setf *hyperspec-local-path* nil)~%"))
- (setf *hyperspec-local-path* nil))))
+ (let ((gzpath (namestring (truename (merge-pathnames "HyperSpec-6-0.tar.gz"))))
+ (tarpath (namestring (truename (merge-pathnames "HyperSpec-6-0.tar"))))
+ (hyperspec-path (namestring (truename (merge-pathnames "hyperspec/")))))
+
+ ;; unless the Hyperspec is already installed at this location, extract
+ ;; it to that location
+ (unless (probe-file (merge-pathnames "Front\\Contents.htm" hyperspec-path))
+ (format t "Unzipping ~A...~%" gzpath)
+ (force-output)
+ (ccl:uncompress-file gzpath tarpath)
+ (format t "Extracting files from ~A...~%" tarpath)
+ (tar-extract tarpath)
+ (delete-file tarpath))
+ (setf *hyperspec-local-path* hyperspec-path)))
(install-hyperspec)
@@ -103,4 +94,4 @@ typedef struct _header
-
\ No newline at end of file
+
diff --git a/Utilities/license-to-rtf.lisp b/Utilities/license-to-rtf.lisp
new file mode 100644
index 0000000..26f126a
--- /dev/null
+++ b/Utilities/license-to-rtf.lisp
@@ -0,0 +1,59 @@
+;;;;; Stolen from https://github.com/sbcl/sbcl/blob/master/tools-for-build/rtf.lisp
+
+;;;; Generate RTF out of a regular text file, splitting
+;;;; paragraphs on empty lines.
+;;;;
+;;;; Used to generate License.rtf out of COPYING for the
+;;;; Windows installer.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; This software is derived from the CMU CL system, which was
+;;;; written at Carnegie Mellon University and released into the
+;;;; public domain. The software is in the public domain and is
+;;;; provided with absolutely no warranty. See the COPYING and CREDITS
+;;;; files for more information.
+
+(defun read-text (pathname)
+ (let ((pars (list nil)))
+ (with-open-file (f pathname :external-format :ascii)
+ (loop for line = (read-line f nil)
+ for text = (string-trim '(#\Space #\Tab) line)
+ while line
+ when (plusp (length text))
+ do (setf (car pars)
+ (if (car pars)
+ (concatenate 'string (car pars) " " text)
+ text))
+ else
+ do (push nil pars)))
+ (nreverse pars)))
+
+(defun write-rtf (pars pathname)
+ (with-open-file (f pathname :direction :output :external-format :ascii
+ :if-exists :supersede)
+ ;; \rtf0 = RTF 1.0
+ ;; \ansi = character set
+ ;; \deffn = default font
+ ;; \fonttbl = font table
+ ;; \fs = font size in half-points
+ (format f "{\\rtf1\\ansi~
+ \\deffn0~
+ {\\fonttbl\\f0\\fswiss Helvetica;}~
+ \\fs20~
+ ~{~A\\par\\par ~}}" ; each par used to end with
+ ; ~%, but resulting Rtf looks
+ ; strange (WinXP, WiX 3.0.x,
+ ; ?)
+ pars)))
+
+;; generate RTF file from TXT file
+(defun generate-license-rtf (from to)
+ (write-rtf (read-text from) to))
+
+(generate-license-rtf
+ (concatenate 'string *cormanlisp-directory* "LICENSE.txt")
+ (concatenate 'string *cormanlisp-directory* ".\\installer\\LICENSE.rtf"))
+
+
diff --git a/init.lisp b/init.lisp
index 0beac60..5bef7b5 100644
--- a/init.lisp
+++ b/init.lisp
@@ -65,8 +65,15 @@
;;; set your own local path for the Hyperspec
;; eg. (setq *hyperspec-local-path* "c:/roger/lisp/HyperSpec/")
-(setq *hyperspec-local-path* (concatenate 'string *cormanlisp-directory* "HyperSpec/"))
-
+;; unless the Hyperspec is already installed at this location
+;; it to that location
+
+;; Automatically set HyperSpec path to the one installed with Corman Lisp.
+(let ((hyperspec-install-path (merge-pathnames "HyperSpec\\"
+ (namestring *cormanlisp-directory*))))
+ (when (probe-file (merge-pathnames "Front\\Contents.htm" hyperspec-install-path))
+ (setq *hyperspec-local-path* (namestring hyperspec-install-path))))
+
;;; set your own declaration symbols list
;; eg. (setf ide:*declaration-symbols* '("defun" "define-symbol-macro")) or
;; (setf ide:*declaration-symbols* (append ide:*declaration-symbols* '("defwinconstant" "defwinapi")))
@@ -91,3 +98,4 @@
"CormanLisp.img")))
;; export from CL package
(export (find-symbol "LOAD-DEFAULT-IMAGE" 'cl) 'cl)
+
diff --git a/installer/AddToPath.wxs b/installer/AddToPath.wxs
new file mode 100644
index 0000000..4462565
--- /dev/null
+++ b/installer/AddToPath.wxs
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/Config.wxi b/installer/Config.wxi
new file mode 100644
index 0000000..47aaee5
--- /dev/null
+++ b/installer/Config.wxi
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/Core.wxs b/installer/Core.wxs
new file mode 100644
index 0000000..e0f454b
--- /dev/null
+++ b/installer/Core.wxs
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/DebugData.wxs b/installer/DebugData.wxs
new file mode 100644
index 0000000..4b02b6e
--- /dev/null
+++ b/installer/DebugData.wxs
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/Features.wxs b/installer/Features.wxs
new file mode 100644
index 0000000..ad48a6a
--- /dev/null
+++ b/installer/Features.wxs
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/HyperspecLegalese.wxs b/installer/HyperspecLegalese.wxs
new file mode 100644
index 0000000..13341e8
--- /dev/null
+++ b/installer/HyperspecLegalese.wxs
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/Main.wxs b/installer/Main.wxs
new file mode 100644
index 0000000..2739005
--- /dev/null
+++ b/installer/Main.wxs
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 501) OR ((VersionNT = 501) AND (ServicePackLevel >= 2))) AND MsiNTProductType = 1)]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/Shortcuts.wxs b/installer/Shortcuts.wxs
new file mode 100644
index 0000000..2b732d6
--- /dev/null
+++ b/installer/Shortcuts.wxs
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/include.xsl b/installer/include.xsl
new file mode 100644
index 0000000..84bb2a7
--- /dev/null
+++ b/installer/include.xsl
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ Config.wxi
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/installer.vcxproj b/installer/installer.vcxproj
new file mode 100644
index 0000000..98a8da0
--- /dev/null
+++ b/installer/installer.vcxproj
@@ -0,0 +1,58 @@
+
+
+
+
+ Standard
+ Win32
+
+
+
+ 15.0
+ {70E7D2D9-32CA-40E5-AC89-6CD71B4D1EF3}
+ Win32Proj
+ Installer
+
+
+
+ Makefile
+ true
+ v141
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)CormanLispInstaller.msi
+ WIN32;_DEBUG;$(NMakePreprocessorDefinitions)
+ $(SolutionDir)makemsi.bat
+ $(SolutionDir)makemsi.bat
+ cmd.exe /c "del ^"$(SolutionDir)CormanLispInstaller.msi^""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/installer/installer.vcxproj.filters b/installer/installer.vcxproj.filters
new file mode 100644
index 0000000..1f8b80a
--- /dev/null
+++ b/installer/installer.vcxproj.filters
@@ -0,0 +1,50 @@
+
+
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {70776da3-d7a2-465c-9e66-957d8ed662cb}
+
+
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+ installer
+
+
+
+ Utilities
+
+
+ Utilities
+
+
+
+
+ installer
+
+
+
\ No newline at end of file
diff --git a/makemsi.bat b/makemsi.bat
new file mode 100644
index 0000000..966d6b9
--- /dev/null
+++ b/makemsi.bat
@@ -0,0 +1,54 @@
+@echo off
+rem configuration Variables
+set InstallerName=CormanLispInstaller.msi
+
+set GeneratedWXSFiles=.\installer\Sys.wxs .\installer\Libraries.wxs .\installer\Modules.wxs .\installer\Documentation.wxs .\installer\Headers.wxs .\installer\Examples.wxs .\installer\HyperSpec.wxs
+set InstallerFiles= %GeneratedWXSFiles% .\installer\HyperSpecLegalese.wxs .\installer\Features.wxs .\installer\DebugData.wxs .\installer\AddToPath.wxs .\installer\Shortcuts.wxs .\installer\Core.wxs .\installer\Main.wxs
+set InstallerObjectFiles= .\installer\Sys.wixobj .\installer\Libraries.wixobj .\installer\Modules.wixobj .\installer\Documentation.wixobj .\installer\Headers.wixobj .\installer\Examples.wixobj .\installer\HyperSpec.wixobj .\installer\HyperSpecLegalese.wixobj .\installer\Features.wixobj .\installer\DebugData.wixobj .\installer\AddToPath.wixobj .\installer\Shortcuts.wixobj .\installer\Core.wixobj .\installer\Main.wixobj
+
+set HeatOptions=-gg -scom -sreg -sfrag -ke -dr INSTALLDIR -t .\installer\include.xsl
+set WixExtensions=-ext WixUIExtension -ext WixUtilExtension
+
+rem set old current directory
+set OldDir=%cd%
+cd "%~dp0\"
+
+rem Cleanup
+del %InstallerName%
+del %GeneratedWXSFiles%
+del %InstallerObjectFiles%
+
+rem convert TXT license to RTF
+clconsole.exe -execute Utilities\license-to-rtf.lisp
+
+rem Unpack HyperSpec
+rd /s /q HyperSpec
+del HyperSpec-Legalese.text
+del HyperSpec-README.text
+clconsole.exe -execute Utilities\install-hyperspec.lisp
+
+rem Generate include fragments.
+rem These should be synchronised with values in 'Config.wxi'
+
+rem Corman Lisp core
+"%WIX%\bin\heat" dir .\Sys -cg SysDir -var var.SysDirectoryPath -out .\installer\Sys.wxs %HeatOptions%
+
+"%WIX%\bin\heat" dir .\Libraries -cg LibrariesDir -var var.LibrariesDirectoryPath -out .\installer\Libraries.wxs %HeatOptions%
+
+"%WIX%\bin\heat" dir .\Modules -cg ModulesDir -var var.ModulesDirectoryPath -out .\installer\Modules.wxs %HeatOptions%
+
+"%WIX%\bin\heat" dir .\documentation -cg DocDir -var var.DocumentationDirectoryPath -out .\installer\Documentation.wxs %HeatOptions%
+
+rem Corman Lisp extra
+"%WIX%\bin\heat" dir .\include -cg HeadersDir -var var.HeadersDirectoryPath -out .\installer\Headers.wxs %HeatOptions%
+
+"%WIX%\bin\heat" dir .\examples -cg ExamplesDir -var var.ExamplesDirectoryPath -out .\installer\Examples.wxs %HeatOptions%
+
+"%WIX%\bin\heat" dir .\HyperSpec -cg HyperSpecDir -var var.HyperSpecDirectoryPath -out .\installer\HyperSpec.wxs %HeatOptions%
+
+rem build the installer
+"%WIX%\bin\candle" %WiXExtensions% -out .\installer\ %InstallerFiles%
+"%WIX%\bin\light" %WiXExtensions% -sw1076 -cultures:en-US %InstallerObjectFiles% -out %InstallerName%
+
+rem change current directory
+cd "%OldDir%"
diff --git a/src_vc15.sln b/src_vc15.sln
index 2e93813..61aae6f 100644
--- a/src_vc15.sln
+++ b/src_vc15.sln
@@ -23,75 +23,62 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CormanLispStatic", "CormanL
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CormanLispImage", "CormanLispImage\CormanLispImage.vcxproj", "{9C2663C3-E055-42A7-A678-7A3F6472EC8D}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Installer", "installer\installer.vcxproj", "{70E7D2D9-32CA-40E5-AC89-6CD71B4D1EF3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DE479E27-E406-43A8-BCBD-8506EBC31038} = {DE479E27-E406-43A8-BCBD-8506EBC31038}
+ {F914CF4D-5904-477F-A388-00C05E749D18} = {F914CF4D-5904-477F-A388-00C05E749D18}
+ {95914474-F1BA-4190-8FF3-4F03386FC8D6} = {95914474-F1BA-4190-8FF3-4F03386FC8D6}
+ {C31B2675-B04B-45F1-BBB2-35F099375CF8} = {C31B2675-B04B-45F1-BBB2-35F099375CF8}
+ {AE675399-2236-4F77-BBAD-B665F9C1022C} = {AE675399-2236-4F77-BBAD-B665F9C1022C}
+ {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03} = {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}
+ {9C2663C3-E055-42A7-A678-7A3F6472EC8D} = {9C2663C3-E055-42A7-A678-7A3F6472EC8D}
+ {FF6CFCF2-F424-4B17-93FF-469DEAD1D723} = {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
Standard|Win32 = Standard|Win32
+ Standard|x64 = Standard|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {99BD3558-DEEE-4F99-913E-DAC97A12926E}.Debug|Win32.ActiveCfg = Standard|Win32
- {99BD3558-DEEE-4F99-913E-DAC97A12926E}.Debug|Win32.Build.0 = Standard|Win32
- {99BD3558-DEEE-4F99-913E-DAC97A12926E}.Release|Win32.ActiveCfg = Standard|Win32
- {99BD3558-DEEE-4F99-913E-DAC97A12926E}.Release|Win32.Build.0 = Standard|Win32
{99BD3558-DEEE-4F99-913E-DAC97A12926E}.Standard|Win32.ActiveCfg = Standard|Win32
{99BD3558-DEEE-4F99-913E-DAC97A12926E}.Standard|Win32.Build.0 = Standard|Win32
- {F914CF4D-5904-477F-A388-00C05E749D18}.Debug|Win32.ActiveCfg = Standard|Win32
- {F914CF4D-5904-477F-A388-00C05E749D18}.Debug|Win32.Build.0 = Standard|Win32
- {F914CF4D-5904-477F-A388-00C05E749D18}.Release|Win32.ActiveCfg = Standard|Win32
- {F914CF4D-5904-477F-A388-00C05E749D18}.Release|Win32.Build.0 = Standard|Win32
+ {99BD3558-DEEE-4F99-913E-DAC97A12926E}.Standard|x64.ActiveCfg = Standard|Win32
{F914CF4D-5904-477F-A388-00C05E749D18}.Standard|Win32.ActiveCfg = Standard|Win32
{F914CF4D-5904-477F-A388-00C05E749D18}.Standard|Win32.Build.0 = Standard|Win32
- {DE479E27-E406-43A8-BCBD-8506EBC31038}.Debug|Win32.ActiveCfg = Standard|Win32
- {DE479E27-E406-43A8-BCBD-8506EBC31038}.Debug|Win32.Build.0 = Standard|Win32
- {DE479E27-E406-43A8-BCBD-8506EBC31038}.Release|Win32.ActiveCfg = Standard|Win32
- {DE479E27-E406-43A8-BCBD-8506EBC31038}.Release|Win32.Build.0 = Standard|Win32
+ {F914CF4D-5904-477F-A388-00C05E749D18}.Standard|x64.ActiveCfg = Standard|Win32
{DE479E27-E406-43A8-BCBD-8506EBC31038}.Standard|Win32.ActiveCfg = Standard|Win32
{DE479E27-E406-43A8-BCBD-8506EBC31038}.Standard|Win32.Build.0 = Standard|Win32
- {95914474-F1BA-4190-8FF3-4F03386FC8D6}.Debug|Win32.ActiveCfg = Standard|Win32
- {95914474-F1BA-4190-8FF3-4F03386FC8D6}.Debug|Win32.Build.0 = Standard|Win32
- {95914474-F1BA-4190-8FF3-4F03386FC8D6}.Release|Win32.ActiveCfg = Standard|Win32
- {95914474-F1BA-4190-8FF3-4F03386FC8D6}.Release|Win32.Build.0 = Standard|Win32
+ {DE479E27-E406-43A8-BCBD-8506EBC31038}.Standard|x64.ActiveCfg = Standard|Win32
{95914474-F1BA-4190-8FF3-4F03386FC8D6}.Standard|Win32.ActiveCfg = Standard|Win32
{95914474-F1BA-4190-8FF3-4F03386FC8D6}.Standard|Win32.Build.0 = Standard|Win32
- {AE675399-2236-4F77-BBAD-B665F9C1022C}.Debug|Win32.ActiveCfg = Standard|Win32
- {AE675399-2236-4F77-BBAD-B665F9C1022C}.Debug|Win32.Build.0 = Standard|Win32
- {AE675399-2236-4F77-BBAD-B665F9C1022C}.Release|Win32.ActiveCfg = Standard|Win32
- {AE675399-2236-4F77-BBAD-B665F9C1022C}.Release|Win32.Build.0 = Standard|Win32
+ {95914474-F1BA-4190-8FF3-4F03386FC8D6}.Standard|x64.ActiveCfg = Standard|Win32
{AE675399-2236-4F77-BBAD-B665F9C1022C}.Standard|Win32.ActiveCfg = Standard|Win32
{AE675399-2236-4F77-BBAD-B665F9C1022C}.Standard|Win32.Build.0 = Standard|Win32
- {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Debug|Win32.ActiveCfg = Standard|Win32
- {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Debug|Win32.Build.0 = Standard|Win32
- {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Release|Win32.ActiveCfg = Standard|Win32
- {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Release|Win32.Build.0 = Standard|Win32
+ {AE675399-2236-4F77-BBAD-B665F9C1022C}.Standard|x64.ActiveCfg = Standard|Win32
{EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Standard|Win32.ActiveCfg = Standard|Win32
{EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Standard|Win32.Build.0 = Standard|Win32
- {C31B2675-B04B-45F1-BBB2-35F099375CF8}.Debug|Win32.ActiveCfg = Standard|Win32
- {C31B2675-B04B-45F1-BBB2-35F099375CF8}.Debug|Win32.Build.0 = Standard|Win32
- {C31B2675-B04B-45F1-BBB2-35F099375CF8}.Release|Win32.ActiveCfg = Standard|Win32
- {C31B2675-B04B-45F1-BBB2-35F099375CF8}.Release|Win32.Build.0 = Standard|Win32
+ {EE43A1A5-ED5E-4247-B0CF-FB5F3EC80A03}.Standard|x64.ActiveCfg = Standard|Win32
{C31B2675-B04B-45F1-BBB2-35F099375CF8}.Standard|Win32.ActiveCfg = Standard|Win32
{C31B2675-B04B-45F1-BBB2-35F099375CF8}.Standard|Win32.Build.0 = Standard|Win32
- {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Debug|Win32.ActiveCfg = Standard|Win32
- {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Debug|Win32.Build.0 = Standard|Win32
- {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Release|Win32.ActiveCfg = Standard|Win32
- {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Release|Win32.Build.0 = Standard|Win32
+ {C31B2675-B04B-45F1-BBB2-35F099375CF8}.Standard|x64.ActiveCfg = Standard|Win32
{FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Standard|Win32.ActiveCfg = Standard|Win32
{FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Standard|Win32.Build.0 = Standard|Win32
- {AC999700-A6C5-4BBD-8A01-D29ED089E951}.Debug|Win32.ActiveCfg = Standard|Win32
- {AC999700-A6C5-4BBD-8A01-D29ED089E951}.Debug|Win32.Build.0 = Standard|Win32
- {AC999700-A6C5-4BBD-8A01-D29ED089E951}.Release|Win32.ActiveCfg = Standard|Win32
- {AC999700-A6C5-4BBD-8A01-D29ED089E951}.Release|Win32.Build.0 = Standard|Win32
+ {FF6CFCF2-F424-4B17-93FF-469DEAD1D723}.Standard|x64.ActiveCfg = Standard|Win32
{AC999700-A6C5-4BBD-8A01-D29ED089E951}.Standard|Win32.ActiveCfg = Standard|Win32
{AC999700-A6C5-4BBD-8A01-D29ED089E951}.Standard|Win32.Build.0 = Standard|Win32
- {9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Debug|Win32.ActiveCfg = Standard|Win32
- {9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Debug|Win32.Build.0 = Standard|Win32
- {9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Release|Win32.ActiveCfg = Standard|Win32
- {9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Release|Win32.Build.0 = Standard|Win32
+ {AC999700-A6C5-4BBD-8A01-D29ED089E951}.Standard|x64.ActiveCfg = Standard|Win32
{9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Standard|Win32.ActiveCfg = Standard|Win32
{9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Standard|Win32.Build.0 = Standard|Win32
+ {9C2663C3-E055-42A7-A678-7A3F6472EC8D}.Standard|x64.ActiveCfg = Standard|Win32
+ {70E7D2D9-32CA-40E5-AC89-6CD71B4D1EF3}.Standard|Win32.ActiveCfg = Standard|Win32
+ {70E7D2D9-32CA-40E5-AC89-6CD71B4D1EF3}.Standard|Win32.Build.0 = Standard|Win32
+ {70E7D2D9-32CA-40E5-AC89-6CD71B4D1EF3}.Standard|x64.ActiveCfg = Standard|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {AFE150CC-2316-4B33-987A-12B6E954F10F}
+ EndGlobalSection
EndGlobal