diff --git a/autobuild.xml b/autobuild.xml
index cea8b51ec5e4c6c8642e72ecf23da0968d20394e..9a2841488711a504d7e854651b53777ce8ce80a7 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -3260,9 +3260,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>4aefe12a3825d1b4b8370986d84792a2</string>
+              <string>86f6708f393c162cd4f92426b0a3cde7</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15295/98583/viewer_manager-1.0.513540-darwin64-513540.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15341/99062/viewer_manager-1.0.513570-darwin64-513570.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3284,9 +3284,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>db96bc8a83e6577d31657586100bfc35</string>
+              <string>945ff6b732bb907779d96de63249d3ad</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15298/98589/viewer_manager-1.0.513540-windows-513540.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15342/99068/viewer_manager-1.0.513570-windows-513570.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3297,7 +3297,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
         <key>source_type</key>
         <string>hg</string>
         <key>version</key>
-        <string>1.0.513540</string>
+        <string>1.0.513570</string>
       </map>
       <key>vlc-bin</key>
       <map>
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 4e41d6d0833d110b17dd8ffad1a0b4e999f96449..14c8dba39f19c2ff18f4f9f583571371c9415201 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -282,7 +282,6 @@ StrCpy $INSTSHORTCUT "${SHORTCUT}"
 
 Call CheckIfAdministrator		# Make sure the user can install/uninstall
 Call CloseSecondLife			# Make sure Second Life not currently running
-Call CheckNetworkConnection		# Ping secondlife.com
 Call CheckWillUninstallV2		# Check if Second Life is already installed
 
 StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE
@@ -347,16 +346,17 @@ WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows NT\CurrentVersion\I
 # Write URL registry info
 WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
 WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
-WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
+WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$VIEWER_EXE"'
 
 # URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info"(default)" "URL:Second Life"
+# MAINT-8305: On SLURL click, directly invoke the viewer, not the launcher.
+WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$VIEWER_EXE" -url "%1"'
+WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "(default)" "URL:Second Life"
 WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "URL Protocol" ""
-WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
+WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$VIEWER_EXE"'
 
 # URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks.
-WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"'
+WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$VIEWER_EXE" -url "%1"'
 
 # Only allow Launcher to be the icon
 WriteRegStr HKEY_CLASSES_ROOT "Applications\$INSTEXE" "IsHostApp" ""
