From 2e50b01ff6047ab61854d19e2028431e6c19e23e Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Wed, 6 Sep 2023 22:51:32 -0400
Subject: [PATCH] Innosetup installer

---
 autobuild.xml                                 |  64 +-
 indra/cmake/Copy3rdPartyLibs.cmake            |  62 ++
 indra/newview/CMakeLists.txt                  |   4 +
 .../windows/FILES_ARE_UNICODE_UTF-16LE.txt    |   6 -
 .../installers/windows/install_template.iss   | 109 +++
 .../installers/windows/installer_template.nsi | 868 ------------------
 indra/newview/installers/windows/lang_da.nsi  | Bin 12802 -> 0 bytes
 indra/newview/installers/windows/lang_de.nsi  |  90 --
 .../newview/installers/windows/lang_en-us.nsi | Bin 12470 -> 0 bytes
 indra/newview/installers/windows/lang_es.nsi  | Bin 13790 -> 0 bytes
 indra/newview/installers/windows/lang_fr.nsi  | Bin 14302 -> 0 bytes
 indra/newview/installers/windows/lang_it.nsi  | Bin 13528 -> 0 bytes
 indra/newview/installers/windows/lang_ja.nsi  | Bin 10698 -> 0 bytes
 indra/newview/installers/windows/lang_pl.nsi  | Bin 13122 -> 0 bytes
 .../newview/installers/windows/lang_pt-br.nsi | Bin 13970 -> 0 bytes
 indra/newview/installers/windows/lang_ru.nsi  | Bin 13264 -> 0 bytes
 indra/newview/installers/windows/lang_tr.nsi  | Bin 13174 -> 0 bytes
 indra/newview/installers/windows/lang_zh.nsi  | Bin 10144 -> 0 bytes
 .../installers/windows/language_menu.nsi      | Bin 1464 -> 0 bytes
 indra/newview/viewer_manifest.py              |  88 +-
 20 files changed, 243 insertions(+), 1048 deletions(-)
 delete mode 100644 indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
 create mode 100644 indra/newview/installers/windows/install_template.iss
 delete mode 100644 indra/newview/installers/windows/installer_template.nsi
 delete mode 100644 indra/newview/installers/windows/lang_da.nsi
 delete mode 100644 indra/newview/installers/windows/lang_de.nsi
 delete mode 100644 indra/newview/installers/windows/lang_en-us.nsi
 delete mode 100644 indra/newview/installers/windows/lang_es.nsi
 delete mode 100644 indra/newview/installers/windows/lang_fr.nsi
 delete mode 100644 indra/newview/installers/windows/lang_it.nsi
 delete mode 100644 indra/newview/installers/windows/lang_ja.nsi
 delete mode 100644 indra/newview/installers/windows/lang_pl.nsi
 delete mode 100644 indra/newview/installers/windows/lang_pt-br.nsi
 delete mode 100644 indra/newview/installers/windows/lang_ru.nsi
 delete mode 100644 indra/newview/installers/windows/lang_tr.nsi
 delete mode 100644 indra/newview/installers/windows/lang_zh.nsi
 delete mode 100644 indra/newview/installers/windows/language_menu.nsi

diff --git a/autobuild.xml b/autobuild.xml
index ff9768828b9..bf52db0031a 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -819,6 +819,38 @@
         <key>version</key>
         <string>0.10.6.314267</string>
       </map>
+      <key>innosetup</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1997-2023 Jordan Russell. All rights reserved.</string>
+        <key>description</key>
+        <string>Innosetup installer framework</string>
+        <key>license</key>
+        <string>MIT</string>
+        <key>license_file</key>
+        <string>LICENSES/innosetup.txt</string>
+        <key>name</key>
+        <string>innosetup</string>
+        <key>platforms</key>
+        <map>
+          <key>windows64</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>46b82a3209dfa4bc6b65aa655eebdbd4ecaed1e1cc33e0a3b77d36475d5fa3ccd3fdc220c803ba91fa19b3e94b3bda2fa459cabab2620946af28f170d8aaa76c</string>
+              <key>hash_algorithm</key>
+              <string>blake2b</string>
+              <key>url</key>
+              <string>https://git.alchemyviewer.org/api/v4/projects/212/packages/generic/innosetup/6.2.2.2143/innosetup-6.2.2-windows64-2143.tar.zst</string>
+            </map>
+            <key>name</key>
+            <string>windows64</string>
+          </map>
+        </map>
+        <key>version</key>
+        <string>6.2.2</string>
+      </map>
       <key>jpegencoderbasic</key>
       <map>
         <key>copyright</key>
@@ -2079,38 +2111,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
         <key>version</key>
         <string>4.10.0000.32327.5fc3fe7c.558436</string>
       </map>
-      <key>squirrel</key>
-      <map>
-        <key>copyright</key>
-        <string>Copyright (c) 2012 GitHub, Inc.</string>
-        <key>description</key>
-        <string>Squirrel installer framework</string>
-        <key>license</key>
-        <string>MIT</string>
-        <key>license_file</key>
-        <string>LICENSES/squirrel.txt</string>
-        <key>name</key>
-        <string>squirrel</string>
-        <key>platforms</key>
-        <map>
-          <key>windows64</key>
-          <map>
-            <key>archive</key>
-            <map>
-              <key>hash</key>
-              <string>6ebc2d8934207911406aea18de8eac46bcd18cc4b6f6e2c24b936cac2d7f0abe94fc17e274f5567dc4280ace5a4e8accac658edb0cdf0623348fc72678c999cd</string>
-              <key>hash_algorithm</key>
-              <string>blake2b</string>
-              <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/197/packages/generic/squirrel/2.9.42.1850/squirrel-2.9.42-windows64-1850.tar.zst</string>
-            </map>
-            <key>name</key>
-            <string>windows64</string>
-          </map>
-        </map>
-        <key>version</key>
-        <string>2.9.42</string>
-      </map>
       <key>threejs</key>
       <map>
         <key>copyright</key>
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 222017c55fe..3a6784d5afe 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -85,6 +85,68 @@ if(WINDOWS)
     if(TARGET al::discord-gamesdk)
       list(APPEND release_files discord_game_sdk.dll)
     endif()
+
+    #*******************************
+    # Copy MS C runtime dlls, required for packaging.
+    if (MSVC80)
+        set(MSVC_VER 80)
+    elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
+        MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
+    elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
+        set(MSVC_VER 120)
+    elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
+        set(MSVC_VER 140)
+    elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
+        set(MSVC_VER 140)
+    elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
+        set(MSVC_VER 140)
+    else (MSVC80)
+        MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
+    endif (MSVC80)
+
+    if(ADDRESS_SIZE EQUAL 32)
+        # this folder contains the 32bit DLLs.. (yes really!)
+        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
+    else(ADDRESS_SIZE EQUAL 32)
+        # this folder contains the 64bit DLLs.. (yes really!)
+        set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
+    endif(ADDRESS_SIZE EQUAL 32)
+
+    # Having a string containing the system registry path is a start, but to
+    # get CMake to actually read the registry, we must engage some other
+    # operation.
+    get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
+
+    # These are candidate DLL names. Empirically, VS versions before 2015 have
+    # msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
+    # Check each of them.
+    foreach(release_msvc_file
+            concrt${MSVC_VER}.dll
+            msvcp${MSVC_VER}.dll
+            msvcp${MSVC_VER}_1.dll
+            msvcp${MSVC_VER}_2.dll
+            msvcp${MSVC_VER}_atomic_wait.dll
+            msvcp${MSVC_VER}_codecvt_ids.dll
+            vccorlib${MSVC_VER}.dll
+            vcruntime${MSVC_VER}.dll
+            vcruntime${MSVC_VER}_1.dll
+            )
+        if(EXISTS "${registry_path}/${release_msvc_file}")
+            to_staging_dirs(
+                ${registry_path}
+                third_party_targets
+                ${release_msvc_file})
+        else()
+            # This isn't a WARNING because, as noted above, every VS version
+            # we've observed has only a subset of the specified DLL names.
+            MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
+        endif()
+    endforeach()
+    MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER}:")
+    foreach(target ${third_party_targets})
+        MESSAGE(STATUS "${target}")
+    endforeach()
+
 elseif(DARWIN)
     set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
     set(slvoice_files SLVoice)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 92f667cb781..89325f65a3d 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -53,6 +53,10 @@ include(LLPrimitive)
 # Viewer Branding Assets
 use_prebuilt_binary(branding)
 
+if(WINDOWS)
+  use_prebuilt_binary(innosetup)
+endif()
+
 if( LLPHYSICSEXTENSIONS_SRC_DIR )
 if (NOT HAVOK_TPV)
    # When using HAVOK_TPV, the library is precompiled, so no need for this
