Windows installer.
authorFlorian Quèze <florian@instantbird.org>
Thu, 19 Nov 2009 23:51:14 +0100
changeset 17854 be2d6e7867104bc6a2922065d70c5f644ef8dff9
parent 17853 339cc18ac8fc492e8840a1ca17066079ea5f1e72
child 17855 662e7f45c07c52b70078cb046d4dabd0ec66c3f4
push idunknown
push userunknown
push dateunknown
Windows installer.
im/Makefile.in
im/branding/halloween/Makefile.in
im/branding/halloween/branding.nsi
im/branding/nightly/Makefile.in
im/branding/nightly/branding.nsi
im/branding/nightly/wizHeader.bmp
im/branding/nightly/wizHeaderRTL.bmp
im/branding/nightly/wizWatermark.bmp
im/installer/Makefile.in
im/installer/removed-files.in
im/installer/windows/Makefile.in
im/installer/windows/nsis/defines.nsi.in
im/installer/windows/nsis/installer.nsi
im/installer/windows/nsis/shared.nsh
im/installer/windows/nsis/uninstaller.nsi
im/installer/windows/packages-static
im/installer/windows/wizHeader.bmp
im/installer/windows/wizHeaderRTL.bmp
im/installer/windows/wizWatermark.bmp
im/locales/en-US/installer/custom.properties
im/locales/en-US/installer/mui.properties
im/locales/en-US/installer/override.properties
other-licenses/7zstub/instantbird/7zSD.sfx
other-licenses/branding/instantbird/Makefile.in
other-licenses/branding/instantbird/branding.nsi
other-licenses/branding/instantbird/wizHeader.bmp
other-licenses/branding/instantbird/wizHeaderRTL.bmp
other-licenses/branding/instantbird/wizWatermark.bmp
--- a/im/Makefile.in
+++ b/im/Makefile.in
@@ -50,15 +50,16 @@ ifdef MOZ_INSTALLER
 DIRS += installer/windows
 endif
 endif
 
 include $(topsrcdir)/config/rules.mk
 
 ifeq ($(OS_ARCH),WINNT)
 ifdef MOZ_INSTALLER
+
 # For Windows build the uninstaller during the application build since the
 # uninstaller is included with the application for mar file generation.
 libs::
-#	$(MAKE) -C installer/windows uninstaller
+	$(MAKE) -C installer/windows uninstaller
 
 endif
 endif
--- a/im/branding/halloween/Makefile.in
+++ b/im/branding/halloween/Makefile.in
@@ -51,16 +51,19 @@ DIRS = \
 include $(topsrcdir)/config/rules.mk
 
 export::
 	$(NSINSTALL) -D $(DIST)/branding
 ifneq (,$(filter WINNT WINCE,$(OS_ARCH)))
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/instantbird.ico
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/app.ico
 	cp $(srcdir)/branding.nsi      $(DIST)/branding/branding.nsi
+	cp $(srcdir)/../nightly/wizHeader.bmp     $(DIST)/branding/wizHeader.bmp
+	cp $(srcdir)/../nightly/wizHeaderRTL.bmp  $(DIST)/branding/wizHeaderRTL.bmp
+	cp $(srcdir)/../nightly/wizWatermark.bmp  $(DIST)/branding/wizWatermark.bmp
 endif
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
 	cp $(srcdir)/instantbird.icns  $(DIST)/branding/instantbird.icns
 	cp $(srcdir)/dsstore           $(DIST)/branding/dsstore
 	cp $(srcdir)/background.png    $(DIST)/branding/background.png
 	cp $(srcdir)/disk.icns         $(DIST)/branding/disk.icns
 #	cp $(srcdir)/license.r         $(DIST)/branding/license.r
 endif
--- a/im/branding/halloween/branding.nsi
+++ b/im/branding/halloween/branding.nsi
@@ -30,18 +30,16 @@
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 # NSIS defines for nightly builds.
-# The release build branding.nsi is located in other-license/branding/thunderbird/
-!define BrandShortName        "Instantbird"
-!define BrandFullName         "Instantbird"
+
 # BrandFullNameInternal is used for some registry and file system values that
 # should not contain release that may be in the BrandFullName (e.g. Beta 1, etc.)
 !define BrandFullNameInternal "Instantbird"
 !define CompanyName           "Instantbird"
 !define URLInfoAbout          "http://www.instantbird.com/"
 !define URLUpdateInfo         "http://www.instantbird.com/"
 
--- a/im/branding/nightly/Makefile.in
+++ b/im/branding/nightly/Makefile.in
@@ -51,16 +51,19 @@ DIRS = \
 include $(topsrcdir)/config/rules.mk
 
 export::
 	$(NSINSTALL) -D $(DIST)/branding
 ifneq (,$(filter WINNT WINCE,$(OS_ARCH)))
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/instantbird.ico
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/app.ico
 	cp $(srcdir)/branding.nsi      $(DIST)/branding/branding.nsi
+	cp $(srcdir)/wizHeader.bmp     $(DIST)/branding/wizHeader.bmp
+	cp $(srcdir)/wizHeaderRTL.bmp  $(DIST)/branding/wizHeaderRTL.bmp
+	cp $(srcdir)/wizWatermark.bmp  $(DIST)/branding/wizWatermark.bmp
 endif
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
 	cp $(srcdir)/instantbird.icns  $(DIST)/branding/instantbird.icns
 	cp $(srcdir)/dsstore           $(DIST)/branding/dsstore
 	cp $(srcdir)/background.png    $(DIST)/branding/background.png
 	cp $(srcdir)/disk.icns         $(DIST)/branding/disk.icns
 #	cp $(srcdir)/license.r         $(DIST)/branding/license.r
 endif
--- a/im/branding/nightly/branding.nsi
+++ b/im/branding/nightly/branding.nsi
@@ -30,18 +30,16 @@
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 # NSIS defines for nightly builds.
-# The release build branding.nsi is located in other-license/branding/thunderbird/
-!define BrandShortName        "Instantbird"
-!define BrandFullName         "Instantbird"
+
 # BrandFullNameInternal is used for some registry and file system values that
 # should not contain release that may be in the BrandFullName (e.g. Beta 1, etc.)
 !define BrandFullNameInternal "Instantbird"
 !define CompanyName           "Instantbird"
 !define URLInfoAbout          "http://www.instantbird.com/"
 !define URLUpdateInfo         "http://www.instantbird.com/"
 
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7fbaa640c6e7d06647f2f665f415c516b30d2bf3
GIT binary patch
literal 25818
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2c882095562c025edf6b2db2de264f586fea16cf
GIT binary patch
literal 25818
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..03352038cfaf2532ee6cc997680807a3abcd5d5b
GIT binary patch
literal 154542
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
ZHCjMJgG>KSv1C9bXa@&}|A#_4{{vA)N=^U(
--- a/im/installer/Makefile.in
+++ b/im/installer/Makefile.in
@@ -15,16 +15,17 @@
 #
 # The Initial Developer of the Original Code is
 # IBM Corporation.
 # Portions created by the Initial Developer are Copyright (C) 2004
 # the Initial Developer. All Rights Reserved.
 #
 # Contributor(s):
 #  Brian Ryner <bryner@brianryner.com>
+#  Benjamin Smedberg <benjamin@smedbergs.us>
 #
 # Alternatively, the contents of this file may be used under the terms of
 # either the GNU General Public License Version 2 or later (the "GPL"), or
 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 # in which case the provisions of the GPL or the LGPL are applicable instead
 # of those above. If you wish to allow use of your version of this file only
 # under the terms of either the GPL or the LGPL, and not to allow others to
 # use your version of this file under the terms of the MPL, indicate your
@@ -38,40 +39,38 @@
 DEPTH		= ../..
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 NO_PKG_FILES = \
+	$(MOZ_APP_NAME)-config \
+	$(MOZ_APP_NAME)-bin.elf \
+	nspr-config \
+	regchrome* \
 	dependentlibs.list \
 	IA2Marshal.dll \
 	js \
 	js.exe \
 	js3250.lib \
 	TestGtkEmbed \
 	bloaturls.txt \
 	codesighs* \
 	elf-dynstr-gc \
-	instantbird-bin.elf \
-	instantbird-config \
 	mangle* \
 	maptsv* \
 	mfc* \
 	mkdepend* \
 	msdump* \
 	msmap* \
 	nm2tsv* \
 	nsinstall* \
 	regxpcom* \
-	res/samples \
-	res/throbber \
-	shlibsign* \
-	winEmbed.exe \
 	xpcshell* \
 	xpidl* \
 	xpt_dump* \
 	xpt_link* \
 	dirver* \
 	plugins \
 	res/arrow.gif \
 	res/arrowd.gif \
@@ -88,58 +87,91 @@ NO_PKG_FILES = \
 	components/gkplugin.dll \
 	components/libpurplexpcom.dylib.dSYM \
 	$(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
 MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
 
-ifneq (,$(BUILD_STATIC_LIBS)$(MOZ_ENABLE_LIBXUL))
-ifeq (WINNT,$(OS_ARCH))
-#MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static
-endif
+ifdef MOZ_ENABLE_LIBXUL
+MOZ_PKG_MANIFEST_P = $(srcdir)/windows/packages-static
 else
-$(error you need a "--enable-static or --enable-libxul" build to create an installer)
+define message
+You need to build with --enable-libxul (the default, unless you specify
+--disable-libxul or --enable-shared or --enable-debug) to package a build.
+endef
+default libs installer::
+	$(error $(message))
 endif
 
 MOZ_NONLOCALIZED_PKG_LIST = \
 	xpcom \
 	instantbird \
 	$(NULL)
 
 MOZ_LOCALIZED_PKG_LIST = $(AB_CD)
 
-DEFINES += -DAB_CD=$(AB_CD)
+DEFINES += -DAB_CD=$(AB_CD) -DMOZ_APP_NAME=$(MOZ_APP_NAME) -DPREF_DIR=$(PREF_DIR)
+ifdef MOZ_ENABLE_GNOME_COMPONENT
+DEFINES += -DMOZ_ENABLE_GNOME_COMPONENT=1
+endif
+
+ifeq (gtk2, $(MOZ_WIDGET_TOOLKIT))
+DEFINES += -DMOZ_GTK2=1
+endif
+
+ifdef NSS_DISABLE_DBM
+DEFINES += -DNSS_DISABLE_DBM=1
+endif
+
+ifdef MOZ_UPDATER
+DEFINES += -DMOZ_UPDATER=1
+endif
 
 ifdef MOZ_PKG_MANIFEST_P
 MOZ_PKG_MANIFEST = packages-static
 
 $(MOZ_PKG_MANIFEST): $(MOZ_PKG_MANIFEST_P)
 	$(PERL) $(MOZILLA_SRCDIR)/config/preprocessor.pl $(DEFINES) $(ACDEFINES) $< > $@
+
+GARBAGE += $(MOZ_PKG_MANIFEST)
 endif
 
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
 MOZ_PKG_MAC_DSSTORE=branding/dsstore
 MOZ_PKG_MAC_BACKGROUND=branding/background.png
 MOZ_PKG_MAC_ICON=branding/disk.icns
-#MOZ_PKG_MAC_RSRC=branding/license.r
 MOZ_PKG_MAC_EXTRA=--symlink "/Applications:/ "
 endif
 
+ifndef LIBXUL_SDK
+INSTALL_SDK = 1
+endif
+
 include $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/packager.mk
 
+ifeq (Darwin, $(OS_ARCH))
+DEFINES += \
+  -DBINPATH=$(_BINPATH) \
+  -DAPPNAME=$(_APPNAME) \
+  $(NULL)
+else
+# Every other platform just winds up in dist/bin
+DEFINES += -DBINPATH=bin
+endif
+
 ifeq ($(OS_TARGET),WINCE)
-
 VSINSTALLDIR ?= $(error VSINSTALLDIR not set, must be set to the Visual Studio install directory)
 
 UNPACKAGE = $(LIBXUL_DIST)/xulrunner*$(PKG_SUFFIX)
 
 installer: stage-package
 	$(NSINSTALL) -D $(DIST)/$(PKG_PATH)
 	cd $(DIST) && $(PYTHON) $(MOZILLA_SRCDIR)/build/package/wince/make_wince_cab.py -s "$(VSINSTALLDIR)/SmartDevices/SDK/SDKTools/cabwiz.exe" "$(MOZ_PKG_DIR)" "$(MOZ_APP_DISPLAYNAME)" "$(PKG_PATH)$(PKG_BASENAME).cab" && $(ZIP) -r9D $(PACKAGE) $(MOZ_PKG_DIR)
 	@echo Installer $(PKG_PATH)$(PKG_BASENAME).cab created!
-else
-installer: removed-files
+endif
+
+
+installer:: removed-files
 ifdef INSTALLER_DIR
 	$(MAKE) -C $(INSTALLER_DIR)
 endif
-endif
--- a/im/installer/removed-files.in
+++ b/im/installer/removed-files.in
@@ -12,17 +12,16 @@ components/embedcomponents.dll
 components/gkgfxwin.dll
 components/gklayout.dll
 components/gkparser.dll
 components/gkwidget.dll
 components/i18n.dll
 components/imgicon.dll
 components/imglib2.dll
 components/import.dll
-components/mail.dll
 components/mork.dll
 components/mozfind.dll
 components/mozldap.dll
 components/msgMapi.dll
 components/msgsmime.dll
 components/myspell.dll
 components/necko.dll
 components/necko2.dll
@@ -92,19 +91,16 @@ components/jar.xpt
 components/jsdservice.xpt
 components/jsurl.xpt
 components/layout_base.xpt
 components/layout_printing.xpt
 components/layout_xul.xpt
 components/layout_xul_tree.xpt
 components/locale.xpt
 components/lwbrk.xpt
-components/mailnews.xpt
-components/mailview.xpt
-components/mapihook.xpt
 components/mime.xpt
 components/mimetype.xpt
 components/mozbrwsr.xpt
 components/mozfind.xpt
 components/mozldap.xpt
 components/msgbase.xpt
 components/msgcompo.xpt
 components/msgdb.xpt
@@ -157,52 +153,38 @@ components/xpcom_thread.xpt
 components/xpcom_xpti.xpt
 components/xpcom.xpt
 components/xpconnect.xpt
 components/xpinstall.xpt
 components/xuldoc.xpt
 components/xultmpl.xpt
 components/downloadmanager.xpt
 #endif
-components/nsUnsetDefaultMail.js
 components/nsBackgroundUpdateService.js
 components/nsCloseAllWindows.js
 components/nsDownloadProgressListener.js
 components/xptitemp.dat
 component.reg
 chrome/installed-chrome.txt
 chrome/chrome.rdf
 chrome/app-chrome.manifest
-chrome/mail.jar
 chrome/qute.jar
 chrome/offline.jar
 chrome/offline.manifest
-chrome/en-US-mail.jar
 chrome/overlayinfo/
 defaults/pref/all.js
 defaults/pref/security-prefs.js
 defaults/pref/winpref.js
 defaults/pref/xpinstall.js
 defaults/pref/thunderbird.js
 defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
 defaults/profile/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/
 defaults/profile/extensions/Extensions.rdf
 defaults/profile/extensions/installed-extensions.txt
 defaults/profile/extensions/
-defaults/messenger/SpamAssassin.sfd
-defaults/messenger/SpamPal.sfd
-defaults/isp/rss.rdf
-defaults/isp/movemail.rdf
-defaults/isp/dotmac.rdf
-defaults/isp/en-US/rss.rdf
-defaults/isp/en-US/movemail.rdf
-defaults/isp/en-US/dotmac.rdf
-defaults/isp/en-US/
-defaults/isp/
-isp/gmail.rdf
 
 components/@DLL_PREFIX@xpcom_compat_c@DLL_SUFFIX@
 @DLL_PREFIX@xpcom_compat@DLL_SUFFIX@
 @DLL_PREFIX@zlib@DLL_SUFFIX@
 @DLL_PREFIX@xpistub@DLL_SUFFIX@
 #Remove Talkback files from old location (in case user updates from 1.0.x)
 components/BrandRes.dll
 components/fullsoft.dll
--- a/im/installer/windows/Makefile.in
+++ b/im/installer/windows/Makefile.in
@@ -16,16 +16,18 @@
 # The Initial Developer of the Original Code is
 # IBM Corporation.
 # Portions created by the Initial Developer are Copyright (C) 2004
 # the Initial Developer. All Rights Reserved.
 #
 # Contributor(s):
 #  Brian Ryner <bryner@brianryner.com>
 #  Chase Phillips <cmp@mozilla.org>
+#  Ehsan Akhgari <ehsan.akhgari@gmail.com>
+#  Robert Strong <robert.bugzilla@gmail.com>
 #
 # Alternatively, the contents of this file may be used under the terms of
 # either the GNU General Public License Version 2 or later (the "GPL"), or
 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 # in which case the provisions of the GPL or the LGPL are applicable instead
 # of those above. If you wish to allow use of your version of this file only
 # under the terms of either the GPL or the LGPL, and not to allow others to
 # use your version of this file under the terms of the MPL, indicate your
@@ -42,16 +44,23 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 include $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/package-name.mk
 
 CONFIG_DIR = instgen
 SFX_MODULE = $(topsrcdir)/other-licenses/7zstub/instantbird/7zSD.sfx
+DEFINES += -DMOZ_APP_VERSION=$(MOZ_APP_VERSION)
+PRE_RELEASE_SUFFIX := $(shell $(PYTHON) $(topsrcdir)/mozilla/config/printprereleasesuffix.py $(MOZ_APP_VERSION))
+DEFINES += -DPRE_RELEASE_SUFFIX="$(PRE_RELEASE_SUFFIX)"
+
+ifdef MOZ_UPDATER
+DEFINES += -DMOZ_UPDATER=1
+endif
 
 PP_LOCALIZED_FILES = \
 	packages-static \
 	$(NULL)
 
 # All script and locale files used by the Unicode version of NSIS need to be
 # converted from UTF-8 to UTF-16LE
 INSTALLER_FILES_CONV = \
@@ -73,19 +82,17 @@ BRANDING_FILES_CONV = \
 BRANDING_FILES = \
 	wizHeader.bmp \
 	wizHeaderRTL.bmp \
 	wizWatermark.bmp \
 	$(NULL)
 
 DEFINES += \
 	-DAB_CD=$(AB_CD) \
-	-DPKG_BASENAME=$(PKG_BASENAME) \
-	-DPKG_INST_BASENAME=$(PKG_INST_BASENAME) \
-	-DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
+	-DMOZ_APP_NAME=$(MOZ_APP_NAME) \
 	-DMOZ_APP_DISPLAYNAME=${MOZ_APP_DISPLAYNAME} \
 	-DMOZILLA_VERSION=${MOZILLA_VERSION} \
 	$(NULL)
 
 include $(topsrcdir)/config/config.mk
 
 installer::
 	$(MAKE) -C .. installer-stage
@@ -111,42 +118,43 @@ uninstaller::
 	for i in $(PP_LOCALIZED_FILES); do \
 	  $(PERL) $(MOZILLA_SRCDIR)/config/preprocessor.pl $(DEFINES) $(ACDEFINES) $(srcdir)/$$i > $(CONFIG_DIR)/$$i; \
 	done
 	$(PERL) $(MOZILLA_SRCDIR)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) \
 	  $(srcdir)/nsis/defines.nsi.in | iconv -f UTF-8 -t UTF-16LE | \
 	  cat $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/utf16-le-bom.bin - > \
 	  $(CONFIG_DIR)/defines.nsi
 	$(PERL) $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.pl \
-	  $(MOZILLA_SRCDIR) $(call EXPAND_LOCALE_SRCDIR,mail/locales)/installer $(AB_CD) \
+	  $(MOZILLA_SRCDIR) $(call EXPAND_LOCALE_SRCDIR,instantbird/locales)/installer $(AB_CD) \
 	  $(CONFIG_DIR)
 
 $(CONFIG_DIR)/setup.exe::
 	$(RM) -rf $(CONFIG_DIR) && mkdir $(CONFIG_DIR)
 	for i in $(INSTALLER_FILES_CONV); do \
 	  iconv -f UTF-8 -t UTF-16LE $(srcdir)/$$i | \
 	    cat $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/utf16-le-bom.bin - > \
 	    $(CONFIG_DIR)/`basename $$i`; \
 	done
 	$(INSTALL) $(addprefix $(srcdir)/,$(INSTALLER_FILES)) $(CONFIG_DIR)
 	for i in $(BRANDING_FILES_CONV); do \
 	  iconv -f UTF-8 -t UTF-16LE $(DIST)/branding/$$i | \
 	    cat $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/utf16-le-bom.bin - > \
 	    $(CONFIG_DIR)/$$i; \
 	done
 	$(INSTALL) $(addprefix $(DIST)/branding/,$(BRANDING_FILES)) $(CONFIG_DIR)
-	cp $(topsrcdir)/instantbird/EULA.rtf $(CONFIG_DIR)/license.rtf
 	$(EXIT_ON_ERROR) \
 	for i in $(PP_LOCALIZED_FILES); do \
 	  $(PERL) $(MOZILLA_SRCDIR)/config/preprocessor.pl $(DEFINES) $(ACDEFINES) $(srcdir)/$$i > $(CONFIG_DIR)/$$i; \
 	done
+ifeq ($(CONFIG_DIR),instgen)
 	$(PERL) $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/make-installremoves.pl \
 	  ../removed-files > $(CONFIG_DIR)/removed-files.log
+endif
 	$(PERL) $(MOZILLA_SRCDIR)/config/preprocessor.pl -Fsubstitution $(DEFINES) $(ACDEFINES) \
 	  $(srcdir)/nsis/defines.nsi.in | iconv -f UTF-8 -t UTF-16LE | \
 	  cat $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/utf16-le-bom.bin - > \
 	  $(CONFIG_DIR)/defines.nsi
 	$(PERL) $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/preprocess-locale.pl \
-	  $(MOZILLA_SRCDIR) $(call EXPAND_LOCALE_SRCDIR,mail/locales)/installer $(AB_CD) \
+	  $(MOZILLA_SRCDIR) $(call EXPAND_LOCALE_SRCDIR,instantbird/locales)/installer $(AB_CD) \
 	  $(CONFIG_DIR)
 
 include $(topsrcdir)/config/rules.mk
 include $(MOZILLA_SRCDIR)/toolkit/mozapps/installer/windows/nsis/makensis.mk
--- a/im/installer/windows/nsis/defines.nsi.in
+++ b/im/installer/windows/nsis/defines.nsi.in
@@ -1,14 +1,27 @@
 #filter substitution
 !define AppVersion            "@MOZ_APP_VERSION@"
 !define GREVersion            @MOZILLA_VERSION@
 !define AB_CD                 "@AB_CD@"
-!define FileInstallerEXE      "@PKG_INST_BASENAME@.exe"
-!define FileInstallerMSI      "@PKG_INST_BASENAME@.msi"
-!define FileInstallerNETRoot  "@PKG_BASENAME@.net-installer"
 
-!define FileMainEXE           "instantbird.exe"
+!define FileMainEXE           "@MOZ_APP_NAME@.exe"
 !define WindowClass           "InstantbirdMessageWindow"
 
-!define AppRegNameIM          "Instantbird"
+!define AppRegName            "Instantbird"
+!define ClientsRegName        "Instantbird"
+
+!define MinSupportedVer       "Microsoft Windows 2000"
+
+!define BrandShortName        "@MOZ_APP_DISPLAYNAME@"
+!define PreReleaseSuffix      "@PRE_RELEASE_SUFFIX@"
+!define BrandFullName         "${BrandFullNameInternal}${PreReleaseSuffix}"
 
-!define MinUnsupportedVer     "Microsoft Windows 2000"
+!define NO_UNINSTALL_SURVEY
+
+# NO_INSTDIR_FROM_REG is defined for pre-releases which have a PreReleaseSuffix
+# (e.g. Alpha X, Beta X, etc.) to prevent finding a non-default installation
+# directory in the registry and using that as the default. This prevents
+# Beta releases built with official branding from finding an existing install
+# of an official release and defaulting to its installation directory.
+!if "@PRE_RELEASE_SUFFIX@" != ""
+!define NO_INSTDIR_FROM_REG
+!endif
--- a/im/installer/windows/nsis/installer.nsi
+++ b/im/installer/windows/nsis/installer.nsi
@@ -31,113 +31,114 @@
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 # Required Plugins:
-# ShellLink    http://nsis.sourceforge.net/ShellLink_plug-in
+# AppAssocReg http://nsis.sourceforge.net/Application_Association_Registration_plug-in
+# ShellLink   http://nsis.sourceforge.net/ShellLink_plug-in
+# UAC         http://nsis.sourceforge.net/UAC_plug-in
 
 ; Set verbosity to 3 (e.g. no script) to lessen the noise in the build logs
 !verbose 3
 
 ; 7-Zip provides better compression than the lzma from NSIS so we add the files
 ; uncompressed and use 7-Zip to create a SFX archive of it
 SetDatablockOptimize on
 SetCompress off
 CRCCheck on
 
-!addplugindir ./
+RequestExecutionLevel user
 
-; empty files - except for the comment line - for generating custom pages.
-!system 'echo ; > options.ini'
-!system 'echo ; > components.ini'
-!system 'echo ; > shortcuts.ini'
-!system 'echo ; > summary.ini'
+!addplugindir ./
 
 Var TmpVal
 Var StartMenuDir
 Var InstallType
 Var AddStartMenuSC
 Var AddQuickLaunchSC
 Var AddDesktopSC
+Var PageName
+
+; On Vista and above attempt to elevate Standard Users in addition to users that
+; are a member of the Administrators group.
+!define NONADMIN_ELEVATE
+
+; Don't use the PreDirectoryCommon macro's code for finding a pre-existing
+; installation directory.
+!define NO_INSTDIR_PREDIRCOMMON
 
 ; Other included files may depend upon these includes!
 ; The following includes are provided by NSIS.
 !include FileFunc.nsh
 !include LogicLib.nsh
-!include TextFunc.nsh
+!include MUI.nsh
 !include WinMessages.nsh
+!include WinVer.nsh
 !include WordFunc.nsh
-!include MUI.nsh
 
-; WinVer.nsh was added in the same release that RequestExecutionLevel so check
-; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is
-; available.
-!include /NONFATAL WinVer.nsh
-!ifdef ___WINVER__NSH___
-  RequestExecutionLevel admin
-!else
-  !warning "Installer will be created without Vista compatibility.$\n            \
-            Upgrade your NSIS installation to at least version 2.22 to resolve."
-!endif
-
-!insertmacro WordFind
+!insertmacro GetOptions
+!insertmacro GetParameters
+!insertmacro GetSize
+!insertmacro StrFilter
 !insertmacro WordReplace
-!insertmacro GetSize
-
-; NSIS provided macros that we have overridden
-!include overrides.nsh
-!insertmacro LocateNoDetails
-!insertmacro TextCompareNoDetails
 
 ; The following includes are custom.
 !include branding.nsi
 !include defines.nsi
 !include common.nsh
 !include locales.nsi
 !include version.nsh
 
 VIAddVersionKey "FileDescription" "${BrandShortName} Installer"
+VIAddVersionKey "OriginalFilename" "setup.exe"
 
 ; Must be inserted before other macros that use logging
 !insertmacro _LoggingCommon
 
-!insertmacro AddHandlerValues
-!insertmacro CloseApp
+; Most commonly used macros for managing shortcuts
+!insertmacro _LoggingShortcutsCommon
+
+!insertmacro CanWriteToInstallDir
+!insertmacro ChangeMUIHeaderImage
+!insertmacro CheckForFilesInUse
+!insertmacro CleanUpdatesDir
+!insertmacro CopyFilesFromDir
+!insertmacro FindSMProgramsDir
 !insertmacro GetPathFromString
+!insertmacro GetParent
+!insertmacro IsHandlerForInstallDir
 !insertmacro ManualCloseAppPrompt
 !insertmacro RegCleanMain
 !insertmacro RegCleanUninstall
+!insertmacro SetBrandNameVars
+!insertmacro UnloadUAC
 !insertmacro WriteRegStr2
 !insertmacro WriteRegDWORD2
 
 !include shared.nsh
 
 ; Helper macros for ui callbacks. Insert these after shared.nsh
 !insertmacro CheckCustomCommon
 !insertmacro InstallEndCleanupCommon
 !insertmacro InstallOnInitCommon
 !insertmacro InstallStartCleanupCommon
 !insertmacro LeaveDirectoryCommon
+!insertmacro OnEndCommon
 !insertmacro PreDirectoryCommon
 
 Name "${BrandFullName}"
 OutFile "setup.exe"
 InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullNameInternal} (${AppVersion})" "InstallLocation"
 InstallDir "$PROGRAMFILES\${BrandFullName}\"
 ShowInstDetails nevershow
 
-ReserveFile options.ini
-ReserveFile components.ini
-ReserveFile shortcuts.ini
-ReserveFile summary.ini
-
 ################################################################################
 # Modern User Interface - MUI
 
 !define MUI_ABORTWARNING
 !define MUI_ICON setup.ico
 !define MUI_UNICON setup.ico
 !define MUI_WELCOMEPAGE_TITLE_3LINES
 !define MUI_HEADERIMAGE
@@ -150,185 +151,112 @@ ReserveFile summary.ini
 !else
 !define MUI_HEADERIMAGE_BITMAP wizHeader.bmp
 !endif
 
 /**
  * Installation Pages
  */
 ; Welcome Page
+!define MUI_PAGE_CUSTOMFUNCTION_PRE preWelcome
 !insertmacro MUI_PAGE_WELCOME
 
-; License Page
-!define MUI_LICENSEPAGE_CHECKBOX
-!insertmacro MUI_PAGE_LICENSE license.rtf
-
 ; Custom Options Page
 Page custom preOptions leaveOptions
 
-; Custom Components Page
-Page custom preComponents leaveComponents
-
 ; Select Install Directory Page
 !define MUI_PAGE_CUSTOMFUNCTION_PRE preDirectory
 !define MUI_PAGE_CUSTOMFUNCTION_LEAVE leaveDirectory
 !define MUI_DIRECTORYPAGE_VERIFYONLEAVE
 !insertmacro MUI_PAGE_DIRECTORY
 
 ; Custom Shortcuts Page
 Page custom preShortcuts leaveShortcuts
 
 ; Start Menu Folder Page Configuration
 !define MUI_PAGE_CUSTOMFUNCTION_PRE preStartMenu
+!define MUI_PAGE_CUSTOMFUNCTION_LEAVE leaveStartMenu
 !define MUI_STARTMENUPAGE_NODISABLE
-!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
-!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Main"
-!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
 !insertmacro MUI_PAGE_STARTMENU Application $StartMenuDir
 
 ; Custom Summary Page
 Page custom preSummary leaveSummary
 
 ; Install Files Page
 !insertmacro MUI_PAGE_INSTFILES
 
 ; Finish Page
-!define MUI_FINISHPAGE_NOREBOOTSUPPORT
 !define MUI_FINISHPAGE_TITLE_3LINES
 !define MUI_FINISHPAGE_RUN
 !define MUI_FINISHPAGE_RUN_FUNCTION LaunchApp
 !define MUI_FINISHPAGE_RUN_TEXT $(LAUNCH_TEXT)
 !define MUI_PAGE_CUSTOMFUNCTION_PRE preFinish
 !insertmacro MUI_PAGE_FINISH
 
+; Use the default dialog for IDD_VERIFY for a simple Banner
+ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe"
+
 ################################################################################
 # Install Sections
 
 ; Cleanup operations to perform at the start of the installation.
 Section "-InstallStartCleanup"
   SetDetailsPrint both
   DetailPrint $(STATUS_CLEANUP)
   SetDetailsPrint none
 
-  SetOutPath $INSTDIR
+  SetOutPath "$INSTDIR"
   ${StartInstallLog} "${BrandFullName}" "${AB_CD}" "${AppVersion}" "${GREVersion}"
 
-  ; Try to delete the app's main executable and if we can't delete it try to
-  ; close the app. This allows running an instance that is located in another
-  ; directory and prevents the launching of the app during the installation.
-  ; A copy of the executable is placed in a temporary directory so it can be
-  ; copied back in the case where a specific file is checked / found to be in
-  ; use that would prevent a successful install.
-
-  ; Create a temporary backup directory.
-  GetTempFileName $TmpVal "$TEMP"
-  ${DeleteFile} $TmpVal
-  SetOutPath $TmpVal
-
-  ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
+  ; Delete the app exe to prevent launching the app while we are installing.
+  ClearErrors
+  ${DeleteFile} "$INSTDIR\${FileMainEXE}"
+  ${If} ${Errors}
+    ; If the user closed the application it can take several seconds for it to
+    ; shut down completely. If the application is being used by another user we
+    ; can rename the file and then delete is when the system is restarted.
+    Sleep 5000
+    ${DeleteFile} "$INSTDIR\${FileMainEXE}"
     ClearErrors
-    CopyFiles /SILENT "$INSTDIR\${FileMainEXE}" "$TmpVal\${FileMainEXE}"
-    Delete "$INSTDIR\${FileMainEXE}"
-    ${If} ${Errors}
-      ClearErrors
-      ${CloseApp} "true" $(WARN_APP_RUNNING_INSTALL)
-      ; Try to delete it again to prevent launching the app while we are
-      ; installing.
-      ClearErrors
-      CopyFiles /SILENT "$INSTDIR\${FileMainEXE}" "$TmpVal\${FileMainEXE}"
-      Delete "$INSTDIR\${FileMainEXE}"
-      ${If} ${Errors}
-        ClearErrors
-        ; Try closing the app a second time
-        ${CloseApp} "true" $(WARN_APP_RUNNING_INSTALL)
-        StrCpy $R1 "${FileMainEXE}"
-        Call CheckInUse
-      ${EndIf}
-    ${EndIf}
   ${EndIf}
 
-  StrCpy $R1 "freebl3.dll"
-  Call CheckInUse
-
-  StrCpy $R1 "nssckbi.dll"
-  Call CheckInUse
-
-  StrCpy $R1 "nspr4.dll"
-  Call CheckInUse
-
-  StrCpy $R1 "xpicleanup.exe"
-  Call CheckInUse
-
-  SetOutPath $INSTDIR
-  RmDir /r "$TmpVal"
-  ClearErrors
-
-  Call CleanupOldLogs
-
-  ${If} ${FileExists} "$INSTDIR\uninstall\uninstall.log"
-    ; Diff cleanup.log with uninstall.bak
-    ${LogHeader} "Updating Uninstall Log With XPInstall Wizard Logs"
-    StrCpy $R0 "$INSTDIR\uninstall\uninstall.log"
-    StrCpy $R1 "$INSTDIR\uninstall\cleanup.log"
-    GetTempFileName $R2
-    FileOpen $R3 $R2 w
-    ${TextCompareNoDetails} "$R1" "$R0" "SlowDiff" "GetDiff"
-    FileClose $R3
-
-    ${Unless} ${Errors}
-      ${FileJoin} "$INSTDIR\uninstall\uninstall.log" "$R2" "$INSTDIR\uninstall\uninstall.log"
-    ${EndUnless}
-    ${DeleteFile} "$INSTDIR\uninstall\cleanup.log"
-    ${DeleteFile} "$R2"
-    ${DeleteFile} "$INSTDIR\uninstall\uninstall.bak"
-    Rename "$INSTDIR\uninstall\uninstall.log" "$INSTDIR\uninstall\uninstall.bak"
-  ${EndIf}
-
-  ${If} $InstallType == ${INSTALLTYPE_CUSTOM}
-    ; Custom installs.
-    ; If DOMi is installed and this install includes DOMi remove it from
-    ; the installation directory. This will remove it if the user deselected
-    ; DOMi on the components page.
-    ${If} ${FileExists} "$INSTDIR\extensions\inspector@mozilla.org"
-    ${AndIf} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
-      RmDir /r "$INSTDIR\extensions\inspector@mozilla.org"
-    ${EndIf}
-  ${EndIf}
+  ; Remove the updates directory for Vista and above
+  ${CleanUpdatesDir} "Instantbird"
 
   ${InstallStartCleanupCommon}
 SectionEnd
 
 Section "-Application" APP_IDX
   ${StartUninstallLog}
 
   SetDetailsPrint both
   DetailPrint $(STATUS_INSTALL_APP)
   SetDetailsPrint none
 
   ${LogHeader} "Installing Main Files"
-  StrCpy $R0 "$EXEDIR\nonlocalized"
-  StrCpy $R1 "$INSTDIR"
-  Call DoCopyFiles
+  ${CopyFilesFromDir} "$EXEDIR\nonlocalized" "$INSTDIR" \
+                      "$(ERROR_CREATE_DIRECTORY_PREFIX)" \
+                      "$(ERROR_CREATE_DIRECTORY_SUFFIX)"
 
   ; Register DLLs
   ; XXXrstrong - AccessibleMarshal.dll can be used by multiple applications but
   ; is only registered for the last application installed. When the last
   ; application installed is uninstalled AccessibleMarshal.dll will no longer be
   ; registered. bug 338878
   ${LogHeader} "DLL Registration"
   ClearErrors
   RegDLL "$INSTDIR\AccessibleMarshal.dll"
   ${If} ${Errors}
     ${LogMsg} "** ERROR Registering: $INSTDIR\AccessibleMarshal.dll **"
   ${Else}
     ${LogUninstall} "DLLReg: \AccessibleMarshal.dll"
     ${LogMsg} "Registered: $INSTDIR\AccessibleMarshal.dll"
   ${EndIf}
 
-  ; Write extra files created by the application to the uninstall.log so they
+  ; Write extra files created by the application to the uninstall log so they
   ; will be removed when the application is uninstalled. To remove an empty
   ; directory write a bogus filename to the deepest directory and all empty
   ; parent directories will be removed.
   ${LogUninstall} "File: \components\compreg.dat"
   ${LogUninstall} "File: \components\xpti.dat"
   ${LogUninstall} "File: \.autoreg"
   ${LogUninstall} "File: \active-update.xml"
   ${LogUninstall} "File: \install.log"
@@ -336,19 +264,19 @@ Section "-Application" APP_IDX
   ${LogUninstall} "File: \install_wizard.log"
   ${LogUninstall} "File: \updates.xml"
 
   SetDetailsPrint both
   DetailPrint $(STATUS_INSTALL_LANG)
   SetDetailsPrint none
 
   ${LogHeader} "Installing Localized Files"
-  StrCpy $R0 "$EXEDIR\localized"
-  StrCpy $R1 "$INSTDIR"
-  Call DoCopyFiles
+  ${CopyFilesFromDir} "$EXEDIR\localized" "$INSTDIR" \
+                      "$(ERROR_CREATE_DIRECTORY_PREFIX)" \
+                      "$(ERROR_CREATE_DIRECTORY_SUFFIX)"
 
   ; Default for creating Start Menu folder and shortcuts
   ; (1 = create, 0 = don't create)
   ${If} $AddStartMenuSC == ""
     StrCpy $AddStartMenuSC "1"
   ${EndIf}
 
   ; Default for creating Quick Launch shortcut (1 = create, 0 = don't create)
@@ -356,329 +284,257 @@ Section "-Application" APP_IDX
     StrCpy $AddQuickLaunchSC "1"
   ${EndIf}
 
   ; Default for creating Desktop shortcut (1 = create, 0 = don't create)
   ${If} $AddDesktopSC == ""
     StrCpy $AddDesktopSC "1"
   ${EndIf}
 
-  ; Remove registry entries for non-existent apps and for apps that point to our
-  ; install location in the Software\Mozilla key and uninstall registry entries
-  ; that point to our install location for both HKCU and HKLM.
+  ${LogHeader} "Adding Registry Entries"
   SetShellVarContext current  ; Set SHCTX to HKCU
   ${RegCleanMain} "Software\Mozilla"
   ${RegCleanUninstall}
 
-  SetShellVarContext all  ; Set SHCTX to HKLM
-  ${RegCleanMain} "Software\Mozilla"
-  ${RegCleanUninstall}
-
-  ${LogHeader} "Adding Registry Entries"
   ClearErrors
-  WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test"
+  WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
   ${If} ${Errors}
-    SetShellVarContext current  ; Set SHCTX to HKCU
     StrCpy $TmpVal "HKCU" ; used primarily for logging
   ${Else}
     SetShellVarContext all  ; Set SHCTX to HKLM
-    DeleteRegKey HKLM "Software\Mozilla\InstallerTest"
+    DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
     StrCpy $TmpVal "HKLM" ; used primarily for logging
+    ${RegCleanMain} "Software\Mozilla"
+    ${RegCleanUninstall}
   ${EndIf}
 
+  ${RemoveDeprecatedKeys}
+
   ; The previous installer adds several regsitry values to both HKLM and HKCU.
   ; We now try to add to HKLM and if that fails to HKCU
 
   ; The order that reg keys and values are added is important if you use the
   ; uninstall log to remove them on uninstall. When using the uninstall log you
   ; MUST add children first so they will be removed first on uninstall so they
   ; will be empty when the key is deleted. This allows the uninstaller to
   ; specify that only empty keys will be deleted.
   ${SetAppKeys}
 
-  ; XXXrstrong - this should be set in shared.nsh along with "Create Quick
-  ; Launch Shortcut" and Create Desktop Shortcut.
-  StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Uninstall"
-  ${WriteRegDWORD2} $TmpVal "$0" "Create Start Menu Shortcut" $AddStartMenuSC 0
-
-  ${FixClassKeys}
+  ; Uninstall keys can only exist under HKLM on some versions of windows. Since
+  ; it doesn't cause problems always add them.
+  ${SetUninstallKeys}
 
   ; The following keys should only be set if we can write to HKLM
   ${If} $TmpVal == "HKLM"
-    ; Uninstall keys can only exist under HKLM on some versions of windows.
-    ${SetUninstallKeys}
+    ; Set the Start Menu Internet and Vista Registered App HKLM registry keys.
+    ${SetClientsIM}
 
     ; If we are writing to HKLM and create the quick launch and the desktop
     ; shortcuts set IconsVisible to 1 otherwise to 0.
+    StrCpy $0 "Software\Clients\IM\${ClientsRegName}\InstallInfo"
     ${If} $AddQuickLaunchSC == 1
     ${OrIf} $AddDesktopSC == 1
-      StrCpy $0 "Software\Clients\IM\${BrandFullNameInternal}\InstallInfo"
       WriteRegDWORD HKLM "$0" "IconsVisible" 1
     ${Else}
       WriteRegDWORD HKLM "$0" "IconsVisible" 0
     ${EndIf}
   ${EndIf}
 
   ; These need special handling on uninstall since they may be overwritten by
   ; an install into a different location.
   StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
   ${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
   ${WriteRegStr2} $TmpVal "$0" "Path" "$INSTDIR" 0
 
+  ; Create shortcuts
+  ${LogHeader} "Adding Shortcuts"
+
   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
 
-  ; Create Start Menu shortcuts
-  ${LogHeader} "Adding Shortcuts"
+  ; Always add the relative path to the application's Start Menu directory and
+  ; the application's shortcuts to the shortcuts log ini file. The
+  ; DeleteShortcuts macro will do the right thing on uninstall if they don't
+  ; exist.
+  ${LogSMProgramsDirRelPath} "$StartMenuDir"
+  ${LogSMProgramsShortcut} "${BrandFullName}.lnk"
+  ${LogSMProgramsShortcut} "${BrandFullName} ($(SAFE_MODE)).lnk"
+  ${LogQuickLaunchShortcut} "${BrandFullName}.lnk"
+  ${LogDesktopShortcut} "${BrandFullName}.lnk"
+
+  ; UAC only allows elevating to an Admin account so there is no need to add
+  ; the Start Menu or Desktop shortcuts from the original unelevated process
+  ; since this will either add it for the user if unelevated or All Users if
+  ; elevated.
   ${If} $AddStartMenuSC == 1
     ${Unless} ${FileExists} "$SMPROGRAMS\$StartMenuDir"
       CreateDirectory "$SMPROGRAMS\$StartMenuDir"
       ${LogMsg} "Added Start Menu Directory: $SMPROGRAMS\$StartMenuDir"
     ${EndUnless}
-    CreateShortCut "$SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
-    ${LogUninstall} "File: $SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal}.lnk"
-    ${LogMsg} "Added Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal}.lnk"
-    CreateShortCut "$SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal} ($(SAFE_MODE)).lnk" "$INSTDIR\${FileMainEXE}" "-safe-mode" "$INSTDIR\${FileMainEXE}" 0
-    ${LogUninstall} "File: $SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal} ($(SAFE_MODE)).lnk"
-    ${LogMsg} "Added Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullNameInternal} ($(SAFE_MODE)).lnk"
+    CreateShortCut "$SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
+    ${LogMsg} "Added Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName}.lnk"
+    CreateShortCut "$SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk" "$INSTDIR\${FileMainEXE}" "-safe-mode" "$INSTDIR\${FileMainEXE}" 0
+    ${LogMsg} "Added Shortcut: $SMPROGRAMS\$StartMenuDir\${BrandFullName} ($(SAFE_MODE)).lnk"
   ${EndIf}
 
-  ; perhaps use the uninstall keys
-  ${If} $AddQuickLaunchSC == 1
-    CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
-    ${LogUninstall} "File: $QUICKLAUNCH\${BrandFullName}.lnk"
-    ${LogMsg} "Added Shortcut: $QUICKLAUNCH\${BrandFullName}.lnk"
-  ${EndIf}
+  !insertmacro MUI_STARTMENU_WRITE_END
 
   ${If} $AddDesktopSC == 1
     CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
-    ${LogUninstall} "File: $DESKTOP\${BrandFullName}.lnk"
     ${LogMsg} "Added Shortcut: $DESKTOP\${BrandFullName}.lnk"
   ${EndIf}
 
-  !insertmacro MUI_STARTMENU_WRITE_END
-SectionEnd
-
-Section /o "Developer Tools" DOMI_IDX
-  ${If} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
-    SetDetailsPrint both
-    DetailPrint $(STATUS_INSTALL_OPTIONAL)
-    SetDetailsPrint none
-
-    ${RemoveDir} "$INSTDIR\extensions\inspector@mozilla.org"
+  ; If elevated the Quick Launch shortcut must be added from the unelevated
+  ; original process.
+  ${If} $AddQuickLaunchSC == 1
     ClearErrors
-    ${LogHeader} "Installing Developer Tools"
-    StrCpy $R0 "$EXEDIR\optional\extensions\inspector@mozilla.org"
-    StrCpy $R1 "$INSTDIR\extensions\inspector@mozilla.org"
-    Call DoCopyFiles
+    ${GetParameters} $0
+    ${GetOptions} "$0" "/UAC:" $0
+    ${If} ${Errors}
+      Call AddQuickLaunchShortcut
+      ${LogMsg} "Added Shortcut: $QUICKLAUNCH\${BrandFullName}.lnk"
+    ${Else}
+      ; It is not possible to add a log entry from the unelevated process so
+      ; add the log entry without the path since there is no simple way to know
+      ; the correct full path.
+      ${LogMsg} "Added Quick Launch Shortcut: ${BrandFullName}.lnk"
+      GetFunctionAddress $0 AddQuickLaunchShortcut
+      UAC::ExecCodeSegment $0
+    ${EndIf}
   ${EndIf}
 SectionEnd
 
 ; Cleanup operations to perform at the end of the installation.
 Section "-InstallEndCleanup"
   SetDetailsPrint both
   DetailPrint "$(STATUS_CLEANUP)"
   SetDetailsPrint none
+
+  ${Unless} ${Silent}
+    ${MUI_INSTALLOPTIONS_READ} $0 "options.ini" "Field 6" "State"
+    ${If} "$0" == "1"
+      ${LogHeader} "Setting as the default instant messaging"
+      ClearErrors
+      ${GetParameters} $0
+      ${GetOptions} "$0" "/UAC:" $0
+      ${If} ${Errors}
+        Call SetAsDefaultAppUserHKCU
+      ${Else}
+        GetFunctionAddress $0 SetAsDefaultAppUserHKCU
+        UAC::ExecCodeSegment $0
+      ${EndIf}
+    ${EndIf}
+  ${EndUnless}
+
   ${LogHeader} "Updating Uninstall Log With Previous Uninstall Log"
 
+  ; Refresh desktop icons
+  System::Call "shell32::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)"
+
   ${InstallEndCleanupCommon}
 
-  ; Refresh desktop icons
-  System::Call "shell32::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)"
+  ${If} ${RebootFlag}
+    ; When a reboot is required give SHChangeNotify time to finish the
+    ; refreshing the icons so the OS doesn't display the icons from helper.exe
+    Sleep 10000
+    ${LogHeader} "Reboot Required To Finish Installation"
+    ; ${FileMainEXE}.moz-upgrade should never exist but just in case...
+    ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}.moz-upgrade"
+      Rename "$INSTDIR\${FileMainEXE}" "$INSTDIR\${FileMainEXE}.moz-upgrade"
+    ${EndUnless}
+
+    ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
+      ClearErrors
+      Rename "$INSTDIR\${FileMainEXE}" "$INSTDIR\${FileMainEXE}.moz-delete"
+      ${Unless} ${Errors}
+        Delete /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-delete"
+      ${EndUnless}
+    ${EndIf}
+
+    ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}"
+      CopyFiles /SILENT "$INSTDIR\uninstall\helper.exe" "$INSTDIR"
+      FileOpen $0 "$INSTDIR\${FileMainEXE}" w
+      FileWrite $0 "Will be deleted on restart"
+      Rename /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-upgrade" "$INSTDIR\${FileMainEXE}"
+      FileClose $0
+      Delete "$INSTDIR\${FileMainEXE}"
+      Rename "$INSTDIR\helper.exe" "$INSTDIR\${FileMainEXE}"
+    ${EndUnless}
+  ${EndIf}
 SectionEnd
 
 ################################################################################
 # Helper Functions
 
-; Copies a file to a temporary backup directory and then checks if it is in use
-; by attempting to delete the file. If the file is in use an error is displayed
-; and the user is given the options to either retry or cancel. If cancel is
-; selected then the files are restored.
-Function CheckInUse
-  ${If} ${FileExists} "$INSTDIR\$R1"
-    retry:
-    ClearErrors
-    CopyFiles /SILENT "$INSTDIR\$R1" "$TmpVal\$R1"
-    ${Unless} ${Errors}
-      Delete "$INSTDIR\$R1"
-    ${EndUnless}
-    ${If} ${Errors}
-      StrCpy $0 "$INSTDIR\$R1"
-      ${WordReplace} "$(^FileError_NoIgnore)" "\r\n" "$\r$\n" "+*" $0
-      MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "$0" IDRETRY retry
-      Delete "$TmpVal\$R1"
-      CopyFiles /SILENT "$TmpVal\*" "$INSTDIR\"
-      SetOutPath $INSTDIR
-      RmDir /r "$TmpVal"
-      Quit
+Function AddQuickLaunchShortcut
+  CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
+FunctionEnd
+
+Function CheckExistingInstall
+  ; If there is a pending file copy from a previous uninstall don't allow
+  ; installing until after the system has rebooted.
+  IfFileExists "$INSTDIR\${FileMainEXE}.moz-upgrade" +1 +4
+  MessageBox MB_YESNO "$(WARN_RESTART_REQUIRED_UPGRADE)" IDNO +2
+  Reboot
+  Quit
+
+  ; If there is a pending file deletion from a previous uninstall don't allow
+  ; installing until after the system has rebooted.
+  IfFileExists "$INSTDIR\${FileMainEXE}.moz-delete" +1 +4
+  MessageBox MB_YESNO "$(WARN_RESTART_REQUIRED_UNINSTALL)" IDNO +2
+  Reboot
+  Quit
+
+  ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
+    Banner::show /NOUNLOAD "$(BANNER_CHECK_EXISTING)"
+
+    ${If} "$TmpVal" == "FoundMessageWindow"
+      Sleep 5000
+    ${EndIf}
+
+    ${PushFilesToCheck}
+
+    ; Store the return value in $TmpVal so it is less likely to be accidentally
+    ; overwritten elsewhere.
+    ${CheckForFilesInUse} $TmpVal
+
+    Banner::destroy
+
+    ${If} "$TmpVal" == "true"
+      StrCpy $TmpVal "FoundMessageWindow"
+      ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_INSTALL)"
+      StrCpy $TmpVal "true"
     ${EndIf}
   ${EndIf}
 FunctionEnd
 
-Function GetDiff
-  ${TrimNewLines} "$9" "$9"
-  ${If} $9 != ""
-    FileWrite $R3 "$9$\r$\n"
-    ${LogMsg} "Added To Uninstall Log: $9"
-  ${EndIf}
-  Push 0
-FunctionEnd
-
-Function DoCopyFiles
-  StrLen $R2 $R0
-  ${LocateNoDetails} "$R0" "/L=FD" "CopyFile"
-FunctionEnd
-
-Function CopyFile
-  StrCpy $R3 $R8 "" $R2
-  retry:
+Function LaunchApp
   ClearErrors
-  ${If} $R6 ==  ""
-    ${Unless} ${FileExists} "$R1$R3\$R7"
-      ClearErrors
-      CreateDirectory "$R1$R3\$R7"
-      ${If} ${Errors}
-        ${LogMsg}  "** ERROR Creating Directory: $R1$R3\$R7 **"
-        StrCpy $0 "$R1$R3\$R7"
-        StrCpy $0 "$(ERROR_CREATE_DIRECTORY)"
-        MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "$0" IDRETRY retry
-        Quit
-      ${Else}
-        ${LogMsg}  "Created Directory: $R1$R3\$R7"
-      ${EndIf}
-    ${EndUnless}
+  ${GetParameters} $0
+  ${GetOptions} "$0" "/UAC:" $1
+  ${If} ${Errors}
+    ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_LAUNCH)"
+    Exec "$INSTDIR\${FileMainEXE}"
   ${Else}
-    ${Unless} ${FileExists} "$R1$R3"
-      ClearErrors
-      CreateDirectory "$R1$R3"
-      ${If} ${Errors}
-        ${LogMsg}  "** ERROR Creating Directory: $R1$R3 **"
-        StrCpy $0 "$R1$R3"
-        StrCpy $0 "$(ERROR_CREATE_DIRECTORY)"
-        MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "$0" IDRETRY retry
-        Quit
-      ${Else}
-        ${LogMsg}  "Created Directory: $R1$R3"
-      ${EndIf}
-    ${EndUnless}
-    ${If} ${FileExists} "$R1$R3\$R7"
-      ClearErrors
-      Delete "$R1$R3\$R7"
-      ${If} ${Errors}
-        ${LogMsg} "** ERROR Deleting File: $R1$R3\$R7 **"
-        StrCpy $0 "$R1$R3\$R7"
-        ${WordReplace} "$(^FileError_NoIgnore)" "\r\n" "$\r$\n" "+*" $0
-        MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "$0" IDRETRY retry
-        Quit
-      ${EndIf}
-    ${EndIf}
-    ClearErrors
-
-    CopyFiles /SILENT $R9 "$R1$R3"
-
-    ${If} ${Errors}
-      ${LogMsg} "** ERROR Installing File: $R1$R3\$R7 **"
-      StrCpy $0 "$R1$R3\$R7"
-      ${WordReplace} "$(^FileError_NoIgnore)" "\r\n" "$\r$\n" "+*" $0
-      MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "$0" IDRETRY retry
-      Quit
-    ${Else}
-      ${LogMsg} "Installed File: $R1$R3\$R7"
-    ${EndIf}
-    ; If the file is installed into the installation directory remove the
-    ; installation directory's path from the file path when writing to the
-    ; uninstall.log so it will be a relative path. This allows the same
-    ; helper.exe to be used with zip builds if we supply an uninstall.log.
-    ${WordReplace} "$R1$R3\$R7" "$INSTDIR" "" "+" $R3
-    ${LogUninstall} "File: $R3"
+    GetFunctionAddress $0 LaunchAppFromElevatedProcess
+    UAC::ExecCodeSegment $0
   ${EndIf}
-  Push 0
 FunctionEnd
 
-; Clean up the old log files. We only diff the first two found since it is
-; possible for there to be several MB and comparing that many would take a very
-; long time to diff.
-Function CleanupOldLogs
-  FindFirst $0 $TmpVal "$INSTDIR\uninstall\*wizard*"
-  StrCmp $TmpVal "" done
-  StrCpy $TmpVal "$INSTDIR\uninstall\$TmpVal"
-
-  FindNext $0 $1
-  StrCmp $1 "" cleanup
-  StrCpy $1 "$INSTDIR\uninstall\$1"
-  Push $1
-  Call DiffOldLogFiles
-  FindClose $0
-  ${DeleteFile} "$1"
-
-  cleanup:
-    StrCpy $2 "$INSTDIR\uninstall\cleanup.log"
-    ${DeleteFile} "$2"
-    FileOpen $R2 $2 w
-    Push $TmpVal
-    ${LineFind} "$INSTDIR\uninstall\$TmpVal" "/NUL" "1:-1" "CleanOldLogFilesCallback"
-    ${DeleteFile} "$INSTDIR\uninstall\$TmpVal"
-  done:
-    FindClose $0
-    FileClose $R2
-    FileClose $R3
-FunctionEnd
-
-Function DiffOldLogFiles
-  StrCpy $R1 "$1"
-  GetTempFileName $R2
-  FileOpen $R3 $R2 w
-  ${TextCompareNoDetails} "$R1" "$TmpVal" "SlowDiff" "GetDiff"
-  FileClose $R3
-  ${FileJoin} "$TmpVal" "$R2" "$TmpVal"
-  ${DeleteFile} "$R2"
-FunctionEnd
+Function LaunchAppFromElevatedProcess
+  ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_LAUNCH)"
 
-Function CleanOldLogFilesCallback
-  ${TrimNewLines} "$R9" $R9
-  ${WordReplace} "$R9" "$INSTDIR" "" "+" $R3
-  ${WordFind} "$R9" "	" "E+1}" $R0
-  IfErrors updater 0
-
-  ${WordFind} "$R0" "Installing: " "E+1}" $R1
-  ${Unless} ${Errors}
-    FileWrite $R2 "File: $R1$\r$\n"
-    GoTo done
-  ${EndUnless}
-
-  ${WordFind} "$R0" "Replacing: " "E+1}" $R1
-  ${Unless} ${Errors}
-    FileWrite $R2 "File: $R1$\r$\n"
-    GoTo done
-  ${EndUnless}
-
-  ${WordFind} "$R0" "Windows Shortcut: " "E+1}" $R1
-  ${Unless} ${Errors}
-    FileWrite $R2 "File: $R1.lnk$\r$\n"
-    GoTo done
-  ${EndUnless}
-
-  ${WordFind} "$R0" "Create Folder: " "E+1}" $R1
-  ${Unless} ${Errors}
-    FileWrite $R2 "Dir: $R1$\r$\n"
-    GoTo done
-  ${EndUnless}
-
-  updater:
-    ${WordFind} "$R9" "installing: " "E+1}" $R0
-    ${Unless} ${Errors}
-      FileWrite $R2 "File: $R0$\r$\n"
-    ${EndUnless}
-
-  done:
-    Push 0
-FunctionEnd
-
-Function LaunchApp
-  ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_LAUNCH)"
-  Exec "$INSTDIR\${FileMainEXE}"
+  ; Find the installation directory when launching using GetFunctionAddress
+  ; from an elevated installer since $INSTDIR will not be set in this installer
+  ReadRegStr $0 HKLM "Software\Clients\IM\${ClientsRegName}\DefaultIcon" ""
+  ${GetPathFromString} "$0" $0
+  ${GetParent} "$0" $1
+  ; Set our current working directory to the application's install directory
+  ; otherwise the 7-Zip temp directory will be in use and won't be deleted.
+  SetOutPath "$1"
+  Exec "$0"
 FunctionEnd
 
 ################################################################################
 # Language
 
 !insertmacro MOZ_MUI_LANGUAGE 'baseLocale'
 !verbose push
 !verbose 3
@@ -686,142 +542,388 @@ FunctionEnd
 !include "customLocale.nsh"
 !verbose pop
 
 ; Set this after the locale files to override it if it is in the locale
 ; using " " for BrandingText will hide the "Nullsoft Install System..." branding
 BrandingText " "
 
 ################################################################################
-# Page pre and leave functions
+# Page pre, show, and leave functions
+
+Function preWelcome
+  StrCpy $PageName "Welcome"
+  ${If} ${FileExists} "$EXEDIR\localized\distribution\modern-wizard.bmp"
+    Delete "$PLUGINSDIR\modern-wizard.bmp"
+    CopyFiles /SILENT "$EXEDIR\localized\distribution\modern-wizard.bmp" "$PLUGINSDIR\modern-wizard.bmp"
+  ${EndIf}
+FunctionEnd
 
 Function preOptions
+  StrCpy $PageName "Options"
+  ${If} ${FileExists} "$EXEDIR\localized\distribution\modern-header.bmp"
+  ${AndIf} $hHeaderBitmap == ""
+    Delete "$PLUGINSDIR\modern-header.bmp"
+    CopyFiles /SILENT "$EXEDIR\localized\distribution\modern-header.bmp" "$PLUGINSDIR\modern-header.bmp"
+    ${ChangeMUIHeaderImage} "$PLUGINSDIR\modern-header.bmp"
+  ${EndIf}
   !insertmacro MUI_HEADER_TEXT "$(OPTIONS_PAGE_TITLE)" "$(OPTIONS_PAGE_SUBTITLE)"
   !insertmacro MUI_INSTALLOPTIONS_DISPLAY "options.ini"
 FunctionEnd
 
 Function leaveOptions
   ${MUI_INSTALLOPTIONS_READ} $0 "options.ini" "Settings" "State"
   ${If} $0 != 0
     Abort
   ${EndIf}
   ${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 2" "State"
   StrCmp $R0 "1" +1 +2
   StrCpy $InstallType ${INSTALLTYPE_BASIC}
   ${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 3" "State"
   StrCmp $R0 "1" +1 +2
   StrCpy $InstallType ${INSTALLTYPE_CUSTOM}
-FunctionEnd
+
+!ifndef NO_INSTDIR_FROM_REG
+  SetShellVarContext all      ; Set SHCTX to HKLM
+  ${GetSingleInstallPath} "Software\Mozilla\${BrandFullNameInternal}" $R9
+
+  StrCmp "$R9" "false" +1 fix_install_dir
+
+  SetShellVarContext current  ; Set SHCTX to HKCU
+  ${GetSingleInstallPath} "Software\Mozilla\${BrandFullNameInternal}" $R9
+
+  fix_install_dir:
+  StrCmp "$R9" "false" +2 +1
+  StrCpy $INSTDIR "$R9"
+!endif
 
-Function preComponents
-  ${CheckCustomCommon}
-  ; If DOMi isn't available skip the components page
-  ${Unless} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
-    Abort
-  ${EndUnless}
-  !insertmacro MUI_HEADER_TEXT "$(OPTIONAL_COMPONENTS_TITLE)" "$(OPTIONAL_COMPONENTS_SUBTITLE)"
-  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "components.ini"
-FunctionEnd
-
-Function leaveComponents
-  ${MUI_INSTALLOPTIONS_READ} $R0 "components.ini" "Field 2" "State"
-  ; State will be 1 for checked and 0 for unchecked so we can use that to set
-  ; the section flags for installation.
-  SectionSetFlags ${DOMI_IDX} $R0
+  ; If the user doesn't have write access to the installation directory set
+  ; the installation directory to a subdirectory of the All Users application
+  ; directory and if the user can't write to that location set the installation
+  ; directory to a subdirectory of the users local application directory
+  ; (e.g. non-roaming).
+  ${CanWriteToInstallDir} $R8
+  ${If} "$R8" == "false"
+    SetShellVarContext all      ; Set SHCTX to All Users
+    StrCpy $INSTDIR "$APPDATA\${BrandFullName}\"
+    ${If} ${FileExists} "$INSTDIR"
+      ; Always display the long path if the path already exists.
+      ${GetLongPath} "$INSTDIR" $INSTDIR
+    ${EndIf}
+    ${CanWriteToInstallDir} $R8
+    ${If} "$R8" == "false"
+      StrCpy $INSTDIR "$LOCALAPPDATA\${BrandFullName}\"
+    ${EndIf}
+  ${EndIf}
 FunctionEnd
 
 Function preDirectory
+  StrCpy $PageName "Directory"
   ${PreDirectoryCommon}
 FunctionEnd
 
 Function leaveDirectory
   ${LeaveDirectoryCommon} "$(WARN_DISK_SPACE)" "$(WARN_WRITE_ACCESS)"
+  ${If} $InstallType != ${INSTALLTYPE_CUSTOM}
+    Call CheckExistingInstall
+  ${EndIf}
 FunctionEnd
 
 Function preShortcuts
+  StrCpy $PageName "Shortcuts"
   ${CheckCustomCommon}
   !insertmacro MUI_HEADER_TEXT "$(SHORTCUTS_PAGE_TITLE)" "$(SHORTCUTS_PAGE_SUBTITLE)"
   !insertmacro MUI_INSTALLOPTIONS_DISPLAY "shortcuts.ini"
 FunctionEnd
 
 Function leaveShortcuts
   ${MUI_INSTALLOPTIONS_READ} $0 "shortcuts.ini" "Settings" "State"
   ${If} $0 != 0
     Abort
   ${EndIf}
   ${MUI_INSTALLOPTIONS_READ} $AddDesktopSC "shortcuts.ini" "Field 2" "State"
   ${MUI_INSTALLOPTIONS_READ} $AddStartMenuSC "shortcuts.ini" "Field 3" "State"
   ${MUI_INSTALLOPTIONS_READ} $AddQuickLaunchSC "shortcuts.ini" "Field 4" "State"
 FunctionEnd
 
 Function preStartMenu
+  StrCpy $PageName "StartMenu"
+  ; With the Unicode installer the path to the application's Start Menu
+  ; directory relative to the Start Menu's Programs directory is written to the
+  ; shortcuts log ini file and is used to set the default Start Menu directory.
+  ${GetSMProgramsDirRelPath} $0
+  ${If} "$0" != ""
+    StrCpy $StartMenuDir "$0"
+  ${Else}
+    ; Prior to the Unicode installer the path to the application's Start Menu
+    ; directory relative to the Start Menu's Programs directory was written to
+    ; the registry and use this value to set the default Start Menu directory.
+    ClearErrors
+    ReadRegStr $0 HKLM "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Main" "Start Menu Folder"
+    ${If} ${Errors}
+      ; Use the FindSMProgramsDir macro to find a previously used path to the
+      ; application's Start Menu directory relative to the Start Menu's Programs
+      ; directory in the uninstall log and use this value to set the default
+      ; Start Menu directory.
+      ${FindSMProgramsDir} $0
+      ${If} "$0" != ""
+        StrCpy $StartMenuDir "$0"
+      ${EndIf}
+    ${Else}
+      StrCpy $StartMenuDir "$0"
+    ${EndUnless}
+  ${EndIf}
+
   ${CheckCustomCommon}
   ${If} $AddStartMenuSC != 1
     Abort
   ${EndIf}
 FunctionEnd
 
+Function leaveStartMenu
+  ${If} $InstallType == ${INSTALLTYPE_CUSTOM}
+    Call CheckExistingInstall
+  ${EndIf}
+FunctionEnd
+
 Function preSummary
-  !insertmacro createSummaryINI
+  StrCpy $PageName "Summary"
+  ; Setup the summary.ini file for the Custom Summary Page
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "3"
+
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Type   "label"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Text   "$(SUMMARY_INSTALLED_TO)"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Left   "0"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Top    "5"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Bottom "15"
+
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Type   "text"
+  ; The contents of this control must be set as follows in the pre function
+  ; ${MUI_INSTALLOPTIONS_READ} $1 "summary.ini" "Field 2" "HWND"
+  ; SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" state  ""
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Left   "0"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Top    "17"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Bottom "30"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" flags  "READONLY"
+
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Type   "label"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Left   "0"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Top    "130"
+  WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Bottom "150"
+
+  ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Text "$(SUMMARY_UPGRADE_CLICK)"
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NextButtonText "$(UPGRADE_BUTTON)"
+  ${Else}
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Text "$(SUMMARY_INSTALL_CLICK)"
+    DeleteINIStr "$PLUGINSDIR\summary.ini" "Settings" NextButtonText
+  ${EndIf}
+
+
+  ; Remove the "Field 4" ini section in case the user hits back and changes the
+  ; installation directory which could change whether the make default checkbox
+  ; should be displayed.
+  DeleteINISec "$PLUGINSDIR\summary.ini" "Field 4"
+
+  ; Check if it is possible to write to HKLM
+  ClearErrors
+  WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
+  ${Unless} ${Errors}
+    DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
+    ; Check if Firefox is already the handler for http. This is set on all
+    ; versions of Windows.
+    ${IsHandlerForInstallDir} "http" $R9
+    ${If} "$R9" != "true"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "4"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Type   "checkbox"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Text   "$(SUMMARY_TAKE_DEFAULTS)"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Left   "0"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Right  "-1"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" State  "1"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Top    "32"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Bottom "53"
+    ${EndIf}
+  ${EndUnless}
+
+  ${If} "$TmpVal" == "true"
+    ; If there is already a Type entry in the "Field 4" section with a value of
+    ; checkbox then the set as the default browser checkbox is displayed and
+    ; this text must be moved below it.
+    ReadINIStr $0 "$PLUGINSDIR\summary.ini" "Field 4" "Type"
+    ${If} "$0" == "checkbox"
+      StrCpy $0 "5"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Top    "53"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Bottom "68"
+    ${Else}
+      StrCpy $0 "4"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Top    "35"
+      WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Bottom "50"
+    ${EndIf}
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "$0"
+
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Type   "label"
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Text   "$(SUMMARY_REBOOT_REQUIRED_INSTALL)"
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Left   "0"
+    WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Right  "-1"
+  ${EndIf}
+
   !insertmacro MUI_HEADER_TEXT "$(SUMMARY_PAGE_TITLE)" "$(SUMMARY_PAGE_SUBTITLE)"
 
   ; The Summary custom page has a textbox that will automatically receive
   ; focus. This sets the focus to the Install button instead.
   !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "summary.ini"
   GetDlgItem $0 $HWNDPARENT 1
   System::Call "user32::SetFocus(i r0, i 0x0007, i,i)i"
   ${MUI_INSTALLOPTIONS_READ} $1 "summary.ini" "Field 2" "HWND"
   SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
   !insertmacro MUI_INSTALLOPTIONS_SHOW
 FunctionEnd
 
 Function leaveSummary
-  ; If there is a pending deletion from a previous uninstall don't allow
-  ; installing until after the system has rebooted.
-  IfFileExists "$INSTDIR\${FileMainEXE}.moz-delete" +1 +4
-  MessageBox MB_YESNO "$(WARN_RESTART_REQUIRED_UNINSTALL)" IDNO +2
-  Reboot
-  Quit
-
-  ${If} $InstallType != ${INSTALLTYPE_CUSTOM}
-    ; Set DOMi to be installed
-    SectionSetFlags ${DOMI_IDX} 1
+  ; Try to delete the app executable and if we can't delete it try to find the
+  ; app's message window and prompt the user to close the app. This allows
+  ; running an instance that is located in another directory. If for whatever
+  ; reason there is no message window we will just rename the app's files and
+  ; then remove them on restart.
+  ClearErrors
+  ${DeleteFile} "$INSTDIR\${FileMainEXE}"
+  ${If} ${Errors}
+    ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_INSTALL)"
   ${EndIf}
 FunctionEnd
 
 ; When we add an optional action to the finish page the cancel button is
 ; enabled. This disables it and leaves the finish button as the only choice.
 Function preFinish
+  StrCpy $PageName ""
   ${EndInstallLog} "${BrandFullName}"
   !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "cancelenabled" "0"
 FunctionEnd
 
 ################################################################################
 # Initialization Functions
 
 Function .onInit
-  ${InstallOnInitCommon} "$(WARN_UNSUPPORTED_MSG)"
+  StrCpy $PageName ""
+  StrCpy $LANGUAGE 0
+  ${SetBrandNameVars} "$EXEDIR\localized\distribution\setup.ini"
+
+  ${InstallOnInitCommon} "$(WARN_MIN_SUPPORTED_OS_MSG)"
+
+  !insertmacro InitInstallOptionsFile "options.ini"
+  !insertmacro InitInstallOptionsFile "shortcuts.ini"
+  !insertmacro InitInstallOptionsFile "summary.ini"
+
+  ClearErrors
+  ${If} ${AtLeastWinVista}
+    WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
+  ${EndIf}
+  ${If} ${Errors}
+    ; Setup the options.ini file for the Custom Options Page without the option
+    ; to set as default for Vista and above since the installer is unable to
+    ; write to HKLM.
+    WriteINIStr "$PLUGINSDIR\options.ini" "Settings" NumFields "5"
+  ${Else}
+    DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
+    ; Setup the options.ini file for the Custom Options Page with the option
+    ; to set as default
+    WriteINIStr "$PLUGINSDIR\options.ini" "Settings" NumFields "6"
+
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Type   "checkbox"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Text   "$(OPTIONS_MAKE_DEFAULT)"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Left   "0"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Right  "-1"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Top    "124"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" Bottom "145"
+    WriteINIStr "$PLUGINSDIR\options.ini" "Field 6" State  "1"
+  ${EndIf}
+
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Type   "label"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Text   "$(OPTIONS_SUMMARY)"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Left   "0"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Top    "0"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Bottom "10"
+
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Type   "RadioButton"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Text   "$(OPTION_STANDARD_RADIO)"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Left   "15"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Top    "25"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Bottom "35"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" State  "1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Flags  "GROUP"
 
-  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "options.ini"
-  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "components.ini"
-  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "shortcuts.ini"
-  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "summary.ini"
-  !insertmacro createBasicCustomOptionsINI
-  !insertmacro createComponentsINI
-  !insertmacro createShortcutsINI
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Type   "RadioButton"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Text   "$(OPTION_CUSTOM_RADIO)"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Left   "15"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Top    "55"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Bottom "65"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" State  "0"
+
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Type   "label"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Text   "$(OPTION_STANDARD_DESC)"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Left   "30"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Top    "37"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Bottom "57"
+
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Type   "label"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Text   "$(OPTION_CUSTOM_DESC)"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Left   "30"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Top    "67"
+  WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Bottom "87"
+
+  ; Setup the shortcuts.ini file for the Custom Shortcuts Page
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Settings" NumFields "4"
 
-  StrCpy $LANGUAGE 0
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Type   "label"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Text   "$(CREATE_ICONS_DESC)"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Left   "0"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Top    "5"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Bottom "15"
+
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Type   "checkbox"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Text   "$(ICONS_DESKTOP)"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Left   "15"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Top    "20"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Bottom "30"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" State  "1"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Flags  "GROUP"
+
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Type   "checkbox"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Text   "$(ICONS_STARTMENU)"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Left   "15"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Top    "40"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Bottom "50"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" State  "1"
+
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Type   "checkbox"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Text   "$(ICONS_QUICKLAUNCH)"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Left   "15"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Top    "60"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Bottom "70"
+  WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" State  "1"
 
   ; There must always be nonlocalized and localized directories.
   ${GetSize} "$EXEDIR\nonlocalized\" "/S=0K" $R5 $R7 $R8
   ${GetSize} "$EXEDIR\localized\" "/S=0K" $R6 $R7 $R8
   IntOp $R8 $R5 + $R6
   SectionSetSize ${APP_IDX} $R8
 
-  ${If} ${FileExists} "$EXEDIR\optional\extensions\inspector@mozilla.org"
-    ; Set the section size for DOMi.
-    ${GetSize} "$EXEDIR\optional\extensions\inspector@mozilla.org" "/S=0K" $0 $8 $9
-    SectionSetSize ${DOMI_IDX} $0
-  ${Else}
-    ; Hide DOMi in the components page if it isn't available.
-    SectionSetText ${DOMI_IDX} ""
-  ${EndIf}
+  ; Initialize $hHeaderBitmap to prevent redundant changing of the bitmap if
+  ; the user clicks the back button
+  StrCpy $hHeaderBitmap ""
 FunctionEnd
+
+Function .onGUIEnd
+  ${OnEndCommon}
+FunctionEnd
--- a/im/installer/windows/nsis/shared.nsh
+++ b/im/installer/windows/nsis/shared.nsh
@@ -31,84 +31,116 @@
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 !macro PostUpdate
-  SetShellVarContext all
+  ${CreateShortcutsLog}
 
   ; Remove registry entries for non-existent apps and for apps that point to our
   ; install location in the Software\Mozilla key and uninstall registry entries
   ; that point to our install location for both HKCU and HKLM.
-  SetShellVarContext current  ; Set SHCTX to HKCU
+  SetShellVarContext current  ; Set SHCTX to the current user (e.g. HKCU)
   ${RegCleanMain} "Software\Mozilla"
   ${RegCleanUninstall}
 
-  SetShellVarContext all  ; Set SHCTX to HKLM
-  ${RegCleanMain} "Software\Mozilla"
-  ${RegCleanUninstall}
+  ClearErrors
+  WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
+  ${If} ${Errors}
+    StrCpy $TmpVal "HKCU" ; used primarily for logging
+  ${Else}
+    SetShellVarContext all    ; Set SHCTX to all users (e.g. HKLM)
+    DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
+    StrCpy $TmpVal "HKLM" ; used primarily for logging
+    ${RegCleanMain} "Software\Mozilla"
+    ${RegCleanUninstall}
 
-  ; Add Software\Mozilla\ registry entries
+    ; Only update the Clients\IM registry key values if they don't exist or
+    ; this installation is the same as the one set in those keys.
+    ReadRegStr $0 HKLM "Software\Clients\IM\${ClientsRegName}\DefaultIcon" ""
+    ${GetPathFromString} "$0" $0
+    ${GetParent} "$0" $0
+    ${If} ${FileExists} "$0"
+      ${GetLongPath} "$0" $0
+    ${EndIf}
+    ${If} "$0" == "$INSTDIR"
+      ${SetClientsIM}
+    ${EndIf}
+  ${EndIf}
+
+  ${RemoveDeprecatedKeys}
+
   ${SetAppKeys}
-
   ${SetUninstallKeys}
 
   ; Remove files that may be left behind by the application in the
   ; VirtualStore directory.
   ${CleanVirtualStore}
 
   ; Remove talkback if it is present (remove after bug 386760 is fixed)
   ${If} ${FileExists} "$INSTDIR\extensions\talkback@mozilla.org\"
     RmDir /r "$INSTDIR\extensions\talkback@mozilla.org\"
   ${EndIf}
 !macroend
 !define PostUpdate "!insertmacro PostUpdate"
 
+!macro SetAsDefaultAppGlobal
+  ${RemoveDeprecatedKeys}
+
+  SetShellVarContext all      ; Set SHCTX to all users (e.g. HKLM)
+  ${SetClientsIM}
+  ${ShowShortcuts}
+  WriteRegStr HKLM "Software\Clients\IM" "" "${ClientsRegName}"
+!macroend
+!define SetAsDefaultAppGlobal "!insertmacro SetAsDefaultAppGlobal"
+
+; Removes shortcuts for this installation.
 !macro HideShortcuts
-  StrCpy $R1 "Software\Clients\IM\${BrandFullNameInternal}\InstallInfo"
-  WriteRegDWORD HKLM $R1 "IconsVisible" 0
+  StrCpy $R1 "Software\Clients\IM\${ClientsRegName}\InstallInfo"
+  WriteRegDWORD HKLM "$R1" "IconsVisible" 0
   SetShellVarContext all  ; Set $DESKTOP to All Users
   ${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
     SetShellVarContext current  ; Set $DESKTOP to the current user's desktop
   ${EndUnless}
 
   ${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
     ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk"
     Pop $0
-    ${If} $0 == ""
+    ${If} "$0" == ""
       ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
       Pop $0
       ; Needs to handle short paths
-      ${If} $0 == "$INSTDIR\${FileMainEXE}"
+      ${If} "$0" == "$INSTDIR\${FileMainEXE}"
         Delete "$DESKTOP\${BrandFullName}.lnk"
       ${EndIf}
     ${EndIf}
   ${EndIf}
 
   ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
     ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk"
     Pop $0
-    ${If} $0 == ""
+    ${If} "$0" == ""
       ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
       Pop $0
       ; Needs to handle short paths
-      ${If} $0 == "$INSTDIR\${FileMainEXE}"
+      ${If} "$0" == "$INSTDIR\${FileMainEXE}"
         Delete "$QUICKLAUNCH\${BrandFullName}.lnk"
       ${EndIf}
     ${EndIf}
   ${EndIf}
 !macroend
 !define HideShortcuts "!insertmacro HideShortcuts"
 
+; Adds shortcuts for this installation.
 !macro ShowShortcuts
-  StrCpy $R1 "Software\Clients\IM\${BrandFullNameInternal}\InstallInfo"
-  WriteRegDWORD HKLM $R1 "IconsVisible" 1
+  StrCpy $R1 "Software\Clients\IM\${ClientsRegName}\InstallInfo"
+  WriteRegDWORD HKLM "$R1" "IconsVisible" 1
   SetShellVarContext all  ; Set $DESKTOP to All Users
   ${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
     CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
     ShellLink::SetShortCutWorkingDirectory "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR"
     ${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
       SetShellVarContext current  ; Set $DESKTOP to the current user's desktop
       ${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
         CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
@@ -118,101 +150,296 @@
   ${EndUnless}
   ${Unless} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
     CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}" "" "$INSTDIR\${FileMainEXE}" 0
     ShellLink::SetShortCutWorkingDirectory "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR"
   ${EndUnless}
 !macroend
 !define ShowShortcuts "!insertmacro ShowShortcuts"
 
-!macro SetAppKeys
-  StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Main"
-  ${WriteRegStr2} $TmpVal "$0" "Install Directory" "$INSTDIR" 0
-  ${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
-  ${WriteRegStr2} $TmpVal "$0" "Program Folder Path" "$SMPROGRAMS\$StartMenuDir" 0
 
-  SetShellVarContext all  ; Set $DESKTOP to All Users
-  ${Unless} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
-    SetShellVarContext current  ; Set $DESKTOP to the current user's desktop
-  ${EndUnless}
+; Adds the HKLM\Software\Clients\IM\INSTANTBIRD.EXE registry
+; entries (does not use SHCTX).
+;
+; The values for StartMenuInternet are only valid under HKLM and there can only
+; be one installation registerred under StartMenuInternet per application since
+; the key name is derived from the main application executable.
+; http://support.microsoft.com/kb/297878
+;
+; Note: we might be able to get away with using the full path to the
+; application executable for the key name in order to support multiple
+; installations.
+!macro SetClientsIM
+  ${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
+  ${GetLongPath} "$INSTDIR\uninstall\helper.exe" $7
+
+  StrCpy $0 "Software\Clients\IM\${ClientsRegName}"
 
-  ${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
-    ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk"
-    Pop $1
-    ${If} $1 == ""
-      ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
-      Pop $1
-      ; Needs to handle short paths
-      ${If} $1 == "$INSTDIR\${FileMainEXE}"
-        ${WriteRegDWORD2} $TmpVal "$0" "Create Desktop Shortcut" 1 0
-      ${Else}
-        ${WriteRegDWORD2} $TmpVal "$0" "Create Desktop Shortcut" 0 0
-      ${EndIf}
+  WriteRegStr HKLM "$0" "" "${ClientsRegName}"
+  WriteRegStr HKLM "$0\DefaultIcon" "" "$8,0"
+  WriteRegStr HKLM "$0" "DLLPath" "$6"
+  WriteRegStr HKLM "$0\DefaultIcon" "" "$8,0"
+
+  ; The Reinstall Command is defined at
+  ; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/registeringapps.asp
+  WriteRegStr HKLM "$0\InstallInfo" "HideIconsCommand" "$\"$7$\" /HideShortcuts"
+  WriteRegStr HKLM "$0\InstallInfo" "ShowIconsCommand" "$\"$7$\" /ShowShortcuts"
+  WriteRegStr HKLM "$0\InstallInfo" "ReinstallCommand" "$\"$7$\" /SetAsDefaultAppGlobal"
+
+  ClearErrors
+  ReadRegDWORD $1 HKLM "$0\InstallInfo" "IconsVisible"
+  ; If the IconsVisible name value pair doesn't exist add it otherwise the
+  ; application won't be displayed in Set Program Access and Defaults.
+  ${If} ${Errors}
+    ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
+      WriteRegDWORD HKLM "$0\InstallInfo" "IconsVisible" 1
+    ${Else}
+      WriteRegDWORD HKLM "$0\InstallInfo" "IconsVisible" 0
     ${EndIf}
   ${EndIf}
 
-  ; XXXrstrong - need a cleaner way to prevent unsetting SHCTX from HKLM when
-  ; trying to find the desktop shortcut.
-  ${If} $TmpVal == "HKCU"
-    SetShellVarContext current
-  ${Else}
-    SetShellVarContext all
-  ${EndIf}
+  WriteRegStr HKLM "$0\shell\open\command" "" "$8"
+
+  ; options
+  WriteRegStr HKLM "$0\shell\properties" "" "$(CONTEXT_OPTIONS)"
+  WriteRegStr HKLM "$0\shell\properties\command" "" "$\"$8$\" -preferences"
+
+  ; safemode
+  WriteRegStr HKLM "$0\shell\safemode" "" "$(CONTEXT_SAFE_MODE)"
+  WriteRegStr HKLM "$0\shell\safemode\command" "" "$\"$8$\" -safe-mode"
 
-  ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
-    ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk"
-    Pop $1
-    ${If} $1 == ""
-      ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
-      Pop $1
-      ; Needs to handle short paths
-      ${If} $1 == "$INSTDIR\${FileMainEXE}"
-        ${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 1 0
-      ${Else}
-        ${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 0 0
-      ${EndIf}
-    ${EndIf}
-  ${EndIf}
-  ; XXXrstrong - "Create Start Menu Shortcut" and "Start Menu Folder" are only
-  ; set in the installer and should also be set here for software update.
+  ; Vista Capabilities registry keys
+  WriteRegStr HKLM "$0\Capabilities" "ApplicationDescription" "$(REG_APP_DESC)"
+  WriteRegStr HKLM "$0\Capabilities" "ApplicationIcon" "$8,0"
+  WriteRegStr HKLM "$0\Capabilities" "ApplicationName" "${BrandShortName}"
+
+  ; Vista Registered Application
+  WriteRegStr HKLM "Software\RegisteredApplications" "${AppRegName}" "$0\Capabilities"
+!macroend
+!define SetClientsIM "!insertmacro SetClientsIM"
+
+; Add Software\Mozilla\ registry entries (uses SHCTX).
+!macro SetAppKeys
+  ${GetLongPath} "$INSTDIR" $8
+  StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Main"
+  ${WriteRegStr2} $TmpVal "$0" "Install Directory" "$8" 0
+  ${WriteRegStr2} $TmpVal "$0" "PathToExe" "$8\${FileMainEXE}" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Uninstall"
-  ${WriteRegStr2} $TmpVal "$0" "Uninstall Log Folder" "$INSTDIR\uninstall" 0
   ${WriteRegStr2} $TmpVal "$0" "Description" "${BrandFullNameInternal} (${AppVersion})" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})"
   ${WriteRegStr2} $TmpVal  "$0" "" "${AppVersion} (${AB_CD})" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal} ${AppVersion}\bin"
-  ${WriteRegStr2} $TmpVal "$0" "PathToExe" "$INSTDIR\${FileMainEXE}" 0
+  ${WriteRegStr2} $TmpVal "$0" "PathToExe" "$8\${FileMainEXE}" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal} ${AppVersion}\extensions"
-  ${WriteRegStr2} $TmpVal "$0" "Components" "$INSTDIR\components" 0
-  ${WriteRegStr2} $TmpVal "$0" "Plugins" "$INSTDIR\plugins" 0
+  ${WriteRegStr2} $TmpVal "$0" "Components" "$8\components" 0
+  ${WriteRegStr2} $TmpVal "$0" "Plugins" "$8\plugins" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal} ${AppVersion}"
   ${WriteRegStr2} $TmpVal "$0" "GeckoVer" "${GREVersion}" 0
 
   StrCpy $0 "Software\Mozilla\${BrandFullNameInternal}"
   ${WriteRegStr2} $TmpVal "$0" "" "${GREVersion}" 0
   ${WriteRegStr2} $TmpVal "$0" "CurrentVersion" "${AppVersion} (${AB_CD})" 0
 !macroend
 !define SetAppKeys "!insertmacro SetAppKeys"
 
+; Add uninstall registry entries. This macro tests for write access to determine
+; if the uninstall keys should be added to HKLM or HKCU.
 !macro SetUninstallKeys
-  ; Write the uninstall registry keys
   StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullNameInternal} (${AppVersion})"
-  GetFullPathName $8 "$INSTDIR\${FileMainEXE}"
-  GetFullPathName $7 "$INSTDIR\uninstall\helper.exe"
+
+  WriteRegStr HKLM "$0" "${BrandShortName}InstallerTest" "Write Test"
+  ${If} ${Errors}
+    StrCpy $1 "HKCU"
+    SetShellVarContext current  ; Set SHCTX to the current user (e.g. HKCU)
+  ${Else}
+    StrCpy $1 "HKLM"
+    SetShellVarContext all     ; Set SHCTX to all users (e.g. HKLM)
+    DeleteRegValue HKLM "$0" "${BrandShortName}InstallerTest"
+  ${EndIf}
+
+  ${GetLongPath} "$INSTDIR" $8
 
-  ${WriteRegStr2} $TmpVal "$0" "Comments" "${BrandFullNameInternal}" 0
-  ${WriteRegStr2} $TmpVal "$0" "DisplayIcon" "$8,0" 0
-  ${WriteRegStr2} $TmpVal "$0" "DisplayName" "${BrandFullNameInternal} (${AppVersion})" 0
-  ${WriteRegStr2} $TmpVal "$0" "DisplayVersion" "${AppVersion} (${AB_CD})" 0
-  ${WriteRegStr2} $TmpVal "$0" "InstallLocation" "$INSTDIR" 0
-  ${WriteRegStr2} $TmpVal "$0" "Publisher" "Instantbird" 0
-  ${WriteRegStr2} $TmpVal "$0" "UninstallString" "$7" 0
-  ${WriteRegStr2} $TmpVal "$0" "URLInfoAbout" "${URLInfoAbout}" 0
-  ${WriteRegStr2} $TmpVal "$0" "URLUpdateInfo" "${URLUpdateInfo}" 0
-  ${WriteRegDWORD2} $TmpVal "$0" "NoModify" 1 0
-  ${WriteRegDWORD2} $TmpVal "$0" "NoRepair" 1 0
+  ; Write the uninstall registry keys
+  ${WriteRegStr2} $1 "$0" "Comments" "${BrandFullNameInternal}" 0
+  ${WriteRegStr2} $1 "$0" "DisplayIcon" "$8\${FileMainEXE},0" 0
+  ${WriteRegStr2} $1 "$0" "DisplayName" "${BrandFullNameInternal} (${AppVersion})" 0
+  ${WriteRegStr2} $1 "$0" "DisplayVersion" "${AppVersion} (${AB_CD})" 0
+  ${WriteRegStr2} $1 "$0" "InstallLocation" "$8" 0
+  ${WriteRegStr2} $1 "$0" "Publisher" "Mozilla" 0
+  ${WriteRegStr2} $1 "$0" "UninstallString" "$8\uninstall\helper.exe" 0
+  ${WriteRegStr2} $1 "$0" "URLInfoAbout" "${URLInfoAbout}" 0
+  ${WriteRegStr2} $1 "$0" "URLUpdateInfo" "${URLUpdateInfo}" 0
+  ${WriteRegDWORD2} $1 "$0" "NoModify" 1 0
+  ${WriteRegDWORD2} $1 "$0" "NoRepair" 1 0
+
+  ${If} "$TmpVal" == "HKLM"
+    SetShellVarContext all     ; Set SHCTX to all users (e.g. HKLM)
+  ${Else}
+    SetShellVarContext current  ; Set SHCTX to the current user (e.g. HKCU)
+  ${EndIf}
 !macroend
 !define SetUninstallKeys "!insertmacro SetUninstallKeys"
+
+; Removes various registry entries for reasons noted below (does not use SHCTX).
+!macro RemoveDeprecatedKeys
+  ; Remove the app compatibility registry key
+  StrCpy $0 "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
+  DeleteRegValue HKLM "$0" "$INSTDIR\${FileMainEXE}"
+  DeleteRegValue HKCU "$0" "$INSTDIR\${FileMainEXE}"
+
+!macroend
+!define RemoveDeprecatedKeys "!insertmacro RemoveDeprecatedKeys"
+
+; Creates the shortcuts log ini file with the appropriate entries if it doesn't
+; already exist.
+!macro CreateShortcutsLog
+  ${GetShortcutsLogPath} $0
+  ${Unless} ${FileExists} "$0"
+    ; Default to ${BrandFullName} for the Start Menu Folder
+    StrCpy $TmpVal "${BrandFullName}"
+    ; Prior to Unicode installer the Start Menu directory was written to the
+    ; registry and this value can be used to set the Start Menu directory.
+    ClearErrors
+    ReadRegStr $0 SHCTX "Software\Mozilla\${BrandFullNameInternal}\${AppVersion} (${AB_CD})\Main" "Start Menu Folder"
+    ${If} ${Errors}
+      ${FindSMProgramsDir} $0
+      ${If} "$0" != ""
+        StrCpy $TmpVal "$0"
+      ${EndIf}
+    ${Else}
+      StrCpy $TmpVal "$0"
+    ${EndUnless}
+
+    ${LogSMProgramsDirRelPath} "$TmpVal"
+    ${LogSMProgramsShortcut} "${BrandFullName}.lnk"
+    ${LogSMProgramsShortcut} "${BrandFullName} ($(SAFE_MODE)).lnk"
+    ${LogQuickLaunchShortcut} "${BrandFullName}.lnk"
+    ${LogDesktopShortcut} "${BrandFullName}.lnk"
+  ${EndUnless}
+!macroend
+!define CreateShortcutsLog "!insertmacro CreateShortcutsLog"
+
+; The files to check if they are in use during (un)install so the restart is
+; required message is displayed. All files must be located in the $INSTDIR
+; directory.
+!macro PushFilesToCheck
+  ; The first string to be pushed onto the stack MUST be "end" to indicate
+  ; that there are no more files to check in $INSTDIR and the last string
+  ; should be ${FileMainEXE} so if it is in use the CheckForFilesInUse macro
+  ; returns after the first check.
+  Push "end"
+  Push "AccessibleMarshal.dll"
+  Push "freebl3.dll"
+  Push "nssckbi.dll"
+  Push "nspr4.dll"
+  Push "nssdbm3.dll"
+  Push "sqlite3.dll"
+  Push "xpcom.dll"
+  Push "crashreporter.exe"
+  Push "updater.exe"
+  Push "xpicleanup.exe"
+  Push "${FileMainEXE}"
+!macroend
+!define PushFilesToCheck "!insertmacro PushFilesToCheck"
+
+
+; Sets this installation as the default IM app by setting the registry keys
+; under HKEY_CURRENT_USER via registry calls and using the AppAssocReg NSIS
+; plugin for Vista and above. This is a function instead of a macro so it is
+; easily called from an elevated instance of the binary. Since this can be
+; called by an elevated instance logging is not performed in this function.
+Function SetAsDefaultAppUserHKCU
+  ; Only set as the user's IM app if the IM
+  ; registry keys are for this install.
+  ${StrFilter} "${FileMainEXE}" "+" "" "" $R9
+  ClearErrors
+  ReadRegStr $0 HKLM "Software\Clients\IM\$R9\DefaultIcon" ""
+  ${Unless} ${Errors}
+    ${GetPathFromString} "$0" $0
+    ${GetParent} "$0" $0
+    ${If} ${FileExists} "$0"
+      ${GetLongPath} "$0" $0
+      ${If} "$0" == "$INSTDIR"
+        WriteRegStr HKCU "Software\Clients\IM" "" "$R9"
+      ${EndIf}
+    ${EndIf}
+  ${EndUnless}
+
+  SetShellVarContext current  ; Set SHCTX to the current user (e.g. HKCU)
+
+  ${If} ${AtLeastWinVista}
+    ; Only register as the handler on Vista and above if the app registry name
+    ; exists under the RegisteredApplications registry key. The protocol and
+    ; file handlers set previously at the user level will associate this install
+    ; as the default browser.
+    ClearErrors
+    ReadRegStr $0 HKLM "Software\RegisteredApplications" "${AppRegName}"
+    ${Unless} ${Errors}
+      AppAssocReg::SetAppAsDefaultAll "${AppRegName}"
+    ${EndUnless}
+  ${EndIf}
+  ${RemoveDeprecatedKeys}
+FunctionEnd
+
+; The !ifdef NO_LOG prevents warnings when compiling the installer.nsi due to
+; this function only being used by the uninstaller.nsi.
+!ifdef NO_LOG
+
+Function SetAsDefaultAppUser
+  ; It is only possible to set this installation of the application as the
+  ; StartMenuInternet handler if it was added to the HKLM StartMenuInternet
+  ; registry keys.
+  ; http://support.microsoft.com/kb/297878
+
+  ; Check if this install location registered as the StartMenuInternet client
+  ${StrFilter} "${FileMainEXE}" "+" "" "" $R9
+  ClearErrors
+  ReadRegStr $0 HKLM "Software\Clients\IM\$R9\DefaultIcon" ""
+  ${Unless} ${Errors}
+    ${GetPathFromString} "$0" $0
+    ${GetParent} "$0" $0
+    ${If} ${FileExists} "$0"
+      ${GetLongPath} "$0" $0
+      ${If} "$0" == "$INSTDIR"
+        ; Check if this is running in an elevated process
+        ClearErrors
+        ${GetParameters} $0
+        ${GetOptions} "$0" "/UAC:" $0
+        ${If} ${Errors} ; Not elevated
+          Call SetAsDefaultAppUserHKCU
+        ${Else} ; Elevated - execute the function in the unelevated process
+          GetFunctionAddress $0 SetAsDefaultAppUserHKCU
+          UAC::ExecCodeSegment $0
+        ${EndIf}
+        Return ; Nothing more needs to be done
+      ${EndIf}
+    ${EndIf}
+  ${EndUnless}
+
+  ; The code after ElevateUAC won't be executed on Vista and above when the
+  ; user:
+  ; a) is a member of the administrators group (e.g. elevation is required)
+  ; b) is not a member of the administrators group and chooses to elevate
+  ${ElevateUAC}
+
+  ${SetClientsIM}
+
+  SetShellVarContext all  ; Set SHCTX to all users (e.g. HKLM)
+  ${RemoveDeprecatedKeys}
+
+  ClearErrors
+  ${GetParameters} $0
+  ${GetOptions} "$0" "/UAC:" $0
+  ${If} ${Errors}
+    Call SetAsDefaultAppUserHKCU
+  ${Else}
+    GetFunctionAddress $0 SetAsDefaultAppUserHKCU
+    UAC::ExecCodeSegment $0
+  ${EndIf}
+FunctionEnd
+!define SetAsDefaultAppUser "Call SetAsDefaultAppUser"
+
+!endif
--- a/im/installer/windows/nsis/uninstaller.nsi
+++ b/im/installer/windows/nsis/uninstaller.nsi
@@ -31,95 +31,106 @@
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
 # Required Plugins:
-# ShellLink    http://nsis.sourceforge.net/ShellLink_plug-in
+# AppAssocReg http://nsis.sourceforge.net/Application_Association_Registration_plug-in
+# ShellLink   http://nsis.sourceforge.net/ShellLink_plug-in
+# UAC         http://nsis.sourceforge.net/UAC_plug-in
 
 ; Set verbosity to 3 (e.g. no script) to lessen the noise in the build logs
 !verbose 3
 
 ; 7-Zip provides better compression than the lzma from NSIS so we add the files
 ; uncompressed and use 7-Zip to create a SFX archive of it
 SetDatablockOptimize on
 SetCompress off
 CRCCheck on
 
+RequestExecutionLevel user
+
 !addplugindir ./
 
+; On Vista and above attempt to elevate Standard Users in addition to users that
+; are a member of the Administrators group.
+!define NONADMIN_ELEVATE
+
 ; prevents compiling of the reg write logging.
 !define NO_LOG
 
 Var TmpVal
 
 ; Other included files may depend upon these includes!
 ; The following includes are provided by NSIS.
 !include FileFunc.nsh
 !include LogicLib.nsh
-!include TextFunc.nsh
+!include MUI.nsh
 !include WinMessages.nsh
+!include WinVer.nsh
 !include WordFunc.nsh
-!include MUI.nsh
 
-; WinVer.nsh was added in the same release that RequestExecutionLevel so check
-; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is
-; available.
-!include /NONFATAL WinVer.nsh
-!ifdef ___WINVER__NSH___
-  RequestExecutionLevel admin
-!else
-  !warning "Uninstaller will be created without Vista compatibility.$\n            \
-            Upgrade your NSIS installation to at least version 2.22 to resolve."
-!endif
-
-!insertmacro WordFind
+!insertmacro StrFilter
 !insertmacro WordReplace
 
 !insertmacro un.GetParent
-!insertmacro un.LineFind
-!insertmacro un.TrimNewLines
 
 ; The following includes are custom.
 !include branding.nsi
 !include defines.nsi
 !include common.nsh
 !include locales.nsi
 !include version.nsh
 
 ; This is named BrandShortName helper because we use this for software update
 ; post update cleanup.
 VIAddVersionKey "FileDescription" "${BrandShortName} Helper"
+VIAddVersionKey "OriginalFilename" "helper.exe"
 
-!insertmacro AddHandlerValues
+; Most commonly used macros for managing shortcuts
+!insertmacro _LoggingShortcutsCommon
+
 !insertmacro CleanVirtualStore
+!insertmacro ElevateUAC
+!insertmacro FindSMProgramsDir
 !insertmacro GetLongPath
 !insertmacro GetPathFromString
 !insertmacro RegCleanMain
 !insertmacro RegCleanUninstall
+!insertmacro SetBrandNameVars
+!insertmacro UnloadUAC
 !insertmacro WriteRegDWORD2
 !insertmacro WriteRegStr2
 
+!insertmacro un.ChangeMUIHeaderImage
+!insertmacro un.CheckForFilesInUse
+!insertmacro un.CleanUpdatesDir
 !insertmacro un.CleanVirtualStore
+!insertmacro un.DeleteRelativeProfiles
+!insertmacro un.DeleteShortcuts
 !insertmacro un.GetLongPath
 !insertmacro un.GetSecondInstallPath
 !insertmacro un.ManualCloseAppPrompt
 !insertmacro un.ParseUninstallLog
 !insertmacro un.RegCleanMain
 !insertmacro un.RegCleanUninstall
 !insertmacro un.RemoveQuotesFromPath
+!insertmacro un.SetBrandNameVars
 
 !include shared.nsh
 
 ; Helper macros for ui callbacks. Insert these after shared.nsh
+!insertmacro OnEndCommon
 !insertmacro UninstallOnInitCommon
 
+!insertmacro un.OnEndCommon
+
 Name "${BrandFullName}"
 OutFile "helper.exe"
 InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${BrandFullNameInternal} (${AppVersion})" "InstallLocation"
 InstallDir "$PROGRAMFILES\${BrandFullName}"
 ShowUnInstDetails nevershow
 
 ################################################################################
 # Modern User Interface - MUI
@@ -138,32 +149,43 @@ ShowUnInstDetails nevershow
 !else
 !define MUI_HEADERIMAGE_BITMAP wizHeader.bmp
 !endif
 
 /**
  * Uninstall Pages
  */
 ; Welcome Page
+!define MUI_PAGE_CUSTOMFUNCTION_PRE un.preWelcome
+!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.leaveWelcome
 !insertmacro MUI_UNPAGE_WELCOME
 
-; Uninstall Confirm Page
-!define MUI_PAGE_CUSTOMFUNCTION_LEAVE un.leaveConfirm
-!insertmacro MUI_UNPAGE_CONFIRM
+; Custom Uninstall Confirm Page
+UninstPage custom un.preConfirm un.leaveConfirm
 
 ; Remove Files Page
 !insertmacro MUI_UNPAGE_INSTFILES
 
 ; Finish Page
+
+; Don't setup the survey controls, functions, etc. when the application has
+; defined NO_UNINSTALL_SURVEY
+!ifndef NO_UNINSTALL_SURVEY
 !define MUI_PAGE_CUSTOMFUNCTION_PRE un.preFinish
 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
 !define MUI_FINISHPAGE_SHOWREADME ""
+!define MUI_FINISHPAGE_SHOWREADME_TEXT $(SURVEY_TEXT)
+!define MUI_FINISHPAGE_SHOWREADME_FUNCTION un.Survey
+!endif
 
 !insertmacro MUI_UNPAGE_FINISH
 
+; Use the default dialog for IDD_VERIFY for a simple Banner
+ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe"
+
 ################################################################################
 # Install Sections
 ; Empty section required for the installer to compile as an uninstaller
 Section ""
 SectionEnd
 
 ################################################################################
 # Uninstall Sections
@@ -180,53 +202,63 @@ Section "Uninstall"
     ; If the user closed the application it can take several seconds for it to
     ; shut down completely. If the application is being used by another user we
     ; can still delete the files when the system is restarted. 
     Sleep 5000
     ${DeleteFile} "$INSTDIR\${FileMainEXE}"
     ClearErrors
   ${EndIf}
 
-  ; Remove registry entries for non-existent apps and for apps that point to our
-  ; install location in the Software\Mozilla key and uninstall registry entries
-  ; that point to our install location for both HKCU and HKLM.
-  SetShellVarContext current  ; Sets SHCTX to HKCU
+  ${MUI_INSTALLOPTIONS_READ} $0 "unconfirm.ini" "Field 3" "State"
+  ${If} "$0" == "1"
+    ${un.DeleteRelativeProfiles} "Instantbird"
+  ${EndIf}
+
+  SetShellVarContext current  ; Set SHCTX to HKCU
   ${un.RegCleanMain} "Software\Mozilla"
   ${un.RegCleanUninstall}
+  ${un.DeleteShortcuts}
 
-  SetShellVarContext all  ; Sets SHCTX to HKLM
-  ${un.RegCleanMain} "Software\Mozilla"
-  ${un.RegCleanUninstall}
+  ClearErrors
+  WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
+  ${If} ${Errors}
+    StrCpy $TmpVal "HKCU" ; used primarily for logging
+  ${Else}
+    SetShellVarContext all  ; Set SHCTX to HKLM
+    DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
+    StrCpy $TmpVal "HKLM" ; used primarily for logging
+    ${un.RegCleanMain} "Software\Mozilla"
+    ${un.RegCleanUninstall}
+    ${un.DeleteShortcuts}
+  ${EndIf}
+
+  ClearErrors
 
   SetShellVarContext all  ; Set SHCTX to HKLM
   ${un.GetSecondInstallPath} "Software\Mozilla" $R9
   ${If} $R9 == "false"
     SetShellVarContext current  ; Set SHCTX to HKCU
     ${un.GetSecondInstallPath} "Software\Mozilla" $R9
   ${EndIf}
 
-  StrCpy $0 "Software\Clients\IM\${BrandFullNameInternal}\shell\open\command"
+  StrCpy $0 "Software\Clients\IM\${FileMainEXE}\shell\open\command"
   ReadRegStr $R1 HKLM "$0" ""
   ${un.RemoveQuotesFromPath} "$R1" $R1
   ${un.GetParent} "$R1" $R1
 
-  ; Only remove the Clients\IM key if it refers to this 
-  ; install location. The Clients\IM is independent 
-  ; of the default app for the OS settings. The XPInstall base un-installer 
-  ; always removes these keys if it is uninstalling the default app and it 
-  ; will always replace the keys when installing even if there is another 
-  ; install of Thunderbird that is set as the
-  ; default app. Now the keys are always updated on install but are only
-  ; removed if they refer to this install location.
+  ; Only remove the IM key if it refers to this install location.
+  ; The IM registry key is independent of the default IM app
+  ; settings. The XPInstall base un-installer always removes this key if it is
+  ; uninstalling the default browser and it will always replace the keys when
+  ; installing even if there is another install of Instantbird that is set as the
+  ; default IM app. Now the key is always updated on install but it is only
+  ; removed if it refers to this install location.
   ${If} "$INSTDIR" == "$R1"
-    ; XXXrstrong - if there is another installation of the same app ideally we
-    ; would just modify these values. The GetSecondInstallPath macro could be
-    ; made to provide enough information to do this.
-    DeleteRegKey HKLM "Software\Clients\IM\${BrandFullNameInternal}"
-    DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegNameIM}"
+    DeleteRegKey HKLM "Software\Clients\IM\${FileMainEXE}"
+    DeleteRegValue HKLM "Software\RegisteredApplications" "${AppRegName}"
   ${EndIf}
 
   StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
   ${If} $R9 == "false"
     DeleteRegKey HKLM "$0"
     DeleteRegKey HKCU "$0"
   ${Else}
     ReadRegStr $R1 HKLM "$0" ""
@@ -249,32 +281,35 @@ Section "Uninstall"
   ${EndIf}
   ${If} ${FileExists} "$INSTDIR\distribution"
     RmDir /r /REBOOTOK "$INSTDIR\distribution"
   ${EndIf}
   ${If} ${FileExists} "$INSTDIR\removed-files"
     Delete /REBOOTOK "$INSTDIR\removed-files"
   ${EndIf}
 
+  ; Remove the updates directory for Vista and above
+  ${un.CleanUpdatesDir} "Instantbird"
+
+  ; Remove files that may be left behind by the application in the
+  ; VirtualStore directory.
+  ${un.CleanVirtualStore}
+
   ; Parse the uninstall log to unregister dll's and remove all installed
   ; files / directories this install is responsible for.
   ${un.ParseUninstallLog}
 
   ; Remove the uninstall directory that we control
   RmDir /r /REBOOTOK "$INSTDIR\uninstall"
 
   ; Remove the installation directory if it is empty
   ${RemoveDir} "$INSTDIR"
 
-  ; Remove files that may be left behind by the application in the
-  ; VirtualStore directory.
-  ${un.CleanVirtualStore}
-
-  ; If firefox.exe was successfully deleted yet we still need to restart to
-  ; remove other files create a dummy firefox.exe.moz-delete to prevent the
+  ; If instantbird.exe was successfully deleted yet we still need to restart to
+  ; remove other files create a dummy instantbird.exe.moz-delete to prevent the
   ; installer from allowing an install without restart when it is required
   ; to complete an uninstall.
   ${If} ${RebootFlag}
     ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}.moz-delete"
       FileOpen $0 "$INSTDIR\${FileMainEXE}.moz-delete" w
       FileWrite $0 "Will be deleted on restart"
       Delete /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-delete"
       FileClose $0
@@ -285,67 +320,227 @@ Section "Uninstall"
   ; removed and other ugly things will happen like recreation of the app's
   ; clients registry key by the OS under some conditions.
   System::Call "shell32::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)"
 SectionEnd
 
 ################################################################################
 # Helper Functions
 
+; Don't setup the survey controls, functions, etc. when the application has
+; defined NO_UNINSTALL_SURVEY
+!ifndef NO_UNINSTALL_SURVEY
+Function un.Survey
+  Exec "$\"$TmpVal$\" $\"${SurveyURL}$\""
+FunctionEnd
+!endif
 
 ################################################################################
 # Language
 
 !insertmacro MOZ_MUI_LANGUAGE 'baseLocale'
 !verbose push
 !verbose 3
 !include "overrideLocale.nsh"
 !include "customLocale.nsh"
 !verbose pop
 
 ; Set this after the locale files to override it if it is in the locale. Using
 ; " " for BrandingText will hide the "Nullsoft Install System..." branding.
 BrandingText " "
 
 ################################################################################
-# Page pre and leave functions
+# Page pre, show, and leave functions
+
+Function un.preWelcome
+  ${If} ${FileExists} "$INSTDIR\distribution\modern-wizard.bmp"
+    Delete "$PLUGINSDIR\modern-wizard.bmp"
+    CopyFiles /SILENT "$INSTDIR\distribution\modern-wizard.bmp" "$PLUGINSDIR\modern-wizard.bmp"
+  ${EndIf}
+FunctionEnd
+
+Function un.leaveWelcome
+  ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
+    Banner::show /NOUNLOAD "$(BANNER_CHECK_EXISTING)"
+
+    ; If the message window has been found previously give the app an additional
+    ; five seconds to close.
+    ${If} "$TmpVal" == "FoundMessageWindow"
+      Sleep 5000
+    ${EndIf}
+
+    ${PushFilesToCheck}
+
+    ${un.CheckForFilesInUse} $TmpVal
+
+    Banner::destroy
+
+    ; If there are files in use $TmpVal will be "true"
+    ${If} "$TmpVal" == "true"
+      ; If the message window is found the call to ManualCloseAppPrompt will
+      ; abort leaving the value of $TmpVal set to "FoundMessageWindow".
+      StrCpy $TmpVal "FoundMessageWindow"
+      ${un.ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_UNINSTALL)"
+      ; If the message window is not found set $TmpVal to "true" so the restart
+      ; required message is displayed.
+      StrCpy $TmpVal "true"
+    ${EndIf}
+  ${EndIf}
+FunctionEnd
+
+Function un.preConfirm
+  ${If} ${FileExists} "$INSTDIR\distribution\modern-header.bmp"
+  ${AndIf} $hHeaderBitmap == ""
+    Delete "$PLUGINSDIR\modern-header.bmp"
+    CopyFiles /SILENT "$INSTDIR\distribution\modern-header.bmp" "$PLUGINSDIR\modern-header.bmp"
+    ${un.ChangeMUIHeaderImage} "$PLUGINSDIR\modern-header.bmp"
+  ${EndIf}
+
+  ; Setup the unconfirm.ini file for the Custom Uninstall Confirm Page
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Settings" NumFields "5"
+
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Type   "label"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Text   "$(UN_CONFIRM_UNINSTALLED_FROM)"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Left   "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Top    "5"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 1" Bottom "15"
+
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Type   "text"
+  ; The contents of this control must be set as follows in the pre function
+  ; ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 2" "HWND"
+  ; SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" State  ""
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Left   "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Top    "17"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" Bottom "30"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 2" flags  "READONLY"
 
-; Checks if the app being uninstalled is running.
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Type   "checkbox"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Text   "$(UN_REMOVE_PROFILES)"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Left   "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Top    "40"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Bottom "50"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" State  "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" flags  "NOTIFY"
+
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Type   "text"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" State   "$(UN_REMOVE_PROFILES_DESC)"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Left   "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Top    "52"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Bottom "120"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" flags  "MULTILINE|READONLY"
+
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Type   "label"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Text   "$(UN_CONFIRM_CLICK)"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Left   "0"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Right  "-1"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Top    "130"
+  WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 5" Bottom "150"
+
+  ${If} "$TmpVal" == "true"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Type   "label"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Text   "$(SUMMARY_REBOOT_REQUIRED_UNINSTALL)"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Left   "0"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Right  "-1"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Top    "35"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 6" Bottom "45"
+
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Settings" NumFields "6"
+
+    ; To insert this control reset Top / Bottom for controls below this one
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Top    "55"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 3" Bottom "65"
+    WriteINIStr "$PLUGINSDIR\unconfirm.ini" "Field 4" Top    "67"
+  ${EndIf}
+
+  !insertmacro MUI_HEADER_TEXT "$(UN_CONFIRM_PAGE_TITLE)" "$(UN_CONFIRM_PAGE_SUBTITLE)"
+  ; The Summary custom page has a textbox that will automatically receive
+  ; focus. This sets the focus to the Install button instead.
+  !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "unconfirm.ini"
+  GetDlgItem $0 $HWNDPARENT 1
+  ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 4" "HWND"
+  SetCtlColors $1 0x000000 0xFFFFEE
+  ShowWindow $1 ${SW_HIDE}
+  System::Call "user32::SetFocus(i r0, i 0x0007, i,i)i"
+  ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 2" "HWND"
+  SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
+  !insertmacro MUI_INSTALLOPTIONS_SHOW
+FunctionEnd
+
 Function un.leaveConfirm
+  ${MUI_INSTALLOPTIONS_READ} $0 "unconfirm.ini" "Settings" "State"
+  StrCmp $0 "3" +1 continue
+  ${MUI_INSTALLOPTIONS_READ} $0 "unconfirm.ini" "Field 3" "State"
+  ${MUI_INSTALLOPTIONS_READ} $1 "unconfirm.ini" "Field 4" "HWND"
+  StrCmp $0 1 +1 +3
+  ShowWindow $1 ${SW_SHOW}
+  Abort
+
+  ShowWindow $1 ${SW_HIDE}
+  Abort
+
+  continue:
+
   ; Try to delete the app executable and if we can't delete it try to find the
   ; app's message window and prompt the user to close the app. This allows
   ; running an instance that is located in another directory. If for whatever
   ; reason there is no message window we will just rename the app's files and
   ; then remove them on restart if they are in use.
-  StrCpy $TmpVal ""
   ClearErrors
   ${DeleteFile} "$INSTDIR\${FileMainEXE}"
   ${If} ${Errors}
     ${un.ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_UNINSTALL)"
   ${EndIf}
 FunctionEnd
 
+!ifndef NO_UNINSTALL_SURVEY
 Function un.preFinish
   ; Do not modify the finish page if there is a reboot pending
   ${Unless} ${RebootFlag}
-    ; When we add an optional action to the finish page the cancel button
-    ; is enabled. This disables it and leaves the finish button as the
-    ; only choice.
-    !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "cancelenabled" "0"
-!endif
+    ; Don't display the option to take a survey on the finish page if the OS is
+    ; Vista or above since the process will be running elevated.
+    ${If} ${AtLeastWinVista}
+      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "NumFields" "3"
+    ${Else}
+      ; When we add an optional action to the finish page the cancel button
+      ; is enabled. This disables it and leaves the finish button as the
+      ; only choice.
+      !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "cancelenabled" "0"
+    ${EndIf}
   ${EndUnless}
 FunctionEnd
+!endif
 
 ################################################################################
 # Initialization Functions
 
 Function .onInit
   ${UninstallOnInitCommon}
 FunctionEnd
 
 Function un.onInit
-  GetFullPathName $INSTDIR "$INSTDIR\.."
+  ${un.GetParent} "$INSTDIR" $INSTDIR
   ${un.GetLongPath} "$INSTDIR" $INSTDIR
   ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}"
     Abort
   ${EndUnless}
+
   StrCpy $LANGUAGE 0
+  ${un.SetBrandNameVars} "$INSTDIR\distribution\setup.ini"
+
+  ; Initialize $hHeaderBitmap to prevent redundant changing of the bitmap if
+  ; the user clicks the back button
+  StrCpy $hHeaderBitmap ""
+
+  !insertmacro InitInstallOptionsFile "unconfirm.ini"
 FunctionEnd
+
+Function .onGUIEnd
+  ${OnEndCommon}
+FunctionEnd
+
+Function un.onGUIEnd
+  ${un.OnEndCommon}
+FunctionEnd
old mode 100644
new mode 100755
--- a/im/installer/windows/packages-static
+++ b/im/installer/windows/packages-static
@@ -1,77 +1,100 @@
 #filter substitution
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Base Thunderbird Package File for Win32
+; Base Instantbird Package File for Win32
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 [@AB_CD@]
 bin\chrome\@AB_CD@.jar
 bin\chrome\@AB_CD@.manifest
 bin\dictionaries\*
 
 [xpcom]
 bin\xul.dll
 bin\xpcom.dll
 bin\nspr4.dll
 bin\plc4.dll
 bin\plds4.dll
 bin\js3250.dll
+#ifndef MOZ_MEMORY
 bin\Microsoft.VC80.CRT.manifest
 bin\msvcm80.dll
 bin\msvcp80.dll
 bin\msvcr80.dll
+#else
+bin\mozcrt19.dll
+#endif
 
 ; Modules
 bin\modules\*
 
+; Search engines
+bin\searchplugins\*.xml
+
 [instantbird]
 
 bin\instantbird.exe
 bin\application.ini
 bin\platform.ini
 bin\LICENSE.txt
 bin\license.html
-bin\README.txt
 bin\sqlite3.dll
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; App Specific Files
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 bin\defaults\profile\localstore.rdf
 bin\defaults\profile\prefs.js
 bin\defaults\profile\mimeTypes.rdf
 
+bin\components\components.list
 bin\components\xpcom_base.xpt
 bin\components\xpcom_system.xpt
 bin\components\xpcom_components.xpt
 bin\components\xpcom_ds.xpt
 bin\components\xpcom_io.xpt
 bin\components\xpcom_thread.xpt
 bin\components\xpcom_xpti.xpt
 bin\chrome\toolkit.jar
 bin\chrome\toolkit.manifest
 bin\chrome\comm.jar
 bin\chrome\comm.manifest
 bin\chrome\pippki.jar
 bin\chrome\pippki.manifest
 bin\chrome\instantbird.jar
 bin\chrome\instantbird.manifest
+bin\chrome\icons\default\blistWindow.ico
+bin\chrome\icons\default\convWindow.ico
+bin\chrome\icons\default\default.ico
 bin\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd}\install.rdf
 
-bin\components\purpleloader.dll
-bin\libraries\xml2.dll
-bin\libraries\glib.dll
-bin\libraries\purple.dll
-bin\libraries\purplexpcom.dll
-bin\libraries\prpl\*.dll
+; [libpurple]
+bin\xml2.dll
+bin\glib.dll
+bin\purple.dll
+bin\components\purplexpcom.dll
+bin\components\purplexpcom.xpt
+bin\components\gg.dll
+bin\components\irc.dll
+bin\components\jabber.dll
+bin\components\msn.dll
+bin\components\myspace.dll
+bin\components\netsoul.dll
+bin\components\novell.dll
+bin\components\oscar.dll
+bin\components\qq.dll
+bin\components\simple.dll
+bin\components\yahoo.dll
 
 bin\components\profileMigrator.js
 bin\components\autoLoginHandler.js
+bin\components\gtalkOverrideProtocol.js
+bin\components\smileProtocolHandler.js
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Chrome Files
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 bin\chrome\classic.jar
 bin\chrome\classic.manifest
 
@@ -82,16 +105,24 @@ bin\chrome\classic.manifest
 ; default pref files
 bin\defaults\pref\*
 bin\greprefs\*
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; App extensions
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+; login manager
+bin\components\loginmgr.xpt
+bin\components\nsLoginInfo.js
+bin\components\nsLoginManager.js
+bin\components\nsLoginManagerPrompter.js
+bin\components\storage-Legacy.js
+bin\components\storage-mozStorage.js
+
 ; download progress
 bin\components\nsHelperAppDlg.js
 bin\components\nsDownloadManagerUI.js
 bin\components\nsProgressDialog.js
 bin\components\downloads.xpt
 
 ; Protocol/Content handling
 bin\components\nsContentDispatchChooser.js
@@ -167,16 +198,21 @@ bin\components\pref.xpt
 ; profile
 bin\components\profile.xpt
 bin\components\toolkitprofile.xpt
 
 ; toolkit
 bin\components\appstartup.xpt
 bin\components\commandlines.xpt
 bin\components\chrome.xpt
+bin\components\nsDefaultCLH.js
+bin\components\nsFormAutoComplete.js
+bin\components\toolkitsearch.xpt
+bin\components\nsSearchService.js
+bin\components\nsSearchSuggestions.js
 
 ; rdf
 bin\components\rdf.xpt
 
 ; required i18n libraries
 bin\components\intl.xpt
 bin\components\locale.xpt
 bin\components\uconv.xpt
@@ -195,16 +231,18 @@ bin\components\dom_offline.xpt
 bin\components\dom_range.xpt
 bin\components\dom_storage.xpt
 bin\components\dom_stylesheets.xpt
 bin\components\dom_traversal.xpt
 bin\components\dom_views.xpt
 bin\components\dom_xbl.xpt
 bin\components\dom_xul.xpt
 bin\components\dom_loadsave.xpt
+bin\components\NetworkGeolocationProvider.js
+bin\components\GPSDGeolocationProvider.js
 
 ; editor / composer for HTML compose
 bin\components\editor.xpt
 bin\components\composer.xpt
 bin\components\txmgr.xpt
 
 ; find functionality
 ; Optional - only if your code uses nsIWebBrowserFind
@@ -224,25 +262,29 @@ bin\components\necko_cache.xpt
 bin\components\necko_cookie.xpt
 bin\components\necko_socket.xpt
 bin\components\nsProxyAutoConfig.js
 
 ; extensions
 bin\components\nsAddonRepository.js
 bin\components\nsExtensionManager.js
 bin\components\nsBlocklistService.js
+#ifdef MOZ_UPDATER
 bin\components\nsUpdateService.js
-bin\components\nsPostUpdateWin.js
+bin\components\nsUpdateServiceStub.js
+#endif
+bin\components\nsUpdateTimerManager.js
 bin\components\extensions.xpt
 bin\components\update.xpt
 #ifdef MOZ_WEBSERVICES
 bin\components\websrvcs.xpt
 #endif
 bin\components\nsURLFormatter.js
 bin\components\urlformatter.xpt
+bin\components\nsContentPrefService.js
 
 ; plugins
 bin\components\plugin.xpt
 
 ; psm2
 ; Optional - only if you need HTTPS support
 bin\components\pipboot.xpt
 bin\components\pipnss.xpt
@@ -251,19 +293,21 @@ bin\nss3.dll
 bin\nssutil3.dll
 bin\smime3.dll
 bin\softokn3.chk
 bin\softokn3.dll
 bin\freebl3.chk
 bin\freebl3.dll
 bin\ssl3.dll
 bin\nssckbi.dll
+bin\nssdbm3.chk
 bin\nssdbm3.dll
 
 ; core platform files
+bin\components\FeedProcessor.js
 bin\components\autocomplete.xpt
 bin\components\alerts.xpt
 bin\components\jsdservice.xpt
 bin\components\fastfind.xpt
 bin\components\find.xpt
 bin\components\chardet.xpt
 bin\components\jsconsole-clhandler.js
 bin\components\layout_xul_tree.xpt
@@ -279,36 +323,36 @@ bin\components\dom_xpath.xpt
 bin\AccessibleMarshal.dll
 bin\components\lwbrk.xpt
 bin\components\nsTryToClose.js
 bin\components\pluginGlue.js
 bin\components\txEXSLTRegExFunctions.js
 bin\components\feeds.xpt
 bin\components\saxparser.xpt
 bin\components\zipwriter.xpt
+bin\components\nsBadCertHandler.js
 
 bin\res\hiddenWindow.html
 bin\res\ua.css
 bin\res\html.css
 bin\res\quirk.css
 bin\res\forms.css
-bin\res\mathml.css
 bin\res\viewsource.css
 bin\res\contenteditable.css
 bin\res\designmode.css
 bin\res\charsetData.properties
 bin\res\charsetalias.properties
 bin\res\langGroups.properties
 bin\res\language.properties
 bin\res\wincharset.properties
 bin\res\entityTables\*
 bin\res\dtd\xhtml11.dtd
-bin\res\dtd\mathml.dtd
 bin\res\fonts\*
-bin\res\broken-image.gif
+bin\res\broken-image.png
+bin\res\loading-image.png
 bin\res\html\folder.png
 
 ; editor resource files
 bin\res\EditorOverride.css
 bin\res\grabber.gif
 bin\res\table-add-column-after-active.gif
 bin\res\table-add-column-after-hover.gif
 bin\res\table-add-column-after.gif
@@ -323,20 +367,23 @@ bin\res\table-add-row-before-hover.gif
 bin\res\table-add-row-before.gif
 bin\res\table-remove-column-active.gif
 bin\res\table-remove-column-hover.gif
 bin\res\table-remove-column.gif
 bin\res\table-remove-row-active.gif
 bin\res\table-remove-row-hover.gif
 bin\res\table-remove-row.gif
 
-#ifdef MOZ_SVG
 ; svg
 bin\res\svg.css
 bin\components\dom_svg.xpt
-#endif
 
 ; [Updater]
 bin\updater.exe
+bin\update.locale
+bin\updater.ini
+
+; [Uninstall]
+bin\uninstall\helper.exe
 
 ; [crash reporter]
 bin\crashreporter.exe
 bin\crashreporter.ini
deleted file mode 100755
index a1cf81ace07ed39cec340022d9635ca19ced1dbb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100755
index 7561cbc2afdfa87bb168f9e07ec37cf058d195b5..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100755
index 6c59cd1f281289ae04f7ef2f8413aa9ffb5f3218..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100755
--- /dev/null
+++ b/im/locales/en-US/installer/custom.properties
@@ -0,0 +1,115 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is the Mozilla Installer code.
+#
+# The Initial Developer of the Original Code is Mozilla Foundation
+# Portions created by the Initial Developer are Copyright (C) 2006
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#  Robert Strong <robert.bugzilla@gmail.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+REG_APP_DESC=$BrandShortName is an easy to use instant messaging application. It connects to all the famous IM networks.
+CONTEXT_OPTIONS=$BrandShortName &Options
+CONTEXT_SAFE_MODE=$BrandShortName &Safe Mode
+SAFE_MODE=Safe Mode
+OPTIONS_PAGE_TITLE=Setup Type
+OPTIONS_PAGE_SUBTITLE=Choose setup options
+OPTIONS_MAKE_DEFAULT=&Use $BrandShortName as my default instant messaging client
+SHORTCUTS_PAGE_TITLE=Set Up Shortcuts
+SHORTCUTS_PAGE_SUBTITLE=Create Program Icons
+SUMMARY_PAGE_TITLE=Summary
+SUMMARY_PAGE_SUBTITLE=Ready to start installing $BrandShortName
+SUMMARY_INSTALLED_TO=$BrandShortName will be installed to the following location:
+SUMMARY_REBOOT_REQUIRED_INSTALL=A restart of your computer may be required to complete the installation.
+SUMMARY_REBOOT_REQUIRED_UNINSTALL=A restart of your computer may be required to complete the uninstall.
+SUMMARY_TAKE_DEFAULTS=U&se $BrandShortName as my default instant messaging client
+SUMMARY_INSTALL_CLICK=Click Install to continue.
+SUMMARY_UPGRADE_CLICK=Click Upgrade to continue.
+SURVEY_TEXT=&Tell us what you thought of $BrandShortName
+LAUNCH_TEXT=&Launch $BrandShortName now
+CREATE_ICONS_DESC=Create icons for $BrandShortName:
+ICONS_DESKTOP=On my &Desktop
+ICONS_STARTMENU=In my &Start Menu Programs folder
+ICONS_QUICKLAUNCH=In my &Quick Launch bar
+WARN_MANUALLY_CLOSE_APP_INSTALL=$BrandShortName must be closed to proceed with the installation.\n\nPlease close $BrandShortName to continue.
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName must be closed to proceed with the uninstall.\n\nPlease close $BrandShortName to continue.
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName is already running.\n\nPlease close $BrandShortName prior to launching the version you have just installed.
+WARN_WRITE_ACCESS=You don't have access to write to the installation directory.\n\nClick OK to select a different directory.
+WARN_DISK_SPACE=You don't have sufficient disk space to install to this location.\n\nClick OK to select a different location.
+WARN_MIN_SUPPORTED_OS_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
+WARN_RESTART_REQUIRED_UNINSTALL=Your computer must be restarted to complete a previous uninstall of $BrandShortName. Do you want to reboot now?
+WARN_RESTART_REQUIRED_UPGRADE=Your computer must be restarted to complete a previous upgrade of $BrandShortName. Do you want to reboot now?
+ERROR_CREATE_DIRECTORY_PREFIX=Error creating directory:
+ERROR_CREATE_DIRECTORY_SUFFIX=Click Cancel to stop the installation or\nRetry to try again.
+
+UN_CONFIRM_PAGE_TITLE=Uninstall $BrandFullName
+UN_CONFIRM_PAGE_SUBTITLE=Remove $BrandFullName from your computer.
+UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName will be uninstalled from the following location:
+UN_CONFIRM_CLICK=Click Uninstall to continue.
+UN_REMOVE_PROFILES=&Remove my $BrandShortName personal data and customizations
+UN_REMOVE_PROFILES_DESC=This will permanently remove your bookmarks, saved passwords, cookies and customizations. You may wish to keep this information if you plan on installing another version of $BrandShortName in the future.
+
+BANNER_CHECK_EXISTING=Checking existing installation…
+
+STATUS_INSTALL_APP=Installing $BrandShortName…
+STATUS_INSTALL_LANG=Installing Language Files (${AB_CD})…
+STATUS_UNINSTALL_MAIN=Uninstalling $BrandShortName…
+STATUS_CLEANUP=A Little Housekeeping…
+
+# _DESC strings support approximately 65 characters per line.
+# One line
+OPTIONS_SUMMARY=Choose the type of setup you prefer, then click Next.
+# One line
+OPTION_STANDARD_DESC=$BrandShortName will be installed with the most common options.
+OPTION_STANDARD_RADIO=&Standard
+# Two lines
+OPTION_CUSTOM_DESC=You may choose individual options to be installed. Recommended for experienced users.
+OPTION_CUSTOM_RADIO=&Custom
+
+# LOCALIZATION NOTE:
+# The following text replaces the Install button text on the summary page.
+# Verify that the access key for InstallBtn (in override.properties) and
+# UPGRADE_BUTTON is not already used by SUMMARY_TAKE_DEFAULTS.
+UPGRADE_BUTTON=&Upgrade
new file mode 100755
--- /dev/null
+++ b/im/locales/en-US/installer/mui.properties
@@ -0,0 +1,93 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is the Mozilla Installer code.
+#
+# The Initial Developer of the Original Code is Mozilla Foundation
+# Portions created by the Initial Developer are Copyright (C) 2006
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#  Robert Strong <robert.bugzilla@gmail.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# To make the l10n tinderboxen see changes to this file you can change a value
+# name by adding - to the end of the name followed by chars (e.g. Branding-2).
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+MUI_TEXT_WELCOME_INFO_TITLE=Welcome to the $BrandFullNameDA Setup Wizard
+MUI_TEXT_WELCOME_INFO_TEXT=This wizard will guide you through the installation of $BrandFullNameDA.\n\n$_CLICK
+MUI_TEXT_COMPONENTS_TITLE=Choose Components
+MUI_TEXT_COMPONENTS_SUBTITLE=Choose which features of $BrandFullNameDA you want to install.
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=Description
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=Position your mouse over a component to see its description.
+MUI_TEXT_DIRECTORY_TITLE=Choose Install Location
+MUI_TEXT_DIRECTORY_SUBTITLE=Choose the folder in which to install $BrandFullNameDA.
+MUI_TEXT_INSTALLING_TITLE=Installing
+MUI_TEXT_INSTALLING_SUBTITLE=Please wait while $BrandFullNameDA is being installed.
+MUI_TEXT_FINISH_TITLE=Installation Complete
+MUI_TEXT_FINISH_SUBTITLE=Setup was completed successfully.
+MUI_TEXT_ABORT_TITLE=Installation Aborted
+MUI_TEXT_ABORT_SUBTITLE=Setup was not completed successfully.
+MUI_BUTTONTEXT_FINISH=&Finish
+MUI_TEXT_FINISH_INFO_TITLE=Completing the $BrandFullNameDA Setup Wizard
+MUI_TEXT_FINISH_INFO_TEXT=$BrandFullNameDA has been installed on your computer.\n\nClick Finish to close this wizard.
+MUI_TEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the installation of $BrandFullNameDA. Do you want to reboot now?
+MUI_TEXT_FINISH_REBOOTNOW=Reboot now
+MUI_TEXT_FINISH_REBOOTLATER=I want to manually reboot later
+MUI_TEXT_STARTMENU_TITLE=Choose Start Menu Folder
+MUI_TEXT_STARTMENU_SUBTITLE=Choose a Start Menu folder for the $BrandFullNameDA shortcuts.
+MUI_INNERTEXT_STARTMENU_TOP=Select the Start Menu folder in which you would like to create the program's shortcuts. You can also enter a name to create a new folder.
+MUI_TEXT_ABORTWARNING=Are you sure you want to quit $BrandFullName Setup?
+MUI_UNTEXT_WELCOME_INFO_TITLE=Welcome to the $BrandFullNameDA Uninstall Wizard
+MUI_UNTEXT_WELCOME_INFO_TEXT=This wizard will guide you through the uninstallation of $BrandFullNameDA.\n\nBefore starting the uninstallation, make sure $BrandFullNameDA is not running.\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=Uninstall $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=Remove $BrandFullNameDA from your computer.
+MUI_UNTEXT_UNINSTALLING_TITLE=Uninstalling
+MUI_UNTEXT_UNINSTALLING_SUBTITLE=Please wait while $BrandFullNameDA is being uninstalled.
+MUI_UNTEXT_FINISH_TITLE=Uninstallation Complete
+MUI_UNTEXT_FINISH_SUBTITLE=Uninstall was completed successfully.
+MUI_UNTEXT_ABORT_TITLE=Uninstallation Aborted
+MUI_UNTEXT_ABORT_SUBTITLE=Uninstall was not completed successfully.
+MUI_UNTEXT_FINISH_INFO_TITLE=Completing the $BrandFullNameDA Uninstall Wizard
+MUI_UNTEXT_FINISH_INFO_TEXT=$BrandFullNameDA has been uninstalled from your computer.\n\nClick Finish to close this wizard.
+MUI_UNTEXT_FINISH_INFO_REBOOT=Your computer must be restarted in order to complete the uninstallation of $BrandFullNameDA. Do you want to reboot now?
+MUI_UNTEXT_ABORTWARNING=Are you sure you want to quit $BrandFullName Uninstall?
new file mode 100755
--- /dev/null
+++ b/im/locales/en-US/installer/override.properties
@@ -0,0 +1,118 @@
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is the Mozilla Installer code.
+#
+# The Initial Developer of the Original Code is Mozilla Foundation
+# Portions created by the Initial Developer are Copyright (C) 2006
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#  Robert Strong <robert.bugzilla@gmail.com>
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+# Strings that require a space at the end should be enclosed with double
+# quotes and the double quotes will be removed. To add quotes to the beginning
+# and end of a string enclose the string with an additional double quote at the
+# beginning and the end of the string (e.g. ""This will include quotes"").
+
+SetupCaption=$BrandFullName Setup
+UninstallCaption=$BrandFullName Uninstall
+BackBtn=< &Back
+NextBtn=&Next >
+AcceptBtn=I &accept the terms in the License Agreement
+DontAcceptBtn=I &do not accept the terms in the License Agreement
+InstallBtn=&Install
+UninstallBtn=&Uninstall
+CancelBtn=Cancel
+CloseBtn=&Close
+BrowseBtn=B&rowse…
+ShowDetailsBtn=Show &details
+ClickNext=Click Next to continue.
+ClickInstall=Click Install to start the installation.
+ClickUninstall=Click Uninstall to start the uninstallation.
+Completed=Completed
+LicenseTextRB=Please review the license agreement before installing $BrandFullNameDA. If you accept all terms of the agreement, select the first option below. $_CLICK
+ComponentsText=Check the components you want to install and uncheck the components you don't want to install. $_CLICK
+ComponentsSubText2_NoInstTypes=Select components to install:
+DirText=Setup will install $BrandFullNameDA in the following folder. To install in a different folder, click Browse and select another folder. $_CLICK
+DirSubText=Destination Folder
+DirBrowseText=Select the folder to install $BrandFullNameDA in:
+SpaceAvailable="Space available: "
+SpaceRequired="Space required: "
+UninstallingText=$BrandFullNameDA will be uninstalled from the following folder. $_CLICK
+UninstallingSubText=Uninstalling from:
+FileError=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Abort to stop the installation,\r\nRetry to try again, or\r\nIgnore to skip this file.
+FileError_NoIgnore=Error opening file for writing: \r\n\r\n$0\r\n\r\nClick Retry to try again, or\r\nCancel to stop the installation.
+CantWrite="Can't write: "
+CopyFailed=Copy failed
+CopyTo="Copy to "
+Registering="Registering: "
+Unregistering="Unregistering: "
+SymbolNotFound="Could not find symbol: "
+CouldNotLoad="Could not load: "
+CreateFolder="Create folder: "
+CreateShortcut="Create shortcut: "
+CreatedUninstaller="Created uninstaller: "
+Delete="Delete file: "
+DeleteOnReboot="Delete on reboot: "
+ErrorCreatingShortcut="Error creating shortcut: "
+ErrorCreating="Error creating: "
+ErrorDecompressing=Error decompressing data! Corrupted installer?
+ErrorRegistering=Error registering DLL
+ExecShell="ExecShell: "
+Exec="Execute: "
+Extract="Extract: "
+ErrorWriting="Extract: error writing to file "
+InvalidOpcode=Installer corrupted: invalid opcode
+NoOLE="No OLE for: "
+OutputFolder="Output folder: "
+RemoveFolder="Remove folder: "
+RenameOnReboot="Rename on reboot: "
+Rename="Rename: "
+Skipped="Skipped: "
+CopyDetails=Copy Details To Clipboard
+LogInstall=Log install process
+Byte=B
+Kilo=K
+Mega=M
+Giga=G
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..deabf36ca0c4cd05fd65d32090cd8411e3c211be
GIT binary patch
literal 122368
zc%1Bge|!|h+4x>=lPqN64mc%Bl&Gf$gBqJ?6AvLFxl0u8xDb*HLK3QgG^I9%yMQ%0
zg2zEN!y>l+z}EVsYHM5D(iUm7h!;XR5DF1cLqUy-I_E__OA0|F`+c6-y<Y*_zWu!K
zf8Ty8*_)kto@btU=9%YtX69M@?VC6~$8kLTrzjlP#i{=*=KlTv`r*H^lV2XoZ5{Qu
z%er*4|908DW#3(q-PHVpyPCiA{p>rxbNAgpaA)7KB)i#jclLMh&Muo%mHqu6EM9Wm
zm@%Wx8jMKAq@Jx)Je#8bg)+RG{tSP=edB$bwzJ=>H@(XK-m_^NtK;634S!c&mBY%z
zP`?xYuDE{1rWfJw-0$AG4B<p+bXqxXwvOkP-u8Z3oNj|ILzl*J*XTHIi&{2gGCUix
z<2tqX_?)8hh2!FXqlLfSo`O#tt7uI88~dZ;YSM8V@L`jVdu#cBz|{Zre?aF}-8a9!
z&b?%n8~*N`qV)^=$|u*!=D0=IH81{-`#T)>evt~3yBQlN11^UDU#C{%o*fPUw8MJ=
z{w_PGUf{as70q|TGwUn#nY$bQHk}Laf7aRm|G)pM|J9H$WCu^Lfyey4vTc>*a7z`u
zR3S(eVzAhV5)<TTNeQ>xwoKPCmh7(I$zvmW3AP9XZHrL2B-=d6Rx8;S25rs=REBCj
zHKe;y$lrT=44mXN203A73D?L=PILXs96U-DnNmfTRFNGlHVu{F@2OHno>WmFH5E$E
z9I0uxR8cHdlt~p8l5<*pPuGOYOE~Hhb=;bPK|owZj@GzjdoR6aJP>N_T@Em1>y~`Q
zDYXqtZ7(Pnh{YwG;t^!~3%jkuI_i3h<A^6yYKstCo+W75_$ELhZKlRdI_^o1^9Sa;
z$NCoW(CLK$ibTRG`KSD+BoB3`k+d4c$;;Lk8Z#xEK&+x<GZL#&vYAM_&MJ~QJYYx}
zXE)N|6Dp($2+0Q=3UaftvsNL@`<4hCu?qfxWE}vQf>WvFm6bfP3(#7xe7lBz@frtx
z7=T_m>4yfO&N_gA{Q<4I;6H_3(FhV0YlK)ci9O;A3YLmI!-g9aMIn)Vh1djH2Boe@
z))VyZvx*|iPWT0FdHO!UmHnLhGu2r`Ps6-!w{Y&saw+dr-#BTy$Z@CoE)JXxbXYSC
zYxjV{lV`1>Py7OiDs{^%-1&+n=oVC}r0MPVE#urJ%L2ery6a~gHy=7|2?ByN_b9T5
z{$UBn0XqXuasZJ^rOWBwHxSZt0Fvqp@c2?HZ6dRp<cE=fxkRTJi`q`WU>P=k8<6Lp
zQhQ2@MZ$NG3X`u;M~V#odqBVVR`EK6|1NlvJc8sgE-P#=;aq@7pw0%4TN`j+w`>&%
zExksij9PZX%TbK7*U~l0WHt%{y#eT2R)GNM1hw&vjV2m-9H@=V2Vr0%FxqV(2k7cC
zAb4qcFuW)#HL~5vAbfrV$z8UL!8lmYVB~_3y#O#QyXU)2QWGyV8KovcYBB}6Y_&b3
zfc^>E7I}>Bn;RF=*2fd5&2VP`wKsb>O)zVs^sa#xipMBBYH7<6l~00Yw_&Xvm<DpD
zN*T)3tW{2EFqTdk8<i`l7nLhEei<-X$gJh`m&>pQb|yVu1Hj_Yg&yP>o0rvUJT}mQ
zI*rExP#JXhPZ`xlMzxXg_@;~`9vkT24kH3arpU-NM#(g4WKN*>kBJgt_y#g3Gcp-f
z@fvJOL@d@5h7J3^2DxYAEYISd^f{nnw_XR6V^$MLmy>7WMWr^Q)HYz)_%fJ6Qk%e}
zY{0i9!l9%Ubim{!Fv|;xZ!KyIUPm~&Ix=@zQw6990ZBC};{YQ}(Ht_z<U6An))zsa
z{Cit6$?8mEtaLe*xgr_zD+d3{6r>pHBF!<zrunP_Pg?j!Ubb(Nto!L|;Nz>As5RO)
zL808L&ee<PQg|V~f<G0{ey9wE7t_VhfGSrj(b{KFqh<O}wM-)A6~u0o`910@C$&KT
z6|2$V`Ovpy59e#!&l%R;rbCrT$(*eGL;k&njqhV0%d?B}3~OPCxS76yV0pbY5_%2G
z?W#l^fHBoog7#q}nAnq;k`d|BpM$=TH6^2?yTD{<UowpP*{NJ0fL;crOb0V!iaTf>
zhVkaYGh;Bu(aV!zw4WEomLwRk5^%UAoPHX#f_+%Q=VS2Pr7PyzLl?pjlbvC`Z;#>+
zw1U>oCS~0`nNtzIip<GF4tNcuyr3x0-2y%5q346Fs$s)a<dfYb^WDI8Cyk6kR_?J8
z>mJYu7VCb){V$!xLFqu*@(d`R$B7OVbi&xpdm2f@Axotd@NBbqPDq{s!-h@}(|jd#
zvyKt>V6t$;*l_`!@N^P8?nyr%JDwh$$c_tv9j{{7!&M-52sgfx#2`<kFFln6dE$8?
zmnT8a)EK?-sW_vX;h6+OTXYC5*6)Q+#ry4Kh%~&DXh|~OC(|^%fQ_cb*K~U?Ak4y*
zB|8Bd56@kxIIJ@ep?@*Xa|X;QTc33je+5pHJo-I&%hZMls|~R~D|KuKP%!sBGh(D%
zLbpAcM2abal)ALUj$ewl&#BOh@CT>nGMse>(Ngl`qj4r$9DQmzK$=W<KZ*5=+WNc~
z5$kdF1>v^<VZTXdLeSUxvEs=l)-1XDdCB@bEUt|@*IWQX1efxn8~dYFidsW9hIG`E
z32e-!Up|pUdu?i*_NP-5X}?Sxw4+bN+4u@PlikEV*igS<v4nGw+q*N1Bi;FXW7Zp)
zZH6bX;M@R5vjP3k?o^ps(7DrV=$VH>=d1Q%H5nk)VvWmpIp@1q;94#wpi@)GJtA@M
z<}GKNC+D6mmQpMwLUTyAipv7Gm2l3WRYWg={xn60DqkvWsIS{80vfkjP#iq5@g9@^
zlzS{Jxkz9Ql@MQk0P&F$V_c?tx^mG*%m+A?K&0e}1k?Jl?>4@d{SgB2$G24EWQUR7
z0<e6@C`Tb}2Fu0wi^5Boo*QicMH4;+(;inFZ%`Yz&Sd6olubR1NdjY&3GCP&=zF7)
ztqh7sr2o|EINvVOAMlI@O-c61PCk4oykDffe<Sw(679Wk`sk#+&MRIc)kbMF5nw^g
z4}?>@Qb5R&A2<xkts*HAJ!AZP-RVTv2+LS@en1-%6PGX~OCO32NmnT{<x-u>6c^*l
zxgArsVec6~cHk3TEW^*M8F%J#n!o_p#;Po8h_j(<0m9$G#h8vjXj3=Tvzf4&KTscA
z?CgW_b}O*mx)JRPU&VIfzi1aCAnJ@Oz!cwiL@roj{0fSCNEtAwm?y<N<H)(v^IL+_
zGwa7O>46dR4Tx1WF488FgLE%WkU37;1vU(+6JXx1$ns{9(rm>Y;fWZL`ADTa$3*u#
zaO$qeYCVx3C@K}e)|ITo-bPX?68kV34S+UHvJX`{0qBzsl@S9*GEDNocX;l(=j00K
zbJWe_;yVP3_2p>M?4#&6`vYxbp$@t&71QW?JuWnY!}E?}9Yz|h!<JH^^%0~j&wHUS
zm_ten$U&uG3tgyZH08B^3Nv}{PJxNU=RbiCIZX6p_BV&V%l=NIZ^7UC9#WZ=AMhWl
z@m@%7&Gx}cc!LFa=FTYgbqkiAtr1xKG$vKm5Rbr^WD_jqf;;_NfzU&!36J>$-fS{Q
zBt6~zdi|bC;t=6qx|(Aq;n7k{z0lfEY+07_EYChx`%+ew?9tn@^>eZ-owQ1=`&+1+
z)%t$^v7-7~sZQ`-LCO~r$3lINexI|Fc2u!S9l#7<j}a{oTW#yx=*N}k8T@ynZnTwI
z%F7H71)%$N(0vpJm@xt|TE=<CfJ|6Qcu#7ht`;p(c;D55(kGnd5~WXeIO%U5Q-xjA
zHXwNkqW(v0bolF7BVZ;dR*VMG6^}6<GaY=_W10>I-Y<y5b3Qf#UTFGbsvmCSwWXHa
z1hT5Rci{6<#CK;LUoed;MGeLSXn}73OH_m9&@F#K^c4*Kv+Q{px{h=+K5yI%vW8A3
zt$>*VBm~nUBa~U_`@@Rz%_{f8O|ePSm3;*ebznHo1O^`XfYC(yDPV{qzi1erRiehg
zbGt^Y4xUwoBG7-T6vZj2A`8s|Ovx{*SZqS};w-vyGjz2Fo~mdyTG6{<m{I+As~)=%
zxYC33_zU{gqwu=bY$OL<)Km%W>rF7XK7>-a9G;w1abjT(6!x;h94x%|E-ah|g@1uU
zUl5*Lbn#trOgNqPB53gc9U_@$79`Ue^s_5;l0#s8DL}q#`zm3uaN%WIZRw*iA(-{(
zNTIq7+j&_#7dg|&)B87S-X;@D7>5bCLV#|N(%hp}R|$PU1Xu&S`HsRk7+1-RF$oKJ
zu-Is1(HsoWFg6{fUq6EWw?OU_yZd?lknA=aK`}iCMGf`Xr&+>+okp&!9%+03%Q$Tx
z$^RqT{(AO2wCNI-Y~<@ss1#edUXWue*Ey@&rue(ACZw$5%LHy?tcr1a=;0W*-+p)m
zw?{HY4RcLJ`Khd`Cd)x^jzU*KA(smJ-A<YceDa_2=K2<!GdT&kL_8wsa=qJ}1NwX)
z@{Il(==YVGGmXk@v(fWTLp|xKTQDDp^es2@eCWh!c+H+31+Pkdx_(G46GFRBN1yK1
z-U^{{@V09hJ9yU_j$1R33HDJHsKz=|jZ3N<Har~Yuy%o~YUz=dL?mlwG@9gVGcqGk
zs_U2PP8c4tPHb<R$brKKLsZ-fes)ov(Q`30#EEF>F|2I`<5nGr&^>8r9qy;cpff@1
z{&~QWeDp<9B<q01YBcyFz$pahNh5ZV@N2-bldP0HU_{TQV2$sr;wh+c%JOjlKz9N(
z@b~vKrDGD%LOpSoS*R)W)`wUGqB#E;fDS)HtVb+8V4mCiNZFcUOB3&&=d*7D>vXf^
zd5GQ#X0lYbMXK8>TQ>nfCo_R}rX#VN8MrThj81DU5x3C4rK10PgzO>KKApXvlywb{
zt3Cm?ndCG>5wRa3tsTS2jrL*G?O9vMN?1*3ZjU8mSdS()EFeyKjzH7VIuD;vJSTu#
zil?73No>@~GLI&I;1h7#kUMEo-7cwa4~A*1M+|Z*5@7F>t9Q*M)7F41Em^mda<gO&
z02n9QbVd@foODl9;V}9~F$aS&TxD1~{q~PJ?O8`BVfUgV7AgWA+gL~!b>c+WBiT<_
z_F*K)J&IlfOeTFW_m26GNp%A%ZAOp`eU;+m)j-K8xyeY<eM4Y>l5(DG9AGhxHHxPT
z`mA^|E1iun>Gsig87%)Xw@VGdq$T=|F~XgxBM2W&y+4W*e#ehugvXncp3p>?a=sag
z`{EdE!`iL-m>m8JA6LT?RMGu$N~4kRg&4&AfuzP&$E$Hw0p@HO;Ei`!jP|sVBm1B$
z7&D{0yMSBS^jqgPE=X!@iZ+(5yI?hFL<610G2Z+$5VNii+4RUR4kK+QC?5kvf%GdL
zBbYKMBC7==rsy}~))SeR!cTYvjU&<`>LWFCD_xq*SVHK*`OfM*ONo7;F@;_=8dWK=
znpjLR!?5-xW&p+`Zb-wZ#DZ@gi(UHISYVVdgc0&JXVLdJ_#b6v%s``#ZXK0`(LL+G
z#8#7p%@A7m9};d@o1=>j^d&mftnO7n4ifWUlCm!)krX3purm+Dh4AeM5`@sO_I@sk
zKKw&q35^IGEB}ecq7?cdihhI<bjn?atorZh%1?<CaXcmJl4nu{R6E%n8jnE>yNO2N
zr)+0%=?V7CK+?V;1}80ql!0lLfzh#hR1!Z+N1|a?xNEvzn^Mg603asr&m;hQGyxdF
z=QwGbb#c;45=dK&q*+gd@9oOI2B0EHB+;G#wIl)RjjZ~1#Y%NBYpj8BR#3Y%|5)fB
zUnZfOl7Q}zE{^V>r%{K7GrBe+wyv>UdV8X!08WeveGg`Mkn%Ecl+*GLHPr9zk((6%
zsa6A;7eyx(jOArI?)^fx4oAZY!z`RI`yVipb1De`1)28+AO7n%8@EONgm{9G7*CjB
zhBf$uFTluv!Docn1*t6}mGkmSAwM7)BpWZ;1j!}_ZMY6{!L)@SiBfsC?~DRYp;T^m
zk8jigrdPmpVGqAmoeC06u!#f?T&~a!P^HU;81F%hQE#1D_}*1g+dwcKO&oHNv2_9(
zVh0&lhc=*H>Q2_QzTLd!832zaYM39|5VML3PL8n3&M}KvUpVXwv(OGQ3?gv|onZNP
zn1p1@w-$-s9!appa6U3yY<V1O<%W@#@7>sLt=6tFhe|$eS&QTcEU>5!yFtkcbh8$J
zZ~_qbV6wZQI;fRZ<S1ArE{ryT-FDEj$D5iPl&s(}i{Nx#TSHEFe*~6{fIhmI=ie*Y
zhuvf8Iu^AZriF+X7^c_-&)fC5I)e58IFQ>AbEPwt1RGWG#cfm<I2$7Qf~12pBc;Kz
z3L+tw3r;#g4W>)BY_tGuX7nVGS?$>A2R>Ij4Kn13j1(g1xGG2VI)ZDC0R0}PiOufB
zo->10L^;8Z+XQ{kN#_yfmn&W{%tdmblh-?G5%jav@^0&=NJAaEGhIJNDn=m{RoEVE
zF>vI(qEydIlflH4>dlQf&2_;vHxlys8V<}4SVE;*-d7<gQmq)|7ME&USL7hjPfxw1
zk(dxm?D^(d*Rv*J)`>|j!8bM86mQb?XY4@5XEB*0HnT6;)M!zoNHKppN%k;MX%(O;
z*a~bnSCnj7Y)>~6l)mhM5i?OU^r+LC<y)G~wJ)8*kpmsJ9Qq!#udmyg$#v~V68`!r
z&Q-=l;xG{y?OVn6X*$k5CVy|CBggP?H;8jMJ!p-juz=$L3}}RSGv(?5q<1c<$<hx2
z@%p!jFc;`HF~jQuFp$+4Sln_7FCg_W9|q)EBJBjr#y3k)d~FfVbGff=fb(P#=tgl9
znby_5dOGJB)4uu^&J)E;TFi(R`H;z`BUk|g3BX5$fN|2}zLz80QX#a}V6PlTJ+S81
zCa@RVR{{KS?W+KO2C2yO1u`=#cuyV-Q|K(}W6#ylpGJ<^yIJrv6Z8gM^nDOzgo8Y?
zlnAZAhJoy15jc|?U&=ogdufo-fNA$m;S6hcAo-3=+>_JqiT1IB*p0dSh%1wnXGztA
zxixu`b!d{Uz+#Q8%xLB<udhgzs)ev#!u>l@t{$FCsxhiY1pQ&;GRT_&W7uFE4C`!p
zzM29~--q!e>!8O*5YCWidi&}boZE;Vf3a}7x2Sw7cn9H>Ejr>bpXwvyCI!r2`vQ7r
zr7{<LS%tm);c||N3iQ+h*7xMl6m-rH(B7{ZW3Io<mUo%0V7G0GE@Z$r%)UsGGNFnD
zybF(2OH!eG5-cz*mS^OWMxzMX;=UYMtiU{B<A><Yi2keZ#n6ZU1~BKVXaz(V-mXnH
z5V4Z%+?m4ZzDa>AaSNrV>jRYJuRcl8Nx`%(T*#Pak{w1+Npu6-1se>etu0NC9ewkJ
zeYY(>VZTBgkA5;D;AW(kGVv7t#a!*OUI|SXev%Mz8dS|9^xo+iKZdyaIW5HX3H!NU
z{h30Kv7cS)PaWOw*DMg+y5i_7{(lkedkE2f7&>PyUd-0w!BTB4PNnPp+FH!h<%rJV
zWRxtzXYVvtdmvgnjn0qOPNCEN@u1<i{PCdSRdKQ=`9}uaecd^sR48TPuKRE&N|4uK
zZ}RsxygZDf7CU#d$|xD-bzN+?YGf&Ls6ji5ll%r*IkIf<oHEq&U^mp{?@fRWrh~vt
z2c+Zn9U~6<n3-8oY+^Q2?7WY&P-@CaIP5b!SUhcj)tDz$)Jhc#CFdfk$thJVlPZ==
z6-|=U9V}jq?62>Mg?WoxB^?XwLW#K4m(9TsQQi1e3k9`I(8^3)*A^V!Gzy#^$gZlv
zC2&aumcFG@-4WdOuNH}iErDcBJ8JH;qY1ysupYPm3~QgplF#(+@8UlV4);8VJJVtC
zbI`%U+G4}n)95TV<%D`rsMfF$3BL&(Z}-*Y4;XqVGOaWC55a@e*KMQ<Jj`{<_9OIb
z7{}1d@UyBa{JGMUr8H%RKkh8PCEQq4TVPm=qwEXhIc4h!Crw)bIP#zs6Qzo$&{R0V
zL}}R%VcLaT;8ms4#4CB7#U<f8e4k~woeuYO-)HIWs~rya1-{P&&)mY=GPhl6GAm8l
zq5D81brw%&gj^5c!Ucu3Gu+oJO;fRCCYD^T!W5Mzp|f~qc#Qhfq%;{ji%XrfRrQgv
z`oX8r>_5^`H%wPPg$KsK(qDDcH(2^cHD3Q9dfMInDInPeDWtL@Um<)-{vlGF2S(gP
zSXirM@e6VTna}IbPB;uUbA{)N1!zfwehG~OEbXmko&)_e+ia9!$er}alN^U}%p*9~
z7k`9fU5Jyoiqv6@Sr0=Fe!r10zg~yOy#}Jky?jfyLk9wEChrboP%OZgm9WD$_U$;=
zaTo6qaLn*<hx;<MFomLgBp=fv!O#O3$i5F7x@bY3>b{xWlcR0coZH4~3fF;yv;I2N
z6?CWi$9O%mSCnT7RN8{<Rh!Q|r#WzYGMG1N#Hs7^Zv)$L>m#G<%Wr?<2y{h|N2g9O
zbqB5v_&H47twcW}n1+34$G3EJbGxdkKs&X;BbmW;w*tu1U8?R*+#Vc8uumdb#&~rr
z3C!IkcxYy{=Bz9g*jkXyX_E5u!f&8cjSAzDRZW9uv`6(j<=Uf~pZ;@obWNb2ut(Hi
z^xf6C?}Y%~Sgr1i{cW|nGxpcj>dx3J?5~r)$o?*-zhy0y8|VcqVM_IM8LxuQ9Qq)^
z(;0|*I`^-R>Fm2!k623ndl%&=Ivnz0`f$s6T$D4bqb|ySkKmC`6+yxI5Nu9D0M0SY
z8xcnk+REakfP&B6jRvdtG8Z}9{c(y^2ckPnibbWMkiO@^trUbf-xF#e_Tj1;YD0#`
zys8%xBmaN&d~@Xgk@&kVGme4d{e&?XjE=$Cw%8ba&^BTW&Ve~I0cIh>{PMj7m?-ZI
z=C9*09~cR<s}bAneD8c4f_JpV*Y=vW_}YG38-@u)Hl3orxh;+(_Z%Fph@(D{HZe-u
z*m%2>t^aE>H-l3};xhMnM8e;e=oU95y2W3th%<B(68)=wBwD^lU{sqls)5*=))?KE
z|2?`_YIJ{h#d+xdTWccSNrF(6K=-pq_ZRObFgr>%efqu_(d+ITL9}vDX0XJV1yyOd
z88roZmMuasjTQAZGi;)6KB9ZAIfgETt<R3x+Fk<xZf{qkE$v=d!!pQNJOl;SJg=%O
zm+a+X2{0oOUJ=|&QZC@md)b;{@L3yFwYCEfJ>e$RY_lkh#V3m9*lruIs|Rx^dftH?
zZ4_x%vl<l_U9xA83_bVUa}DUs%PV+{vxpzyo;vPz)*}jxdzEG`z~H$A3SI<*Z?9%o
zp@q>T04|Z<3)nSXf$XE#vz<vnwkl3~6E0E#&$WeC#eEek9CFeRb*wNGLlyQRrZzgr
z0gU<lT*2sIJwsBGNh$<O1;1hfF?Nch$viXPF<L1W*wGhu2rPVxbhBehf*KE!t;QNB
z`u0W`eFV4kSs1Wt6S!6WL*Q?X);V%~HB-@#H*!ci(c!=NpObFKUWjV!k-%ze6`eH*
z<A}nXsVj;+qB{$Wq+z-q`^PQIsbVL*Wms_On{VR^#^`QDm;&93;1Z5efKhW)nl4*2
zaNoI4g=sQugWm^zLE&)!s5GCF-TH36dXnLshLV@p+CHwforG;41JNLWdQ{q|8Xmy-
zl;YODL=bG;VIW*i$v#MbbrugDT7sTM0QgVsQri#%+-X<V9(CUUk_{-F)Tes$(-?8~
zp~vWy7zXQ*&>JrIwG9=wz81d7u&u|iZEwXD-Q?h7-S6qC4(jRB#?|ne2dl>DD%p@X
zsZ?K5WF1~PnplT!f#0iJ($!&1M>zvKe(yIj?DMbxdxrh#>tu%Ae*Bvl*42e-;FDu$
zFHU8)BF4xR76&oABwLP4a!e%?DxFozT%#pu@VDvM$$fGFO!Fg+Y0fIz0?6>qop?gM
zZ6M7pfCUz+)}eTG&Q3jYa|h0P&zNH0P+IF}`2ltURBGEVwe<$Adr)mG115rvw?}Fl
zro~e*RMFd*iYLM)d!$mfzftK_E-1i&us563n|-@PUr^^e3}P;Vj9)?ylAc^g_9UCx
zGLtu~M_Z{`u#7gWe}rSCzJ$=7#2U%nQ%USp-wm{*l<ycuCTY7y&?9?9-wh---+=)b
zx#BBSw#QqFpb4o41Mvi>f1TJ*NY(wMy1&yj`sN2&w}cYknY6b2@F#d6+kRZ7tjHc|
z4(4`C)(GIG`aRJO0O=tch(V*SK71vZt&N=I&GrS;=1cYF2}dg{C2vlZR6kW|$stB3
zFq}jbPn1ct_4`bljyS?7aO!E0QtZV-@CLluu0|cvH*$>}8vGyzSCVv?pC%YgQqEVA
z1Cnhj<yDCv4L|AC&*4zv=?}JK5Zvb(rJ1W&arNpt1#Y8)=Q~AmwE60lsYPu<OE%0h
zls4;E4AunSZry|-OPkpI@yb+-M`-TXCWR226ad{xYZ>1?V_*S84LHQ6cfGnCqB4bg
zFhcYOwb}%jIT_YrAm{*n5h{lJnbHBtJ&ux_cN8UeG0ynoE^^cfE-k$mTIQd!>^Asc
zz!NmEv>v1f+_+*Mho?(Cc=O=6gr}1G@L=+~KQNKrDp~i-_N{c+JBqRcmqN+2mAM7h
z7w}xp;;ZpGz*eXc-FCUp9X(yTl{UCB1kRSJ)-}VvCC|b_`aBo3K7}KP`}r%uML7^P
zn0|8=67xJZ)~e7azsFA8%*P`)Zdip%wUxl&8-*^l(YJ(hAao^Ch0wXvZ0M*yY1p=>
z!)Abr{=F@i5vO2r@+&SPnVqJKNgeGl<-@X}SZNVRZ{3mRcj2$Wj{(M0){{o}l`gW6
z&izW2|Ml4Yavn!=hF0W;qA*TlDP1b(p-Hy84k?hW)Cny!wQ6=|vQzYDq$|-*puQ#j
z9BIj9R7v*UmdV<BHWAh{(`aJv?=al}gq2wAy^_7Z`8}BFMb>^#4xnf^_;=wMnslA@
z1jwn*+NZ#zg#Wh*7VGg9hEM~%RS!bH!DeiqJjWzADH2TONHbmym}8>FE7Zud|5VE~
z*}4b&^t~@tVxMB#U_TbsYDF?LqxM5X#j}ULdnKMh94PV(H18sw6Y`v#Tr~fM8v02y
zMn!a<BA5W46D=;{%F5sCKZJ+qvy1ZF86|jq;I-C4-(JPPw^hIs@6GRo^9Z*6?cYIW
zugq6~qRFzg7ttR*!z6n=%x$Pb3DhXJoNazDKQLl$^W2Czaf#Y82j&Dg85XPHNwwHT
z_qdF1_c)jz535sVRJa#hOFax<ecWTJ!(F{Lp~?joBz=$V276|Ll|Z-N!>&BIDBp}H
zxc!QE3K*O1)ABGP49*W21@!h9#UeI2dQ?$tmeZ|oX%k$tw~R~^p=$LEsjIHR|4+ts
z0f~QqNL?rJ?uDxn=kukCTGGn`k|LdQkGcs2k1OxN%^lP-SIeMSq4{N6^Jmzg4MHWw
z6QS3bIj+=FCo~@=bw-U#r%z)|Pn)JWro!Sq+H+A++pq`5*+dRhA&DQIWtD2fuK^(o
zzrr8xSHrg!-6wcvs;5*3n}Di)^r0q=C=-3ZiQSH%Yns%v?n28%oJhOSg0!1lw7U=a
z0-7%r3ut#`Tn)3k^9UYpLJ6#@$v=iC{u(nt_0UU@h#rIgI^087ySe?eS~LlYI_fC9
z)^|dx8?K=b{1e}}C#X8-1c}g>1{Ea~LH)o^^?vdLj%~Rdq(v%$b&-}5S)PYyGTw$-
zPHh);))jb435zjib@@MldZxM*R6O<p`tvUlk>^q9N~HN!4IQ1$_9F+Xz@T3GwMyek
z018OJ6>hngl!Isp`KP2hiucw)A075yOe#dl4&|cHD)MBM{vIAxQZ;QI@CByT5Ijvp
zWuV$}QmPYMt^x3<ZRt&?RQMB_e%S(gMe)2qXIzf+Qv{>5`Ax;jZsk}b&FfjC<4&s6
z8nLTA*5eu0e#2S}miXF^k2d&!hM~y1euEzmtVnfTQr&i`E)cZtVu4!gRt(f?>RGDW
zFV*$JLK3w0u|sp#Jsi7oxd%{z)w7kwyixdmK8y!lEGIp#`~WihQq=ziYluD2De5{L
z^Y9p!xTaWgIFZu#!NOrttZ&^NUpTIU=TH&z9tP+eLyYlPgmRcq5WYCtf=g&I`2F)-
zWPpXck*`1JHfobG$e{}zi%d&SbFkQyU6y<cHCUXZ#;=ni(-_$9sF+vZ6RHFe>B>Pt
z?tUGY+lneM%wSY&T(sr;>Iw_9aiu`J@s~Zqg0}YzMpxl}b{p)3Z)l7szsN&9*TKYI
zDR|#xHNlhE3pKG`S4w>Pzk&O>4MOX&@b7&vdsCsEJKHxjN`1O8!%9Kp*<lE9y6kp$
zhVElX#G)p_Gf{;P+DmNI(Wy~T5#0Lp2vEbI9$-ROOu*Z3Ssj*l+;{ty^noW+Yw44$
z11%-KwiBZ~`Mx&Fd9G!If`~nFQe8I;jL?2ig<w+9UruHM2aB6NGR}^xR#DwR^Q-EF
zAYup2eg}uwn7eyYb>CbkT{#&iCzD{TVW|)d8_-u^7%xHwnW8+r_N2<0Cvc882>FLB
z@35Pn1Kz8#ag#{IM|@{=c*sp8{HFF*^Ei)QXBTw#fti-Wt?%I_N#Hxk|3@hQ9<Tx4
zMhW+90aHfubOo*3Rr!B`ZB%%MCC@I&vq$pm4_bRw*$=3)4@*<TiIWpG2<p#Yz>+}v
zEbkcnf8dy^UWqqSy>}s9FbnWb;bVl~>>JW~vf91#IQNC1BAs+I@Iq;E5_=~7@nKjQ
zulEO9a&eEg3pmut3#`%#WEd>fz+b$Wm`RsGRd%KCEjE%r%|E4{tqIVN8lyAg1^Rb*
z4v$08xCKRHJ?hKdo+VLc_J6^CSBL0X?SMA4|3yOkpTINe2^Wwy6ZFP&4Jgt_u?Prw
z0RPqvSl;oP@HEb$w{b)>Yv{p4iZaVHaL&qY8o6@c`2|}+mw+<}%hJkFbE<DhSoyw>
za_%`kn&!Tt!ab?Nb4c+_MVmNB@t74)w&Ka6YeC0^!B);vqXjRhEAb`aUn-tVEHbIC
zKmFklzHo2C$ObI?Ih<y-!{p3A25Wv%gW#QpVp6b~*z$Z!3pn5IJlsBFYdp-tE7h>Y
z#Y>B<f?HJ2Vw}nXj=sZqzANV8R<TXmOwHshBtmD_xS5huz%td^Gc#)sZPlfQZ9Cz=
zeck<n9^)3`QgnLRIdjzy9*mNC2B&?_cVil$<-0gbzICj~BY3B-J?0sQ&c;C}?fXo1
zZU5B1whqQXG&~$|(wWB<r8kUAZ|jjHrvn->pX29hD@&nO@fgsGVa#ktf8uJy_Itcy
z%MjPl;brU~^cYore0)q%9G;U}q@$}0wcua&qZTy7T7C-5sfgq`!d!{tL2JJ{oqBOP
z!J;fz_s)e`Mevl&_Z6n8(n%zQn?LPfPOFQ%I-?@=_n)eh{RNy)hj2bsiv||@he<)K
zMpAd2tQ0%5CXj+h)*f?DiK@?6K4*Pf#eNSs>2KBF%kcEC9WSZ*+Kl5pX}&fS=e`M^
zCuq-;;MwHK!)MPmYmar*&vajbr*j-)coP0Bb%V=jlpLn8h(Al*sZyHc;AdJ~jIs^O
zagjO|P9YI>GM%7P2DIA__Fihg>)bOkXb=4z8Ti9}Xb;W9!`?NL{e-JgkmXu5Q@+1P
zQU1bqc7KMy(f`7u$a(m#65hSa^wcZ(8*e3+MehRM2=CNA*cY)32w>~xP%rLg_2SM2
zUOIl9ZE=l)x{~K{z-jMbJJ~})D5&c|L~box06l?aueen__AP8XyBEtmTV(4N(q?qZ
zez$rDvjhHn9RBNtB18_#?S$;lW88rv?1$4;!;U+D{FSOS-K9~OS1m<bEQWR>{?y3I
zV9zSe$`U441M1;VA#@p@js|+4I*TM3=|!)g=R{WXdaE#@4Q!-7jGlNzcH{dF9lMr(
ziY-#&t69vq-2<y0=y|CPd>xZ)-KAzM7)=K+Vm=Wbf`oT8y)N#Tf@h0v<6GD<$&bTt
zdDF1|M*zJ!g9Wz?>;3Qp3y)yoDBqA`Sie`bJn3B%fn*bXV4<2EAVX^6gIo@74n+K?
zq!*`RJXhP0g!$rIYUJ>GpiLkQQzIwYL?SO{M@df9$l~i&gsa3eLW~D^RvA1|Cw+B0
z3cqBH82nG-7Io=7_r=PK2mx)}`<$SOVev*k;wm&47UW^D$A8Rgj>2Xqonf+>1X3pO
zx@tPkI-po1VBWR9&$b>%#gkHCl-^?PGi-Q@WuDLoNvGLwp$Mu2Y+al*z&9<95AZdM
z;{$vtdsd~k{RBdb$+mv6wxyy@gTXts6-%8lAKr<<n-R;8kxQWFM{mZd`SYDg)I5J@
zoSMh)j8n7e&O~v`_zUy8@jPb&SW5!fMaf_*6Tn&%z!oKe6~n(wW@rNNcixBt*CzuX
zydw^r-Vq0W{EirKQitc7$D$f~^Nu)QU&iM+Uw?B)5?>#`BZ;r_9cT=Mo;i!rIy@b`
zmL`P2!PPW6>EYd+c3G7tCA?=;CGDHfjsa<&J1jJ+IvmE;MmL`w!aCi{7LtimKo2(W
zMm;!<=|S1L9~?uc1S`Q!A(&#v(3!c~fDX+56j;SQxkYuoo~z{YRcKEf98kTTG=mz|
zfFdrW7M&c+&LhyT_JK|;WRv{}z|eye>1je3--EaEdOT}diB_HRXH4Ft{J8@|Qwy2z
z=N<=bv^W>(3svD%c>v#&N3pK%0c@;-00`soI>CM?T}@eAQEiK^RCp(9*$woOov4R5
zpkha6K1Kbk;Hib0V(y}DR?vki9B9QXGpPpuaptu38vK}}0cy$X(QdB<0Px?2N_mbG
z{+kB><=|~q?2HSe(m)CG1tl<KZiHq`R9;zxAf95P@(1?30lnW}EJAbm2&of*WZZ@d
zE!B<e>?YRPP05}8(Z?DJ!`e=jI)<hu0nKf3G&2&>q$3(U2~*TihBrX%z>_&n>f3`#
zszP-dByb1m>xzPhWj4^V2`oenfIExlIce2l)Ku`ZOKEb_S$ohpX8v$_S?izVIg4q3
z1J>W4VeR!?AEj)2L!7cL4Kd1|YhaWCS-5`|{vL2Y6`ZWPUiT$9R9oqW56{{9Io6}O
zd7yB`C?DLjqL}6;V6w$ASsD^}Fp5)!^rnWW{e6U9+`y(>zNkhOp&$1&pa4(|FyzZ}
z7v8tJO2qqCa~8A3YR`D6`XW86sfOEY*ezlf8KCo<|5hbGfaX)<D5@Wi+!owps~XeP
zLK+#zV7E*tstaKGXsx_&oVv8GVque4K`j0Fh@y&Av2u0^;YfXqxQSI-{g+;kjfIsq
zhY$`fEA(LoXR!tci!rMK^|E58R*Z|7REHZ8GE3?J{@;gDA@gs>+d`~3!#^AEZ>`mh
zR!2cgWTcDNJ%G2VU&LB!pOhD|9X)FVf`5j^Dj>splU`k>GY#uU!J}_zoMAmCMl-C%
zlu<r9*6pZpPpL5Y!zmgrC(F~|8K7l@F?8L~lx=IU8jGVfE|1sHfiD>{M{BH7Yf#F?
zYn0#}aeI4yz_PE!NUGNsW~I1c9UdsQbT>!XGSB$9s19XgKx5zBIvjxk!@9j^*@OT{
zRa(V7u>7jDYG!!G9r6!CPeZ+qpG`x?SdYkZArgX@Y0&)6dp}0Zg}mC^^2JX2;y<)v
z938cZ!H@ZAsO3FH3C+P9kwfDR_oJEP8!{QzJ;oj`Fs#K~GRRv0?{um}2}lfi1&3VF
zhMbfySIe0u1{9gpdNM`_qUrcqL6qD)jogco+%@mTs%_!%L?nu$U1%vH<xS*a6U)BQ
zf!kDvJDg?ii!parAlpgzexNqnYVe<7y~J2NHf#>62pA2E`c;!kr7eVsM6d%{*n!u!
zV+XPlJCK#ofeCc&KjMr`#SWB3J5a23-~#MGpg&e^QR+Dz$VuuzvDSecSoq$Lb>LU2
zBRf#6c3=X1^4(|$7|ns(LH?cvPg<Q7ES3R-%hrl1adP_rV5n_4I&J9Fx8vO5)fUQ&
zIM3+kCt}qFST913;e@1PBCWX{ZH&cH9Z}AHu8P_&g}297imA89wPg0~F)ew)?W&ga
zpq9iO6rr=J30Y7?IygTG!-w;eFuXZGj^VZWaSS`=$1wb9egXyqVt70m!;g|N_>wWW
z6EG}Gz_2imp)wJ}WW;cDGKRcl43{Ni7@vS4Edj%qwJ{8z*Ct@VbJZaX)h1v#P@9C|
z)!HNsTWaGNo~?~z*c`_oCt|=PDWMjIp-_b}hE97sY2fRU5jv6)&PYI*pMdb{IKr$%
zgm?)il!{vBjpIpZPPvlMeC$d>)8~q#+3$*@3AkctUUVg(!8B5#C-ewIi1zCtR}v%r
z$p~AL5#E)6a6tmXIdOz#i3l%3gx4~JF=cb|81^uR-;|6$H5vb@nk4)m*TnH3tBK=3
zSQEp)t0n>eB*g#QlqCEslJP%OlidHB<o+k)zbgU%f&~0?;`qy=__u1=okG_#{8>?i
zS0p1eB_m8tMtG_^j_{M}IKp?TV+apdCv+H(e}%TQOjR-Ec>mwA!!i8NR43tos5%M1
zzd8wjO9KAJ1pM`J{8fqgF*8?aS~C8WWc*ho<2NPaPff;uYF<MB=Oy%iUcCSF5*R*_
z^`A?^@W**c7@nDzgyEqC3>^s=TH_e*nU~PRY&4te62Mm_gD*=4e`5mpDGA^&iGv@X
z2>vq7P#!ZcZYY0Ig<C+O(YoleiF<GZum&2|;RR(dpI{9w%o+^~sNtdRoA-58Omp8z
zss}o1Z|SI=PVAdy@pUpza%PfSd8s0cRPVw-p{Y}HP9@bZVCc5PIRiY9a4vbcNnQN_
zn&F|H9nM?G!waE=g?DQ+JDk%o{#l#VQ9C2P5*zOSp^~JuN~)4L@~x^Qj$Ba{=g7pW
zI7c$7VjSVB7)PM*z>&*wX+AqQ&W`uzo+kvN#;Nm<H5z0`o^+8kpO@wfbm3?`BREah
zQGZKE{q&Cd86EY-9rYz0^)ox_OFQbz$nN?DJyq506yopjd^PzS{V{-7TFT&wAv%_?
z6xEk`C%T}Z_hmdgSV8#B`c-+Qmin^R5MDd%sjSpsJb^oqWFMWwVBoIu6A0r|fN{4V
zEjOFIm*deKvagz=5rj8S#UXu&lnwFY%FL#6i&toU2SLuC-xE92h;aK=xTh;s+V)W!
zz?FC4;cs$~_Os&U@N_-n4WP3vm#jmQb<n#ScL<21iBt~~@xk_cr*VddtV(;E!nsXF
z)*;XJjf!@N{2wnVO4y2JlPun{wpqCAzK<S%3H!XzH?52F=*z<&y0qH6pd6uiCMeb+
zs6gyP7O|^2wcNL42)wdEVjZ;DmbdyaI^Tn?<q*B$tpwL{P__;_Y5R*D*R>F1BQ-B#
zkiAyj!XRHjUj}*+bGF>DN?PBJ9krPob$Fg>J*KRrH@>Cr&b^K5wfx>j9iHyY)(SDN
zYoVT<X6&agy_tY_fCbHk7cq`PF^)3rt!VV+$0;aef}(~;>B6_v081;|{@WwN8_zDv
zm1D~z*wUg^Simauu?k1%yEZPmx&PjqYK5Cwg$O1>eZqzv$&np7(s~wjDB-2`8`$=w
zaJm<~NYxMTr~J7@S8c^=M>4E^p7i`c=mgu2?^~JXYdfMek5<ph9K>)&T4kdSC???O
z?80+pNW(Tfg;%##s_Xg-iwM_k0b<#KC;JxqGTV7Sg4-lr^!OWUOm)C*f}c>4eqm$r
zi20#=w0d<BpM3x(;{evrRNn&iJyGJz-#CZ(NB)H2w_eP?h}lkRSWNEWBWl3?aeC(#
zMfnShUe#fIFGaR)M-EPUlWlG+^0jT(c}5jk1BSJ~W}E!mCwgjpZ2``M(Re(a$f8rp
z!L8LFv&OTEtk1gV_}ZS;t)7Qz6q;E$<#~8i@@nXKAR+vqid9b{;Rdw_{v+q~;K(02
zjXFO3ruvYYe=2+(HaJe_B{n$0b|9aD1}+dJC5-0=)D~&j**r%yj;W(2M>KQ5e%f~k
zlq7D`ZefSSerP@42|%7x?h%4IR-@L+j$~_BwJl!WeT!eIYPrfqCt5L-M{K-5Fux_!
z5^PQ(K_{rBs@Tay%n<?w)PyjkdO`B?3)G9;%{U)-|AAfq1%2O`Mfa8=wE3{=<R7y9
zU8){-Pr*yZE)pSM$+IxQk}qI<&M8&$Qe~93S3tov)FT%3<v@2=(M>P1JMM{n=~{=#
z=Kmp@h$)NKA+E$kOp|bDOYj8*X)LK2mK?kj(`%*b)m@HgLZ*Tj&rQgLN3}nl%_Zfw
z>V`j}G_RXaxarT%K{o2>I&_h3JQ=$b>n@c{C5nw#3w&mFH54iS2~zyaE!yS&TKYoi
zc`x@@=;D|AAKiM+<^HbUA(%x`Fcoyk`N1?MfN`D&OaQ@Lv?bwOe_`}o|K3@#bN#=Y
zHS+Sso7nEX-$(f_(hp}w`40Fah(D9<3aeLTwFCbY!&19ddJfXSpU&ku9#a07mmDrX
z=aPdvjir1vYBw8b^k&1!S$MMnliqcmMQZakYH@wQORE$QBr+9NZgS!c6p0;eMCHoP
zEzrNR-_vBrG$-2;&|z4s+zBL0HfLw~ybjwu+^|fPn1rkcdC{x~q+Gy_sd5qbq{@wW
ztG?WXInv8B@m76#7T&N=Oo&jP!w%n0m26Yx@;oP91$aBlr*+t-b(Y`KVY{WXe0qm%
zdT05J4%>{*^5PC#ac6l+hpnWud}fDjW@mY6hpn`;ysX1krsY;ZK^~uYrKq7KezU`P
z4e(~-@4g}L0v_vNc^B}EE8TW$H19$~%6alGbeR#>zTf^kSa`^YHpXDhJ}<07gthvc
zU<pxJcshw*8iQ4IURbjcR{p=G3-=S~p^7N1*39$4T7<AZe&OHIg}WDYT@2RKy7R!o
z%bjSU$+bF5z2GjB`AIG({pk$6JDDFSvI+COR}%+c;@|6?fLcW?St^O;P*PlC>2Cd0
zxrsh91GVq;aH=$Ysgw?CSk20ZX3)I?9`GiobMN6DmUp~)KBd?@iUc3a-TC@Z*pMIa
zDT3jNK!vYg^aXg?lxI2I#^=66dh|msdM7L-T7ExGqM@T{YCn~gJS{~t-$2rql5tBV
zV{vgw$x{Cz&le!?4Jh!@yJ{|6AWlx_SmHsv%ZM2o=R+-jpyguJNNdgjpq0F`Qh=JV
zrA3q4^JVeaSgvL97|*hJC<UA8hBImskI!OBJkHm!`rL+rZ)%9gOX^_43i=)=%_?W-
zT#tD##D)hk<*8B-q5Ws@@aD<ZPw<*8Ym7Rd-S~HP+6*_(G<YsEY}=Es`1iJqBRg~d
z(P>J%+2|QlUTitjd~%Df0hf($1;VGheuMJ#=&!YmBl!VTO~7mGFmlo^GzzfB;LRe3
zC_9YWMRu_IN(8Ayl<qZ3<3L$}rjTrTlD9yrG0XLZFS9J^rMy%sNTp)1RF&`vvUj!w
z8VS@<xfm>03nv2OnO{|4i~1bbuqQksnjL$(&~~2l8K7A8xj_8if5nJrr+G!79@m{K
z6*SHA56O<@wNlL@sb;ZMvkX>#b&Z!QMXAIX)Uia?JJ33pT)gBGB$p_a8-wW;cn<yv
zcKEW2m#PG*N|Z{CK|Lmtme)Ox<xXC53X(IPtFRcYzemt{k9O%h)@YYp)@VoU>XW<?
zfzTP&^LMKZyQTkC!u7@3(X0y3fPEo53YpLOD0?=u#euMAb}^o=E@Otkh!k%({i{?C
zixK04&uff4+Q`#~ET{(NOKp+-Q<k%mXV`71f&W1tZe9#;g6Nnb#6}qAMRaMbw&kq0
z73&_O)gO)ZPvf$+Vp(D`lde|~Y1Z=zi5!S`k=9Ya0+v%ckU!R`Twp9N!Jg=SS930U
zxdj&w@3L>M!Lb_aa4Zs%fH9UczBPcYB5!<%(^645@uw;Um=Xd9UrQiiD~%;{%Ee0F
z<*WvZjg~aRT&mr<K1fHE#xGBfOt0C~)r)=2`z3mbV)WM1;zk8iHQE-rh-#)&XJd+T
zfeHFz33@P_FJ=O)QY8_@=+85eZYDV|%*6YK0@pHy*vinmmH93=n2A}kct!%Hvx@8^
ze3z0(kNq0Y>wAUfxAK(*MP9KbkJxGx8sw=B)}iB}!dBZoqqY;9dvRFO*agvz8b`0F
zB#v5e&u$=&GWciXRup>p%XaT>zz-{gFRugvM3FZtEw#$Ft?IM@=U>_O6!UcEYKILX
z(z*b42s5E>(IqpDowNf3JiVya?Y)E)ufpSi$@hIoda0$>-TDDZ&p%eQ8T}^j6{MYc
zr01>6s<ggM(n;|$B~Q5^6L<|W$?k=^%|@AZk@hq(a%EegQ??nM81$f-oH}!DvwgeG
z&KfAoq$sG`1x~z@2qSMQVfPcLh<`C>Ov`O9mXTBRwF#ViG85Q~lqMe5fINEfVDvVp
zT-H7043EKkPyi)m5YG@HoUC6d3cIT<dUiChYmr@*Q$dnGdN!8cC|_ZT05Ah_(8hP5
z>T-yZSD@l%=AJqhE|A)WtLUpwD@xF|u$@(Cs$x?88&=k|3d`1ETtZsKOREHFl_=F3
zgIp8pv>oW0x?C=K<Ky^%5w5~TAS^7mNpgM6*UD<*c)QpH8M8=h%(9*6cH?=OGYu@p
z0MCNc1#0=;VyF^KTUf?=;KXbW7i6(XAgx2>o(rIMG>cs1^(%RfragO}q*iLCaZC#o
z&oqt;a4h=`=moBZzIRhXhO1S0B&LyLw{yh~b~QKhHM?kvFK8eYGhE||N|xLTS^vFf
zVytJ3Pb7OA_7XH$Dhdk|F2Z_%a@eSVp2{vp?<T_ecCc@dd2c1w2spay@VrL%2Pyg<
zl3bVUz&HA@&Zp?KkE*b#+xln1^2xxf3&|x|$*CNM9|qqq*azgoX=*81heIRp*s9hY
zt=2+lTHc0IG?&&r&MG~APNi6H#;RrMzF%MgG+rCkrYX}=Q8vL!5KLcH7E_d8-4au!
z{kLF^g{($<v_?8TdP_`|?zknI*<PfRpVf3}!osm1$Kivg)f6!<v~Z7N@{J!ohaZ)x
zr4K;!e5L3<v(zSd7t}~?N2InssqJ`UHs0C%O939Ko9`amD9D~8^U2W3=kgWxighg-
zg}-_(dM@+`bu5Xw-?P^Y)7HhYBO9gW)?d~mT}k19FcNm#(|Aq_<FV>d;qp~vPNw4S
z=J7)%GVT?_)Gs*=w61KD{p|L{F+eQA#0sY;;ah^a96^L@M6#a6W@mQ}OC^i78f9yS
z)vaHq%jg%+;=#~?H9;JTDvj4xAqLRJT97${?Cu-}#amhBT=vJ-Vy>!6oo!NDL%pSE
zLGonl#mV;AQ_;g_NGvTIVj~itb~sTcfk7IZDCqD-a1DfY$kEF3VPSWce-G8A`ug>A
zUi-RvdRw#x7;`X!-bLPVuuKxMi#~lP$H98EsP*%P`kpS~TFig_Bnp5L?-UcqDvQJ9
z9*^JhlC6SDK79|r@)4-=?{(o3%Z<Ond7#G$=V&EaYltILp4KhTT231*=!k=RFoSEk
z9xvpnHz^04_;T<Wc3LAj>zgJ7>CLaN>1kIN=Zm92R`XoTw-5?mJl+?}dwD<4;*95o
zQ_eRZ&}Or3m0`nt6ba~kj&~6O9~@SPtRXZGU|^g|KE*pj_~|Hz=)?m~$_k!lJ&xRL
zW%-c?K#viL1riG$#BX!)9e69acokkxuq{JoZoh*uGpF?_L^I86k?Tc_C+}kbiLF>E
z=wd0X)Jq@m3xP-B;4P7-zsn#@Yu$qooZjgS!U+aJ1PJpG!n&WbGpcyqCJy0*wmbun
zg(?td>tESK0+k$_OX4}7EV(H5$&!NINnb4a<eV>-gnq^)ezByo61O+VwP;tN-K8ep
zQlv6a`ApNnlSzhOE;PU1@CQ6Rct+ETysN6nC8)!}`$girNbw@D84d%<t6D#8R2p^4
zHaz~WY(uk2c|$XE4sX#d0L1g>_jFx_Vru!BwqCFVJJX7+CWC)Dy5lxyku}@kU&Nx)
znIsLo7ck6?8kh^rfVnY?ih1gH+q5i-_`R_O*m?+57SmIp<YGyFcycf*Z}|C4)dmJ}
zcM*P#%s#P0KfVho#%`;fQx2<Z0@|Vj7#XtS!Td%pW{LvR%ZSwsf5s^*MFI{uOS%n?
zQkeJMW#p8Vnc<g7%_?wj4}q5ob4%yzLYq$Kt}KN~ZTWlar#La-?d9w(*^F=f$K1l2
zuQ2NGxdp!;(ajfC3$5?5tE$sUODjo>*7ICa;@izzUTYl)UzwcJ2$LsG8Ik3vCp<B^
zgng~W6-`+bSJ&ArL_lsqJ}WII<t?QpQ+W%uiv@>m?N3>_4&>zv7g{IJGP}vd++#0K
zZ*(!c#w9y4aZ$O-#i>d79>N7JAu9JTvhdBnE@p?Ql&}TbmWiY6RNjI=yl-hHex)R-
z#Ka+uPNcE_CkcVmifG_;(@il)#B<Zg!0A$K_xw-dUk-TTTJC@H<pA=;d4r}}5+Y1M
z1k+u=k3~&;Vo}oqK=u^~areh5Y91m|P{>dvWNEIU71v^d7?zpH)7QY_sCF=1e|-~6
zF$I3{DkMJqSVE`Uqn-Zgjj>L*-}t|ly2eqbrmp$j)bpgS8GlnWbxqd>By4UXVXLBq
zrNjyQxM1XH{2bd|thHN)smy8C)bj??Z%hcJr~mAKG1+cQL}AHx_vN0ai`U;6>*7`<
z^#_~P{D!P&mDnBCI<X28-$}fJKOoP+O$m3pW~z=%sjM#k)4xs#2G7k+$}hG0CkgLv
zN`CiMV!Mlz->pgvFrU399$@|&3E%eUh~PU@faQy@Ba&?qDPJssol(9_vMrO#mpf(0
za;9Zvwsk9S#DCSG{DZ9YAubw0P($-UR{DI*hgK6!evK-4{dUzd=3z!LbsYUF1X+*j
z4Z|YL10E5|@0xZUkgYrtCma3nbT%!c0LpoFQIKqWyo{v<jmG=sa-+7F5CU_v+$=lH
zD#0(Z--WWHP$d<QDfoi3Wyfq6JK8Xwi}_cHL^+YD#z+2LARFU<bkw(^!RJ4nFZkTG
z7-3!dZ((7ug}!n_6xKhv^TAq$uns-^?_i;dr1!*Ny?<U<8xYpIe+vs^f%M84tb^x;
z^%TOo`QO6A*daZd7lq|JAFT65m6g16qRQ6C{*!R@?sFTy{~yJ%<#QX}yLn_oOh2VA
zdo3mu#WGCiBC7syqk_w<>f73k_3VRkz?o(E8E^2So2=~9XN%Y$aW?y7oW}l`rm{bo
z_{})UmL=KDEb{DBKXn{T%VMv2L4`2HymIjb`(r%9{+M>LKbc#R-BYshE6LgTVPq|Q
z<7zZExR$k7l)&12;K!Wy8Mq0=j$gKtbm{~Pv4jxIoUGRKv0Cwu$u+x{^|P1coR>nl
z+O@2hy}bLJmtwfkwXB!DtUTwXF+9n&Y!iD~5PO-ay)@wm>a_3Eg=#>XyI#ew-MMP0
z5UZOH)@PAzp6r<C8B1)nl`bbSD&yhBWU?Df7|c0bb453%H`ak6>WqKlPBo#`$VwI|
z&WcA?vWP8fghjLd%6MMkJ{0{KKT22<|7QcFv}8xq@I84cTFbQwv25GC-ANx{23s1{
zTw+1ai12rd`Cq3UuVg9S3ORQcaTF6<S+1jEl5KYWAxm%b=#{BOcCke-*}=ydMxE=#
z{ADfKxG+ECisniiF0zVlEo0Uwovp%GGdr4dEdH^!1N0P&pcwogvss>rTQr7;18V~v
zwnDJ(b&{<ZPu1AU7%>+U+iZ)i%&`8?P`g<qwhD`_*x>sWa{&cs7fzepAUIsvFgx*P
zwaKMImzeh^U=H(I7m&)hU?hE(uU1Tg+U@2-aJ{~29vtx+tnwLEc#y_OshV`Dl-RTU
zd))>yPPSDzF{?Jp)3y0~E$^-v1CTmRnH?sfq%{0FITON*8h)i^j7tUa9OlkW(b9Ki
z0yCtN3aMmvM@b>MwYCyJ_bY1lvD++SI(ONTMQsakCu5Kv09fkb1`H6`vJ%shW^u7E
z1+w&|zBVHUTMX;imqaigkVWc@DtEdqeJv??n8a8G4AOVU(sO|TSHSF;QfDNBu5MUY
zC+fcfUKo)RxTt2iXIp|R?ZlDktdt!Q`j(ofEH8g=kvD6_c+7cTlhtWT!R{-ztZ)da
zkQ`Yn*Tk}g4<}>`m%LfwkFbinUzL%My9RKMOnQLL5flzbCUE*r5WY$lI%i3>U;r~M
z!4+4q?>uC-n*~m>Wfplen?HkkF099f&Ju*FY%^h82Ni6K=%k~nnPkpI0M<xUGE32?
zVBb7%F{uZr1d>*%Di_7bK7{VRME$N(G$Vb&w>QXcb|CMZlPcO6!U&^I&XXP4n78Xb
zJP+>}ruwr<Lz$g8l-UVG$v&oKR6nM*?(OJMPAzie82rz27|gLa%qu36noRv`n6yMp
zfw#r7NoT1sH-~UVsGlm;=MbA2M&>0p`g`=YOu0>PRXXR=p(^}Zg2DfwIyZDs&0z-B
zfgDr0ZRr8B!SuD6Ej{iAcn-Hi70Vuj&x2de*dVhbOHkkes@SGB4=61N0RgaK2=5~f
zz(19=8A0%dnp4>LxlrmrV?=kDb>19s8bL|`%Lpl9niex37Efb;*g)VHHQD#c=AMau
zv#jyU=+pPVjDD%C;7s&scC2iU_9TWbJQIDoE>?Df_GAnV4Mm@fv9bx;lPUD~q3F{;
z&P1R7sXb+ewhu+0j>O8|f~PL-dW?T;U|~AEUW%#e>?i2e{n};ug^kza@2i+56xgY=
zjDB=SPS9yAPl+%;A<&4~<Cc<zW^rlJLbKq(HR_i9L-~QCO1{SB%_BF+rkbVX=B1Wa
zv(Y_jsb6uAo;fr8Y3`e^e;L;MUQ_&sS~HePSv50@EtPz0ubM)x3T4uWVcOYdBWd7e
z{sv2rmnSE4zwn>(PLWMFko523!M4@<!}7fGDRZGjHaTU!Vs1Q5-jtPSjH>`uV**1x
z+5&FOS0t-3JYKE_Ju_ELfPsTbhS&$<1=QL<zC_zD(mpZ3cJ)CTw3E5PGP6-+&c!CY
zjqtl{yhC-Yi^D$(c|*Ftcvw-Slycur-m;?tV6_ZLCB2ePD#?>d7Wuk)-(QQ_NAO;6
z<mE@q=^R(rID>pSf6Y$JjBY>q8&9OMS>BPI0n7Kv-!vNJ9RnhJB<m2GyfFtxpxDVW
zxkiifE?`BA8CmSpv}Snhcw!+uN>9|Xf9J7(o$TM)m*9cAx&`xl$m@-|T5_A9zl}fK
z?+>(Gf$92AfrdW&5(nMW-^@C;W;X{k%mUgz#tl05`APCRd*wgol2W9Zd`otX{73v$
zePg=3g99Cd#HW+9;KpWSLs~DtEJFR4@cQb>-!v?U=G@F-yEpAS*!P6pQ!yo+d>eFa
z<1#47-9y$bhrg3{f^Z#!<$o+L|3XW;WEa?Zz;%o8le|NUVeRkPHN>-?3-EKiX&B%=
zKySq)2Tx#?qB_B_b^{(cTZb$lJCFsEHA2=QUy4{AjJd62%xW8!th93-vaiEB=)DnI
z<6f<a)MNvFxxos{&gK;TPBN~OPjS*$CxElC5h1ALfY)y6S-ns88p%Q0eJcX)%h)MZ
zANQoSFB#&(7vP8G<`^q1-2kMU7&>`fhjj=kT=z%()|7W1XYl_Ho($XS1__fP(sM;y
zA9M^qL>a8aQ=zlhEu!m3srJR6IQ;D3V0!ah^%EGm*5N2{hmkxojdi#T{sl|`r^DJW
z+X@v={~v^FUUM3@S%(f&^4j5#^+8!I?tX8yUKOE>c}#Dg*c@rF6*~VQV4G`RJ8!F*
zdgR#<un7}1K0BVV!)NW&b^6wVu?g(-RUhX<c(V~;$s3+n1Pz>YyMUvoQ<oO?#U}RR
z8J2Jk(R$1T`n_QtPB^+j%|qwv^gVCIYq0>gLH%Obh9?5hkbY0CkV>qPaE=Nv!T`>V
zy%-3O!rKd&ER+&^M1p5f|JGs29)Sifr#i3ba+IZ^PT%8zs2uQ=hkni0tN|Au7_dfA
zY@m@f!nUZ{^rVGan@!O+a`{=`5Z|nC)Yo?R3vzv7mAoM@8zw*P9)&&Uo2$tl())VI
z_rC5{-)kv{-}eoTm8yqVT$tNiStYN1Br5}n=ipzRbvT^s>mIHo`&e8AWCDt+<c(Cs
zQ5(%__}YdQcWqcNVb&l)YCB;W0-M>2Uu%@>jrjS$VTw0C)&|_=q?9MKV&a&giX-rP
z3M|XkJ{+#xA<qT4XKq;E0Crc{;A7IRgr`e8@PTD%Vjm8^9yzgYHq)RHNu6re0f|jA
zWHg&zoz}q)Hn(DlftX)w<H=BNt67{=RAv^N$F+OSock6q?C|G`0{xK1YxJamicKR9
zzSC3)mY#Z~w%lS9Jn1mor<Mavs9E1gI8((^oL*H1JYH(%e2#3TF|~n=wK(`@%p=$d
zFT$yvx)NzD*cOIuf$sN&j6HKChuQP@1~q>vQN#UAOZfw8B3btw$tt}5Iq7NC<p#Uy
zWVu4Q;$ZI4`Jk@AO$ub}S%X?mC)tNrWXF+R5=VxZJ`ghcx<3{$#<vyO=FOJs%?Y`H
zRVSqpp`fwj&0c`<LKx43-JuM^Z#MjX52(TwndHn%oPesbJCv$N0wi(s>mP(KoMIPp
z&k!ul?MA`oACnhO(y5fKxGGN8y3#lg>_U_WpkRTxHDBSP)GVP40ev=eLuXHnLi}F0
zRlt4KRoSH2jFd(eV4h^_uwfg<izD5irS~ooWt$GOIQ7V;H7e~XjP&6ZlYC1CIgNa1
zr}aP@4b)#U#Xd9zI^H&<^&n^+WZ(Tt!A=03T0gEK<G_Gu9!&!?ncV^%Ntr2)Bh|y$
zk@tm+Ug!m$HESEPcm_S=)D9VZerV17bG2Z_D%^@h;$+k2C~t>Xn38$RC>sxCAzzUW
zMwyhN(J}=s<O?k|DqF9g$=C|iTnOBcvvoMmR)TwkFkbg&OC?dx3bA9BF8WJ7sw$Uf
zJVtH0`%~rFc><k|YB^ta@U%mFof&<-Ax}ubs5O2)G$4e>${PjLm0Q_wBbyRkCNu*J
z?ng5)Q<X3bFQXTZ`M{WNpdZcDcEO-DOY#itwnlU~2bOWL;zQTUhSaMu$V4C00E+t_
z(v}5QUIDQcl6|?h;>Yy1iU~EdCF^mix}W|9PfOWPfC3`vm9ibmXr&80PW&#2=c?%9
z|0Ljk5NcW;S<cKFv;bCSHg{NbE5?WKSI+?q&^(SEd7IP@7A)@dmPYS$4UmZXMY)mp
z95T6R%J|V_EPhM|J4kLqQv=WFs-OI-*FNZ#=nt8=`kt<A<XFlYc3KRD-HPAkz_e;i
zF94rnsnnR$aXn_9#e^4KrH>bLJy1QI1*%Uis)-hj>iW*(>K8{we7qx*&8#+KDxg|1
zn(dW^e#*Qrv2j#`VcS^J?RxCALb~UJB6E?yKX&?zVcQ<kt(HmEMks*gWc6Pgb)-$W
zo$NXMKFq({q(^Z92P0~)VO!qek9^&N{>@_Fne5icTzQU2e_hOu)}*t~iG;7Kk{>9*
zQS}&^KLCrwM=<tAPM%Xh+op5eDf}$fKa`=>saT&y6hscKLN!8(pBBf>q%p)H$fn79
z2XA@ZJ=sYMM3xOeoLuX>iaXpd^Tpl$qn(t8Vkr&iJy<Jwg~R<)J>O6v*}#D<N~>RB
zc$j^%XttTJAtiaaC54ZH8w^W={+{9qm1R<1y@U}m?Q`~cenGA%q*qPnxL6?;q%x0H
zU22#&5Fca_zmYW0jG<B9f5`A~_u9Q39Vn3Qab&dAfkH@b<E0Li$wp4DFb3OE<ng<R
z^yUl=k9yh{>_g%;lbzi(!|;2ZWoSh?Mm2RWGab^~{Yk36R~om*o6Xe4)o~T9pMJh&
zsC#L)04ou=Ru#FuxkFM-wgkX+1Oesllyv6-^ztqL0uTsWL)5z;xw_P6H-LNwtwVZd
z+YFO^Y?0}TEiy;XS!B9i|5#mQjwUWLFUhSlbfDixEHanf@=c4(2e1MTc{bp*s>c;Z
zE+0xvi2qG=3ja5B-aG9-rgJ@~o{ayuq^AAfkb1!KpR+XK8v`ucG7ySuFJ7>8VaEQW
zXj<T<NU1K;fHq_G|0C^d;G!zC|7T!;QAQaP5{rtA%Ayw%U!XB}C<n2`21$?<thR_)
zw@hc$N(dWh8Lv~;npxRqFS~1Hn_Fg6xdvjQWv1yCrQ2FrKG&hde8VK>f4=9r_s)R!
z-~Ii5e0b*G`@FxN=bZDL=NzkId9V2ZP2=skz(VC7J=v=7gtqsnsza2*&T8}2OD0<{
zncTJWTds2-B3a5iXjinn$JMT}_MW3>M%UZe7@O~~;=nrW>h#rgT9OvwA}}>zIu;P*
z-wF9Y65WPUrN)-Mg?g7YO^r*>B~smG!>yUZBNB&C;xj>ND>ZF$XJGhZWwMQ0q{R1X
zlTB;WjypR2{X^$hn=hGcqxMXVG>BRguMkZ$mQXrZ=YkrW)}$oIjcC#*;<~H#CMES~
zl1-k$cjP&!c2pzQ)><(Y>SV`pv&NxW)3<06j*8iLtJOq1u?DFmBhRjEQ{wTYP0E~a
z)nr^@ZMQT#?CXr1jT@Z5<6}L0u~MF@>?p|`==(WtPF$eqq<^5|P4+dN<SxP4@IqTc
z-3j68Uw1<F^cfd++0+Y=bh1tPBs0-JFt*U{J3&baK!@xNTjto5GkxF8-SN$M|C!z+
z3vWuW)PL&fQ}=T?sex6g_xBej@A!SPQl9MlHo-Ug*)>G(n3C$(0x|fyoA#F^ABd&w
zEej7UoRAQkwDzWi81&7Dcr)W|hp#5h<RL=L7MM05F4Q;k^UTS1-+?&gOWzoi$Dz2A
zt5cKK*6pH<X*j-)Rd$qReyHr+d4MVsM-}m=R9gt|uBOalZ>IL`{O0=XouOAS=pXr9
zwzy_BweD-PuQjfF%ds7e6B5E$hIV@C#*39+ercSR&;^m?^3>2-^yBMqR{Eo7^b+EH
zTkQV+j+(Bdhu;J9RB4?$9UFBZ&t7eE2l8m&zZV0Q%5uoJbhCk%;BcS~AI)R5f%bDt
zv1TwVso_3wDr(Y**u96|*0TwV8?7bcf>FE)_vKAkodWLCjYE0g6;=-Nd>5Er0ORu~
zM)K!pfg7u2xR4$n1Rh;x!Qs!BIsE+=t#g>IA1P8sL1NlM8H&E6^s5l2QBsWh#wu}i
zBs0ANZ!crcNjOV<orChN;=o9*hxleBi`MPt&nofKPi(aF!yKR{9Sd3^8v72gTILEJ
ze%1f*VtV=?UV>jQbGPg67)TH&&9s0<oGLx%Dy1f!P{vCGkDyTTBnm7PAgU9Js!gT-
z$?Y13nAC77;kD<x(v*B_*p=qUw*_jgvyy1x-OBAws^`=FgoRdTW1&@M7xr5H2_gg6
z<y_X$!jm>y^;}+8Gcd{9cj4x`uRH2a)OiLsx(2FuL*qbx75E?n1B+PrH+0r$)k|bc
zRp1dc!X4_%?`Vo!oI%KM!SS}Un!1}%@&ho}U1JqV4KQGb``EQZAw!7TwTzIpdqA&U
z(%M7*gy!#4^$0I$5vJ=A{0T{Go16FA6FZayJyMMp>FP+N?52fZM@P9?i!vw@g$>Rt
zv5xBy<0Fxy#pqyPttzpoiWXsz7Gakj!5?c>#mMES;WE<ekw{uqj3}RIQ5N;cClT_L
zfgn$=PsD39YMDfC`F^yNuwg&K*gt6&R=4mNA9lC6lRlb%Of6A9fuhnf6Nb|6bER2m
z!eQjr{1Oh+;Ho2`LsQP7exty5(L{U-B%yFdwRw7|ozmdB?{v~<X(qy|iY&zor)5|h
z)9m3qC}o`L$g_Im#OG93i8kV@@cN@v)Wo4;Ek6sy-}qT2{&Li)!rH?GB3hI_>K2+<
zK_{TV2OcSPSPIiUpdB(K<p4F!(e#68JsA#zT3`YqBUrzZsf7%p79L%BT52I(-r!D$
z{6icKev5{PNafAB)2-fAKFt@cCLFi;$60k8e|})D-G45j+63_$cJt|+XONPp6k9U;
zpIu@hlG$r@Y@TgVVl(3boF~Kb@?5LZ2WKa+4eY%d>YlS<5C?bmXoN1jnmKDjaGVqG
zE3uduw7;OZ(n?C$%p%b4KWb-?0HAD&lKQw|IQOxSKXH_hNRZSLPRYv4GnL_%I)7cJ
zeMO=TthQ7UAYtoN)uwRDP-mWzk7qy?Y#s7#0vjckLBX3a9wTN;Vot&N7Azomt=UaV
zQo1V%cj8?3O21i2^j~M8XKucw)}h_E^qm;uwbj)mnUa<?Hx?#^29Zy?Hy%EoGmB_m
zn>VnGt<#Z@T;^{MnVoJne6mff)b1C<2ug)Cej>gjqNHp(&c3Hc$=U|1P{qe*MIF}f
zacS~v*Y-E$*DmhgTYjw;>2B82Role$xYG)+joc(f>QSrf=bTn}P06$JMHwkS*jsol
zi%_cLkRSYBmmf^aYS`^b3TKOfRAjN}hk|wSwLKM6rR-p-xSOgx-LNa7Nm6C+hADMS
zM1O^~GWR@>O=%6gx}46++*I!|w)7+RZlr3)S1L(?(wIuWmBJh!d2E$RU;eoE+R#C&
zh<4j_YV_S}N4F<aiN{S-=qtx<)h9Oo+HF-%ZqP>r0MO%^E}L63kCq@0Dp~$+F}nKT
zOg>A~%st}RDv+F=y#-knb~v`zT9l5=!;UY!NsbP0BCY&V@g5Z(D)$%e^F!NBdvy{H
z++sJ%1Go}=9BT=Ov$r%Hs~r@uoUIH}%J)?&$uu96Z^&~x9oy!&E3SQ%Ri!UurU^%M
zews#iY?P;TOJgzKg-3uj_n1+-LRp;hVP6!ZC2p-7`db(+$>)wWr1hlzcMQ}_OT#g6
z%x$6T2~I+H@rIgfvOlGIUK|*13XG0%+-Ipt!*~u>ep9KWom=ThE2T!)Sg*~`ca&P@
z?*VIUj>Ykrr;pQ-XPMvP+Z<-L0d?j}=*$=H;U!6{g|)878p~yyC^E_AvX=JpvWn=-
z4#6Oj-q|zhW>X~T@3o{4oRX9;gN&+F;-OmJEzV~-kokQpfpl8(^F!Zdj#56^(Opt)
z5|!VA%!4S^0A)j^Vy$!#s*W?wEuOwkXXppML>)^Ff|!=_1?B9>K31tDR1&ny!AYiD
zY=9_6(|jxSV!U!3BD~|q$r#?R8jg9+$jk;0{-Yh;nVZ}t;^;T}jqBi6H1OfO<=u+x
zV?1LZxCRqc0(M|NXoec^uIJqg^1xuLOj>V&mVkeR!}-2$%l!TNQLb}?oFq`Yq8;V-
z5E{t-^d0xZd8TTsvY}$7+0$o-7?JJ^{t$}UAtri%^qYOnmTMQBa4*a=&Dvej!ZsPz
zR%o<bYbI1a!;-y08PI%yh{gtFlfA)jmdo%&_AxMPlx;f&bnt&nNqn2EzV7t-VtPf-
zC^v!95q<8KO21#!V>;)5&74cxqHh8Zh`@Qnu{mkQrAceAPFmZReUcCdW%NI|*w$+&
zdd2jqeshI{GQRe)nk8dt!zkcgS8b~9TU;tFsWfE~q^UMl`s1tn<`<Xdi&d~f@}<(5
z*y8<MncPLNJTPJMy6eY}uT-w8^k+Gp4WB-E2%sclya?MLZ&VFUW!~h4uEeUGTXD>l
z$mRh<GfbxPmZ<$p+n}>|SLT*mOT2NFw2j@F^fs=Jq`U-47#M{q4yTO9-L%em-h$%d
zfUC3Gg3BP)W;gB!<v3+D&qXxC51voKjnhVSQu>v7u(yF|Fqp=1hf~~2@Ec<*b=YY1
zVx<yOsr0{=R%oT8c~+mfHcVJs2-<{02{_DwJqS%+N}7UpQ5pvkRWa99Dp}W65_BC@
zDl%!HN@zO}L+Ax2AY@iy%4%D5R@!neE|L5}0DcYX=bYzBxUO!r!{j{yqjKjnOLidv
zdvl}JS--_&UD%git_>Xlwz5gCj9%&z#*`L|dvJ?M*OhRgrYm89(w~J>a&%1z2Z<P(
zf#Yfan2^OkrZJ)@A-ETdZSe0TREM#1x!j;4jedo{yj_&6r!u@Y+Om{di{qr{dPhzB
zd|P0gnIgJH4nk=g89A<$)|$Jd7-$`jfujXixvcut7^`QZ#U!?|iI9Dj{<J(0J=#iL
zx?Zl-)?XM%m-WI`2|+l5dfr>D)$?@K{HoiiX1>MI;&GP-Mw@z6bzQes)#7o*(Ur~N
z%1-ZDTQ6#xE^FJEW{s+B8UxsU;;cwzd(>6mh>5($E)2a7*oDV*%UyWkfJVDBul`f-
zu^#Fog6Ub*!bk5y3r9<9K?QLvfRr633L00hO2i#8lF<0GnU%na380q?H{t?F9?tpW
z1BKQiHqEHr!eK)TqLEGZL1$cy^a#hwd<IL%=x9x<?{CH#s#Xq2ON5``X-OH@jkaEs
z)NlYT*W-Ml#rbDcoFPdKn`9h}&mMmb{qObH>=Svvu==`K>i%3;M^fM)dZL9kqHc*W
z9nx4RJcV^9ra|7XW1$7UqlYxQ+C3MKp5{4k^xd98qdlIa>S<6G^?Ozb)*k9#-6zzy
zx^F1HdRi!^dI*9hQBde9+W$g_pofeN5e?whdL{s+cLm*|gp=<PWhXJ~wu_>Z5<4s_
zL!aJ5M4=k!mO&#q%0_VoKZD{TMBQi$U4Zn1we$nDNPV<OW{zYZ))b2Ab)%elBpBzv
z-f673u$;;@9n??$8sV>L7Xx7_%WH>7#u)UHZDE?VvD^-NBae?JyvcPZuOaLcHs|+A
z+&Vt=Pkn+u@QYkc_x=1Ut7#ztlF{j&<k5XS_R;-3HtHPf=sq5cW(O}~D^*_Rh$oV}
z<_aZ&zzXWY81*}0zHVu+JL&Ky(OgZDM<!OP$0w`Jp_pMh?Bi1gKFEk6B&cSf5~EyI
zH#)wrC(h}Q3AM|(hHPFbZu41d&w;QZ<e@CV@Kxa~F`7*fdit}5zi%0jLe{OJ<GKK5
z3H1flw}h=;HZ;|oO$(<wN!b>)2t@$8_%?-7a2eIIfO^Z<L}<`i?{Y6yY|%x*tCMt9
zFJdaE;8U_{vv^QW+KHBh)F$I7Ug-~+NNo{M!r*>*hg4?rMRls!hP$fKx0}vGmqHBp
zg?DhX-WHf>E9Dy!kJI<`$W5n@#PfGaLZzpc#{ZjQn|Ds=Xci;<llgEjh9J!SMEK=^
zfjGtD_;=DHt4(}Wb+S#dF0|y18(lZsR++T6$*p{-Lc(=)Q_@4Q7h7$<`Ra#O5gIlt
z{#xJ9ar1vlTKmSU3)nVR(%KFpP%=9lCu{DJS<Jd~bkpqLQZAR*fywcGd}7D-gj;+S
z1T)alF>7dM$AWG!$!3qCDX(m57JV-_4F&t@**9sIUGRN4cEOLP3_xTWXaAc#Y^d+a
zq(zfx)FA-Dhsm_?j)w2GwVFL(5zIbL8($0Iv``P-q7+#b^Yzu{Nny7|eq<7EFbQX9
z<ikvldo8*5TD=z%7DnB=DblUoTDMxLTVp#)1WYzmL~D<$%~o2AlU~m!<oEMqFkM5l
zgFnM_Y?|UYdK2Fq19(XGSJ(`laY~+DDY7Z!t(g-ttVyqLE>bopy-rAa((6Q`#C{mN
zA<87KM!>)zA?`US+uTmKcn_Dl!6%n2beohXwBa^R@>QVAGMiyIrZy>HxylW)eIdoa
zWUiIh5g!z)P=HYtq``Y<CSkl{!l7`ur7HDZr%60>JJjTbN3eg!F?45Ck|rd%1wn&3
z$qh(Sr6pniLq{V?04J)DQ5Ax!fLseO`C6)cNSCFhWB+$JUGR3SsX4bX!6P@uE7?pn
z;HHoelc1+~{VkplkZYZ3aUAz1f(V*}EJCG(dpeHSUd<N^D;3L>%4?>XJn@y+Txs$S
z;$1<w#p;7dkKAY_g!;HCbCL0PTrK%({w6(=auA?Zh;xze)ZVb2*Hj@Boh3v}7tA|b
z84yUmwo(~Z>Fb{6=|{g;dJ+n*zn%cp0VkVPuJ6#HPecd;*uvFsNnGVjg@)|f)99Hp
z8;HX^^iRpHy@gz_1tj#^eVVnY=faxJb=n{<eoJl;Q;rxLM6Zj_E~`&W^o;e1I8XNF
z*sMJl7I;z$3Ou-(oC8>E28+ObStv8|VGo@Pk$P)r5Ik^nL(n}j5<XPF$)OB@`Vw2x
z+a1lqUIJY#n1+(al@w)m-JOQbK}%HNIjg{9_lX3qLkdbt4k4yHBNT^6`f9T#{<_`{
z-JWvy0wW{2I#e1?Sx)PRUsf>X;yIUMcw_zZEHHCwS2k-_;U`&e(to^73c%|73z!JZ
z5}9?>;3EW=qv!Wbm*&l~cjuf_Pt%qbr{}Das`uA9wItyYbqk?UWC;};dQi?<Mp+4c
z6+`6^5Z3xKZQ^0iXg9E!Pkw+6fIZk3B*F&iZ_G%(J6FI6=yvhcPZ-8M;<2B2=9ZNi
zrMmSpm*ue?4y8lPph!|1W=}(y5w6jNl512anMRKuJ`K9sgI~0u-AdgIETJln)uw8x
z0}Y+sY_fug#Ib~0Ut^)rxo1+3pCN;wnKZ`?bvwNGb5{n@m5)_GaRtsV82QNFt;7@g
zQ|V8YJ?j}6XxL7;4HqZ#FNow%DE}EU9Qog8;{5NRsd8(tE{BZ@TFlhtyaI<YCgaHp
zr_lN`;Ubb`U^42s=O<Vw+r}I8GwrgwhY*-6d(#XsFbJ;;TY7h@cAG~cPuW}i6D|J2
zu1dePGB+uT)o0aNeMeXKX7x2}`88Ibrm9(jc&H}wPq(C}=A6saWHwWipNO4@VBc(E
z|3Jwp)Z}yvM7uQvAiIg^1-H8h{ot-LL8Ldu%{T5@1HqY^alu8{T+rJSC~UQv8Cbh8
zUSCg>B31g-_lzXM-CFF1$>3rwzndcYRcrbEtGh>jp-H_4DEUy20V;+D?KWdbSQM(z
zCa;wygyfh!qQT{d5AuMN^-z;)J#`gZ4n=VTfp@--IYp@FgSM)8Gs{sw0>~U+N*nJK
zFdw!lo#KPO&<i%F--0ktxj2K$kGcsIJ&m-&p6oCRlUk|ku0d~^pdgq5M9M8%lH+Zm
zOQ{QwU_6*705&pB^^|GQ5#T-2(3JE<i+KJ=Zlt^xEie#MruK&Z0abEXd(P^8+@Y^`
zNbq0w<Eh}kcNGV4{i-7MyU3{D0#+mwPPsk0ZgEE4Eb<(JQqM3_>yivc_5+zY8%~)S
zDPV|EK)Tda^A=CPBMaNa${!+`2h*;ihEKm)GicAoA%$2f*fucZ+FLy1l*uA6_WJHh
zU(Pg-)v>|Tx1b>Olfk=eXsW$1a4)Q!p6fdi>+N6ZyFcb?Z^D~qwT^AjFbXhj8&5`p
z%5HJ+HPB`4o7e=U5LYqekWvAXdvy(N$$9Rf8Z>N4svpYKwFr0$s0L$DgAPyMi4&;?
z9Xq<I2HV07$C4JsumzzmN?7TeKePL4d0t6Szl6)rRt?A>D^dkhoCY{5Q(@>0mRYYo
zjA|}s5+8NDrytXamN(6`N4gd_3(HEgcgV2aVQ-VTRRd&Y?Q+o+wKGwxKE@NSiF3aO
zxzl>1lHKBYSgrE5*HkEl)S7!^DhXNvgX#nBS>OEp(2tpij26|zQWqK3_n^jEe5E@^
z($ovvj_p2cHwx))5uefet>0bdd4AaLPz+$|9?=4I&yz*jB=JrNTUOx_2#NO4-<&1>
z6p~22oM6);Fvc$Vj-Fqia_7nOfLUD(_Op5V%{$%nd%laO-;>7lyCf7f{oI&-drL9>
zW)zozaqwt7vumoS(R9h)UE+p5rLPlMQF`^I47<2zw<W+-`Bt~IvllBq{((n>_5HOT
z;9hSG6mE74pN&cC@zQ3d0QS4pe+O0U8A>6bNABtt*ua(3VG$=S+$_$sYW)8Lk{dA_
z0mGWgLSyx)x9U-kK-*J%v0Lv!PrvX;xt@73BbO0cE|(uL0Bh7yti`0RraXc(&>1^R
zv=c@bOFk&pX4P`6+3XqOYszB1K8!)v#_O64-r@Nm7Pf`X=@DZZ#h`vaPY)J<S9!k>
zFRQW+Q=<Wv9S9fntSSg4xP4v%$TEY0@qQ27#CM0yw4l}s@ckfD;VY?K%DK=P#Cp8K
zDRnxqhl!kqu;)Sv>}Q|D2Z5j}DAIh26pG1g;rq%_><*hLxEfutc`~}fDQf`neWLV;
zs?esO6co^^;jgj17su5BANasZY&wBLTamli@9N;f>QSTq*`F$HmASc|zDo18z#ekE
zot6I4MUH>_ODswCe?*2SEiC5!2R^j3Ia<Ag3A$%*p}3y7Jf|~s3_6LdDoV?Abx_@R
zbo$LIt^;c<D4qZGN7>;4R})cFZm|r;t845EHkQ&NIe5!?beiO1#!Y8h%zcDh%yw)p
zUHf_3sZRl@jH0ZV1^Zqs^Ca7(5{S*6oQX8Rv!AE_8j6dE_sWP{-MlWI<A`fmP1}q6
zv1{!q^Cut}c~RzWan!)ntm4o&oUfR-AJ45~CO_Lm)qc70-Ljt<bQ*K62k-V*kbwmN
zV<U-nXw;|2J2AhG3;bFx4n3E}dM>m7LoW7GnkGCwj7*N95hEG&vG5fU7J6<MLisbH
zcajNxNI=gNbVuq=ybL0+lV&xjtYpa3chSDFDc-E53U0*g?OUwLeQOp$qH!~HsfL@0
z6p1-sty_o&yr^gPn+N;O5MIsC9^*(U(UGQeBn`ss{O+_kG^E$Zn7o$N=8Bf^9E-rM
z&|__9HC3Csn;PS%BrR#GXbHBVx>F}<yi_I`fc!i`dEjUn@=yeXFOv0~4&dgIfNo59
zq*xfw@O6+Bq~FIZ5me|}R4DW|#c&*FCTCLA=I$LF`s7U<Cy1$9^ntSep@Hzs*F3xT
z@$5fMqrhLJj&F>|?MSFG78ibRFd0QW(o<{KBfa#3bblb<0wtg}(U*c7<298tM*kpK
zRG&DtgL?Bb-~CP&rI@on&9QqDuB{twCz_!y!*22ySz1mn1aLt_2;h`c^=JWsb_~Wg
zw=ozjuBv>Iy+ygs5=b89*zPavU;%;SjuVD}K(Y9knjb3dB_J^1yC?wx3w>laH5{uw
zLrGL7?~C2M(3ab1vpXG|=Km;V1L`ue4AFp^@8u$Y;9H43oFW<!G!2916nAfwdF=N+
z7$$tzRAZQ2qUCw<x2I#61e1~Bt{Z!2c=)>>8NRJXI52JB$qYaH=5!fGGlKdakc^<D
z*j^_`1_MYjGj`{>NXZ*cQ~Nw+d{$lV72ZL<PP3<f-F@aOym7wH7*A|=6NIT+hBdWl
zH$$|=MXO?&w&g>*Z%K3GL<?`A3)-Db;2#nn0n2P?GRXSnd{P_s$7_lsEI5m>X)*YI
z$-;aK6ZSf-IzJ=1+N{J^oBRpX8vi)hkMNJPD)~15IGd7h_m8tH`N{rq$x41IMH-hH
zo|7i>+)(h8p1nJ^IdEf^e_VPX|FVHQ-Tu-H(b>V*;r-)=%3IIDp%?@AL@*Fm#>!d)
zKIvFrR-j=*mtOr9r&Pa&tIsh6xYMB-8bRUOb2>UoBSj%4LAzoAn;|%~%b60|<Bu2J
ze2ZKFw1}T@+k8y8tgKgOE$7a<pQqUo^jGvf^Z!e?^}X>|yY04vy}E5Ix@~Y_)YT|j
zwEy!WpPU#el9q9Fkzs27`Q=@w?ZA<IM0sNtqZE$ak}TQqZwW)+{WsUOtc+^gYopd7
zkzL9ZGMKvRYmLgbnT)wBXCxuGSA|nv($U&_$ZgT+YP0obNK|S_{S@>@;si)8;-*!x
z2J6^Tk5#BJURl^q80mXmd^AJJqEGf_Aoa&L{7Pz+BU9I$Hgz3RKYD{i9AQfMGEJz5
zkRm4AD|m0&M;Wa6O5ZZ0=^|ru$uhQ<5C3g!Exm*4{v?Cy?z5OYEPE(EfVPx=cvbR<
z%=r0aI4rYe4XN8;U>W;pk}@H~Djq(`AMv4Y<T)oGQLA~ME6=3<Vv_3*gpDC%)&4K$
zKWeNJ+(?3&pK9$c8J>2X8?sVcp7~Z<F|=MP$~PpNg3HlA_gvqT;{;~wrJPf-%&0gj
zpH;o`36*M#dS)9m)t-JzKF+f*RWV7fU*w*faB=_dq5e<*mz<%g|B4Vrk&#F?^@Ojm
z>|j4FfGrBRx=L7(K4movxcIum-u@EX01`z#n_g|M=DoH{WWxx}=Io}}Z3DN1Wo-4k
zQGjt3N11E`uib^KpMl9;eplxtnfDs4A6%WiGN;JNN@1tpiYqq-lo`k=O|TSqFQAP2
z`7kS^*1zGZsF`()Pu>Z+f4iv)AhSBQ+RQ01O|&{aKlGtIQ?3iDi(F7$RBducRxH;o
z$U6G$%H*zwCjS8Hpe=?vb4VBZE~4pAtK1IxC~cv?$R`<gbAOtC{TsG;`kM=_mlWD)
zD(;d~QL2pUU1KNL_^n?eHRhJeI)4)83k=y!IW%9X7EYjBR`E~i&4&@XL#@|E*b7{c
z1!E**|F;cqI$gs#WTTO}6r5tgCblhs)|Yqlx}%}%bhxZu+@*E6Y&@K}5B@GL+e9(;
z=UN($c?MNaQ$Arta-w6Crw@OPU#d&^<ymkTqVx%j&FijI?3Iq2GAtgeqnWv7KV~*Z
zB>k|c!MI1?RJO)j!QSPw6k1~5GjgfxJT~(03-wwMxHgm{R{F*ydin}xa<#@MLIA;v
zQ<h3-XN!t7kRp99BMoFNZoR@&DEw_1o??WL&0xzyn>0gI6wOJ|7RzW(j;62?5vN6q
zXE7BCGoJ=e$gm{6ZT58zeDDHar@iKKLX_qw`8pG7>9bEQ;Z2FPgNwo`?mQ`E-I+4~
zkgszP0-WCcmA><7#)Q7tAf))4lz2?3wwLgvT00Iry^C;YYiL;&4@vn1EB6yspQxDC
zfNW2={y(x!umMT{Yd!9oEZAgXJrZGut9^c7CsWJcd=U<p(B6PKqMiIKhG5;c%+0<N
z=Gv`F;Xaz$gFW%ioHVQV=f*TEr1D*YanT98B`$h>+v(()XlL4r`W=Njf%Y^5@>2ag
zH6>bA^?GJ5`~TN7aoH*LTy#o3D=Kpbd-^InoY!7knR^!49BFw`)vaE})eW5oB#Nki
z7VFZrTw{eK2}$kW|GCkg9?jW{=0H1wCTorn;<ag~K62S;DZ23jFyIFGPua{6(;p83
zF<X`W7OClZ_(RZ-dEF_R5}6^zSAlz|%fATMs*j-PSFh{2hfzB;HhX=Z!G^pB`_$$g
zOl%kP&IC&KXdAQK5x0>~_V!4w`=g)94e1Y`o%Z+x5X#qV6F2>=11JKjZt5Ed5Ea;P
z3u7W=g$k1ioW?<q-v9zJ5C@8v`-OHA>Z?hPos|$Yn_}xiIjm<JStN57e3!!mPEjG0
zh!LS?gGvHB(UraPN{+g=Y!yd38K6bQkTtgYnytL7?);g7aIadk+M>t)PqnscwO-%(
z-__bs|4<T`Nn~87Tkg%Ul*MiEY8uY2#x}eSIYVxV@);}*TGA#C{V>mH4VHXEzE*zn
z{qTcvNXt@4N^|xW+T9B*{sQ{7`3q7tDHGg<IppY^9iw!@_KGJiw>H(2M&+MH16}H`
zO%=O7hAcgS70ip~h0VJ8GcZWMpfJcmRkY~yVVaHapb)l~{i(l*8lBAOVPjF6+<6#}
zNi*^0auYP|#%DH{K4s1)0>Boi=`0P;NgYs<tk{d(tdwuMXMo?;MY~;<^-ie2|HdhG
z{}YB0AKTnO)v_clY0BQxn4iXI(8A`5EzIJ0R0@+>Y`8?!pKr-lXckeRO;)T)G?^rr
z2eh{n6tB?b6j=Ly_NS$}B{r(y-1u4Xj?J@Tl+8q_1ZwQ1;8w6^H5>1>$(KyDPWM&V
zOcf2EdSd*2*`A3tn-=AnP6-c61GSb?e@#a?Wji+Lcnq+%b1M*hle+o51Aroqgy29t
z4R%S`O|%-N*{W$Aj@DY6Yy$Ox5Ci2?kdGu@6xP25_1|;s;$FsVx~QJ!iFRK}vR+LF
zDyPhVF+2h6p0jBJ43-nXE_Qyz6Cl3#_>UA{QV2sKIr_<>qOTnNB0KaVrox<7k(H@~
zw8p%Q79}rLDM}-n@LpT??o#DGOXjAtcgD63-03(@q}Uv*GTt8B?EBQXe#Po+Y!DG{
zofWIp+A}+q{B&4`^_O>gl9m3Yu@h}kVoc`RbRr`iEuOQ0tCn{u)=A2lrLiTpNvxX;
z+Ne6swKmA=<=Y*by|MlZTW-F^o3JTA!wjM5i8jYX%bXac*<727iQ(#;KA<8E=5nRF
z0|yb>{itioB}ejyiWb^hxU%AU>7~!sDxR&w$4G7I+N`sRF@0e0BEx2=$FxcHn08i=
znGE?vBdDJYO68z5ZFXwFqHdne<T*zvq>MagDsH<nGdXs^z<VwJ$(@18oqlguC?@;U
zx_SLzou`np^rR{?Q%hs7Qs$)%yw3vbTZJ9|nj?@6+@d(GMU&i0R=C8b3oPo@ebj0K
zUS(^{XK5OivmrtarF$(b3`S|8b#;<m!;XO&@w0#*qF)S62>WS+=E|VpFszjWqct;K
zP~ZN;C!p*2#?`TEvtt{zXR4=vNl9_BcpPxm)e&W=D?zL`qB~%41TjmBMb#-W$63T5
zqoUIG4skn=jicuxy0-(WtLH{D_gW$f^<n)fEBrYw&(eccPFAKtaXm*F(-8LbCnR_h
zWmGDPxS(2#=6MZ!j%Lp}R!zU`Q1UDh7sC_U@5iDazH#Vw-(df98_cMb(S+{jpJHh>
zb>Z?h+emPnG>jt<Z8q0h4H<QycR6D9Hdr_=(~`8GHi=C()1Tw7NcC6PAvRc%HoX^H
zIilkKY^rbyL6z2c)IhueT3p;i<rtd&PZt+Oi<2Dpx~RC?wS|W8oXHfwnveU_B}Sv|
zb#AP*R=FeDOmnV){!%_};B{`UwL?2$t<9Sv2ZW7E5X{spUqOiv<rU-4p+)Q~Nn`C;
z*a7pbdK7IZVqP*TQow4NY*>czMusx)R0*+Rxys~+Rc$MtUA$9AY)NPpPo%v=7L77_
z+s!j_VQqhQjR$uU3gu|SOCIdlJ_mx7$hj0pFA-g?V>5=bo@3b*yV9E3G98#)#f2zr
zszgNi`d>25GPYz?Zg1G_$;2J8_&{NDQL(hXVFNl7_QaTz%!RhhFQCDZAcCb~x3^8Z
zPGYAWsme{rr$OMR%+F(_NuF~vT71MU1_2!gt|+$36Kru8y_7KuJO$JDg4|!fVs+ah
zV4n2V#Y%nq?TN6i4=j@8!r5CR<U%yA$>@?KpMNI_Vnd~9W4%UoLtM`S&iM>f<mnu)
zNcNUWf8jn1Z(&zX!8A{zuf}Hadcrer3Ec^)O4Z_-Hh#RvHQqCf9_Nqu3?A>Xj`tS(
znzD#MZ5rwZll|nOa5&`jHKm6-!ZXw0^8$RX2+srs5}r9)yn*j?6(<6lg(bu67B|By
zF+6hu;zOoO6Rf}BC*2a$KJnopX4+*p_2kpDm7sYLSf9^!>wuqxv&6cO41x7|y1=@H
z1=fR4qsf0A#WVmU#OfZLX7a$2h}sQS@T1^NQ2*GWY>LhA;l}Ryu^85IHhDt+QH;hJ
zoSRkxwEv+H<4=@Hg$jc(O1zZ!I9Pp|DEtujexO1Z>?}6l@@GT=usw!@Tff(8D5bVQ
zR&bj<n?1~Vo+ZbV?P7ICDX%^r%4hbb)dT}1*`m)E(C6O;+rj?)3=zXuENqZvjQxOR
z83Q-YkedDrHcB?{?k#{b$58+6TO@Cg1!|)YR#u^}9vG>iW-yyD3a4QcQz89}>k+wr
z+9B_=iZ}c`I{w<Bt?_C3tmfO6-^&n+(%kB_+)lo}TdbzKTkNJ*r)?VIn#SVSX&FwB
zmR2)=<?$CG$?C<_xwNvX?Nv<$Ost7vBO~h3HQnr?ODKGW7Jh~iehzC$KmJ9)Z80>Y
zOEvC>e)Doo4@!8vm7t!tAFcKTw&!eUL^&j?q8X_#ZZ;UH2ur568DW2jgatoC-~DDp
zr0;t6%*2d9ZEC5uuZm%;T6#VdC{>$%%`@G~fbb;RBZl_WY91aXGB#_MWdajzt?^@J
zj_51Vt@buLsh?v-nForpx8fher_NMWfvPSU-uwKluCd4YS+thkI~pYrTH5+663n{M
z3Wz@>!O+NQ<Ssw^gFIU6A1I9pSn?{Bq+gf5G#k>FQt9!5Uv%}y35)f&5#8Z%FnKuS
zKeEx50;+9^c<2-G{a1;{G<N>_m34VI*Ic#9wbd+k{FCqs(E59tH952GQozFZ2PE6W
zYw?bc5w<;07?exs8<V`iv}}{SfV7yO0*h4CZ(>kQ^Dp39<repubxm=rM82u#^?4~u
z%4hugwM22(!{IPv8OelhwC1O=ZCS#6X@DCm(i<zz$1-gRW}%he3}efwQpJmeM>e)d
zh}fFYY&~HU3_P}pyP!~gl=$`o;7~oT@iT#H6I(ujWP{j%2xWw1O++Cz!y=by7JTq)
zmuV(H-19Px>)~FPX>J;M>Sdb$z0H~%ct`CLgHYApHftWBc4{_jZbJ*+yGm0}kRh5j
z8pv|AdV+gQ5!*VijyOd<!70mp#m2}o_n?R=S4C+~K<~5W1nb9gsZy>#Z0(tAORy2?
z(y!`em8M^VJnrPJW};1;i=*6e>6ElFKYii2^BeQe?`@K0IWqb@>pz(oL9N7`tt?nX
z6&hgrFHMXr-wM3Chry3;f9Y-TBN#*_CS^$$C2g1hAtlNU7NCuRBC|5i;@D7Io!MNV
zbSMdxzR@$U@J<Wlo0U&kC{}di{%ID|`PsrGbqmn`yQGB=aIb2Sa!r>8Tx}(|r~Taf
zh>@({vBVJ0*(RBeaV-!Y=^q|Z^$=JAR$*DsJ>N?Tfk>&XsPc1H>Nr>>Azu_JFnQmk
z>R9GBF!EKD>e%G5&~ANMrLSfm?GIsZJM6MPwS!QW)XH4%K5svWb<MOWrb>TSC~iFv
zP914Uksvv`muXkMbOhudxa0|x7A)t|K;b%nsyH@09By^3Tbz$e)$3TuC-Y=DEH87G
z)Bj$7`99%#2ojn$EHvd>T(vDw`tsp{FXsy5;NU0Y;K0!`|6-@|p}fej<R2`~D&gAr
ze?-Jtw-Wp-tF{CRSBj;XsKv@gszvs(-13cpd9}k7*Jj1Gn$PH<8Hsi)dof}k{198f
z8ftr=5`0$=gJp8>#`)WF%U4UjbkZYxG2LiRB^1*iZA7$duYn$97zEs`3|~OxSQX&1
z6w0)SiR<*5#SujMv6;UdElEpUi5z||`Q(%*mU*tIN;Si%U6Z!3t&WdiZq$<?-oIAb
zo}kutaGD<_kxRMMH!=WEQ>;~W)W}k{b<k<{oQW_XaMxI95dAKZRIjjr4Kj$Ojy9||
zwkxi7hii4xqD#Rt@(RacZ!BSd)PC;F?#&X%n%ksr)`jcD=)R{_6RM~AP)l<inxaht
zn&FV}c@J}nCHW#%StzR#dWcb=juH^GW+GlhGcYvQ9$dn}RY6Bf4GcC+Ooau&0&svp
zpU_Mw;8XBaH%sjO<~_NSZF-;kh{$LZW0=m?s(7(h#TD=OsA3<KNDWNgtfTAeL>CZ)
z7PUVm(6RJnVCkvRSo)bw29}=O6H7O4?3ap{-lfgAf*`vHwgShcH@BEXtAgNS51`0^
zXe`#&mQ1;-OKH#gcs<G}W5oM@+#O=XyWtqYNge5?iOH<MZL~WU2}Zm7O0-+)3|&S5
zs?;r>-@?bzJ&&YIL{=BWDy35_T92)$w}qJ=w$GAH!DXo4rChx%v=L{D8LW{hxkT5J
z0-jw`!<)3m{N*4{CtD{~r4wpPV}V2S0S+j0O=@^3hK*U&-_H>VUIixGCKWUCLem*p
zz>E}43xeB$$sLmzeWpCH@{x(RB)7c7a~lc}lUP+!veM}|>B*II%p95SltE*8SM;|P
z4UO_>RV^TiYJ_?A<^M4`Z;39e`hi&rzD7Z|-__{%u43KAwD3!Dz5ulo*J9dT@{g#=
zY5wnPw@IypBxw2Gq=pye!WWgS4k-=v(b!-(tivAh+1tDh6jw4p22Ih~|A>H|^BDPi
zaUDR<d1aoO^($nm67k&IsQ1R|SPitsiJ|d)M+~rta=Dyy*+{uO;W|&;Y5=!bF<Hxv
zAXy1&(|m-W)&+pFxIQl~Z8gAkf_R!Mw^5wG4kTrHyW-6V6t)*t*)g#3C0NKX;L=V_
z??e41O^1|FUaa*il_o7M{thw!1RJ#N1=6U0x4ie?^sijuR`K!WRMY-FyIQjh6K!KN
zxCT>x)KI3kC8{&dLVJ5Xi%BQ-*tcx@zD0{vUS^noyN)Fg+1<8QB1gWOc9Umn_NTd%
z+iTBKTmt%Wd?&JI70_?)+-t9OIvtbS=d09k#un~<8<NS=9CGPe3BkU4S031X_AYSU
z-sWr&vW`MR-vu|L_V-<E2;{N|3maLmaaOpNO5ou*Fk{IRn3!JV7BhEi!t)T%Mjv&z
zi0XGG8q-6~1)FNky%<FGO!4^!Le?v9F`Xi96+D1y{B)5<OlF5$<Bv$nZ!b`ViT2if
z>vnqc*V>4dAPi8a%g?$Wy5iXE^}OA9y}ddK9brT`aUWwSf&7_<CHGb*V~wpQr~qq?
zUndJ%$q(zY-c-FL&9gMp`^k$=HHdaDh1<38xfk^$%>!;LjF-6$+WZvKoDGlJ6sIl1
zJGCkKHpB4PMa(qq|Bk^ljht;x+vJ>L76)4)y^2meXC!svYZo%nB=Kz?FxV<@Z%sgJ
zd6vYA8wtDM*BCJzsK=b!#cM%4-Qv&uw2Nnh+;7wtttX~e0I5d_H(UrINH)S<Qd$L6
zLlgux^dy)ac6>sk;proWcI%rFuc7178<H!XhVkKg-dFc(Xs*=c;ja<GHIGu3Te0>j
zScxr?()?x!(ctROF7kDY``2ino9UAws(A8EfT_)d8c-xRBSmLJDlPyOv0^5!{S_`@
z@O3*g;W`4YB@Dq>w96f6Ks>kH{EEeufFo^=e|v5V6s}+Zb&xN_E)jKa<1Rs9ewdYx
zSjFe?e~SybgJIZaQO?g@VlqGXio&-U_Mj_#8|{u(1NyY6e`SPbGuN50Vz*cbm3M_{
zXh0uv-`|nJI<_%yrA%^b=atoFEBW)o!-GbODUlR?#ki;xpV1;7R|Y2G$9mIObm%?8
z9rRd-tnjL}vcfN|l@(sTRw6qf^b0%0`$I9yPSx=!&v9&lf~ulGK{7cjIZF}vvuR@M
zFD%=oiG34FkNN1>UK^uq&)hJH>6*AVqOLn*cKt9Uiqu@JlbX-2H%QHg*7qVc|Mz6}
z69*-kz51=wklD%a>tr_Q<LS{Xvbwhn`dD&iK0m4RXmY!B!&EIN^|uSV(047GPV+-m
zB9`^W`X&wy`zBsSj;NxPdAL1psvcGy>(9@k&~Qo}>vPB<Qdb@tgy+~Gx<BYEsG_K7
z0UymN#f&J^5_zBu!KaeO{8V`$T*2DYpg~^4Hj7JPt;07lBkZpo3dU;1W#S{sq8MhL
z#YtRyt~OP{&`)?yRyf5&H86}m$rIQbn^JO_l0Ve(^W5RH;&NS9LWp2BEZxyL>jG&<
zD2>)`b>GY{%Fgbjh+@(Cgvb3n>+-o4N87B6kwLk&v>4?nK#)xCs+j2Vpk2E*L)T*$
z#FY3l9RO#UiB0pK2+VcTEWlY(eUm3)wOQTEkVrdFXC2|NL6kq#@7k;6UseJGE!-Q9
z=|dsT*5Md;nJ1AJzw${jD|G^X`w6D}AkaE3)uu#OM};@O+Dub$YDx9&EKjsoBo6_`
z(@{LhExw=%5oDM?+;e-NVH#kD(()AffAt2$*x|v~8t?iWVP1<K%3}?@G|fH;F@7JB
z1$~~`0*ui@fzuwjcMo}!_g4S(;bPF6*uGbrPtgQX95v(>gG*!sagWi^x{uKU8{t7s
zLrue{Gytu0QmV~m;>3BhOU0X^PL#ZVn7v=ByXnJcx|CkDQ3UP4r^X6~iRYpPHC8i?
zllNlCn__xa;heqF3gJ<F-VW^p@emt<SZc_w%cx+H_oa5S%%o=frMRG^Ksn?sEDh8;
z3DdZestHR4jjk?H2&^gJrffU@MWDn|9m{)X)e<l}`V`5NC@@z)QQD+Q-;*)ZJ;}b4
z2`ux@7l6c->p>XP644iL&$Tf)vNnRdFufi)m)SZ|jNv<HNkpt_4-a0Ocy5(EvvIXi
zFl$X<x%#lTjd`Lo|IT;Ia8ra(+F6oyJoWFVy~`m`r1jh$ylAk9j<p%gXa<b8NNH@5
zeA;ZJOayC?^F2T~!6A>GR#tdaIGZbj%c_KCj90F+K=J%I3rw_i=GI#LHP+g!QrrZb
z{hGY0HUE5OR+oyMk1@W7S13`5t?3NAtd3gC{Oyvrv_-f5#%6_R<=4gnpcdMc`*5<I
zO;}$k7>t*jV7{RtTzhsg0w-IQb7QwFeW2~t>1eI=+luG!pK7kf0Wkz=<y@BViLy<o
zjqxWC$VyhW6^kckLeGHGU)io%s4KB(ChGEHTP6i8c@c4sDBE<0AZfQH@bDfW6$Q+<
zvNk@_#s@nS#E4hXpUL17TKyBJu+Zi-#g!VEX!YmcB3|Yzd^X=E8}uf=ibMG`{>igf
zN|ja1Tj$Av#+CA{F<Cc*VT+n-Y#<m~_F0-JLmCJkN{>{3{$=|7leQ2`0;`b|m3B3Q
zG;a#58p+GU0|@w}?805py+LqnLT5rs2^s~%GcBx8Je|v~=nWB4qang6)fy_RWmJUV
zY!_zbth1R6DDgGhN{eu2F#R4de^^0W7u055gk$PLL70bF{f;Cs0!_4bry=r`YC<)j
zKkG~Qm;bFd7ar^Ffl;{sa5i6}F-a{P)>3IvTsWlke_w8?Iv-lC^9#T$@buBnb1Did
z{pBlh>|R3@|4J#;Qyp8%T+9~cVmf<WC;a*M(4Sb&>>Y3aK>h><%vZfk5F)$MSF_UU
zIUlusofbn`6lZg#aO}eM1@$PlYVT^a?+@$b0m{Twx9C_&h*)`YQo}nGPL*n-N(Cmj
zO{%7<mP!r;S1CbhQ!k34D7ocr-Z&-ymQXU4+BVSBSF*hN;zFfsFHGWc253*b)*f#Q
zrP|wAo=EvG;tK|&Ints@)hSvju@sSc8p8vHix@|)--*4ajcLJoJLM34y2@bEtrWi{
zPo-5o2le*VEK2lRsgxx|wkPUY<ROOE92+x=Wqpzw0H>4QcC}H%l6{@dq=r%0Fj4*C
zifdn}kCHzHulduUGB7_!SkDWG-v`;@uh~e{KG01`==#^9`?h**6abu5RT%{qfx_i(
zabQL`oKrCx=qqkhY!olA;n*H~PI;m?kun17?|R_%uI27PKK9d~n-Oi9EWtCvw<!aj
zw371w%8XP`LU^Qjh`AI&(flf&%f&mdg3nO1u?$Fj==Tz#7gKl>pCIw$K5is<Xe%pX
zsP{3<4~oPlW}?jvk7&mR@dzM|xDzDzTb#u$ugZd^Xa%`nWd#VbwQ}guu+1P>3O91E
zuX-~waPRMs12_29sDXQB2QwURC!C4eBaiN@lf|}Iq=e5P{}fB(6ryddL&xFB*)}dB
z>*KE->#wmHN2C+SR-37IR8*okvP-I%0J9=Iq9f9pr)YgUPNE02bXKix^{>db&3{F<
z&GQPkt<|*=BQ2X_6F<BWY1)oAB2C-3T{dmZD^X4RggjYjhV|>0LI?a1zPD&c`TiW9
zLo}X&i5YI;{j<@{Ctj9SIrOruiu$tN&9dlzqB5!)*GE;OoJtJE;anpXwORdgRBiIM
zpN7)0n~2C?T_A;G#A9dbRDLoGz7ZIA!+v@+ac>;EL+^d`v3sg<?B3(d?Xs5*nxfT=
z(epK1)x?iz1L_?!CK6LU@F8nyv((*^1^re)zBW0t%uH&)*f3j<BKpiT8kV)AK`Hit
z0#CmJkGWve!`K|np#k9$M<O%e$+xvp360FHDDWiFyb0tFcT=@Q^~V4aJ@d<{$RezI
zjx#(bL(F*xT_`UA{s@qtngWpDE?EXjO=|Y;Kp=+(t?@je{*CvTK)_1hMS$t?ZZTjB
zFR;|`h%C(G!Zgu`YQq3pJ(FN&AOJ($;_i4bfT36`&`=;3tl3>6?mVP%Rg=RbhHL4!
ztmWXC&{R!q#8(wz#fmFGmZ*2ayIk%h$)6O}eca-PV+Lt$5uGo{>HFYcweyd^0zU@`
zTQ3*&X0dcI$ZOQ5vAjzZQw@2|RtfZJ`d>9ZNvd&-vk?kK<uT4?RL1YxC^G&{ghQ8)
z2?ucjm6`jj29FXXWb($#2IF#Q8a<1#UBd=kky5zPEsh@JYBH~9*IxhtlgpCopJjG=
za)5B1LNGg!L9x54I5E#uT+Doo6B-5*aHZ)CytM5XT1;ZzK*`FE+F4grvdloWOR_0O
zZ8Ox!^c6dv*BQWl#7%!;+*okMSb3{gDBi7NH2hIRs*Jdm{6qb;QSApk1RV;&`NFg~
zOhvb-dmi9mBW}mlVXihNh%SNyWz@x5BHYFdzlAv^zWKARiR=`6bu1oohH-5I8eJ+{
zh(H28t>cb8tVi%wh%|~ECG%VXQ}01j4$W)l84_dC`KDE{`?hlhp+u%Cm{ug>X4D&u
zHc&r_fgc;Ez;kAZ8@I{1l#S{VV3;!_oH8?y<-4cT;)z0=eD@KC|5zRNNCG7>O0!~`
zM0jXeu@dzhE=uETMqnyvMl~oTe|~uN3UoG$Q_?;NwjOX-$#n~luwq?MteI5m3@R0}
z%fV!{X~qD90i!&OLRl7~smJNYHgSJ!Z&L}sN8&37M6qzEjRVIP62|^oYha?Sr%2WG
z+rh6*?ZvMh&%PP#8)Nupldr$Ffbe$?utfO39KDJeTUVlk7<O@_cq7u$-!jLjH9lut
zFXnD=DJp%xT}mk&B19K;wY0{s8V9zsjq2UA(yvffrKPk*<y4!w-nCgGaVzTJ<W1%`
zQtY5Letz$wR-0Q`r63Ja%P@dv8uEKJy1At~Ch{)PbsOefQ)_-YvqtlWHs+@i=?V+*
z`IqU+9CD&}h4vSs_K!VOdJ6?v%oMLR9-oM_IT8nIzVn^560FQM$)N#Gid-kM_$qT)
zm*`TYkQvA_S48u{=0);5{a%-T`n}E>Nf$hc5$Nn6#q`VJzMr9;4YS3X@LJxItVjpb
zFk?U*&zT^OKhGOc84Dj8$GO;o{sj;;Csq8DpEmI^V$QK@9L*kQm_6i#03qbPTI!8e
zdB&|;{f5=(T&nK){yiql7|f7b3sI20CiDDTF*A~TP3B7WO=sx5=S#eg<;`XLmzs>>
z41euRf32rAf1Z?%s$$lCk9qqjs<ENpDXjjgo~-_Oar?^}t3OVRe>qatGhasP@aUK5
zqGa(3#&(WXys(1B*1*{)!^yJFsUCUC>2Fkx*m}XHxa9gglVeldP&}lHhdojSc=3z4
zj#m<B$mpgO<Zk8X5{6KFG1Yf#`nCG{{xO_FVv?3Ly}*~(QcM&~drtrgX{Y<2#iP{!
z>=b(Vp9QN;oOuiR^tdKyVV{79<H+B6{L5(L_tQE4a(_Afuke?@BzA$jo3aOT#o+e*
z{b?3XrY#bMu?iqD=&3Nv-!weOXOn9vgEjv0puc>bSUMfi*JwI1#bd99SvKa)<?=a`
zo>i$2Gb4$pIZ^yHu#<qRqdJBqir;vKavn*vJgZP8pxYtRpOb~9qA<tdGVgFB`X*PR
zS-k!<Z?^kH)zh3r9Q+e&+}bC`Xoa4nOsni%C@qaeX7R75xYPz<S$vGUPvq(a-}4-+
z%c+Oy*(!^ysaW-tUQG+fPSj)P8P&Y+PqLc#{z+ETGp?$u0jXDtyS3u5H*4+u@M$dr
z6Eb*<(U%S}g7a7@F4yvCEDsY3>k6C0Z=tFpg~OXfzdr$uA!N%F+gQGcdcV$JPXG1(
z@<uWCISfFZy9(2;3R5ubT_ZlUGBT6ORAbdvs#viYvICsPsp<?0tJ;XV2A~8`yuXa6
z#8!Vf{crb|?-I@BAUf-l>bn`;1UF9P*g+ZMwUvLn3NT@)VDa1viLc7CR&rTux687w
z0rt0?`=vvaEJIa0+%g+EwVrxW4&tTHV(dCvEgAI`oA0{zh`Q1(?$)A)m+MhyBC4rZ
zRPJ`SaB8u47_qAm`_m`cTMmJk^{hUeuTV5hHgs^+O<INj{A7=;#o8D2=nu%~^HY_E
z8Q^$xPb!wxtn~boC((VYlIo%8o9R`Ya#d&0bfM8MmW*6qXM9pUEWBw|xn#MV3+FGF
z^J?&NrsrhuN4i`rehJ0#ka%ATvj(moF+1PlvHTXV-a4_HpKHX<XC!s_5k~<u5KYfW
z-fED&u*k)0&!DVyRUw4EYP8n)l}mdKL6cjAp69i<RkSaaGjsMcvX_7N3}}I>3@z=9
z)1-Z!(=uEVuW8ALYsoK@$xT}F%a>{}D0*0}JOp<=ujhB`U$`#I#VuN9`?1F4!r7yN
zhFwqVt4(ZqTJ~@A)3Sfxc^Yj_J*9uMUNrhQg<rEk%{+S<Jo@5zaD=@cONTw)c`JJA
z2kSBQ-}_ij{Vyy~k&?xr*Cd;ej7Muj7s2=rl(pd%UU`cf%e(#Mi~Z$G{N>BU*qd3|
zBsH>|l63JI%_2Q9K&|-mA+S9>RVZ~TMBCzW%DX*7s8_13Zt+Sp_se2Y@PzD_PY4{9
zF)_=MZ=RvK<x4ylAa;UV%*Sas(f97KcX6?P#Ly(3d5ZD!scJWjU<4q!By4X10*vNi
zxatjbEE=bbScK!b&l>oO#8eeb!Cc;Plxu)cCDm86t{9K8<m3MWdZsP6T(q*5n9<nh
z8#dA#=otUAo4e6vTk+eloqjzwnhVSw%XvxTdjTB0|7T>gs@lv~fi7^Z^gr8%G;i(U
z^qri3S9e6WQpz+eyMOGZkMyKRgK}-sur1+Xvuu^~<N0NBemu1dQ!@M(+8a*cHuAfu
z;|PnzJUrjRsEFS$)7C0aiud2t`$pWfOs>!g%ZwG8w@j|k++}iwUbRfF&`XvXEA(7>
z316JK%vhm`TtbGjNmcps$4ccbG*BFVQr0%~B=nVn+nQUx-CI;uhdD~?^pn4!$F|B9
z69Bx(5(k4kFOIRr$wpUL{Ow7(y?6#Quo@1S?dDE__@|n|<A;XQ*60@FrXWjtIlhjz
z*|GI<$=?4s`%;;_YQ>cA<qDjnRq*;Jd4-SGqThh%TAo^pi?kH!3_V4e=gjJKG~t&?
z3=9xYjCz5a)7lWE#*YPc9B4?_A&mdobv*J-{JW8V_t9^q|Jeil(T*Ow^o6KR;(-_C
z5?QqrC`5xrE>mRgF6KW8JZNFGNgXo{uV~XIzF6Gzp#fX~@ASFynKn<RES2-bz0{Z|
zuBFlQ<jKDq^W?Ina-L)?HRj3SrE;DOSSsg9pQUo1n3o#!<k%B(p8WWPF;BjIg69b?
zJT>v&0&p1qT*Eltvhe(Tg7+?utvXyHN#v67=h`yv*@P#aK(nX~i=HsrumFB#S`&7y
zHkxqP6S4`nK4CPWgezl1D{go~w&J=cWGfs`7_G?CS}`=zigP$&s?x$IZ+27gC1Cv9
zVGA~c$W^f^7N_<~O|qe*JH5QE)wK&3j#vxPF6eV;2{LdVC{HzZiT4P44{K7-VYO=`
z=Ce968@1JIhceL5aA7Oa<acR!bZ&Wj(jQ>EbXLCwH3F71lK$|43D#)s5Zu|Gxv9t<
zs2{QYAVb?-EIR}?`D-A8U63iP{}WCUJF>%pXA!HeCXwhE&#+9_K1b)=B0gBR7mI7n
z8avf9Yhi3Xt;fBd--o?>A?*7tZBgT{3vJ4Dbx?})fVMz1$F8UFeiK{M5nJ8?v^caP
z^SHT21nRFrStT@!@$^k@H|e)1Ym%WVWw&|(^>FTVOVW~-Q2d+FlCWFvpr_x0vMyM)
zn;y;lJ%xg;{bPiJ4Ps=VY0RKtv5T_U%J<J0Vk<yDdJvo83&&EOwr;HsyKjFUUTz%j
z-R{2-@BSGXwg5SI%hvFP&OBB`C2on0szKM|Mh(Ijj>evKVGie4cfvV4rS3%f?D(WV
zZ`irFMcJO+RQL6HJHKhkZp!|&B|7}I?K=;&C>ydrMYzzyi%W1$nMhkY(e%k+6K8*V
z{E*Uy+R<}oC{NkU2edcwHE!Dub;s@<2X?e2Zt)&Depu-^etSkL#Tc8BeEj>^9kcp7
zDBfJ_tON(eonxMu{V8tvP@itq{)!P*D~>bd;;5PQOH~WGxi~u&2S&TKS8<!Exa7y^
z$F7xSqq6!_S=Kq$Osf0YH)SN#(@Ia<@h^|J`MxxvaNjj6q-GSU&N-FM$W<+e$q){J
zF3ex#Bx8LBtf3IQY}xU)f|jk(f2{w9s-CzRX8~RoqB#CFl~H{BYwk5Gsu(NZzK-3A
z;=>mX<*~wF(KWoBCS+J=B`;9%emQ;`%<MnAJ#(|NvB9i-tw6z$o8=LSv>Q(~eJMT9
zq)i=d+W6Y5ic3oUcL=rsic87uw8qPP{m`<ouOGK9oYDcFProJ5vSSUW9O19U{Plb%
zK1?qz10@UIQ|>uVA_%><s$)Mpi5TxfcH$@q#f&<tLV6vvRMY44i;&*6B;Z;?gmB|R
z9M}L$0TQ=@)}MviTa|_+CL{rfARzs`70WWq?_E?kW{CIde0o_Je|3w;GJ1&jCwN(+
zywd0VM8sLZ^%7;bkLq#EwcYF)ko2}|SEzs8nDjYqh#NXu-FJ$+1a|teK+lW01Oxo8
zWt7H-vRv)dkA3`wjqV~AASo+rQSK07Z(}$m8AB4jFoV}pI{&8eubqEQXaPYp{FtRp
z8%m7zS-@jS08yQ3;=6e2itcWR0I7a6>*P}x;28i4tY#rdzIOc59cImfk3!japwOz8
zaeTX4WDYZLco2u+t)KB0tHo|tGdZ?Zy?|reh5CpLv8w|(q(kk)&&6sY7Ygo&YKoNq
z=U-6E?dlJ|7+#NSUSCGM9@M;ABVIE!uQd^`GR^Dxh*!Sm^$2_6j;ZR4gbvk0XVNoR
zMblXg{TvQsJr#ENn(b=fXY${EJ^AnK;qQfiC;Z=w@=sRJrCfvQH<15}QT{eH9{vUJ
zR}6pkRiY_^GvPUhJ>j>X{ItCG=&wW79f-LMF(<Gtpbi|%y>r3{|C|0=puVWTR;d@E
zQQMK~Og(?3TM$V%Cz9@Wk#s+zH2VZf_tgo#UN^$e4ZjcBkLmwKY`JJ2eAk?iNMlI)
zt$^PO)|1qs4n*3`@OgyO1`1QvqdYgas_U(olb{sTV+oih%hY`*yLq~NkM965CG}el
z+Ny3j+07_Q!y<i-y{6^!Iw!KJ&+>P&`h@2H<VpE_RD1q`p1}^(CFVp_pUh<MLX3ZB
zWZWz?>RPXO)a$zO+OE1z%I6Q50;v-zNw8D4GZUFifzMw$^*-9IaDUXncd-^Pe+f;7
zmGG(UH0oeezxhQgD?|O9M-DNjb!y{nQ#ZiVbR&6=lXb-EdkvmL;W?}`sy$2L?S}W+
zQSGs+weX(@|5(Fc9nfDZW1jja`MRJPRGE6SZ2f}ft@xUte*w~}W6=B+$myNqloPlA
zXJhWB|7^^$6#aFy`rbgTAh#MmA$#$-_B=?>pg?xj$K@Q^rCvOM*@)@`17U96O<@zY
zuy*yWE{x|o^)>A|`V90b;#_)MpR<p3$-MuFybFpbtUreZ=ixoZh&LPI+u`@)G2L%E
z{5s+HrQvr2{L&|p-zLLvT1r@N^JS5Bb-sL62Xo0tvE-N>`vmwj!sj6)kHbVk23N!H
zZo}{2@N0wL&BtV$H>;P7r8edilV85(w@Q7C%cuF@DHqMXXHuM75NC)MXP@fMz(N8-
zuZ~Yfm#$IkIQnLF9*S9p=!cJLb840PTMleer*a(-_}NjJ*LIqE-8?2;guMo>H&NKT
zGAuBK;VFWdQ=^{4uVe9gMyG_b@9}^xS7Z3QQT_QiqJa2N58}0OwYvYfjQVd5S^>E5
zeJqPlsFz-cW`NvL-~L&~dPj@>ckTHyJ%c%@RmM>y+NGLZ^7$yo*ron~pNrH7`ME-!
z%g>;Cj~0HX_MEOgOSR{XTptjm>TO_T2EbTRbJ_QHyk5btZoFQ=uQ&x(|2YJ4LHnuw
zjvHO`KKtUxTs?jazD~TpJVaJ?-!WO_9__hHdv4X98@1;;?YTyKuF{?_Y0u@_bBXp`
zq&@4k=X~wy(VjDoVHu$F_8->f!fN%cJPCPiL*&r?{W|&l4JTTzj?$i2YR`+2iM50>
zdEu~xf$ie+hZzRm0^dc4<v!6O{TksnPxE_S`mKiF?V8^+(ytAE?!$5owHyT?EG3^Y
zhjlnRTgDp--=SK(rUAy<Tzu46n+-_qMm&=iZ#H}y;q&89#`=ffYWRI=_&q|HO|T7q
zn+(7E;b)pces36lmGB!1zdsp%ah+NPEIjKqG~&b&1LXgxzvigl>aP>jwj-!4vMT<`
zfY;ZJ*V;8hZ8)aEWE_#Jg{2zw#*vn~{D>9?!AA8F{c9b*=3t?$K)z5Vqvd<+aifkU
zkvdL})baXA9e;z0bs&Rx59woYuwG(^9pXEF3+9wj_|u2<K2QpbdVhR0y53KeMAv)Y
z;plpQc31-OZQ66wVPI;=I1d>EzjWL{{oMqwE3~rOv0qM*DSXY-)JwQy=yj(0wtQXC
z3<(69dfoC1a{cNhuW4b+@pZQT1rY{yq8@V%zQU`tFy1E*(N|EQ0<U%OUdZKd{mCf*
z<r1U(Q9a7<{3*KpmsdrX|I8{mJ$L;iHxuL+bl;5qze8J}yVQYesOZ)39M&P>@KC^#
zgaV23m!f8E2p*`XX;<$%+RcIYVvbv<QsA+Jaty5^)2CAb#R$zoXxl+!9VH;YDtNXW
zH0Dh<Dz+G&e><qpg>N6?84!f;GMQdYM7+K5dHA3{CypON9j1}rEF<k-W!fzGPCF>6
zi$`9if~UaedLykP-<VG|hok3{>!#@WwB%6qe0mrK)*&PFK@D%Y>xeP$D~=fRzWk6e
z?<XBH=KVM%-;CrNe$?wRXCc+iUXJz~e&-=x4*Z@r{1V}J3;Z57{H{jYM)=J#{4Rpu
zYWP*?eyGKU!v+j{TYq({tMu2K)aS7@+K}#|ALV{+RRi!#tsuWMe$?@S%)Y><;Me_w
zfltlAz{2kU`vn){{VOdzS&hFB`~7s_|1vxa@9VX2p?=<n!k5ACl^^tWoZSI@=@#-^
z`hz~UAJy^L7Qnae2Z`T3gS0c@bGMP-A2>hw-E8>HhF=r>@_*3VG97*be!~pE8{k)P
zEBT#k_>JN+;MZ643#u3N3G?3nTikso>|r2(?@<%EY{dPlT~B}9iiHHf58Dm;=Rvdu
zE&T$arrRiVRXbn1QCs1Y1)rylJl=%g6!<;duD9tqt1R<LtE|JLh*O6+w;6FB(BjNS
zSP)_PM%Z*MtQ27aVV4@^T?fC^--7-#;$Nx7zgR2pJgcP51Amm?Nl4>Fnr}ifO{046
zA7z^kC&;uRer{I3Um~C2GzS}z=5HZ=-nAykH18*%-w^hANUztc9M+`1s6C(IXPf%R
z1c{s~8nx%s!XH2$*4u&qhxB&b3BQ@}yV}V2`KK^$@Vm(H`wikX!S4*iFB5(Oe%%Lj
zzd`V`-+}pmKrbT}emU^_%<wxHFZ*DBJn(FUy?a1kL!VJU1sB8bFNWU+_yytjxaPM;
zJ^yj?+Y7&1Bi|>rd>=)=)=G@OQMU)+mjl0vhTom>vd^Y-JrFkRfWGc-`wQv;zjKZJ
zM<HGietk8+4)yw1FhA}D{8#lkomr#r;pZD~gK8w5kC<Ck$<rBe5cm;%-c|KF?To`%
z!|yMK-*02FGOEyiRj<pdabe~-y+2>yYxe)x&8>e7ISfVY+f}(|6u$|$1fNN&-oD?w
zslokJ^_IA>4ijJe5xWp#4pk*wxemE)hR>O*PA?5zE9d3KaoYUXp3})c*nzkQgkDZ8
zXWp(BhbZT)yC`g%(EBNNzP|SVWx)s_bhVH;>;4D0zZS!9xsdHhLLNc*EHv_e5h?e=
zZ;s)&{{Z&GYK*@y#@`~xdN$%`AuQhri;Y3)@EfN2ty6P9kaOuei)@>NpDR`6KsS%w
zeLqNQ=>m%!hfxp6aagC`bwGyn;S}rCGSsFKx$oL9$NicgB>lG^<JyUkclYaS{`?;#
z4`%QWvYY`w$WeVSR@UQ9?fI%k(7mWVpNW;o%Gd4SW&DovtlY29l?P*GTjrv?#R$9J
z2;;fc1iz8{jeXLtPKed!M7sJmFmZtx$@|0l#(r5O{K-eO*W1-IW9491s@O1RP?E2|
zr%WN)Kj?nhKQ!~&(W1So8Y4-yuVW+x`~pwD&8)Wa6^bS5``UATB<Rf;*{iQ=&lfRv
zQ&7~L?~U;nAj05x+xG_ikI~>i;&&n}|9fNqi;;7q6k$Vu5BP6{UB~&u?@S}FE8$lM
zzZlJLrTTtY@`(p(dA%N%H1c2hxltWETaMEWLeh94v)nhoHB0|&_y;C1w>2QW(uJG~
z{X;SfyO2*Snzs_g`@WO-s3ea2BOS|7t6e*d*JnPL4Zq(k7ws&w5mfg%=5DHZV4fTs
zp-$#V$?EOT%g8RXoNd>b0X^@gBJJPF5OA!6tKkC!X0qS2J_qcA-+_I`T(T0t?bg|E
zM@<IQIiSC0sQ=bq3)CS846<#D?pvh}{wDz7J(Tfd`!sy>n_UJ^Z-pK)M_si7qlJi7
z`wSlMHq|KK8!5j!QvUQv`7fwO`QszyKebE4g(17DW`PgA7=^^{Gw}Dj)Cm5ozgpEe
zlY#aB9PZXvj93jgi3~P;tM}a{k@V+A(tn^QN><;Eq+hvO%XO^!>}t8<j(i7Hc_w9f
z&$k9$v+`q96rML5<$Q#QLHOm9pXvYfH^5{9sbIQdw%L?V?ly8W$t@(el-ys)tt0m#
zxi85Ha$V%k@R&_Q$>or{p4=_u=8$`c+!AtsA-A5~E^-IRb(1^8Yc^d(?rL%c<Vwih
zMs5zdh2&l!_b#~)$$drc0J$!5{pXlX=aRdO+|}d?$lXk?lAMQJ9l6EiR*(yl+fJ^H
z+yQc3_=Z|U`ddxU7sx$M?jdq_le>-FByt7hoaBa)yOdlyxiiRh&oi68C%2v4W^(Jv
zts(acxj&I>B<CTwK`WyV^=FLMrv>w*-?6!7Qw+VQk?W8A=(~;FdU9LIts?g{xkcn^
z$;}{lGr0nCBgqXVcNV$JwEXlxb4;uyF5VKCApiQ}&no{C@z+QG@%sxyoTfJ)a+<p8
zou;OD{`==Y(wwFp<h~;J#>&Wdd5P2XyBD0M8gd`d_qi`c!d9H+G`+m1XWXg(a+)62
z>X3Vu%zMEFPLo3J333acb((%l&)<`qOU}F8X(~F~Y3hI6X<AKB3w?k3wA1t&#oItm
zCAXFQC!Le`KXQ7V2Bterc`Hv%f4cU?^pjz|`=sMir)k{3dw#dl_obIRO<OKIwGS(=
zpzp^b-%rtZLssPb`e9B}`$(th&K&B~;ZBojgwymK^~LA(zK>idxpwXOKW#T$-PKOh
zj9jN_IXyqljnuD$zONvcH`;01>u{P*&~q8Nifc}71NtTITc>H~-A+^O?<3)R>*d&9
z@BoF^&^X>F(>Ul^K<=Xlou-VMNc`aqPSZ$wPo-zE&w1K0*uKDNYH2*Rt*<S1n%*YY
zOfLMW)AT4kpCb1nxlq7qx|g00kZT}!Ieiz?vz*+W<T@5PO#{ep1ik-;+<0=Gk2p<(
z=y^W5Omb`Jdk?wUewv#Lou(Ja{Zskh_4$9}{-<jhP(XL4sAm*lh>4}YZ&o=?hhK4;
z@;`N&uG<+I!+(G6G@18CzTc$p?`htqt2B4X4JUW|mrhgiemQ=#>G{nUG*;yI>i+*O
z-lO!Mm5|5f_HOUvA*boU0jE}3JOAqQ;*Fna-IM#~X9*kH>FFdGu<d6F8`|hOW1rJB
z{X3`W^<xq~oK0@hKF$3v#{k+i-j2`X{y0F-Wz>dk<j&gdG{sXp^tNpD<(U@wB6IXJ
zf(`GQ@=S^5Jkv>XMHKHYazFL^&t>LQoL7Hwn!2e?_pPHgt&_0kXB)v9^0(4^!AYkn
zmY$b&IZf}<(@b%WQ+V(AOV-Kw$>d@+ch`T2kN23U`1rdkY0w4D&V?7#YrM(b>)YAu
zJFCaH#Wbwf_f@^VGkSdw>Gd7g<2%-r(Ca(C*SDqDcWkfkm|owsP#`#SLUU`<@^~J)
z$LE<wYU>cvhBfJVrpMCdclyJ5#<D_~{+>QQ;;*m4oL+uN>(u<x<Ni1p5-yFs;zZ}&
z_W#;@53s6^Zhv?o8jLZ~yfMBeCWc_cj$IRt*bt3{h=r(8DF;Dm(yd?xjfw?(0UIEq
zpeV(PilTz3SP_+uAO}P`Qr5R-?>U?e!in$w{`Y>*|M~9dFlT1}*36nUYu2opz0cXa
z%@j(7UuvV2{a$wg&zJL5{pXQPRPYr~+fmBCoTW)AdmF1ZPy6w7*v}%}nx97s?QG%Y
zdYpbTrL8EP!Ew7d?l3Q(&v6#~`U!sh9M50k`52C~qm;d(#+6^c&#%AW`81x-<M<L@
z4q9UQ7g}Q8-Ca2*ASg&(dGDD}SC$c!XL4rO3MMozXH6|7uHEmA<Az9Zx+-u65}bt!
zoP`9pRRzwS<JfmdBUIqLwZv-&xV-#19g|am3c5?2E{4-3Xo-6EN<yzQv2prhPLG_v
zMMshT+m6cq*{PuKDZ%Ygfzy@XqEz6fNpRUJa26cLUX9p#lE`zwq>&%t6rY!O6#KW9
z_iqzVck|STr~VvwmQpfNaDk`MygZIl_N%pzDgA=dmz1{TZLsSZ94F^#vE;gfANH6k
zTPeThG!Ho6EdMWFmQt@Tq1|-r<UPqhRmiFJ<i_RHypvK7hN!@4b`r1k=p^zzsFOH<
zf9s?i4_6iR1`?dF3Y?h)cUuL{mE#1PsRFl&^SxVAujZ7-@j()tz6xBl1ZSrL_gsS8
zqXJjJam+?WslYYwEM9BfSsaJ<okhLuMk%u)gFB1$ur;E&fr|0q^%(JbOnE&vyq+bL
zGM!k<%Qtma>dAZqZnNvvFP%@myxxG$BkPp2x>)^!JR0E7evoc0|F;dqw&9P)+W}tJ
zCC+CwPvbg&yp}T@<G&gItj+6X`OkRSka}&U4A!laFCMI0t9KTEG%nv1-hOsxrJnBj
zgUh6m{xsAt!5%iy&VeDy`CXubkLFz@>)+JIaX(0Kx+-uwU6guYp#nFii+F8f7qQPX
zyNG&VB55Z;1-+vL_do^CQ-Uj3fjhwYx&04*1{l`!>kO6k8yPlUe@GYQI_|Cl7tQ4m
z$J56Wc}A$9%jWzSaJtGaqMoaFRq9u{3i@_kxo;}LYfoz&KY-(haXj-4ja1+bIDU3l
zalFmDiu^6^%I!&4(Vnd8D*AyNx{B+jH^&|5D*Cm@x{B*(FfYH()4RMpoaYlbUmclD
zRPdG2Rg{;Ur^TGlD$Z9^ZIQ2*+T!&#JpF;Eop{<)TjYBHPe*8r>-z+4as8goal3iy
zLn&Lw=kxqkp2qO<RXqQOQs$#<;`w(xE#tUFJb$0kc9eJK`DZ*$=4m)jgL&%DQ{<^e
zH!*G1O}Rd3&uCn3ow|wFdUg}Xa{y0=@pKGNC-QV!H|0EWS5dEp1Q(zJw_JjIpaQp5
zf-6^nJ0`(t&TJePA;IaZz{Pb_&UZT%xD+nOY%ZrFY5!HwHSaFzzY5$B5?r|ooQ?#i
zX{5q#OK|!sa7G-*=CGX#oK<)6nqzmd|8CvI`Ma^ZIRAEb7w4a^q`oK>^+oXdqIi9=
zyuL(U-y2?ENq40`)%wrI>ucRZyw<LVSYO8;Vtu`Pi1iKap|qDqD(W%lA<nN^J(Tmy
zQw83Rx9iH=UBlbm#@qGb<)=9Ad=KTgq^PL(Hpekr*?d;xxR<=%H@uxf-hMT2|BIfY
z9KY)++PkhjMSDH4r)Z}~_Y~V<XA5>J+L_Z+ytbgH*p7Wqv7Hq?#diMY?d;{({W(6k
zr$ql%)F0hbvi_;SJ?HhNOYqvW8^@RT<bG=}$@r_lx9KI~JM>cW?WqE<Bf*8J!0AhH
z&sE^&NN_Mmh2BYU+A45sB{%~WxIGe_s|s9DFXepnRe_7@#r?EiqCPz8CF)CRFHv9K
zN$SZ~QBU*U;<eVj`97()SWlPUVm*C(EBV&>ONIO;I3pFfITD<^3Y?t;7oY;SR)Tw=
z0=K8P(tj*hfeYgD2<P&+&gF4W($0{%D*Px3ZoUd!xdi8_0@t#Sa$beZ6?uxPhZp9b
zBvk~4Wn=i9<C(3~UNsWrgd2E3SI7h9*`rDNl$VCt2bB9J?Rky!*Hglu!90<_`SU)V
zKSt*|Pstx}{+t8q^0Og8$xnm|ekS(eJggd7r|tUt7dsW#8BZzHMpQ%X%$Mx{<~PpA
z{63QNPZc;v32v(joTmgAp#pb6f=f|>3z6WO8>?71`iR%u>&Z(^f@7as*Q-OvSkiwL
z^*@*PUj<IyN3#D@fdd_JeQB;E>OpHAasIZ`k@$Zq=zHoY^;y%Tah$G>cx{5DUIP{Q
zITD<!3Y?ve(qHyffm_Sl-^BarE#dpQ3c3JJ7b3woH&rqI93Lm)e~1cvijH#KnXdv@
z%<HY<{I~2YrcHU;rmxb^4Ny^!c3<(D4yPN^R~&C$p6c^*{k{_aM@4;ecztGlmHwf&
zS>t$Dj(6v&CvSHv&$E>2?4G`&f9T8eEM@*-KwpXet7zwv1Q($K_dtS6QGv^l;F`-+
ztWy%4jtX4Mev<WH1x~Y{ava=M;0E*)uMLyb8=?YlAi+IXfisifz+A<+O8C@Pf!oCS
z^p^Ht1wKI9e-*e({X{z!E$zPw{BvplRp8{DU+sTbA5-eru|P8a7pSnm{rR<js9(2U
z9rG6`?cN?0^|$HI_YXYP?l1BGRL~8R;L26t3?w*B3l)0QU%4LXtH8N(dARd*V}H>;
zY?rj-se=Akf2CYPRNx|b{Zak-eqU05whFowNk3X!s<79*{wiL7(*fLW50LnOD(E!_
zaJ`e@-BsX+alGCDiT<m=8%c1_Rp6{7I9S*?&Rv4jR)O=D_Fn}qV1THvA(DFCRp6sJ
zt_9@-RN$U-Ii>LN$mVIm0CE3TK0sV=V4#>bA1LziFP{IN=d}hZ`_XQZ3cEaz+vS1E
z^-*61-hktc26DfAps4>A14aJqc<MS(Tp!(e-jk<WC47abXy+JjCupE#{ZoODlGNMW
zs&U+7UT^Y1<vbap0$<GW$ot!35PuF}kVwzY!d+F+YY!5~qu(Hr{ufR^YLF<834_FO
zn>t98*Izu9@p9`y;`x&+Pu&M8<x!xbUGG7X@wZl?$Ah^4D8cKiz(;d@oP-Zo75Eeh
z&Q}GlnB%^p{B0Gu=7Ys+tp|(pY&TexrzTIed8#v5l;4oSqTF<Ox&C0$Pcz{8*@MOV
zE2ccZh^G#NmE&t<(>On#oSz*$J;eDsF<2bmGrT;K=c9QV&(o)a#pje>b3U>LOV&RX
z?UqY$<tlJ3hbYfwHEmVc^C9B39z*zZ4nssaj2t5JIdO<6&zVC+{WKY(T*q8h)a%OY
zb?5c|Jw$na8lr;Em(!i(bYYyIYn-1r&d)Q>PudW1ob!fA&cE$c=+RKFM??8J*-(B?
zHk6-}4OPm`NJTyRydDEy&um_gIj?8&P?68&Lq$G4hDz2y74;sF;GV0%g%Hkav081J
zrUQM}RRc#!SxXl+XijAh?3HE1T-CsAq#E3ol+B{DIaGE@Qf5wN22^GwDSJU>a$RL!
z8vggY7XSBs*JAXPNu#Gt?BB1qnUxhe`Y=XjC3BRGwzqV&G&Qy|l$knO+S)+JCgW|W
z#MsJm=||TFz-TL52bsRHjhU4Uwy4iEwsh39wV&i<<!EVVC7WWhkbn*VZPg8Bj$@r=
zHjV(cFxp;b>?oUNL5Uf81_~-eOPd7>8o1wNs?4F5W|jI3OM6ErW2=!?R<@=9YZQ4s
zdzlQ})W*piC)t`gS#eHi+Bh{4m>9K$8nT^fX(k(OVQdfH>WYukY-_K>Vn#pF*uinE
zy}hkH%^MhLFVnN6dh9G6Mou;y4=a={u=2^q)~t<{AD7MqnA2pUttscM2&iAy#*UL@
z4i3f(7)^2A62cd;T4q|>nAy5GjIp$*&fD5AA>?;VW&#(Ej`o%&PL47MD*gWBQmP}G
zq-AaEER)jTtY1dB-?{9ixXJa)2)Bmog3u7GmE>kZoVt~RqrH`kEk2fvcReR7D+6Ok
z3oey~^~+{5!$f7Ho$T#tG^K5~V7+Oe{0YNPlUdubIw=20k(Wq69`s0Pg8o5*@LA8&
z-a(WN)lj#Dcz7w4OqRKFh#~K{n42NV%>+}S5A@NHlpfkEWNu(<Y2zp(4LMJ;H8x{K
z06!_NPP4R@!7=rjG)IJLptYd&HfB@IMdTFThM?5M;~z~X%8Z>qnpCg{#<FHUDxaZl
zXeE=`fjO_oz~0uB)QD>OT9B`;wKb{#L`xg$K@KaKA+vWN%CW8^;rFpqCy%Y2>ojj^
z4otVRli3sXU}cWvWTVu_iMBRui|yXTuwKa_7()iZcEKoHR|8{vWAfX4>XpodShb0^
z#%6}3rHmv_lA8(Zl{HSI0ihZ_>Xr~6S!#TaP?a-bDZ9=jY|nc;#%jTMN0~LiuXM%6
zOgY1Dk@U<&X5hTq@0M0pBH8vPh8DIiViN#Oni$wRNap2U(s5F2+a(+@-Eizwg|t3b
zGqjLdS&em-nbLe?(lpc`J5eFbDHF$zoIXu~9S`&7jdpd_BN1?8WDg^O6_LHObs6hw
zDzg(ubGzC+J10_kV<Owt#9C%;YHdej&pxqf3)`Al8;jO%ZWD86OklTwvReW$$#BN#
zsnf(3zk(4X`Z_MLlg+cVF}Ky#oj!7`uF))jyD(2Cv^LK|<fA{pbmESPY;9z&mX5Gq
zZ65#hh+!$!hj~V(c1)X@nvZWH6oMDbGd8t0v$6prqF*3$v^KW1F}7de0Ik%hQA<Yx
zTa(S0H;*i~lY@-eHw&3PjnqM+G+XH8;5g6R%+i^?gLmFMyLt0WNmFgjWNa-E^5$Z0
zl~}_(V>`QftV00dKv)|Z7Atd-O*k8OLq}t>{C4B1uMK-gb;H`>y3j6I7YZYFq4Nb@
zFrxUhRl}67{8>45wK_hIy1KfWx+LF}^6jPhdex|Dwh-=sL393nh~D~Q-HI4M(U)Rx
zntANyuHs)2Gi2$d;I2P_nEoi1)z&j&<c!hdZARLgT39;EYE?;h^5CVqlX<DGuCgr&
z-Sp8@oE%3vnVZY(m2|qC;d=Eq0@D@hG+H$hdO@$cbOs}h>gC6LRPSV&i?m9qJXnlM
zDJZYvG8h5fMM08BtuB0Z<}=#6H7B2_1$;rP^OvOat)Mmeod1GvpbdNrZQ<Y04!(o$
zp*{QnKSBri3ACUO`~t(^H<$y<YvtQeWKAhPODwdeOmqioaf7Mfv%nJU>eXendL+z-
z(WK2b;0Q9|?_c#Wok3IJVI<fSLKBt{+KEyJ`dhce1&oCnG%4EBUsEA(N*F5`QQMDY
zpaU!TX9H?~+8Ww7P%Nj<(+SV&wWEKwR6FCzjB1)hsUuiWnVC?}XrX3Jinc;~wuF}n
zC5#hC$~g(;=G12^y3!DhnZTD!XhRj99{;RKse^>xRN#<Fz*NW^(`QrS(Gr{m%KGiG
zI&FmB)I~~LV=@^-pUes4L}iYOxwUpA^!!<Oyp4k+SytVjr%%)CHRNZIl+nte`!ft)
zYDnYN8Kx1Pn9gai?@C@A1PL&S_oh#-yw44lHZF4||MfAZf_#j*jM-mnqGA-bM8QVD
zz5&Srj1}566-Gk_1_HvEXvNX8C;sYV^lEvSN+mW#V^3`?;B+jEA%tSI*vQdhB=E_C
z5-p>;9fYz`^m&0GC-ExdoQ=mcDs!yuFPk~6{|kg(8FMa}miDeA`>ujKtO#!`$lbIK
zrKRv$<fRY!cVar8JlyfZ=U&vhgOD!y$nHrNP*8-1ce?)@{%;H70{xkAE~88CEIW_c
zLn%8q3ZaypJwBk6eFrI<Quf?24ZeF_`p?C4M>Szz4my;w`t&Ikz9XV0)=OJ!q28^O
z3ipL6WoKSdlrpd2`A7At0egRA!AIpyg!Y;@5$n}#@-dwc{T<RkIioXZq}-x`^3R)!
zhYbytZ*8R9w~_LYM#`faDSyyNc}gSY1&x%0dc)<d8!6Xpq+F+wa@|JC4H_wDZ&0w?
zp$6I{^bGDH?(tTG>?X>*`))O`_)MA4K1lgy%Dll*H3(>~%$J{}{8!4n?*+m)Rpy&t
zrR%Mg`H=gR@2t!lm8b#xElWkdb*UP7OY+AkKR}XyPWiQx{G2kXPr`rG4{Gp8lGg_D
zdwiOL6vV<PXe_vkr(5psV#5B>hp4D1h<X_X1$X_RY15|Aym@nI*|H^k{q@(-wryMZ
z;RkY#TLk*je*k}%rSu;(Ts>V}TwQ!MT(w;GxOyz5)P9MpCre$r2D(t%*TrS&9!kG)
zbzQxI(j_jQ9$g8)d$*?tqhGSb#l@G^<4M(lh6@EsT|6k==nJk??&{$SE<ylE^&mcJ
zeBIS}7wSh=&aRUIaBn3>;pPL2twcF78R<&oB%ObsA}4qH!(;`3!hb*%6ZQ{<GvWs7
za&fVfW;Hy@Jy;3JPsqD^5SfRIt7myRdrh~7C(C=fZt?Q+LOUT}-jzg=on2mzWnx}S
zt83sE0${lv&o2xN$YxI>y7RniVBi*ZVqGTWyKA|62BIfoxtKq4goIlTUg+h?@>{xh
zboKNq@N89HUe5B_M<QLz%PC(YUeDgY-;EjrFXBPKN3!c!{$a}&;d=i5{jPK!HwI+C
z5%T#t;pIq`2X1i}^ZEI7xx9R1pulfdR(`%KyS_0%=#LGBH`JMOPhTOQ0$EvEF4TW_
zQ66q2RT~>Y3l#F9lB}#Zc0!&mcqt{X;ZnvF#?=cwJ%zlNkSF<i2*aR(Wh7pbw}%_6
z9^BZEO%ijiZcMtAcR?YPp_u1cEb|icf}XOxn=o98A$GCT5Qn*(sw>cl!W4iJq$xj9
zBdsWEP*mqp?H{57r@?7i9gNu#JhIQ|E^45gBC>LfGDfE7Iuz%FQqP5(H4O&$M(qL9
z_5V!IYeREU@*f2c4^lgK1*8_!oQAK=RmeAIlV5ScLl{=1E6v}$DJv`E7n+O1jb$#b
zTUM@gbE9!{mzKM@c)X!d#z<?+J>8H-{IrM{350SjEo~3aK!1)G2za@c*2ciVm5hLC
zhooGa%KbT>Ra9HPG>{Pp+JuVo?%lPtUFd>8*CJP5e&mRj1$8yhjVqU{67L}>7}GK0
zRf6{*5x7x<)ZenQatWSbZe<!}t(5pJHAjvdWq2&paM6(9-*pd+<ak#NDgNaC{Q{mC
z_b8*zDe#ezk)DDC%3R!PsB;SZ{{8zsIq%4%m(B4xk&zLKJ~8Pj@Dx17Q7dy{(&O@Z
zM<HLB&u(rcrj;wj@-56_<Yx<Tfgl^C<z9klXtfA*m6o%L1pLxK_u6tBM&QQqL=eFB
zVM~?}@;%Fh;G)o<EjD7X5M;#7HkGf>V&;Z|rzf{U9B(1m1V*7yY@ysk>?#OUl5$T}
z7!&DiabZgxvvPGWHh1;%<UzDSd=+W#Rjw!}Ge%mim@Y^**M*mpJy*2r#mZ5bVV-OZ
z6xEOcu5HmvF<Dr7S>5t-MR_gvSmwcXpH=Va;#Q{|#d1$j@J;1RS6p0cyR7JLnLBl$
zR&ce3flNVTCPW#qmADMlfLnPhN~=I4MV-=eX2vKjU?8%LDJ&hq)1P?Sil-X&QuTVN
z+J948zn%Jgw5rFif`8s0H5AiU^-{pP*VTEdfuc{?N|L(sa%rm0%{ohUcs=yLHM@>A
zFl2;i`vtkz^*fsjbPe66&dDwS|HC&RFDGBfV-Z4b##_jEk_>LkS3=>HmvHNN1XNvo
z09i2)>3SI?#ytQmEQR+e8Bl#K7BDse@XQ6k@XHYE9|(Bx7~q{az@%3oe~|=bCr$!}
zo`cKlJ*fOH+&tt1d9if;)oVbXLx8@%fQNmd%Et%r=n=qEL2!2Ya-s=^s<1G?E0^Ko
z=FPC$)D-5A9}k|EmVmczLHM?9aB#&6nEcysfbsEg@Az@p>gWiSv9Vw~YZfe*$zXWD
ze(-DGzJQ5|fN$TzlN&eSF~u6W9BT6O0SgM?@%{UNm6ecB*X21mF!!&&NS-zDA@(jr
z`5lMQHKell??FsRFx&|~1xazSaBICA$fKhmJ1rI7gdB%hze8}|-4TWi=nwLYG{DC(
zfF*^n*xUrlONv1reiSYo-3R#KBD}d01nCcApuD&c{Ei)kXHOnO;bmV)I7ae`KLfW<
z9far65s((P2g;)lQrQW}%S?v+YX_kw?l3&r`xlhn*$<fD2PFx?kdv7TqekkItSq4V
z=HE~mvjx(_J>hoX2B^BX172M}3S}V%P<ZkWz{t6P*PS83-x`WzcL7FOK-E<X_z>+1
zDQD~;HPRhQUxWh2EG9XwhUX7&LD9=lc=Pxi6s2B)th7XUpLqu=ic+B<_Yq)qAspCe
z3O)xNA+7K!bPN0$em+GTEME=iaHc2py)g<5vlhW$Dd)k;+8X==0$`BeT`)dX0&m}!
z!=<a&;mOly@XM}BNXy89GiS~U{>v>I-z!(H2s*iA#}3%CWeaTDv<cR(T?;E{%$=Q`
z!NI|S8Fw%-F@c#gXM%x&0sQ{^@9@hnzrcV21E5czKG3^&Z|K#l*FX70|Gy3D>gs1g
zgM-!8gHMM9vmcRD51Owr)_z*gUIPXViKOfS<E=ZkESmgX?_Yi!);B_3{n$vao!;BN
z{ke0uUylzT8mxZIVDp|`+rQEJSBsX%j}H!0KQ{gEy}M;?fB53}R)5aZ4_7}ndc(eh
zpHKMdv)LU6j_ZG3{n$FYLr2tRj%wPxwPx4$!RjlQ+1f0b+T^(I*WY*Q*h5|2#d*bY
zcL&pEU;VqEb{A^j*K@tc>Qzgv7yQ*nhp~5f;anKAc+<wUYm5YTCz%_L@BU+(FMW>g
z7qXtNjus}f{+ROXh_mNd-p$F%(rnI*iS6|K{8?TS7(UgbBtJ@h_homrn49j<v$H#N
zXyFcR<nAD+Sgq!+R+8_o?sM5)gRZw~-_yNS>t>+Q>@(0Hg=?kvTit!DXlLE)-~FQC
zY%Z>twAuq!A)E<012tLIfW<X{_ui8o+XAKM<Doh_5uV?Og_6P|C?flc#ibzk4}qFT
zi4d`AE4=dFL-sZvFf|=6_#Os4a1dh1PFMK{00y2UyF@nR`VF|@y_0Ov6TrQD0S}Q4
zIYf5$Fya0EAbjak$UI18XF>qao`q_P7<L{)R<4BO<UrX^oeFp%67qwBU^mUL4-w%I
zwr-tZhnd~YC7b+|=CR)3!ElG!?l`jL4<0}zrOPcW0G~Z0+n)q6Cr`q;efyyD#S8dj
z+&H**{yYqzIf>cX@FFG#3X_weSNHCK@7_TY+29PK$)>VLWWQZ#Zev9S6p&3$CfmJ+
z_B&4=K7@r-e<kgMACkQvJ!%x$pK7SCs)E<AUO@s~zq^b29esmjbQenR-hqUT>!B$6
zI+Q<s4DTPr!&&FWWKZwFlMCT+X1No@AJ_@e2X;Yq>~$!*77mqVrEq22Iw-#x4h1(a
zz?1M`NDA0ZV{{R6uajM@D1+#2%fSC{H@Lix)}ednpyZt#ax>H5(V^9l8g&{9axx(+
zY$v2Wr}Z-aB*?Qf;nv1kP<n&L?%r`opn7k+52t>oz}xg!R7UH<y@OD6#|H}I{J_Iu
z9>mgm@jm4~<Rm|VJb5m>T1>vwbvH;k<w|Sl7Fq{(K~l_FSh{!tRK9%%HJ27bT7U`J
zb7$)RGSUHx35THKHH}%;Z73o?6wl~Gb;K+hTQkTBF(LWvfU>7SQ1vPdYD#H6JkcHG
z2m3(H>E9s#<aj8KG=<`;iy@!Zlgx*qaQU1+`2$u^cy}}0x_%K7qxZv$`xoHZqgaTG
zy$#EjO(#410p7gHg2dDyc$j<|?z|3x__PZ!a(Pb(NjwgH_WcO%F|IHyXdryHw<)v=
z{t?<o_5$sgkudPdbeNFs0GjJY!JlP2;P{CEI6^vAMYj8GZZ0Ifd<lAYA3_H0XY$?^
zz*~79q-JEngrExW40{QEw-!Ro-FtBH@>MARPz5Dr6_A>q2``dfLL&Jg&z>hjPF^9D
zR#ZcBY6d)hnh1%nvmn2y3hu-`gfY{PLRD1_BqqKP){7kS1=7;e;05V#BI)4c$B!W)
zApstcuE&%9#gd+0yLJu2!^2_g)~&*NWM^jwbLPweGA}T6=uqg=rHe4{)mSj7s_d=S
zcrch)IenDg^vVxHZmRCUfupJ`m6xa9^J-~ST0XU^TCb++mma-;7%-@NkAXE)`Q`GY
z_ih&`*t>0V+|{FFuYN;@wHZBjcn`hl;`OA`GS`5B0Q(v14jy!v`<-^r_Je;MHd^l5
zdz1huDl02pA8<AL#<laoOa9&V=kL1ooIUu*HZ$atd+RZVijtbr^(!|iT$i=e>>vQ<
zjF!vg<9pPw>!qo=Th?8<6?5xmR3~jM0%&#aIeQXamw!93g07e3CvVw(Ip%iE&B*pW
zJ8QM=&_Y9_4ZAF#+@o5!{&0)W<=b~+ZaRL$0Ii#S{&};{<Z@cs9rb=w`?L6>5naD?
z_x8;NKh9~d-S@LrGMQNuL)!5z96stdwZfu{8Cworx_kFd?4Tb9&uKs8v+v^%b!*vj
z{rdIGMh>Lwf9Ad3?0+dPE+O&j!Gj0S`L)S_dw#OkZTignYrYL#e_#0E(PqD}glEqZ
zo6`XPI{LF_gG~PQRX?pRJ?9Ky*E1il-+XXQV&bzzuxRtu47qwUjTX(?{G|C^m-e$r
zg73qRoZ9TUG3oj9XE`H<ZhfVp(c-(dB&e?4C#tDsp7%Yr+1tb0+haqgZY|mM(f!(M
zcV>d>)Pv-gdfs>M<{e^~`z>9bF>J^jCI`*79Swx*TeolCcYuZc+nlHc`!>G{fbZu1
z!p1Lk=kkI>NB11vBLt`6Z|z4DU~s>_b48U)ElkSxKYZdO3x|&!ao73c%h7Fy4ehV<
zo2VWIe<r=~JGt9svtQ`xQzuWH2wdy5=xd$czbUk@AT>YT-{=0zS8v{=UEH!FB=~Gl
zVBp`Qs;d;&^W+akjvO<7@~f7QA3u5YG$Si3HSAo|@^XItol$;f_uk#Rcl&zK$T2I%
zkIy%HmztSU+Eh`0iP6(ACz-5!HwrpBKMb1k<Z<4`dy3jgeIKVCKf29()$--G=H|0z
z&6=?At8wF+)+jDVJV<xhzs=jzbM?xV<QrO98V?)RX58c|#r%nI@!ug_7OvY_SbRHT
z^teg#azzCZXO7fT+u2!|&a2d?F_s%u)Hd*E#F{m0%xsn}UA)-Z!qlw1WO80XN%8L=
z&0_LEfB)n6Y2t_4Qhx5}mO{J6DB9vhHGJmS(AoKa!?`2(Q(AoNrz|yJE&3@1<fnX~
zSWWRY`6;m_u*t&{@Fw{lmu>={2!-l6+V_P<0+J2J&@k9zYX`*_E{Z<K{{2u$e!J**
z_(BEw8*!^w10FjD&;H&>euzI*(0&aA10jp>d(F*h-**ZM>H1FEw^dO2hPkv?2?>E?
zix&%f!6nmaeIXwri2N5HDm%~Wi;RTA;9y$QE<hCR5B!!afhsE7L3<6P{R2it5zoXg
z`5UwJ^dQ{Ji~15<>$4QHYh=^!`uV{X;xTypb{IdL*5;>A!Ik*Pj*b@hj?BLxJCC#;
z*qE6C(%O(nzR-s^Zvbf@S)85@uc^K)!lpeTzpJD~@L!O8lL@qEeUq69Gl>5x+Gm!P
zmI}U#kJTbL>EsBH5AKJU9owPeS`<{=x(OBJyA(Z2fTOlnaNcb>TwK2fHkg~isWq$M
zMPLAAUA_pVv>(lX_7oDXUZMSG5X7GifxU}JhH){FpOFrC!$P4rPfq#k5P32H-o8wP
zg3G6<J@OIaE<*9OAV?1KhM*<$DIW?kH?Bbz(Vbs87vi?tkvz9ic@W$Q+yj|c{UG%C
z0f-Dc2YF$eNuGOY@9PK8BM(E_b@GkkjzQen1LT+Ng>@@kAvfhI;9YMjCq1}#h<sOn
zz!&Esi`v1rB%6X%$WJ3oMG=&~my>^#0nc_Dl5a`AYf2Q<WZZ$kgEUShZ{ekDGtxKm
zv#!`dVYm%s1<~gyC&9mY8%|>#>jkOT_Cs-69AvzH200n8q3Y};s0sTM@S+)1KHLj$
z9-M`|*LUH`ok*zIN%b9R50!xfpzx{_l+nJo^7e9)=Pt;N-4F6dr=cV%jP(8k<VIRU
zO?f^P<)y>rOBdkA>1B}k{0S^{(g&}zGvMm0(=f@sKNy|W1NU2w&}Gy2&}5%Fv<heo
z{|@O09m91%``R!V82<<8r&`18_gld~ITfbfdkmUePr&%oRj~2QGZ?tD0w!8r5PXgb
z(wV}-LdYkb$|awN`5;+YS&)&DA^0LGDJk&!^=o)Zz7X?Eo|2x%kuJ0SGV?{)p84X%
zix5e3;5^NhV4538jvN7RZ*O7WY;SK53l=N@Gt%L|{`w1sldcaMGzfHbbd-Jy3o}1_
z_{g+19zImgoL*H^^`S0Nc{vr-t^iVaS?;VNjSoaqT~pi8%)wn*7(B9OdVP3l-i+%M
zZr>^`qlT($s>;<ycbwhlH%rSgzYY1h<KUW^Qg}u2tXXb`JRDqkWNXFD>0LYjHDJ)t
z;bZmmCrq}|={T}R3D?M<m6zwXUlI1~*x?=XvzeB5Zw0}mY4#lkD+x;E?@Qi=990Bw
zFE7v8-?jUplae4gd2x3oK?%7wvl#wfeC&avhrPTung09hHWGqK$pV35tt-jPD}Eoc
zckf>EGao#<cQ<C$oNxanC74F|WP_ha@=lk$D=nI}jqndyAes)E-%APfl7(R3k#j`c
z<lYV@CxLv~1j65ub@@q3FhRs8>kJmhq2%q`x48`ehyvlwt$WrIwEVpHKn_p-oi|XN
zLj(*@{_^952lqP<?9T~4|Ln8Rntj<+L7+3TOu%OoLGa<jho4YLco5fTC@1)$Su?^n
zYoZ|dt*gLL@f#vg;2%A>^VcsTLH{PrT736i>n2Uqlbag-Nnwh}Q1Kfg2=?{$rMdEy
z@Rq|x0{teRn{{8%;rAx$e>#YvLk(l7IEx4r_{R+Yt3WWR$&am``>yTopnhPn7`h1^
zD9$8;ZM$~udPd>N3$Xr03{#s}YdqhztHUC72WK%X;CLcX;1gfLUmQQF$rs(9@7mbm
zEA>&G`p%ngywIc;pP41#6O)pXUcH_x!hfCAq{;8I&1V1m3-v*Kq<aYXq6{L~wsYss
zS4jfC8$*wsG%dMFvnIp({P=m3sqOekcOJ>)Q<R>;@vj7Yhxx-N7&3V`ZPJVlSd;!-
zHClI=DdNK}L~Yx=dGpI8BA|6~oMJ%Lh4K1ap-X>t)DZAHBO;>qc?%)D;N|PrItqO9
zsOHT-S1O;ZtDrxHmm(t0@7tjW8@@IDox`X8GPG8g+O%swd%TFh7;)_UzU{SP^>^L>
z6!BjUmlFJ2tX}Q?$zz1~QHIrXh6wO!dZQ!+-^|uf;&-18lmt)H5du5<W0eGL=a{S2
z;!mZW_LGJHTShSHOC^C;EnKZ2EF@okI<!s*a9!XqZPJ8Vf?jj_)!LteStZ4pr_Y{^
zh>W~&;mlbc+&kDzRuIgeJ6l(2-`?fs=I5V26M63DwJVn{L`D$Rg)?W)99rICh|QQW
zCYBa`W-pMM&v){Y;;hpbF8}#wYHC_qdV18=i)StfjU94#{rP8ebG5qR-P<=Qe;y7^
zNl_4FkbY;Mzj{NUiY%|Hx02)=(IOTWZB&mSC+BUhJp9y+61Fas*TEa5%SX%}GGg46
zKRzOm%V*8XD=w{5f9hMgT*tI?=Q(q_bt5XPKW5Y=C@!wc51A_~4mUIF(L*Nd)8{uE
zs~k=+tE5itYVX<YYtL1yWM)cupSg4APRU56{-n8;R@W6zAuZh@p~p}7Y~QiTbJ?=L
z=8EvSf25`)8%~-qp|~!-Ad8myYXaQcn<g1;I#w)ov9`8wo~W<K7Nc2}b(Y8X%+dwb
zfv;GxWXTdo%i*K+zML>=s-Z?ro%)UT`<`n6?zn!82v5$FO243>@a*x1;CAIs3{GoN
zYI%(mU+mu?d`xBj6ak)`Tv#bp2x_6&e*O9_TmD|RP6@XgH&d;c!82zS6smm`3KYS^
z%E`&bhWr30V!D9cX8su5AYnnn*TuW8{~z7AgilQWhwfXd|2N#X1YS=Rzi(Ls&`!K>
z2_rtfZ>cHZbsIQO2maGsVlRXTv6oR~chBbm`&t=*KE;{9zF;F>pG)yqifw`a1o*gd
z<7RExu;JwifB$!G%U5RpX=L<l;DG)&JN?ulY|d{ZZf~-%c)i2HA;Wsww8ZW|{BV(I
zHu1XK8W|b=c=*VX_s^a@MyxKxw8E#fok_*~YX|Yx`js_hCr%>Xx`niN#2UFApWe7p
zJ*ro)2SmG>;&4+_(~iNxAr+7B-^YU7NBHxp&e$#RXFRaa6!G9OL|<RTQ$dJVE+ev6
zvr>3Mb#(deJI05FOeWL1eED)|c3LXF&%A?uZ;V3l)j*$vj)>tzbC~GQT)?V}4-kvW
zYM%{QI)8pT(R)}}SZH0pexp>Lk%mR7SI{tP5q3D!6K|h7h<GQC;$6&&d5AF~!T3HU
z1ItT_vAnntqx_Cl68#pdMT@j<-i|FL<B3HtL-DVa^Ek-wF5WsGfq4HO;;Yw~@gx~9
z9NmX`v2j=#8;c)e?_&J%<LoOfYpiW-wPJ5xC@p;viX{obXnd*!f7w-u{)cZMmJ}jZ
zRubQcg;!o;^|e?;pF@bDp%~@q$sWL%x7c}w*8QXArG+Q|Kuqw%(mVU{)%Bwo>vstA
za`MH_78D@HCJ@~@#G^;B%Et$nO`Up`=zBXYS)p~)e{E@cxF_OuXT-?4h*1_;6=s16
z$2>4MgJfP<ikS2YF+QHk!|=47U7C)jCi@;wOBWZHj**wHls<n*V;r-X`nMWCM7v_u
zRSPT&F~BE#|H8DeJ^1EI5MJ26z0hOs+&crcw8k-7rn^>FR-F<O9+l-~CS&@87|h8o
zKzU9M=47T~R$3yyd3+92Bi%9Oj2$jEoBv9yLkIR`%a6dH>b14C9r!%y^@r!t5qRF+
z5kuFw<HgOJ@#Y~PjP(!1#JC6e_I){~W#pihwRK|Kwr#D5>^nYh;PBxi&c%iKSaoj)
zR^R*^%cBos;bmWxhabf^A;(c39VO^pO@2NaiZWY3u>*)dAqW9}N4FN;-d<iAv!$jc
z?l8&d1jRFm4=y4;j=?*p0^iDCB-LO|4Ms&prT*~452Hc(It%dh^!Rf3_P_g`Jm@vf
zf1lT%zPr2@o<F>I$@LRQysiZJpY~j{#*|z$3-X1WX)7^p?AWnwK=QpZcQPXGu*d}9
zE?JFKiZ3ZXrTC0uFvY$Uha;$UMUoiB=@g?WMj~j0VBPz6qMdPX-JqS3hGtv_lL3UU
zP1sOm-}7QR(U&57<<Gx?eF0JVIstV)=07mKqd1H=I~>F#IkLvWYj+y9a$*o3d#Bjt
z*I$3#OFM}?+Ph~A960d7Pe1*1xpnK-{vg^W_9YJX6_JS)2Lk)54$)8?-JwmJWu&`D
z`uy}$aPJNs&b0sf>*Jipf#VtPEfnL^K)<_8oH#Lzwy~He&&6W01+QMc#2eS6aNAa|
zGIMkDywPLEyz1V)$E~lv`YNbNlP0@~X6>Mk9rwE!7`*aXytp`e*RJY^ettE#e0^(t
zmn|z>GIgqaxVH9PU|)(9ZTBE9yE;6K8a1i|>HEzqSFRv!DKR%YlO}fs#Y!<&ms3)T
zdD$5lOZw~Y?S@P3WJSgkCS->#TUMPP6eQYWvbFf)1!8I{BF(kJ<Yc^k;siPy803D}
zx^)<cXQpg?zLfGnwt60G``Wc@7#<#uxo?QRJRfUH<yc*sORSKcsH!4+L*);A5FZ`D
z=xxjJ;o5bGCutoxe;)C|1;iUSgx4tJlP6>!$*#P4Bbce&v^3mdZC(1~H{USZzLH{p
zKHfsGw6rv3?S_#Jx_13K*(Rbb&Byq(3pgxjAiBr6Vo2g~d>FqQ-`(1bj}EQInB^-G
z50EWCOmj0Z5b^9;k%#DLkq43^rl%vDpDetmxxUTPvgGS8zBofoF5-GA*qVh47n)qW
zcoAvSfLEiUFfSvCY;!i=dL4o^a<uNKquSx-*y_ON*k|957_!s}tNa7VW|J)T?iJTE
z#sk@Jybwt|kQ`_|P^@c;koo*M+R~VT@KqGh<KqB}7A-Qldi5$kr|XG{FEA(NIbwb?
z#!~w&LfT{dbKUTpQymZv0FGSV6I1s2h%)#0M?7>$$%FrKS`$Oa))NmmiHC{`tRJrU
z_|)|O`R5xT`V2oP+P{1EE~!l_zDRnB*~w3d_h%TN9E|NQ_r-44hvRqW$j<BmT()dF
z;^k<ujgSzLhl4Z@`}ZMUdr18*COcU|dieIEwiV-GGhsp&HTyTW7eH%;Ni4}LoyIHa
z<x9*-CjH5Z$A`(Mv1{Bo9Q<G^YF-(Dt-L-*KhGu9M!cwN3LgBZ-wzW>?<=wVOdJ+R
z&^%zOSE6jUx~iID6;{!@dt&|i4{g5u@));K>=_%Ad-v{PW@aY7ew~bOUq7O{ZsOyV
z(>UnmT+~apK<(SQ*k+?TMjzNk`u{{6U&aIJtl+~GRioTL1VdK1;F*<9_$ch6Foi42
z%dxZ|A4~G{D9W+2tOV}_oy3l9+lBy$Us9vFZ*rgJF73N8IVBBqU(=fY>JmOnIfY~2
zI^neZ71;056x3Wd3S$qj`A51<{MPdDkbI!xD)P%b@CfOCS;`eWwR$<0<riXEQ6auf
zOQty}#)6zoynp^2j_T3lIyF6swZC}rVv~mtACk$)!L;-Y%zI7sC7#2iw39fkaud!i
z+=~+*Uc+Ilp5w($JE`qBagMQg=MLhtr@{m4PfwmgU+P=YqYym1)B&p=Ct`J4I(~=<
z$5NUTrFZXO`P0Yvn0&60J$ghb`fqP<Z<3IZfNyhiF+D3A-zC%dJqyIAkHb;-dJ0Ym
zt;C5mwFa%v!GkNdP`_^@lD-Q4f68<<M;Pl$c_qdkK7?nT7vn4MJ!G$lshhV%{ZQBk
zqI==zhhuv6x~v#~M@L7K$4{SQ-n;ksCjAAzdrh)^?28GvE@4-yrvFhy-P4HOHdUar
zxhGcLxgpw?5^A)%T2wGHkAluU{D2>>lbuYb^4C;w=%8pP6gG<N%bguNuv`1~?5kYD
zm#UqdT}+-mBLDH?Y%GkBQU7Tk-9LbZaef$b@g{nQJ;r5W>G;RKTpTm~D8{q7-%wzF
za4dUWJlX6!WJ3bUHXk@p$3|5X4}J~~W$jwGcA}<*@3gxtbvJn(eF!Tz0p^65;QLfI
zk4ew(5#4=nF~;q~qB}mAa(Ew}bzhBT#l;`DpPfa%;!W~5uaS>_UYwf&0ZJQn<Ot@I
zt#Ft)@foe3?2DM}C%0h9id7~_w6Dlr1(+6KLjF39f6PYegO?=IxZkCCXDcRbUXE9M
zkJW9P*?F=Z!Wu|^xG*o+c#}=9wUZ=^NLSbDVcOd6yzhdqx6Ey|$@9zPUoQqsIpvBa
zsif0U<TGDi_Hm4+c+Cwjt+K*9=OUEtv!~Z-y~StGXpMZJoSV!>F&=1*e!PA?T8|&k
z)<EW-)qX2txf}IA<}9XN@FM%4h$XMC5btJ)mn;x3E)dg83(4+UiSf!Jthiu_5v$Gc
zCe693sv5C<_8lCy_R~5d@WAFL^9wFt#sn`fbe}o%-d8PJurJzcNY{UNcXwg_UATIK
zwnh)JEQ$IRqK7qseXu%M7i(BN^(*byh9jOHL3%ua?4BXkM9jup8)xC!4eRjvjaV$A
zeN;`>8*y%sA5ux}=aPL4TeYfu>C~x5zWe&?4xoHBRc%<cYL#Gr*cu#j_a2r#J4Njc
z#nQJ=vFQCfEKHBb!l!{)cy}`vUtNr)k@NAx>5*6y(3A8_3-b>4#oO+~@#=<!cxBr<
z4BPBQJZ-4nWo0F|o;WdL%76j$LEIZOg9gIt)vHaO(YU3NpHf<0iPfp$i1M4llrH~J
zg~er+_^!AT<%Lz4lUGDyeuG)5iI|=gkC_icF)wBd?c=O4|KxbgJ=7QF2YaBW{hY!d
zzHNJns^12p&)QS!^VIKuw($Ka6l~z#@UwXD+<ANv6N7I^r{B?<SwiDmSX6}X-oHmV
z?OEQ+^Dy&GHl}7|;p@~)OiIqgXRosG>GK!(@;=G&#>JYDbLY#q?bwm?$JD88tz~<w
zhJ0|fWy_YCzaoE)t^dpp9(G=a`^^^MvBit=<dP*A;^u}Cn>OK1n!gXp_9PNtDdb<J
zB_&}Rr+ZE53mWrh&l9PR7nt}W39pkcM{Db`-o1Nw1?7IBerW39;juUQ^=nK?&%#%+
zmoRF*CFzVko?7aRCtY1BU4|jcSKyfyD=~DX8(mwC7s>a$vBMkhl5I_<IrCO7C;R;l
zb4XTiva-l6Jz3tjZ{Jf?{}8V44F+v(?QbI^BXjc^t-OHNs2wzCO|bgLDy+P{6H9OG
zL3!jJOb^+ONddd@p^rDl@85}Wdv{{&?wxpd_b&36lJP?+`N%BN*syp$DCmQ_x;oo~
zOb79mh7AT9d$YH>^6HX`8Z3F2P3@9>xk0{d+-{0wyYJE35l^=6KJ7p6pQ81JY{~ue
zSbaAP%WsBb(Y0`V|A71<8VkYxWn>8F0`EwlexEq;5jDYn2!rjB)EjC)H1u3}(Ysu%
zc^!r|v75!VV|m+g)OH-T9Y^*vj@FX6V2ZR5$I<+_cZuRPth{>-&mB2jRmt`pOovI1
z3cqvr?%jFKnl)qk&(5VjZ>ar4K8OE4>9g%=P54}_xxSKk*o8HUwpqX9Y5j<&{Y^Zr
zCGqDdM)0<2|9<Z#7DPwY%=zoD>+#pG=hj(|k!?X<p`M=J7GOUK&`A3%Y~8wb`1WmH
zuDf=4c?J1w4~#gz<I>d=yY5^+x&KjY$f4Avh~v2_mjlb+UOR)i*Uw?W%?tS9?sekj
z4!($tsQ&D;&!+73_TK-F<}UN09zA}XbLrBhC#O!Gy6EEK!uHS1&u{eGp7ny7B!2F(
z;qUL)cy8?M;o&*-u=mz6etUNsoj$Zr=Cfzdx`6%r_wU=W!;5hLa&U0?-rwJU*1>}Z
z$B;kSb<(6sEqR+Nf6|~p-F-w#!_Vt9{5{u(qvH7;>9aeEC_K9Z;yGq*WaS8I^`6_&
z6nJv){E3nh1GDMOw*3y`9-HlJjCeaeK-}kj3*s3?Q>go@@x}s^8#^mtXEHzVIuw!l
z4eWJhpTnn*X+uGc*U@FjkRjV=&6*|G*Vj)SG-yyl`}Xa_sr&#%rn~ISV?K!cMRo?m
zUI)k4GIpAySjQES^^cuFvH7k`k^Ll%9j{|4PuY)U{0X9bx^TRzvzdkh>o?Qs{={?m
z(xpoUzlH5#LTL}YdGls8F)^t$G&IZ~K79BKEiJ99En2kjBRu=+xjTqwZGTYw1w>zn
zjbA(d*-%GQbMHJ|-FwcHCub}-G|XK-b*h|2$4QgkOeOhfw{OqB(!LMa&qsmqqaSR2
zQRw?W1>s!1ZQHgJr%#{$Z0F9M7#|;xS(#)vt3T9<iO-+l<x3ZE_pY6|jQaTJpMMsO
z9z8ml)|I$#zWFAY^T5_t_VXqSrVkx@YSY}gMF*^`@ao@x<9%8$v&g5(qP=|<`GU8|
z4-F$fY?rw?Zk#ixOs`L$heUUnj}1FN{P!n}#b>|%`s;L=O!kJIS1`Zn0r`4wGSZM1
zA(c^{ok4!VH4HrHh3i(jqM4al<&-H?az+du{CI_-;afjDJ51cSPuQa%t?_~nOMao?
zPqOnI=GT#pFQI*M;*~4tM{D!ynKO&JeE)qE@wFX5`1zb4RP}*$qT7lUD~e*M{zs1<
zA=~$}vxn>qcINc{pW_?m*X|W#ybs>;T_ecz68R_<(zB?4=!39MS60$;7K(d`Uaxm=
zwpOxpnHj43Fn|7h{lkY3)3)=e;IERsW#_-dKl%Qpa@DbjeB(IUhuqyOM0vOu`dC?F
z;)V@~$Bv16M7C%8ls?cpqX=^HTYYHkcprB2InlPE`Cx2ptk2Fk&r=($AGc_Kz{Vjb
z{grU$rHBUS$D{i#N4)y#G?u>45zEtQUv+!05G$_lLO**ejB|Gv_jYW5^`G=1KfliQ
ztzI9P-DCU1mi753yP|)L+F|E4akRe(p|;pK<fM`R^FF;cHa)0OCk{B>7v~3$Mz6Co
z@ajbeytQ>XhB`Zo=ZE|E|L1*R_iyTjEV6;yjg2e$d|<Y=YkfU3H8s^ge*C!L8}Fqy
z**FMiA8F)2y-Ti*tpeKCiC_ACgRmEb_|1+l1)VKqyt2LRf7%Bo|3(6v4{T0@XqT8C
zeJ$mmY=*v{pC7XM%lKw?pPgG~C6i3#FKXkzLps)pUk83)%m4f(x_EWnI`O>p)T#fx
z59DX53VyU_;kK2n4{S}T^?k{1>XV;DuJTJECXwIF`jGaD_U&(<)JDxnojS4giFUR8
zds)s$Ipdq{?LVatp@h2-tvsLphmc5flC2LQ-Z#*b&I88(i4!OAHSL$AeMo2gXFsfs
z+Si8HiEY^VG4bAI)A#KB2l3`jM6%&3`*8UV;-g|x3S#O$#iyk6$uw_k{;><f81&Q9
zVrPu({`7YW{>{zJ^#e&JDJdy+`jEl+&y1^$eeaI16Wg8XEbu?cy+2;1y{Mqas`?Q3
zi0Wa&q!^t?*tf(#t?OhSumJzD54T9hi^h%1AePrr?4;m-!GZ<)w6_%YywW~oz9#<D
zV`}5CkN>O_JB0TV_&0Ud!#E~ib~e*kA1+@;EF>mUXdiVV6qCuHO4zs&3op>VhrM8p
zna&R)pEWf#SoPrpekd!$3fliDVk-FsT!)y?)my>8rKP1l?MsBS4rw1UUq3}my-^#-
zyfUv7wJ!D-_;+xagjtMNW(OPV13QCa{FBaKCBMnX*$IQ!tq^P$(`|e&@?TL}g2nlA
zEY8bqFfu%!10xjtFI>1#|Mcn8w9U<^(}yg^fAW>uI5E?qPV92^7bX7@5hDMJGqU=9
zkjn-Bb7-9Q*xKQVj7*`<JAr$IHL5JHK;Xah{X2Y@nciqTv2q0t?9_?*s$&)WFIu!n
zKR7s8xYr=<gK*E~Wn^ufS+J%~>~r%E)ZBUkms_sKEGFZ)xW;2)p}>DuP!R5NUxR*c
z^K0v6GR<e_^~8U1o*Z*tK5sOhTC?UO{;jO6^x2x5m6cVe4>^qg7w2o^ymGJFIQ#7p
zoN_Y>b+%TZGx49m&cjvl&(08t|BCwwg1r6X9|(2Iqx}T_F*Hone|Dddc&VZ>tGE`0
z6}N6;MeJQHy?+mj9w%V%>eV0dZ*6U@&-`X~uSMF2w<*N`^N`v&Cp#3UKZ(OBSL8T}
z#LXh(f4;RJ-rBLFao*YaGuIzxXPCbGSTDlRHA{q4@R#l;i2Sp)OvO4Kx@r{;>eMMr
zs{f4tvuDo==M2(5<TC!B1l7i2M-X-W5XX{BJRwBnzu&eBoNRL*gUB|2#5b*h0^jUD
zFAMB=KU1_dg)}#A(S9av_ik|=WA>-GLR{ZetkXyB?Quw#E~lmT$HvA+|J=EA`1bAF
zI(^7Zp|O1AUmJ&#iq!AJ;N2CdW1S%AKn1fSYz{L&xPkke$c};DaQlC!gbX@m9=sFn
zKjZ&$luBQtgd(>;?Ce5I!N0Aotv>VFa>)nDOSy*?r+z{Cqf;nPCH@~Csg0|GU*g<=
z{5pLYcAx?~S|;N%<0Y8D?i>D7U^<dqsa$_qUtUsQE?xgef9WO7v2{j9@0iO8;$A=q
zc6N69>^^(ZqoYI%Shfu?_u*;GWBkV-YB1i94#UW(>$pAiA<kMEk9srwg!TQC0-K|^
zr~@~s16N}{+2^}Tw#PzGF9F1JjM{H<+1uOeN09w4i*^-w&+`P#c@Tp6X-|~<LRIl5
zMZdl1XJaL<MXCZj&sDWfH`0d+^6z~XEy4j>TI_7@XOQf}92^|<BdLzUtF8j?8E$~t
z_d~FN@qgF*)8a*MOxUzuu#If3Z#0lyP`OSw(uX+m&E2O@&jj&IqRt-7(a}-=0?m!Q
zi>?CiNlt)o;?ENQ<Zs1n`1BaD8H1c0FqHXn4Fz_NOMZ!PfA>G=Lm}B_pM?wYmo8o0
zLEOjJ*#kQ{Iq9?gVs69|f%k`t0JGvku`umn!}t4C#ELVk@u=-Wyvo+I`hkrL^MlyA
z{3rII;^09HqA^|k`|r$e?gkC~a+<TVv;L(^m&gZLicgn!!1T+zXt{icMd>uZuGsy@
zG3%5y?p<X5aUa<JoaxUe_Mw9O<sh>6YmJOv5u5#>k@I%OKYP|FKPd)tGhb6RH_1di
z!J@Q#q}Q_lQp`GOhC$9U3?iFRs93|855d-kPv}D-`C~zjj<{j&+_auQ{x}30e@=}3
z)Sf<jR)?LL_>jz)FT~cc;xwu+d=}Z>X^00~BKrIb@n{F~-+Lnl4JDg4M!eogEIB(1
zL*0ypH7AbhEMz?YLmw)L|G1qy1zWRn+O*SL-y8k4Jr-PDUG>>{6}wl*_PuN$&(45K
z(rB+2ItB4~N32NLi$!_qSdw&}e5qYndcy@joc<N7kN!w~`vTFoE$M4Fveo@acZZ2|
zJSO`Xl7BH@=ttzXZJ0p5O4jY$m__^ELfVsLk-QVhFTJ{D3;I}D;pVw>@7s(Y&(5RS
zd2)mIsH9=Zk|p}=IW?v;3i&httu*~M$$1D?-d;{-yOgG12^JL<;rsXRh53<}mnW>*
z%<ss5d>Zp<T`Rn5kEJ2wu)@DP;(-=4X5Uc%J0S-2#CL}W<9)BG7`9?Io^YIpJE%Xx
zxvi;b<;oc|((NWs_MiOguk3t;?QL6r3hyi|TeeJ}o&B&qBlG*q+4DifZ+ZGHthqcF
zKhR!IQKqU7?0zxxn-u;x+XH1jJdfG8_h8-y8+?CeDwdoWMEz<`{rXze#p9ik{1^5^
zSnMp`9Yo)NJ@4HY>OB+KSXjP%xqdW_Wo2chz-tBhUX0(|*Rfbro=;P+>i<<A*j|*~
zw^N+Uu>0~!@fR`qrVr+XTd^^(T)ldA{>+&(6Gx98eS6TLLC1L?+I|ZEB>(Zu<}f~4
z9~du8m%_;QGJTBLz8$X~IDikxM@lANKAq;<|A{`ZHrTVB?97av*Ry*LOm}HM#`Wse
zi`h$!PvM{J&qOv~3knK^`q?=&i_9N8Y-58*Y5h1(b~wPv2?JeR1YiI3vSk=a>+E&v
zR|47Vr!@al$bMy$UHPx}f$d=zELgCYSo$75{r-^}`9G#ie-!6FEZ!r2RPi3NVg;Uc
zbHj7A9||KIA3^@f1rHCrv|)pA78FbV)<fFUJ)w0yg?Lug2X?=Nbf{v=lqu|<4LjTX
zq<PCjGfz*?v#kC)F?=IF++l`sJM8eXrwj4v`pLXsBRhCw>sE{=TN&f+O}ZX0?2DML
zvH8P(6_brM)49y_boBD_Dr?oM6?=AUD5!X@p`kE-{CG|FoGq(g5#MGeV|Ao4?I|p2
z-{wSX;#yi8cM868$#wSZ!){Cu*@-XwchJ6lJI3zWicy>YZjkpoyLMq3=?LS!La`?!
zJ0N^dfjtXL>ts+s0Dkq=SM0fr*&yCW{nVgFbH$12D4T<dSn?vgLEgpZ7swxH&+gYg
z!*GH>$8ehB87#gQgawyRkuP-uGtQjAq<~|X_v$5nc*CDzV$W05yJz&2Y{JBe6Q2@4
z?1v=koGt%D_&gvW-~}5~X{?I%`Y-V=K8Hbj$T;%9;x1AoUo7q#W?Z2>&28a1H0D3E
z=Rp+DWiX$V#^vw7|7Pcchd}%e(U+gXyorfPUpD`l-K;7r#H!RQSp8t{|54sCE*gW6
z_+kb-|7e7F7Vg}+gE~4o(Zm*eRSUZ(|BrT)=FKj4pMvQ>hRysh>x?SiG42+UeM=8K
zd{{2<&U`nf`;2$V{i4FcLR`FfaSn+0x!BLI|KmLN_V%V_Z}o)j+qd5;47d4j;XU{I
zRh&M3`mKcv7ka!VJ1Ov9TB<w~k_0Bl&Ye520TsS}BmFShx^?UNZQHhmvAzWQY>zp6
zd@n`>?8CUT2PhuG=aGjo^XhSmexJ-c#@)t*^XIT*$ByiNe5d0_kEYh=ot=}hwTt=h
zzP`TC$)2!Rk+AQk{3mOGBB(VKckI|PYQu&N<2G*GXhi+=*s^8I2I{N-{@uH7ojZCk
zCiM8>_g91bs5_@9p2n=J?D>F8C?}ur+|i?NL3}2;_0F9;O|Fu!OuqX26DLmGq52N4
zUAxxS-QAsim!$>g`G4wlB@OnK#&Q(#HID3w5%tky-MV$`#VxhIF!i6UuTARF{g*-w
zxE1j4t467*_?~JMOIz_&gQx2CQnh+1{12t|+f}c}XRCVY2%fs}6zk>dmGkeN3g1Iz
zsr37)(o{|IJ=OZDq8^MAzwb&5czgD})!WT)Gg5w-azS{gvZ1&CG>1uG2$~cvgttUl
z(dRMrcY)Y~0sHF!9YGhqqPp0xHIJ6O>x%OM?gpY*G$4p@+3M^aKBmIEgB)NU*wt&b
zzhHvu^U@bS4qprJK5`V^ZN%!c6y7DI33`(E54HN}y;X|$RXGXoG5Vf!-0+*4>b{?;
zD}QHK*9LfDp~Xl1*l<aG9Ms6jwr<^8_*H%Oh7mQ;)D&~<{US|3M@P)Dw~MF~Qv4k(
z_HL1;gcNh^%_7Z!{S=On`-&YFh)7N0ts)v6sVTfuq&Y`w3U3to90HoKrD_I^?L7KB
z7N*jt@wD}tOnLUkB|TvqHUKU+eOJTiy7O&;B30bPXiER;8-nJ7Vi^ju5T&3Ph4Hm-
zc*+onbf^U#a(-DlN_ci~2(+X6M)NmKv9Vb~+=y?zVqv`SZZt>!jx`hEZC31o>}k-G
z=oIaY5%k7XXy2|@HyWoG-#sOkTM0EVXQU^Msj|)){GD6Mx&}aRiv2+B2^+ET{0(yU
zl(L$XoU?ZX8WP@t`p<s7e3;PBiNf2p7;?1mCb1;~#|vn_IjZQZu0T75V=Z}G3O;Qb
zX;b+QGf~Fk95bVtz_j&KWUM2|qb^;2sYqoqM)*5JcyHOq8o+MEHx)+CUTDdIt{c}G
ztIwN;G#zH_;2^U$v09?(YHelXFkH*Y-sTqvQwy23u|qFwOH+GW2U~N;UZ%FzzZg4M
z_jc~9rD<(!V`(mPP`o{LxK`iZI$FQgRy5vBX5(n-xJ1)ga-IFt(zFv_$ZBgZyo}LN
zX6oo<FB`69G-QyLrj4;ReH^^hu(yM`Yj2sWOiPo!b8NVli=|EfepG*-`VIUx%uMEB
zYHumLGV!;;y=Gb3X&TC`%zMdP9qo-x9W8AZX!5r{YB~?-J)qyPK2idrwv*XVU8YNv
zpB+c?MjGgklpW6QB!z%_^A{BNW-pnwwdplld@HAemQo6XK1B+4P9|2CroYRUOtW1i
zV?+ao4m24wpznYIrl#h7&CInlt&D9JI2kV>g6<6qrB4HW=_Bo{qrH=ZBYQvSCk}ak
zYR5rl>SQleZ!cTyM1wCgGqAUGwzQHhkU2;S#dp9`e<#YEWmcM2?C)?bV~6oJ&eS1$
uElnrOk*2Ko!?nzftsG>m3yly<uSnbKqvWMeZC50c_^pvO;eSK@@c#f6<q|gl
--- a/other-licenses/branding/instantbird/Makefile.in
+++ b/other-licenses/branding/instantbird/Makefile.in
@@ -51,16 +51,19 @@ DIRS = \
 include $(topsrcdir)/config/rules.mk
 
 export::
 	$(NSINSTALL) -D $(DIST)/branding
 ifneq (,$(filter WINNT WINCE,$(OS_ARCH)))
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/instantbird.ico
 	cp $(srcdir)/instantbird.ico   $(DIST)/branding/app.ico
 	cp $(srcdir)/branding.nsi      $(DIST)/branding/branding.nsi
+	cp $(srcdir)/wizHeader.bmp     $(DIST)/branding/wizHeader.bmp
+	cp $(srcdir)/wizHeaderRTL.bmp  $(DIST)/branding/wizHeaderRTL.bmp
+	cp $(srcdir)/wizWatermark.bmp  $(DIST)/branding/wizWatermark.bmp
 endif
 ifdef MOZ_SPLASHSCREEN
 ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
 	cp $(srcdir)/splash.bmp       $(DIST)/branding/splash.bmp
 endif
 endif
 ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
 	cp $(srcdir)/instantbird.icns  $(DIST)/branding/instantbird.icns
--- a/other-licenses/branding/instantbird/branding.nsi
+++ b/other-licenses/branding/instantbird/branding.nsi
@@ -29,19 +29,17 @@
 # use your version of this file under the terms of the MPL, indicate your
 # decision by deleting the provisions above and replace them with the notice
 # and other provisions required by the GPL or the LGPL. If you do not delete
 # the provisions above, a recipient may use your version of this file under
 # the terms of any one of the MPL, the GPL or the LGPL.
 #
 # ***** END LICENSE BLOCK *****
 
-# NSIS defines for nightly builds.
-# The release build branding.nsi is located in other-license/branding/thunderbird/
-!define BrandShortName        "Instantbird"
-!define BrandFullName         "Instantbird"
+# NSIS defines for release builds.
+
 # BrandFullNameInternal is used for some registry and file system values that
 # should not contain release that may be in the BrandFullName (e.g. Beta 1, etc.)
 !define BrandFullNameInternal "Instantbird"
 !define CompanyName           "Instantbird"
 !define URLInfoAbout          "http://www.instantbird.com/"
 !define URLUpdateInfo         "http://www.instantbird.com/"
 
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..525d9f620a489e01d2bea8d5681f999f1034e192
GIT binary patch
literal 25818
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
TV8b6ju;Gs%*zm{Ck|qBS4j}=M
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d50ecd1202e3b5571fe46b032d471fc560be513b
GIT binary patch
literal 25818
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..81580ddac4da9e73458587646ffbdf93e0284f9a
GIT binary patch
literal 154542
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