@@ -530,41 +530,6 @@ Function un.CloseSecondLife
 
 FunctionEnd
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Test our connection to secondlife.com
-;; Also allows us to count attempted installs by examining web logs.
-;; *TODO: Return current SL version info and have installer check
-;; if it is up to date.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckNetworkConnection
-    Push $0
-    Push $1
-    Push $2	# Option value for GetOptions
-    DetailPrint $(CheckNetworkConnectionDP)
-# Look for a tag value from the stub installer, used for statistics to correlate installs.
-# Default to "" if not found on command line.
-    StrCpy $2 ""
-    ${GetOptions} $COMMANDLINE "/STUBTAG=" $2
-    GetTempFileName $0
-    !define HTTP_TIMEOUT 5000		# Milliseconds
-# Don't show secondary progress bar, this will be quick.
-    NSISdl::download_quiet \
-        /TIMEOUT=${HTTP_TIMEOUT} \
-        "http://install.secondlife.com/check/?stubtag=$2&version=${VERSION_LONG}" \
-        $0
-    Pop $1		# Return value, either "success", "cancel" or an error message
-    ; MessageBox MB_OK "Download result: $1"
-    ; Result ignored for now
-	; StrCmp $1 "success" +2
-	;	DetailPrint "Connection failed: $1"
-    Delete $0	# Temporary file
-    Pop $2
-    Pop $1
-    Pop $0
-    Return
-
-FunctionEnd
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Delete files on install if previous install exists to prevent undesired behavior
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index ce4aab20c7f6942a9be068e2646eaa7c5b64e650..f705084bdbccb2fd709329e9fe5b1bf92a1d8f6e 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1,25 +1,25 @@
-/** 
+/**
  * @file llappviewer.cpp
  * @brief The LLAppViewer class definitions
  *
  * $LicenseInfo:firstyear=2007&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2012, Linden Research, Inc.
- * 
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation;
  * version 2.1 of the License only.
- * 
+ *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
+ *
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
@@ -199,7 +199,7 @@
 #include "llfolderview.h"
 #include "llagentpilot.h"
 #include "llvovolume.h"
-#include "llflexibleobject.h" 
+#include "llflexibleobject.h"
 #include "llvosurfacepatch.h"
 #include "llviewerfloaterreg.h"
 #include "llcommandlineparser.h"
@@ -238,9 +238,9 @@
 #include "llviewereventrecorder.h"
 
 // *FIX: These extern globals should be cleaned up.
-// The globals either represent state/config/resource-storage of either 
-// this app, or another 'component' of the viewer. App globals should be 
-// moved into the app class, where as the other globals should be 
+// The globals either represent state/config/resource-storage of either
+// this app, or another 'component' of the viewer. App globals should be
+// moved into the app class, where as the other globals should be
 // moved out of here.
 // If a global symbol reference seems valid, it will be included
 // via header files above.
@@ -285,9 +285,9 @@ BOOL gShowObjectUpdates = FALSE;
 BOOL gUseQuickTime = TRUE;
 
 eLastExecEvent gLastExecEvent = LAST_EXEC_NORMAL;
-S32 gLastExecDuration = -1; // (<0 indicates unknown) 
+S32 gLastExecDuration = -1; // (<0 indicates unknown)
 
-#if LL_WINDOWS  
+#if LL_WINDOWS
 #   define LL_PLATFORM_KEY "win"
 #elif LL_DARWIN
 #   define LL_PLATFORM_KEY "mac"
@@ -545,7 +545,7 @@ bool	create_text_segment_icon_from_url_match(LLUrlMatch* match,LLTextBase* base)
 	params.bottom_pad = 2;
 
 	base->appendWidget(params," ",false);
-	
+
 	return true;
 }
 
@@ -561,7 +561,7 @@ static void settings_to_globals()
 	MENU_BAR_WIDTH		= gSavedSettings.getS32("MenuBarWidth");
 
 	LLSurface::setTextureSize(gSavedSettings.getU32("RegionTextureSize"));
-	
+
 	LLRender::sGLCoreProfile = gSavedSettings.getBOOL("RenderGLCoreProfile");
 	LLRender::sNsightDebugSupport = gSavedSettings.getBOOL("RenderNsightDebugSupport");
 	LLVertexBuffer::sUseVAO = gSavedSettings.getBOOL("RenderUseVAO");
@@ -584,7 +584,7 @@ static void settings_to_globals()
 	gAgentPilot.setNumRuns(gSavedSettings.getS32("StatsNumRuns"));
 	gAgentPilot.setQuitAfterRuns(gSavedSettings.getBOOL("StatsQuitAfterRuns"));
 	gAgent.setHideGroupTitle(gSavedSettings.getBOOL("RenderHideGroupTitle"));
-		
+
 	gDebugWindowProc = gSavedSettings.getBOOL("DebugWindowProc");
 	gShowObjectUpdates = gSavedSettings.getBOOL("ShowObjectUpdates");
 	LLWorldMapView::sMapScale = gSavedSettings.getF32("MapScale");
@@ -615,7 +615,7 @@ class LLFastTimerLogThread : public LLThread
 	void run()
 	{
 		llofstream os(mFile.c_str());
-		
+
 		while (!LLAppViewer::instance()->isQuitting())
 		{
 			LLTrace::BlockTimer::writeLog(os);
@@ -647,16 +647,16 @@ bool LLAppViewer::sendURLToOtherInstance(const std::string& url)
 // Static members.
 // The single viewer app.
 LLAppViewer* LLAppViewer::sInstance = NULL;
-LLTextureCache* LLAppViewer::sTextureCache = NULL; 
-LLImageDecodeThread* LLAppViewer::sImageDecodeThread = NULL; 
-LLTextureFetch* LLAppViewer::sTextureFetch = NULL; 
+LLTextureCache* LLAppViewer::sTextureCache = NULL;
+LLImageDecodeThread* LLAppViewer::sImageDecodeThread = NULL;
+LLTextureFetch* LLAppViewer::sTextureFetch = NULL;
 
 std::string getRuntime()
 {
 	return llformat("%.4f", (F32)LLTimer::getElapsedSeconds().value());
 }
 
-LLAppViewer::LLAppViewer() 
+LLAppViewer::LLAppViewer()
 :	mMarkerFile(),
 	mLogoutMarkerFile(),
 	mReportedCrash(false),
@@ -699,12 +699,12 @@ LLAppViewer::LLAppViewer()
 	gLoggedInTime.stop();
 
 	initLoggingAndGetLastDuration();
-	
+
 	processMarkerFiles();
 	//
 	// OK to write stuff to logs now, we've now crash reported if necessary
 	//
-	
+
 	LLLoginInstance::instance().setPlatformInfo(gPlatform, LLOSInfo::instance().getOSVersionString(), LLOSInfo::instance().getOSStringSimple());
 }
 
@@ -713,7 +713,7 @@ LLAppViewer::~LLAppViewer()
 	delete mSettingsLocationList;
 
 	destroyMainloopTimeout();
-    
+
 	// If we got to this destructor somehow, the app didn't hang.
 	removeMarkerFiles();
 }
@@ -740,7 +740,7 @@ void fast_exit(int rc)
 
 
 bool LLAppViewer::init()
-{	
+{
 	setupErrorHandling(mSecondInstance);
 
 	//
@@ -762,12 +762,12 @@ bool LLAppViewer::init()
 	gDirUtilp->setSkinFolder("default", "en");
 
 //	initLoggingAndGetLastDuration();
-	
+
 	//
 	// OK to write stuff to logs now, we've now crash reported if necessary
 	//
 	init_default_trans_args();
-	
+
 	if (!initConfiguration())
 		return false;
 
@@ -805,11 +805,11 @@ bool LLAppViewer::init()
 	// Initialize the non-LLCurl libcurl library.  Should be called
 	// before consumers (LLTextureFetch).
 	mAppCoreHttp.init();
-	
+
 	LL_INFOS("InitInfo") << "LLCore::Http initialized." << LL_ENDL ;
 
     LLMachineID::init();
-	
+
 	{
 		if (gSavedSettings.getBOOL("QAModeMetrics"))
 		{
@@ -884,7 +884,7 @@ bool LLAppViewer::init()
 	LLKeyboard::setStringTranslatorFunc( LLTrans::getKeyboardString );
 
 	LLWeb::initClass();			  // do this after LLUI
-	
+
 	// Provide the text fields with callbacks for opening Urls
 	LLUrlAction::setOpenURLCallback(boost::bind(&LLWeb::loadURL, _1, LLStringUtil::null, LLStringUtil::null));
 	LLUrlAction::setOpenURLInternalCallback(boost::bind(&LLWeb::loadURLInternal, _1, LLStringUtil::null, LLStringUtil::null, false));
@@ -900,11 +900,11 @@ bool LLAppViewer::init()
 	LLFloater::initClass();
 
 	/////////////////////////////////////////////////
-	
+
 	LLToolMgr::getInstance(); // Initialize tool manager if not already instantiated
-	
+
 	LLViewerFloaterReg::registerFloaters();
-	
+
 	/////////////////////////////////////////////////
 	//
 	// Load settings files
@@ -923,7 +923,7 @@ bool LLAppViewer::init()
 #else
 	mime_types_name = "mime_types.xml";
 #endif
-	LLMIMETypes::parseMIMETypes( mime_types_name ); 
+	LLMIMETypes::parseMIMETypes( mime_types_name );
 
 	// Copy settings to globals. *TODO: Remove or move to appropriage class initializers
 	settings_to_globals();
@@ -984,7 +984,7 @@ bool LLAppViewer::init()
 	LLInitClassList::instance().fireCallbacks();
 
 	LLFolderViewItem::initClass(); // SJB: Needs to happen after initWindow(), not sure why but related to fonts
-		
+
 	gGLManager.getGLInfo(gDebugInfo);
 	gGLManager.printGLInfoString();
 
@@ -1007,7 +1007,7 @@ bool LLAppViewer::init()
 
 	// If we don't have the right GL requirements, exit.
 	if (!gGLManager.mHasRequirements)
-	{	
+	{
 		// can't use an alert here since we're exiting and
 		// all hell breaks lose.
 		OSMessageBox(
@@ -1019,7 +1019,7 @@ bool LLAppViewer::init()
 
 	// Without SSE2 support we will crash almost immediately, warn here.
 	if (!gSysCPU.hasSSE2())
-	{	
+	{
 		// can't use an alert here since we're exiting and
 		// all hell breaks lose.
 		OSMessageBox(
@@ -1035,7 +1035,7 @@ bool LLAppViewer::init()
 		bool unsupported = false;
 		LLSD args;
 		std::string minSpecs;
-		
+
 		// get cpu data from xml
 		std::stringstream minCPUString(LLNotifications::instance().getGlobalString("UnsupportedCPUAmount"));
 		S32 minCPU = 0;
@@ -1068,11 +1068,11 @@ bool LLAppViewer::init()
 		if (LLFeatureManager::getInstance()->getGPUClass() == GPU_CLASS_UNKNOWN)
 		{
 			LLNotificationsUtil::add("UnknownGPU");
-		} 
-			
+		}
+
 		if(unsupported)
 		{
-			if(!gSavedSettings.controlExists("WarnUnsupportedHardware") 
+			if(!gSavedSettings.controlExists("WarnUnsupportedHardware")
 				|| gSavedSettings.getBOOL("WarnUnsupportedHardware"))
 			{
 				args["MINSPECS"] = minSpecs;
@@ -1082,17 +1082,21 @@ bool LLAppViewer::init()
 		}
 	}
 
-	char* PARENT = getenv("PARENT");
-	if (! (PARENT && std::string(PARENT) == "SL_Launcher"))
+	// MAINT-8305: If we're processing a SLURL, skip the launcher check.
+	if (gSavedSettings.getString("CmdLineLoginLocation").empty())
 	{
-		// Don't directly run this executable. Please run the launcher, which
-		// will run the viewer itself.
-		// Naturally we do not consider this bulletproof. The point is to
-		// gently remind a user who *inadvertently* finds him/herself in this
-		// situation to do things the Right Way. Anyone who intentionally
-		// bypasses this mechanism needs no reminder that s/he's shooting
-		// him/herself in the foot.
-		LLNotificationsUtil::add("RunLauncher");
+		const char* PARENT = getenv("PARENT");
+		if (! (PARENT && std::string(PARENT) == "SL_Launcher"))
+		{
+			// Don't directly run this executable. Please run the launcher, which
+			// will run the viewer itself.
+			// Naturally we do not consider this bulletproof. The point is to
+			// gently remind a user who *inadvertently* finds him/herself in this
+			// situation to do things the Right Way. Anyone who intentionally
+			// bypasses this mechanism needs no reminder that s/he's shooting
+			// him/herself in the foot.
+			LLNotificationsUtil::add("RunLauncher");
+		}
 	}
 
 #if LL_WINDOWS
@@ -1178,7 +1182,7 @@ bool LLAppViewer::init()
 
 	LLTextUtil::TextHelpers::iconCallbackCreationFunction = create_text_segment_icon_from_url_match;
 
-	//EXT-7013 - On windows for some locale (Japanese) standard 
+	//EXT-7013 - On windows for some locale (Japanese) standard
 	//datetime formatting functions didn't support some parameters such as "weekday".
 	//Names for days and months localized in xml are also useful for Polish locale(STORM-107).
 	std::string language = gSavedSettings.getString("Language");
@@ -1272,8 +1276,8 @@ void LLAppViewer::checkMemory()
 
 	bool is_low = LLMemory::isMemoryPoolLow() ;
 
-	LLPipeline::throttleNewMemoryAllocation(is_low) ;		
-	
+	LLPipeline::throttleNewMemoryAllocation(is_low) ;
+
 	if(is_low)
 	{
 		LLMemory::logMemoryInfo() ;
@@ -1415,7 +1419,7 @@ bool LLAppViewer::doFrame()
 			// Update state based on messages, user input, object idle.
 			{
 				pauseMainloopTimeout(); // *TODO: Remove. Messages shouldn't be stalling for 20+ seconds!
-				
+
 				LL_RECORD_BLOCK_TIME(FTM_IDLE);
 				idle();
 
@@ -1468,7 +1472,7 @@ bool LLAppViewer::doFrame()
 		// Sleep and run background threads
 		{
 			LL_RECORD_BLOCK_TIME(FTM_SLEEP);
-			
+
 			// yield some time to the os based on command line option
 			static LLCachedControl<S32> yield_time(gSavedSettings, "YieldTime", -1);
 			if(yield_time >= 0)
@@ -1494,7 +1498,7 @@ bool LLAppViewer::doFrame()
 					LLAppViewer::getImageDecodeThread()->pause();
 				}
 			}
-			
+
 			if (mRandomizeFramerate)
 			{
 				ms_sleep(rand() % 200);
@@ -1508,7 +1512,7 @@ bool LLAppViewer::doFrame()
 			}
 
 			S32 total_work_pending = 0;
-			S32 total_io_pending = 0;	
+			S32 total_io_pending = 0;
 			{
 				S32 work_pending = 0;
 				S32 io_pending = 0;
@@ -1535,18 +1539,18 @@ bool LLAppViewer::doFrame()
 
 			}
 			gMeshRepo.update() ;
-			
+
 			if(!total_work_pending) //pause texture fetching threads if nothing to process.
 			{
 				LLAppViewer::getTextureCache()->pause();
 				LLAppViewer::getImageDecodeThread()->pause();
-				LLAppViewer::getTextureFetch()->pause(); 
+				LLAppViewer::getTextureFetch()->pause();
 			}
 			if(!total_io_pending) //pause file threads if nothing to process.
 			{
-				LLVFSThread::sLocal->pause(); 
-				LLLFSThread::sLocal->pause(); 
-			}									
+				LLVFSThread::sLocal->pause();
+				LLLFSThread::sLocal->pause();
+			}
 
 			//texture fetching debugger
 			if(LLTextureFetchDebugger::isEnabled())
@@ -1555,7 +1559,7 @@ bool LLAppViewer::doFrame()
 					LLFloaterReg::findTypedInstance<LLFloaterTextureFetchDebugger>("tex_fetch_debugger");
 				if(tex_fetch_debugger_instance)
 				{
-					tex_fetch_debugger_instance->idle() ;				
+					tex_fetch_debugger_instance->idle() ;
 				}
 			}
 
@@ -1681,7 +1685,7 @@ bool LLAppViewer::cleanup()
 
 	LL_INFOS() << "Viewer disconnected" << LL_ENDL;
 
-	display_cleanup(); 
+	display_cleanup();
 
 	release_start_screen(); // just in case
 
@@ -1706,7 +1710,7 @@ bool LLAppViewer::cleanup()
 	}
 
 	LLKeyframeDataCache::clear();
-	
+
  	// End TransferManager before deleting systems it depends on (Audio, VFS, AssetStorage)
 #if 0 // this seems to get us stuck in an infinite loop...
 	gTransferManager.cleanup();
@@ -1785,24 +1789,24 @@ bool LLAppViewer::cleanup()
 		gViewerWindow->shutdownViews();
 
 	LL_INFOS() << "Cleaning up Inventory" << LL_ENDL;
-	
+
 	// Cleanup Inventory after the UI since it will delete any remaining observers
 	// (Deleted observers should have already removed themselves)
 	gInventory.cleanupInventory();
 
 	LL_INFOS() << "Cleaning up Selections" << LL_ENDL;
-	
+
 	// Clean up selection managers after UI is destroyed, as UI may be observing them.
 	// Clean up before GL is shut down because we might be holding on to objects with texture references
 	LLSelectMgr::cleanupGlobals();
-	
+
 	LL_INFOS() << "Shutting down OpenGL" << LL_ENDL;
 
 	// Shut down OpenGL
 	if( gViewerWindow)
 	{
 		gViewerWindow->shutdownGL();
-	
+
 		// Destroy window, and make sure we're not fullscreen
 		// This may generate window reshape and activation events.
 		// Therefore must do this before destroying the message system.
@@ -1812,26 +1816,26 @@ bool LLAppViewer::cleanup()
 	}
 
 	LL_INFOS() << "Cleaning up Keyboard & Joystick" << LL_ENDL;
-	
+
 	// viewer UI relies on keyboard so keep it aound until viewer UI isa gone
 	delete gKeyboard;
 	gKeyboard = NULL;
 
 	// Turn off Space Navigator and similar devices
 	LLViewerJoystick::getInstance()->terminate();
-	
+
 	LL_INFOS() << "Cleaning up Objects" << LL_ENDL;
-	
+
 	LLViewerObject::cleanupVOClasses();
 
 	SUBSYSTEM_CLEANUP(LLAvatarAppearance);
-	
+
 	SUBSYSTEM_CLEANUP(LLAvatarAppearance);
-	
+
 	SUBSYSTEM_CLEANUP(LLPostProcess);
 
 	LLTracker::cleanupInstance();
-	
+
 	// *FIX: This is handled in LLAppViewerWin32::cleanup().
 	// I'm keeping the comment to remember its order in cleanup,
 	// in case of unforseen dependency.
@@ -1846,8 +1850,8 @@ bool LLAppViewer::cleanup()
 	}
 	LLPrimitive::cleanupVolumeManager();
 
-	LL_INFOS() << "Additional Cleanup..." << LL_ENDL;	
-	
+	LL_INFOS() << "Additional Cleanup..." << LL_ENDL;
+
 	LLViewerParcelMgr::cleanupGlobals();
 
 	// *Note: this is where gViewerStats used to be deleted.
@@ -1860,7 +1864,7 @@ bool LLAppViewer::cleanup()
 	SUBSYSTEM_CLEANUP(LLWorldMapView);
 	SUBSYSTEM_CLEANUP(LLFolderViewItem);
 	SUBSYSTEM_CLEANUP(LLUI);
-	
+
 	//
 	// Shut down the VFS's AFTER the decode manager cleans up (since it cleans up vfiles).
 	// Also after viewerwindow is deleted, since it may have image pointers (which have vfiles)
@@ -1871,18 +1875,18 @@ bool LLAppViewer::cleanup()
 	SUBSYSTEM_CLEANUP(LLVFile);
 
 	LL_INFOS() << "Saving Data" << LL_ENDL;
-	
+
 	// Store the time of our current logoff
 	gSavedPerAccountSettings.setU32("LastLogoff", time_corrected());
 
 	// Must do this after all panels have been deleted because panels that have persistent rects
 	// save their rects on delete.
 	gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE);
-	
+
 	LLUIColorTable::instance().saveUserSettings();
 
 	// PerAccountSettingsFile should be empty if no user has been logged on.
-	// *FIX:Mani This should get really saved in a "logoff" mode. 
+	// *FIX:Mani This should get really saved in a "logoff" mode.
 	if (gSavedSettings.getString("PerAccountSettingsFile").empty())
 	{
 		LL_INFOS() << "Not saving per-account settings; don't know the account name yet." << LL_ENDL;
@@ -1923,13 +1927,13 @@ bool LLAppViewer::cleanup()
 		LL_INFOS() << "Purging all cache files on exit" << LL_ENDL;
 		gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE,""), "*.*");
 	}
-	
+
 	writeDebugInfo();
 
 	LLLocationHistory::getInstance()->save();
 
 	LLAvatarIconIDCache::getInstance()->save();
-	
+
 	// Stop the plugin read thread if it's running.
 	LLPluginProcessParent::setUseReadThread(false);
 
@@ -1963,9 +1967,9 @@ bool LLAppViewer::cleanup()
 	// shotdown all worker threads before deleting them in case of co-dependencies
 	mAppCoreHttp.requestStop();
 	sTextureFetch->shutdown();
-	sTextureCache->shutdown();	
+	sTextureCache->shutdown();
 	sImageDecodeThread->shutdown();
-	
+
 	sTextureFetch->shutDownTextureCacheThread() ;
 	sTextureFetch->shutDownImageDecodeThread() ;
 
@@ -1990,16 +1994,16 @@ bool LLAppViewer::cleanup()
 	if (LLFastTimerView::sAnalyzePerformance)
 	{
 		LL_INFOS() << "Analyzing performance" << LL_ENDL;
-		
+
 		std::string baseline_name = LLTrace::BlockTimer::sLogName + "_baseline.slp";
-		std::string current_name  = LLTrace::BlockTimer::sLogName + ".slp"; 
+		std::string current_name  = LLTrace::BlockTimer::sLogName + ".slp";
 		std::string report_name   = LLTrace::BlockTimer::sLogName + "_report.csv";
 
 		LLFastTimerView::doAnalysis(
 			gDirUtilp->getExpandedFilename(LL_PATH_LOGS, baseline_name),
 			gDirUtilp->getExpandedFilename(LL_PATH_LOGS, current_name),
 			gDirUtilp->getExpandedFilename(LL_PATH_LOGS, report_name));
-	}	
+	}
 
 	SUBSYSTEM_CLEANUP(LLMetricPerformanceTesterBasic) ;
 
@@ -2012,7 +2016,7 @@ bool LLAppViewer::cleanup()
 	SUBSYSTEM_CLEANUP(LLViewerParcelMedia);
 	gTextureList.shutdown(); // shutdown again in case a callback added something
 	LLUIImageList::getInstance()->cleanUp();
-	
+
 	// This should eventually be done in LLAppViewer
 	SUBSYSTEM_CLEANUP(LLImage);
 	SUBSYSTEM_CLEANUP(LLVFSThread);
@@ -2027,21 +2031,21 @@ bool LLAppViewer::cleanup()
 #endif
 
 	LL_INFOS() << "Misc Cleanup" << LL_ENDL;
-	
+
 	// For safety, the LLVFS has to be deleted *after* LLVFSThread. This should be cleaned up.
 	// (LLVFS doesn't know about LLVFSThread so can't kill pending requests) -Steve
 	delete gStaticVFS;
 	gStaticVFS = NULL;
 	delete gVFS;
 	gVFS = NULL;
-	
+
 	gSavedSettings.cleanup();
 	LLUIColorTable::instance().clear();
 
 	LLWatchdog::getInstance()->cleanup();
 
 	LLViewerAssetStatsFF::cleanup();
-	
+
 	// If we're exiting to launch an URL, do that here so the screen
 	// is at the right resolution before we launch IE.
 	if (!gLaunchFileOnQuit.empty())
@@ -2078,7 +2082,7 @@ bool LLAppViewer::cleanup()
 	// all cleanup will get subsumed into the generic calls. So the calls you
 	// still see above are calls that MUST happen before the generic cleanup
 	// kicks in.
-    
+
 	// This calls every remaining LLSingleton's cleanupSingleton() method.
 	// This method should perform any cleanup that might take significant
 	// realtime, or might throw an exception.
@@ -2133,7 +2137,7 @@ bool LLAppViewer::initThreads()
 	LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(),
 													sImageDecodeThread,
 													enable_threads && true,
-													app_metrics_qa_mode);	
+													app_metrics_qa_mode);
 
 	if (LLTrace::BlockTimer::sLog || LLTrace::BlockTimer::sMetricLog)
 	{
@@ -2159,7 +2163,7 @@ void errorCallback(const std::string &error_string)
 
 	//Set the ErrorActivated global so we know to create a marker file
 	gLLErrorActivated = true;
-	
+
 	LLError::crashAndLoop(error_string);
 }
 
@@ -2215,7 +2219,7 @@ void LLAppViewer::initLoggingAndGetLastDuration()
 		gLastExecDuration = -1; // unknown
 	}
 	std::string duration_log_msg(duration_log_stream.str());
-	
+
 	// Create a new start marker file for comparison with log file time for the next run
 	LLAPRFile start_marker_file ;
 	start_marker_file.open(start_marker_file_name, LL_APR_WB);
@@ -2238,7 +2242,7 @@ void LLAppViewer::initLoggingAndGetLastDuration()
 
 bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
 					    bool set_defaults)
-{	
+{
 	if (!mSettingsLocationList)
 	{
 		LL_ERRS() << "Invalid settings location list" << LL_ENDL;
@@ -2270,7 +2274,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
 
 			std::string full_settings_path;
 
-			if (file.file_name_setting.isProvided() 
+			if (file.file_name_setting.isProvided()
 				&& gSavedSettings.controlExists(file.file_name_setting))
 			{
 				// try to find filename stored in file_name_setting control
@@ -2357,7 +2361,7 @@ namespace
 } // anonymous namespace
 
 bool LLAppViewer::initConfiguration()
-{	
+{
 	//Load settings files list
 	std::string settings_file_list = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "settings_files.xml");
 	LLXMLNodePtr root;
@@ -2376,17 +2380,17 @@ bool LLAppViewer::initConfiguration()
 	{
         LL_ERRS() << "Invalid settings file list " << settings_file_list << LL_ENDL;
 	}
-		
+
 	// The settings and command line parsing have a fragile
 	// order-of-operation:
 	// - load defaults from app_settings
 	// - set procedural settings values
 	// - read command line settings
 	// - selectively apply settings needed to load user settings.
-    // - load overrides from user_settings 
+    // - load overrides from user_settings
 	// - apply command line settings (to override the overrides)
 	// - load per account settings (happens in llstartup
-	
+
 	// - load defaults
 	bool set_defaults = true;
 	if(!loadSettingsFromDirectory("Default", set_defaults))
@@ -2400,7 +2404,7 @@ bool LLAppViewer::initConfiguration()
 	initStrings(); // setup paths for LLTrans based on settings files only
 	// - set procedural settings
 	// Note: can't use LL_PATH_PER_SL_ACCOUNT for any of these since we haven't logged in yet
-	gSavedSettings.setString("ClientSettingsFile", 
+	gSavedSettings.setString("ClientSettingsFile",
         gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global")));
 
 #ifndef	LL_RELEASE_FOR_DOWNLOAD
@@ -2420,7 +2424,7 @@ bool LLAppViewer::initConfiguration()
 	gSavedSettings.setBOOL("QAMode", TRUE );
 	gSavedSettings.setS32("WatchdogEnabled", 0);
 #endif
-	
+
 	// These are warnings that appear on the first experience of that condition.
 	// They are already set in the settings_default.xml file, but still need to be added to LLFirstUse
 	// for disable/reset ability
@@ -2442,7 +2446,7 @@ bool LLAppViewer::initConfiguration()
 //	LLFirstUse::addConfigVariable("FirstSculptedPrim");
 //	LLFirstUse::addConfigVariable("FirstVoice");
 //	LLFirstUse::addConfigVariable("FirstMedia");
-		
+
 	// - read command line settings.
 	LLControlGroupCLP clp;
 	std::string	cmd_line_config	= gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,
@@ -2455,27 +2459,27 @@ bool LLAppViewer::initConfiguration()
 		handleCommandLineError(clp);
 		return false;
 	}
-	
-	// - selectively apply settings 
+
+	// - selectively apply settings
 
 	// If the user has specified a alternate settings file name.
 	// Load	it now before loading the user_settings/settings.xml
 	if(clp.hasOption("settings"))
 	{
-		std::string	user_settings_filename = 
-			gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, 
-										   clp.getOption("settings")[0]);		
+		std::string	user_settings_filename =
+			gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
+										   clp.getOption("settings")[0]);
 		gSavedSettings.setString("ClientSettingsFile", user_settings_filename);
-		LL_INFOS("Settings")	<< "Using command line specified settings filename: " 
+		LL_INFOS("Settings")	<< "Using command line specified settings filename: "
 			<< user_settings_filename << LL_ENDL;
 	}
 
-	// - load overrides from user_settings 
+	// - load overrides from user_settings
 	loadSettingsFromDirectory("User");
 
 	if (gSavedSettings.getBOOL("FirstRunThisInstall"))
 	{
-		// Set firstrun flag to indicate that some further init actiona should be taken 
+		// Set firstrun flag to indicate that some further init actiona should be taken
 		// like determining screen DPI value and so on
 		mIsFirstRun = true;
 
@@ -2484,24 +2488,24 @@ bool LLAppViewer::initConfiguration()
 
 	if (clp.hasOption("sessionsettings"))
 	{
-		std::string session_settings_filename = clp.getOption("sessionsettings")[0];		
+		std::string session_settings_filename = clp.getOption("sessionsettings")[0];
 		gSavedSettings.setString("SessionSettingsFile", session_settings_filename);
-		LL_INFOS("Settings")	<< "Using session settings filename: " 
+		LL_INFOS("Settings")	<< "Using session settings filename: "
 			<< session_settings_filename << LL_ENDL;
 	}
 	loadSettingsFromDirectory("Session");
 
 	if (clp.hasOption("usersessionsettings"))
 	{
-		std::string user_session_settings_filename = clp.getOption("usersessionsettings")[0];		
+		std::string user_session_settings_filename = clp.getOption("usersessionsettings")[0];
 		gSavedSettings.setString("UserSessionSettingsFile", user_session_settings_filename);
-		LL_INFOS("Settings") << "Using user session settings filename: " 
+		LL_INFOS("Settings") << "Using user session settings filename: "
 			<< user_session_settings_filename << LL_ENDL;
 
 	}
 	loadSettingsFromDirectory("UserSession");
 
-	// - apply command line settings 
+	// - apply command line settings
 	if (! clp.notify())
 	{
 		handleCommandLineError(clp);
@@ -2600,9 +2604,9 @@ bool LLAppViewer::initConfiguration()
 	if (gSavedSettings.getBOOL("LogPerformance"))
 	{
 		LLTrace::BlockTimer::sLog = true;
-		LLTrace::BlockTimer::sLogName = std::string("performance");		
+		LLTrace::BlockTimer::sLogName = std::string("performance");
 	}
-	
+
 	std::string test_name(gSavedSettings.getString("LogMetrics"));
 	if (! test_name.empty())
  	{
@@ -2643,20 +2647,20 @@ bool LLAppViewer::initConfiguration()
 
 	// Handle slurl use. NOTE: Don't let SL-55321 reappear.
 
-    // *FIX: This init code should be made more robust to prevent 
-    // the issue SL-55321 from returning. One thought is to allow 
-    // only select options to be set from command line when a slurl 
-    // is specified. More work on the settings system is needed to 
+    // *FIX: This init code should be made more robust to prevent
+    // the issue SL-55321 from returning. One thought is to allow
+    // only select options to be set from command line when a slurl
+    // is specified. More work on the settings system is needed to
     // achieve this. For now...
 
-    // *NOTE:Mani The command line parser parses tokens and is 
-    // setup to bail after parsing the '--url' option or the 
+    // *NOTE:Mani The command line parser parses tokens and is
+    // setup to bail after parsing the '--url' option or the
     // first option specified without a '--option' flag (or
-    // any other option that uses the 'last_option' setting - 
+    // any other option that uses the 'last_option' setting -
     // see LLControlGroupCLP::configure())
 
-    // What can happen is that someone can use IE (or potentially 
-    // other browsers) and do the rough equivalent of command 
+    // What can happen is that someone can use IE (or potentially
+    // other browsers) and do the rough equivalent of command
     // injection and steal passwords. Phoenix. SL-55321
 
 	std::string starting_location;
@@ -2680,8 +2684,8 @@ bool LLAppViewer::initConfiguration()
     {
 		start_slurl = starting_location;
 		LLStartUp::setStartSLURL(start_slurl);
-		if(start_slurl.getType() == LLSLURL::LOCATION) 
-		{  
+		if(start_slurl.getType() == LLSLURL::LOCATION)
+		{
 			LLGridManager::getInstance()->setGridChoice(start_slurl.getGrid());
 		}
 	}
@@ -2695,7 +2699,7 @@ bool LLAppViewer::initConfiguration()
 		(gSavedSettings.getBOOL("SLURLPassToOtherInstance")))
 	{
 		if (sendURLToOtherInstance(start_slurl.getSLURLString()))
-		{  
+		{
 			// successfully handed off URL to existing instance, exit
 			return false;
 		}
@@ -2703,7 +2707,7 @@ bool LLAppViewer::initConfiguration()
 
 	const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinCurrent");
 	if(skinfolder && LLStringUtil::null != skinfolder->getValue().asString())
-	{	
+	{
 		// Examining "Language" may not suffice -- see LLUI::getLanguage()
 		// logic. Unfortunately LLUI::getLanguage() doesn't yet do us much
 		// good because we haven't yet called LLUI::initClass().
@@ -2942,8 +2946,8 @@ bool LLAppViewer::initWindow()
 	LL_INFOS("AppInit") << "watchdog setting is done." << LL_ENDL;
 
 	LLNotificationsUI::LLNotificationManager::getInstance();
-		
-    
+
+
 #ifdef LL_DARWIN
 	//Satisfy both MAINT-3135 (OSX 10.6 and earlier) MAINT-3288 (OSX 10.7 and later)
 	LLOSInfo& os_info = LLOSInfo::instance();
@@ -2953,7 +2957,7 @@ bool LLAppViewer::initWindow()
 			gViewerWindow->getWindow()->setOldResize(true);
 	}
 #endif
-    
+
 	if (gSavedSettings.getBOOL("WindowMaximized"))
 	{
 		gViewerWindow->getWindow()->maximize();
@@ -2968,7 +2972,7 @@ bool LLAppViewer::initWindow()
 		LLFeatureManager::getInstance()->setGraphicsLevel(*mForceGraphicsLevel, false);
 		gSavedSettings.setU32("RenderQualityPerformance", *mForceGraphicsLevel);
 	}
-			
+
 	// Set this flag in case we crash while initializing GL
 	gSavedSettings.setBOOL("RenderInitError", TRUE);
 	gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE );
@@ -3026,14 +3030,14 @@ void LLAppViewer::writeDebugInfo(bool isStatic)
     debug_filename = ( isStatic
         ? getStaticDebugFile()
         : getDynamicDebugFile() );
-    
+
 	LL_INFOS() << "Opening debug file " << *debug_filename << LL_ENDL;
 	llofstream out_file(debug_filename->c_str());
-    
+
     isStatic ?  LLSDSerialize::toPrettyXML(gDebugInfo, out_file)
              :  LLSDSerialize::toPrettyXML(gDebugInfo["Dynamic"], out_file);
-    
-        
+
+
 	out_file.close();
 }
 
@@ -3147,7 +3151,7 @@ LLSD LLAppViewer::getViewerInfo() const
 		version_string << version.serverType << " " << version.serverVersion << std::endl;
 		info["VOICE_VERSION"] = version_string.str();
 	}
-	else 
+	else
 	{
 		info["VOICE_VERSION"] = LLTrans::getString("NotConnected");
 	}
@@ -3302,9 +3306,9 @@ void LLAppViewer::cleanupSavedSettings()
 	gSavedSettings.setBOOL("UseEnergy", TRUE);				// force toggle to turn off, since sends message to simulator
 
 	gSavedSettings.setBOOL("DebugWindowProc", gDebugWindowProc);
-		
+
 	gSavedSettings.setBOOL("ShowObjectUpdates", gShowObjectUpdates);
-	
+
 	if (gDebugView)
 	{
 		gSavedSettings.setBOOL("ShowDebugConsole", gDebugView->mDebugConsolep->getVisible());
@@ -3318,7 +3322,7 @@ void LLAppViewer::cleanupSavedSettings()
 		if (!maximized)
 		{
 			LLCoordScreen window_pos;
-			
+
 			if (gViewerWindow->getWindow()->getPosition(&window_pos))
 			{
 				gSavedSettings.setS32("WindowX", window_pos.mX);
@@ -3343,10 +3347,10 @@ void LLAppViewer::removeCacheFiles(const std::string& file_mask)
 
 void LLAppViewer::writeSystemInfo()
 {
-    
+
     if (! gDebugInfo.has("Dynamic") )
         gDebugInfo["Dynamic"] = LLSD::emptyMap();
-    
+
 #if LL_WINDOWS
 	gDebugInfo["SLLog"] = gDirUtilp->getExpandedFilename(LL_PATH_DUMP,"SecondLife.log");
 #else
@@ -3369,13 +3373,13 @@ void LLAppViewer::writeSystemInfo()
 	gDebugInfo["CPUInfo"]["CPUAltivec"] = gSysCPU.hasAltivec();
 	gDebugInfo["CPUInfo"]["CPUSSE"] = gSysCPU.hasSSE();
 	gDebugInfo["CPUInfo"]["CPUSSE2"] = gSysCPU.hasSSE2();
-	
+
 	gDebugInfo["RAMInfo"]["Physical"] = (LLSD::Integer)(gSysMemory.getPhysicalMemoryKB().value());
 	gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer)(gMemoryAllocated.valueInUnits<LLUnits::Kilobytes>());
 	gDebugInfo["OSInfo"] = LLOSInfo::instance().getOSStringSimple();
 
 	// The user is not logged on yet, but record the current grid choice login url
-	// which may have been the intended grid. 
+	// which may have been the intended grid.
 	gDebugInfo["GridName"] = LLGridManager::getInstance()->getGridId();
 
 	// *FIX:Mani - move this down in llappviewerwin32
@@ -3392,14 +3396,14 @@ void LLAppViewer::writeSystemInfo()
 	gDebugInfo["CrashNotHandled"] = (LLSD::Boolean)true;
 
 	// Insert crash host url (url to post crash log to) if configured. This insures
-	// that the crash report will go to the proper location in the case of a 
+	// that the crash report will go to the proper location in the case of a
 	// prior freeze.
 	std::string crashHostUrl = gSavedSettings.get<std::string>("CrashHostUrl");
 	if(crashHostUrl != "")
 	{
 		gDebugInfo["CrashHostUrl"] = crashHostUrl;
 	}
-	
+
 	// Dump some debugging info
 	LL_INFOS("SystemInfo") << "Application: " << LLTrans::getString("APP_NAME") << LL_ENDL;
 	LL_INFOS("SystemInfo") << "Version: " << LLVersionInfo::getChannelAndVersion() << LL_ENDL;
@@ -3423,16 +3427,16 @@ void LLAppViewer::writeSystemInfo()
 	gDebugInfo["FirstLogin"] = (LLSD::Boolean) gAgent.isFirstLogin();
 	gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall");
     gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
-    
+
 	writeDebugInfo(); // Save out debug_info.log early, in case of crash.
 }
 
 #ifdef LL_WINDOWS
-//For whatever reason, in Windows when using OOP server for breakpad, the callback to get the 
-//name of the dump file is not getting triggered by the breakpad library.   Unfortunately they 
+//For whatever reason, in Windows when using OOP server for breakpad, the callback to get the
+//name of the dump file is not getting triggered by the breakpad library.   Unfortunately they
 //also didn't see fit to provide a simple query request across the pipe to get this name either.
 //Since we are putting our output in a runtime generated directory and we know the header data in
-//the dump format, we can however use the following hack to identify our file. 
+//the dump format, we can however use the following hack to identify our file.
 // TODO make this a member function.
 void getFileList()
 {
@@ -3496,19 +3500,19 @@ void LLAppViewer::handleViewerCrash()
 		return;
 	}
 	pApp->mReportedCrash = TRUE;
-	
+
 	// Insert crash host url (url to post crash log to) if configured.
 	std::string crashHostUrl = gSavedSettings.get<std::string>("CrashHostUrl");
 	if(crashHostUrl != "")
 	{
 		gDebugInfo["Dynamic"]["CrashHostUrl"] = crashHostUrl;
 	}
-	
+
 	LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
 	if ( parcel && parcel->getMusicURL()[0])
 	{
 		gDebugInfo["Dynamic"]["ParcelMusicURL"] = parcel->getMusicURL();
-	}	
+	}
 	if ( parcel && parcel->getMediaURL()[0])
 	{
 		gDebugInfo["Dynamic"]["ParcelMediaURL"] = parcel->getMediaURL();
@@ -3530,7 +3534,7 @@ void LLAppViewer::handleViewerCrash()
 	{
 		gDebugInfo["Dynamic"]["CurrentSimHost"] = gAgent.getRegionHost().getHostName();
 		gDebugInfo["Dynamic"]["CurrentRegion"] = gAgent.getRegion()->getName();
-		
+
 		const LLVector3& loc = gAgent.getPositionAgent();
 		gDebugInfo["Dynamic"]["CurrentLocationX"] = loc.mV[0];
 		gDebugInfo["Dynamic"]["CurrentLocationY"] = loc.mV[1];
@@ -3541,14 +3545,14 @@ void LLAppViewer::handleViewerCrash()
 	{
 		gDebugInfo["Dynamic"]["MainloopTimeoutState"] = LLAppViewer::instance()->mMainloopTimeout->getState();
 	}
-	
+
 	// The crash is being handled here so set this value to false.
 	// Otherwise the crash logger will think this crash was a freeze.
 	gDebugInfo["Dynamic"]["CrashNotHandled"] = (LLSD::Boolean)false;
-    
+
 	//Write out the crash status file
 	//Use marker file style setup, as that's the simplest, especially since
-	//we're already in a crash situation	
+	//we're already in a crash situation
 	if (gDirUtilp)
 	{
 		std::string crash_marker_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
@@ -3570,11 +3574,11 @@ void LLAppViewer::handleViewerCrash()
 	else
 	{
 		LL_WARNS("MarkerFile") << "No gDirUtilp with which to create error marker file name" << LL_ENDL;
-	}		
-	
+	}
+
 #ifdef LL_WINDOWS
 	Sleep(200);
-#endif 
+#endif
 
 	char *minidump_file = pApp->getMiniDumpFilename();
     LL_DEBUGS("CRASHREPORT") << "minidump file name " << minidump_file << LL_ENDL;
@@ -3588,10 +3592,10 @@ void LLAppViewer::handleViewerCrash()
 		getFileList();
 #else
         LL_WARNS("CRASHREPORT") << "no minidump file?" << LL_ENDL;
-#endif        
+#endif
 	}
     gDebugInfo["Dynamic"]["CrashType"]="crash";
-	
+
 	if (gMessageSystem && gDirUtilp)
 	{
 		std::string filename;
@@ -3606,7 +3610,7 @@ void LLAppViewer::handleViewerCrash()
         else
         {
             LL_WARNS("CRASHREPORT") << "problem recording stats" << LL_ENDL;
-        }        
+        }
 	}
 
 	if (gMessageSystem)
@@ -3622,8 +3626,8 @@ void LLAppViewer::handleViewerCrash()
 }
 
 // static
-void LLAppViewer::recordMarkerVersion(LLAPRFile& marker_file) 
-{		
+void LLAppViewer::recordMarkerVersion(LLAPRFile& marker_file)
+{
 	std::string marker_version(LLVersionInfo::getChannelAndVersion());
 	if ( marker_version.length() > MAX_MARKER_LENGTH )
 	{
@@ -3686,7 +3690,7 @@ void LLAppViewer::processMarkerFiles()
 		// now test to see if this file is locked by a running process (try to open for write)
 		LL_DEBUGS("MarkerFile") << "Checking exec marker file for lock..." << LL_ENDL;
 		mMarkerFile.open(mMarkerFileName, LL_APR_WB);
-		apr_file_t* fMarker = mMarkerFile.getFileHandle() ; 
+		apr_file_t* fMarker = mMarkerFile.getFileHandle() ;
 		if (!fMarker)
 		{
 			LL_INFOS("MarkerFile") << "Exec marker file open failed - assume it is locked." << LL_ENDL;
@@ -3702,7 +3706,7 @@ void LLAppViewer::processMarkerFiles()
 			}
 			else
 			{
-				// No other instances; we've locked this file now, so record our version; delete on quit.		
+				// No other instances; we've locked this file now, so record our version; delete on quit.
 				recordMarkerVersion(mMarkerFile);
 				LL_DEBUGS("MarkerFile") << "Exec marker file existed but was not locked; rewritten." << LL_ENDL;
 			}
@@ -3717,7 +3721,7 @@ void LLAppViewer::processMarkerFiles()
 			// the file existed, is ours, and matched our version, so we can report on what it says
 			LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found; last exec FROZE" << LL_ENDL;
 			gLastExecEvent = LAST_EXEC_FROZE;
-				
+
 		}
 		else
 		{
@@ -3728,12 +3732,12 @@ void LLAppViewer::processMarkerFiles()
 	{
 		// Create the marker file for this execution & lock it; it will be deleted on a clean exit
 		apr_status_t s;
-		s = mMarkerFile.open(mMarkerFileName, LL_APR_WB, TRUE);	
+		s = mMarkerFile.open(mMarkerFileName, LL_APR_WB, TRUE);
 
 		if (s == APR_SUCCESS && mMarkerFile.getFileHandle())
 		{
 			LL_DEBUGS("MarkerFile") << "Exec marker file '"<< mMarkerFileName << "' created." << LL_ENDL;
-			if (APR_SUCCESS == apr_file_lock(mMarkerFile.getFileHandle(), APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE)) 
+			if (APR_SUCCESS == apr_file_lock(mMarkerFile.getFileHandle(), APR_FLOCK_NONBLOCK | APR_FLOCK_EXCLUSIVE))
 			{
 				recordMarkerVersion(mMarkerFile);
 				LL_DEBUGS("MarkerFile") << "Exec marker file locked." << LL_ENDL;
@@ -3818,7 +3822,7 @@ void LLAppViewer::processMarkerFiles()
 void LLAppViewer::removeMarkerFiles()
 {
 	if (!mSecondInstance)
-	{		
+	{
 		if (mMarkerFile.getFileHandle())
 		{
 			mMarkerFile.close() ;
@@ -3856,8 +3860,8 @@ void LLAppViewer::removeDumpDir()
 }
 
 void LLAppViewer::forceQuit()
-{ 
-	LLApp::setQuitting(); 
+{
+	LLApp::setQuitting();
 }
 
 //TODO: remove
@@ -3871,10 +3875,10 @@ void LLAppViewer::fastQuit(S32 error_code)
 	end_messaging_system();
 	// figure out the error code
 	S32 final_error_code = error_code ? error_code : (S32)isError();
-	// this isn't a crash	
+	// this isn't a crash
 	removeMarkerFiles();
 	// get outta here
-	_exit(final_error_code);	
+	_exit(final_error_code);
 }
 
 void LLAppViewer::requestQuit()
@@ -3882,7 +3886,7 @@ void LLAppViewer::requestQuit()
 	LL_INFOS() << "requestQuit" << LL_ENDL;
 
 	LLViewerRegion* region = gAgent.getRegion();
-	
+
 	if( (LLStartUp::getStartupState() < STATE_STARTED) || !region )
 	{
 		// If we have a region, make some attempt to send a logout request first.
@@ -3891,7 +3895,7 @@ void LLAppViewer::requestQuit()
 		{
 			sendLogoutRequest();
 		}
-		
+
 		// Quit immediately
 		forceQuit();
 		return;
@@ -3905,13 +3909,13 @@ void LLAppViewer::requestQuit()
 	{
 		gAgentAvatarp->updateAvatarRezMetrics(true); // force a last packet to be sent.
 	}
-	
+
 	// Try to send last batch of avatar rez metrics.
 	if (!gDisconnected && isAgentAvatarValid())
 	{
 		gAgentAvatarp->updateAvatarRezMetrics(true); // force a last packet to be sent.
 	}
-	
+
 	LLHUDEffectSpiral *effectp = (LLHUDEffectSpiral*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINT, TRUE);
 	effectp->setPositionGlobal(gAgent.getPositionGlobal());
 	effectp->setColor(LLColor4U(gAgent.getEffectColor()));
@@ -4070,7 +4074,7 @@ void dumpVFSCaches()
 	gStaticVFS->dumpFiles();
 	SetCurrentDirectory(w_str);
 #endif
-						
+
 	LL_INFOS() << "========= Dynamic VFS ====" << LL_ENDL;
 	gVFS->listFiles();
 #if LL_WINDOWS
@@ -4087,7 +4091,7 @@ void dumpVFSCaches()
 }
 
 //static
-U32 LLAppViewer::getTextureCacheVersion() 
+U32 LLAppViewer::getTextureCacheVersion()
 {
 	//viewer texture cache version, change if the texture cache format changes.
 	const U32 TEXTURE_CACHE_VERSION = 8;
@@ -4096,7 +4100,7 @@ U32 LLAppViewer::getTextureCacheVersion()
 }
 
 //static
-U32 LLAppViewer::getObjectCacheVersion() 
+U32 LLAppViewer::getObjectCacheVersion()
 {
 	// Viewer object cache version, change if object update
 	// format changes. JC
@@ -4113,10 +4117,10 @@ bool LLAppViewer::initCache()
 	LLVOCache::getInstance()->setReadOnly(read_only);
 
 	bool texture_cache_mismatch = false;
-	if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getTextureCacheVersion()) 
+	if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getTextureCacheVersion())
 	{
 		texture_cache_mismatch = true;
-		if(!read_only) 
+		if(!read_only)
 		{
 			gSavedSettings.setS32("LocalCacheVersion", LLAppViewer::getTextureCacheVersion());
 		}
@@ -4134,10 +4138,10 @@ bool LLAppViewer::initCache()
 			// STORM-1141 force purgeAllTextures to get called to prevent a crash here. -brad
 			texture_cache_mismatch = true;
 		}
-	
+
 		// We have moved the location of the cache directory over time.
 		migrateCacheDirectory();
-	
+
 		// Setup and verify the cache location
 		std::string cache_location = gSavedSettings.getString("CacheLocation");
 		std::string new_cache_location = gSavedSettings.getString("NewCacheLocation");
@@ -4157,7 +4161,7 @@ bool LLAppViewer::initCache()
 		gSavedSettings.setString("CacheLocation", "");
 		gSavedSettings.setString("CacheLocationTopFolder", "");
 	}
-	
+
 	if (mPurgeCache && !read_only)
 	{
 		LLSplashScreen::update(LLTrans::getString("StartupClearingCache"));
@@ -4165,9 +4169,9 @@ bool LLAppViewer::initCache()
 	}
 
 	LLSplashScreen::update(LLTrans::getString("StartupInitializingTextureCache"));
-	
+
 	// Init the texture cache
-	// Allocate 80% of the cache size for textures	
+	// Allocate 80% of the cache size for textures
 	const S32 MB = 1024 * 1024;
 	const S64 MIN_CACHE_SIZE = 256 * MB;
 	const S64 MAX_CACHE_SIZE = 9984ll * MB;
@@ -4185,7 +4189,7 @@ bool LLAppViewer::initCache()
 	LLVOCache::getInstance()->initCache(LL_PATH_CACHE, gSavedSettings.getU32("CacheNumberOfRegionsForObjects"), getObjectCacheVersion()) ;
 
 	LLSplashScreen::update(LLTrans::getString("StartupInitializingVFS"));
-	
+
 	// Init the VFS
 	vfs_size = llmin(vfs_size + extra, MAX_VFS_SIZE);
 	vfs_size = (vfs_size / MB) * MB; // make sure it is MB aligned
@@ -4197,7 +4201,7 @@ bool LLAppViewer::initCache()
 		gSavedSettings.setU32("VFSOldSize", vfs_size_u32 / MB);
 	}
 	LL_INFOS("AppCache") << "VFS CACHE SIZE: " << vfs_size / (1024*1024) << " MB" << LL_ENDL;
-	
+
 	// This has to happen BEFORE starting the vfs
 	// time_t	ltime;
 	srand(time(NULL));		// Flawfinder: ignore
@@ -4263,7 +4267,7 @@ bool LLAppViewer::initCache()
 		LL_WARNS("AppCache") << "Removing old vfs data file " << old_vfs_data_file << LL_ENDL;
 		LLFile::remove(old_vfs_data_file);
 		LLFile::remove(old_vfs_index_file);
-		
+
 		// Just in case, nuke any other old cache files in the directory.
 		std::string dir;
 		dir = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");
@@ -4289,7 +4293,7 @@ bool LLAppViewer::initCache()
 	if (resize_vfs)
 	{
 		LL_DEBUGS("AppCache") << "Removing old vfs and re-sizing" << LL_ENDL;
-		
+
 		LLFile::remove(old_vfs_data_file);
 		LLFile::remove(old_vfs_index_file);
 	}
@@ -4333,7 +4337,7 @@ bool LLAppViewer::initCache()
 			dumpVFSCaches();
 		}
 #endif
-		
+
 		return true;
 	}
 }
@@ -4370,12 +4374,12 @@ std::string LLAppViewer::getSecondLifeTitle() const
 	return LLTrans::getString("APP_NAME");
 }
 
-std::string LLAppViewer::getWindowTitle() const 
+std::string LLAppViewer::getWindowTitle() const
 {
 	return gWindowTitle;
 }
 
-// Callback from a dialog indicating user was logged out.  
+// Callback from a dialog indicating user was logged out.
 bool finish_disconnect(const LLSD& notification, const LLSD& response)
 {
 	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
@@ -4403,7 +4407,7 @@ void LLAppViewer::forceDisconnect(const std::string& mesg)
 		// do this again.
 		return;
     }
-	
+
 	// *TODO: Translate the message if possible
 	std::string big_reason = LLAgent::sTeleportErrorMessages[mesg];
 	if ( big_reason.size() == 0 )
@@ -4449,7 +4453,7 @@ void LLAppViewer::badNetworkHandler()
 		"If the problem continues, see the Tech Support FAQ at: \n"
 		"www.secondlife.com/support";
 	forceDisconnect(message.str());
-	
+
 	LLApp::instance()->writeMiniDump();
 }
 
@@ -4514,7 +4518,7 @@ void LLAppViewer::saveNameCache()
 	{
 		LLAvatarNameCache::exportFile(name_cache_stream);
     }
-    
+
     // real names cache
 	if (gCacheName)
     {
@@ -4532,7 +4536,7 @@ void LLAppViewer::saveNameCache()
 /*!	@brief		This class is an LLFrameTimer that can be created with
 				an elapsed time that starts counting up from the given value
 				rather than 0.0.
-				
+
 				Otherwise it behaves the same way as LLFrameTimer.
 */
 class LLFrameStatsTimer : public LLFrameTimer