diff --git a/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt b/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
deleted file mode 100644
index 30f9349111d..00000000000
--- a/indra/newview/installers/windows/FILES_ARE_UNICODE_UTF-16LE.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-The language files in this directory are Unicode (Little-Endian) format, also known as UTF-16 LE.
-
-This is the format required for NSIS Unicode.  See http://www.scratchpaper.com/ for details.
-
-James Cook
-September 2008
diff --git a/indra/newview/installers/windows/install_template.iss b/indra/newview/installers/windows/install_template.iss
new file mode 100644
index 00000000000..18c74a43280
--- /dev/null
+++ b/indra/newview/installers/windows/install_template.iss
@@ -0,0 +1,109 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+;#define MyAppName "Alchemy Viewer"
+;#define MyAppNameShort "AlchemyViewer"
+;#define MyAppVersion "7.0.0.4545"
+;#define MyAppExeName "MyProg.exe"
+;#define ViewerSrcDir ""
+
+%%INST_VARS%%
+
+#define MyAppPublisher "Alchemy Development Group"
+#define MyAppURL "https://www.alchemyviewer.org"
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{564993A0-36C3-4C9C-83FA-336EAB720367}
+AppName={#MyAppName}
+AppVersion={#MyAppVersion}
+AppVerName={#MyAppName} {#MyAppVersion} 
+;AppVerName={#MyAppName} {#MyAppVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+AppCopyright=Copyright (C) 2013-2023 {#MyAppPublisher}
+DefaultDirName={autopf}\{#MyAppNameShort}
+DisableProgramGroupPage=yes
+;LicenseFile={#ViewerSrcDir}\..\..\doc\LGPL-license.txt
+; Uncomment the following line to run in non administrative install mode (install for current user only.)
+;PrivilegesRequired=lowest
+PrivilegesRequiredOverridesAllowed=commandline
+OutputDir=.
+OutputBaseFilename={#MyAppInstFile}
+SetupIconFile={#ViewerSrcDir}\installers\windows\install_icon.ico
+Compression=lzma2
+SolidCompression=yes
+WizardStyle=modern
+ArchitecturesAllowed=x64
+ArchitecturesInstallIn64BitMode=x64
+MinVersion=10.0
+AppMutex=AlchemyAppMutex,Global\AlchemyAppMutex
+VersionInfoCompany={#MyAppPublisher}
+VersionInfoVersion={#MyAppVersion}
+DisableWelcomePage=no
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl"
+Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
+Name: "bulgarian"; MessagesFile: "compiler:Languages\Bulgarian.isl"
+Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
+Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
+Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
+Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
+Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
+Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
+Name: "french"; MessagesFile: "compiler:Languages\French.isl"
+Name: "german"; MessagesFile: "compiler:Languages\German.isl"
+Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
+Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
+Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
+Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
+Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
+Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
+Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
+Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
+Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
+Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
+Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
+Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
+Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
+Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+%%INSTALL_FILES%%
+
+[InstallDelete]
+Type: files; Name: "{app}\app_settings"
+Type: files; Name: "{app}\llplugin"
+Type: files; Name: "{app}\skins"
+
+[Icons]
+Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
+Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
+
+[Registry]
+Root: HKA; Subkey: "Software\Classes\secondlife"; ValueType: "string"; ValueData: "URL:Second Life"; Flags: uninsdeletekey
+Root: HKA; Subkey: "Software\Classes\secondlife"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
+Root: HKA; Subkey: "Software\Classes\secondlife\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
+Root: HKA; Subkey: "Software\Classes\secondlife\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" -url ""%1"""
+
+Root: HKA; Subkey: "Software\Classes\x-grid-info"; ValueType: "string"; ValueData: "URL:Hypergrid"; Flags: uninsdeletekey
+Root: HKA; Subkey: "Software\Classes\x-grid-info"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
+Root: HKA; Subkey: "Software\Classes\x-grid-info\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
+Root: HKA; Subkey: "Software\Classes\x-grid-info\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" -url ""%1"""
+
+Root: HKA; Subkey: "Software\Classes\x-grid-location-info"; ValueType: "string"; ValueData: "URL:Hypergrid"; Flags: uninsdeletekey
+Root: HKA; Subkey: "Software\Classes\x-grid-location-info"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
+Root: HKA; Subkey: "Software\Classes\x-grid-location-info\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#MyAppExeName},0"
+Root: HKA; Subkey: "Software\Classes\x-grid-location-info\shell\open\command"; ValueType: "string"; ValueData: """{app}\{#MyAppExeName}"" -url ""%1"""
\ No newline at end of file
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
deleted file mode 100644
index c782c901c37..00000000000
--- a/indra/newview/installers/windows/installer_template.nsi
+++ /dev/null
@@ -1,868 +0,0 @@
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Second Life setup.nsi
-;; Copyright 2004-2015, Linden Research, Inc.
-;;
-;; This library is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU Lesser General Public
-;; License as published by the Free Software Foundation;
-;; version 2.1 of the License only.
-;;
-;; This library 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
-;; Lesser General Public License for more details.
-;;
-;; You should have received a copy of the GNU Lesser General Public
-;; License along with this library; if not, write to the Free Software
-;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-;;
-;; Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
-;;
-;; NSIS 3 or higher required for Unicode support
-;;
-;; Author: James Cook, TankMaster Finesmith, Don Kjer, Callum Prentice
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Compiler flags
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Unicode true
-SetOverwrite on				# Overwrite files
-SetCompress auto			# Compress if saves space
-SetCompressor /solid lzma	# Compress whole installer as one block
-SetDatablockOptimize off	# Only saves us 0.1%, not worth it
-XPStyle on                  # Add an XP manifest to the installer
-RequestExecutionLevel admin	# For when we write to Program Files
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Project flags
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-# This placeholder is replaced by viewer_manifest.py
-%%VERSION%%
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; - language files - one for each language (or flavor thereof)
-;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the 
-;; application directory so we have to add a path to these include files)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Ansariel notes: "Under certain circumstances the installer will fall back
-;; to the first defined (aka default) language version. So you want to include
-;; en-us as first language file."
-!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
-
-# Danish and Polish no longer supported by the viewer itself
-##!include "%%SOURCE%%\installers\windows\lang_da.nsi"
-!include "%%SOURCE%%\installers\windows\lang_de.nsi"
-!include "%%SOURCE%%\installers\windows\lang_es.nsi"
-!include "%%SOURCE%%\installers\windows\lang_fr.nsi"
-!include "%%SOURCE%%\installers\windows\lang_ja.nsi"
-!include "%%SOURCE%%\installers\windows\lang_it.nsi"
-##!include "%%SOURCE%%\installers\windows\lang_pl.nsi"
-!include "%%SOURCE%%\installers\windows\lang_pt-br.nsi"
-!include "%%SOURCE%%\installers\windows\lang_ru.nsi"
-!include "%%SOURCE%%\installers\windows\lang_tr.nsi"
-!include "%%SOURCE%%\installers\windows\lang_zh.nsi"
-
-# *TODO: Move these into the language files themselves
-##LangString LanguageCode ${LANG_DANISH}   "da"
-LangString LanguageCode ${LANG_GERMAN}   "de"
-LangString LanguageCode ${LANG_ENGLISH}  "en"
-LangString LanguageCode ${LANG_SPANISH}  "es"
-LangString LanguageCode ${LANG_FRENCH}   "fr"
-LangString LanguageCode ${LANG_JAPANESE} "ja"
-LangString LanguageCode ${LANG_ITALIAN}  "it"
-##LangString LanguageCode ${LANG_POLISH}   "pl"
-LangString LanguageCode ${LANG_PORTUGUESEBR} "pt"
-LangString LanguageCode ${LANG_RUSSIAN}  "ru"
-LangString LanguageCode ${LANG_TURKISH}  "tr"
-LangString LanguageCode ${LANG_TRADCHINESE}  "zh"
-
-# This placeholder is replaced by viewer_manifest.py
-%%INST_VARS%%
-
-Name ${INSTNAME}
-
-SubCaption 0 $(LicenseSubTitleSetup)	# Override "license agreement" text
-
-!define MUI_ICON   "%%SOURCE%%\installers\windows\install_icon.ico"
-!define MUI_UNICON "%%SOURCE%%\installers\windows\uninstall_icon.ico"
-
-BrandingText " "						# Bottom of window text
-Icon          "${MUI_ICON}"
-UninstallIcon "${MUI_UNICON}"
-WindowIcon on							# Show our icon in left corner
-BGGradient off							# No big background window
-CRCCheck on								# Make sure CRC is OK
-InstProgressFlags smooth colored		# New colored smooth look
-SetOverwrite on							# Overwrite files by default
-AutoCloseWindow true					# After all files install, close window
-
-# Registry key paths, ours and Microsoft's
-!define LINDEN_KEY      "SOFTWARE\Alchemy Development Group"
-!define INSTNAME_KEY    "${LINDEN_KEY}\${INSTNAME}"
-!define MSCURRVER_KEY   "SOFTWARE\Microsoft\Windows\CurrentVersion"
-!define MSNTCURRVER_KEY "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
-!define MSUNINSTALL_KEY "${MSCURRVER_KEY}\Uninstall\${INSTNAME}"
-
-# from http://nsis.sourceforge.net/Docs/MultiUser/Readme.html
-### Highest level permitted for user: Admin for Admin, Standard for Standard
-##!define MULTIUSER_EXECUTIONLEVEL Highest
-!define MULTIUSER_EXECUTIONLEVEL Admin
-!define MULTIUSER_MUI
-### Look for /AllUsers or /CurrentUser switches
-##!define MULTIUSER_INSTALLMODE_COMMANDLINE
-# appended to $PROGRAMFILES, as affected by MULTIUSER_USE_PROGRAMFILES64
-!define MULTIUSER_INSTALLMODE_INSTDIR "${INSTNAME}"
-# expands to !define MULTIUSER_USE_PROGRAMFILES64 or nothing
-%%PROGRAMFILES%%
-# should make MultiUser.nsh initialization read existing INSTDIR from registry
-## SL-10506: don't
-##!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "${INSTNAME_KEY}"
-##!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME ""
-# Don't set MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY and
-# MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME to cause the installer to
-# write $MultiUser.InstallMode to the registry, because when the user installs
-# multiple viewers with the same channel (same ${INSTNAME}, hence same
-# ${INSTNAME_KEY}), the registry entry is overwritten. Instead we'll write a
-# little file into the install directory -- see .onInstSuccess and un.onInit.
-!include MultiUser.nsh
-!include MUI2.nsh
-!define MUI_BGCOLOR FFFFFF
-!insertmacro MUI_FUNCTION_GUIINIT
-
-UninstallText $(UninstallTextMsg)
-DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
-##!insertmacro MULTIUSER_PAGE_INSTALLMODE
-!define MUI_PAGE_CUSTOMFUNCTION_PRE dirPre
-!insertmacro MUI_PAGE_DIRECTORY
-!insertmacro MUI_PAGE_INSTFILES
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Variables
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Var INSTNAME
-Var INSTEXE
-Var VIEWER_EXE
-Var INSTSHORTCUT
-Var COMMANDLINE         # Command line passed to this installer, set in .onInit
-Var SHORTCUT_LANG_PARAM # "--set InstallLanguage de", Passes language to viewer
-Var SKIP_DIALOGS        # Set from command line in  .onInit. autoinstall GUI and the defaults.
-Var SKIP_AUTORUN		# Skip automatic launch of the viewer after install
-
-# Function definitions should go before file includes, because calls to
-# DLLs like LangDLL trigger an implicit file include, so if that call is at
-# the end of this script NSIS has to decompress the whole installer before 
-# it can call the DLL function. JC
-
-!include "FileFunc.nsh"     # For GetParameters, GetOptions
-!insertmacro GetParameters
-!insertmacro GetOptions
-!include WinVer.nsh			# For OS and SP detection
-!include 'LogicLib.nsh'     # for value comparison
-!include "x64.nsh"			# for 64bit detection
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Pre-directory page callback
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function dirPre
-    StrCmp $SKIP_DIALOGS "true" 0 +2
-	Abort
-
-FunctionEnd    
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Prep Installer Section
-;;
-;; Note: to add new languages, add a language file include to the list 
-;; at the top of this file, add an entry to the menu and then add an 
-;; entry to the language ID selector below
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function .onInit
-!insertmacro MULTIUSER_INIT
-
-%%ENGAGEREGISTRY%%
-
-# SL-10506: Setting MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY and
-# MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME should
-# read the current location of the install for this version into INSTDIR.
-# However, SL-10506 complains about the resulting behavior, so the logic below
-# is adapted from before we introduced MultiUser.nsh.
-
-# if $0 is empty, this is the first time for this viewer name
-ReadRegStr $0 SHELL_CONTEXT "${INSTNAME_KEY}" ""
-
-# viewer with this name was installed before
-${If} $0 != ""
-	# use the value we got from registry as install location
-    StrCpy $INSTDIR $0
-${EndIf}
-
-Call CheckCPUFlags							# Make sure we have SSE2 support
-Call CheckWindowsVersion					# Don't install On unsupported systems
-    Push $0
-    ${GetParameters} $COMMANDLINE			# Get our command line
-
-    ${GetOptions} $COMMANDLINE "/SKIP_DIALOGS" $0   
-    IfErrors +2 0	# If error jump past setting SKIP_DIALOGS
-        StrCpy $SKIP_DIALOGS "true"
-
-	${GetOptions} $COMMANDLINE "/SKIP_AUTORUN" $0
-	IfErrors +2 0 ; If error jump past setting SKIP_AUTORUN
-		StrCpy $SKIP_AUTORUN "true"
-
-    ${GetOptions} $COMMANDLINE "/LANGID=" $0	# /LANGID=1033 implies US English
-
-# If no language (error), then proceed
-    IfErrors lbl_configure_default_lang
-# No error means we got a language, so use it
-    StrCpy $LANGUAGE $0
-    Goto lbl_return
-
-lbl_configure_default_lang:
-# If we currently have a version of SL installed, default to the language of that install
-# Otherwise don't change $LANGUAGE and it will default to the OS UI language.
-    ReadRegStr $0 SHELL_CONTEXT "${INSTNAME_KEY}" "InstallerLanguage"
-    IfErrors +2 0	# If error skip the copy instruction 
-	StrCpy $LANGUAGE $0
-
-# For silent installs, no language prompt, use default
-    IfSilent 0 +3
-    StrCpy $SKIP_AUTORUN "true"
-    Goto lbl_return
-    StrCmp $SKIP_DIALOGS "true" lbl_return
-  
-	Push ""
-# Use separate file so labels can be UTF-16 but we can still merge changes into this ASCII file. JC
-    !include "%%SOURCE%%\installers\windows\language_menu.nsi"
-    
-	Push A	# A means auto count languages for the auto count to work the first empty push (Push "") must remain
-	LangDLL::LangDialog $(InstallerLanguageTitle) $(SelectInstallerLanguage)
-	Pop $0
-	StrCmp $0 "cancel" 0 +2
-		Abort
-    StrCpy $LANGUAGE $0
-
-# Save language in registry		
-	WriteRegStr SHELL_CONTEXT "${INSTNAME_KEY}" "InstallerLanguage" $LANGUAGE
-lbl_return:
-    Pop $0
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Prep Uninstaller Section
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function un.onInit
-    # Save $INSTDIR -- it appears to have the correct value before
-    # MULTIUSER_UNINIT, but then gets munged by MULTIUSER_UNINIT?!
-    Push $INSTDIR
-    !insertmacro MULTIUSER_UNINIT
-    Pop $INSTDIR
-
-    # Now read InstallMode.txt from $INSTDIR
-    Push $0
-    ClearErrors
-    FileOpen $0 "$INSTDIR\InstallMode.txt" r
-    IfErrors skipread
-    FileRead $0 $MultiUser.InstallMode
-    FileClose $0
-skipread:
-    Pop $0
-
-%%ENGAGEREGISTRY%%
-
-# Read language from registry and set for uninstaller. Key will be removed on successful uninstall
-	ReadRegStr $0 SHELL_CONTEXT "${INSTNAME_KEY}" "InstallerLanguage"
-    IfErrors lbl_end
-	StrCpy $LANGUAGE $0
-lbl_end:
-
-##  MessageBox MB_OK "After restoring:$\n$$INSTDIR = '$INSTDIR'$\n$$MultiUser.InstallMode = '$MultiUser.InstallMode'$\n$$LANGUAGE = '$LANGUAGE'"
-
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Checks for CPU valid (must have SSE2 support)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckCPUFlags
-    Push $1
-    System::Call 'kernel32::IsProcessorFeaturePresent(i) i(10) .r1'
-    IntCmp $1 1 OK_SSE2
-    MessageBox MB_OKCANCEL $(MissingSSE2) /SD IDOK IDOK OK_SSE2
-    Quit
-
-  OK_SSE2:
-    Pop $1
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Make sure this computer meets the minimum system requirements.
-;; Currently: Windows Vista SP2
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckWindowsVersion
-  ${If} ${AtMostWin2003}
-    MessageBox MB_OK $(CheckWindowsVersionMB)
-    Quit
-  ${EndIf}
-
-  ${If} ${IsWinVista}
-  ${AndIfNot} ${IsServicePack} 2
-    MessageBox MB_OK $(CheckWindowsVersionMB)
-    Quit
-  ${EndIf}
-
-  ${If} ${IsWin2008}
-  ${AndIfNot} ${IsServicePack} 2
-    MessageBox MB_OK $(CheckWindowsVersionMB)
-    Quit
-  ${EndIf}
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Install Section
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Section ""
-
-# SetShellVarContext is set by MultiUser.nsh initialization.
-
-# Start with some default values.
-StrCpy $INSTNAME "${INSTNAME}"
-StrCpy $INSTEXE "${INSTEXE}"
-StrCpy $VIEWER_EXE "${VIEWER_EXE}"
-StrCpy $INSTSHORTCUT "${SHORTCUT}"
-
-Call CheckIfAdministrator		# Make sure the user can install/uninstall
-Call CloseSecondLife			# Make sure Second Life not currently running
-
-ClearErrors
-
-INSTALL_FILES_START:
-
-Call RemoveProgFilesOnInst		# Remove existing files to prevent certain errors when running the new version of the viewer
-
-# This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
-%%INSTALL_FILES%%
-
-IfErrors 0 INSTALL_FILES_DONE
-  StrCmp $SKIP_DIALOGS "true" INSTALL_FILES_DONE
-	MessageBox MB_ABORTRETRYIGNORE $(ErrorSecondLifeInstallRetry) IDABORT INSTALL_FILES_CANCEL IDRETRY INSTALL_FILES_START
-    # MB_ABORTRETRYIGNORE does not accept IDIGNORE
-    Goto INSTALL_FILES_DONE
-
-INSTALL_FILES_CANCEL:
-  # We are quiting, cleanup.
-  # Silence warnings from RemoveProgFilesOnInst.
-  StrCpy $SKIP_DIALOGS "true"
-  Call RemoveProgFilesOnInst
-  MessageBox MB_OK $(ErrorSecondLifeInstallSupport)
-  Quit
-
-INSTALL_FILES_DONE:
-
-# Pass the installer's language to the client to use as a default
-StrCpy $SHORTCUT_LANG_PARAM "--set InstallLanguage $(LanguageCode)"
-
-# Shortcuts in start menu
-CreateDirectory	"$SMPROGRAMS\$INSTSHORTCUT"
-SetOutPath "$INSTDIR"
-CreateShortCut	"$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
-				"$INSTDIR\$VIEWER_EXE" "$SHORTCUT_LANG_PARAM" "$INSTDIR\$VIEWER_EXE"
-
-
-WriteINIStr		"$SMPROGRAMS\$INSTSHORTCUT\SL Create Account.url" \
-				"InternetShortcut" "URL" \
-				"http://join.secondlife.com/"
-WriteINIStr		"$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \
-				"InternetShortcut" "URL" \
-				"http://www.secondlife.com/account/"
-WriteINIStr		"$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.url" \
-				"InternetShortcut" "URL" \
-                "http://wiki.secondlife.com/wiki/LSL_Portal"
-CreateShortCut	"$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
-				'"$INSTDIR\uninst.exe"' ''
-
-# Other shortcuts
-SetOutPath "$INSTDIR"
-CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" \
-        "$INSTDIR\$VIEWER_EXE" "$SHORTCUT_LANG_PARAM" "$INSTDIR\$VIEWER_EXE"
-CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" \
-        "$INSTDIR\$VIEWER_EXE" "$SHORTCUT_LANG_PARAM" "$INSTDIR\$VIEWER_EXE"
-CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
-				'"$INSTDIR\uninst.exe"' ''
-
-# Write registry
-WriteRegStr SHELL_CONTEXT "${INSTNAME_KEY}" "" "$INSTDIR"
-WriteRegStr SHELL_CONTEXT "${INSTNAME_KEY}" "Version" "${VERSION_LONG}"
-WriteRegStr SHELL_CONTEXT "${INSTNAME_KEY}" "Shortcut" "$INSTSHORTCUT"
-WriteRegStr SHELL_CONTEXT "${INSTNAME_KEY}" "Exe" "$VIEWER_EXE"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "Publisher" "Alchemy Development Group"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "URLInfoAbout" "https://alchemyviewer.org/pages/about.html"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "URLUpdateInfo" "https://alchemyviewer.org/pages/downloads.html"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "HelpLink" "https://alchemyviewer.org/"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "DisplayName" "$INSTNAME"
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "UninstallString" '"$INSTDIR\uninst.exe"'
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "DisplayVersion" "${VERSION_LONG}"
-WriteRegDWORD SHELL_CONTEXT "${MSUNINSTALL_KEY}" "EstimatedSize" "0x0001D500"		# ~117 MB
-
-# from FS:Ansariel
-WriteRegStr SHELL_CONTEXT "${MSUNINSTALL_KEY}" "DisplayIcon" '"$INSTDIR\$VIEWER_EXE"'
-
-# Write URL registry info
-WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
-WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
-WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$VIEWER_EXE"'
-
-# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
-# MAINT-8305: On SLURL click, directly invoke the viewer, not the launcher.
-WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$VIEWER_EXE" -url "%1"'
-
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-info" "(default)" "URL:Hypergrid"
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-info" "URL Protocol" ""
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-info\DefaultIcon" "" '"$INSTDIR\$VIEWER_EXE"'
-
-# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$VIEWER_EXE" -url "%1"'
-
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "(default)" "URL:Hypergrid"
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "URL Protocol" ""
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$VIEWER_EXE"'
-
-# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$VIEWER_EXE" -url "%1"'
-
-WriteRegStr HKEY_CLASSES_ROOT "Applications\$INSTEXE" "IsHostApp" ""
-##WriteRegStr HKEY_CLASSES_ROOT "Applications\${VIEWER_EXE}" "NoStartPage" ""
-
-# Write out uninstaller
-WriteUninstaller "$INSTDIR\uninst.exe"
-
-SectionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Uninstall Section
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Section Uninstall
-
-# Start with some default values.
-StrCpy $INSTNAME "${INSTNAME}"
-StrCpy $INSTEXE "${INSTEXE}"
-StrCpy $VIEWER_EXE "${VIEWER_EXE}"
-StrCpy $INSTSHORTCUT "${SHORTCUT}"
-
-# SetShellVarContext per the mode saved at install time in registry at
-# MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY
-# MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME
-# Couldn't get NSIS to expand $MultiUser.InstallMode into the function name at Call time
-${If} $MultiUser.InstallMode == 'AllUsers'
-##MessageBox MB_OK "Uninstalling for all users"
-  Call un.MultiUser.InstallMode.AllUsers
-${Else}
-##MessageBox MB_OK "Uninstalling for current user"
-  Call un.MultiUser.InstallMode.CurrentUser
-${EndIf}
-
-# Make sure we're not running
-Call un.CloseSecondLife
-
-# Clean up registry keys and subkeys (these should all be !defines somewhere)
-DeleteRegKey SHELL_CONTEXT "${INSTNAME_KEY}"
-DeleteRegKey SHELL_CONTEXT "${MSCURRVER_KEY}\Uninstall\$INSTNAME"
-# BUG-2707 Remove entry that disabled SEHOP
-DeleteRegKey SHELL_CONTEXT "${MSNTCURRVER_KEY}\Image File Execution Options\$VIEWER_EXE"
-DeleteRegKey HKEY_CLASSES_ROOT "Applications\$INSTEXE"
-DeleteRegKey HKEY_CLASSES_ROOT "Applications\${VIEWER_EXE}"
-
-# Clean up shortcuts
-Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
-RMDir  "$SMPROGRAMS\$INSTSHORTCUT"
-
-Delete "$DESKTOP\$INSTSHORTCUT.lnk"
-Delete "$INSTDIR\$INSTSHORTCUT.lnk"
-Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk"
-
-# Remove the main installation directory
-Call un.ProgramFiles
-
-# Clean up cache and log files, but leave them in-place for non AGNI installs.
-Call un.UserSettingsFiles
-
-SectionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Make sure the user can install
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckIfAdministrator
-    DetailPrint $(CheckAdministratorInstDP)
-    UserInfo::GetAccountType
-    Pop $R0
-    StrCmp $R0 "Admin" lbl_is_admin
-        MessageBox MB_OK $(CheckAdministratorInstMB)
-        Quit
-lbl_is_admin:
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Close the program, if running. Modifies no variables.
-;; Allows user to bail out of install process.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CloseSecondLife
-  Push $0
-  FindWindow $0 "Alchemy" ""
-  IntCmp $0 0 DONE
-  
-  StrCmp $SKIP_DIALOGS "true" CLOSE
-    MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL
-
-  CANCEL_INSTALL:
-    Quit
-
-  CLOSE:
-    DetailPrint $(CloseSecondLifeInstDP)
-    SendMessage $0 16 0 0
-
-  LOOP:
-	  FindWindow $0 "Alchemy" ""
-	  IntCmp $0 0 SLEEP
-	  Sleep 500
-	  Goto LOOP
-	  
-  SLEEP:
-    # Second life window just closed, but program might not be fully done yet
-    # and OS might have not released some locks, wait a bit more to make sure
-    # all file handles were released.
-	# If something still isn't unlocked, it will trigger a notification from
-	# RemoveProgFilesOnInst
-    Sleep 1000
-  DONE:
-    Pop $0
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Close the program, if running. Modifies no variables.
-;; Allows user to bail out of uninstall process.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function un.CloseSecondLife
-  Push $0
-  FindWindow $0 "Alchemy" ""
-  IntCmp $0 0 DONE
-  MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL
-
-  CANCEL_UNINSTALL:
-    Quit
-
-  CLOSE:
-    DetailPrint $(CloseSecondLifeUnInstDP)
-    SendMessage $0 16 0 0
-
-  LOOP:
-	  FindWindow $0 "Alchemy" ""
-	  IntCmp $0 0 DONE
-	  Sleep 500
-	  Goto LOOP
-
-  DONE:
-    Pop $0
-    Return
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Delete files on install if previous install exists to prevent undesired behavior
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function RemoveProgFilesOnInst
-
-# We do not remove whole pervious install folder on install, since
-# there is a chance that viewer was installed into some important
-# folder by intent or accident
-# RMDir /r $INSTDIR is especially unsafe if user installed somewhere
-# like Program Files
-
-# Set retry counter. All integers are strings.
-Push $0
-StrCpy $0 0
-
-ClearErrors
-
-PREINSTALL_REMOVE:
-
-# Remove old SecondLife.exe to invalidate any old shortcuts to it that may be in non-standard locations. See MAINT-3575
-Delete "$INSTDIR\$INSTEXE"
-Delete "$INSTDIR\$VIEWER_EXE"
-
-# Remove old shader files first so fallbacks will work. See DEV-5663
-RMDir /r "$INSTDIR\app_settings\shaders"
-
-# Remove folders to clean up files removed during development
-RMDir /r "$INSTDIR\app_settings"
-RMDir /r "$INSTDIR\skins"
-RMDir /r "$INSTDIR\vmp_icons"
-
-# Remove llplugin, plugins can crash or malfunction if they
-# find modules from different versions
-RMDir /r "$INSTDIR\llplugin"
-
-IntOp $0 $0 + 1
-
-IfErrors 0 PREINSTALL_DONE
-  IntCmp $0 1 PREINSTALL_REMOVE #try again once
-    StrCmp $SKIP_DIALOGS "true" PREINSTALL_DONE
-      MessageBox MB_ABORTRETRYIGNORE $(CloseSecondLifeInstRM) IDABORT PREINSTALL_FAIL IDRETRY PREINSTALL_REMOVE
-      # MB_ABORTRETRYIGNORE does not accept IDIGNORE
-      Goto PREINSTALL_DONE
-
-PREINSTALL_FAIL:
-    Quit
-
-PREINSTALL_DONE:
-
-# We are no longer including release notes with the viewer, so remove them.
-Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
-Delete "$INSTDIR\releasenotes.txt"
-
-Pop $0
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Delete files in \Users\<User>\AppData\
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function un.UserSettingsFiles
-
-# Ask if user wants to keep data files or not
-MessageBox MB_YESNO|MB_ICONQUESTION $(RemoveDataFilesMB) IDYES Remove IDNO Keep
-
-Remove:
-Push $0
-Push $1
-Push $2
-
-  DetailPrint "Deleting Alchemy data files"
-
-  StrCpy $0 0	# Index number used to iterate via EnumRegKey
-
-  LOOP:
-    EnumRegKey $1 SHELL_CONTEXT "${MSNTCURRVER_KEY}\ProfileList" $0
-    StrCmp $1 "" DONE               # No more users
-
-    ReadRegStr $2 SHELL_CONTEXT "${MSNTCURRVER_KEY}\ProfileList\$1" "ProfileImagePath" 
-    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
-
-# Required since ProfileImagePath is of type REG_EXPAND_SZ
-    ExpandEnvStrings $2 $2
-
-# Delete files in \Users\<User>\AppData\Roaming\AlchemyNext
-# Remove all settings files but leave any other .txt files to preserve the chat logs
-;    RMDir /r "$2\AppData\Roaming\AlchemyNext\logs"
-    RMDir /r "$2\AppData\Roaming\AlchemyNext\browser_profile"
-    RMDir /r "$2\AppData\Roaming\AlchemyNext\user_settings"
-    Delete  "$2\AppData\Roaming\AlchemyNext\*.xml"
-    Delete  "$2\AppData\Roaming\AlchemyNext\*.bmp"
-    Delete  "$2\AppData\Roaming\AlchemyNext\search_history.txt"
-    Delete  "$2\AppData\Roaming\AlchemyNext\plugin_cookies.txt"
-    Delete  "$2\AppData\Roaming\AlchemyNext\typed_locations.txt"
-# Delete files in \Users\<User>\AppData\Local\AlchemyNext
-    RmDir /r  "$2\AppData\Local\AlchemyNext"							#Delete the cache folder
-
-  CONTINUE:
-    IntOp $0 $0 + 1
-    Goto LOOP
-  DONE:
-
-Pop $2
-Pop $1
-Pop $0
-
-# Delete files in ProgramData\Secondlife
-Push $0
-  ReadRegStr $0 SHELL_CONTEXT "${MSCURRVER_KEY}\Explorer\Shell Folders" "Common AppData"
-  StrCmp $0 "" +2
-  RMDir /r "$0\Alchemy"
-Pop $0
-
-Keep:
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Delete the installed files
-;; This deletes the uninstall executable, but it works because it is copied to temp directory before running
-;;
-;; Note:  You must list all files here, because we only want to delete our files,
-;; not things users left in the program directory.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function un.ProgramFiles
-
-# This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
-%%DELETE_FILES%%
-
-# our InstallMode.txt
-Delete "$INSTDIR\InstallMode.txt"
-
-# Optional/obsolete files.  Delete won't fail if they don't exist.
-Delete "$INSTDIR\autorun.bat"
-Delete "$INSTDIR\dronesettings.ini"
-Delete "$INSTDIR\message_template.msg"
-Delete "$INSTDIR\newview.pdb"
-Delete "$INSTDIR\newview.map"
-Delete "$INSTDIR\Alchemy.pdb"
-Delete "$INSTDIR\Alchemy.map"
-Delete "$INSTDIR\comm.dat"
-Delete "$INSTDIR\*.glsl"
-Delete "$INSTDIR\motions\*.lla"
-Delete "$INSTDIR\trial\*.html"
-Delete "$INSTDIR\newview.exe"
-Delete "$INSTDIR\Alchemy.exe"
-
-# MAINT-3099 workaround - prevent these log files, if present, from causing a user alert
-Delete "$INSTDIR\VivoxVoiceService-*.log"
-
-# Remove entire help directory
-RMDir /r  "$INSTDIR\help"
-
-Delete "$INSTDIR\uninst.exe"
-RMDir "$INSTDIR"
-
-IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
-
-FOLDERFOUND:
-  MessageBox MB_OK $(DeleteProgramFilesMB) /SD IDOK IDOK NOFOLDER
-
-NOFOLDER:
-
-MessageBox MB_YESNO $(DeleteRegistryKeysMB) IDYES DeleteKeys IDNO NoDelete
-
-DeleteKeys:
-  DeleteRegKey SHELL_CONTEXT "SOFTWARE\Classes\x-grid-location-info"
-  DeleteRegKey SHELL_CONTEXT "SOFTWARE\Classes\secondlife"
-  DeleteRegKey HKEY_CLASSES_ROOT "x-grid-location-info"
-  DeleteRegKey HKEY_CLASSES_ROOT "x-grid-info"
-  DeleteRegKey HKEY_CLASSES_ROOT "secondlife"
-
-NoDelete:
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; After install completes, launch app
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function .onInstSuccess
-        Push $0
-        FileOpen $0 "$INSTDIR\InstallMode.txt" w
-        # No newline -- this is for our use, not for users to read.
-        FileWrite $0 "$MultiUser.InstallMode"
-        FileClose $0
-        Pop $0
-
-        Push $R0
-        Push $0
-        ;; MAINT-7812: Only write nsis.winstall file with /marker switch
-        ${GetParameters} $R0
-        ${GetOptionsS} $R0 "/marker" $0
-        ;; If no /marker switch, skip to ClearErrors
-        IfErrors +4 0
-        ;; $EXEDIR is where we find the installer file
-        ;; Put a marker file there so VMP will know we're done
-        ;; and it can delete the download directory next time.
-        ;; http://nsis.sourceforge.net/Write_text_to_a_file
-        FileOpen $0 "$EXEDIR\nsis.winstall" w
-        FileWrite $0 "NSIS done$\n"
-        FileClose $0
-
-        ClearErrors
-        Pop $0
-        Pop $R0
-
-        Call CheckWindowsServPack		# Warn if not on the latest SP before asking to launch.
-        StrCmp $SKIP_AUTORUN "true" +2;
-        # Assumes SetOutPath $INSTDIR
-        # Run INSTEXE (our updater), passing VIEWER_EXE plus the command-line
-        # arguments built into our shortcuts. This gives the updater a chance
-        # to verify that the viewer we just installed is appropriate for the
-        # running system -- or, if not, to download and install a different
-        # viewer. For instance, if a user running 32-bit Windows installs a
-        # 64-bit viewer, it cannot run on this system. But since the updater
-        # is a 32-bit executable even in the 64-bit viewer package, the
-        # updater can detect the problem and adapt accordingly.
-        # Once everything is in order, the updater will run the specified
-        # viewer with the specified params.
-        # Quote the updater executable and the viewer executable because each
-        # must be a distinct command-line token, but DO NOT quote the language
-        # string because it must decompose into separate command-line tokens.
-        Exec '"$INSTDIR\$INSTEXE" precheck "$INSTDIR\$VIEWER_EXE" $SHORTCUT_LANG_PARAM'
-# 
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Recommend Upgrading to Service Pack 1 for Windows 7, if not present
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckWindowsServPack
-  ${If} ${IsWin7}
-  ${AndIfNot} ${IsServicePack} 1
-    MessageBox MB_OK $(CheckWindowsServPackMB)
-    DetailPrint $(UseLatestServPackDP)
-    Return
-  ${EndIf}
-
-  ${If} ${IsWin2008R2}
-  ${AndIfNot} ${IsServicePack} 1
-    MessageBox MB_OK $(CheckWindowsServPackMB)
-    DetailPrint $(UseLatestServPackDP)
-    Return
-  ${EndIf}
-
-FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Clobber user files - TEST ONLY
-;; This is here for testing, DO NOT USE UNLESS YOU KNOW WHAT YOU ARE TESTING FOR!
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;Function ClobberUserFilesTESTONLY
-
-;Push $0
-;Push $1
-;Push $2
-;
-;    StrCpy $0 0	# Index number used to iterate via EnumRegKey
-;
-;  LOOP:
-;    EnumRegKey $1 SHELL_CONTEXT "${MSNTCURRVER_KEY}\ProfileList" $0
-;    StrCmp $1 "" DONE               # no more users
-;
-;    ReadRegStr $2 SHELL_CONTEXT "${MSNTCURRVER_KEY}\ProfileList\$1" "ProfileImagePath"
-;    StrCmp $2 "" CONTINUE 0         # "ProfileImagePath" value is missing
-;
-;# Required since ProfileImagePath is of type REG_EXPAND_SZ
-;    ExpandEnvStrings $2 $2
-;
-;    RMDir /r "$2\Application Data\SecondLife\"
-;
-;  CONTINUE:
-;    IntOp $0 $0 + 1
-;    Goto LOOP
-;  DONE:
-;
-;Pop $2
-;Pop $1
-;Pop $0
-;
-;# Copy files in Documents and Settings\All Users\SecondLife
-;Push $0
-;    ReadRegStr $0 SHELL_CONTEXT "${MSCURRVER_KEY}\Explorer\Shell Folders" "Common AppData"
-;    StrCmp $0 "" +2
-;    RMDir /r "$2\Application Data\SecondLife\"
-;Pop $0
-;
-;FunctionEnd
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi
deleted file mode 100644
index 73f23086be22efa016f61757a0246ad56a929a6c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12802
zcmd^_+iqLO6^7@!K;L1*FrXMHl%kjEMc_zsN<@-f9h?L(U`P}ttD-2Cq^uZ4A24sw
z7pR}1S55wJmX>CQ+$TzQQM4d<*xY-sS;v1JX8-c<KZYv22<KrMW?`=1=lZU~Nf?FG
za1?IBSpWVu{3dLND;=Nc`zTDpna&*Pa}@6#>$?h1!qf1#up9QnK<`a`?uEaHH(^6}
zPDEuY+Q&Lxq)=(4bFDMd%5QWZ^x@)NSl6$y&OV78zy;hc-#^p6+&|PR=W#V8I2Wa{
zj?V7*H@^4pI6;O=JWitATnUBg67>Vona6XLu1CV{@LW=U8{Udnej)9jBq<sw=^fqk
zGt(;9q7FAEjZ0DTv!6*)(yHUF4@a-VM{$p=??oGZp6keLop`Dur(<1pUT7pqP}*Q7
z`ya=9TsPRbiqwa39c%*CQTR!pm27h)4Y+;Gqv|ZOEe;Ze{kTrD!J%lJh!S+Wtx<)S
z+4a*_&9|?MUFPEDy7#Ix>3uGppij4Xv(!7`P=0kF|2dR5Z7Fiz>S!zcpwGAZm#8|B
zw{7dSBdIoZjw=RwZ|irrE=q4ocCAG3D#m-8Up|b#eM$4pBe(<^t`s#@jAXp?MxIL~
zfKgxQdldev|3EL$qmqVB!e!L?GacEzc;+~K(6LjS3tRA?q3)f=d%>qf{p(gwsnZ1(
z+KqPWW3`vzl~(J*lJ6szMAZjLa-;95J~@Ve!|5_w(M%O?b&e}?ZB+7H@b|sm;2g+3
z3%}DfPMi3I_E2|T>1FYI8+kB&L3^$<ix^?Y*kdHbKGPfB55reN^H*9G%$th(rT!(;
z7}C3Sx@@s_XV+^<KyH}pO%A!z3ZS-GbsRl-s<l`3;#DkX@#hh`ueG~uSVmp)K+8AD
z<7S_g?+wM_o?ct>(Sv)0c{uk?af3}Q*2-*AdTEY5WNBiT%uTcsrJggI(Q<R?u8quV
zQ?^)D!o=B3-b%i@7H?0)(?fY#EnlTvO}-gMZJua#a?`2)sWPt66S0KOQ%)qtt+Mg6
zWPR|`>moe%bwn!aw3qUTx1!JYx2j>*6~#Zq*E7X$TP(HPV3mBCq)s}oWY71}BPwOS
zdR@%I#T^2a{)N1toAcjnJCJ-(WLm3Qw^XwpNGE&Y$4{1Jm-W@A-F}>{o?p?WSIU-0
z@T$5fM5l)K<N#_iGD<!E*IVcz`Y$UTj;OOAUgvl;)N{BlfA7v1rH9mWxVj|<(l1rG
zWdi5Zvtd2I)bQuB;H};%8$Z3T56ycM_SW|p%f9s@Qm{Ve^J#lEe=m7@tbRxG@#OE1
z(XRW;DyZ^YRWN8mE&p&|PT7gd?l__&x$>kHr<bjrbF;c$ceSp~2|kzq<{GBoC%2OU
zE|dv~m#IGK#9qbU)Rk2Jm%4^7+olp#)Xz^XdAkqQ9oenBhWIX4<rA$>C48Y5znE!E
zVpVFjcdCNn6b-JadUQ0|l|^@ymDhwvl~zRxs%Gl_6G>H{<EaV$67igQ&7$5|KOs!+
zJ#_Cwy-Z`P&PwRX)7`W1XB|U{io>P=T~%?iV{>+&h^qHt#2TJJUcb~D)HKvRRQ;85
zgiV}m!jWp7<_O)(=)8<noW^UNNff$mpS;KrnOVz8<a3dmJlD89<W%!)>)NpOmCzl3
zF6*{tSrP}|-+7!-C?(nK)o~_TCQV6kk*8du`b?APm6S@}`b61UOBDzfTuX1@0(=|q
z7xEwa*>dGdwJ)7BII^zzd!uXY^F^dE3;$Bw5wZW&XLAJE`9<1Kh4H`Febl9_ZFQ*4
zP>nNaRyqf2AM5;0^kA@oC?rPheZ0WkS}!Ck`60_q<wxKo=-EflOfU`I@j>{f3jwhV
z%PfmB1MpcyQ!X_m@Oow(<ua70q<`bgCVgnzI86PqO(m#tKt8TE{IcF=raloHf(CBI
zgIJ})^{sTwG?yNNYL}TE|G^7uLCq#X^c$0igG`u^5Z<uCaiqaLbfj0hK2;As$F-S;
zqi%f!97b6=2e;5(v`W9od?h(XqJrjpYOw6vWw%*htJhn^xpIrR&$x8Uh($-ret=Ee
zET+s#Hg!9V@t05JzmQJzjP$IRPp66A;u?cHYW*~run7B`Z_i~9rs4Pr8PsZO>#9p$
z&HM1_RZy>+_dYSXrn#3@3>G)o-{R0Xg*VWH3E{D>oXBU9%;e!1M1pto2%?$$xt1E^
zqt49qMq=iIOwkMzHzUo|XTOuh$xG~XG~1qe3CK~WU7x@j&!vu88QS>b^6X<>wGm$U
zX*`kKP_F)1Z#)#mf!@UU=kZ9>+0k8PX*lJ(R#bny+Ip-M0nL7yOY#5hn@xItsDF;5
zcM~-q<lXtcL!a7iAggZ_clEK(lU~SCA8%IsHctwDPsXAa^sMv-LCd(Z^YeR5F=Y8i
zj1)R0?lA0X!vs(oBwOqVh7r4|ZidS2H_{T72K$@MTHO(cbc*nKCbVI{?GNIjt7}OW
z26Y1~Ljk!trcRg$Wx?WvlSew*Pz83V?^J`NHR;4s^~!!sK5c_f!_u_N)n0+6NpaVl
zw~}vA$NB!xtz@uWFv}8#z~o0du~CiY*;^+g@pil(>w241KQ{k6_1rsMx`BA=kF#_e
zNM^ofmAm;`PCK8nr;In2?B3B^)!qkZ`|#c`ew#S-4kOJQu+w5rz<aEA=T}*``V`_q
z9S?aoWqpg#=d$BW(R33%y8hlWo7>S`cd_%0zP*k}6MmkT*i|%aho99erFuW*HoBq@
zLImQfl!<F>!qAoH`sja8{ZMzzH|d|+m+H$ZDT^4in5GlVY|ybyf_%^ORMPQ3=xG)i
zsiHzEcD5HKb~#hc<C4upxnIn!TIu)-x#S*qd3DgQ#`*7xy`29~9e+*r!vA^<x^JfH
za#y}NS01AeyioR|^8h<jFW8)$SE16+0~1BVe>j;d<~~O5W<ojmq~Es*$5?S#R?{va
z_Y=Kdv827$CY)-PbL*Z~U7QUHEZ>V9+unFrjgnK#Gg`@^X@aZ>hJX;39SzN_I<lFr
z)n?t2GPT|pt!2b(u8rtFtviK_Ygxe7=g6MQ!DD!G$8oTJ#<GeonO&!Ps~i8zxeEwi
zYLb~~z9X0L{hfH9Yc2Mnztjt_LNdI}tEBb#&t*KD^Yx{!VT#MM6!z5ROxL6tmC<2N
zg@&j%7uU+Et+%dC&SAQhtnM>1Dr71O5Dawl3TjykZXb^n=2REDt1d746I}LOkIy{w
zEZH12M1p5ne-<b`QPdC7+pAulk>U9|`X29anE%<-jL1*Vs#;}Ezky~_UEUOfXodQo
zndDgYwAESm*>~zn$25{xrD-I7Ws?@V8MBp5GI>6VE@iO>F?)O6pL&&CN~Sz%9|Wp4
z18tJ6j0)3+Atn2DaIjp5a1V2D^AbGPo)fd$&;F%K0<nF^yX0%p@3@mn3wtcqySe3>
zJ!~_hP(Hi1x}Q19;x$&8^PB||yAN@O{eUK|mQ{ED^v~qJwl@EPZ>zbz3uh-3KVVkw
zPyK>b*fL+=dT+b{ZopyeWwgK+^H!6E?%HRIoTDCR&i>WCFZ+I`J&BNecyq^psy$5T
zV`uV>AyMwN)1~fn*_+_To;7Z^F7;pOsRwuW>_{(IrYpbZdPbW_-&FZE+qJzn$39Hb
zO&937-0w)wcd#eghP7DoEb5b|@0n15AMBkNepuIqZz2h@FwJKk&Z^{Ri$3DnV){5z
zDUl-Ozml#;eyMTjG+QW-KhQqs{<}NgKLyUC8P6o>keYz33}$+lY51OVko5Oh^lr1v
Ke+Hi&JAVaWRi<SC

diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi
deleted file mode 100644
index f67a09f84c6..00000000000
--- a/indra/newview/installers/windows/lang_de.nsi
+++ /dev/null
@@ -1,90 +0,0 @@
-; First is default
-LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"
-
-; Language selection dialog
-LangString InstallerLanguageTitle  ${LANG_GERMAN} "Installationssprache"
-LangString SelectInstallerLanguage  ${LANG_GERMAN} "Bitte wählen Sie die Installationssprache"
-
-; subtitle on license text caption (setup new version or update current one
-LangString LicenseSubTitleUpdate ${LANG_GERMAN} " Update"
-LangString LicenseSubTitleSetup ${LANG_GERMAN} " Setup"
-
-LangString MULTIUSER_TEXT_INSTALLMODE_TITLE ${LANG_GERMAN} "Installationsmodus"
-LangString MULTIUSER_TEXT_INSTALLMODE_SUBTITLE ${LANG_GERMAN} "Für alle Benutzer (erfordert Administratorrechte) oder nur für den aktuellen Benutzer installieren?"
-LangString MULTIUSER_INNERTEXT_INSTALLMODE_TOP ${LANG_GERMAN} "Wenn Sie dieses Installationsprogram mit Administratorrechten ausführen, können Sie auswählen, ob die Installation (beispielsweise) in c:\Programme oder unter AppData\Lokaler Ordner des aktuellen Benutzers erfolgen soll."
-LangString MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS ${LANG_GERMAN} "Für alle Benutzer installieren"
-LangString MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER ${LANG_GERMAN} "Nur für den aktuellen Benutzer installieren"
-
-; installation directory text
-LangString DirectoryChooseTitle ${LANG_GERMAN} "Installations-Ordner"
-LangString DirectoryChooseUpdate ${LANG_GERMAN} "Wählen Sie den Second Life Ordner für dieses Update:"
-LangString DirectoryChooseSetup ${LANG_GERMAN} "Pfad in dem Second Life installiert werden soll:"
-
-LangString MUI_TEXT_DIRECTORY_TITLE ${LANG_GERMAN} "Installationsverzeichnis"
-LangString MUI_TEXT_DIRECTORY_SUBTITLE ${LANG_GERMAN} "Wählen Sie das Verzeichnis aus, in dem Second Life installiert werden soll:"
-
-LangString MUI_TEXT_INSTALLING_TITLE ${LANG_GERMAN} "Second Life wird installiert..."
-LangString MUI_TEXT_INSTALLING_SUBTITLE ${LANG_GERMAN} "Der Second Life Viewer wird im Verzeichnis $INSTDIR installiert"
-
-LangString MUI_TEXT_FINISH_TITLE ${LANG_GERMAN} "Second Life wird installiert"
-LangString MUI_TEXT_FINISH_SUBTITLE ${LANG_GERMAN} "Der Second Life Viewer wurde im Verzeichnis $INSTDIR installiert."
-
-LangString MUI_TEXT_ABORT_TITLE ${LANG_GERMAN} "Installation abgebrochen"
-LangString MUI_TEXT_ABORT_SUBTITLE ${LANG_GERMAN} "Der Second Life Viewer wird nicht im Verzeichnis $INSTDIR installiert."
-
-; CheckStartupParams message box
-LangString CheckStartupParamsMB ${LANG_GERMAN} "Konnte Programm '$INSTNAME' nicht finden. Stilles Update fehlgeschlagen."
-
-; installation success dialog
-LangString InstSuccesssQuestion ${LANG_GERMAN} "Second Life starten?"
-
-; remove old NSIS version
-LangString RemoveOldNSISVersion ${LANG_GERMAN} "Überprüfe alte Version ..."
-
-; check windows version
-LangString CheckWindowsVersionDP ${LANG_GERMAN} "Überprüfung der Windows Version ..."
-LangString CheckWindowsVersionMB ${LANG_GERMAN} 'Second Life unterstützt nur Windows Vista.$\n$\nDer Versuch es auf Windows $R0 zu installieren, könnte zu unvorhersehbaren Abstürzen und Datenverlust führen.$\n$\nTrotzdem installieren?'
-LangString CheckWindowsServPackMB ${LANG_GERMAN} "Wir empfehlen, das neueste Service Pack für Ihr Betriebssystem zu installieren, um Second Life auszuführen.$\nDies unterstützt die Leistung und Stabilität des Programms."
-LangString UseLatestServPackDP ${LANG_GERMAN} "Bitte verwenden Sie Windows Update, um das neueste Service Pack zu installieren."
-
-; checkifadministrator function (install)
-LangString CheckAdministratorInstDP ${LANG_GERMAN} "Überprüfung der Installations-Berechtigungen ..."
-LangString CheckAdministratorInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Second Life installieren zu können.'
-
-; checkifadministrator function (uninstall)
-LangString CheckAdministratorUnInstDP ${LANG_GERMAN} "Überprüfung der Entfernungs-Berechtigungen ..."
-LangString CheckAdministratorUnInstMB ${LANG_GERMAN} 'Sie besitzen ungenügende Berechtigungen.$\nSie müssen ein "administrator" sein, um Second Life entfernen zu können..'
-
-; checkifalreadycurrent
-LangString CheckIfCurrentMB ${LANG_GERMAN} "Anscheinend ist Second Life ${VERSION_LONG} bereits installiert.$\n$\nWürden Sie es gerne erneut installieren?"
-
-; checkcpuflags
-LangString MissingSSE2 ${LANG_GERMAN} "Dieses Gerät verfügt möglicherweise nicht über eine CPU mit SSE2-Unterstützung, die für Second Life ${VERSION_LONG} benötigt wird. Möchten Sie fortfahren?"
-
-; closesecondlife function (install)
-LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..."
-LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Second Life kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Second Life zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen."
-LangString CloseSecondLifeInstRM ${LANG_GERMAN} "Second Life failed to remove some files from a previous install."
-
-; closesecondlife function (uninstall)
-LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..."
-LangString CloseSecondLifeUnInstMB ${LANG_GERMAN} "Second Life kann nicht entfernt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Second Life zu beenden.$\nKlicken Sie CANCEL, um abzubrechen."
-
-; CheckNetworkConnection
-LangString CheckNetworkConnectionDP ${LANG_GERMAN} "Prüfe Netzwerkverbindung..."
-
-; error during installation
-LangString ErrorSecondLifeInstallRetry ${LANG_GERMAN} "Second Life konnte nicht korrekt installiert werden, einige Dateien wurden eventuell nicht korrekt von der Installationroutine kopiert."
-LangString ErrorSecondLifeInstallSupport ${LANG_GERMAN} "Bitte laden Sie den Viewer erneut von https://secondlife.com/support/downloads/ und versuchen Sie die Installation erneut. Sollte das Problem weiterhin bestehen, dann kontaktieren Sie unseren Support unter https://support.secondlife.com."
-
-; ask to remove user's data files
-LangString RemoveDataFilesMB ${LANG_GERMAN} "Möchten Sie alle anderen zu Second Life gehörigen Dateien ebenfalls ENTFERNEN?$\n$\nWir empfehlen, die Einstellungen und Cache-Dateien zu behalten, wenn Sie andere Versionen von Second Life installiert haben oder eine Deinstallation durchführen, um Second Life auf eine neuere Version zu aktualisieren."
-
-; delete program files
-LangString DeleteProgramFilesMB ${LANG_GERMAN} "Es existieren weiterhin Dateien in Ihrem SecondLife Programm Ordner.$\n$\nDies sind möglicherweise Dateien, die sie modifiziert oder bewegt haben:$\n$INSTDIR$\n$\nMöchten Sie diese ebenfalls löschen?"
-
-; uninstall text
-LangString UninstallTextMsg ${LANG_GERMAN} "Dies wird Second Life ${VERSION_LONG} von Ihrem System entfernen."
-
-; ask to remove registry keys that still might be needed by other viewers that are installed
-LangString DeleteRegistryKeysMB ${LANG_GERMAN} "Möchten Sie die Registrierungsschlüssel der Anwendung entfernen?$\n$\nWir empfehlen, die Registrierungsschlüssel zu behalten, wenn Sie andere Versionen von Second Life installiert haben."
diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi
deleted file mode 100644
index 9d00f1b4c0c2389604174f9343cf20fccea9288f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12470
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

diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi
deleted file mode 100644
index 364cc9f67e2f9aa7b05498d848d38b56ab22e429..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13790
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

diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi
deleted file mode 100644
index 2f34c0c87a1552dd0632baf63dd53cc9bf1edf7b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 14302
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

diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi
deleted file mode 100644
index 51214d3a9ce88d5a594a6ab02ea3b8f4b09af8e2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13528
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

diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi
deleted file mode 100644
index 296703d1a3e94080fe18709d1e5ac3031887cde7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10698
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

diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
deleted file mode 100644
index 299645bbb78010298d43366cfa5dd3299081a096..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13122
zcmeI2U2hx56^4fwMu7tT0lr%p0Tcs;QuH#tC~QedRg01<N_LtUFldpIC{dy+l5wQE
zzdHAA-)D}7GrQd7?n*N1i-O?CE_cqHIUn!&nEB7Y|Ku|Fog2ApH+3`p9_c%C12=TX
zuJ7h<th>K+zjZrqqU(Xa`|i@6=%2nmhkoo>-<f;nzH<L`yRPT9_1@IyzWbMZ=QcF*
zQdF)*`-85F6f(^;(mX@W{La1B(__!Ysaw~$vHpGLIe-heT^>KxSjHb|mXV*06^z8;
zSXU=^{2SlBJ5E?bCLS;Sx_J@`*Gtq7L}%vz%k(@e+;K0o%J1EK@w%rgR{IyN6bby*
zJ?-4O8+Wd&Q9`>f8WU0P->oIAA<s=OSw}r*P561OIVW1-t@z5^M{)MSbMYHpoi*e&
z$bBlEfAA6x@<6YdWHXZFhkmu#!A!q@(PyT+eRt(Y@T6H$nHF|(6ncK1DEC9r7>E*d
z>ot%`JLh^9`-HPweIIG9t0ljh1M~vLt48yun#<2!ErG5(lqDU=mJVf2Tk@Ruy4rF-
z=<~hq;#CJ)*^XXaS>2}o<B4s(cl5hnE-6=IFU{a7U0DeJZeCVynfK$br`5cC0GA*G
zUXyuUj`cm4E#swN)YtkRx_{^%=mmP9`+>XA^`(2RD;taLjb-_f+RUBmdF*qpk&FeO
zBK1GFmIWHx^?GZfwLKw6y~f^pF7dD%tz@q6YkhJJ|Ay176x@#Zg_na^r+O|*Ba`id
zzd!2@&Vk%h_xpr4z6$LljhyI(oS}uJOkU^#6w4zUT7e7nF%)8-=#A`;+_xUh!JiY&
z-Irc0(iqYQ?bPXF?M|;(TEV8MuvTKoL^H5z)9Tn;@U`Y{YsGCeXZ{yFw5Pf2;z8c)
zq6M11qQy-=E8iRP!+pKBWTOWQgt<TWRepm`&DZh~J8z}vFklZ+8vi45<E?mUh#%Ex
zxw$lIBeB{TIqFyV>dvApPsm%gVfRRy$yUU!)x5NeU2lDS9!Vb8id&iDnA!U(?lMIN
z<cH)38bc&I)*XBoFC;SpJNl(japa#fL_O0;lh_-NWaM#svY7Xx$@lllan|MKKls;k
z`S&VcTP>G15%sa968NsRFQVOcE&^LNyQN(AK(g3(e}A;-yDX<wQf<ar`?!lfLI!Q|
z1q&K1`I&i$MFC<1nIDm+JT8=5=6&R!&w#ih|Gt0z10s?Cmvgu-JFkx<c?&7$u)QYo
z5hL&!qGUP0nUCv3c|4vRwDHv<Z#3(Tm|UIX<=6C`r(pHX=aY6jd(ZRqQ27o$W<G{=
zgT1stl^4p6K@)QP``dCFPhY4)BaRY72P^S;8A(!Z+RJrU^IHEP%}5{9ep3n42O#DX
z`Of9VWQDAn8tt|JO}<G*aG__WdRez3^YZy+MLcgpwJW{V=N7v{M^N-alKIrR6bIx-
z10fID-_YH5sKUw1V}?wmUQ<>X&}3IRd{@zUO?bqL4R4`T9?$uQiuYVJH#<lAedAts
zxI5KYdH|Q6t1JEg(Q|VvPVC;r0`st8B#icAb&=W`y?`U1T_D@G-4-hRIC|>-rfakm
z^TN8kdc&`b{F$1F7&MWbM-GWrVI)359dheJeHYeA28xz`);Bt$n#dGmtdj-0T83m<
zYqf{(Cv^5al|bW7jzYcd&;_GwGnXbu(iF9sS(E953K-3uiBCiQseX@q+$#DB(lI}=
z+K@aE?W4D*D~n$7R<lG3`E_kJs%v}R=KJDcpf$vmrR&ICexCY>+>FB}p1W3QK@*|J
zRQ@zq?l70Uv6h)UZ0!B5$aCi2NLHq=b@}u=$<03L%Ka)@!CO;5Lo+55{x#Id%L41!
zcYn~ohAeO~l}v+28wET88H0;vIb`>9@rw`4JQmPZyA=OeNS?#BMhKbb3%|RTMS;Jd
zauZoUb3f{7%RJ$QwIEldmU=g6PCqwzL6whFH6gPzeVUDffOH<Pd8j_^T<Jf%7dW>5
zWwziPc`*j-EYppRroNhr5>$DfQ9+9M?}bL6=xtT8)njOh2*9%-vSBZ%Pj41|80S9;
zyU`bKv!D<9J@%^#{}m%g@cZ)Y?of1ws^rkU$v3P%=&PCc9x9gIh)e5Tm@mL(-WD=d
zP_b)EpQ$f<r@AkfDb~8IH^Xvls;Hr`)_~v<<EVbwr?4)d`JY+5bpwy(1DCST7;C;3
z^)${sZ)E$iw^p2E`;J;Oc~+qz=zc4!AR3vKL_A3OwJyceP8)=*=e>#Vu1Uw(0vJOy
zV*ev#GFUj-2VDuejT7HRAuFNN+F$rdSK7c2Y&;f%C14}g^9X2&<<P^20`pXBm~KtI
zt(D`)y7DY6>T#?JJ4-b+R$sI_cZl(;T04iL`1!31gi84iIxu{ztBl*O<9};uU%JJO
z6;X%Y+KJNXZbcJI+7=dW<VH1-_Or_ThpfE1H<(85GtK(x&Xdb*DMm`mh(bOOj?=R=
zJgANp<^D@G1;Svl7GsN<evA`GdUh`Pj3wO@%~vhYuE!@(ik?wVuPygSp-f$ka^P{B
zE-twMvsnd_=559$cknK-&!W1?fQV%|A~{6NJ)h{gzz4CF{mx(Ytf6Gcp2#Rd4noEg
zaj~pwvNHfSmU$UzIZHk-Uu^?crKUOzn13Vb&An#&TIaG}z<V+j-l3b#{;l=09~!j-
z_0(=cr@S4a?)kVjl+5#WnPuu&?1lbAuTOmrM@E~@8awn&B6btLALi510_jq~Em7NY
z&Jc^sJs8U~f5Udk0`T~ly$1~VsEX-{??qTP5OQSm{2w(A8?kN$*)BPc)mGGpWc_q7
z;1i1^*Tk~Php9KnJNDcweWp?0bnwJ?Sjweul*+9$a9G@V*ibiSSBSc$JUY$?Z=92{
zIEl<sdByx}RiAUikH_{?Zi^PWubQeJcTx(`+Sq%fnjxE{yI~#seCK1THPA2P*>EC<
z-*l*`hmb$`H1rucd(!j}($$WY*~LCHJ*1<>%2-`9&u*JJt@4ugIn$Tp;VJL`_wp~x
z%Zqj%^WI(A`OKr(wUEtDzflFnnzK6BXhY>;^(Dw1a5>hO){~(30Ge6lmc}VK$E!hJ
zP=Vd1fpCBxlkKSG(IEDWtJl1>pp_z55&P`K1RYj7SY$JG`BzFU#lbv>tc3N@69Cbu
zPq}9(No7i}o4lmyO38tGqP2{q<Wz7@hDv|yRM&K1*_9aT#VH!NxRNw&ey;3<64t{h
zreJsFU7j|wqzlif8fJi-I(feKv4dJ4j*(DalEq!f7&lHuf2NtHIy3N%US*MB-LL$@
z|C{pljqJ<vc~G9Zf2wDQMRwi+30Y482_e(sTq(8nm2(rzjzuGCop^^eSdU_+Z)QH$
z9A-DmQV9A9o`SqM4O$j&!)Z1<<78(XiLo*IR(lPe5cVv>xhQgY;`_8=?{!nMi>J%1
z?~DwMSI!G@){u&iRdYg?IwYP3i+q|rP)i}1m|s-+AW|WZ<J7@e`!Q*Ed|Nb32SybQ
z<4fo}rG2ieq4Wd4>~N4ff(~@{z#`LCuoChxdn)DH^c~LEMSo0JncpLU>cm?~)!Oo2
zVH_J$(u;@B<^0At4wA=W?aUl24tKE(;)vB_#l4%N-7ykdKp&y1jOXy845}?`Goiqa
zMd<BaEY5s4wX<E>1=fxIShv)wjx$Fkd!_p$`G{rq#Zyo8##4!+NBYlc58p5#J^d6i
zc(bdnc>mO47Gy`=VwKL+&u`Wqx#0g$QJYnTXl}cyL-$h$49nl`>n>-ZIU{ZI4m+z<
zQ!iCnF^cRtf8WM|ao;YyAng9yxsB8}%KIc%ErBLj7FAENzFxLCtjf-5S6jfLsHL(W
z>y(0x>1r;{&(y_?1FZ|cB+A%+bJ#aq)n%-zm~FmQ9Vn{713wcoq3_J>agS!ch@VaH
z8E-w21kknR9AFOA40Av`=z}<hj`VR(d<?RfZXOE;7!KGTNFH6RdbTK&(hX>l*8p^?
zHJ17;5hCUO)gAB6Dv8yx0m+2uLu??Az`r<?8+TT!<@Zp;uci!I5W_z=rU$(JFS?}I
AW&i*H

diff --git a/indra/newview/installers/windows/lang_pt-br.nsi b/indra/newview/installers/windows/lang_pt-br.nsi
deleted file mode 100644
index 542c8654b5bffbe4d6f57a90c878c329ce7eb997..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13970
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

diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
deleted file mode 100644
index 4e53a4957d49d2cf9b11df0b1ac0849a3101dfaa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13264
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

diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi
deleted file mode 100644
index bae5029ad1ce56a2fd347c95de656848400c052e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13174
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

diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
deleted file mode 100644
index 7922d9df5228d652bf08955f00c0eb62b6794965..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10144
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
U?+i_RFkd~!>x*zRhP6fh2g<+$NdN!<

diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
deleted file mode 100644
index 2f426a0f47c92aac0b8e17441243802da7ab79e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1464
zcma)6O>fgc6r6((fW&`TB}iOaBrXVgGf7hnrH%4&MsDf^D`^tN2?bT0EA=OE;8*b%
z5E3`;h;-&{5~q!vpq1C_-M8~*<~@1-uMCF)Vhqv4jPD*2e82_gA-|t-&XD3U9zl_H
zOn5S8oZb#yjJVoFaJ-ceH$ewe-X9Uitxz2<xi`f}?hT2hh);%hpNT&gn{34)GOU<)
zmBVuphUb%7R-KI)p&Z)3V3ySGWn?trddxG&wUj$klgET;qJoG+2njxO-sAex(4;&j
zzDG~jn01LO%{lIweYMd-4f}YG7dXbDDOoyt%G~FSl8fi$ETuy{HFhysj=3YZl}(Do
za>}6_;&ei;5g)I3!jmO4uiMwr;S66GBiDUpx~#1@)LG@sD)9tYWET?gh#hcf?_<M$
zgRl2uOFUP{42Y=PrA2khg?Lp%7SknKnH`m9FQIC+$k1P)<!5)99Wi$U?+tI0SC!7p
zOl4=qs|cyd{L;J5Dvy=M%=+sOogeIARU;>PR$1v=N2;+}>a<^+<(T&?kGQKaV!wo}
zMO2_MqQ2O?7v|_c+^^%*@QU59n?|{x?qDaZ1{t>5Cv9qO@_Egj%~}Xk9XYdq%WvxT
zJ?<DUKlEqW<?CB|;H%^_ZD#qI?Df9iY<ILpejz(d)rnZ8BCP$B>*T?_)Bo}9;e0z{
ngW8)MMKy9kB?vhVf|tRoU^|w)Y~WpCAGYw9e)ZWs$)Yy5pp)zP

diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 47dad6cacf2..fb126caed38 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -471,6 +471,18 @@ def construct(self):
                 else:
                     self.path(src="fmod.dll", dst="fmod.dll")
 
+            # These need to be installed as a SxS assembly, currently a 'private' assembly.
+            # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
+            self.path("concrt140.dll")
+            self.path("msvcp140.dll")
+            self.path("msvcp140_1.dll")
+            self.path("msvcp140_2.dll")
+            self.path("msvcp140_atomic_wait.dll")
+            self.path("msvcp140_codecvt_ids.dll")
+            self.path("vccorlib140.dll")
+            self.path("vcruntime140.dll")
+            self.path("vcruntime140_1.dll")
+
             # SLVoice executable
             with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')):
                 self.path("SLVoice.exe")
@@ -614,14 +626,10 @@ def wpath(path):
         out_path = None
         for pkg_file in dest_files:
             rel_file = os.path.normpath(pkg_file.replace(self.get_dst_prefix()+os.path.sep,''))
-            installed_dir = wpath(os.path.join('$INSTDIR', os.path.dirname(rel_file)))
+            installed_dir = wpath(os.path.join('{app}', os.path.dirname(rel_file)))
             pkg_file = wpath(os.path.normpath(pkg_file))
-            if installed_dir != out_path:
-                if install:
-                    out_path = installed_dir
-                    result += 'SetOutPath ' + out_path + '\n'
             if install:
-                result += 'File ' + pkg_file + '\n'
+                result += 'Source: "' + pkg_file + '"; DestDir: "' + installed_dir + '"; Flags: ignoreversion \n'
             else:
                 result += 'Delete ' + wpath(os.path.join('$INSTDIR', rel_file)) + '\n'
 
@@ -653,20 +661,12 @@ def package_finish(self):
             'final_exe' : self.final_exe(),
             'flags':'',
             'app_name':self.app_name(),
-            'app_name_oneword':self.app_name_oneword()
+            'app_name_oneword':self.app_name_oneword(),
+            'src_dir':self.get_src_prefix()
             }
 
         installer_file = self.installer_base_name() + '_Setup.exe'
-        substitution_strings['installer_file'] = installer_file
-        
-        version_vars = """
-        !define INSTEXE "SLVersionChecker.exe"
-        !define VERSION "%(version_short)s"
-        !define VERSION_LONG "%(version)s"
-        !define VERSION_DASHES "%(version_dashes)s"
-        !define VERSION_REGISTRY "%(version_registry)s"
-        !define VIEWER_EXE "%(final_exe)s"
-        """ % substitution_strings
+        substitution_strings['installer_file'] = self.installer_base_name() + '_Setup'
         
         if self.channel_type() == 'release':
             substitution_strings['caption'] = CHANNEL_VENDOR_BASE
@@ -674,30 +674,21 @@ def package_finish(self):
             substitution_strings['caption'] = self.app_name() + ' ${VERSION}'
 
         inst_vars_template = """
-            OutFile "%(installer_file)s"
-            !define INSTNAME   "%(app_name_oneword)s"
-            !define SHORTCUT   "%(app_name)s"
-            !define URLNAME   "secondlife"
-            Caption "%(caption)s"
+#define MyAppName "%(app_name)s"
+#define MyAppNameShort "%(app_name_oneword)s"
+#define MyAppVersion "%(version)s"
+#define MyAppExeName "%(final_exe)s"
+#define ViewerSrcDir "%(src_dir)s"
+#define MyAppInstFile "%(installer_file)s"
             """
 
-        if(self.address_size == 64):
-            engage_registry="SetRegView 64"
-            program_files="!define MULTIUSER_USE_PROGRAMFILES64"
-        else:
-            engage_registry="SetRegView 32"
-            program_files=""
-
-        tempfile = "alchemy_setup_tmp.nsi"
+        tempfile = "alchemy_setup_tmp.iss"
         # the following replaces strings in the nsi template
         # it also does python-style % substitution
-        self.replace_in("installers/windows/installer_template.nsi", tempfile, {
-                "%%VERSION%%":version_vars,
+        self.replace_in("installers/windows/install_template.iss", tempfile, {
                 "%%SOURCE%%":self.get_src_prefix(),
                 "%%INST_VARS%%":inst_vars_template % substitution_strings,
                 "%%INSTALL_FILES%%":self.nsi_file_commands(True),
-                "%%PROGRAMFILES%%":program_files,
-                "%%ENGAGEREGISTRY%%":engage_registry,
                 "%%DELETE_FILES%%":self.nsi_file_commands(False)})
 
         # If we're on a build machine, sign the code using our Authenticode certificate. JC
@@ -705,33 +696,26 @@ def package_finish(self):
         # Unlike the viewer binary, the VMP filenames are invariant with respect to version, os, etc.
         for exe in (
             self.final_exe(),
-            "SLVersionChecker.exe",
             "llplugin/dullahan_host.exe",
             ):
             self.sign(exe)
             
-        # Check two paths, one for Program Files, and one for Program Files (x86).
-        # Yay 64bit windows.
-        for ProgramFiles in 'ProgramFiles', 'ProgramFiles(x86)':
-            NSIS_path = os.path.expandvars(r'${%s}\NSIS\makensis.exe' % ProgramFiles)
-            if os.path.exists(NSIS_path):
-                break
-        installer_created=False
-        nsis_attempts=3
-        nsis_retry_wait=15
-        for attempt in range(nsis_attempts):
+        inno_path = os.path.join(self.args['build'], os.pardir, 'packages', 'innosetup', 'iscc.exe')
+        iscc_attempts=3
+        iscc_retry_wait=15
+        for attempt in range(iscc_attempts):
             try:
-                self.run_command([NSIS_path, '/V2', self.dst_path_of(tempfile)])
+                self.run_command([inno_path, self.dst_path_of(tempfile)])
             except ManifestError as err:
-                if attempt+1 < nsis_attempts:
-                    print("nsis failed, waiting %d seconds before retrying" % nsis_retry_wait, file=sys.stderr)
-                    time.sleep(nsis_retry_wait)
-                    nsis_retry_wait*=2
+                if attempt+1 < iscc_attempts:
+                    print("iscc failed, waiting %d seconds before retrying" % iscc_retry_wait, file=sys.stderr)
+                    time.sleep(iscc_retry_wait)
+                    iscc_retry_wait*=2
             else:
-                # NSIS worked! Done!
+                # ISCC worked! Done!
                 break
         else:
-            print("Maximum nsis attempts exceeded; giving up", file=sys.stderr)
+            print("Maximum iscc attempts exceeded; giving up", file=sys.stderr)
             raise
 
         self.sign(installer_file)
-- 
GitLab