@@ -4569,7 +4573,7 @@ static LLTrace::BlockTimerStatHandle FTM_HUD_EFFECTS("HUD Effects");
 void LLAppViewer::idle()
 {
 	pingMainloopTimeout("Main:Idle");
-	
+
 	// Update frame timers
 	static LLTimer idle_timer;
 
@@ -4627,7 +4631,7 @@ void LLAppViewer::idle()
 		gGLActive = FALSE;
 	}
 
-	
+
     F32 yaw = 0.f;				// radians
 
 	if (!gDisconnected)
@@ -4635,8 +4639,8 @@ void LLAppViewer::idle()
 		LL_RECORD_BLOCK_TIME(FTM_NETWORK);
 		// Update spaceserver timeinfo
 	    LLWorld::getInstance()->setSpaceTimeUSec(LLWorld::getInstance()->getSpaceTimeUSec() + LLUnits::Seconds::fromValue(dt_raw));
-    
-    
+
+
 	    //////////////////////////////////////
 	    //
 	    // Update simulator agent state
@@ -4715,7 +4719,7 @@ void LLAppViewer::idle()
 	if (!gDisconnected)
 	{
 		LL_RECORD_BLOCK_TIME(FTM_NETWORK);
-	
+
 	    ////////////////////////////////////////////////
 	    //
 	    // Network processing
@@ -4725,7 +4729,7 @@ void LLAppViewer::idle()
 	    //
 		idleNameCache();
 		idleNetwork();
-	    	        
+
 
 		// Check for away from keyboard, kick idle agents.
 		idle_afk_check();
@@ -4739,7 +4743,7 @@ void LLAppViewer::idle()
 	// Handle the regular UI idle callbacks as well as
 	// hover callbacks
 	//
-    
+
 #ifdef LL_DARWIN
 	if (!mQuitRequested)  //MAINT-4243
 #endif
@@ -4748,12 +4752,12 @@ void LLAppViewer::idle()
 
 		// Do event notifications if necessary.  Yes, we may want to move this elsewhere.
 		gEventNotifier.update();
-		
+
 		gIdleCallbacks.callFunctions();
 		gInventory.idleNotifyObservers();
 		LLAvatarTracker::instance().idleNotifyObservers();
 	}
-	
+
 	// Metrics logging (LLViewerAssetStats, etc.)
 	{
 		static LLTimer report_interval;
@@ -4799,14 +4803,14 @@ void LLAppViewer::idle()
 	}
 
 	{
-		LL_RECORD_BLOCK_TIME(FTM_OBJECTLIST_UPDATE); 
-		
+		LL_RECORD_BLOCK_TIME(FTM_OBJECTLIST_UPDATE);
+
         if (!(logoutRequestSent() && hasSavedFinalSnapshot()))
 		{
 			gObjectList.update(gAgent);
 		}
 	}
-	
+
 	//////////////////////////////////////
 	//
 	// Deletes objects...
@@ -4824,7 +4828,7 @@ void LLAppViewer::idle()
 			LLDrawable::cleanupDeadDrawables();
 		}
 	}
-	
+
 	//
 	// After this point, in theory we should never see a dead object
 	// in the various object/drawable lists.
@@ -4854,7 +4858,7 @@ void LLAppViewer::idle()
 		LL_RECORD_BLOCK_TIME(FTM_NETWORK);
 		gVLManager.unpackData();
 	}
-	
+
 	/////////////////////////
 	//
 	// Update surfaces, and surface textures as well.
@@ -4866,25 +4870,25 @@ void LLAppViewer::idle()
 		LL_RECORD_BLOCK_TIME(FTM_REGION_UPDATE);
 		LLWorld::getInstance()->updateRegions(max_region_update_time);
 	}
-	
+
 	/////////////////////////
 	//
 	// Update weather effects
 	//
 	gSky.propagateHeavenlyBodies(gFrameDTClamped);				// moves sun, moon, and planets
 
-	// Update wind vector 
+	// Update wind vector
 	LLVector3 wind_position_region;
 	static LLVector3 average_wind;
 
 	LLViewerRegion *regionp;
-	regionp = LLWorld::getInstance()->resolveRegionGlobal(wind_position_region, gAgent.getPositionGlobal());	// puts agent's local coords into wind_position	
+	regionp = LLWorld::getInstance()->resolveRegionGlobal(wind_position_region, gAgent.getPositionGlobal());	// puts agent's local coords into wind_position
 	if (regionp)
 	{
 		gWindVec = regionp->mWind.getVelocity(wind_position_region);
 
 		// Compute average wind and use to drive motion of water
-		
+
 		average_wind = regionp->mWind.getAverage();
 		gSky.setWind(average_wind);
 		//LLVOWater::setWind(average_wind);
@@ -4893,13 +4897,13 @@ void LLAppViewer::idle()
 	{
 		gWindVec.setVec(0.0f, 0.0f, 0.0f);
 	}
-	
+
 	//////////////////////////////////////
 	//
 	// Sort and cull in the new renderer are moved to pipeline.cpp
 	// Here, particles are updated and drawables are moved.
 	//
-	
+
 	LL_RECORD_BLOCK_TIME(FTM_WORLD_UPDATE);
 	gPipeline.updateMove();
 
@@ -4910,7 +4914,7 @@ void LLAppViewer::idle()
 		gAgentPilot.moveCamera();
 	}
 	else if (LLViewerJoystick::getInstance()->getOverrideCamera())
-	{ 
+	{
 		LLViewerJoystick::getInstance()->moveFlycam();
 	}
 	else
@@ -4925,7 +4929,7 @@ void LLAppViewer::idle()
 
 	// update media focus
 	LLViewerMediaFocus::getInstance()->update();
-	
+
 	// Update marketplace
 	LLMarketplaceInventoryImporter::update();
 	LLMarketplaceInventoryNotifications::update();
@@ -4941,7 +4945,7 @@ void LLAppViewer::idle()
 
 	{
 		LL_RECORD_BLOCK_TIME(FTM_AUDIO_UPDATE);
-		
+
 		if (gAudiop)
 		{
 		    audio_update_volume(false);
@@ -4956,8 +4960,8 @@ void LLAppViewer::idle()
 
 	// Execute deferred tasks.
 	LLDeferredTaskList::instance().run();
-	
-	// Handle shutdown process, for example, 
+
+	// Handle shutdown process, for example,
 	// wait for floaters to close, send quit message,
 	// forcibly quit if it has taken too long
 	if (mQuitRequested)
@@ -4980,7 +4984,7 @@ void LLAppViewer::idleShutdown()
 	{
 		gIMMgr->disconnectAllSessions();
 	}
-	
+
 	// Wait for all floaters to get resolved
 	if (gFloaterView
 		&& !gFloaterView->allChildrenClosed())
@@ -4990,7 +4994,7 @@ void LLAppViewer::idleShutdown()
 
 
 
-	
+
 	// ProductEngine: Try moving this code to where we shut down sTextureCache in cleanup()
 	// *TODO: ugly
 	static bool saved_teleport_history = false;
@@ -5048,7 +5052,7 @@ void LLAppViewer::idleShutdown()
 	}
 
 	// Make sure that we quit if we haven't received a reply from the server.
-	if( logoutRequestSent() 
+	if( logoutRequestSent()
 		&& gLogoutTimer.getElapsedTimeF32() > gLogoutMaxTime )
 	{
 		forceQuit();
@@ -5065,7 +5069,7 @@ void LLAppViewer::sendLogoutRequest()
 		if (!mSecondInstance)
 		{
 			mLogoutMarkerFileName = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,LOGOUT_MARKER_FILE_NAME);
-		
+
 			mLogoutMarkerFile.open(mLogoutMarkerFileName, LL_APR_WB);
 			if (mLogoutMarkerFile.getFileHandle())
 			{
@@ -5075,13 +5079,13 @@ void LLAppViewer::sendLogoutRequest()
 			else
 			{
 				LL_WARNS("MarkerFile") << "Cannot create logout marker file " << mLogoutMarkerFileName << LL_ENDL;
-			}		
+			}
 		}
 		else
 		{
 			LL_INFOS("MarkerFile") << "Did not logout marker file because this is a second instance" << LL_ENDL;
 		}
-		
+
 		LLMessageSystem* msg = gMessageSystem;
 		msg->newMessageFast(_PREHASH_LogoutRequest);
 		msg->nextBlockFast(_PREHASH_AgentData);
@@ -5092,7 +5096,7 @@ void LLAppViewer::sendLogoutRequest()
 		gLogoutTimer.reset();
 		gLogoutMaxTime = LOGOUT_REQUEST_TIME;
 		mLogoutRequestSent = TRUE;
-		
+
 		if(LLVoiceClient::instanceExists())
 		{
 			LLVoiceClient::getInstance()->leaveChannel();
@@ -5175,20 +5179,20 @@ static LLTrace::BlockTimerStatHandle FTM_CHECK_REGION_CIRCUIT("Check Region Circ
 void LLAppViewer::idleNetwork()
 {
 	pingMainloopTimeout("idleNetwork");
-	
+
 	gObjectList.mNumNewObjects = 0;
 	S32 total_decoded = 0;
 
 	if (!gSavedSettings.getBOOL("SpeedTest"))
 	{
 		LL_RECORD_BLOCK_TIME(FTM_IDLE_NETWORK); // decode
-		
+
 		LLTimer check_message_timer;
-		//  Read all available packets from network 
+		//  Read all available packets from network
 		const S64 frame_count = gFrameCount;  // U32->S64
 		F32 total_time = 0.0f;
 
-		while (gMessageSystem->checkAllMessages(frame_count, gServicePump)) 
+		while (gMessageSystem->checkAllMessages(frame_count, gServicePump))
 		{
 			if (gDoDisconnect)
 			{
@@ -5197,7 +5201,7 @@ void LLAppViewer::idleNetwork()
 				// server going down, so this is OK.
 				break;
 			}
-			
+
 			total_decoded++;
 			gPacketsIn++;
 
@@ -5232,12 +5236,12 @@ void LLAppViewer::idleNetwork()
 			CheckMessagesMaxTime = CHECK_MESSAGES_DEFAULT_MAX_TIME;
 		}
 #endif
-		
+
 
 
 		// we want to clear the control after sending out all necessary agent updates
 		gAgent.resetControlFlags();
-				
+
 		// Decode enqueued messages...
 		S32 remaining_possible_decodes = MESSAGE_MAX_PER_FRAME - total_decoded;
 
@@ -5284,7 +5288,7 @@ void LLAppViewer::disconnectViewer()
 	}
 	//
 	// Cleanup after quitting.
-	//	
+	//
 	// Save snapshot for next time, if we made it through initialization
 
 	LL_INFOS() << "Disconnecting viewer!" << LL_ENDL;
@@ -5383,7 +5387,7 @@ void LLAppViewer::forceErrorBadMemoryAccess()
 {
    	LL_WARNS() << "Forcing a deliberate bad memory access" << LL_ENDL;
     S32* crash = NULL;
-    *crash = 0xDEADBEEF;  
+    *crash = 0xDEADBEEF;
     return;
 }
 
@@ -5396,7 +5400,7 @@ void LLAppViewer::forceErrorInfiniteLoop()
     }
     return;
 }
- 
+
 void LLAppViewer::forceErrorSoftwareException()
 {
    	LL_WARNS() << "Forcing a deliberate exception" << LL_ENDL;
@@ -5435,7 +5439,7 @@ void LLAppViewer::resumeMainloopTimeout(const std::string& state, F32 secs)
 		{
 			secs = gSavedSettings.getF32("MainloopTimeoutDefault");
 		}
-		
+
 		mMainloopTimeout->setTimeout(secs);
 		mMainloopTimeout->start(state);
 	}
@@ -5455,7 +5459,7 @@ void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs)
 //	{
 //		LL_WARNS() << "!!!!!!!!!!!!! Its an error trap!!!!" << state << LL_ENDL;
 //	}
-	
+
 	if(mMainloopTimeout)
 	{
 		if(secs < 0.0f)
@@ -5485,12 +5489,12 @@ void LLAppViewer::handleLoginComplete()
 	if ( parcel && parcel->getMusicURL()[0])
 	{
 		gDebugInfo["ParcelMusicURL"] = parcel->getMusicURL();
-	}	
+	}
 	if ( parcel && parcel->getMediaURL()[0])
 	{
 		gDebugInfo["ParcelMediaURL"] = parcel->getMediaURL();
 	}
-	
+
 	gDebugInfo["SettingsFilename"] = gSavedSettings.getString("ClientSettingsFile");
 	gDebugInfo["CAFilename"] = gDirUtilp->getCAFile();
 	gDebugInfo["ViewerExePath"] = gDirUtilp->getExecutablePathAndName();
diff --git a/indra/newview/skins/default/xui/de/floater_preferences.xml b/indra/newview/skins/default/xui/de/floater_preferences.xml
index a4f6df515d8b77c9ea6180551870a5b0ec6bd3e4..159f65be30ecdb5cf67c3f15ec963d6fda305d5a 100644
--- a/indra/newview/skins/default/xui/de/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/de/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="EINSTELLUNGEN">
+	<floater.string name="email_unverified_tooltip">
+		Bitte bestätigen Sie Ihre E-Mail-Adresse unter https://accounts.secondlife.com/change_email/ zur Aktivierung der E-Mail-Funktion des IM.
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index 47551d2a82566b238b1f94dbef0481d25b0c6c84..918b1a9be34fd02be45a42cc4735d74fcd345474 100644
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		Sie müssen sich unter https://my.secondlife.com anmelden und die Servicebedingungen akzeptieren, bevor Sie fortfahren können. Vielen Dank!
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    Ich habe die Allgemeinen Geschäftsbedingungen, die Datenschutzrichtlinie sowie die Servicebedingungen inklusive der Anforderungen zur Streitschlichtung gelesen und akzeptiere diese.
-  </text>
-	<button label="Weiter" label_selected="Weiter" name="Continue" top_delta="45"/>
+		Ich habe die Allgemeinen Geschäftsbedingungen, die Datenschutzrichtlinie sowie die Servicebedingungen inklusive der Anforderungen zur Streitschlichtung gelesen und akzeptiere diese.
+	</text>
+	<button label="Weiter" label_selected="Weiter" name="Continue"/>
 	<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/de/mime_types.xml b/indra/newview/skins/default/xui/de/mime_types.xml
index 8728a577378aa7450c62a333ba48f25d1b13a58b..f8b4ae00c90bb8104f1380aa377aa49d994ec672 100644
--- a/indra/newview/skins/default/xui/de/mime_types.xml
+++ b/indra/newview/skins/default/xui/de/mime_types.xml
@@ -57,6 +57,11 @@
 			Echtzeit-Streaming
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Beispiel-Plugin-Schema auslösen
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Von LibVLC unterstützte Medien
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index aefe30813c4d580c6880a2bff0c09cdaa28464e7..8ff3ac770b9d0b8e68a1a545661d0b95b3892854 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -692,6 +692,9 @@ Weitere Informationen finden Sie auf [_URL].
 		</url>
 		<usetemplate ignoretext="Meine Hardware wird nicht unterstützt" name="okcancelignore" notext="Nein" yestext="Ja"/>
 	</notification>
+	<notification name="RunLauncher">
+		Bitte starten Sie die ausführbare Viewer-Datei nicht direkt. Aktualisieren Sie alle bestehenden Verknüpfungen, um stattdessen den LS_Launcher zu starten.
+	</notification>
 	<notification name="OldGPUDriver">
 		Wahrscheinlich gibt es einen neueren Treiber für Ihren Grafikchip.  Durch Aktualisieren der Grafiktreiber lässt sich die Leistung u. U. beträchtlich verbessern.
 
@@ -1595,154 +1598,14 @@ Geben Sie das Objekt zum Verkauf frei und versuchen Sie es erneut.
 		Raw-Terrain-Datei wurde heruntergeladen nach:
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		Eine neue Version von [SUPPORT_SITE] ist verfügbar.
-[MESSAGE]
-Sie müssen das Update herunterladen, um [APP_NAME] weiter verwenden zu können.
-		<usetemplate name="okcancelbuttons" notext="Beenden" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadWindows">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		Eine neue Version von [SUPPORT_SITE] ist verfügbar.
-[MESSAGE]
-Sie müssen das Update herunterladen, um [APP_NAME] weiter verwenden zu können.
-		<usetemplate name="okcancelbuttons" notext="Beenden" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadLinux">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		Eine neue Version von [SUPPORT_SITE] ist verfügbar.
-[MESSAGE]
-Sie müssen das Update herunterladen, um [APP_NAME] weiter verwenden zu können.
-
-In Ihren Anwendungsordner herunterladen?
-		<usetemplate name="okcancelbuttons" notext="Beenden" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadMac">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-
-In Ihren Anwendungsordner herunterladen?
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		Eine neue Version von [APP_NAME] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-
-In Ihren Anwendungsordner herunterladen?
-		<usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Beim Installieren des Viewer-Updates ist ein Fehler aufgetreten.
-Laden Sie den neuesten Viewer von http://secondlife.com/download herunter und installieren Sie ihn.
+	<notification name="RequiredUpdate">
+		Für die Anmeldung ist Version [VERSION] erforderlich. Diese sollte für Sie aktualisiert worden sein, was offenbar nicht geschehen ist. Bitte laden Sie die Datei unter https://secondlife.com/support/downloads/ herunter.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Ein erforderliches Update konnte nicht installiert werden. 
-Sie können sich erst anmelden, wenn [APP_NAME] aktualisiert wurde.
-
-Laden Sie den neuesten Viewer von http://secondlife.com/download herunter und installieren Sie ihn.
+	<notification name="LoginFailedUnknown">
+		Die Anmeldung ist aus nicht bekannten Gründen leider fehlgeschlagen. Falls diese Meldung weiterhin angezeigt wird, besuchen Sie bitte die [SUPPORT_SITE].
 		<usetemplate name="okbutton" yestext="Beenden"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		Für Ihre SecondLife-Installation ist ein Update erforderlich.
-
-Sie können dieses Update von http://www.secondlife.com/downloads herunterladen oder jetzt installieren.
-		<usetemplate name="okcancelbuttons" notext="Second Life beenden" yestext="Jetzt herunterladen und installieren"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		Für Ihre [APP_NAME]-Installation wurde ein Update heruntergeladen.
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Informationen zu diesem Update]
-		<usetemplate name="okcancelbuttons" notext="Später..." yestext="Jetzt installieren und [APP_NAME] neu starten"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		Für Ihre [APP_NAME]-Installation wurde ein Update heruntergeladen.
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Informationen zu diesem Update]
-		<usetemplate name="okcancelbuttons" notext="Später..." yestext="Jetzt installieren und [APP_NAME] neu starten"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		Ein erforderliches Softwareupdate wurde heruntergeladen.
-Version [VERSION] [[INFO_URL] Infos zu diesem Update]
-
-Zur Installation des Updates muss [APP_NAME] neu gestartet werden.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Zur Installation des Updates muss [APP_NAME] neu gestartet werden.
-[[INFO_URL] Infos zu diesem Update]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		Für Ihre [APP_NAME]-Installation wurde ein Update heruntergeladen.
-Version [VERSION] 
-Dieser experimentelle Viewer wurde durch einen [NEW_CHANNEL] Viewer ersetzt;
-weitere Details zu diesem Update finden Sie [[INFO_URL] hier].
-		<usetemplate name="okcancelbuttons" notext="Später..." yestext="Jetzt installieren und [APP_NAME] neu starten"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		Für Ihre [APP_NAME]-Installation wurde ein Update heruntergeladen.
-Version [VERSION]
-Dieser experimentelle Viewer wurde durch einen [NEW_CHANNEL] Viewer ersetzt;
-weitere Infos zu diesem Update finden Sie [[INFO_URL] hier].
-		<usetemplate name="okcancelbuttons" notext="Später..." yestext="Jetzt installieren und [APP_NAME] neu starten"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		Ein erforderliches Softwareupdate wurde heruntergeladen.
-Version [VERSION]
-Dieser experimentelle Viewer wurde durch einen [NEW_CHANNEL] Viewer ersetzt;
-weitere Infos zu diesem Update finden Sie [[INFO_URL] hier].
-
-Zur Installation des Updates muss [APP_NAME] neu gestartet werden.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Zur Installation des Updates muss [APP_NAME] neu gestartet werden.
-Dieser experimentelle Viewer wurde durch einen [NEW_CHANNEL] Viewer ersetzt;
-weitere Infos zu diesem Update finden Sie [[INFO_URL] hier].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Ein Update ist verfügbar.
-Es wird im Hintergrund heruntergeladen. Wenn der Download fertig ist, werden Sie aufgefordert, den Viewer neu zu starten, damit die Installation abgeschlossen werden kann.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Ein Update wurde heruntergeladen. Es wird beim Neustart installiert.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Beim Suchen nach einem Update ist ein Fehler aufgetreten.
-Versuchen Sie es später erneut.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Ihr Viewer ist auf dem neuesten Stand.
-Wenn Sie die neuesten Features und Fixes ausprobieren möchten, gehen Sie zur Seite „Alternate Viewers“. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		Bei Übertragung dieses Objekts erhält die Gruppe:
 * An das Objekt bezahlte L$
@@ -3525,6 +3388,10 @@ Deaktivieren Sie alle SIP-ALG-Funktionen in Ihrem Router.
 Sprachkommunikation ist nicht möglich.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Es gibt Probleme mit der Verbindung zu Ihrem Voice-Server. Voice-Kommunikation ist leider nicht verfügbar. Überprüfen Sie Ihre Netzwerk- und Firewall-Konfiguration.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		(Seit [EXISTENCE] Sekunden inworld )
 Avatar &apos;[NAME]&apos; hat als vollständig gerezzter Avatar die Welt verlassen.
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
index 4414bbfae7bdd30fc0336967946682f500d2fe6b..3e596de55c2020bc85dcad022697c63d676dc2ed 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Softwareupdates:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Automatisch installieren" name="Install_automatically"/>
-		<combo_box.item label="Ich werde Updates manuell herunterladen und installieren" name="Install_manual"/>
+		<combo_box.item label="Alle Updates automatisch installieren" name="Install_automatically"/>
+		<combo_box.item label="Mich fragen, wenn ein optionales Update bereit zur Installation ist" name="Install_ask"/>
+		<combo_box.item label="Nur zwingend erforderliche Updates installieren" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Bereit, Release-Kandidaten zu verwenden" name="update_willing_to_test"/>
 	<check_box label="Versionshinweise nach der Aktualisierung anzeigen" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 7ddcab9d341bcc203069b723cdbd048378b9022d..3e6600762724651ed71e71f07a098146fa79d315 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -38,8 +38,7 @@
 		Grafikinitialisierung fehlgeschlagen. Bitte aktualisieren Sie Ihren Grafiktreiber.
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
-[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]Bit) [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
 		Build-Konfiguration [BUILD_CONFIG]
@@ -79,7 +78,7 @@ Erstellungszeit VFS (Cache): [VFS_TIME]
 	<string name="AboutLibs">
 		J2C-Decoderversion: [J2C_VERSION]
 Audiotreiberversion: [AUDIO_DRIVER_VERSION]
-CEF-Version: [LIBCEF_VERSION]
+[LIBCEF_VERSION]
 LibVLC-Version: [LIBVLC_VERSION]
 Voice-Server-Version: [VOICE_VERSION]
 	</string>
@@ -1445,6 +1444,9 @@ besuchen Sie bitte http://secondlife.com/support
 	<string name="InventoryNoMatchingItems">
 		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Sie haben nicht das Richtige gefunden? Versuchen Sie [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/places/[SEARCH_TERM] Suche].
 	</string>
diff --git a/indra/newview/skins/default/xui/es/floater_preferences.xml b/indra/newview/skins/default/xui/es/floater_preferences.xml
index cb2a1dde146d80b8bf391d2353fda3ce6a183bc3..edd0824e5799a7fd10b83aea811c52e3f347099c 100644
--- a/indra/newview/skins/default/xui/es/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/es/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="PREFERENCIAS">
+	<floater.string name="email_unverified_tooltip">
+		Por favor ingresa al link siguiente y verifica tu dirección de correo electrónico para permitir que IM te envíe un email: https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/es/floater_tos.xml b/indra/newview/skins/default/xui/es/floater_tos.xml
index 8d83eb5b249343cb16d7147a71ed00b60a8d3aea..10c77a695ecea99423776452acda488ccbafaec4 100644
--- a/indra/newview/skins/default/xui/es/floater_tos.xml
+++ b/indra/newview/skins/default/xui/es/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		Para poder proseguir, debes iniciar sesión en https://my.secondlife.com y aceptar las Condiciones del servicio. Gracias.
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    He leído y acepto los Términos y Condiciones, la Política de privacidad y las Condiciones del servicio de Second Life, incluyendo los requerimientos para resolver disputas.
-  </text>
+		Leí los Términos y Condiciones, la Política de privacidad y las Condiciones del servicio de Second Life, incluyendo los requerimientos para resolver disputas.
+	</text>
 	<button label="Continuar" label_selected="Continuar" name="Continue"/>
 	<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/es/mime_types.xml b/indra/newview/skins/default/xui/es/mime_types.xml
index 74e447c70746a1b4c5b6e7c5d708f9558d31f484..fad1cab56f193f5c8eda3e1a70d479c9b14fa522 100644
--- a/indra/newview/skins/default/xui/es/mime_types.xml
+++ b/indra/newview/skins/default/xui/es/mime_types.xml
@@ -57,6 +57,11 @@
 			Real Time Streaming
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Plugin Ejemplo desencadenador de esquema
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Medios compatibles con LibVLC
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 151886875b2a94c8137e2b613da7fec50c2e9a29..fdf9003321d6c6dc7760442f693a66df3c795619 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -680,6 +680,9 @@ El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&
 		</url>
 		<usetemplate ignoretext="El hardware de mi ordenador no está admitido" name="okcancelignore" notext="No" yestext="Sí"/>
 	</notification>
+	<notification name="RunLauncher">
+		Por favor no inicies directamente el visualizador ejecutable. Actualiza los atajos existentes para utilizar SL_Launcher en vez.
+	</notification>
 	<notification name="OldGPUDriver">
 		Probablemente ya existe un controlador más reciente para tu procesador de gráficos.  La actualización del controlador de gráficos puede mejorar sustancialmente el rendimiento.
 
@@ -1585,157 +1588,14 @@ Por favor, pon en venta el objeto y vuelve a intentarlo.
 		Acabada la descarga del archivo raw de terreno en:
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		Hay una versión nueva de [SECOND_LIFE] disponible.
-[MESSAGE]
-Debes descargar esta actualización para usar [SECOND_LIFE].
-		<usetemplate name="okcancelbuttons" notext="Salir" yestext="Descargarla"/>
-	</notification>
-	<notification name="DownloadWindows">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		Hay una versión nueva de [SECOND_LIFE] disponible.
-[MESSAGE]
-Debes descargar esta actualización para usar [SECOND_LIFE].
-		<usetemplate name="okcancelbuttons" notext="Salir" yestext="Descargar"/>
-	</notification>
-	<notification name="DownloadLinux">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargar"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargar"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		Hay una versión nueva de [SECOND_LIFE] disponible.
-[MESSAGE]
-Debes descargar esta actualización para usar [SECOND_LIFE].
-
-¿Descargarla a tu carpeta de Programas?
-		<usetemplate name="okcancelbuttons" notext="Salir" yestext="Descargarla"/>
-	</notification>
-	<notification name="DownloadMac">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-
-¿Descargarla a tu carpeta de Programas?
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		Hay una versión actualizada de [SECOND_LIFE] disponible.
-[MESSAGE]
-Esta actualización no es obligatoria, pero te sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-
-¿Descargarla a tu carpeta de Programas?
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Se ha producido un error al instalar la actualización del visor.
-Descarga e instala el último visor a través de
-http://secondlife.com/download.
-		<usetemplate name="okbutton" yestext="OK"/>
+	<notification name="RequiredUpdate">
+		La versión [VERSION] es necesaria para iniciar sesión. Esto debería haber sido actualizado, pero parece que no fue así. Por favor, descarga desde https://secondlife.com/support/downloads/
+		<usetemplate name="okbutton" yestext="Aceptar"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		No hemos podido instalar una actualización necesaria. 
-No podrás iniciar sesión hasta que [APP_NAME] se haya actualizado.
-
-Descarga e instala el último visor a través de
-http://secondlife.com/download.
+	<notification name="LoginFailedUnknown">
+		Lo sentimos, error en el inicio de sesión, motivo desconocido. Si sigues recibiendo este mensaje, por favor, acude al [SUPPORT_SITE].
 		<usetemplate name="okbutton" yestext="Salir"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		Hay una actualización necesaria para la instalación de Second Life.
-
-Puedes descargar esta actualización de http://www.secondlife.com/downloads
-o instalarla ahora.
-		<usetemplate name="okcancelbuttons" notext="Salir de Second Life" yestext="Descargar e instalar ahora"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		Hemos descargado una actualización para la instalación de [APP_NAME].
-Versión [VERSION] [[RELEASE_NOTES_FULL_URL]; información acerca de esta actualización]
-		<usetemplate name="okcancelbuttons" notext="Más tarde..." yestext="Instalar ahora y reiniciar [NOMBRE_APL]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		Hemos descargado una actualización para la instalación de [APP_NAME].
-Versión [VERSION] [[RELEASE_NOTES_FULL_URL]; información acerca de esta actualización]
-		<usetemplate name="okcancelbuttons" notext="Más tarde..." yestext="Instalar ahora y reiniciar [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		Hemos descargado una actualización de software necesaria.
-Versión [VERSION] [[INFO_URL] Información sobre esta actualización]
-
-Para instalar la actualización, hay que reiniciar [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Para instalar la actualización, hay que reiniciar [APP_NAME].
-[[INFO_URL] Información sobre esta actualización]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		Hemos descargado una actualización aplicable a tu instalación de [APP_NAME].
-Versión [VERSION] 
-Este visor experimental se ha sustituido por un visor de [NEW_CHANNEL].
-Consulta [[INFO_URL] para informarte sobre esta actualización.]
-		<usetemplate name="okcancelbuttons" notext="Más tarde..." yestext="Instalar ahora y reiniciar [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		Hemos descargado una actualización aplicable a tu instalación de [APP_NAME].
-Versión [VERSION]
-Este visor experimental se ha sustituido por un visor de [NEW_CHANNEL].
-Consulta [[INFO_URL] Información sobre esta actualización].
-		<usetemplate name="okcancelbuttons" notext="Más tarde..." yestext="Instalar ahora y reiniciar [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		Hemos descargado una actualización de software necesaria.
-Versión [VERSION]
-Este visor experimental se ha sustituido por un visor de [NEW_CHANNEL].
-Consulta [[INFO_URL] Información sobre esta actualización].
-
-Para instalar la actualización, hay que reiniciar [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Para instalar la actualización, hay que reiniciar [APP_NAME].
-Este visor experimental se ha sustituido por un visor de [NEW_CHANNEL].
-Consulta [[INFO_URL] Información sobre esta actualización].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Está disponible una actualización.
-Se está descargando en segundo plano y, en cuanto esté lista, te pediremos que reinicies el visor para terminar de instalarla.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Se ha descargado una actualización. Se instalará durante el reinicio.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Ha ocurrido un error al buscar actualizaciones.
-Repite la operación más adelante.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		El visor está actualizado.
-Si estás impaciente por probar las nuevas funciones y correcciones, lee la página sobre los visores alternativos. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		Transferir este objeto al grupo hará que:
 * Reciba los L$ pagados en el objeto
@@ -3511,6 +3371,10 @@ Desactiva las funciones SIP ALG de tu router.
 No podrás establecer comunicaciones de voz.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Tenemos problemas de conexión con tu servidor de voz: No podrás establecer comunicaciones de voz. Comprueba la configuración de la red y del servidor de seguridad.
+		<usetemplate name="okbutton" yestext="Aceptar"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( [EXISTENCE] segundos vivo)
 El avatar &apos;[NAME]&apos; ya estaba totalmente cargado al salir.
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
index 0b3ca03bcc23d8279a88b08b2bb6e9fcd66ad6d3..34947ca478930bd2d5171595031aaaa9caea47e7 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Actualizaciones de software:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Instalar automáticamente" name="Install_automatically"/>
-		<combo_box.item label="Descargaré e instalaré manualmente las actualizaciones" name="Install_manual"/>
+		<combo_box.item label="Instalar cada actualización automáticamente" name="Install_automatically"/>
+		<combo_box.item label="Preguntarme cuando una actualización opcional está disponible para instalar" name="Install_ask"/>
+		<combo_box.item label="Instalar sólo actualizaciones obligatorias" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Admitir candidatos a la versión comercial a la hora de realizar actualizaciones" name="update_willing_to_test"/>
 	<check_box label="Mostrar las notas de la versión después de la actualización" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index c4744a8222bef12fbfae32c7e69e3a589832421c..341c6d2fe83ca8aeb2fa5ae884556571d4804fb1 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -29,7 +29,7 @@
 		Error de inicialización de gráficos. Actualiza tu controlador de gráficos.
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -68,11 +68,11 @@ Memoria de textura: [TEXTURE_MEMORY]MB
 Tiempo de creación de VFS (caché): [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		Versión de J2C Decoder: [J2C_VERSION]
-Versión de Audio Driver: [AUDIO_DRIVER_VERSION]
-Versión de CEF: [LIBCEF_VERSION]
-Versión de LibVLC: [LIBVLC_VERSION]
-Versión de Voice Server: [VOICE_VERSION]
+		Versión de descodificador J2C: [J2C_VERSION] 
+Versión del controlador audio: [AUDIO_DRIVER_VERSION] 
+[LIBCEF_VERSION] 
+Versión LibVLC: [LIBVLC_VERSION] 
+Versión del servidor de voz: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
 		Paquetes perdidos: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
@@ -1427,6 +1427,9 @@ http://secondlife.com/support para obtener ayuda sobre cómo solucionar este pro
 	<string name="InventoryNoMatchingItems">
 		¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/all/[SEARCH_TERM] Buscar].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		¿No encuentras lo que buscas? Intenta [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		¿No encuentras lo que buscas? Prueba con [secondlife:///app/search/places/[SEARCH_TERM] Buscar].
 	</string>
diff --git a/indra/newview/skins/default/xui/fr/floater_preferences.xml b/indra/newview/skins/default/xui/fr/floater_preferences.xml
index 25887bb5f74b22e35ce060e8eab911e450308c7b..17302020316d4e45a6a2c2586827552984acf8f8 100644
--- a/indra/newview/skins/default/xui/fr/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="PRÉFÉRENCES">
+	<floater.string name="email_unverified_tooltip">
+		Veuillez vérifier votre adresse électronique pour autoriser les IM par courriel en vous rendant à l&apos;adresse https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="Annuler" label_selected="Annuler" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/fr/floater_tos.xml b/indra/newview/skins/default/xui/fr/floater_tos.xml
index 4e359e6482aa0460157158fad02ee560bfd25e46..ca6800e83560441d2479752e5076fbceb30f8758 100644
--- a/indra/newview/skins/default/xui/fr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tos.xml
@@ -12,8 +12,9 @@
 	<text name="external_tos_required">
 		Vous devez vous rendre sur https://my.secondlife.com et vous connecter pour accepter les Conditions d’utilisation avant de pouvoir continuer. Merci !
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    J&apos;ai lu et j&apos;accepte les termes et conditions; la Politique de confidentialité et les Conditions d&apos;utilisation de Second Life, y compris ls exigences de résolution des différends.
+		J&apos;ai lu et j&apos;accepte les termes et les conditions, la Politique de confidentialité et les Conditions d&apos;utilisation du service, y compris les conditions de résolution des différends.
 	</text>
 	<button label="Continuer" label_selected="Continuer" name="Continue"/>
 	<button label="Annuler" label_selected="Annuler" name="Cancel"/>
diff --git a/indra/newview/skins/default/xui/fr/mime_types.xml b/indra/newview/skins/default/xui/fr/mime_types.xml
index 15b1dc5a23a6fe9828fc522396e6942a26b609f8..243752eb9d3481a32bc2b6d47d3923f7106ee7c7 100644
--- a/indra/newview/skins/default/xui/fr/mime_types.xml
+++ b/indra/newview/skins/default/xui/fr/mime_types.xml
@@ -57,6 +57,11 @@
 			Flux en temps réel
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Exemple de programme de déclenchement du Plugin
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Médias pris en charge par LibVLC
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index faa744d8da7b99d6897181a54e1abe66d63a5048..6225eba119fdae047e87498b223d540279d1df87 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -684,6 +684,9 @@ Consulter [_URL] pour en savoir plus ?
 		</url>
 		<usetemplate ignoretext="Mon matériel n&apos;est pas pris en charge" name="okcancelignore" notext="Non" yestext="Oui"/>
 	</notification>
+	<notification name="RunLauncher">
+		Veuillez ne pas exécuter la visionneuse directement. Actualiser tout raccourci existant pour lancer SL_Launcher
+	</notification>
 	<notification name="OldGPUDriver">
 		Il existe probablement un pilote plus récent pour votre puce graphique.  La mise à jour des pilotes graphiques est susceptible d’améliorer considérablement les performances.
 
@@ -1578,157 +1581,14 @@ Veuillez choisir un objet à vendre et réessayer.
 		Téléchargement du fichier de terrain raw effectué vers :
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		Une nouvelle version de [APP_NAME] est disponible.
-[MESSAGE]
-Pour utiliser [APP_NAME], vous devez télécharger cette mise à jour.
-		<usetemplate name="okcancelbuttons" notext="Quitter" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadWindows">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		Une nouvelle version de [APP_NAME] est disponible.
-[MESSAGE]
-Pour utiliser [APP_NAME], vous devez télécharger cette mise à jour.
-		<usetemplate name="okcancelbuttons" notext="Quitter" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadLinux">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		Une nouvelle version de [APP_NAME] est disponible.
-[MESSAGE]
-Pour utiliser [APP_NAME], vous devez télécharger cette mise à jour.
-
-Télécharger vers le dossier Applications ?
-		<usetemplate name="okcancelbuttons" notext="Quitter" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadMac">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-
-Télécharger vers le dossier Applications ?
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		Une mise à jour de [APP_NAME] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-
-Télécharger vers le dossier Applications ?
-		<usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Une erreur est survenue lors de l&apos;installation de la mise à jour du client.
-Veuillez télécharger et installer la dernière version du client à la page Web
-http://secondlife.com/download.
+	<notification name="RequiredUpdate">
+		La version [VERSION] est nécessaire pour vous connecter. Cette version aurait dû être mise à jour, mais visiblement, elle ne l&apos;a pas été. Veuillez télécharger la dernière version sur https://secondlife.com/support/downloads/
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Impossible d&apos;installer une mise à jour requise. 
-Vous ne pourrez pas vous connecter tant que [APP_NAME] ne sera pas mis à jour.
-
-Veuillez télécharger et installer la dernière version du client à la page Web
-http://secondlife.com/download.
+	<notification name="LoginFailedUnknown">
+		Désolé, la connexion a échoué pour un raison non reconnue. Si ce message persiste, veuillez consulter la page [SUPPORT_SITE].
 		<usetemplate name="okbutton" yestext="Quitter"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		Une mise à jour requise pour votre installation Second Life existe.
-
-Pour la télécharger, accédez à http://www.secondlife.com/downloads.
-Vous pouvez également l&apos;installer dès maintenant.
-		<usetemplate name="okcancelbuttons" notext="Quitter Second Life" yestext="Télécharger et installer maintenant"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		Nous avons téléchargé une mise à jour de votre installation [APP_NAME].
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Informations relatives à cette mise à jour]
-		<usetemplate name="okcancelbuttons" notext="Ultérieurement..." yestext="Installer maintenant et redémarrer [APP_NAME]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		Nous avons téléchargé une mise à jour de votre installation [APP_NAME].
-Version [VERSION] [[RELEASE_NOTES_FULL_URL] Informations relatives à cette mise à jour]
-		<usetemplate name="okcancelbuttons" notext="Ultérieurement..." yestext="Installer maintenant et redémarrer [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		Nous avons téléchargé une mise à jour logicielle requise.
-Version [VERSION] [Informations au sujet de cette mise à jour [INFO_URL]]
-
-[APP_NAME] doit être redémarré pour que la mise à jour soit installée.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		[APP_NAME] doit être redémarré pour que la mise à jour soit installée.
-[Informations au sujet de cette mise à jour [INFO_URL]]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		Nous avons téléchargé une mise à jour de votre installation [APP_NAME].
-Version [VERSION] 
-Le client expérimental a été remplacé par un nouveau client [NEW_CHANNEL] ;
-consultez [[INFO_URL] pour en savoir plus sur cette mise à jour]
-		<usetemplate name="okcancelbuttons" notext="Ultérieurement..." yestext="Installer maintenant et redémarrer [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		Nous avons téléchargé une mise à jour de votre installation [APP_NAME].
-Version [VERSION]
-Le client expérimental a été remplacé par un nouveau client [NEW_CHANNEL] ;
-consultez [Informations au sujet de cette mise à jour [INFO_URL]]
-		<usetemplate name="okcancelbuttons" notext="Ultérieurement..." yestext="Installer maintenant et redémarrer [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		Nous avons téléchargé une mise à jour logicielle requise.
-Version [VERSION]
-Le client expérimental a été remplacé par un nouveau client [NEW_CHANNEL] ;
-consultez [Informations au sujet de cette mise à jour [INFO_URL]]
-
-[APP_NAME] doit être redémarré pour que la mise à jour soit installée.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		[APP_NAME] doit être redémarré pour que la mise à jour soit installée.
-Le client expérimental a été remplacé par un nouveau client [NEW_CHANNEL] ;
-consultez [Informations au sujet de cette mise à jour [INFO_URL]]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Une mise à jour est disponible.
-Elle est en cours de téléchargement en arrière-plan et nous vous inviterons à redémarrer votre client pour terminer son installation dès qu’elle est prête.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Une mise à jour a été téléchargée. Elle sera installée au redémarrage.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Une erreur est survenue lors de la recherche de mises à jour.
-Veuillez réessayer ultérieurement.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Votre client est à jour.
-Si vous êtes impatients de découvrir les dernières fonctionnalités et corrections, consultez la page Autres clients. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		Si vous cédez cet objet, le groupe :
 * recevra les L$ versés pour l&apos;objet ;
@@ -3512,6 +3372,10 @@ Veuillez désactiver toute  fonctionnalité SIP ALG dans votre routeur.
 Aucune communication vocale n&apos;est disponible.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Nous rencontrons des difficultés pour vous connecter à votre serveur vocal. Aucune communication vocale n&apos;est disponible. Veuillez vérifier la configuration de votre réseau et de votre pare-feu.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		([EXISTENCE] secondes d&apos;existence)
 Départ de l&apos;avatar [NAME] entièrement chargé.
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
index 3b819b40c80a4fbb182e79cdb83b3bb84dd0decd..7ac84fb4bd171dda15da9c5d45c1584f40ec554a 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Mises à jour logicielles :
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Installation automatique" name="Install_automatically"/>
-		<combo_box.item label="Je téléchargerai et installerai les mises à jour manuellement" name="Install_manual"/>
+		<combo_box.item label="Installer chaque mise à jour automatiquement" name="Install_automatically"/>
+		<combo_box.item label="Toujours me demander lorsqu&apos;une mise à jour facultative est prête à être installée" name="Install_ask"/>
+		<combo_box.item label="Installer uniquement les mises à jour obligatoires" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Accepte de passer aux versions avant sortie officielle" name="update_willing_to_test"/>
 	<check_box label="Afficher les notes de version après la mise à jour" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 599ef126dab6b68c70b33df495f3b5f979ecef80..d76beee93d29959032d4de93d511c8e894b549ca 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -38,8 +38,8 @@
 		Échec d&apos;initialisation des graphiques. Veuillez mettre votre pilote graphique à jour.
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
-[[VIEWER_RELEASE_NOTES_URL] [Notes de version]]
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
+[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
 		Configuration de la construction [BUILD_CONFIG]
@@ -77,11 +77,11 @@ Mémoire textures : [TEXTURE_MEMORY] Mo
 Durée de création VFS (cache) : [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		Version J2C Decoder : [J2C_VERSION]
-Version Audio Driver : [AUDIO_DRIVER_VERSION]
-Version CEF : [LIBCEF_VERSION]
-Version LibVLC : [LIBVLC_VERSION]
-Version serveur vocal : [VOICE_VERSION]
+		J2C Decoder Version: [J2C_VERSION] 
+Audio Driver Version: [AUDIO_DRIVER_VERSION] 
+[LIBCEF_VERSION] 
+LibVLC Version: [LIBVLC_VERSION] 
+Voice Server Version: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
 		Paquets perdus : [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
@@ -1445,6 +1445,9 @@ http://secondlife.com/support pour vous aider à résoudre ce problème.
 	<string name="InventoryNoMatchingItems">
 		Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/all/[SEARCH_TERM] Rechercher].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Avez-vous trouvé ce que vous cherchiez ? Essayez [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/places/[SEARCH_TERM] Rechercher].
 	</string>
diff --git a/indra/newview/skins/default/xui/it/floater_preferences.xml b/indra/newview/skins/default/xui/it/floater_preferences.xml
index 189ba195c556e462e69e4b2e55e4138d8ecb9f72..895b6eef3cc178a3a68d6937055e83aae323e64e 100644
--- a/indra/newview/skins/default/xui/it/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/it/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="PREFERENZE">
+	<floater.string name="email_unverified_tooltip">
+		Verifica la tua email per abilitare l’opzione “Invia IM all&apos;e-mail” visitando il sito https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="Annulla" label_selected="Annulla" name="Cancel"/>
 	<tab_container name="pref core" tab_width="100">
diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml
index 0016df18824feaf9cf02522635290aaa6d90d697..31314d18007035ac8ae934c97a699d867618e430 100644
--- a/indra/newview/skins/default/xui/it/floater_tos.xml
+++ b/indra/newview/skins/default/xui/it/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		Per continuare, visita https://my.secondlife.com e accedi per accettare i Termini del servizio. Grazie.
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    Ho letto e sono d’accordo con i Termini e le Condizioni di Second Life, le clausole di riservatezza, i Termini del Servizio, compresi i requisiti per la risoluzione delle dispute.
-  </text>
+		Ho letto e accettato i Termini e le Condizioni di Second Life, le clausole di riservatezza e i Termini del Servizio, compresi i requisiti per la risoluzione delle dispute.
+	</text>
 	<button label="Continua" label_selected="Continua" name="Continue"/>
 	<button label="Annulla" label_selected="Annulla" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/it/mime_types.xml b/indra/newview/skins/default/xui/it/mime_types.xml
index 7e528b0688445f45163c88a87cc576166fb1971a..1f6f9223fe6e958cefac1865f838edd87a40320d 100644
--- a/indra/newview/skins/default/xui/it/mime_types.xml
+++ b/indra/newview/skins/default/xui/it/mime_types.xml
@@ -57,6 +57,11 @@
 			Streaming in tempo reale
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Tasto di comando schema plugin di esempio
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Media supportati da LibVLC
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 8714fc9170af2338171af683b69bb5cfa9952a1b..cf354b8f4fe96fdb72bfca06080f537b62d5be65 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -682,6 +682,9 @@ Visitare [_URL] per ulteriori informazioni?
 		</url>
 		<usetemplate ignoretext="L&apos;hardware di questo computer non è compatibile" name="okcancelignore" notext="No" yestext="Si"/>
 	</notification>
+	<notification name="RunLauncher">
+		Non avviare direttamente il viewer eseguibile. Aggiorna le scorciatoie attuali per avviare invece il Launcher_SL.
+	</notification>
 	<notification name="OldGPUDriver">
 		È probabile che ci sia un driver aggiornato per il processore grafico. L&apos;aggiornamento dei driver della grafica può migliorare le prestazioni in maniera significativa.
 
@@ -1581,156 +1584,13 @@ Imposta l&apos;oggetto per la vendita e riprova.
 		Hai terminato di scaricare il file del terreno nella cartella:
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		È disponibile una nuova versione di [APP_NAME].
-[MESSAGE]
-Devi scaricare questo aggiornamento per utilizzare [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Esci" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="DownloadWindows">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		È disponibile una nuova versione di [APP_NAME].
-[MESSAGE]
-Devi scaricare questo aggiornamento per utilizzare [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Esci" yestext="Scarica"/>
-	</notification>
-	<notification name="DownloadLinux">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		È disponibile una nuova versione di [APP_NAME].
-[MESSAGE]
-Devi scaricare questo aggiornamento per utilizzare [APP_NAME].
-
-Scaricare nella cartella Applicazioni?
-		<usetemplate name="okcancelbuttons" notext="Esci" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="DownloadMac">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-
-Scaricare nella cartella Applicazioni?
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		È disponibile una versione aggiornata di [APP_NAME].
-[MESSAGE]
-Questo aggiornamento non è necessario, ma ti consigliamo di installarlo per migliorare il rendimento e la stabilità.
-
-Scaricare nella cartella Applicazioni?
-		<usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Si è verificato un errore durante l&apos;aggiornamento del viewer.
-Scarica e installa la versione più recente del viewer da
-http://secondlife.com/download.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Non è stato possibile installare un aggiornamento richiesto. 
-Non potrai accedere fino a quando non verrà aggiornato [APP_NAME].
-
-Scarica e installa la versione più recente del viewer da
-http://secondlife.com/download.
-		<usetemplate name="okbutton" yestext="Esci"/>
-	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		È disponibile un aggiornamento obbligatorio per l&apos;installazione di Second Life.
-
-Puoi scaricare questo aggiornamento da http://www.secondlife.com/downloads
-oppure puoi installarlo adesso.
-		<usetemplate name="okcancelbuttons" notext="Esci da Second Life" yestext="Scarica e aggiorna adesso"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		È stato scaricato un aggiornamento dell&apos;installazione di [APP_NAME].
-Versione [VERSION] [[RELEASE_NOTES_FULL_URL] Informazioni su questo aggiornamento]
-		<usetemplate name="okcancelbuttons" notext="Più tardi..." yestext="Installa ora e riavvia [APP_NAME]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		È stato scaricato un aggiornamento dell&apos;installazione di [APP_NAME].
-Versione [VERSION] [[RELEASE_NOTES_FULL_URL] Informazioni su questo aggiornamento]
-		<usetemplate name="okcancelbuttons" notext="Più tardi..." yestext="Installa ora e riavvia [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		È stato scaricato un aggiornamento obbligatorio del software.
-Versione [VERSION] [[INFO_URL] Informazioni su questo aggiornamento]
-
-Per installare l&apos;aggiornamento è necessario riavviare [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Per installare l&apos;aggiornamento è necessario riavviare [APP_NAME].
-[[INFO_URL] Informazioni su questo aggiornamento]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		È stato scaricato un aggiornamento dell&apos;installazione di [APP_NAME].
-Versione [VERSION] 
-Questo viewer sperimentale è stato sostituito con un viewer [NEW_CHANNEL];
-vedi [[INFO_URL] per informazioni su queesto aggiornamento]
-		<usetemplate name="okcancelbuttons" notext="Più tardi..." yestext="Installa ora e riavvia [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		È stato scaricato un aggiornamento dell&apos;installazione di [APP_NAME].
-Versione [VERSION]
-Questo viewer sperimentale è stato sostituito con un viewer [NEW_CHANNEL];
-vedi [[INFO_URL] Informazioni su questo aggiornamento]
-		<usetemplate name="okcancelbuttons" notext="Più tardi..." yestext="Installa ora e riavvia [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		È stato scaricato un aggiornamento obbligatorio del software.
-Versione [VERSION]
-Questo viewer sperimentale è stato sostituito con un viewer [NEW_CHANNEL];
-vedi [[INFO_URL] Informazioni su questo aggiornamento]
-
-Per installare l&apos;aggiornamento è necessario riavviare [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Per installare l&apos;aggiornamento è necessario riavviare [APP_NAME].
-Questo viewer sperimentale è stato sostituito con un viewer [NEW_CHANNEL];
-vedi [[INFO_URL] Informazioni su questo aggiornamento]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		È disponibile un aggiornamento.
-È in fase di download. Al termine ti verrà chiesto di riavviare il computer per completare l&apos;installazione.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		È stato scaricato un aggiornamento. Verrà installato durante il riavvio.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Si è verificato un errore durante la ricerca dell&apos;aggiornamento.
-Riprova più tardi.
+	<notification name="RequiredUpdate">
+		É richiesta la versione [VERSION] per l’accesso. Sembra che dovresti avere la versione aggiornata, ma cosí non é. Scaricala da https://secondlife.com/support/downloads/
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Il Viewer è aggiornato.
-Per provare le funzioni e modifiche più recenti, visita la pagina Alternate Viewers. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
+	<notification name="LoginFailedUnknown">
+		Spiacenti, accesso non riuscito per ragioni sconosciute. Se continui a visualizzare questo messaggio, visita il [SUPPORT_SITE].
+		<usetemplate name="okbutton" yestext="Chiudi"/>
 	</notification>
 	<notification name="DeedObjectToGroup">
 		La cessione di questo oggetto farà in modo che il gruppo:
@@ -3515,6 +3375,10 @@ Disabilita la funzione SIP ALG del router.
 La comunicazione voce non sará possibile.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Stiamo riscontrando dei problemi nel connetterci al tuo server di voce. La comunicazione voce non sará possibile. Controlla le tue impostazione di rete e della firewall.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( presente da [EXISTENCE] secondi )
 Avatar &apos;[NAME]&apos; è partito completamente caricato.
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
index d34bb7c3a4444008e4df4749f4fc0de77767345c..24375e0de1cf1c22904ba7a6efb478faa7afb18e 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Aggiornamenti software:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Installa automaticamente" name="Install_automatically"/>
-		<combo_box.item label="Scarica e installa manualmente gli aggiornamenti" name="Install_manual"/>
+		<combo_box.item label="Installa gli aggiornamenti automaticamente" name="Install_automatically"/>
+		<combo_box.item label="Chiedimi quando è pronto un aggiornamento facoltativo" name="Install_ask"/>
+		<combo_box.item label="Installa solo gli aggiornamenti obbligatori" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Disponibile agli aggiornamenti con versioni non rilasciate" name="update_willing_to_test"/>
 	<check_box label="Mostra note di release dopo l&apos;aggiornamento" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index 75bfb9119badb39ee2ad58a75f2c36816cbe631f..ad74e161708ef8e40b1c3e5190bfdaba89abc718 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -35,7 +35,7 @@
 		Inizializzazione grafica non riuscita. Aggiorna il driver della scheda grafica!
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -74,11 +74,10 @@ Memoria texture: [TEXTURE_MEMORY] MB
 Data/ora creazione VFS (cache): [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		Versione J2C Decoder: [J2C_VERSION]
-Versione Driver audio: [AUDIO_DRIVER_VERSION]
-Versione CEF: [LIBCEF_VERSION]
-Versione LibVLC: [LIBVLC_VERSION]
-Versione Server voice: [VOICE_VERSION]
+		J2C Versione decoder: [J2C_VERSION] 
+Versione del driver audio: [AUDIO_DRIVER_VERSION][LIBCEF_VERSION]
+Versione LibVLC: [LIBVLC_VERSION] 
+Versione server voce: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
 		Pacchetti perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
@@ -1436,6 +1435,9 @@ http://secondlife.com/support per risolvere il problema.
 	<string name="InventoryNoMatchingItems">
 		Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/all/[SEARCH_TERM] Cerca].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Non hai trovato ció che cercavi? Prova [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/places/[SEARCH_TERM] Cerca].
 	</string>
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml
index fa337defe75bb26f2aee1e6493ae47ba4c2ab253..7482c4772a2054d6d7e470a627ca8c8f4e66807c 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="環境設定">
+	<floater.string name="email_unverified_tooltip">
+		IM を有効にするには、https://accounts.secondlife.com/change_email/ からあなたのメールアドレスを確認してください
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="取り消し" label_selected="取り消し" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index 8045a1f1f75ebc5088aa15b814faaccb6845dd7d..8a6a6ff58a10b762b04e1d5cfd9e15b7ee8cb98f 100644
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		操作を続けるに、https://my.secondlife.com に移動し、利用規約に同意する必要があります。
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    私は以下の内容を読み、同意します。Second Life の利用規約、プライバシーポリシー、およびサービス規約(紛争解決のための必要条件を含む)。
-  </text>
+		私は、Second Life の利用規約、プライバシーポリシー、およびサービス規約(紛争解決のための必要条件を含む)を読み、同意しました。
+	</text>
 	<button label="続行" label_selected="続行" name="Continue"/>
 	<button label="取り消し" label_selected="取り消し" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml
index 6de9244b40283d1cc2f469292e4c0a32681d1487..3b29a622a499435f83fd9137cd678374e6061a65 100644
--- a/indra/newview/skins/default/xui/ja/mime_types.xml
+++ b/indra/newview/skins/default/xui/ja/mime_types.xml
@@ -57,6 +57,11 @@
 			リアルタイム・ストリーミング
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			例 プラグイン スキーム トリガー
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			LibVLC 対応メディア
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index f76ee9033b74afbad92c97b2a538dcf7b33b1bc4..67586efc9e473c642b71fd3832c39b49f1eaeb37 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -702,6 +702,9 @@ L$ が不足しているのでこのグループに参加することができ
 		</url>
 		<usetemplate ignoretext="使用中のコンピューターのハードウェアがサポートされていないとき" name="okcancelignore" notext="いいえ" yestext="はい"/>
 	</notification>
+	<notification name="RunLauncher">
+		ビューワ実行ファイルを直接実行しないでください。代わりに、既存のショートカットの内のどれかをアップデートし、SL_Launcher を実行してください。
+	</notification>
 	<notification name="OldGPUDriver">
 		グラフィックスチップに最新のドライバがある可能性があります。グラフィックドライバを更新することにより、大幅にパフォーマンスが向上します。
 
@@ -1610,154 +1613,14 @@ SHA1 フィンガープリント: [MD5_DIGEST]
 		未加工の地形ファイルをダウンロードしました:
 [DOWNLOAD_PATH]
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		[APP_NAME] の最新バージョンがご利用可能です。
-[MESSAGE]
-[APP_NAME] をご利用になるにはこのアップデートは必須です。
-		<usetemplate name="okcancelbuttons" notext="終了" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadWindows">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-		<usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-		<usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		[APP_NAME] の最新バージョンがご利用可能です。
-[MESSAGE]
-[APP_NAME] をご利用になるにはこのアップデートは必須です。
-		<usetemplate name="okcancelbuttons" notext="終了" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadLinux">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-		<usetemplate name="okcancelbuttons" notext="続ける" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-		<usetemplate name="okcancelbuttons" notext="続ける" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		[APP_NAME] の最新バージョンがご利用可能です。
-[MESSAGE]
-[APP_NAME] をご利用になるにはこのアップデートは必須です。
-
-あなたのアプリケーションフォルダにダウンロードしますか?
-		<usetemplate name="okcancelbuttons" notext="終了" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadMac">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-
-あなたのアプリケーションフォルダにダウンロードしますか?
-		<usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		[APP_NAME] のアップデートバージョンがご利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンス向上のためにインストールをおすすめします。
-
-あなたのアプリケーションフォルダにダウンロードしますか?
-		<usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		ビューワのアップデートをインストール中にエラーが発生しました。
-http://secondlife.com/download から最新バージョンをダウンロードしてインストールしてください。
+	<notification name="RequiredUpdate">
+		ログインするには、バージョン [VERSION] が必要です。このアップデートは自動的に行われるものですが、まだ実行されてないようです。https://secondlife.com/support/downloads/ からダウンロードしてください。
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		必要なアップデートをインストールできませんでした。 
-[APP_NAME] がアップデートされるまでログインできません。
-
-http://secondlife.com/download から最新バージョンをダウンロードしてインストールしてください。
+	<notification name="LoginFailedUnknown">
+		申し訳ありませんが、不明な理由によってログインに失敗しました。このメッセージが何度も出る場合は、[SUPPORT_SITE] をご確認ください。
 		<usetemplate name="okbutton" yestext="終了"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		お使いの Second Life に必要なアップデートがインストールされていません。
-
-このアップデートは、http://www.secondlife.com/downloads からダウンロードして、今すぐインストールできます。
-		<usetemplate name="okcancelbuttons" notext="終了" yestext="今すぐダウンロードしてインストール"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		お使いの [APP_NAME] に必要なアップデートをダウンロードしました。
-バージョン [VERSION] [[RELEASE_NOTES_FULL_URL] このアップデートに関する情報]
-		<usetemplate name="okcancelbuttons" notext="後で実行" yestext="今すぐインストールして [APP_NAME] を再起動"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		お使いの [APP_NAME] に必要なアップデートをダウンロードしました。
-バージョン [VERSION] [[RELEASE_NOTES_FULL_URL] このアップデートに関する情報]
-		<usetemplate name="okcancelbuttons" notext="後で実行" yestext="今すぐインストールして [APP_NAME] を再起動"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		必要なソフトウェアのアップデートをダウンロードしました。
-バージョン [VERSION] [[INFO_URL] このアップデートに関する情報]
-
-アップデートをインストールするには [APP_NAME] を再起動する必要があります。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		アップデートをインストールするには [APP_NAME] を再起動する必要があります。
-[[INFO_URL] このアップデートに関する情報]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		お使いの [APP_NAME] に必要なアップデートをダウンロードしました。
-バージョン [VERSION] 
-この試験的なビューアが [NEW_CHANNEL] ビューアに置き換えられています;
-このアップデートの詳細については、[[INFO_URL] を参照してください]
-		<usetemplate name="okcancelbuttons" notext="後で実行" yestext="今すぐインストールして [APP_NAME] を再起動"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		お使いの [APP_NAME] に必要なアップデートをダウンロードしました。
-バージョン [VERSION]
-この試験的なビューアが [NEW_CHANNEL] ビューアに置き換えられています;
-[[INFO_URL] このアップデートに関する情報] を参照
-		<usetemplate name="okcancelbuttons" notext="後で実行" yestext="今すぐインストールして [APP_NAME] を再起動"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		必要なソフトウェアのアップデートをダウンロードしました。
-バージョン [VERSION]
-この試験的なビューアが [NEW_CHANNEL] ビューアに置き換えられています;
-[[INFO_URL] このアップデートに関する情報] を参照
-
-アップデートをインストールするには [APP_NAME] を再起動する必要があります。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		アップデートをインストールするには [APP_NAME] を再起動する必要があります。
-この試験的なビューアが [NEW_CHANNEL] ビューアに置き換えられています;
-[[INFO_URL] このアップデートに関する情報] を参照
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		アップデートを利用できます。
-バックグラウンドでアップデートをダウンロードしています。準備ができ次第、インストールを完了するために、ビューワを再起動するように求めるメッセージが表示されます。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		アップデートがダウンロードされました。再起動中にインストールされます。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		アップデートの確認中にエラーが発生しました。
-あとでもう一度お試しください。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		ご利用のビューワは最新です!
-最新の機能と修正を今すぐ試したい場合は、代替ビューワページ (http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers) をチェックしてください。
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		このオブジェクトを譲渡するとグループは以下のことが可能です:
 * オブジェクトに支払われた L$ を受領します。
@@ -3550,6 +3413,10 @@ M キーを押して変更します。
 ボイスチャットによるコミュニケーションが利用できません。
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		ボイスサーバーに接続できません。ボイスチャットによるコミュニケーションが利用できません。お使いのネットワークやファイアウォールの設定を確認してください。
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( [EXISTENCE] 秒)
 アバター「 NAME 」が完全に読み込まれました。
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
index 4c40ba7f7b64d9cc235188308f7020317d78ed43..ac5e43c4d41ce064dc268e97e5bac3738af6de60 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		ソフトウェアアップデート:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="自動的にインストール" name="Install_automatically"/>
-		<combo_box.item label="更新を手動でダウンロードしてインストールします" name="Install_manual"/>
+		<combo_box.item label="各アップデートを自動的にインストールする" name="Install_automatically"/>
+		<combo_box.item label="オプションのアップデートのインストール準備ができたら通知する" name="Install_ask"/>
+		<combo_box.item label="必須アップデートのみインストールする" name="Install_manual"/>
 	</combo_box>
 	<check_box label="release candidate にアップグレードします" name="update_willing_to_test"/>
 	<check_box label="更新後にリリースノートを表示する" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 5d3fb1787e2c3de1064e97c287de493ca7a48b16..5ca7ddd92c31b36b30c12a6baf143836102644c4 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -38,7 +38,7 @@
 		グラフィックを初期化できませんでした。グラフィックドライバを更新してください。
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -77,11 +77,10 @@ LOD 係数: [LOD_FACTOR]
 VFS(キャッシュ)作成時間: [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		J2C デコーダバージョン:[J2C_VERSION]
-オーディオドライババージョン:[AUDIO_DRIVER_VERSION]
-CEF バージョン: [LIBCEF_VERSION]
-LibVLC バージョン: [LIBVLC_VERSION]
-ボイスサーバーバージョン:[VOICE_VERSION]
+		J2C デコーダバージョン: [J2C_VERSION] 
+オーディオドライババージョン: [AUDIO_DRIVER_VERSION] 
+[LIBCEF_VERSION] LibVLC バージョン: [LIBVLC_VERSION] 
+ボイスサーバーバージョン: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
 		パケットロス:[PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
@@ -1445,6 +1444,9 @@ support@secondlife.com にお問い合わせください。
 	<string name="InventoryNoMatchingItems">
 		お探しのものは見つかりましたか? [secondlife:///app/search/all/[SEARCH_TERM] 検索] をお試しください。
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		お探しのものは見つかりましたか?[secondlife:///app/inventory/filters Show filters] をお試しください。
+	</string>
 	<string name="PlacesNoMatchingItems">
 		お探しのものは見つかりましたか? [secondlife:///app/search/places/[SEARCH_TERM] 検索] をお試しください。
 	</string>
diff --git a/indra/newview/skins/default/xui/pt/floater_preferences.xml b/indra/newview/skins/default/xui/pt/floater_preferences.xml
index b3cd20b0e9adcca87eb518f9f7a0133b5754e9dd..8a2ef83a3b47d19b29d0032d853721509091bc79 100644
--- a/indra/newview/skins/default/xui/pt/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="PREFERÊNCIAS">
+	<floater.string name="email_unverified_tooltip">
+		Vericiar seu e-mail para habilitar o IM para envio de e-mail pelo endereço https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="OK" label_selected="OK" name="OK"/>
 	<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/pt/floater_tos.xml b/indra/newview/skins/default/xui/pt/floater_tos.xml
index 09a90bc76c72314329202375a55529bcf25f080f..0581c95bc66a538e6ca3fd669e2a11754c37aee8 100644
--- a/indra/newview/skins/default/xui/pt/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		Antes de continuar, você precisará visitar https://my.secondlife.com e fazer login para aceitar os Termos de Serviço. Obrigado!
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    Li e concordo os Termos e condições, Política de privacidade e Termos de serviço do Second Life, incluindo as exigências para resolver disputas.
-  </text>
+		Eu lie e concordo com os Termos e condições, Política de privacidade e Termos de serviço do Second Life, incluindo as exigências para resolver disputas.
+	</text>
 	<button label="Continuar" label_selected="Continuar" name="Continue"/>
 	<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/pt/mime_types.xml b/indra/newview/skins/default/xui/pt/mime_types.xml
index 54902f165bcda539bc0d0f861a150603ef525014..75307f0aaf672d961f1697749d16b93d49039c23 100644
--- a/indra/newview/skins/default/xui/pt/mime_types.xml
+++ b/indra/newview/skins/default/xui/pt/mime_types.xml
@@ -57,6 +57,11 @@
 			Transmissão em tempo real
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Exemplo Plugin scheme trigger
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Mídia com suporte a LibVLC
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index d22e0f7bb7ec6f5a3f8f6368f195b3c98ea89f8b..b66f65c682ed1a85f8d3102d6bdb292da7560ad4 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -678,6 +678,9 @@ Consultar [_URL] para mais informações?
 		</url>
 		<usetemplate ignoretext="O hardware do meu computador não é suportado" name="okcancelignore" notext="Não" yestext="Sim"/>
 	</notification>
+	<notification name="RunLauncher">
+		Não executar diretamente o visualizador executável. Atualizar quaisquer atalhos existentes para executar o SL_Launcher.
+	</notification>
 	<notification name="OldGPUDriver">
 		Provavelmente, há um driver mais recente para o seu chip gráfico.  A atualização dos drivers gráficos pode melhorar significativamente o desempenho.
 
@@ -1572,157 +1575,14 @@ Por favor, ponha o objeto à venda e tente novamente.
 		Download do arquivo de terreno RAW concluído em:
 [DOWNLOAD_PATH]
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Baixe a atualização para usar o [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Sair" yestext="Atualizar"/>
-	</notification>
-	<notification name="DownloadWindows">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade do visualizador.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade do visualizador.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Baixe a atualização para usar o [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Sair" yestext="Baixar"/>
-	</notification>
-	<notification name="DownloadLinux">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Baixar"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade.
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Baixar"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Baixe a atualização para usar o [APP_NAME].
-
-Salvar na pasta Aplicativos?
-		<usetemplate name="okcancelbuttons" notext="Sair" yestext="Atualizar"/>
-	</notification>
-	<notification name="DownloadMac">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade do visualizador. 
-
-Salvar na pasta Aplicativos?
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		Existe uma nova versão do [APP_NAME] 
-[MESSAGE]
-Não é preciso passar para a nova versão, mas ela pode melhorar o desempenho e estabilidade do visualizador. 
-
-Salvar na pasta Aplicativos?
-		<usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Ocorreu um erro de atualização do visualizador. 
-Baixe e instale a versão mais recente do visualizador em 
-http://secondlife.com/download.
+	<notification name="RequiredUpdate">
+		Versão [VERSION] é obrigatório para efetuar login. Isto deveria ter sido atualizado por você, mas aparentemente não foi. Baixe a versão mais recente em https://secondlife.com/support/downloads/
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Não foi possível instalar uma atualização necessária. 
-Não será possível acessar a sua conta até que você atualize o [APP_NAME].
-
-Baixe e instale a versão mais recente do visualizador em 
-http://secondlife.com/download.
+	<notification name="LoginFailedUnknown">
+		Desculpe, motivo de falha de login desconhecido. Se você continuar a receber esta mensagem, por favor consulte o [SUPPORT_SITE].
 		<usetemplate name="okbutton" yestext="Sair"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		A instalação do Second Life requer uma atualização.
-
-Baixe a atualização em http://www.secondlife.com/downloads
-ou você pode instalar a instalação agora.
-		<usetemplate name="okcancelbuttons" notext="Sair do Second Life" yestext="Baixar e instalar agora"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		Baixamos uma atualização para a instalação do [APP_NAME].
-Versão [VERSION] [[RELEASE_NOTES_FULL_URL] sobre esta atualização]
-		<usetemplate name="okcancelbuttons" notext="Depois..." yestext="Instalar agora e reiniciar o [APP_NAME]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		Baixamos uma atualização para a instalação do [APP_NAME].
-Versão [VERSION] [[RELEASE_NOTES_FULL_URL] sobre esta atualização]
-		<usetemplate name="okcancelbuttons" notext="Depois..." yestext="Instalar agora e reiniciar o [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		O software requer uma atualização que já foi baixada.
-Versão [VERSION] Informação [[INFO_URL] sobre essa atualização]
-
-Para instalar a atualização, será preciso reiniciar o [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Para instalar a atualização, será preciso reiniciar o [APP_NAME].
-Informação [[INFO_URL] sobre essa atualização]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		Baixamos uma atualização para a instalação do [APP_NAME].
-Versão [VERSION] 
-O visualizador experimental foi substituído por um visualizador [NEW_CHANNEL];
-consulte [[INFO_URL] para obter mais detalhes sobre essa atualização]
-		<usetemplate name="okcancelbuttons" notext="Depois..." yestext="Instalar agora e reiniciar o [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		Baixamos uma atualização para a instalação do [APP_NAME].
-Versão [VERSION]
-O visualizador experimental foi substituído por um visualizador [NEW_CHANNEL];
-consulte a informação [[INFO_URL] sobre essa atualização]
-		<usetemplate name="okcancelbuttons" notext="Depois..." yestext="Instalar agora e reiniciar o [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		O software requer uma atualização que já foi baixada.
-Versão [VERSION]
-O visualizador experimental foi substituído por um visualizador [NEW_CHANNEL];
-consulte a informação [[INFO_URL] sobre essa atualização]
-
-Para instalar a atualização, será preciso reiniciar o [APP_NAME].
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Para instalar a atualização, será preciso reiniciar o [APP_NAME].
-O visualizador experimental foi substituído por um visualizador [NEW_CHANNEL];
-consulte a informação [[INFO_URL] sobre essa atualização]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Uma atualização está disponível!
-O download está ocorrendo em segundo plano e reiniciaremos seu visualizador automaticamente para terminar a instalação assim que ele estiver concluído.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Uma atualização foi baixada. Ela será instalada durante a reinicialização.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Erro ao verificar atualizações.
-Tente novamente mais tarde.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Seu visualizador está atualizado!
-Se você estiver muito ansioso para experimentar os novos recursos e correções, consulte a página de visualizadores alternativos. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		Delegar este objeto causará ao grupo:
 * Receber os L$ pagos ao objeto
@@ -3500,6 +3360,10 @@ Desativar qualquer configuração SIP ALG em seu router.
 Talvez não seja possível se comunicar via voz.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Estamos tendo problemas de conexão com o seu servidor de voz: Talvez não seja possível se comunicar via voz. Verifique a configuração da sua rede e firewall.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( [EXISTENCE] segundos de vida )
 Avatar &apos;[NAME]&apos; saiu totalmente carregado.
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
index c6f6bba320a455557f522e3833fb7cf89d422961..ce356a6447ae4e85c3658212ac6025e9af890e10 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Atualizações de software:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Instalar automaticamente" name="Install_automatically"/>
-		<combo_box.item label="Baixarei e instalarei as atualizações manualmente" name="Install_manual"/>
+		<combo_box.item label="Instalar cada atualização automaticamente" name="Install_automatically"/>
+		<combo_box.item label="Pergunte-me quando uma atualização opcional estiver pronta para ser instalada" name="Install_ask"/>
+		<combo_box.item label="Instalar somente as atualizações obrigatórias" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Disposto a atualizar para candidatos da versão" name="update_willing_to_test"/>
 	<check_box label="Mostrar notas de versão após atualização" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index c1acab097df046a7fa50d552044754ef8834d40c..ee048e28e3c600c5ffb60faef94519bedbf40600 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -29,7 +29,7 @@
 		Falha na inicialização dos gráficos. Atualize seu driver gráfico!
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -68,10 +68,10 @@ Memória de textura: [TEXTURE_MEMORY]MB
 Tempo de criação de VFS (cache): [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		Versão do J2C Decoder: [J2C_VERSION]
+		Versão do J2C Decoder: [J2C_VERSION] 
 Versão do driver de áudio: [AUDIO_DRIVER_VERSION]
-Versão de CEF: [LIBCEF_VERSION]
-Versão da LibVLC: [LIBVLC_VERSION]
+[LIBCEF_VERSION] 
+Versão do LibVLC: [LIBVLC_VERSION] 
 Versão do servidor de voz: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
@@ -1395,6 +1395,9 @@ http://secondlife.com/support para ajuda ao resolver este problema.
 	<string name="InventoryNoMatchingItems">
 		Não encontrou o que procura? Tente buscar no [secondlife:///app/search/people/[SEARCH_TERM] Search].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Não encontrou o que procura? Tente [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Não encontrou o que procura? Tente buscar no [secondlife:///app/search/groups/[SEARCH_TERM] Search].
 	</string>
diff --git a/indra/newview/skins/default/xui/ru/floater_preferences.xml b/indra/newview/skins/default/xui/ru/floater_preferences.xml
index fa78eedd3adf8d676d02e7763df4c20db8dbc815..1f04eabaf71521c58e2f331cde4be5eab04d7b2f 100644
--- a/indra/newview/skins/default/xui/ru/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="НАСТРОЙКИ">
+	<floater.string name="email_unverified_tooltip">
+		Проверьте свою электронную почту для отправки мгновенных сообщений через электронную почту на странице https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="ОК" label_selected="ОК" name="OK"/>
 	<button label="Отмена" label_selected="Отмена" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/ru/floater_tos.xml b/indra/newview/skins/default/xui/ru/floater_tos.xml
index 4cfdf5af7027d2ec814b4de7a1ab884d4fbea8ea..3f2b5747d58eb1e2713b2de663a50382b5c0966e 100644
--- a/indra/newview/skins/default/xui/ru/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ru/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		Для продолжения перейдите на сайт https://my.secondlife.com, войдите и примите Условия обслуживания. Спасибо!
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    Я прочитал и согласен с условиями и положениями по конфиденциальности Пользовательского соглашения, включая требования по разрешению разногласий.
-  </text>
+		Я прочитал и согласен с Условиями и положениями по конфиденциальности Пользовательского соглашения, включая требования по разрешению разногласий Second Life.
+	</text>
 	<button label="Продолжить" label_selected="Продолжить" name="Continue"/>
 	<button label="Отмена" label_selected="Отмена" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/ru/mime_types.xml b/indra/newview/skins/default/xui/ru/mime_types.xml
index 9c3ce00c5e705c9354c43a41df65f3b336e40cb1..cfb720804983e572bf7787953fb4ea7cbb69100c 100644
--- a/indra/newview/skins/default/xui/ru/mime_types.xml
+++ b/indra/newview/skins/default/xui/ru/mime_types.xml
@@ -57,6 +57,11 @@
 			Поток RealTime
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Пример триггера схемы плагина
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			Медиа с поддержкой LibVLC
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 0996224932a169630e96f8e224dfdad7ecb301fb..483cebaac5d89459ed404679fb41a2f5b096c704 100644
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -684,6 +684,9 @@
 		</url>
 		<usetemplate ignoretext="Оборудование моего компьютера не поддерживается" name="okcancelignore" notext="Нет" yestext="Да"/>
 	</notification>
+	<notification name="RunLauncher">
+		Пожалуйста, не запускайте напрямую исполняемый файл просмотра. Обновите все имеющиеся ярлыки, чтобы вместо этого запускать SL_Launcher.
+	</notification>
 	<notification name="OldGPUDriver">
 		Возможно, для вашей видеокарты имеется более новый драйвер.  Обновление драйвера может существенно повысить быстродействие.
 
@@ -1580,157 +1583,14 @@
 		Завершена загрузка файла ландшафта:
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		Появилась новая версия [APP_NAME].
-[MESSAGE]
-Это обновление необходимо загрузить для использования [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Выйти" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadWindows">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		Появилась новая версия [APP_NAME].
-[MESSAGE]
-Это обновление необходимо загрузить для использования [APP_NAME].
-		<usetemplate name="okcancelbuttons" notext="Выйти" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadLinux">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		Появилась новая версия [APP_NAME].
-[MESSAGE]
-Это обновление необходимо загрузить для использования [APP_NAME].
-
-Загрузить его в папку приложений?
-		<usetemplate name="okcancelbuttons" notext="Выйти" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadMac">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-
-Загрузить его в папку приложений?
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		Появилось обновление для [APP_NAME].
-[MESSAGE]
-Устанавливать это обновление не обязательно, но рекомендуется для повышения производительности и стабильности.
-
-Загрузить его в папку приложений?
-		<usetemplate name="okcancelbuttons" notext="Продолжить" yestext="Загрузить"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Произошла ошибка при установке обновления.
-Загрузите новую версию программы на сайте
-http://secondlife.com/download.
+	<notification name="RequiredUpdate">
+		Для входа необходима версия \[VERSION]. Для вас обновление должно было произведено автоматически, но по какой-то причине этого не произошло. Скачайте обновление с веб-сайта https://secondlife.com/support/downloads/
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Не удалось установить обязательное обновление. 
-Вы не сможете войти в [APP_NAME], пока обновление не будет установлено.
-
-Загрузите новую версию программы на сайте
-http://secondlife.com/download.
+	<notification name="LoginFailedUnknown">
+		Извините, ошибка входа по неустановленной причине. Если данное сообщение повторится, посетите веб-сайт [SUPPORT_SITE].
 		<usetemplate name="okbutton" yestext="Выйти"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		Появились обязательные обновления для вашей версии Second Life.
-
-Загрузите это обновление на сайте http://www.secondlife.com/downloads
-или установите его сейчас.
-		<usetemplate name="okcancelbuttons" notext="Выйти из Second Life" yestext="Загрузить и установить сейчас"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		Загружено обновление для вашей версии [APP_NAME].
-Версия [VERSION]. [[RELEASE_NOTES_FULL_URL] Сведения об этом обновлении]
-		<usetemplate name="okcancelbuttons" notext="Позже..." yestext="Установите обновление и перезапустите [APP_NAME]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		Загружено обновление для вашей версии [APP_NAME].
-Версия [VERSION]. [[RELEASE_NOTES_FULL_URL] Сведения об этом обновлении]
-		<usetemplate name="okcancelbuttons" notext="Позже..." yestext="Установите обновление и перезапустите [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		Загружено обязательное обновление.
-Версия [VERSION]. [[INFO_URL] Сведения об этом обновлении]
-
-Необходимо перезапустить [APP_NAME] для установки обновления.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Необходимо перезапустить [APP_NAME] для установки обновления.
-[[INFO_URL] Сведения об этом обновлении]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		Загружено обновление для вашей версии [APP_NAME].
-Версия [VERSION] 
-На замену этой экспериментальной версии клиента предлагается клиент [NEW_CHANNEL];
-см. [[INFO_URL] об этом обновлении]
-		<usetemplate name="okcancelbuttons" notext="Позже..." yestext="Установите обновление и перезапустите [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		Загружено обновление для вашей версии [APP_NAME].
-Версия [VERSION]
-На замену этой экспериментальной версии клиента предлагается клиент [NEW_CHANNEL];
-см. [[INFO_URL] Сведения об этом обновлении]
-		<usetemplate name="okcancelbuttons" notext="Позже..." yestext="Установите обновление и перезапустите [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		Загружено обязательное обновление.
-Версия [VERSION]
-На замену этой экспериментальной версии клиента предлагается клиент [NEW_CHANNEL];
-см. [[INFO_URL] Сведения об этом обновлении]
-
-Необходимо перезапустить [APP_NAME] для установки обновления.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Необходимо перезапустить [APP_NAME] для установки обновления.
-На замену этой экспериментальной версии клиента предлагается клиент [NEW_CHANNEL];
-см. [[INFO_URL] Сведения об этом обновлении]
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Появилось обновление!
-Оно сейчас загружается в фоновом режиме и, как только будет готово, вам будет предложено перезапустить клиент для завершения установки.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Обновление загружено. Оно будет установлено после перезапуска.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		При поиске обновлений произошла ошибка.
-Повторите попытку позже.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Ваш клиент уже обновлен!
-Если вы хотите немедленно испробовать наши новейшие функции и исправления, обратитесь на страницу «Альтернативные клиенты»: http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="OK"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		В результате передачи этого объекта группа:
 * Получит L$ в уплату за объект
@@ -3511,6 +3371,10 @@ http://secondlife.com/download.
 Голосовое общение будет недоступно.
 		<usetemplate name="okbutton" yestext="OK"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Проблемы соединения с речевым сервером: Голосовое общение будет недоступно. Проверьте настройки сети и брандмауэра.
+		<usetemplate name="okbutton" yestext="OK"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( [EXISTENCE] сек. жизни )
 Аватар «[NAME]» полностью загружен.
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
index e1b185e8efaff559bde86f9c9d6723a66c9dfb68..d19a35c8b5bdcf0aaa4135606dead849358f4f81 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Обновления ПО:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Устанавливать автоматически" name="Install_automatically"/>
-		<combo_box.item label="Я буду загружать и устанавливать обновления вручную" name="Install_manual"/>
+		<combo_box.item label="Автоматическая установка каждого обновления" name="Install_automatically"/>
+		<combo_box.item label="Когда необязательное обновление будет готово к установке, запросите меня" name="Install_ask"/>
+		<combo_box.item label="Установка только обязательных обновлений" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Устанавливать бета-версии" name="update_willing_to_test"/>
 	<check_box label="Показать заметки о выпуске после обновления" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index b94c417ef07d59da2fa5e4edf53d37d10bed4b91..95225da7d0b1b8bbdeb5de98f18b7f83d29ebae7 100644
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -38,7 +38,7 @@
 		Ошибка инициализации графики. Обновите графический драйвер!
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -77,11 +77,11 @@ SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
 Время создания VFS (кэш): [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		Версия декодера J2C: [J2C_VERSION]
-Версия драйвера звука: [AUDIO_DRIVER_VERSION]
-Версия CEF: [LIBCEF_VERSION]
-Версия LibVLC: [LIBVLC_VERSION]
-Версия голосового сервера: [VOICE_VERSION]
+		Версия декодера J2C: [J2C_VERSION] 
+Версия аудиодрайвера: [AUDIO_DRIVER_VERSION] 
+[LIBCEF_VERSION] 
+Версия LibVLC: [LIBVLC_VERSION] 
+Версия речевого сервера: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
 		Потеряно пакетов: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
@@ -1442,6 +1442,9 @@ support@secondlife.com.
 	<string name="InventoryNoMatchingItems">
 		Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/all/[SEARCH_TERM] поиском].
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Не нашли то, что искали? Попробуйте на [secondlife:///app/inventory/filters Show filters].
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Не нашли того, что вам нужно? Воспользуйтесь [secondlife:///app/search/places/[SEARCH_TERM] поиском].
 	</string>
diff --git a/indra/newview/skins/default/xui/tr/floater_preferences.xml b/indra/newview/skins/default/xui/tr/floater_preferences.xml
index 679b0182471346c92818bda885eed7eb70a48770..c9d509c86817817b75f568ae802527a81f1a51ac 100644
--- a/indra/newview/skins/default/xui/tr/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preferences.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="TERCÄ°HLER">
+	<floater.string name="email_unverified_tooltip">
+		Lütfen Anlık Mesajlaşmayı etkinleştirmek için https://accounts.secondlife.com/change_email/ adresini ziyaret ederek e-postanızı doğrulayın
+	</floater.string>
 	<button label="Tamam" label_selected="Tamam" name="OK"/>
 	<button label="Ä°ptal" label_selected="Ä°ptal" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/tr/floater_tos.xml b/indra/newview/skins/default/xui/tr/floater_tos.xml
index 9c0249526a3fc31679c8970de83bd82275f863ff..091a641f0336b8866c44fce3ce0c53cd9dc7d063 100644
--- a/indra/newview/skins/default/xui/tr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/tr/floater_tos.xml
@@ -12,8 +12,9 @@
 	<text name="external_tos_required">
 		Devam edebilmeniz için https://my.secondlife.com adresine gidip oturum açarak Hizmet Sözleşmesi&apos;ni kabul etmeniz gerekir. Teşekkürler!
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-		Uyuşmazlıkların çözümü gerekliliklerini içeren Second Life Şartlar ve Koşulları, Gizlilik Politikası&apos;nı ve Hizmet Koşulları&apos;nı okudum ve kabul ediyorum.
+		Anlaşmazlıkların çözümü de dahil olmak üzere Second Life Şartlarını ve Koşullarını, Gizlilik Politikasını ve Hizmet Şartlarını okudum ve kabul ediyorum.
 	</text>
 	<button label="Devam Et" label_selected="Devam Et" name="Continue"/>
 	<button label="Ä°ptal" label_selected="Ä°ptal" name="Cancel"/>
diff --git a/indra/newview/skins/default/xui/tr/mime_types.xml b/indra/newview/skins/default/xui/tr/mime_types.xml
index 5b13b0059af9be70565e7c2caa770f8178e0a064..6c049a5d073c7f520372dc544f065a6bf90716a3 100644
--- a/indra/newview/skins/default/xui/tr/mime_types.xml
+++ b/indra/newview/skins/default/xui/tr/mime_types.xml
@@ -57,6 +57,11 @@
 			Gerçek Zamanlı Akış
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			Örnek Eklenti şeması tetikleyici
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			LibVLC destekli ortam
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index 1deda01de844ae5b4096ffad6e19f5e4043d102f..d218eb1957fb0e27df7e118a486d097ae5bf1d47 100644
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -685,6 +685,9 @@ Daha fazla bilgi için [_URL] adresini ziyaret etmek ister misiniz?
 		</url>
 		<usetemplate ignoretext="Bilgisayar donanımım desteklenmiyor" name="okcancelignore" notext="Hayır" yestext="Evet"/>
 	</notification>
+	<notification name="RunLauncher">
+		Lütfen çalıştırılabilir görüntüleyiciyi doğrudan çalıştırmayın. SL_Launcher&apos;ı çalıştırmak yerine tüm mevcut kısayolları güncelleyin.
+	</notification>
 	<notification name="OldGPUDriver">
 		Grafik yonganız için muhtemelen daha yeni bir sürücü mevcut.  Grafik sürücüleri güncellemek performansınızı kayda değer şekilde artırabilir.
 
@@ -1581,157 +1584,14 @@ Nesneyi satılık olarak ayarlayıp tekrar deneyin.
 		İşlenmemiş yüzey dosyasının şu konuma karşıdan yüklenmesi tamamlandı:
 [DOWNLOAD_PATH].
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		[APP_NAME] uygulamasının yeni bir sürümü mevcut.
-[MESSAGE]
-[APP_NAME] uygulamasını kullanabilmek için bu güncellemeyi karşıdan yüklemelisiniz.
-		<usetemplate name="okcancelbuttons" notext="Çık" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadWindows">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		[APP_NAME] uygulamasının yeni bir sürümü mevcut.
-[MESSAGE]
-[APP_NAME] uygulamasını kullanabilmek için bu güncellemeyi karşıdan yüklemelisiniz.
-		<usetemplate name="okcancelbuttons" notext="Çık" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadLinux">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		[APP_NAME] uygulamasının yeni bir sürümü mevcut.
-[MESSAGE]
-[APP_NAME] uygulamasını kullanabilmek için bu güncellemeyi karşıdan yüklemelisiniz.
-
-Uygulamalar klasörünüze karşıdan yüklensin mi?
-		<usetemplate name="okcancelbuttons" notext="Çık" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadMac">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-
-Uygulamalar klasörünüze karşıdan yüklensin mi?
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		[APP_NAME] uygulamasının güncellenmiş bir sürümü mevcut.
-[MESSAGE]
-Bu güncelleme zorunlu değil, fakat performans ve kararlılığı iyileştirmek için güncellemeyi yüklemenizi öneririz.
-
-Uygulamalar klasörünüze karşıdan yüklensin mi?
-		<usetemplate name="okcancelbuttons" notext="Devam" yestext="Karşıdan Yükle"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		Görüntüleyici güncellemesi yüklenirken bir hata oluştu.
-Lütfen en son görüntüleyiciyi şu adresten karşıdan yükleyin ve kurun: 
-http://secondlife.com/download.
+	<notification name="RequiredUpdate">
+		Oturum açma için [VERSION] sürümü gerekli. Bu sizin için güncellenmiş olmalıydı ancak görünüşe göre güncellenmemiş. Lütfen www.secondlife.com adresinden indirin.
 		<usetemplate name="okbutton" yestext="Tamam"/>
 	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		Gerekli bir güncellemeyi yükleyemedik. 
-[APP_NAME] güncellenene kadar oturum açamayacaksınız.
-
-Lütfen en son görüntüleyiciyi şu adresten karşıdan yükleyin ve kurun: 
-http://secondlife.com/download.
+	<notification name="LoginFailedUnknown">
+		Üzgünüz, oturum açma bilinmeyen bir nedenden dolayı başarısız oldu. Bu mesajı almaya devam ederseniz, lütfen [SUPPORT_SITE] bölümüne başvurun.
 		<usetemplate name="okbutton" yestext="Çık"/>
 	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		Second Life kurulumunuz için gerekli bir güncelleme var.
-
-Bu güncellemeyi http://www.secondlife.com/downloads adresinden karşıdan yükleyebilir
-veya ÅŸimdi kurabilirsiniz.
-		<usetemplate name="okcancelbuttons" notext="Second Life&apos;tan çık" yestext="Karşıdan yükle ve şimdi kur"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		[APP_NAME] kurulumunuz için bir güncellemeyi karşıdan yükledik.
-Sürüm [VERSION] [[RELEASE_NOTES_FULL_URL] Bu güncelleme hakkında ayrıntılı bilgi]
-		<usetemplate name="okcancelbuttons" notext="Sonra..." yestext="Şimdi kur ve [APP_NAME] uygulamasını yeniden başlat"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		[APP_NAME] kurulumunuz için bir güncellemeyi karşıdan yükledik.
-Sürüm [VERSION] [[RELEASE_NOTES_FULL_URL] Bu güncelleme hakkında ayrıntılı bilgi]
-		<usetemplate name="okcancelbuttons" notext="Sonra..." yestext="Şimdi kur ve [APP_NAME] uygulamasını yeniden başlat"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		Gerekli bir yazılım güncellemesi indirdik.
-Sürüm [VERSION] [[INFO_URL] Bu güncelleme hakkında ayrıntılı bilgi]
-
-Güncellemeyi yüklemek için [APP_NAME] uygulamasını yeniden başlatmalısınız.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		Güncellemeyi yüklemek için [APP_NAME] uygulamasını yeniden başlatmalısınız.
-[[INFO_URL] Bu güncelleme hakkında bilgi]
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		[APP_NAME] kurulumunuz için bir güncelleme indirdik.
-Sürüm [VERSION] 
-Bu deneysel görüntüleyicinin yerini bir [NEW_CHANNEL] görüntüleyici aldı;
-bkz. [bu güncelleme hakkında bilgi için [INFO_URL]]
-		<usetemplate name="okcancelbuttons" notext="Sonra..." yestext="Şimdi yükle ve [APP_NAME] uygulamasını yeniden başlat"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		[APP_NAME] kurulumunuz için bir güncelleme indirdik.
-Sürüm [VERSION]
-Bu deneysel görüntüleyicinin yerini bir [NEW_CHANNEL] görüntüleyici aldı;
-bkz. [[INFO_URL] Bu güncelleme hakkında bilgi]
-		<usetemplate name="okcancelbuttons" notext="Sonra..." yestext="Şimdi yükle ve [APP_NAME] uygulamasını yeniden başlat"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		Gerekli bir yazılım güncellemesi indirdik.
-Sürüm [VERSION]
-Bu deneysel görüntüleyicinin yerini bir [NEW_CHANNEL] görüntüleyici aldı;
-bkz. [[INFO_URL] Bu güncelleme hakkında bilgi]
-
-Güncellemeyi yüklemek için [APP_NAME] uygulamasını yeniden başlatmalısınız.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		Güncellemeyi yüklemek için [APP_NAME] uygulamasını yeniden başlatmalısınız.
-Bu deneysel görüntüleyicinin yerini bir [NEW_CHANNEL] görüntüleyici aldı;
-bkz. [[INFO_URL] Bu güncelleme hakkında bilgi]
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		Bir güncelleme mevcut.
-Şu anda arkaplanda indiriliyor ve hazır olduğunda yüklemeyi bitirmek için görüntüleyicinizi yeniden başlatmanız için sizi uyaracağız.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		Bir güncelleme indirildi. Yeniden başlatma sırasında yüklenecek.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		Güncelleme kontrolü yapılırken bir hata oluştu.
-Lütfen daha sonra tekrar deneyin.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		Görüntüleyiciniz güncel.
-En yeni özellikleri ve düzeltmeleri görmek için sabırsızlanıyorsanız Alternatif Görüntüleyici sayfasına göz atın. http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers.
-		<usetemplate name="okbutton" yestext="Tamam"/>
-	</notification>
 	<notification name="DeedObjectToGroup">
 		Bu nesnenin devredilmesi grubun şunu yapmasına sebep olacak:
 * Nesneye ödenen L$&apos;nı almasına
@@ -3511,6 +3371,10 @@ Yönlendiricinizdeki her SIP ALG özelliğini devre dışı bırakın.
 Sesli iletişim kullanılamayacak.
 		<usetemplate name="okbutton" yestext="Tamam"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		Ses sunucunuz ile bağlantı kurma konusunda sorun yaşıyoruz. Ses bağlantıları kullanılamayacak. Lütfen ağ ve güvenlik duvarı ayarlarınızı kontrol edin.
+		<usetemplate name="okbutton" yestext="Tamam"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		( [EXISTENCE] saniyedir hayatta )
 &apos;[NAME]&apos; adlı avatar tam olarak yüklenmiş bir şekilde ayrıldı.
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
index 39a7ce99737b5db836de619c5eaf13d1b43e4960..91a7cb48b7d1d36eff32a8d5ebbe7795ce2fd46f 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		Yazılım güncelleştirmeleri:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="Otomatik olarak kurulsun" name="Install_automatically"/>
-		<combo_box.item label="Güncellemeleri manuel olarak indirip yükleyeceğim" name="Install_manual"/>
+		<combo_box.item label="Her bir güncellemeyi otomatik olarak yükle" name="Install_automatically"/>
+		<combo_box.item label="İsteğe bağlı bir güncelleme yüklenmeye hazır olduğunda bana sor" name="Install_ask"/>
+		<combo_box.item label="Yalnızca zorunlu güncellemeleri yükle" name="Install_manual"/>
 	</combo_box>
 	<check_box label="Sürüm adaylarına güncelleme yapmaya gönüllü" name="update_willing_to_test"/>
 	<check_box label="Güncellemeden sonra Sürüm Notlarını göster" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index c2f7b7bdc6942f4185a5c657e6bb29e55c686976..6850c67df3353a8a8a7745ee1b3bae653871f268 100644
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -38,7 +38,7 @@
 		Grafik başlatma başarılamadı. Lütfen grafik sürücünüzü güncelleştirin!
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) 
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -77,10 +77,10 @@ Doku belleÄŸi: [TEXTURE_MEMORY]MB
 VFS (önbellek) oluşturma zamanı: [VFS_TIME]
 	</string>
 	<string name="AboutLibs">
-		J2C Kod Çözücü Sürümü: [J2C_VERSION]
-Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION]
-CEF Sürümü: [LIBCEF_VERSION]
-LibVLC Sürümü: [LIBVLC_VERSION]
+		J2C Kod Çözücü Sürümü: [J2C_VERSION] 
+Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION] 
+[LIBCEF_VERSION] 
+LibVLC Sürümü: [LIBVLC_VERSION] 
 Ses Sunucusu Sürümü: [VOICE_VERSION]
 	</string>
 	<string name="AboutTraffic">
@@ -1442,6 +1442,9 @@ http://secondlife.com/support adresini ziyaret edin.
 	<string name="InventoryNoMatchingItems">
 		Aradığınızı bulamadınız mı? [secondlife:///app/search/all/[SEARCH_TERM] Arama] ile bulmayı deneyin.
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		Aradığınızı bulamadınız mı? [secondlife:///app/inventory/filters Show filters] seçeneğini deneyin.
+	</string>
 	<string name="PlacesNoMatchingItems">
 		Aradığınızı bulamadınız mı? [secondlife:///app/search/places/[SEARCH_TERM] Arama] ile bulmayı deneyin.
 	</string>
diff --git a/indra/newview/skins/default/xui/zh/floater_preferences.xml b/indra/newview/skins/default/xui/zh/floater_preferences.xml
index c5b078f3c74c813ed20665f94eca19bfd910df3c..7f35f40b9e8e1185083ab0faf2ace84359f7b9d4 100644
--- a/indra/newview/skins/default/xui/zh/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preferences.xml
@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <floater name="Preferences" title="偏好設定">
+	<floater.string name="email_unverified_tooltip">
+		請至以下網址確認電郵,以便啓動即時通訊:
+https://accounts.secondlife.com/change_email/
+	</floater.string>
 	<button label="確定" label_selected="確定" name="OK"/>
 	<button label="取消" label_selected="取消" name="Cancel"/>
 	<tab_container name="pref core">
diff --git a/indra/newview/skins/default/xui/zh/floater_tos.xml b/indra/newview/skins/default/xui/zh/floater_tos.xml
index cde6445e341e5a663771ac457a22a5eac4289b3b..4cac07cd218de2e04ddd9aaca1593ddee49ae7af 100644
--- a/indra/newview/skins/default/xui/zh/floater_tos.xml
+++ b/indra/newview/skins/default/xui/zh/floater_tos.xml
@@ -12,9 +12,10 @@
 	<text name="external_tos_required">
 		你需先登入 https://my.secondlife.com 同意服務條款,才可繼續。 謝謝你!
 	</text>
+	<check_box label="" name="agree_chk"/>
 	<text name="agree_list">
-    我已閱畢並同意 Second Life使用條款、隱私政策、服務條款,包括解決爭端的規定途徑。
-  </text>
+		我已閱畢並同意Second Life使用條款、隱私政策、服務條款,包括解決爭端的規定途徑。
+	</text>
 	<button label="繼續" label_selected="繼續" name="Continue"/>
 	<button label="取消" label_selected="取消" name="Cancel"/>
 </floater>
diff --git a/indra/newview/skins/default/xui/zh/mime_types.xml b/indra/newview/skins/default/xui/zh/mime_types.xml
index f4b68227784b10bc3892bdc6a4e96d3bdf82db6d..52f25d18d2d6a79850dfa937b8905e918d64ad7a 100644
--- a/indra/newview/skins/default/xui/zh/mime_types.xml
+++ b/indra/newview/skins/default/xui/zh/mime_types.xml
@@ -57,6 +57,11 @@
 			即時串流
 		</label>
 	</scheme>
+	<scheme name="example">
+		<label name="example_label">
+			插件範例樣板觸發器
+		</label>
+	</scheme>
 	<scheme name="libvlc">
 		<label name="libvlc_label">
 			LibVLC支持的媒體
diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml
index d25192d7ba416438ee76d11acd67bd76e3b16a7c..5949d068c35656edf6389b20adf1b8056a28b147 100644
--- a/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/indra/newview/skins/default/xui/zh/notifications.xml
@@ -685,6 +685,9 @@
 		</url>
 		<usetemplate ignoretext="我的電腦硬體並不支援" name="okcancelignore" notext="否" yestext="是"/>
 	</notification>
+	<notification name="RunLauncher">
+		請勿直接執行該瀏覽器可執行程式。 如果有SL_Launcher(SL啓動器)的捷徑,請更新,以便正常使用。
+	</notification>
 	<notification name="OldGPUDriver">
 		你的顯示卡很可能有新版的驅動程式。  更新顯示驅動程式會大幅改善性能。
 
@@ -1574,153 +1577,16 @@ SHA1 指紋:[MD5_DIGEST]
 		原始地形檔案下載完成:
 [DOWNLOAD_PATH]。
 	</notification>
-	<notification name="DownloadWindowsMandatory">
-		有個新版本的 [APP_NAME] 可供使用。
-[MESSAGE]
-你必須下載這個更新才可使用 [APP_NAME]。
-		<usetemplate name="okcancelbuttons" notext="結束退出" yestext="下載"/>
-	</notification>
-	<notification name="DownloadWindows">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="DownloadWindowsReleaseForDownload">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="DownloadLinuxMandatory">
-		有個新版本的 [APP_NAME] 可供使用。
-[MESSAGE]
-你必須下載這個更新才可使用 [APP_NAME]。
-		<usetemplate name="okcancelbuttons" notext="結束退出" yestext="下載"/>
-	</notification>
-	<notification name="DownloadLinux">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="DownloadLinuxReleaseForDownload">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="DownloadMacMandatory">
-		有個新版本的 [APP_NAME] 可供使用。
-[MESSAGE]
-你必須下載這個更新才可使用 [APP_NAME]。
-
-下載到 Applications 資料夾?
-		<usetemplate name="okcancelbuttons" notext="結束退出" yestext="下載"/>
-	</notification>
-	<notification name="DownloadMac">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-
-下載到 Applications 資料夾?
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="DownloadMacReleaseForDownload">
-		一個 [APP_NAME] 更新過的版本已經可用。
-[MESSAGE]
-這個更新並非強制更新,但我們建議你安裝以增強效能及穩定性。
-
-下載到 Applications 資料夾?
-		<usetemplate name="okcancelbuttons" notext="繼續" yestext="下載"/>
-	</notification>
-	<notification name="FailedUpdateInstall">
-		安裝更新版 Viewer 時出錯。
-請到 http://secondlife.com/download 下載並安裝最新版 Viewer。
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="FailedRequiredUpdateInstall">
-		無法安裝必要的更新。 
-除非 [APP_NAME] 更新,你將無法登入。
-
-請到 http://secondlife.com/download 下載並安裝最新版 Viewer。
-		<usetemplate name="okbutton" yestext="結束退出"/>
-	</notification>
-	<notification name="UpdaterServiceNotRunning">
-		你已安裝的第二人生軟體現有一個必要的更新。
-
-你可以到 http://www.secondlife.com/downloads 下載此更新,或者現在立即安裝。
-		<usetemplate name="okcancelbuttons" notext="結束退出第二人生" yestext="立即下載及安裝"/>
-	</notification>
-	<notification name="DownloadBackgroundTip">
-		我們已為你的 [APP_NAME] 軟體下載了更新。
-[VERSION] 版本 [[RELEASE_NOTES_FULL_URL] 關於此更新的資訊]
-		<usetemplate name="okcancelbuttons" notext="稍候..." yestext="立即安裝及重新啟動 [APP_NAME]"/>
-	</notification>
-	<notification name="DownloadBackgroundDialog">
-		我們已為你的 [APP_NAME] 軟體下載了更新。
-[VERSION] 版本 [[RELEASE_NOTES_FULL_URL] 關於此更新的資訊]
-		<usetemplate name="okcancelbuttons" notext="稍候..." yestext="立即安裝及重新啟動 [APP_NAME]"/>
-	</notification>
-	<notification name="RequiredUpdateDownloadedVerboseDialog">
-		我們已下載了一個必要的軟體更新。
-[VERSION] 版本 [[INFO_URL] 關於此更新的資訊]
-
-我門必須重新啟動 [APP_NAME] 以安裝更新。
+	<notification name="RequiredUpdate">
+		必須用[VERSION]版本登入。
+本來應該已經完成更新,但看來你的尚未更新。
+請到 http://secondlife.com/support/ 下載更新版
 		<usetemplate name="okbutton" yestext="確定"/>
 	</notification>
-	<notification name="RequiredUpdateDownloadedDialog">
-		我門必須重新啟動 [APP_NAME] 以安裝更新。
-[[INFO_URL] 關於此更新的資訊]
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundTip">
-		我們已為你的 [APP_NAME] 軟體下載了更新。
-版本:[VERSION] 
-原本試驗性質的瀏覽器已被 [NEW_CHANNEL] 瀏覽器取代,
-參見[[INFO_URL] 此更新版的詳情]
-		<usetemplate name="okcancelbuttons" notext="稍候..." yestext="立即安裝並重新啟動 [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelDownloadBackgroundDialog">
-		我們已為你的 [APP_NAME] 軟體下載了更新。
-版本:[VERSION]
-原本試驗性質的瀏覽器已被 [NEW_CHANNEL] 瀏覽器取代,
-參見[[INFO_URL] 介紹此更新版的資訊]
-		<usetemplate name="okcancelbuttons" notext="稍候…" yestext="立即安裝並重新啟動 [APP_NAME]"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedVerboseDialog">
-		我們已下載了一個必要的軟體更新。
-版本:[VERSION]
-原本試驗性質的瀏覽器已被 [NEW_CHANNEL] 瀏覽器取代,
-參見[[INFO_URL] 介紹此更新版的資訊]
-
-我們必須重新啟動 [APP_NAME] 以便安裝更新。
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="OtherChannelRequiredUpdateDownloadedDialog">
-		我們必須重新啟動 [APP_NAME] 以便安裝更新。
-原本試驗性質的瀏覽器已被 [NEW_CHANNEL] 瀏覽器取代,
-參見[[INFO_URL] 介紹此更新版的資訊]
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="UpdateDownloadInProgress">
-		有更新版本!
-正在背景下載中,一完成下載我們會通知你重啟瀏覽器以便安裝。
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="UpdateDownloadComplete">
-		一個更新版本已經下載完畢。 重啟時將會安裝。
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="UpdateCheckError">
-		查詢是否有更新時出錯。
-請稍候再試一次。
-		<usetemplate name="okbutton" yestext="確定"/>
-	</notification>
-	<notification name="UpdateViewerUpToDate">
-		你的瀏覽器已是最新版!
-如果你急欲試用最新的功能和修補,請光臨「替代瀏覽器」網頁:http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers。
-		<usetemplate name="okbutton" yestext="確定"/>
+	<notification name="LoginFailedUnknown">
+		抱歉,登入失敗,原因不明。
+如果你一直看到此訊息,請查閱 [SUPPORT_SITE]。
+		<usetemplate name="okbutton" yestext="退出"/>
 	</notification>
 	<notification name="DeedObjectToGroup">
 		讓渡此物件將可讓這個群組:
@@ -3501,6 +3367,13 @@ SHA1 指紋:[MD5_DIGEST]
 將無法用語音溝通。
 		<usetemplate name="okbutton" yestext="確定"/>
 	</notification>
+	<notification name="NoVoiceConnect-GIAB">
+		試圖連接語音伺服器時出了問題。
+
+將無法用語音溝通。
+請檢查你的網路和防火牆設定。
+		<usetemplate name="okbutton" yestext="確定"/>
+	</notification>
 	<notification name="AvatarRezLeftNotification">
 		(存續 [EXISTENCE] 秒鐘)
 化身 &apos;[NAME]&apos; 在完全載入狀況下離開。
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
index bdf980218cb692857723c7efcf85f4d4e27d8066..64c0fd062e0c8246a7fe47fcb67d569c33f3f667 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_setup.xml
@@ -26,8 +26,9 @@
 		軟體更新:
 	</text>
 	<combo_box name="updater_service_combobox">
-		<combo_box.item label="自動安裝" name="Install_automatically"/>
-		<combo_box.item label="讓我自己手動下載並安裝" name="Install_manual"/>
+		<combo_box.item label="自動安裝每一次更新" name="Install_automatically"/>
+		<combo_box.item label="每當有可自由選擇的更新,讓我做決定" name="Install_ask"/>
+		<combo_box.item label="僅安裝強制必要的更新" name="Install_manual"/>
 	</combo_box>
 	<check_box label="願意在更新時搶先試用釋出候選版" name="update_willing_to_test"/>
 	<check_box label="更新後顯示發行記事" name="update_show_release_notes"/>
diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml
index f36f56bd5305db0e8c072809d95e01878e763371..e4f9c5d4330dcdeb5086c4392cc469752f570e21 100644
--- a/indra/newview/skins/default/xui/zh/strings.xml
+++ b/indra/newview/skins/default/xui/zh/strings.xml
@@ -38,7 +38,7 @@
 		顯像初始化失敗。 請更新你的顯像卡驅動程式!
 	</string>
 	<string name="AboutHeader">
-		[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]bit) ([CHANNEL])
+		[CHANNEL] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2].[VIEWER_VERSION_3] ([ADDRESS_SIZE]位元)
 [[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
 	</string>
 	<string name="BuildConfig">
@@ -79,7 +79,7 @@ VFS(快取)建立時間:[VFS_TIME]
 	<string name="AboutLibs">
 		J2C 解碼器版本: [J2C_VERSION]
 音效驅動程式版本: [AUDIO_DRIVER_VERSION]
-CEF版本:[LIBCEF_VERSION]
+[LIBCEF_VERSION]
 LibVLC版本:[LIBVLC_VERSION]N]
 語音伺服器版本: [VOICE_VERSION]
 	</string>
@@ -1438,6 +1438,9 @@ http://secondlife.com/support 求助解決問題。
 	<string name="InventoryNoMatchingItems">
 		找不到你要找的嗎? 請試試 [secondlife:///app/search/places/ 搜尋]。
 	</string>
+	<string name="InventoryNoMatchingRecentItems">
+		找不到你要找的嗎? 請試試[secondlife:///app/inventory/filters 顯示過濾器]。
+	</string>
 	<string name="PlacesNoMatchingItems">
 		找不到你要找的嗎? 請試試 [secondlife:///app/search/places/[SEARCH_TERM] 搜尋]。
 	</string>