diff options
Diffstat (limited to 'indra')
42 files changed, 86 insertions, 6177 deletions
| diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt index 53e5d7b6a5..eb205ccb11 100644 --- a/indra/CMakeLists.txt +++ b/indra/CMakeLists.txt @@ -70,17 +70,11 @@ if (LINUX)        add_subdirectory(${LLAPPEARANCEUTILITY_SRC_DIR} ${LLAPPEARANCEUTILITY_BIN_DIR})    endif (INSTALL_PROPRIETARY)    add_dependencies(viewer linux-crash-logger-strip-target) -elseif (DARWIN) -  add_subdirectory(${VIEWER_PREFIX}mac_crash_logger) -  add_dependencies(viewer mac-crash-logger)  elseif (WINDOWS) -  add_subdirectory(${VIEWER_PREFIX}win_crash_logger)    # cmake EXISTS requires an absolute path, see indra/cmake/Variables.cmake    if (EXISTS ${VIEWER_DIR}win_setup)      add_subdirectory(${VIEWER_DIR}win_setup)    endif (EXISTS ${VIEWER_DIR}win_setup) -  # add_dependencies(viewer windows-setup windows-crash-logger) -  add_dependencies(viewer windows-crash-logger)  endif (LINUX)  add_subdirectory(${VIEWER_PREFIX}newview) diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index b8e569d3a8..7d8bfb1b0f 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -24,7 +24,7 @@ elseif (DARWIN)          message(FATAL_ERROR "AppKit not found")      endif() -    FIND_LIBRARY(CEF_LIBRARY "Chromium Embedded Framework" ${ARCH_PREBUILT_DIRS_RELEASE}) +    set(CEF_LIBRARY "'${ARCH_PREBUILT_DIRS_RELEASE}/Chromium\ Embedded\ Framework.framework'")      if (NOT CEF_LIBRARY)          message(FATAL_ERROR "CEF not found")      endif() @@ -33,7 +33,7 @@ elseif (DARWIN)          ${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a          ${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a          ${APPKIT_LIBRARY} -        ${CEF_LIBRARY} +        "-F ${CEF_LIBRARY}"         )  elseif (LINUX) diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index a17e37cd32..cca305c741 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -28,7 +28,6 @@ set(cmake_SOURCE_FILES      FindAutobuild.cmake      FindBerkeleyDB.cmake      FindGLH.cmake -    FindGoogleBreakpad.cmake      FindHUNSPELL.cmake      FindJsonCpp.cmake      FindNDOF.cmake @@ -43,7 +42,6 @@ set(cmake_SOURCE_FILES      GLH.cmake      GLOD.cmake  ##  GStreamer010Plugin.cmake -    GoogleBreakpad.cmake      GoogleMock.cmake      Havok.cmake      Hunspell.cmake diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index de81512eef..9978de6eba 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -158,7 +158,6 @@ elseif(DARWIN)          libapr-1.dylib          libaprutil-1.0.dylib          libaprutil-1.dylib -        libexception_handler.dylib          ${EXPAT_COPY}          libGLOD.dylib          libhunspell-1.3.0.dylib diff --git a/indra/cmake/FindGoogleBreakpad.cmake b/indra/cmake/FindGoogleBreakpad.cmake deleted file mode 100644 index 1a0493be5e..0000000000 --- a/indra/cmake/FindGoogleBreakpad.cmake +++ /dev/null @@ -1,40 +0,0 @@ -# -*- cmake -*- - -# - Find Google BreakPad -# Find the Google BreakPad includes and library -# This module defines -#  BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR, where to find exception_handler.h, etc. -#  BREAKPAD_EXCEPTION_HANDLER_LIBRARIES, the libraries needed to use Google BreakPad. -#  BREAKPAD_EXCEPTION_HANDLER_FOUND, If false, do not try to use Google BreakPad. -# also defined, but not for general use are -#  BREAKPAD_EXCEPTION_HANDLER_LIBRARY, where to find the Google BreakPad library. - -FIND_PATH(BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR google_breakpad/exception_handler.h) - -SET(BREAKPAD_EXCEPTION_HANDLER_NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} breakpad_client) -FIND_LIBRARY(BREAKPAD_EXCEPTION_HANDLER_LIBRARY -  NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} -  ) - -IF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) -    SET(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES ${BREAKPAD_EXCEPTION_HANDLER_LIBRARY}) -    SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "YES") -ELSE (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) -    SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "NO") -ENDIF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) - - -IF (BREAKPAD_EXCEPTION_HANDLER_FOUND) -   IF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY) -      MESSAGE(STATUS "Found Google BreakPad: ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}") -   ENDIF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY) -ELSE (BREAKPAD_EXCEPTION_HANDLER_FOUND) -   IF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED) -      MESSAGE(FATAL_ERROR "Could not find Google BreakPad library") -   ENDIF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED) -ENDIF (BREAKPAD_EXCEPTION_HANDLER_FOUND) - -MARK_AS_ADVANCED( -  BREAKPAD_EXCEPTION_HANDLER_LIBRARY -  BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR -  ) diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake deleted file mode 100644 index 829e1ac08a..0000000000 --- a/indra/cmake/GoogleBreakpad.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# -*- cmake -*- -include(Prebuilt) - -if (USESYSTEMLIBS) -  set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON) -  include(FindGoogleBreakpad) -else (USESYSTEMLIBS) -  use_prebuilt_binary(google_breakpad) -  if (DARWIN) -    set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler) -  endif (DARWIN) -  if (LINUX) -    set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES breakpad_client) -  endif (LINUX) -  if (WINDOWS) -    set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler crash_generation_client crash_generation_server common) -  endif (WINDOWS) -  # yes, this does look dumb, no, it's not incorrect -  # -  set(BREAKPAD_INCLUDE_DIRECTORIES "${LIBS_PREBUILT_DIR}/include/google_breakpad" "${LIBS_PREBUILT_DIR}/include/google_breakpad/google_breakpad") -endif (USESYSTEMLIBS) - diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index cecfadcd91..b16fedfc3e 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -8,7 +8,6 @@ include(Linking)  include(Boost)  include(LLSharedLibs)  include(JsonCpp) -include(GoogleBreakpad)  include(Copy3rdPartyLibs)  include(ZLIB)  include(URIPARSER) @@ -18,7 +17,6 @@ include_directories(      ${LLCOMMON_INCLUDE_DIRS}      ${JSONCPP_INCLUDE_DIR}      ${ZLIB_INCLUDE_DIRS} -    ${BREAKPAD_INCLUDE_DIRECTORIES}      ${URIPARSER_INCLUDE_DIRS}      ) @@ -287,7 +285,6 @@ endif(LLCOMMON_LINK_SHARED)  target_link_libraries(      llcommon -    ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}      ${APRUTIL_LIBRARIES}      ${APR_LIBRARIES}      ${EXPAT_LIBRARIES} diff --git a/indra/llcommon/llapp.cpp b/indra/llcommon/llapp.cpp index a90b294550..72dd0ea048 100644 --- a/indra/llcommon/llapp.cpp +++ b/indra/llcommon/llapp.cpp @@ -46,7 +46,6 @@  #include "llstl.h" // for DeletePointer()  #include "llstring.h"  #include "lleventtimer.h" -#include "google_breakpad/exception_handler.h"  #include "stringize.h"  #include "llcleanup.h"  #include "llevents.h" @@ -62,12 +61,6 @@  LONG WINAPI default_windows_exception_handler(struct _EXCEPTION_POINTERS *exception_infop);  BOOL ConsoleCtrlHandler(DWORD fdwCtrlType); -bool windows_post_minidump_callback(const wchar_t* dump_path, -									const wchar_t* minidump_id, -									void* context, -									EXCEPTION_POINTERS* exinfo, -									MDRawAssertionInfo* assertion, -									bool succeeded);  #else  # include <signal.h>  # include <unistd.h> // for fork() @@ -146,8 +139,6 @@ void LLApp::commonCtor()  	// Set the application to this instance.  	sApplication = this; - -	mExceptionHandler = 0;  	// initialize the buffer to write the minidump filename to  	// (this is used to avoid allocating memory in the crash handler) @@ -177,8 +168,6 @@ LLApp::~LLApp()  		delete mThreadErrorp;  		mThreadErrorp = NULL;  	} -	 -	if(mExceptionHandler != 0) delete mExceptionHandler;  	SUBSYSTEM_CLEANUP_DBG(LLCommon);  } @@ -394,139 +383,18 @@ void LLApp::setupErrorHandling(bool second_instance)  #if LL_WINDOWS -#if LL_SEND_CRASH_REPORTS && ! defined(LL_BUGSPLAT) -	EnableCrashingOnCrashes(); - -	// This sets a callback to handle w32 signals to the console window. -	// The viewer shouldn't be affected, sicne its a windowed app. -	SetConsoleCtrlHandler( (PHANDLER_ROUTINE) ConsoleCtrlHandler, TRUE); - -	// Install the Google Breakpad crash handler for Windows -	if(mExceptionHandler == 0) -	{ -		if ( second_instance )  //BUG-5707 Firing teleport from a web browser causes second  -		{ -			mExceptionHandler = new google_breakpad::ExceptionHandler( -															L"C:\\Temp\\",		 -															0,		//No filter -															windows_post_minidump_callback, -															0, -															google_breakpad::ExceptionHandler::HANDLER_ALL);  //No custom client info. -		} -		else -		{ -			LL_WARNS() << "adding breakpad exception handler" << LL_ENDL; - -			std::wstring wpipe_name; -			wpipe_name =  mCrashReportPipeStr + wstringize(getPid()); - -			const std::wstring wdump_path(utf8str_to_utf16str(mDumpPath)); - -			int retries = 30; -			for (; retries > 0; --retries) -			{ -				if (mExceptionHandler != 0) delete mExceptionHandler; - -				mExceptionHandler = new google_breakpad::ExceptionHandler( -															wdump_path,		 -															NULL,		//No filter -															windows_post_minidump_callback, -															0, -															google_breakpad::ExceptionHandler::HANDLER_ALL, -															MiniDumpNormal, //Generate a 'normal' minidump. -															wpipe_name.c_str(), -															NULL);  //No custom client info. -				if (mExceptionHandler->IsOutOfProcess()) -				{ -					LL_INFOS("CRASHREPORT") << "Successfully attached to Out of Process exception handler." << LL_ENDL; -					break; -				} -				else -				{ -					LL_WARNS("CRASHREPORT") << "Unable to attach to Out of Process exception handler.  " << retries << " retries remaining." << LL_ENDL;  -					::Sleep(100);  //Wait a tick and try again. -				} -			} - -			if (retries == 0) LL_WARNS("CRASHREPORT") << "Unable to attach to Out of Process exception handler." << LL_ENDL; -		} - -		if (mExceptionHandler) -		{ -			mExceptionHandler->set_handle_debug_exceptions(true); -		} -	} -#endif // LL_SEND_CRASH_REPORTS && ! defined(LL_BUGSPLAT)  #else  // ! LL_WINDOWS -#if defined(LL_BUGSPLAT) -	// Don't install our own signal handlers -- BugSplat needs to hook them, -	// or it's completely ineffectual. -	bool installHandler = false; - -#else // ! LL_BUGSPLAT -	// -	// Start up signal handling. -	// -	// There are two different classes of signals.  Synchronous signals are delivered to a specific -	// thread, asynchronous signals can be delivered to any thread (in theory) -	// -	setup_signals(); - -	// Add google breakpad exception handler configured for Darwin/Linux. -	bool installHandler = true; +#if ! defined(LL_BUGSPLAT) +    // +    // Start up signal handling. +    // +    // There are two different classes of signals.  Synchronous signals are delivered to a specific +    // thread, asynchronous signals can be delivered to any thread (in theory) +    // +    setup_signals();  #endif // ! LL_BUGSPLAT -#if LL_DARWIN -	// For the special case of Darwin, we do not want to install the handler if -	// the process is being debugged as the app will exit with value ABRT (6) if -	// we do.  Unfortunately, the code below which performs that test relies on -	// the structure kinfo_proc which has been tagged by apple as an unstable -	// API.  We disable this test for shipping versions to avoid conflicts with -	// future releases of Darwin.  This test is really only needed for developers -	// starting the app from a debugger anyway. -	#ifndef LL_RELEASE_FOR_DOWNLOAD -    int mib[4]; -	mib[0] = CTL_KERN; -	mib[1] = KERN_PROC; -	mib[2] = KERN_PROC_PID; -	mib[3] = getpid(); -	 -	struct kinfo_proc info; -	memset(&info, 0, sizeof(info)); -	 -	size_t size = sizeof(info); -	int result = sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, NULL, 0); -	if((result == 0) || (errno == ENOMEM)) -	{ -		// P_TRACED flag is set, so this process is being debugged; do not install -		// the handler -		if(info.kp_proc.p_flag & P_TRACED) installHandler = false; -	} -	else -	{ -		// Failed to discover if the process is being debugged; default to -		// installing the handler. -		installHandler = true; -	} -	#endif // ! LL_RELEASE_FOR_DOWNLOAD - -	if(installHandler && (mExceptionHandler == 0)) -	{ -		mExceptionHandler = new google_breakpad::ExceptionHandler(mDumpPath, 0, &unix_post_minidump_callback, 0, true, 0); -	} -#elif LL_LINUX -	if(installHandler && (mExceptionHandler == 0)) -	{ -		if (mDumpPath.empty()) -		{ -			mDumpPath = "/tmp"; -		} -		google_breakpad::MinidumpDescriptor desc(mDumpPath); -	    mExceptionHandler = new google_breakpad::ExceptionHandler(desc, NULL, unix_minidump_callback, NULL, true, -1); -	} -#endif // LL_LINUX -  #endif // ! LL_WINDOWS  	startErrorThread();  } @@ -609,31 +477,6 @@ void LLApp::setError()  	setStatus(APP_STATUS_ERROR);  } -void LLApp::setMiniDumpDir(const std::string &path) -{ -	if (path.empty()) -	{ -		mDumpPath = "/tmp"; -	} -	else -	{ -		mDumpPath = path; -	} - -	if(mExceptionHandler == 0) return; -#ifdef LL_WINDOWS -	std::wstring buffer(utf8str_to_utf16str(mDumpPath)); -	if (buffer.size() > MAX_MINDUMP_PATH_LENGTH) buffer.resize(MAX_MINDUMP_PATH_LENGTH); -	mExceptionHandler->set_dump_path(buffer); -#elif LL_LINUX -        //google_breakpad::MinidumpDescriptor desc("/tmp");	//path works in debug fails in production inside breakpad lib so linux gets a little less stack reporting until it is patched. -        google_breakpad::MinidumpDescriptor desc(mDumpPath);	//path works in debug fails in production inside breakpad lib so linux gets a little less stack reporting until it is patched. -	mExceptionHandler->set_minidump_descriptor(desc); -#else -	mExceptionHandler->set_dump_path(mDumpPath); -#endif -} -  void LLApp::setDebugFileNames(const std::string &path)  {    	mStaticDebugFileName = path + "static_debug_info.log"; @@ -642,8 +485,6 @@ void LLApp::setDebugFileNames(const std::string &path)  void LLApp::writeMiniDump()  { -	if(mExceptionHandler == 0) return; -	mExceptionHandler->WriteMinidump();  }  // static @@ -700,13 +541,6 @@ bool LLApp::isExiting()  void LLApp::disableCrashlogger()  { -	// Disable Breakpad exception handler. -	if (mExceptionHandler != 0) -	{ -		delete mExceptionHandler; -		mExceptionHandler = 0; -	} -  	sDisableCrashlogger = TRUE;  } @@ -1095,64 +929,3 @@ bool unix_post_minidump_callback(const char *dump_dir,  }  #endif // !WINDOWS -#ifdef LL_WINDOWS -bool windows_post_minidump_callback(const wchar_t* dump_path, -									const wchar_t* minidump_id, -									void* context, -									EXCEPTION_POINTERS* exinfo, -									MDRawAssertionInfo* assertion, -									bool succeeded) -{ -	char * path = LLApp::instance()->getMiniDumpFilename(); -	S32 remaining = LLApp::MAX_MINDUMP_PATH_LENGTH; -	size_t bytesUsed; - -	LL_INFOS("MINIDUMPCALLBACK") << "Dump file was generated." << LL_ENDL; -	bytesUsed = wcstombs(path, dump_path, static_cast<size_t>(remaining)); -	remaining -= bytesUsed; -	path += bytesUsed; -	if(remaining > 0 && bytesUsed > 0 && path[-1] != '\\') -	{ -		*path++ = '\\'; -		--remaining; -	} -	if(remaining > 0) -	{ -		bytesUsed = wcstombs(path, minidump_id, static_cast<size_t>(remaining)); -		remaining -= bytesUsed; -		path += bytesUsed; -	} -	if(remaining > 0) -	{ -		strncpy(path, ".dmp", remaining); -	} - -	LL_INFOS("CRASHREPORT") << "generated minidump: " << LLApp::instance()->getMiniDumpFilename() << LL_ENDL; -   // *NOTE:Mani - this code is stolen from LLApp, where its never actually used. -	//OSMessageBox("Attach Debugger Now", "Error", OSMB_OK); -   // *TODO: Translate the signals/exceptions into cross-platform stuff -	// Windows implementation -	LL_INFOS() << "Entering Windows Exception Handler..." << LL_ENDL; - -	if (LLApp::isError()) -	{ -		LL_WARNS() << "Got another fatal signal while in the error handler, die now!" << LL_ENDL; -	} - -	// Flag status to error, so thread_error starts its work -	LLApp::setError(); - -	// Block in the exception handler until the app has stopped -	// This is pretty sketchy, but appears to work just fine -	while (!LLApp::isStopped()) -	{ -		ms_sleep(10); -	} - -#ifndef LL_RELEASE_FOR_DOWNLOAD -	return false; -#else -	return true; -#endif -} -#endif diff --git a/indra/llcommon/llapp.h b/indra/llcommon/llapp.h index 245c73e3a2..e590e5eafd 100644 --- a/indra/llcommon/llapp.h +++ b/indra/llcommon/llapp.h @@ -49,10 +49,6 @@ void clear_signals();  #endif -namespace google_breakpad { -	class ExceptionHandler; // See exception_handler.h -} -  class LL_COMMON_API LLApp  {  	friend class LLErrorThread; @@ -236,7 +232,6 @@ public:  	static const U32 MAX_MINDUMP_PATH_LENGTH = 256;  	// change the directory where Breakpad minidump files are written to -	void setMiniDumpDir(const std::string &path);      void setDebugFileNames(const std::string &path);  	// Return the Google Breakpad minidump filename after a crash. @@ -312,9 +307,6 @@ private:  private:  	// the static application instance if it was created.  	static LLApp* sApplication; -	 -	google_breakpad::ExceptionHandler * mExceptionHandler; -  #if !LL_WINDOWS  	friend void default_unix_signal_handler(int signum, siginfo_t *info, void *); diff --git a/indra/llcorehttp/CMakeLists.txt b/indra/llcorehttp/CMakeLists.txt index 240ea2da83..d90d148ee6 100644 --- a/indra/llcorehttp/CMakeLists.txt +++ b/indra/llcorehttp/CMakeLists.txt @@ -176,7 +176,6 @@ if (DARWIN)    set(copy_dylibs      libapr-1.0.dylib      libaprutil-1.0.dylib -    libexception_handler.dylib      libnghttp2*.dylib      liburiparser*.dylib      ${EXPAT_COPY} diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 7d18bae947..e5b4dec1bd 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -154,9 +154,9 @@ void LLPluginProcessParent::shutdown()      {          EState state = (*it).second->mState;          if (state != STATE_CLEANUP -            || state != STATE_EXITING -            || state != STATE_DONE -            || state != STATE_ERROR) +            && state != STATE_EXITING +            && state != STATE_DONE +            && state != STATE_ERROR)          {              (*it).second->setState(STATE_GOODBYE);          } diff --git a/indra/mac_crash_logger/CMakeLists.txt b/indra/mac_crash_logger/CMakeLists.txt deleted file mode 100644 index 95637c9a28..0000000000 --- a/indra/mac_crash_logger/CMakeLists.txt +++ /dev/null @@ -1,95 +0,0 @@ -# -*- cmake -*- - -project(mac_crash_logger) - -include(00-Common) -include(LLCommon) -include(LLCoreHttp) -include(LLCrashLogger) -include(LLMath) -include(LLMessage) -include(LLVFS) -include(LLXML) -include(Linking) -include(LLSharedLibs) -include(Boost) - -include_directories( -    ${LLCOREHTTP_INCLUDE_DIRS} -    ${LLCOMMON_INCLUDE_DIRS} -    ${LLCRASHLOGGER_INCLUDE_DIRS} -    ${LLMATH_INCLUDE_DIRS} -    ${LLVFS_INCLUDE_DIRS} -    ${LLXML_INCLUDE_DIRS} -    ) -include_directories(SYSTEM -    ${LLCOMMON_SYSTEM_INCLUDE_DIRS} -    ${LLXML_SYSTEM_INCLUDE_DIRS} -    ) - -set(mac_crash_logger_SOURCE_FILES -    mac_crash_logger.cpp -    llcrashloggermac.cpp -    llcrashloggermacdelegate.mm -    ) - -set(mac_crash_logger_HEADER_FILES -    CMakeLists.txt - -    llcrashloggermac.h -    llcrashloggermacdelegate.h -    ) - -set_source_files_properties(${mac_crash_logger_HEADER_FILES} -                            PROPERTIES HEADER_FILE_ONLY TRUE) -list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_HEADER_FILES}) - -set(mac_crash_logger_RESOURCE_FILES -  CrashReporter.nib/ -  ) -set_source_files_properties( -  ${mac_crash_logger_RESOURCE_FILES} -  PROPERTIES -  HEADER_FILE_ONLY TRUE -  ) -SOURCE_GROUP("Resources" FILES ${mac_crash_logger_RESOURCE_FILES}) -list(APPEND mac_crash_logger_SOURCE_FILES ${mac_crash_logger_RESOURCE_FILES}) - -add_executable(mac-crash-logger -  MACOSX_BUNDLE -  ${mac_crash_logger_SOURCE_FILES}) - -set_target_properties(mac-crash-logger -  PROPERTIES -  MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist -  ) - -find_library(COCOA_LIBRARY Cocoa) - -target_link_libraries(mac-crash-logger -    ${LLCRASHLOGGER_LIBRARIES} -    ${LLVFS_LIBRARIES} -    ${COCOA_LIBRARIES} -    ${LLXML_LIBRARIES} -    ${LLMESSAGE_LIBRARIES} -    ${LLVFS_LIBRARIES} -    ${LLMATH_LIBRARIES} -    ${LLCOREHTTP_LIBRARIES} -    ${LLCOMMON_LIBRARIES} -    ${BOOST_CONTEXT_LIBRARY} -    ${BOOST_FIBER_LIBRARY} -    ) - -add_custom_command( -  TARGET mac-crash-logger POST_BUILD -  COMMAND ${CMAKE_COMMAND} -  ARGS -    -E -    copy_if_different -    ${CMAKE_CURRENT_SOURCE_DIR}/CrashReporter.nib -    ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib -  ) - -ll_deploy_sharedlibs_command(mac-crash-logger) - - diff --git a/indra/mac_crash_logger/CrashReporter.nib b/indra/mac_crash_logger/CrashReporter.nibBinary files differ deleted file mode 100755 index e9d9e05985..0000000000 --- a/indra/mac_crash_logger/CrashReporter.nib +++ /dev/null diff --git a/indra/mac_crash_logger/CrashReporter.xib b/indra/mac_crash_logger/CrashReporter.xib deleted file mode 100755 index f6d4776d51..0000000000 --- a/indra/mac_crash_logger/CrashReporter.xib +++ /dev/null @@ -1,3895 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> -	<data> -		<int key="IBDocument.SystemTarget">1070</int> -		<string key="IBDocument.SystemVersion">11G63</string> -		<string key="IBDocument.InterfaceBuilderVersion">2182</string> -		<string key="IBDocument.AppKitVersion">1138.51</string> -		<string key="IBDocument.HIToolboxVersion">569.00</string> -		<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> -			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> -			<string key="NS.object.0">2182</string> -		</object> -		<array key="IBDocument.IntegratedClassDependencies"> -			<string>NSTextField</string> -			<string>NSView</string> -			<string>NSWindowTemplate</string> -			<string>NSMenu</string> -			<string>NSMenuItem</string> -			<string>NSTextFieldCell</string> -			<string>NSButtonCell</string> -			<string>IBNSLayoutConstraint</string> -			<string>NSButton</string> -			<string>NSCustomObject</string> -		</array> -		<array key="IBDocument.PluginDependencies"> -			<string>com.apple.InterfaceBuilder.CocoaPlugin</string> -		</array> -		<object class="NSMutableDictionary" key="IBDocument.Metadata"> -			<string key="NS.key.0">PluginDependencyRecalculationVersion</string> -			<integer value="1" key="NS.object.0"/> -		</object> -		<array class="NSMutableArray" key="IBDocument.RootObjects" id="1048"> -			<object class="NSCustomObject" id="1021"> -				<string key="NSClassName">NSApplication</string> -			</object> -			<object class="NSCustomObject" id="1014"> -				<string key="NSClassName">FirstResponder</string> -			</object> -			<object class="NSCustomObject" id="1050"> -				<string key="NSClassName">NSApplication</string> -			</object> -			<object class="NSMenu" id="649796088"> -				<string key="NSTitle">AMainMenu</string> -				<array class="NSMutableArray" key="NSMenuItems"> -					<object class="NSMenuItem" id="694149608"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">Second Life Crash Logger</string> -						<string key="NSKeyEquiv"/> -						<int key="NSKeyEquivModMask">1048576</int> -						<int key="NSMnemonicLoc">2147483647</int> -						<object class="NSCustomResource" key="NSOnImage" id="35465992"> -							<string key="NSClassName">NSImage</string> -							<string key="NSResourceName">NSMenuCheckmark</string> -						</object> -						<object class="NSCustomResource" key="NSMixedImage" id="502551668"> -							<string key="NSClassName">NSImage</string> -							<string key="NSResourceName">NSMenuMixedState</string> -						</object> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="110575045"> -							<string key="NSTitle">Second Life Crash Logger</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="238522557"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">About Second Life Crash Logger</string> -									<string key="NSKeyEquiv"/> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="304266470"> -									<reference key="NSMenu" ref="110575045"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="609285721"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Preferences…</string> -									<string key="NSKeyEquiv">,</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="481834944"> -									<reference key="NSMenu" ref="110575045"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1046388886"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Services</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="752062318"> -										<string key="NSTitle">Services</string> -										<array class="NSMutableArray" key="NSMenuItems"/> -										<string key="NSName">_NSServicesMenu</string> -									</object> -								</object> -								<object class="NSMenuItem" id="646227648"> -									<reference key="NSMenu" ref="110575045"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="755159360"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Hide Second Life Crash Logger</string> -									<string key="NSKeyEquiv">h</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="342932134"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Hide Others</string> -									<string key="NSKeyEquiv">h</string> -									<int key="NSKeyEquivModMask">1572864</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="908899353"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Show All</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1056857174"> -									<reference key="NSMenu" ref="110575045"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="632727374"> -									<reference key="NSMenu" ref="110575045"/> -									<string key="NSTitle">Quit Second Life Crash Logger</string> -									<string key="NSKeyEquiv">q</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -							</array> -							<string key="NSName">_NSAppleMenu</string> -						</object> -					</object> -					<object class="NSMenuItem" id="379814623"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">File</string> -						<string key="NSKeyEquiv"/> -						<int key="NSKeyEquivModMask">1048576</int> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="720053764"> -							<string key="NSTitle">File</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="705341025"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">New</string> -									<string key="NSKeyEquiv">n</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="722745758"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Open…</string> -									<string key="NSKeyEquiv">o</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1025936716"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Open Recent</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="1065607017"> -										<string key="NSTitle">Open Recent</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="759406840"> -												<reference key="NSMenu" ref="1065607017"/> -												<string key="NSTitle">Clear Menu</string> -												<string key="NSKeyEquiv"/> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -										<string key="NSName">_NSRecentDocumentsMenu</string> -									</object> -								</object> -								<object class="NSMenuItem" id="425164168"> -									<reference key="NSMenu" ref="720053764"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="776162233"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Close</string> -									<string key="NSKeyEquiv">w</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1023925487"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Save…</string> -									<string key="NSKeyEquiv">s</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="579971712"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Revert to Saved</string> -									<string key="NSKeyEquiv"/> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1010469920"> -									<reference key="NSMenu" ref="720053764"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="294629803"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Page Setup...</string> -									<string key="NSKeyEquiv">P</string> -									<int key="NSKeyEquivModMask">1179648</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSToolTip"/> -								</object> -								<object class="NSMenuItem" id="49223823"> -									<reference key="NSMenu" ref="720053764"/> -									<string key="NSTitle">Print…</string> -									<string key="NSKeyEquiv">p</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -							</array> -						</object> -					</object> -					<object class="NSMenuItem" id="952259628"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">Edit</string> -						<string key="NSKeyEquiv"/> -						<int key="NSKeyEquivModMask">1048576</int> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="789758025"> -							<string key="NSTitle">Edit</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="1058277027"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Undo</string> -									<string key="NSKeyEquiv">z</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="790794224"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Redo</string> -									<string key="NSKeyEquiv">Z</string> -									<int key="NSKeyEquivModMask">1179648</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="1040322652"> -									<reference key="NSMenu" ref="789758025"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="296257095"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Cut</string> -									<string key="NSKeyEquiv">x</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="860595796"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Copy</string> -									<string key="NSKeyEquiv">c</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="29853731"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Paste</string> -									<string key="NSKeyEquiv">v</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="82994268"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Paste and Match Style</string> -									<string key="NSKeyEquiv">V</string> -									<int key="NSKeyEquivModMask">1572864</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="437104165"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Delete</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="583158037"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Select All</string> -									<string key="NSKeyEquiv">a</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="212016141"> -									<reference key="NSMenu" ref="789758025"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="892235320"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Find</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="963351320"> -										<string key="NSTitle">Find</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="447796847"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Find…</string> -												<string key="NSKeyEquiv">f</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">1</int> -											</object> -											<object class="NSMenuItem" id="738670835"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Find and Replace…</string> -												<string key="NSKeyEquiv">f</string> -												<int key="NSKeyEquivModMask">1572864</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">12</int> -											</object> -											<object class="NSMenuItem" id="326711663"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Find Next</string> -												<string key="NSKeyEquiv">g</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">2</int> -											</object> -											<object class="NSMenuItem" id="270902937"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Find Previous</string> -												<string key="NSKeyEquiv">G</string> -												<int key="NSKeyEquivModMask">1179648</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">3</int> -											</object> -											<object class="NSMenuItem" id="159080638"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Use Selection for Find</string> -												<string key="NSKeyEquiv">e</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">7</int> -											</object> -											<object class="NSMenuItem" id="88285865"> -												<reference key="NSMenu" ref="963351320"/> -												<string key="NSTitle">Jump to Selection</string> -												<string key="NSKeyEquiv">j</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -								<object class="NSMenuItem" id="972420730"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Spelling and Grammar</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="769623530"> -										<string key="NSTitle">Spelling and Grammar</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="679648819"> -												<reference key="NSMenu" ref="769623530"/> -												<string key="NSTitle">Show Spelling and Grammar</string> -												<string key="NSKeyEquiv">:</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="96193923"> -												<reference key="NSMenu" ref="769623530"/> -												<string key="NSTitle">Check Document Now</string> -												<string key="NSKeyEquiv">;</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="859480356"> -												<reference key="NSMenu" ref="769623530"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="948374510"> -												<reference key="NSMenu" ref="769623530"/> -												<string key="NSTitle">Check Spelling While Typing</string> -												<string key="NSKeyEquiv"/> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="967646866"> -												<reference key="NSMenu" ref="769623530"/> -												<string key="NSTitle">Check Grammar With Spelling</string> -												<string key="NSKeyEquiv"/> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="795346622"> -												<reference key="NSMenu" ref="769623530"/> -												<string key="NSTitle">Correct Spelling Automatically</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -								<object class="NSMenuItem" id="507821607"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Substitutions</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="698887838"> -										<string key="NSTitle">Substitutions</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="65139061"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Show Substitutions</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="19036812"> -												<reference key="NSMenu" ref="698887838"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="605118523"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Smart Copy/Paste</string> -												<string key="NSKeyEquiv">f</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">1</int> -											</object> -											<object class="NSMenuItem" id="197661976"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Smart Quotes</string> -												<string key="NSKeyEquiv">g</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">2</int> -											</object> -											<object class="NSMenuItem" id="672708820"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Smart Dashes</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="708854459"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Smart Links</string> -												<string key="NSKeyEquiv">G</string> -												<int key="NSKeyEquivModMask">1179648</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">3</int> -											</object> -											<object class="NSMenuItem" id="537092702"> -												<reference key="NSMenu" ref="698887838"/> -												<string key="NSTitle">Text Replacement</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -								<object class="NSMenuItem" id="288088188"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Transformations</string> -									<string key="NSKeyEquiv"/> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="579392910"> -										<string key="NSTitle">Transformations</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="1060694897"> -												<reference key="NSMenu" ref="579392910"/> -												<string key="NSTitle">Make Upper Case</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="879586729"> -												<reference key="NSMenu" ref="579392910"/> -												<string key="NSTitle">Make Lower Case</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="56570060"> -												<reference key="NSMenu" ref="579392910"/> -												<string key="NSTitle">Capitalize</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -								<object class="NSMenuItem" id="676164635"> -									<reference key="NSMenu" ref="789758025"/> -									<string key="NSTitle">Speech</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="785027613"> -										<string key="NSTitle">Speech</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="731782645"> -												<reference key="NSMenu" ref="785027613"/> -												<string key="NSTitle">Start Speaking</string> -												<string key="NSKeyEquiv"/> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="680220178"> -												<reference key="NSMenu" ref="785027613"/> -												<string key="NSTitle">Stop Speaking</string> -												<string key="NSKeyEquiv"/> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -							</array> -						</object> -					</object> -					<object class="NSMenuItem" id="302598603"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">Format</string> -						<string key="NSKeyEquiv"/> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="941447902"> -							<string key="NSTitle">Format</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="792887677"> -									<reference key="NSMenu" ref="941447902"/> -									<string key="NSTitle">Font</string> -									<string key="NSKeyEquiv"/> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="786677654"> -										<string key="NSTitle">Font</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="159677712"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Show Fonts</string> -												<string key="NSKeyEquiv">t</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="305399458"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Bold</string> -												<string key="NSKeyEquiv">b</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">2</int> -											</object> -											<object class="NSMenuItem" id="814362025"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Italic</string> -												<string key="NSKeyEquiv">i</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">1</int> -											</object> -											<object class="NSMenuItem" id="330926929"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Underline</string> -												<string key="NSKeyEquiv">u</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="533507878"> -												<reference key="NSMenu" ref="786677654"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="158063935"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Bigger</string> -												<string key="NSKeyEquiv">+</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">3</int> -											</object> -											<object class="NSMenuItem" id="885547335"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Smaller</string> -												<string key="NSKeyEquiv">-</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<int key="NSTag">4</int> -											</object> -											<object class="NSMenuItem" id="901062459"> -												<reference key="NSMenu" ref="786677654"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="767671776"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Kern</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<string key="NSAction">submenuAction:</string> -												<object class="NSMenu" key="NSSubmenu" id="175441468"> -													<string key="NSTitle">Kern</string> -													<array class="NSMutableArray" key="NSMenuItems"> -														<object class="NSMenuItem" id="252969304"> -															<reference key="NSMenu" ref="175441468"/> -															<string key="NSTitle">Use Default</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="766922938"> -															<reference key="NSMenu" ref="175441468"/> -															<string key="NSTitle">Use None</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="677519740"> -															<reference key="NSMenu" ref="175441468"/> -															<string key="NSTitle">Tighten</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="238351151"> -															<reference key="NSMenu" ref="175441468"/> -															<string key="NSTitle">Loosen</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -													</array> -												</object> -											</object> -											<object class="NSMenuItem" id="691570813"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Ligature</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<string key="NSAction">submenuAction:</string> -												<object class="NSMenu" key="NSSubmenu" id="1058217995"> -													<string key="NSTitle">Ligature</string> -													<array class="NSMutableArray" key="NSMenuItems"> -														<object class="NSMenuItem" id="706297211"> -															<reference key="NSMenu" ref="1058217995"/> -															<string key="NSTitle">Use Default</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="568384683"> -															<reference key="NSMenu" ref="1058217995"/> -															<string key="NSTitle">Use None</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="663508465"> -															<reference key="NSMenu" ref="1058217995"/> -															<string key="NSTitle">Use All</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -													</array> -												</object> -											</object> -											<object class="NSMenuItem" id="769124883"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Baseline</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<string key="NSAction">submenuAction:</string> -												<object class="NSMenu" key="NSSubmenu" id="18263474"> -													<string key="NSTitle">Baseline</string> -													<array class="NSMutableArray" key="NSMenuItems"> -														<object class="NSMenuItem" id="257962622"> -															<reference key="NSMenu" ref="18263474"/> -															<string key="NSTitle">Use Default</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="644725453"> -															<reference key="NSMenu" ref="18263474"/> -															<string key="NSTitle">Superscript</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="1037576581"> -															<reference key="NSMenu" ref="18263474"/> -															<string key="NSTitle">Subscript</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="941806246"> -															<reference key="NSMenu" ref="18263474"/> -															<string key="NSTitle">Raise</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="1045724900"> -															<reference key="NSMenu" ref="18263474"/> -															<string key="NSTitle">Lower</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -													</array> -												</object> -											</object> -											<object class="NSMenuItem" id="739652853"> -												<reference key="NSMenu" ref="786677654"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="1012600125"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Show Colors</string> -												<string key="NSKeyEquiv">C</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="214559597"> -												<reference key="NSMenu" ref="786677654"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="596732606"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Copy Style</string> -												<string key="NSKeyEquiv">c</string> -												<int key="NSKeyEquivModMask">1572864</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="393423671"> -												<reference key="NSMenu" ref="786677654"/> -												<string key="NSTitle">Paste Style</string> -												<string key="NSKeyEquiv">v</string> -												<int key="NSKeyEquivModMask">1572864</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -										<string key="NSName">_NSFontMenu</string> -									</object> -								</object> -								<object class="NSMenuItem" id="215659978"> -									<reference key="NSMenu" ref="941447902"/> -									<string key="NSTitle">Text</string> -									<string key="NSKeyEquiv"/> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -									<string key="NSAction">submenuAction:</string> -									<object class="NSMenu" key="NSSubmenu" id="446991534"> -										<string key="NSTitle">Text</string> -										<array class="NSMutableArray" key="NSMenuItems"> -											<object class="NSMenuItem" id="875092757"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Align Left</string> -												<string key="NSKeyEquiv">{</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="630155264"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Center</string> -												<string key="NSKeyEquiv">|</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="945678886"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Justify</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="512868991"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Align Right</string> -												<string key="NSKeyEquiv">}</string> -												<int key="NSKeyEquivModMask">1048576</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="163117631"> -												<reference key="NSMenu" ref="446991534"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="31516759"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Writing Direction</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -												<string key="NSAction">submenuAction:</string> -												<object class="NSMenu" key="NSSubmenu" id="956096989"> -													<string key="NSTitle">Writing Direction</string> -													<array class="NSMutableArray" key="NSMenuItems"> -														<object class="NSMenuItem" id="257099033"> -															<reference key="NSMenu" ref="956096989"/> -															<bool key="NSIsDisabled">YES</bool> -															<string key="NSTitle">Paragraph</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="551969625"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CURlZmF1bHQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="249532473"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CUxlZnQgdG8gUmlnaHQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="607364498"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CVJpZ2h0IHRvIExlZnQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="508151438"> -															<reference key="NSMenu" ref="956096989"/> -															<bool key="NSIsDisabled">YES</bool> -															<bool key="NSIsSeparator">YES</bool> -															<string key="NSTitle"/> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="981751889"> -															<reference key="NSMenu" ref="956096989"/> -															<bool key="NSIsDisabled">YES</bool> -															<string key="NSTitle">Selection</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="380031999"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CURlZmF1bHQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="825984362"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CUxlZnQgdG8gUmlnaHQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -														<object class="NSMenuItem" id="560145579"> -															<reference key="NSMenu" ref="956096989"/> -															<string type="base64-UTF8" key="NSTitle">CVJpZ2h0IHRvIExlZnQ</string> -															<string key="NSKeyEquiv"/> -															<int key="NSMnemonicLoc">2147483647</int> -															<reference key="NSOnImage" ref="35465992"/> -															<reference key="NSMixedImage" ref="502551668"/> -														</object> -													</array> -												</object> -											</object> -											<object class="NSMenuItem" id="908105787"> -												<reference key="NSMenu" ref="446991534"/> -												<bool key="NSIsDisabled">YES</bool> -												<bool key="NSIsSeparator">YES</bool> -												<string key="NSTitle"/> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="644046920"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Show Ruler</string> -												<string key="NSKeyEquiv"/> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="231811626"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Copy Ruler</string> -												<string key="NSKeyEquiv">c</string> -												<int key="NSKeyEquivModMask">1310720</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -											<object class="NSMenuItem" id="883618387"> -												<reference key="NSMenu" ref="446991534"/> -												<string key="NSTitle">Paste Ruler</string> -												<string key="NSKeyEquiv">v</string> -												<int key="NSKeyEquivModMask">1310720</int> -												<int key="NSMnemonicLoc">2147483647</int> -												<reference key="NSOnImage" ref="35465992"/> -												<reference key="NSMixedImage" ref="502551668"/> -											</object> -										</array> -									</object> -								</object> -							</array> -						</object> -					</object> -					<object class="NSMenuItem" id="586577488"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">View</string> -						<string key="NSKeyEquiv"/> -						<int key="NSKeyEquivModMask">1048576</int> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="466310130"> -							<string key="NSTitle">View</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="102151532"> -									<reference key="NSMenu" ref="466310130"/> -									<string key="NSTitle">Show Toolbar</string> -									<string key="NSKeyEquiv">t</string> -									<int key="NSKeyEquivModMask">1572864</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="237841660"> -									<reference key="NSMenu" ref="466310130"/> -									<string key="NSTitle">Customize Toolbar…</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -							</array> -						</object> -					</object> -					<object class="NSMenuItem" id="713487014"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">Window</string> -						<string key="NSKeyEquiv"/> -						<int key="NSKeyEquivModMask">1048576</int> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="835318025"> -							<string key="NSTitle">Window</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="1011231497"> -									<reference key="NSMenu" ref="835318025"/> -									<string key="NSTitle">Minimize</string> -									<string key="NSKeyEquiv">m</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="575023229"> -									<reference key="NSMenu" ref="835318025"/> -									<string key="NSTitle">Zoom</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="299356726"> -									<reference key="NSMenu" ref="835318025"/> -									<bool key="NSIsDisabled">YES</bool> -									<bool key="NSIsSeparator">YES</bool> -									<string key="NSTitle"/> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -								<object class="NSMenuItem" id="625202149"> -									<reference key="NSMenu" ref="835318025"/> -									<string key="NSTitle">Bring All to Front</string> -									<string key="NSKeyEquiv"/> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -							</array> -							<string key="NSName">_NSWindowsMenu</string> -						</object> -					</object> -					<object class="NSMenuItem" id="448692316"> -						<reference key="NSMenu" ref="649796088"/> -						<string key="NSTitle">Help</string> -						<string key="NSKeyEquiv"/> -						<int key="NSMnemonicLoc">2147483647</int> -						<reference key="NSOnImage" ref="35465992"/> -						<reference key="NSMixedImage" ref="502551668"/> -						<string key="NSAction">submenuAction:</string> -						<object class="NSMenu" key="NSSubmenu" id="992780483"> -							<string key="NSTitle">Help</string> -							<array class="NSMutableArray" key="NSMenuItems"> -								<object class="NSMenuItem" id="105068016"> -									<reference key="NSMenu" ref="992780483"/> -									<string key="NSTitle">Second Life Crash Logger Help</string> -									<string key="NSKeyEquiv">?</string> -									<int key="NSKeyEquivModMask">1048576</int> -									<int key="NSMnemonicLoc">2147483647</int> -									<reference key="NSOnImage" ref="35465992"/> -									<reference key="NSMixedImage" ref="502551668"/> -								</object> -							</array> -							<string key="NSName">_NSHelpMenu</string> -						</object> -					</object> -				</array> -				<string key="NSName">_NSMainMenu</string> -			</object> -			<object class="NSWindowTemplate" id="972006081"> -				<int key="NSWindowStyleMask">15</int> -				<int key="NSWindowBacking">2</int> -				<string key="NSWindowRect">{{335, 390}, {508, 477}}</string> -				<int key="NSWTFlags">1954021376</int> -				<string key="NSWindowTitle">Second Life Crash Logger</string> -				<string key="NSWindowClass">NSWindow</string> -				<nil key="NSViewClass"/> -				<nil key="NSUserInterfaceItemIdentifier"/> -				<object class="NSView" key="NSWindowView" id="439893737"> -					<reference key="NSNextResponder"/> -					<int key="NSvFlags">256</int> -					<array class="NSMutableArray" key="NSSubviews"> -						<object class="NSTextField" id="242877095"> -							<reference key="NSNextResponder" ref="439893737"/> -							<int key="NSvFlags">268</int> -							<string key="NSFrame">{{17, 228}, {474, 229}}</string> -							<reference key="NSSuperview" ref="439893737"/> -							<reference key="NSWindow"/> -							<reference key="NSNextKeyView" ref="1018085422"/> -							<string key="NSReuseIdentifierKey">_NS:9</string> -							<string key="NSAntiCompressionPriority">{250, 750}</string> -							<bool key="NSEnabled">YES</bool> -							<object class="NSTextFieldCell" key="NSCell" id="502956757"> -								<int key="NSCellFlags">67239424</int> -								<int key="NSCellFlags2">272891904</int> -								<object class="NSMutableString" key="NSContents"> -									<bytes key="NS.bytes">U2Vjb25kIExpZmUgYXBwZWFycyB0byBoYXZlIGNyYXNoZWQgb3IgZnJvemVuIHRoZSBsYXN0IHRpbWUg -aXQgcmFuLgoKVGhpcyBjcmFzaCByZXBvcnRlciBjb2xsZWN0cyBpbmZvcm1hdGlvbiBhYm91dCB5b3Vy -IGNvbXB1dGVyJ3MgaGFyZHdhcmUgY29uZmlndXJhdGlvbiwgb3BlcmF0aW5nIHN5c3RlbSwgYW5kIHNv -bWUgU2Vjb25kIExpZmUgbG9ncywgYWxsIG9mIHdoaWNoIGFyZSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVy -cG9zZXMgb25seS4KCkluIHRoZSBzcGFjZSBiZWxvdywgcGxlYXNlIGJyaWVmbHkgZGVzY3JpYmUgd2hh -dCB5b3Ugd2VyZSBkb2luZyBvciB0cnlpbmcgdG8gZG8ganVzdCBwcmlvciB0byB0aGUgY3Jhc2guICBU -aGFuayB5b3UgZm9yIHlvdXIgaGVscCEKClRoaXMgcmVwb3J0IGlzIE5PVCByZWFkIGJ5IEN1c3RvbWVy -IFN1cHBvcnQuICBJZiB5b3UgaGF2ZSBiaWxsaW5nIG9yIG90aGVyIHF1ZXN0aW9ucywgcGxlYXNlIGdv -IHRvOiBodHRwOi8vd3d3LnNlY29uZGxpZmUuY29tL3N1cHBvcnQvCgpJZiB5b3UgZG9uJ3Qgd2lzaCB0 -byBzZW5kIExpbmRlbiBMYWIgYSBjcmFzaCByZXBvcnQsIHByZXNzIENhbmNlbC4</bytes> -								</object> -								<object class="NSFont" key="NSSupport" id="1010806345"> -									<string key="NSName">LucidaGrande</string> -									<double key="NSSize">13</double> -									<int key="NSfFlags">16</int> -								</object> -								<string key="NSCellIdentifier">_NS:9</string> -								<reference key="NSControlView" ref="242877095"/> -								<object class="NSColor" key="NSBackgroundColor"> -									<int key="NSColorSpace">6</int> -									<string key="NSCatalogName">System</string> -									<string key="NSColorName">controlColor</string> -									<object class="NSColor" key="NSColor"> -										<int key="NSColorSpace">3</int> -										<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> -									</object> -								</object> -								<object class="NSColor" key="NSTextColor"> -									<int key="NSColorSpace">6</int> -									<string key="NSCatalogName">System</string> -									<string key="NSColorName">controlTextColor</string> -									<object class="NSColor" key="NSColor" id="355388215"> -										<int key="NSColorSpace">3</int> -										<bytes key="NSWhite">MAA</bytes> -									</object> -								</object> -							</object> -						</object> -						<object class="NSTextField" id="1018085422"> -							<reference key="NSNextResponder" ref="439893737"/> -							<int key="NSvFlags">268</int> -							<string key="NSFrame">{{20, 64}, {468, 163}}</string> -							<reference key="NSSuperview" ref="439893737"/> -							<reference key="NSWindow"/> -							<reference key="NSNextKeyView" ref="688522420"/> -							<string key="NSReuseIdentifierKey">_NS:9</string> -							<string key="NSAntiCompressionPriority">{250, 750}</string> -							<bool key="NSEnabled">YES</bool> -							<object class="NSTextFieldCell" key="NSCell" id="867418359"> -								<int key="NSCellFlags">-1805517311</int> -								<int key="NSCellFlags2">272891904</int> -								<string key="NSContents"/> -								<object class="NSFont" key="NSSupport"> -									<string key="NSName">LucidaGrande</string> -									<double key="NSSize">9</double> -									<int key="NSfFlags">3614</int> -								</object> -								<string key="NSCellIdentifier">_NS:9</string> -								<reference key="NSControlView" ref="1018085422"/> -								<bool key="NSDrawsBackground">YES</bool> -								<object class="NSColor" key="NSBackgroundColor"> -									<int key="NSColorSpace">6</int> -									<string key="NSCatalogName">System</string> -									<string key="NSColorName">textBackgroundColor</string> -									<object class="NSColor" key="NSColor"> -										<int key="NSColorSpace">3</int> -										<bytes key="NSWhite">MQA</bytes> -									</object> -								</object> -								<object class="NSColor" key="NSTextColor"> -									<int key="NSColorSpace">6</int> -									<string key="NSCatalogName">System</string> -									<string key="NSColorName">textColor</string> -									<reference key="NSColor" ref="355388215"/> -								</object> -							</object> -						</object> -						<object class="NSButton" id="688522420"> -							<reference key="NSNextResponder" ref="439893737"/> -							<int key="NSvFlags">268</int> -							<string key="NSFrame">{{16, 18}, {189, 30}}</string> -							<reference key="NSSuperview" ref="439893737"/> -							<reference key="NSWindow"/> -							<reference key="NSNextKeyView" ref="93467784"/> -							<string key="NSReuseIdentifierKey">_NS:9</string> -							<bool key="NSEnabled">YES</bool> -							<object class="NSButtonCell" key="NSCell" id="445379790"> -								<int key="NSCellFlags">-2080244224</int> -								<int key="NSCellFlags2">262144</int> -								<string key="NSContents">Remember This Choice</string> -								<reference key="NSSupport" ref="1010806345"/> -								<string key="NSCellIdentifier">_NS:9</string> -								<reference key="NSControlView" ref="688522420"/> -								<int key="NSButtonFlags">1211912703</int> -								<int key="NSButtonFlags2">2</int> -								<object class="NSCustomResource" key="NSNormalImage"> -									<string key="NSClassName">NSImage</string> -									<string key="NSResourceName">NSSwitch</string> -								</object> -								<object class="NSButtonImageSource" key="NSAlternateImage"> -									<string key="NSImageName">NSSwitch</string> -								</object> -								<string key="NSAlternateContents"/> -								<string key="NSKeyEquivalent"/> -								<int key="NSPeriodicDelay">200</int> -								<int key="NSPeriodicInterval">25</int> -							</object> -						</object> -						<object class="NSButton" id="93467784"> -							<reference key="NSNextResponder" ref="439893737"/> -							<int key="NSvFlags">268</int> -							<string key="NSFrame">{{285, 23}, {91, 17}}</string> -							<reference key="NSSuperview" ref="439893737"/> -							<reference key="NSWindow"/> -							<reference key="NSNextKeyView" ref="46276252"/> -							<string key="NSReuseIdentifierKey">_NS:9</string> -							<bool key="NSEnabled">YES</bool> -							<object class="NSButtonCell" key="NSCell" id="623922320"> -								<int key="NSCellFlags">-2080244224</int> -								<int key="NSCellFlags2">134479872</int> -								<string key="NSContents">Send Report</string> -								<reference key="NSSupport" ref="1010806345"/> -								<string key="NSCellIdentifier">_NS:9</string> -								<reference key="NSControlView" ref="93467784"/> -								<int key="NSButtonFlags">-2038152961</int> -								<int key="NSButtonFlags2">164</int> -								<string key="NSAlternateContents"/> -								<string key="NSKeyEquivalent"/> -								<int key="NSPeriodicDelay">400</int> -								<int key="NSPeriodicInterval">75</int> -							</object> -						</object> -						<object class="NSButton" id="46276252"> -							<reference key="NSNextResponder" ref="439893737"/> -							<int key="NSvFlags">268</int> -							<string key="NSFrame">{{388, 23}, {100, 17}}</string> -							<reference key="NSSuperview" ref="439893737"/> -							<reference key="NSWindow"/> -							<reference key="NSNextKeyView"/> -							<string key="NSReuseIdentifierKey">_NS:9</string> -							<bool key="NSEnabled">YES</bool> -							<object class="NSButtonCell" key="NSCell" id="398179500"> -								<int key="NSCellFlags">-2080244224</int> -								<int key="NSCellFlags2">134479872</int> -								<string key="NSContents">Don't Send</string> -								<reference key="NSSupport" ref="1010806345"/> -								<string key="NSCellIdentifier">_NS:9</string> -								<reference key="NSControlView" ref="46276252"/> -								<int key="NSButtonFlags">-2038152961</int> -								<int key="NSButtonFlags2">164</int> -								<string key="NSAlternateContents"/> -								<string key="NSKeyEquivalent"/> -								<int key="NSPeriodicDelay">400</int> -								<int key="NSPeriodicInterval">75</int> -							</object> -						</object> -					</array> -					<string key="NSFrameSize">{508, 477}</string> -					<reference key="NSSuperview"/> -					<reference key="NSWindow"/> -					<reference key="NSNextKeyView" ref="242877095"/> -				</object> -				<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> -				<string key="NSMaxSize">{10000000000000, 10000000000000}</string> -				<bool key="NSWindowIsRestorable">YES</bool> -			</object> -			<object class="NSCustomObject" id="976324537"> -				<string key="NSClassName">LLCrashLoggerMacDelegate</string> -			</object> -		</array> -		<object class="IBObjectContainer" key="IBDocument.Objects"> -			<array class="NSMutableArray" key="connectionRecords"> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">terminate:</string> -						<reference key="source" ref="1050"/> -						<reference key="destination" ref="632727374"/> -					</object> -					<int key="connectionID">449</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">orderFrontStandardAboutPanel:</string> -						<reference key="source" ref="1021"/> -						<reference key="destination" ref="238522557"/> -					</object> -					<int key="connectionID">142</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBOutletConnection" key="connection"> -						<string key="label">delegate</string> -						<reference key="source" ref="1021"/> -						<reference key="destination" ref="976324537"/> -					</object> -					<int key="connectionID">495</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performMiniaturize:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1011231497"/> -					</object> -					<int key="connectionID">37</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">arrangeInFront:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="625202149"/> -					</object> -					<int key="connectionID">39</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">print:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="49223823"/> -					</object> -					<int key="connectionID">86</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">runPageLayout:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="294629803"/> -					</object> -					<int key="connectionID">87</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">clearRecentDocuments:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="759406840"/> -					</object> -					<int key="connectionID">127</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performClose:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="776162233"/> -					</object> -					<int key="connectionID">193</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleContinuousSpellChecking:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="948374510"/> -					</object> -					<int key="connectionID">222</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">undo:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1058277027"/> -					</object> -					<int key="connectionID">223</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">copy:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="860595796"/> -					</object> -					<int key="connectionID">224</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">checkSpelling:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="96193923"/> -					</object> -					<int key="connectionID">225</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">paste:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="29853731"/> -					</object> -					<int key="connectionID">226</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">stopSpeaking:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="680220178"/> -					</object> -					<int key="connectionID">227</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">cut:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="296257095"/> -					</object> -					<int key="connectionID">228</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">showGuessPanel:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="679648819"/> -					</object> -					<int key="connectionID">230</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">redo:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="790794224"/> -					</object> -					<int key="connectionID">231</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">selectAll:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="583158037"/> -					</object> -					<int key="connectionID">232</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">startSpeaking:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="731782645"/> -					</object> -					<int key="connectionID">233</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">delete:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="437104165"/> -					</object> -					<int key="connectionID">235</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performZoom:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="575023229"/> -					</object> -					<int key="connectionID">240</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performFindPanelAction:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="447796847"/> -					</object> -					<int key="connectionID">241</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">centerSelectionInVisibleArea:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="88285865"/> -					</object> -					<int key="connectionID">245</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleGrammarChecking:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="967646866"/> -					</object> -					<int key="connectionID">347</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleSmartInsertDelete:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="605118523"/> -					</object> -					<int key="connectionID">355</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleAutomaticQuoteSubstitution:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="197661976"/> -					</object> -					<int key="connectionID">356</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleAutomaticLinkDetection:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="708854459"/> -					</object> -					<int key="connectionID">357</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">saveDocument:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1023925487"/> -					</object> -					<int key="connectionID">362</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">revertDocumentToSaved:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="579971712"/> -					</object> -					<int key="connectionID">364</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">runToolbarCustomizationPalette:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="237841660"/> -					</object> -					<int key="connectionID">365</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleToolbarShown:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="102151532"/> -					</object> -					<int key="connectionID">366</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">hide:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="755159360"/> -					</object> -					<int key="connectionID">367</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">hideOtherApplications:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="342932134"/> -					</object> -					<int key="connectionID">368</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">unhideAllApplications:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="908899353"/> -					</object> -					<int key="connectionID">370</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">newDocument:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="705341025"/> -					</object> -					<int key="connectionID">373</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">openDocument:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="722745758"/> -					</object> -					<int key="connectionID">374</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">raiseBaseline:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="941806246"/> -					</object> -					<int key="connectionID">426</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">lowerBaseline:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1045724900"/> -					</object> -					<int key="connectionID">427</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">copyFont:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="596732606"/> -					</object> -					<int key="connectionID">428</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">subscript:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1037576581"/> -					</object> -					<int key="connectionID">429</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">superscript:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="644725453"/> -					</object> -					<int key="connectionID">430</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">tightenKerning:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="677519740"/> -					</object> -					<int key="connectionID">431</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">underline:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="330926929"/> -					</object> -					<int key="connectionID">432</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">orderFrontColorPanel:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1012600125"/> -					</object> -					<int key="connectionID">433</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">useAllLigatures:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="663508465"/> -					</object> -					<int key="connectionID">434</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">loosenKerning:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="238351151"/> -					</object> -					<int key="connectionID">435</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">pasteFont:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="393423671"/> -					</object> -					<int key="connectionID">436</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">unscript:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="257962622"/> -					</object> -					<int key="connectionID">437</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">useStandardKerning:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="252969304"/> -					</object> -					<int key="connectionID">438</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">useStandardLigatures:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="706297211"/> -					</object> -					<int key="connectionID">439</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">turnOffLigatures:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="568384683"/> -					</object> -					<int key="connectionID">440</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">turnOffKerning:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="766922938"/> -					</object> -					<int key="connectionID">441</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleAutomaticSpellingCorrection:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="795346622"/> -					</object> -					<int key="connectionID">456</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">orderFrontSubstitutionsPanel:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="65139061"/> -					</object> -					<int key="connectionID">458</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleAutomaticDashSubstitution:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="672708820"/> -					</object> -					<int key="connectionID">461</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleAutomaticTextReplacement:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="537092702"/> -					</object> -					<int key="connectionID">463</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">uppercaseWord:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="1060694897"/> -					</object> -					<int key="connectionID">464</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">capitalizeWord:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="56570060"/> -					</object> -					<int key="connectionID">467</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">lowercaseWord:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="879586729"/> -					</object> -					<int key="connectionID">468</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">pasteAsPlainText:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="82994268"/> -					</object> -					<int key="connectionID">486</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performFindPanelAction:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="326711663"/> -					</object> -					<int key="connectionID">487</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performFindPanelAction:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="270902937"/> -					</object> -					<int key="connectionID">488</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performFindPanelAction:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="159080638"/> -					</object> -					<int key="connectionID">489</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">showHelp:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="105068016"/> -					</object> -					<int key="connectionID">493</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">alignCenter:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="630155264"/> -					</object> -					<int key="connectionID">518</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">pasteRuler:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="883618387"/> -					</object> -					<int key="connectionID">519</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">toggleRuler:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="644046920"/> -					</object> -					<int key="connectionID">520</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">alignRight:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="512868991"/> -					</object> -					<int key="connectionID">521</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">copyRuler:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="231811626"/> -					</object> -					<int key="connectionID">522</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">alignJustified:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="945678886"/> -					</object> -					<int key="connectionID">523</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">alignLeft:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="875092757"/> -					</object> -					<int key="connectionID">524</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeBaseWritingDirectionNatural:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="551969625"/> -					</object> -					<int key="connectionID">525</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeBaseWritingDirectionLeftToRight:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="249532473"/> -					</object> -					<int key="connectionID">526</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeBaseWritingDirectionRightToLeft:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="607364498"/> -					</object> -					<int key="connectionID">527</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeTextWritingDirectionNatural:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="380031999"/> -					</object> -					<int key="connectionID">528</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeTextWritingDirectionLeftToRight:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="825984362"/> -					</object> -					<int key="connectionID">529</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">makeTextWritingDirectionRightToLeft:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="560145579"/> -					</object> -					<int key="connectionID">530</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">performFindPanelAction:</string> -						<reference key="source" ref="1014"/> -						<reference key="destination" ref="738670835"/> -					</object> -					<int key="connectionID">535</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBOutletConnection" key="connection"> -						<string key="label">window</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="972006081"/> -					</object> -					<int key="connectionID">532</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">remember:</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="688522420"/> -					</object> -					<int key="connectionID">1176</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">send:</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="93467784"/> -					</object> -					<int key="connectionID">1177</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBActionConnection" key="connection"> -						<string key="label">cancel:</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="46276252"/> -					</object> -					<int key="connectionID">1178</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBOutletConnection" key="connection"> -						<string key="label">crashText</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="1018085422"/> -					</object> -					<int key="connectionID">1179</int> -				</object> -				<object class="IBConnectionRecord"> -					<object class="IBOutletConnection" key="connection"> -						<string key="label">rememberCheck</string> -						<reference key="source" ref="976324537"/> -						<reference key="destination" ref="688522420"/> -					</object> -					<int key="connectionID">1187</int> -				</object> -			</array> -			<object class="IBMutableOrderedSet" key="objectRecords"> -				<array key="orderedObjects"> -					<object class="IBObjectRecord"> -						<int key="objectID">0</int> -						<array key="object" id="0"/> -						<reference key="children" ref="1048"/> -						<nil key="parent"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">-2</int> -						<reference key="object" ref="1021"/> -						<reference key="parent" ref="0"/> -						<string key="objectName">File's Owner</string> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">-1</int> -						<reference key="object" ref="1014"/> -						<reference key="parent" ref="0"/> -						<string key="objectName">First Responder</string> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">-3</int> -						<reference key="object" ref="1050"/> -						<reference key="parent" ref="0"/> -						<string key="objectName">Application</string> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">29</int> -						<reference key="object" ref="649796088"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="713487014"/> -							<reference ref="694149608"/> -							<reference ref="952259628"/> -							<reference ref="379814623"/> -							<reference ref="586577488"/> -							<reference ref="302598603"/> -							<reference ref="448692316"/> -						</array> -						<reference key="parent" ref="0"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">19</int> -						<reference key="object" ref="713487014"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="835318025"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">56</int> -						<reference key="object" ref="694149608"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="110575045"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">217</int> -						<reference key="object" ref="952259628"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="789758025"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">83</int> -						<reference key="object" ref="379814623"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="720053764"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">81</int> -						<reference key="object" ref="720053764"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="1023925487"/> -							<reference ref="49223823"/> -							<reference ref="722745758"/> -							<reference ref="705341025"/> -							<reference ref="1025936716"/> -							<reference ref="294629803"/> -							<reference ref="776162233"/> -							<reference ref="425164168"/> -							<reference ref="579971712"/> -							<reference ref="1010469920"/> -						</array> -						<reference key="parent" ref="379814623"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">75</int> -						<reference key="object" ref="1023925487"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">78</int> -						<reference key="object" ref="49223823"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">72</int> -						<reference key="object" ref="722745758"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">82</int> -						<reference key="object" ref="705341025"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">124</int> -						<reference key="object" ref="1025936716"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="1065607017"/> -						</array> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">77</int> -						<reference key="object" ref="294629803"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">73</int> -						<reference key="object" ref="776162233"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">79</int> -						<reference key="object" ref="425164168"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">112</int> -						<reference key="object" ref="579971712"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">74</int> -						<reference key="object" ref="1010469920"/> -						<reference key="parent" ref="720053764"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">125</int> -						<reference key="object" ref="1065607017"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="759406840"/> -						</array> -						<reference key="parent" ref="1025936716"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">126</int> -						<reference key="object" ref="759406840"/> -						<reference key="parent" ref="1065607017"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">205</int> -						<reference key="object" ref="789758025"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="437104165"/> -							<reference ref="583158037"/> -							<reference ref="1058277027"/> -							<reference ref="212016141"/> -							<reference ref="296257095"/> -							<reference ref="29853731"/> -							<reference ref="860595796"/> -							<reference ref="1040322652"/> -							<reference ref="790794224"/> -							<reference ref="892235320"/> -							<reference ref="972420730"/> -							<reference ref="676164635"/> -							<reference ref="507821607"/> -							<reference ref="288088188"/> -							<reference ref="82994268"/> -						</array> -						<reference key="parent" ref="952259628"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">202</int> -						<reference key="object" ref="437104165"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">198</int> -						<reference key="object" ref="583158037"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">207</int> -						<reference key="object" ref="1058277027"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">214</int> -						<reference key="object" ref="212016141"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">199</int> -						<reference key="object" ref="296257095"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">203</int> -						<reference key="object" ref="29853731"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">197</int> -						<reference key="object" ref="860595796"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">206</int> -						<reference key="object" ref="1040322652"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">215</int> -						<reference key="object" ref="790794224"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">218</int> -						<reference key="object" ref="892235320"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="963351320"/> -						</array> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">216</int> -						<reference key="object" ref="972420730"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="769623530"/> -						</array> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">200</int> -						<reference key="object" ref="769623530"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="948374510"/> -							<reference ref="96193923"/> -							<reference ref="679648819"/> -							<reference ref="967646866"/> -							<reference ref="859480356"/> -							<reference ref="795346622"/> -						</array> -						<reference key="parent" ref="972420730"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">219</int> -						<reference key="object" ref="948374510"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">201</int> -						<reference key="object" ref="96193923"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">204</int> -						<reference key="object" ref="679648819"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">220</int> -						<reference key="object" ref="963351320"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="270902937"/> -							<reference ref="88285865"/> -							<reference ref="159080638"/> -							<reference ref="326711663"/> -							<reference ref="447796847"/> -							<reference ref="738670835"/> -						</array> -						<reference key="parent" ref="892235320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">213</int> -						<reference key="object" ref="270902937"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">210</int> -						<reference key="object" ref="88285865"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">221</int> -						<reference key="object" ref="159080638"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">208</int> -						<reference key="object" ref="326711663"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">209</int> -						<reference key="object" ref="447796847"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">57</int> -						<reference key="object" ref="110575045"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="238522557"/> -							<reference ref="755159360"/> -							<reference ref="908899353"/> -							<reference ref="632727374"/> -							<reference ref="646227648"/> -							<reference ref="609285721"/> -							<reference ref="481834944"/> -							<reference ref="304266470"/> -							<reference ref="1046388886"/> -							<reference ref="1056857174"/> -							<reference ref="342932134"/> -						</array> -						<reference key="parent" ref="694149608"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">58</int> -						<reference key="object" ref="238522557"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">134</int> -						<reference key="object" ref="755159360"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">150</int> -						<reference key="object" ref="908899353"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">136</int> -						<reference key="object" ref="632727374"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">144</int> -						<reference key="object" ref="646227648"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">129</int> -						<reference key="object" ref="609285721"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">143</int> -						<reference key="object" ref="481834944"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">236</int> -						<reference key="object" ref="304266470"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">131</int> -						<reference key="object" ref="1046388886"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="752062318"/> -						</array> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">149</int> -						<reference key="object" ref="1056857174"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">145</int> -						<reference key="object" ref="342932134"/> -						<reference key="parent" ref="110575045"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">130</int> -						<reference key="object" ref="752062318"/> -						<reference key="parent" ref="1046388886"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">24</int> -						<reference key="object" ref="835318025"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="299356726"/> -							<reference ref="625202149"/> -							<reference ref="575023229"/> -							<reference ref="1011231497"/> -						</array> -						<reference key="parent" ref="713487014"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">92</int> -						<reference key="object" ref="299356726"/> -						<reference key="parent" ref="835318025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">5</int> -						<reference key="object" ref="625202149"/> -						<reference key="parent" ref="835318025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">239</int> -						<reference key="object" ref="575023229"/> -						<reference key="parent" ref="835318025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">23</int> -						<reference key="object" ref="1011231497"/> -						<reference key="parent" ref="835318025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">295</int> -						<reference key="object" ref="586577488"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="466310130"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">296</int> -						<reference key="object" ref="466310130"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="102151532"/> -							<reference ref="237841660"/> -						</array> -						<reference key="parent" ref="586577488"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">297</int> -						<reference key="object" ref="102151532"/> -						<reference key="parent" ref="466310130"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">298</int> -						<reference key="object" ref="237841660"/> -						<reference key="parent" ref="466310130"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">211</int> -						<reference key="object" ref="676164635"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="785027613"/> -						</array> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">212</int> -						<reference key="object" ref="785027613"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="680220178"/> -							<reference ref="731782645"/> -						</array> -						<reference key="parent" ref="676164635"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">195</int> -						<reference key="object" ref="680220178"/> -						<reference key="parent" ref="785027613"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">196</int> -						<reference key="object" ref="731782645"/> -						<reference key="parent" ref="785027613"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">346</int> -						<reference key="object" ref="967646866"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">348</int> -						<reference key="object" ref="507821607"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="698887838"/> -						</array> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">349</int> -						<reference key="object" ref="698887838"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="605118523"/> -							<reference ref="197661976"/> -							<reference ref="708854459"/> -							<reference ref="65139061"/> -							<reference ref="19036812"/> -							<reference ref="672708820"/> -							<reference ref="537092702"/> -						</array> -						<reference key="parent" ref="507821607"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">350</int> -						<reference key="object" ref="605118523"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">351</int> -						<reference key="object" ref="197661976"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">354</int> -						<reference key="object" ref="708854459"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">371</int> -						<reference key="object" ref="972006081"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="439893737"/> -						</array> -						<reference key="parent" ref="0"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">372</int> -						<reference key="object" ref="439893737"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="242877095"/> -							<reference ref="1018085422"/> -							<reference ref="688522420"/> -							<object class="IBNSLayoutConstraint" id="109434655"> -								<reference key="firstItem" ref="242877095"/> -								<int key="firstAttribute">3</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="439893737"/> -								<int key="secondAttribute">3</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<reference ref="46276252"/> -							<reference ref="93467784"/> -							<object class="IBNSLayoutConstraint" id="166525974"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">6</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="242877095"/> -								<int key="secondAttribute">6</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="229833409"> -								<reference key="firstItem" ref="242877095"/> -								<int key="firstAttribute">5</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="439893737"/> -								<int key="secondAttribute">5</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="992363278"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">6</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="1018085422"/> -								<int key="secondAttribute">6</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="646866003"> -								<reference key="firstItem" ref="1018085422"/> -								<int key="firstAttribute">5</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="439893737"/> -								<int key="secondAttribute">5</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="98217052"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">4</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="1018085422"/> -								<int key="secondAttribute">4</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">64</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="578918264"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">6</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="46276252"/> -								<int key="secondAttribute">6</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="591594339"> -								<reference key="firstItem" ref="688522420"/> -								<int key="firstAttribute">5</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="439893737"/> -								<int key="secondAttribute">5</int> -								<float key="multiplier">1</float> -								<object class="IBNSLayoutSymbolicConstant" key="constant"> -									<double key="value">20</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">8</int> -								<float key="scoringTypeFloat">29</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="432526715"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">4</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="688522420"/> -								<int key="secondAttribute">4</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">21</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="891430181"> -								<reference key="firstItem" ref="439893737"/> -								<int key="firstAttribute">6</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="93467784"/> -								<int key="secondAttribute">6</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">132</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">3</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="833183002"> -								<reference key="firstItem" ref="93467784"/> -								<int key="firstAttribute">11</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="46276252"/> -								<int key="secondAttribute">11</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">0.0</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">6</int> -								<float key="scoringTypeFloat">24</float> -								<int key="contentType">2</int> -								<reference key="containingView" ref="439893737"/> -							</object> -							<object class="IBNSLayoutConstraint" id="670714078"> -								<reference key="firstItem" ref="93467784"/> -								<int key="firstAttribute">10</int> -								<int key="relation">0</int> -								<reference key="secondItem" ref="688522420"/> -								<int key="secondAttribute">10</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">0.0</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">6</int> -								<float key="scoringTypeFloat">24</float> -								<int key="contentType">2</int> -								<reference key="containingView" ref="439893737"/> -							</object> -						</array> -						<reference key="parent" ref="972006081"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">375</int> -						<reference key="object" ref="302598603"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="941447902"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">376</int> -						<reference key="object" ref="941447902"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="792887677"/> -							<reference ref="215659978"/> -						</array> -						<reference key="parent" ref="302598603"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">377</int> -						<reference key="object" ref="792887677"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="786677654"/> -						</array> -						<reference key="parent" ref="941447902"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">388</int> -						<reference key="object" ref="786677654"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="159677712"/> -							<reference ref="305399458"/> -							<reference ref="814362025"/> -							<reference ref="330926929"/> -							<reference ref="533507878"/> -							<reference ref="158063935"/> -							<reference ref="885547335"/> -							<reference ref="901062459"/> -							<reference ref="767671776"/> -							<reference ref="691570813"/> -							<reference ref="769124883"/> -							<reference ref="739652853"/> -							<reference ref="1012600125"/> -							<reference ref="214559597"/> -							<reference ref="596732606"/> -							<reference ref="393423671"/> -						</array> -						<reference key="parent" ref="792887677"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">389</int> -						<reference key="object" ref="159677712"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">390</int> -						<reference key="object" ref="305399458"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">391</int> -						<reference key="object" ref="814362025"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">392</int> -						<reference key="object" ref="330926929"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">393</int> -						<reference key="object" ref="533507878"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">394</int> -						<reference key="object" ref="158063935"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">395</int> -						<reference key="object" ref="885547335"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">396</int> -						<reference key="object" ref="901062459"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">397</int> -						<reference key="object" ref="767671776"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="175441468"/> -						</array> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">398</int> -						<reference key="object" ref="691570813"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="1058217995"/> -						</array> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">399</int> -						<reference key="object" ref="769124883"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="18263474"/> -						</array> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">400</int> -						<reference key="object" ref="739652853"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">401</int> -						<reference key="object" ref="1012600125"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">402</int> -						<reference key="object" ref="214559597"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">403</int> -						<reference key="object" ref="596732606"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">404</int> -						<reference key="object" ref="393423671"/> -						<reference key="parent" ref="786677654"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">405</int> -						<reference key="object" ref="18263474"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="257962622"/> -							<reference ref="644725453"/> -							<reference ref="1037576581"/> -							<reference ref="941806246"/> -							<reference ref="1045724900"/> -						</array> -						<reference key="parent" ref="769124883"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">406</int> -						<reference key="object" ref="257962622"/> -						<reference key="parent" ref="18263474"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">407</int> -						<reference key="object" ref="644725453"/> -						<reference key="parent" ref="18263474"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">408</int> -						<reference key="object" ref="1037576581"/> -						<reference key="parent" ref="18263474"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">409</int> -						<reference key="object" ref="941806246"/> -						<reference key="parent" ref="18263474"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">410</int> -						<reference key="object" ref="1045724900"/> -						<reference key="parent" ref="18263474"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">411</int> -						<reference key="object" ref="1058217995"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="706297211"/> -							<reference ref="568384683"/> -							<reference ref="663508465"/> -						</array> -						<reference key="parent" ref="691570813"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">412</int> -						<reference key="object" ref="706297211"/> -						<reference key="parent" ref="1058217995"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">413</int> -						<reference key="object" ref="568384683"/> -						<reference key="parent" ref="1058217995"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">414</int> -						<reference key="object" ref="663508465"/> -						<reference key="parent" ref="1058217995"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">415</int> -						<reference key="object" ref="175441468"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="252969304"/> -							<reference ref="766922938"/> -							<reference ref="677519740"/> -							<reference ref="238351151"/> -						</array> -						<reference key="parent" ref="767671776"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">416</int> -						<reference key="object" ref="252969304"/> -						<reference key="parent" ref="175441468"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">417</int> -						<reference key="object" ref="766922938"/> -						<reference key="parent" ref="175441468"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">418</int> -						<reference key="object" ref="677519740"/> -						<reference key="parent" ref="175441468"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">419</int> -						<reference key="object" ref="238351151"/> -						<reference key="parent" ref="175441468"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">450</int> -						<reference key="object" ref="288088188"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="579392910"/> -						</array> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">451</int> -						<reference key="object" ref="579392910"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="1060694897"/> -							<reference ref="879586729"/> -							<reference ref="56570060"/> -						</array> -						<reference key="parent" ref="288088188"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">452</int> -						<reference key="object" ref="1060694897"/> -						<reference key="parent" ref="579392910"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">453</int> -						<reference key="object" ref="859480356"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">454</int> -						<reference key="object" ref="795346622"/> -						<reference key="parent" ref="769623530"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">457</int> -						<reference key="object" ref="65139061"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">459</int> -						<reference key="object" ref="19036812"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">460</int> -						<reference key="object" ref="672708820"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">462</int> -						<reference key="object" ref="537092702"/> -						<reference key="parent" ref="698887838"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">465</int> -						<reference key="object" ref="879586729"/> -						<reference key="parent" ref="579392910"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">466</int> -						<reference key="object" ref="56570060"/> -						<reference key="parent" ref="579392910"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">485</int> -						<reference key="object" ref="82994268"/> -						<reference key="parent" ref="789758025"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">490</int> -						<reference key="object" ref="448692316"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="992780483"/> -						</array> -						<reference key="parent" ref="649796088"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">491</int> -						<reference key="object" ref="992780483"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="105068016"/> -						</array> -						<reference key="parent" ref="448692316"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">492</int> -						<reference key="object" ref="105068016"/> -						<reference key="parent" ref="992780483"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">494</int> -						<reference key="object" ref="976324537"/> -						<reference key="parent" ref="0"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">496</int> -						<reference key="object" ref="215659978"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="446991534"/> -						</array> -						<reference key="parent" ref="941447902"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">497</int> -						<reference key="object" ref="446991534"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="875092757"/> -							<reference ref="630155264"/> -							<reference ref="945678886"/> -							<reference ref="512868991"/> -							<reference ref="163117631"/> -							<reference ref="31516759"/> -							<reference ref="908105787"/> -							<reference ref="644046920"/> -							<reference ref="231811626"/> -							<reference ref="883618387"/> -						</array> -						<reference key="parent" ref="215659978"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">498</int> -						<reference key="object" ref="875092757"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">499</int> -						<reference key="object" ref="630155264"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">500</int> -						<reference key="object" ref="945678886"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">501</int> -						<reference key="object" ref="512868991"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">502</int> -						<reference key="object" ref="163117631"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">503</int> -						<reference key="object" ref="31516759"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="956096989"/> -						</array> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">504</int> -						<reference key="object" ref="908105787"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">505</int> -						<reference key="object" ref="644046920"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">506</int> -						<reference key="object" ref="231811626"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">507</int> -						<reference key="object" ref="883618387"/> -						<reference key="parent" ref="446991534"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">508</int> -						<reference key="object" ref="956096989"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="257099033"/> -							<reference ref="551969625"/> -							<reference ref="249532473"/> -							<reference ref="607364498"/> -							<reference ref="508151438"/> -							<reference ref="981751889"/> -							<reference ref="380031999"/> -							<reference ref="825984362"/> -							<reference ref="560145579"/> -						</array> -						<reference key="parent" ref="31516759"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">509</int> -						<reference key="object" ref="257099033"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">510</int> -						<reference key="object" ref="551969625"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">511</int> -						<reference key="object" ref="249532473"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">512</int> -						<reference key="object" ref="607364498"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">513</int> -						<reference key="object" ref="508151438"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">514</int> -						<reference key="object" ref="981751889"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">515</int> -						<reference key="object" ref="380031999"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">516</int> -						<reference key="object" ref="825984362"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">517</int> -						<reference key="object" ref="560145579"/> -						<reference key="parent" ref="956096989"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">534</int> -						<reference key="object" ref="738670835"/> -						<reference key="parent" ref="963351320"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">536</int> -						<reference key="object" ref="242877095"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="502956757"/> -							<object class="IBNSLayoutConstraint" id="697106875"> -								<reference key="firstItem" ref="242877095"/> -								<int key="firstAttribute">8</int> -								<int key="relation">0</int> -								<nil key="secondItem"/> -								<int key="secondAttribute">0</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">229</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">1</int> -								<reference key="containingView" ref="242877095"/> -							</object> -						</array> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">537</int> -						<reference key="object" ref="502956757"/> -						<reference key="parent" ref="242877095"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">593</int> -						<reference key="object" ref="1018085422"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="867418359"/> -							<object class="IBNSLayoutConstraint" id="276483890"> -								<reference key="firstItem" ref="1018085422"/> -								<int key="firstAttribute">8</int> -								<int key="relation">0</int> -								<nil key="secondItem"/> -								<int key="secondAttribute">0</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">163</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">1</int> -								<reference key="containingView" ref="1018085422"/> -							</object> -						</array> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">594</int> -						<reference key="object" ref="867418359"/> -						<reference key="parent" ref="1018085422"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">727</int> -						<reference key="object" ref="688522420"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="445379790"/> -							<object class="IBNSLayoutConstraint" id="337680523"> -								<reference key="firstItem" ref="688522420"/> -								<int key="firstAttribute">7</int> -								<int key="relation">0</int> -								<nil key="secondItem"/> -								<int key="secondAttribute">0</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">183</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">1</int> -								<reference key="containingView" ref="688522420"/> -							</object> -							<object class="IBNSLayoutConstraint" id="73036966"> -								<reference key="firstItem" ref="688522420"/> -								<int key="firstAttribute">8</int> -								<int key="relation">0</int> -								<nil key="secondItem"/> -								<int key="secondAttribute">0</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">22</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">1</int> -								<reference key="containingView" ref="688522420"/> -							</object> -						</array> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">728</int> -						<reference key="object" ref="445379790"/> -						<reference key="parent" ref="688522420"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">775</int> -						<reference key="object" ref="93467784"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="623922320"/> -						</array> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">776</int> -						<reference key="object" ref="623922320"/> -						<reference key="parent" ref="93467784"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">780</int> -						<reference key="object" ref="46276252"/> -						<array class="NSMutableArray" key="children"> -							<reference ref="398179500"/> -							<object class="IBNSLayoutConstraint" id="944606221"> -								<reference key="firstItem" ref="46276252"/> -								<int key="firstAttribute">7</int> -								<int key="relation">0</int> -								<nil key="secondItem"/> -								<int key="secondAttribute">0</int> -								<float key="multiplier">1</float> -								<object class="IBLayoutConstant" key="constant"> -									<double key="value">100</double> -								</object> -								<float key="priority">1000</float> -								<int key="scoringType">3</int> -								<float key="scoringTypeFloat">9</float> -								<int key="contentType">1</int> -								<reference key="containingView" ref="46276252"/> -							</object> -						</array> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">781</int> -						<reference key="object" ref="398179500"/> -						<reference key="parent" ref="46276252"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">884</int> -						<reference key="object" ref="109434655"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">981</int> -						<reference key="object" ref="229833409"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">982</int> -						<reference key="object" ref="992363278"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1022</int> -						<reference key="object" ref="98217052"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1026</int> -						<reference key="object" ref="276483890"/> -						<reference key="parent" ref="1018085422"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">979</int> -						<reference key="object" ref="166525974"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">985</int> -						<reference key="object" ref="646866003"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">977</int> -						<reference key="object" ref="697106875"/> -						<reference key="parent" ref="242877095"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1099</int> -						<reference key="object" ref="337680523"/> -						<reference key="parent" ref="688522420"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1093</int> -						<reference key="object" ref="578918264"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1100</int> -						<reference key="object" ref="73036966"/> -						<reference key="parent" ref="688522420"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1098</int> -						<reference key="object" ref="432526715"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1168</int> -						<reference key="object" ref="670714078"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1167</int> -						<reference key="object" ref="833183002"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1095</int> -						<reference key="object" ref="591594339"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1166</int> -						<reference key="object" ref="891430181"/> -						<reference key="parent" ref="439893737"/> -					</object> -					<object class="IBObjectRecord"> -						<int key="objectID">1076</int> -						<reference key="object" ref="944606221"/> -						<reference key="parent" ref="46276252"/> -					</object> -				</array> -			</object> -			<dictionary class="NSMutableDictionary" key="flattenedProperties"> -				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1022.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1026.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1076.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1093.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1095.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1098.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1099.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1100.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="112.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1166.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1167.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="1168.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="125.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="143.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="145.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="149.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="150.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="195.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="196.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="197.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="198.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="199.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="200.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="201.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="202.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="203.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="205.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="206.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="207.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="208.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="209.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="210.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="211.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="212.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="213.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="214.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="215.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="216.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="217.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="218.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="219.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="220.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="221.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="236.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="239.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="295.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="296.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="297.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="298.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="346.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="348.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="349.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="350.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="351.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="354.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="371.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="371.IBWindowTemplateEditedContentRect">{{380, 496}, {480, 360}}</string> -				<integer value="1" key="371.NSWindowTemplate.visibleAtLaunch"/> -				<array class="NSMutableArray" key="372.IBNSViewMetadataConstraints"> -					<reference ref="109434655"/> -					<reference ref="166525974"/> -					<reference ref="229833409"/> -					<reference ref="992363278"/> -					<reference ref="646866003"/> -					<reference ref="98217052"/> -					<reference ref="578918264"/> -					<reference ref="591594339"/> -					<reference ref="432526715"/> -					<reference ref="891430181"/> -					<reference ref="833183002"/> -					<reference ref="670714078"/> -				</array> -				<string key="372.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<reference key="372.IBUserGuides" ref="0"/> -				<string key="375.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="376.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="377.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="388.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="389.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="390.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="391.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="392.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="393.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="394.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="395.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="396.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="397.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="398.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="399.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="400.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="401.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="402.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="403.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="404.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="405.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="406.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="407.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="408.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="409.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="410.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="411.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="412.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="413.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="414.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="415.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="416.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="417.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="418.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="419.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="450.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="451.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="452.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="453.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="454.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="457.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="459.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="460.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="462.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="466.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="485.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="490.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="491.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="492.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="494.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="496.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="497.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="498.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="499.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="500.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="501.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="502.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="503.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="504.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="505.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="506.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="507.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="508.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="509.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="510.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="511.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="512.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="513.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="514.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="515.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="516.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="517.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="534.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<array class="NSMutableArray" key="536.IBNSViewMetadataConstraints"> -					<reference ref="697106875"/> -				</array> -				<boolean value="NO" key="536.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> -				<string key="536.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="537.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<array class="NSMutableArray" key="593.IBNSViewMetadataConstraints"> -					<reference ref="276483890"/> -				</array> -				<boolean value="NO" key="593.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> -				<string key="593.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="594.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="72.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<array class="NSMutableArray" key="727.IBNSViewMetadataConstraints"> -					<reference ref="337680523"/> -					<reference ref="73036966"/> -				</array> -				<boolean value="NO" key="727.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> -				<string key="727.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="728.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="74.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="75.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="77.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<boolean value="NO" key="775.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> -				<string key="775.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="776.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="78.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<array class="NSMutableArray" key="780.IBNSViewMetadataConstraints"> -					<reference ref="944606221"/> -				</array> -				<boolean value="NO" key="780.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> -				<string key="780.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="781.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="79.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="81.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="82.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="83.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="884.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="92.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="977.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="979.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="981.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="982.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -				<string key="985.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> -			</dictionary> -			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/> -			<nil key="activeLocalization"/> -			<dictionary class="NSMutableDictionary" key="localizations"/> -			<nil key="sourceID"/> -			<int key="maxID">1187</int> -		</object> -		<object class="IBClassDescriber" key="IBDocument.Classes"> -			<array class="NSMutableArray" key="referencedPartialClassDescriptions"> -				<object class="IBPartialClassDescription"> -					<string key="className">LLCrashLoggerMacDelegate</string> -					<string key="superclassName">NSObject</string> -					<dictionary class="NSMutableDictionary" key="actions"> -						<string key="cancel:">id</string> -						<string key="remember:">id</string> -						<string key="send:">id</string> -					</dictionary> -					<dictionary class="NSMutableDictionary" key="actionInfosByName"> -						<object class="IBActionInfo" key="cancel:"> -							<string key="name">cancel:</string> -							<string key="candidateClassName">id</string> -						</object> -						<object class="IBActionInfo" key="remember:"> -							<string key="name">remember:</string> -							<string key="candidateClassName">id</string> -						</object> -						<object class="IBActionInfo" key="send:"> -							<string key="name">send:</string> -							<string key="candidateClassName">id</string> -						</object> -					</dictionary> -					<dictionary class="NSMutableDictionary" key="outlets"> -						<string key="crashText">NSTextField</string> -						<string key="rememberCheck">NSButton</string> -						<string key="window">NSWindow</string> -					</dictionary> -					<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> -						<object class="IBToOneOutletInfo" key="crashText"> -							<string key="name">crashText</string> -							<string key="candidateClassName">NSTextField</string> -						</object> -						<object class="IBToOneOutletInfo" key="rememberCheck"> -							<string key="name">rememberCheck</string> -							<string key="candidateClassName">NSButton</string> -						</object> -						<object class="IBToOneOutletInfo" key="window"> -							<string key="name">window</string> -							<string key="candidateClassName">NSWindow</string> -						</object> -					</dictionary> -					<object class="IBClassDescriptionSource" key="sourceIdentifier"> -						<string key="majorKey">IBProjectSource</string> -						<string key="minorKey">./Classes/LLCrashLoggerMacDelegate.h</string> -					</object> -				</object> -				<object class="IBPartialClassDescription"> -					<string key="className">NSLayoutConstraint</string> -					<string key="superclassName">NSObject</string> -					<object class="IBClassDescriptionSource" key="sourceIdentifier"> -						<string key="majorKey">IBProjectSource</string> -						<string key="minorKey">./Classes/NSLayoutConstraint.h</string> -					</object> -				</object> -			</array> -		</object> -		<int key="IBDocument.localizationMode">0</int> -		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> -		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies"> -			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> -			<integer value="1070" key="NS.object.0"/> -		</object> -		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> -		<int key="IBDocument.defaultPropertyAccessControl">3</int> -		<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> -			<string key="NSMenuCheckmark">{11, 11}</string> -			<string key="NSMenuMixedState">{10, 3}</string> -			<string key="NSSwitch">{15, 15}</string> -		</dictionary> -		<bool key="IBDocument.UseAutolayout">YES</bool> -	</data> -</archive> diff --git a/indra/mac_crash_logger/Info.plist b/indra/mac_crash_logger/Info.plist deleted file mode 100644 index 2ebed11c3f..0000000000 --- a/indra/mac_crash_logger/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> -	<key>CFBundleDevelopmentRegion</key> -	<string>English</string> -	<key>CFBundleExecutable</key> -	<string>mac-crash-logger</string> -	<key>CFBundleGetInfoString</key> -	<string></string> -	<key>CFBundleIconFile</key> -	<string></string> -	<key>CFBundleInfoDictionaryVersion</key> -	<string>6.0</string> -	<key>CFBundlePackageType</key> -	<string>APPL</string> -	<key>CFBundleShortVersionString</key> -	<string></string> -	<key>CFBundleSignature</key> -	<string>????</string> -	<key>CFBundleVersion</key> -	<string>1.0.0</string> -	<key>NSMainNibFile</key> -	<string>CrashReporter</string> -	<key>NSPrincipalClass</key> -	<string>NSApplication</string> -</dict> -</plist> diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp deleted file mode 100644 index ec3616e26a..0000000000 --- a/indra/mac_crash_logger/llcrashloggermac.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/**  - * @file llcrashloggermac.cpp - * @brief Mac OSX crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - - -#include "llcrashloggermac.h" - -#include <iostream> - -#include "indra_constants.h"	// CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME -#include "llerror.h" -#include "llfile.h" -#include "lltimer.h" -#include "llstring.h" -#include "lldir.h" -#include "llsdserialize.h" - -// Windows Message Handlers - -BOOL gFirstDialog = TRUE;	 -LLFILE *gDebugFile = NULL; - -std::string gUserNotes = ""; -bool gSendReport = false; -bool gRememberChoice = false; - -LLCrashLoggerMac::LLCrashLoggerMac(void) -{ -} - -LLCrashLoggerMac::~LLCrashLoggerMac(void) -{ -} - -bool LLCrashLoggerMac::init(void) -{	 -	bool ok = LLCrashLogger::init(); -    return ok; -} - -void LLCrashLoggerMac::gatherPlatformSpecificFiles() -{ -} - -bool LLCrashLoggerMac::frame() -{ - -    if (mCrashBehavior == CRASH_BEHAVIOR_ALWAYS_SEND) -	{ -		gSendReport = true; -	} -	 -	if(gSendReport) -	{ -		setUserText(gUserNotes); -		sendCrashLogs(); -	}	 - -	LL_INFOS() << "Sending of logs complete" << LL_ENDL; -		 -	return true; -} - -bool LLCrashLoggerMac::cleanup() -{ -	commonCleanup(); -    mKeyMaster.releaseMaster(); -	return true; -} diff --git a/indra/mac_crash_logger/llcrashloggermac.h b/indra/mac_crash_logger/llcrashloggermac.h deleted file mode 100644 index 05ef8c9f53..0000000000 --- a/indra/mac_crash_logger/llcrashloggermac.h +++ /dev/null @@ -1,45 +0,0 @@ -/**  - * @file llcrashloggermac.h - * @brief Mac OSX crash logger definition - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -#ifndef LLCRASHLOGGERMAC_H -#define LLCRASHLOGGERMAC_H - -#include "linden_common.h" -#include "llcrashlogger.h" -#include "llstring.h" - -class LLCrashLoggerMac : public LLCrashLogger -{ -public: -	LLCrashLoggerMac(void); -	~LLCrashLoggerMac(void); -	virtual bool init(); -	virtual bool frame(); -	virtual bool cleanup(); -	virtual void gatherPlatformSpecificFiles(); -}; - -#endif diff --git a/indra/mac_crash_logger/llcrashloggermacdelegate.h b/indra/mac_crash_logger/llcrashloggermacdelegate.h deleted file mode 100644 index c998a8efe2..0000000000 --- a/indra/mac_crash_logger/llcrashloggermacdelegate.h +++ /dev/null @@ -1,52 +0,0 @@ -/**  - * @file llcrashloggermacdelegate.h - * @brief Mac OSX crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -/* -#import <Cocoa/Cocoa.h> - -@interface LLCrashLoggerMacDelegate : NSObject <NSApplicationDelegate> -{ -    IBOutlet NSTextField *crashText; -    IBOutlet NSButton *rememberCheck; -     -    NSWindow *_window; -    bool mRemember; - -} - -- (void)setWindow:(NSWindow *)newWindow; -- (NSWindow *)window; - -- (IBAction)remember:(id)sender; -- (IBAction)send:(id)sender; -- (IBAction)cancel:(id)sender; - -@property (assign) IBOutlet NSWindow *window; - -@end -*/ - - diff --git a/indra/mac_crash_logger/llcrashloggermacdelegate.mm b/indra/mac_crash_logger/llcrashloggermacdelegate.mm deleted file mode 100644 index b2af76a47c..0000000000 --- a/indra/mac_crash_logger/llcrashloggermacdelegate.mm +++ /dev/null @@ -1,75 +0,0 @@ -/**  - * @file llcrashloggermacdelegate.mm - * @brief Mac OSX crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - - -/* -#import "llcrashloggermacdelegate.h" -#include <iostream> - -extern std::string gUserNotes; -extern bool gSendReport; -extern bool gRememberChoice; - -@implementation LLCrashLoggerMacDelegate - -- (void)setWindow:(NSWindow *)window -{ -    _window = window; -} - -- (NSWindow *)window -{ -    return _window; -} - -- (void)dealloc -{ -    [super dealloc]; -} - -std::string* NSToString( NSString *ns_str ) -{ -    return ( new std::string([ns_str UTF8String]) ); -} - -- (IBAction)remember:(id)sender -{ -    gRememberChoice = [rememberCheck state]; -} - -- (IBAction)send:(id)sender -{ -    std::string* user_input = NSToString([crashText stringValue]); -    gUserNotes = *user_input; -    gSendReport = true; -} - -- (IBAction)cancel:(id)sender -{ -    [ _window close]; -} -@end -*/
\ No newline at end of file diff --git a/indra/mac_crash_logger/mac_crash_logger.cpp b/indra/mac_crash_logger/mac_crash_logger.cpp deleted file mode 100644 index 54e41a1954..0000000000 --- a/indra/mac_crash_logger/mac_crash_logger.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**  - * @file mac_crash_logger.cpp - * @brief Mac OSX crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -#include "linden_common.h" -#include "llcrashloggermac.h" -#include "indra_constants.h" -#include "llpidlock.h" - -#include <iostream> -     -int main(int argc, char **argv) -{ -	LLCrashLoggerMac app; -	app.parseCommandOptions(argc, argv); - -    LLSD options = LLApp::instance()->getOptionData( -                        LLApp::PRIORITY_COMMAND_LINE); -     -	if (! app.init()) -	{ -		LL_WARNS() << "Unable to initialize application." << LL_ENDL; -		return 1; -	} - -    if (app.getCrashBehavior() != CRASH_BEHAVIOR_ALWAYS_SEND) -    { -//        return NSApplicationMain(argc, (const char **)argv); -    } -	app.frame(); -	app.cleanup(); - -	LL_INFOS() << "Crash reporter finished normally." << LL_ENDL; -     -	return 0; -} diff --git a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp index f7d35b33c2..5d4a488e64 100644 --- a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp +++ b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp @@ -34,6 +34,11 @@  #include "llpluginmessageclasses.h"  #include "media_plugin_base.h" +#if defined(_MSC_VER) +#include <basetsd.h> +typedef SSIZE_T ssize_t; +#endif +  #include "vlc/vlc.h"  #include "vlc/libvlc_version.h" diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 397691d7cf..63045502c9 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1838,7 +1838,6 @@ if (WINDOWS)        media_plugin_libvlc        media_plugin_example        winmm_shim -      windows-crash-logger        )      if (ADDRESS_SIZE EQUAL 64) @@ -1905,7 +1904,6 @@ if (WINDOWS)      add_dependencies(${VIEWER_BINARY_NAME}        SLPlugin -      windows-crash-logger      )      # sets the 'working directory' for debugging from visual studio. @@ -2210,8 +2208,7 @@ if (DARWIN)        ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py      ) -  add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_libvlc media_plugin_cef mac-crash-logger) -  add_dependencies(${VIEWER_BINARY_NAME} mac-crash-logger) +  add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_libvlc media_plugin_cef)    if (ENABLE_SIGNING)        set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}") @@ -2254,62 +2251,7 @@ endif (INSTALL)  # Note that the conventional VIEWER_SYMBOL_FILE is set by ../../build.sh  if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIEWER_SYMBOL_FILE) -  if (NOT BUGSPLAT_DB) -    # Breakpad symbol-file generation -    set(SYMBOL_SEARCH_DIRS "") -    if (WINDOWS) -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}") -      # slplugin.exe failing symbols dump - need to debug, might have to do with updated version of google breakpad -      # set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX} slplugin.exe") -      set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX}") -      set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}") -      set(VIEWER_COPY_MANIFEST copy_w_viewer_manifest) -    endif (WINDOWS) -    if (DARWIN) -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}") -      # *TODO: Generate these search dirs in the cmake files related to each binary. -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/llplugin/slplugin/${CMAKE_CFG_INTDIR}") -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/mac_crash_logger/${CMAKE_CFG_INTDIR}") -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/gstreamer010/${CMAKE_CFG_INTDIR}") -      set(VIEWER_EXE_GLOBS "'${product}' SLPlugin mac-crash-logger") -      set(VIEWER_EXE_GLOBS "'${product}' mac-crash-logger") -      set(VIEWER_LIB_GLOB "*.dylib") -    endif (DARWIN) -    if (LINUX) -      list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/packaged") -      set(VIEWER_EXE_GLOBS "do-not-directly-run-secondlife-bin SLPlugin") -      set(VIEWER_EXE_GLOBS "do-not-directly-run-secondlife-bin") -      set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}*") -      set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest) -    endif (LINUX) - -    if(CMAKE_CFG_INTDIR STREQUAL ".") -        set(LLBUILD_CONFIG ${CMAKE_BUILD_TYPE}) -    else(CMAKE_CFG_INTDIR STREQUAL ".") -        # set LLBUILD_CONFIG to be a shell variable evaluated at build time -        # reflecting the configuration we are currently building. -        set(LLBUILD_CONFIG ${CMAKE_CFG_INTDIR}) -    endif(CMAKE_CFG_INTDIR STREQUAL ".") -    add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}" -      COMMAND "${PYTHON_EXECUTABLE}" -      ARGS -        "${CMAKE_CURRENT_SOURCE_DIR}/generate_breakpad_symbols.py" -        "${LLBUILD_CONFIG}" -        "${SYMBOL_SEARCH_DIRS}" -        "${VIEWER_EXE_GLOBS}" -        "${VIEWER_LIB_GLOB}" -        "${AUTOBUILD_INSTALL_DIR}/bin/dump_syms" -        "${VIEWER_SYMBOL_FILE}" -      DEPENDS generate_breakpad_symbols.py -          VERBATIM) - -    add_custom_target(generate_symbols DEPENDS "${VIEWER_SYMBOL_FILE}" ${VIEWER_BINARY_NAME} "${VIEWER_COPY_MANIFEST}") -    add_dependencies(generate_symbols ${VIEWER_BINARY_NAME}) -    if (WINDOWS OR LINUX) -      add_dependencies(generate_symbols "${VIEWER_COPY_MANIFEST}") -    endif (WINDOWS OR LINUX) - -  else (NOT BUGSPLAT_DB) +  if (BUGSPLAT_DB)      # BugSplat symbol-file generation      if (WINDOWS)        # Just pack up a tarball containing only the .pdb file for the @@ -2393,7 +2335,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE      if (LINUX)        # TBD      endif (LINUX) -  endif (NOT BUGSPLAT_DB) +  endif (BUGSPLAT_DB)    # for both BUGSPLAT_DB and Breakpad    add_dependencies(llpackage generate_symbols) diff --git a/indra/newview/generate_breakpad_symbols.py b/indra/newview/generate_breakpad_symbols.py deleted file mode 100755 index d351c406bc..0000000000 --- a/indra/newview/generate_breakpad_symbols.py +++ /dev/null @@ -1,166 +0,0 @@ -#!/usr/bin/env python -"""\ -@file generate_breakpad_symbols.py -@author Brad Kittenbrink <brad@lindenlab.com> -@brief Simple tool for generating google_breakpad symbol information -       for the crash reporter. - -$LicenseInfo:firstyear=2010&license=viewerlgpl$ -Second Life Viewer Source Code -Copyright (C) 2010-2011, 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$ -""" - - -import collections -import fnmatch -import itertools -import os -import re -import sys -import shlex -import subprocess -import tarfile -import StringIO -import pprint - -DEBUG=False - -def usage(): -    print >>sys.stderr, "usage: %s search_dirs viewer_exes libs_suffix dump_syms_tool viewer_symbol_file" % sys.argv[0] - -class MissingModuleError(Exception): -    def __init__(self, modules): -        Exception.__init__(self, "Failed to find required modules: %r" % modules) -        self.modules = modules - -def main(configuration, search_dirs, viewer_exes, libs_suffix, dump_syms_tool, viewer_symbol_file): -    print "generate_breakpad_symbols run with args: %s" % str((configuration, search_dirs, viewer_exes, libs_suffix, dump_syms_tool, viewer_symbol_file)) - -    if not re.match("release", configuration, re.IGNORECASE): -        print "skipping breakpad symbol generation for non-release build." -        return 0 - -    # split up list of viewer_exes -    # "'Second Life' SLPlugin" becomes ['Second Life', 'SLPlugin'] -    viewer_exes = shlex.split(viewer_exes) - -    found_required = dict([(module, False) for module in viewer_exes]) - -    def matches(f): -        if f in viewer_exes: -            found_required[f] = True -            return True -        return fnmatch.fnmatch(f, libs_suffix) - -    search_dirs = search_dirs.split(";") - -    def list_files(): -        for search_dir in search_dirs: -            for (dirname, subdirs, filenames) in os.walk(search_dir): -                if DEBUG: -                    print "scanning '%s' for modules..." % dirname -                for f in itertools.ifilter(matches, filenames): -                    yield os.path.join(dirname, f) - -    def dump_module(m): -        print "dumping module '%s' with '%s'..." % (m, dump_syms_tool) -        dsym_full_path = m -        child = subprocess.Popen([dump_syms_tool, dsym_full_path] , stdout=subprocess.PIPE) -        out, err = child.communicate() -        return (m,child.returncode, out, err) - -     -    modules = {} -         -    for m in list_files(): -        if DEBUG: -            print "examining module '%s' ... " % m, -        filename=os.path.basename(m) -        if -1 != m.find("DWARF"): -            # Just use this module; it has the symbols we want. -            modules[filename] = m -            if DEBUG: -                print "found dSYM entry" -        elif filename not in modules: -            # Only use this if we don't already have a (possibly better) entry. -            modules[filename] = m -            if DEBUG: -                print "found new entry" -        elif DEBUG: -            print "ignoring entry" - - -    print "Found these following modules:" -    pprint.pprint( modules ) - -    out = tarfile.open(viewer_symbol_file, 'w:bz2') -    for (filename,status,symbols,err) in itertools.imap(dump_module, modules.values()): -        if status == 0: -            module_line = symbols[:symbols.index('\n')] -            module_line = module_line.split() -            hash_id = module_line[3] -            module = ' '.join(module_line[4:]) -            if sys.platform in ['win32', 'cygwin']: -                mod_name = module[:module.rindex('.pdb')] -            else: -                mod_name = module -            symbolfile = StringIO.StringIO(symbols) -            info = tarfile.TarInfo("%(module)s/%(hash_id)s/%(mod_name)s.sym" % dict(module=module, hash_id=hash_id, mod_name=mod_name)) -            info.size = symbolfile.len -            out.addfile(info, symbolfile) -        else: -            print >>sys.stderr, "warning: failed to dump symbols for '%s': %s" % (filename, err) - -    out.close() - -    missing_modules = [m for (m,_) in -        itertools.ifilter(lambda (k,v): not v, found_required.iteritems()) -    ] -    if missing_modules: -        print >> sys.stderr, "failed to generate %s" % viewer_symbol_file -        os.remove(viewer_symbol_file) -        raise MissingModuleError(missing_modules) - -    symbols = tarfile.open(viewer_symbol_file, 'r:bz2') -    tarfile_members = symbols.getnames() -    symbols.close() - -    for required_module in viewer_exes: -        def match_module_basename(m): -            return os.path.splitext(required_module)[0].lower() \ -                   == os.path.splitext(os.path.basename(m))[0].lower() -        # there must be at least one .sym file in tarfile_members that matches -        # each required module (ignoring file extensions) -        if not any(itertools.imap(match_module_basename, tarfile_members)): -            print >> sys.stderr, "failed to find required %s in generated %s" \ -                    % (required_module, viewer_symbol_file) -            os.remove(viewer_symbol_file) -            raise MissingModuleError([required_module]) - -    print "successfully generated %s including required modules '%s'" % (viewer_symbol_file, viewer_exes) - -    return 0 - -if __name__ == "__main__": -    if len(sys.argv) != 7: -        usage() -        sys.exit(1) -    sys.exit(main(*sys.argv[1:])) - diff --git a/indra/newview/installers/darwin/apple-notarize.sh b/indra/newview/installers/darwin/apple-notarize.sh new file mode 100755 index 0000000000..00d10b222a --- /dev/null +++ b/indra/newview/installers/darwin/apple-notarize.sh @@ -0,0 +1,41 @@ +#!/bin/sh +CONFIG_FILE="$build_secrets_checkout/code-signing-osx/notarize_creds.sh" +if [ -f "$CONFIG_FILE" ]; then +    source $CONFIG_FILE +    app_file="$1" +    zip_file=${app_file/app/zip} +    ditto -c -k --keepParent "$app_file" "$zip_file" +    if [ -f "$zip_file" ]; then +        requestUUID=$(xcrun altool --notarize-app --primary-bundle-id "com.secondlife.viewer" \ +                                --username $USERNAME \ +                                --password $PASSWORD \ +                                --asc-provider $ASC_PROVIDER \ +                                --file "$zip_file" 2>&1 \ +                    | awk '/RequestUUID/ { print $NF; }') + +        echo "Apple Notarization RequestUUID: $requestUUID" + +        if [[ -n $requestUUID ]]; then +            status="in progress" +            while [[ "$status" == "in progress" ]]; do +                sleep 30 +                status=$(xcrun altool --notarization-info "$requestUUID" \ +                                            --username $USERNAME \ +                                            --password $PASSWORD 2>&1 \ +                                | awk -F ': ' '/Status:/ { print $2; }' ) +                echo "$status" +            done +            # log results +            xcrun altool --notarization-info "$requestUUID" \ +                        --username $USERNAME \ +                        --password $PASSWORD + +            if [["$status" == "success"]]; then +                xcrun stapler staple "$app_file" +            fi +        fi +        #remove temporary file +        rm "$zip_file" +    fi +fi + diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 0b2cdff36c..00752302dc 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -737,7 +737,7 @@ LLAppViewer::LLAppViewer()  	std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, "");  #endif // ! LL_BUGSPLAT  	mDumpPath = logdir; -	setMiniDumpDir(logdir); +  	setDebugFileNames(logdir);  } diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index d24cdcedc7..e2bc7716e7 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -108,7 +108,6 @@ public:  	virtual bool restoreErrorTrap() = 0; // Require platform specific override to reset error handling mechanism.  	                                     // return false if the error trap needed restoration. -	virtual void initCrashReporting(bool reportFreeze = false) = 0; // What to do with crash report?  	static void handleViewerCrash(); // Hey! The viewer crashed. Do this, soon.      void checkForCrash(); diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp index 662164af2d..862e2b45df 100644 --- a/indra/newview/llappviewermacosx.cpp +++ b/indra/newview/llappviewermacosx.cpp @@ -240,17 +240,7 @@ LLAppViewerMacOSX::~LLAppViewerMacOSX()  bool LLAppViewerMacOSX::init()  { -	bool success = LLAppViewer::init(); -     -#if LL_SEND_CRASH_REPORTS -    if (success) -    { -        LLAppViewer* pApp = LLAppViewer::instance(); -        pApp->initCrashReporting(); -    } -#endif -     -    return success; +    return LLAppViewer::init();  }  // MacOSX may add and addition command line arguement for the process serial number. @@ -367,21 +357,6 @@ bool LLAppViewerMacOSX::restoreErrorTrap()  	return reset_count == 0;  } -void LLAppViewerMacOSX::initCrashReporting(bool reportFreeze) -{ -	std::string command_str = "mac-crash-logger.app"; -     -    std::stringstream pid_str; -    pid_str <<  LLApp::getPid(); -    std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, ""); -    std::string appname = gDirUtilp->getExecutableFilename(); -    std::string str[] = { "-pid", pid_str.str(), "-dumpdir", logdir, "-procname", appname.c_str() }; -    std::vector< std::string > args( str, str + ( sizeof ( str ) /  sizeof ( std::string ) ) ); -    LL_WARNS() << "about to launch mac-crash-logger" << pid_str.str() -               << " " << logdir << " " << appname << LL_ENDL; -    launchApplication(&command_str, &args); -} -  std::string LLAppViewerMacOSX::generateSerialNumber()  {  	char serial_md5[MD5HEX_STR_SIZE];		// Flawfinder: ignore diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h index d5a80864be..b0e325a955 100644 --- a/indra/newview/llappviewermacosx.h +++ b/indra/newview/llappviewermacosx.h @@ -44,7 +44,6 @@ public:  protected:  	virtual bool restoreErrorTrap(); -	virtual void initCrashReporting(bool reportFreeze);  	std::string generateSerialNumber();  	virtual bool initParseCommandLine(LLCommandLineParser& clp); diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 9b1c0d1f8b..f0bede5321 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -603,9 +603,6 @@ bool LLAppViewerWin32::init()  #if ! defined(LL_BUGSPLAT)  #pragma message("Building without BugSplat") -	LLAppViewer* pApp = LLAppViewer::instance(); -	pApp->initCrashReporting(); -  #else // LL_BUGSPLAT  #pragma message("Building with BugSplat") @@ -817,57 +814,6 @@ bool LLAppViewerWin32::restoreErrorTrap()  	//return LLWinDebug::checkExceptionHandler();  } -void LLAppViewerWin32::initCrashReporting(bool reportFreeze) -{ -	if (isSecondInstance()) return; //BUG-5707 do not start another crash reporter for second instance. - -	const char* logger_name = "win_crash_logger.exe"; -	std::string exe_path = gDirUtilp->getExecutableDir(); -	exe_path += gDirUtilp->getDirDelimiter(); -	exe_path += logger_name; - -    std::string logdir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP, ""); -    std::string appname = gDirUtilp->getExecutableFilename(); - -	S32 slen = logdir.length() -1; -	S32 end = slen; -	while (logdir.at(end) == '/' || logdir.at(end) == '\\') end--; -	 -	if (slen !=end) -	{ -		logdir = logdir.substr(0,end+1); -	} -	//std::string arg_str = "\"" + exe_path + "\" -dumpdir \"" + logdir + "\" -procname \"" + appname + "\" -pid " + stringize(LLApp::getPid()); -	//_spawnl(_P_NOWAIT, exe_path.c_str(), arg_str.c_str(), NULL); -	std::string arg_str =  "\"" + exe_path + "\" -dumpdir \"" + logdir + "\" -procname \"" + appname + "\" -pid " + stringize(LLApp::getPid());  - -	STARTUPINFO startInfo={sizeof(startInfo)}; -	PROCESS_INFORMATION processInfo; - -	std::wstring exe_wstr; -	exe_wstr = utf8str_to_utf16str(exe_path); - -	std::wstring arg_wstr; -	arg_wstr = utf8str_to_utf16str(arg_str); - -	LL_INFOS("CrashReport") << "Creating crash reporter process " << exe_path << " with params: " << arg_str << LL_ENDL; -    if(CreateProcess(exe_wstr.c_str(),      -                     &arg_wstr[0],                 // Application arguments -                     0, -                     0, -                     FALSE, -                     CREATE_DEFAULT_ERROR_MODE, -                     0, -                     0,                              // Working directory -                     &startInfo, -                     &processInfo) == FALSE) -      // Could not start application -> call 'GetLastError()' -	{ -        LL_WARNS("CrashReport") << "CreateProcess failed " << GetLastError() << LL_ENDL; -        return; -    } -} -  //virtual  bool LLAppViewerWin32::sendURLToOtherInstance(const std::string& url)  { diff --git a/indra/newview/llappviewerwin32.h b/indra/newview/llappviewerwin32.h index c5fae6a3a3..2699224e58 100644 --- a/indra/newview/llappviewerwin32.h +++ b/indra/newview/llappviewerwin32.h @@ -51,7 +51,6 @@ protected:  	virtual bool beingDebugged();  	virtual bool restoreErrorTrap(); -	virtual void initCrashReporting(bool reportFreeze);   	virtual bool sendURLToOtherInstance(const std::string& url); diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index adac7af712..e031557b69 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -683,11 +683,6 @@ class WindowsManifest(ViewerManifest):                  self.path("libvlccore.dll")                  self.path("plugins/") -        # pull in the crash logger from other projects -        # tag:"crash-logger" here as a cue to the exporter -        self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'], -                  dst="win_crash_logger.exe") -          if not self.is_packaging_viewer():              self.package_file = "copied_deps"     @@ -1032,7 +1027,6 @@ class DarwinManifest(ViewerManifest):                                  "libapr-1.0.dylib",                                  "libaprutil-1.0.dylib",                                  "libexpat.1.dylib", -                                "libexception_handler.dylib",                                  "libGLOD.dylib",                                  # libnghttp2.dylib is a symlink to                                  # libnghttp2.major.dylib, which is a symlink to @@ -1068,21 +1062,15 @@ class DarwinManifest(ViewerManifest):                  # our apps                  executable_path = {} -                for app_bld_dir, app in (("mac_crash_logger", "mac-crash-logger.app"), -                                         # plugin launcher -                                         (os.path.join("llplugin", "slplugin"), "SLPlugin.app"), -                                         ): -                    self.path2basename(os.path.join(os.pardir, -                                                    app_bld_dir, self.args['configuration']), -                                       app) -                    executable_path[app] = \ -                        self.dst_path_of(os.path.join(app, "Contents", "MacOS")) - -                    # our apps dependencies on shared libs -                    # for each app, for each dylib we collected in dylibs, -                    # create a symlink to the real copy of the dylib. -                    with self.prefix(dst=os.path.join(app, "Contents", "Resources")): -                        for libfile in dylibs: +                self.path2basename(os.path.join(os.pardir, os.path.join("llplugin", "slplugin"), self.args['configuration']), "SLPlugin.app") +                executable_path["SLPlugin.app"] = \ +                    self.dst_path_of(os.path.join("SLPlugin.app", "Contents", "MacOS")) + +                # our apps dependencies on shared libs +                # for each app, for each dylib we collected in dylibs, +                # create a symlink to the real copy of the dylib. +                with self.prefix(dst=os.path.join("SLPlugin.app", "Contents", "Resources")): +                    for libfile in dylibs:                              self.relsymlinkf(os.path.join(libfile_parent, libfile))                  # Dullahan helper apps go inside SLPlugin.app @@ -1303,14 +1291,19 @@ class DarwinManifest(ViewerManifest):                      signed=False                      sign_attempts=3                      sign_retry_wait=15 +                    libvlc_path = app_in_dmg + "/Contents/Resources/llplugin/media_plugin_libvlc.dylib" +                    cef_path = app_in_dmg + "/Contents/Resources/llplugin/media_plugin_cef.dylib" +                    slplugin_path = app_in_dmg + "/Contents/Resources/SLPlugin.app/Contents/MacOS/SLPlugin" +                    greenlet_path = app_in_dmg + "/Contents/Resources/updater/greenlet.so"                      while (not signed) and (sign_attempts > 0):                          try: -                            sign_attempts-=1; -                            self.run_command( -                                # Note: See blurb above about names of keychains -                               ['codesign', '--verbose', '--deep', '--force', -                                '--keychain', viewer_keychain, '--sign', identity, -                                app_in_dmg]) +                            sign_attempts-=1 +                            # Note: See blurb above about names of keychains +                            self.run_command(['codesign', '--force', '--timestamp','--keychain', viewer_keychain, '--sign', identity, libvlc_path]) +                            self.run_command(['codesign', '--force', '--timestamp', '--keychain', viewer_keychain, '--sign', identity, cef_path]) +                            self.run_command(['codesign', '--force', '--timestamp', '--keychain', viewer_keychain, '--sign', identity, greenlet_path]) +                            self.run_command(['codesign', '--verbose', '--deep', '--force', '--options', 'runtime', '--keychain', viewer_keychain, '--sign', identity, slplugin_path]) +                            self.run_command(['codesign', '--verbose', '--deep', '--force', '--options', 'runtime', '--keychain', viewer_keychain, '--sign', identity, app_in_dmg])                              signed=True # if no exception was raised, the codesign worked                          except ManifestError as err:                              if sign_attempts: @@ -1321,6 +1314,7 @@ class DarwinManifest(ViewerManifest):                                  print >> sys.stderr, "Maximum codesign attempts exceeded; giving up"                                  raise                      self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg]) +                    self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg])          finally:              # Unmount the image even if exceptions from any of the above  @@ -1373,7 +1367,7 @@ class LinuxManifest(ViewerManifest):          with self.prefix(dst="bin"):              self.path("secondlife-bin","do-not-directly-run-secondlife-bin")              self.path("../linux_crash_logger/linux-crash-logger","linux-crash-logger.bin") -            self.path2basename("../llplugin/slplugin", "SLPlugin")  +            self.path2basename("../llplugin/slplugin", "SLPlugin")              #this copies over the python wrapper script, associated utilities and required libraries, see SL-321, SL-322 and SL-323              with self.prefix(src="../viewer_components/manager", dst=""):                  self.path("*.py") diff --git a/indra/win_crash_logger/CMakeLists.txt b/indra/win_crash_logger/CMakeLists.txt deleted file mode 100644 index 86aa655f03..0000000000 --- a/indra/win_crash_logger/CMakeLists.txt +++ /dev/null @@ -1,105 +0,0 @@ -# -*- cmake -*- - -project(win_crash_logger) - -include(00-Common) -include(LLCommon) -include(LLCoreHttp) -include(LLCrashLogger) -include(LLMath) -include(LLMessage) -include(LLVFS) -include(LLWindow) -include(LLXML) -include(Linking) -include(LLSharedLibs) -include(GoogleBreakpad) -include(Boost) - -include_directories( -    ${LLCOREHTTP_INCLUDE_DIRS} -    ${LLCOMMON_INCLUDE_DIRS} -    ${LLCRASHLOGGER_INCLUDE_DIRS} -    ${LLMATH_INCLUDE_DIRS} -    ${LLWINDOW_INCLUDE_DIRS} -    ${LLXML_INCLUDE_DIRS} -    ${LLVFS_INCLUDE_DIRS} -    ${BREAKPAD_INCLUDE_DIRECTORIES} -    ) -include_directories(SYSTEM -    ${LLCOMMON_SYSTEM_INCLUDE_DIRS} -    ${LLXML_SYSTEM_INCLUDE_DIRS} -    ) - -set(win_crash_logger_SOURCE_FILES -    win_crash_logger.cpp -    llcrashloggerwindows.cpp -    ) - -set(win_crash_logger_HEADER_FILES -    CMakeLists.txt - -    llcrashloggerwindows.h -    resource.h -    StdAfx.h -    win_crash_logger.h -    ) - -set_source_files_properties(${win_crash_logger_HEADER_FILES} -                            PROPERTIES HEADER_FILE_ONLY TRUE) - -set(win_crash_logger_RESOURCE_FILES -    ll_icon.ico -    ) - -set_source_files_properties(${win_crash_logger_RESOURCE_FILES} -                            PROPERTIES HEADER_FILE_ONLY TRUE) - -set(win_crash_logger_RESOURCE_FILES  -    win_crash_logger.rc -    ${win_crash_logger_RESOURCE_FILES} -    ) - -SOURCE_GROUP("Resource Files" FILES ${win_crash_logger_RESOURCE_FILES}) - -list(APPEND  -    win_crash_logger_SOURCE_FILES  -    ${win_crash_logger_HEADER_FILES}  -    ${win_crash_logger_RESOURCE_FILES} -    ) - -add_executable(windows-crash-logger WIN32 ${win_crash_logger_SOURCE_FILES}) - - -target_link_libraries(windows-crash-logger -    ${LEGACY_STDIO_LIBS} -    ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES} -    ${LLCRASHLOGGER_LIBRARIES} -    ${LLWINDOW_LIBRARIES} -    ${LLVFS_LIBRARIES} -    ${LLXML_LIBRARIES} -    ${LLMESSAGE_LIBRARIES} -    ${LLMATH_LIBRARIES} -    ${LLCOREHTTP_LIBRARIES} -    ${LLCOMMON_LIBRARIES} -    ${BOOST_CONTEXT_LIBRARY} -    ${BOOST_FIBER_LIBRARY} -    ${WINDOWS_LIBRARIES} -    dxguid -    ${GOOGLE_PERFTOOLS_LIBRARIES} -    user32 -    gdi32 -    oleaut32 -    wininet -    Wldap32 -    ) -     -if (WINDOWS) -    set_target_properties(windows-crash-logger -        PROPERTIES  -        LINK_FLAGS "/NODEFAULTLIB:LIBCMT" -        LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\"" -        ) -endif (WINDOWS) - -ll_deploy_sharedlibs_command(windows-crash-logger) diff --git a/indra/win_crash_logger/StdAfx.cpp b/indra/win_crash_logger/StdAfx.cpp deleted file mode 100644 index f56711af73..0000000000 --- a/indra/win_crash_logger/StdAfx.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/**  - * @file StdAfx.cpp - * @brief windows crash logger source file for includes - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -// stdafx.cpp : source file that includes just the standard includes -//	win_crash_logger.pch will be the pre-compiled header -//	stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/indra/win_crash_logger/StdAfx.h b/indra/win_crash_logger/StdAfx.h deleted file mode 100644 index 35976658ac..0000000000 --- a/indra/win_crash_logger/StdAfx.h +++ /dev/null @@ -1,56 +0,0 @@ -/**  - * @file StdAfx.h - * @brief standard system includes - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -// stdafx.h : include file for standard system include files, -//  or project specific include files that are used frequently, but -//      are changed infrequently -// - -#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) -#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers - -// Windows Header Files: -#include <windows.h> - -// C RunTime Header Files -#include <stdlib.h> -#include <malloc.h> -#include <memory.h> - -// Local Header Files - -// TODO: reference additional headers your program requires here - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) diff --git a/indra/win_crash_logger/ll_icon.ico b/indra/win_crash_logger/ll_icon.icoBinary files differ deleted file mode 100644 index 566346dfe3..0000000000 --- a/indra/win_crash_logger/ll_icon.ico +++ /dev/null diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp deleted file mode 100644 index 267224a79b..0000000000 --- a/indra/win_crash_logger/llcrashloggerwindows.cpp +++ /dev/null @@ -1,536 +0,0 @@ -/**  -* @file llcrashloggerwindows.cpp -* @brief Windows crash logger implementation -* -* $LicenseInfo:firstyear=2003&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, 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$ -*/ - -#include "linden_common.h" - -#include "stdafx.h" -#include "resource.h" -#include "llcrashloggerwindows.h" - -#include <sstream> - -#include "boost/tokenizer.hpp" - -#include "indra_constants.h"	// CRASH_BEHAVIOR_ASK, CRASH_SETTING_NAME -#include "llerror.h" -#include "llfile.h" -#include "lltimer.h" -#include "llstring.h" -#include "lldxhardware.h" -#include "lldir.h" -#include "llsdserialize.h" -#include "llsdutil.h" -#include "stringize.h" - -#include <client/windows/crash_generation/crash_generation_server.h> -#include <client/windows/crash_generation/client_info.h> - -#define MAX_LOADSTRING 100 -#define MAX_STRING 2048 -const char* const SETTINGS_FILE_HEADER = "version"; -const S32 SETTINGS_FILE_VERSION = 101; - -// Windows Message Handlers - -// Global Variables: -HINSTANCE hInst= NULL;					// current instance -TCHAR szTitle[MAX_LOADSTRING];				/* Flawfinder: ignore */		// The title bar text -TCHAR szWindowClass[MAX_LOADSTRING];		/* Flawfinder: ignore */		// The title bar text - -std::string gProductName; -HWND gHwndReport = NULL;	// Send/Don't Send dialog -HWND gHwndProgress = NULL;	// Progress window -HCURSOR gCursorArrow = NULL; -HCURSOR gCursorWait = NULL; -BOOL gFirstDialog = TRUE;	// Are we currently handling the Send/Don't Send dialog? -std::stringstream gDXInfo; -bool gSendLogs = false; - -LLCrashLoggerWindows* LLCrashLoggerWindows::sInstance = NULL; - -//Conversion from char* to wchar* -//Replacement for ATL macros, doesn't allocate memory -//For more info see: http://www.codeguru.com/forum/showthread.php?t=337247 -void ConvertLPCSTRToLPWSTR (const char* pCstring, WCHAR* outStr) -{ -    if (pCstring != NULL) -    { -        int nInputStrLen = strlen (pCstring); -        // Double NULL Termination -        int nOutputStrLen = MultiByteToWideChar(CP_ACP, 0, pCstring, nInputStrLen, NULL, 0) + 2; -        if (outStr) -        { -            memset (outStr, 0x00, sizeof (WCHAR)*nOutputStrLen); -            MultiByteToWideChar (CP_ACP, 0, pCstring, nInputStrLen, outStr, nInputStrLen); -        } -    } -} - -void write_debug(const char *str) -{ -	gDXInfo << str;		/* Flawfinder: ignore */ -} - -void write_debug(std::string& str) -{ -	write_debug(str.c_str()); -} - -void show_progress(const std::string& message) -{ -	std::wstring msg = wstring_to_utf16str(utf8str_to_wstring(message)); -	if (gHwndProgress) -	{ -		SendDlgItemMessage(gHwndProgress,       // handle to destination window  -							IDC_LOG, -							WM_SETTEXT,			// message to send -							FALSE,				// undo option -							(LPARAM)msg.c_str()); -	} -} - -void update_messages() -{ -	MSG msg; -	while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) -	{ -		if (msg.message == WM_QUIT) -		{ -			exit(0); -		} -		TranslateMessage(&msg); -		DispatchMessage(&msg); -	} -} - -void sleep_and_pump_messages( U32 seconds ) -{ -	const U32 CYCLES_PER_SECOND = 10; -	U32 cycles = seconds * CYCLES_PER_SECOND; -	while( cycles-- ) -	{ -		update_messages(); -		ms_sleep(1000 / CYCLES_PER_SECOND); -	} -} - -// Include product name in the window caption. -void LLCrashLoggerWindows::ProcessCaption(HWND hWnd) -{ -	TCHAR templateText[MAX_STRING];		/* Flawfinder: ignore */ -	TCHAR header[MAX_STRING]; -	std::string final; -	GetWindowText(hWnd, templateText, sizeof(templateText)); -	final = llformat(ll_convert_wide_to_string(templateText, CP_ACP).c_str(), gProductName.c_str()); -	ConvertLPCSTRToLPWSTR(final.c_str(), header); -	SetWindowText(hWnd, header); -} - - -// Include product name in the diaog item text. -void LLCrashLoggerWindows::ProcessDlgItemText(HWND hWnd, int nIDDlgItem) -{ -	TCHAR templateText[MAX_STRING];		/* Flawfinder: ignore */ -	TCHAR header[MAX_STRING]; -	std::string final; -	GetDlgItemText(hWnd, nIDDlgItem, templateText, sizeof(templateText)); -	final = llformat(ll_convert_wide_to_string(templateText, CP_ACP).c_str(), gProductName.c_str()); -	ConvertLPCSTRToLPWSTR(final.c_str(), header); -	SetDlgItemText(hWnd, nIDDlgItem, header); -} - -bool handle_button_click(WORD button_id) -{ -	// Is this something other than Send or Don't Send? -	if (button_id != IDOK -		&& button_id != IDCANCEL) -	{ -		return false; -	} - -	// We're done with this dialog. -	gFirstDialog = FALSE; - -	// Send the crash report if requested -	if (button_id == IDOK) -	{ -		gSendLogs = TRUE; -		WCHAR wbuffer[20000]; -		GetDlgItemText(gHwndReport, // handle to dialog box -						IDC_EDIT1,  // control identifier -						wbuffer, // pointer to buffer for text -						20000 // maximum size of string -						); -		std::string user_text(ll_convert_wide_to_string(wbuffer, CP_ACP)); -		// Activate and show the window. -		ShowWindow(gHwndProgress, SW_SHOW);  -		// Try doing this second to make the progress window go frontmost. -		ShowWindow(gHwndReport, SW_HIDE); -		((LLCrashLoggerWindows*)LLCrashLogger::instance())->setUserText(user_text); -		((LLCrashLoggerWindows*)LLCrashLogger::instance())->sendCrashLogs(); -	} -	// Quit the app -	LLApp::setQuitting(); -	return true; -} - - -LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) -{ -	switch( message ) -	{ -	case WM_CREATE: -		return 0; - -	case WM_COMMAND: -		if( gFirstDialog ) -		{ -			WORD button_id = LOWORD(wParam); -			bool handled = handle_button_click(button_id); -			if (handled) -			{ -				return 0; -			} -		} -		break; - -	case WM_DESTROY: -		// Closing the window cancels -		LLApp::setQuitting(); -		PostQuitMessage(0); -		return 0; -	} - -	return DefWindowProc(hwnd, message, wParam, lParam); -} - - -LLCrashLoggerWindows::LLCrashLoggerWindows(void) -{ -	if (LLCrashLoggerWindows::sInstance==NULL) -	{ -		sInstance = this;  -	} -} - -LLCrashLoggerWindows::~LLCrashLoggerWindows(void) -{ -	sInstance = NULL; -} - -bool LLCrashLoggerWindows::getMessageWithTimeout(MSG *msg, UINT to) -{ -    bool res; -	UINT_PTR timerID = SetTimer(NULL, NULL, to, NULL); -    res = GetMessage(msg, NULL, 0, 0); -    KillTimer(NULL, timerID); -    if (!res) -        return false; -    if (msg->message == WM_TIMER && msg->hwnd == NULL && msg->wParam == 1) -        return false; //TIMEOUT! You could call SetLastError() or something... -    return true; -} - -int LLCrashLoggerWindows::processingLoop() { -	const int millisecs=1000; -	int retries = 0; -	const int max_retries = 60; - -	LL_DEBUGS("CRASHREPORT") << "Entering processing loop for OOP server" << LL_ENDL; - -	LLSD options = getOptionData( LLApp::PRIORITY_COMMAND_LINE ); - -	MSG msg; -	 -	bool result; - -    while (1)  -	{ -		result = getMessageWithTimeout(&msg, millisecs); -		if ( result )  -		{ -			TranslateMessage(&msg); -			DispatchMessage(&msg); -		} - -		if ( retries < max_retries )  //Wait up to 1 minute for the viewer to say hello. -		{ -			if (mClientsConnected == 0)  -			{ -				LL_DEBUGS("CRASHREPORT") << "Waiting for client to connect." << LL_ENDL; -				++retries; -			} -			else -			{ -				LL_INFOS("CRASHREPORT") << "Client has connected!" << LL_ENDL; -				retries = max_retries; -			} -		}  -		else  -		{ -			if (mClientsConnected == 0) -			{ -				break; -			} -			if (!mKeyMaster.isProcessAlive(mPID, mProcName) ) -			{ -				break; -			} -		}  -    } -     -    LL_INFOS() << "session ending.." << LL_ENDL; -     -    std::string per_run_dir = options["dumpdir"].asString(); -	std::string per_run_file = per_run_dir + "\\SecondLife.log"; -    std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log"); - -	if (gDirUtilp->fileExists(per_run_dir))   -	{ -		LL_INFOS ("CRASHREPORT") << "Copying " << log_file << " to " << per_run_file << LL_ENDL; -	    LLFile::copy(log_file, per_run_file); -	} -	return 0; -} - - -void LLCrashLoggerWindows::OnClientConnected(void* context, -				const google_breakpad::ClientInfo* client_info)  -{ -	sInstance->mClientsConnected++; -	LL_INFOS("CRASHREPORT") << "Client connected. pid = " << client_info->pid() << " total clients " << sInstance->mClientsConnected << LL_ENDL; -} - -void LLCrashLoggerWindows::OnClientExited(void* context, -		const google_breakpad::ClientInfo* client_info)  -{ -	sInstance->mClientsConnected--; -	LL_INFOS("CRASHREPORT") << "Client disconnected. pid = " << client_info->pid() << " total clients " << sInstance->mClientsConnected << LL_ENDL; -} - - -void LLCrashLoggerWindows::OnClientDumpRequest(void* context, -	const google_breakpad::ClientInfo* client_info, -	const std::wstring* file_path)  -{ -	if (!file_path)  -	{ -		LL_WARNS() << "dump with no file path" << LL_ENDL; -		return; -	} -	if (!client_info)  -	{ -		LL_WARNS() << "dump with no client info" << LL_ENDL; -		return; -	} - -	LLCrashLoggerWindows* self = static_cast<LLCrashLoggerWindows*>(context); -	if (!self)  -	{ -		LL_WARNS() << "dump with no context" << LL_ENDL; -		return; -	} - -	//DWORD pid = client_info->pid(); -} - - -bool LLCrashLoggerWindows::initCrashServer() -{ -	//For Breakpad on Windows we need a full Out of Process service to get good data. -	//This routine starts up the service on a named pipe that the viewer will then -	//communicate with.  -	using namespace google_breakpad; - -	LLSD options = getOptionData( LLApp::PRIORITY_COMMAND_LINE ); -	std::string dump_path = options["dumpdir"].asString(); -	mClientsConnected = 0; -	mPID = options["pid"].asInteger(); -	mProcName = options["procname"].asString(); - -	//Generate a quasi-uniq name for the named pipe.  For our purposes -	//this is unique-enough with least hassle.  Worst case for duplicate name -	//is a second instance of the viewer will not do crash reporting.  -	std::wstring wpipe_name; -	wpipe_name = mCrashReportPipeStr + std::wstring(wstringize(mPID)); - -	std::wstring wdump_path(utf8str_to_utf16str(dump_path)); -		 -	//Pipe naming conventions:  http://msdn.microsoft.com/en-us/library/aa365783%28v=vs.85%29.aspx -	mCrashHandler = new CrashGenerationServer( wpipe_name, -		NULL,  - 		&LLCrashLoggerWindows::OnClientConnected, this, -		/*NULL, NULL,    */ &LLCrashLoggerWindows::OnClientDumpRequest, this, - 		&LLCrashLoggerWindows::OnClientExited, this, - 		NULL, NULL, - 		true, &wdump_path); -	 - 	if (!mCrashHandler) { -		//Failed to start the crash server. - 		LL_WARNS() << "Failed to init crash server." << LL_ENDL; -		return false;  - 	} - -	// Start servicing clients. -    if (!mCrashHandler->Start()) { -		LL_WARNS() << "Failed to start crash server." << LL_ENDL; -		return false; -	} - -	LL_INFOS("CRASHREPORT") << "Initialized OOP server with pipe named " << stringize(wpipe_name) << LL_ENDL; -	return true; -} - -bool LLCrashLoggerWindows::init(void) -{	 -	bool ok = LLCrashLogger::init(); -	if(!ok) return false; - -	initCrashServer(); - -	/* -	mbstowcs( gProductName, mProductName.c_str(), LL_ARRAY_SIZE(gProductName) ); -	gProductName[ LL_ARRY_SIZE(gProductName) - 1 ] = 0; -	swprintf(gProductName, L"Second Life");  -	*/ - -	LL_INFOS() << "Loading dialogs" << LL_ENDL; - -	// Initialize global strings -	LoadString(mhInst, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); -	LoadString(mhInst, IDC_WIN_CRASH_LOGGER, szWindowClass, MAX_LOADSTRING); - -	gCursorArrow = LoadCursor(NULL, IDC_ARROW); -	gCursorWait = LoadCursor(NULL, IDC_WAIT); - -	// Register a window class that will be used by our dialogs -	WNDCLASS wndclass; -	wndclass.style = CS_HREDRAW | CS_VREDRAW; -	wndclass.lpfnWndProc = WndProc; -	wndclass.cbClsExtra = 0; -	wndclass.cbWndExtra = DLGWINDOWEXTRA;  // Required, since this is used for dialogs! -	wndclass.hInstance = mhInst; -	wndclass.hIcon = LoadIcon(hInst, MAKEINTRESOURCE( IDI_WIN_CRASH_LOGGER ) ); -	wndclass.hCursor = gCursorArrow; -	wndclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1); -	wndclass.lpszMenuName = NULL; -	wndclass.lpszClassName = szWindowClass; -	RegisterClass( &wndclass ); -	 -	return true; -} - -void LLCrashLoggerWindows::gatherPlatformSpecificFiles() -{ -	updateApplication("Gathering hardware information. App may appear frozen."); -	// DX hardware probe blocks, so we can't cancel during it -	//Generate our dx_info.log file  -	SetCursor(gCursorWait); -	// At this point we're responsive enough the user could click the close button -	SetCursor(gCursorArrow); -	//mDebugLog["DisplayDeviceInfo"] = gDXHardware.getDisplayInfo();  //Not initialized. -} - -bool LLCrashLoggerWindows::frame() -{	 -	LL_INFOS() << "CrashSubmitBehavior is " << mCrashBehavior << LL_ENDL; - -	// Note: parent hwnd is 0 (the desktop).  No dlg proc.  See Petzold (5th ed) HexCalc example, Chapter 11, p529 -	// win_crash_logger.rc has been edited by hand. -	// Dialogs defined with CLASS "WIN_CRASH_LOGGER" (must be same as szWindowClass) -	gProductName = mProductName; -	gHwndProgress = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PROGRESS), 0, NULL); -	ProcessCaption(gHwndProgress); -	ShowWindow(gHwndProgress, SW_HIDE ); - -	if (mCrashBehavior == CRASH_BEHAVIOR_ALWAYS_SEND) -	{ -		LL_INFOS() << "Showing crash report submit progress window." << LL_ENDL; -		//ShowWindow(gHwndProgress, SW_SHOW );   Maint-5707 -		sendCrashLogs(); -	} -	else if (mCrashBehavior == CRASH_BEHAVIOR_ASK) -	{ -		gHwndReport = CreateDialog(hInst, MAKEINTRESOURCE(IDD_PREVREPORTBOX), 0, NULL); -		// Ignore result -		(void) SendDlgItemMessage(gHwndReport, IDC_CHECK_AUTO, BM_SETCHECK, 0, 0); -		// Include the product name in the caption and various dialog items. -		ProcessCaption(gHwndReport); -		ProcessDlgItemText(gHwndReport, IDC_STATIC_MSG); - -		// Update the header to include whether or not we crashed on the last run. -		std::string headerStr; -		TCHAR header[MAX_STRING]; -		if (mCrashInPreviousExec) -		{ -			headerStr = llformat("%s appears to have crashed or frozen the last time it ran.", mProductName.c_str()); -		} -		else -		{ -			headerStr = llformat("%s appears to have crashed.", mProductName.c_str()); -		} -		ConvertLPCSTRToLPWSTR(headerStr.c_str(), header); -		SetDlgItemText(gHwndReport, IDC_STATIC_HEADER, header);		 -		ShowWindow(gHwndReport, SW_SHOW ); -		 -		MSG msg; -		memset(&msg, 0, sizeof(msg)); -		while (!LLApp::isQuitting() && GetMessage(&msg, NULL, 0, 0)) -		{ -			TranslateMessage(&msg); -			DispatchMessage(&msg); -		} -		return true; // msg.wParam; -	} -	else -	{ -		LL_WARNS() << "Unknown crash behavior " << mCrashBehavior << LL_ENDL; -		return true; // 1; -	} -	return true; // 0; -} - -void LLCrashLoggerWindows::updateApplication(const std::string& message) -{ -	LLCrashLogger::updateApplication(message); -	if(!message.empty()) show_progress(message); -	update_messages(); -} - -bool LLCrashLoggerWindows::cleanup() -{ -	if(gSendLogs) -	{ -		if(mSentCrashLogs) show_progress("Done"); -		else show_progress("Could not connect to servers, logs not sent"); -		sleep_and_pump_messages(3); -	} -	PostQuitMessage(0); -	commonCleanup(); -	mKeyMaster.releaseMaster(); -	return true; -} - diff --git a/indra/win_crash_logger/llcrashloggerwindows.h b/indra/win_crash_logger/llcrashloggerwindows.h deleted file mode 100644 index f89b8708dc..0000000000 --- a/indra/win_crash_logger/llcrashloggerwindows.h +++ /dev/null @@ -1,86 +0,0 @@ -/**  -* @file llcrashloggerwindows.h -* @brief Windows crash logger definition -* -* $LicenseInfo:firstyear=2003&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, 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$ -*/ - -#ifndef LLCRASHLOGGERWINDOWS_H -#define LLCRASHLOGGERWINDOWS_H - -#include "llcrashlogger.h" -#include "windows.h" -#include "llstring.h" - -class LLSD; - -namespace google_breakpad { -	class CrashGenerationServer;  -	class ClientInfo; -} - -class LLCrashLoggerWindows : public LLCrashLogger -{ -public: -	LLCrashLoggerWindows(void); -	~LLCrashLoggerWindows(void); -	static LLCrashLoggerWindows* sInstance;  - -	virtual bool init(); -	virtual bool frame(); -	virtual void updateApplication(const std::string& message = LLStringUtil::null); -	virtual bool cleanup(); -	virtual void gatherPlatformSpecificFiles(); -	void setHandle(HINSTANCE hInst) { mhInst = hInst; } -    int clients_connected() const { -        return mClientsConnected; -    } -	bool getMessageWithTimeout(MSG *msg, UINT to); -     -    // Starts the processing loop. This function does not return unless the -    // user is logging off or the user closes the crash service window. The -    // return value is a good number to pass in ExitProcess(). -    int processingLoop(); -private: -	void ProcessDlgItemText(HWND hWnd, int nIDDlgItem); -	void ProcessCaption(HWND hWnd); -	bool initCrashServer(); -	google_breakpad::CrashGenerationServer* mCrashHandler; -	static void OnClientConnected(void* context, - 					const google_breakpad::ClientInfo* client_info); - 	 - 	static void OnClientDumpRequest( - 					void* context, - 					const google_breakpad::ClientInfo* client_info, - 					const std::wstring* file_path); - 	 - 	static void OnClientExited(void* context, -		 			const google_breakpad::ClientInfo* client_info); -    int mClientsConnected; -	int mPID; -	std::string mProcName; -     -	HINSTANCE mhInst; - -}; - -#endif diff --git a/indra/win_crash_logger/resource.h b/indra/win_crash_logger/resource.h deleted file mode 100644 index 37a387275e..0000000000 --- a/indra/win_crash_logger/resource.h +++ /dev/null @@ -1,63 +0,0 @@ -/**  -* @file resource.h -* @brief Windows crash logger windows resources -* -* $LicenseInfo:firstyear=2003&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2010, 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$ -*/ - -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by win_crash_logger.rc -// -#define IDC_MYICON                      2 -#define IDD_REPORT                      9 -#define IDD_WIN_CRASH_LOGGER_DIALOG     102 -#define IDD_ABOUTBOX                    103 -#define IDS_APP_TITLE                   103 -#define IDM_ABOUT                       104 -#define IDM_EXIT                        105 -#define IDS_HELLO                       106 -#define IDI_WIN_CRASH_LOGGER            107 -#define IDI_SMALL                       108 -#define IDC_WIN_CRASH_LOGGER            109 -#define IDR_MAINFRAME                   128 -#define IDD_PROGRESS                    129 -#define IDD_PREVREPORTBOX               130 -#define IDC_EDIT1                       1000 -#define IDC_LOG                         1004 -#define IDC_CHECK_AUTO                  1006 -#define IDC_STATIC_HEADER               1007 -#define IDC_STATIC_WHATINFO             1008 -#define IDC_STATIC_MOTIVATION           1009 -#define IDC_STATIC_MSG                  1010 -#define IDC_STATIC                      -1 - -// Next default values for new objects -//  -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE        131 -#define _APS_NEXT_COMMAND_VALUE         32771 -#define _APS_NEXT_CONTROL_VALUE         1011 -#define _APS_NEXT_SYMED_VALUE           110 -#endif -#endif diff --git a/indra/win_crash_logger/win_crash_logger.cpp b/indra/win_crash_logger/win_crash_logger.cpp deleted file mode 100644 index 58746eba02..0000000000 --- a/indra/win_crash_logger/win_crash_logger.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/**  - * @file win_crash_logger.cpp - * @brief Windows crash logger implementation - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - -#include "linden_common.h" -#include "stdafx.h" -#include <stdlib.h> -#include "llcrashloggerwindows.h" - -#ifdef _UNICODE -int APIENTRY wWinMain(HINSTANCE hInstance, -                      HINSTANCE hPrevInstance, -                      LPWSTR    lpCmdLine, -                      int       nCmdShow) -#else -int APIENTRY WinMain(HINSTANCE hInstance, -                     HINSTANCE hPrevInstance, -                     LPSTR     lpCmdLine, -                     int       nCmdShow) -#endif //_UNICODE -{ -	LL_INFOS() << "Starting crash reporter with args" << &lpCmdLine << LL_ENDL; -	LLCrashLoggerWindows app; -	app.setHandle(hInstance); -#ifdef _UNICODE -	app.parseCommandOptions(__argc, __wargv); -#else -	app.parseCommandOptions(__argc, __argv); -#endif //_UNICODE - -	LLSD options = LLApp::instance()->getOptionData( -                   LLApp::PRIORITY_COMMAND_LINE); -    if (!(options.has("pid") && options.has("dumpdir"))) -    { -        LL_WARNS() << "Insufficient parameters to crash report." << LL_ENDL;  -    } -	if (! app.init()) -	{ -		LL_WARNS() << "Unable to initialize application." << LL_ENDL; -		return -1; -	} - -	app.processingLoop(); -	app.frame(); -	app.cleanup(); -	LL_INFOS() << "Crash reporter finished normally." << LL_ENDL; -	return 0; -} diff --git a/indra/win_crash_logger/win_crash_logger.h b/indra/win_crash_logger/win_crash_logger.h deleted file mode 100644 index 2cc2cf3dcf..0000000000 --- a/indra/win_crash_logger/win_crash_logger.h +++ /dev/null @@ -1,38 +0,0 @@ -/**  - * @file win_crash_logger.h - * @brief Windows crash logger project includes - * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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$ - */ - - -#if !defined(AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_) -#define AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include "resource.h" - - -#endif // !defined(AFX_WIN_CRASH_LOGGER_H__79802F4B_7C37_4F63_A2BB_0768788C3A27__INCLUDED_) diff --git a/indra/win_crash_logger/win_crash_logger.ico b/indra/win_crash_logger/win_crash_logger.icoBinary files differ deleted file mode 100644 index 386883523b..0000000000 --- a/indra/win_crash_logger/win_crash_logger.ico +++ /dev/null diff --git a/indra/win_crash_logger/win_crash_logger.rc b/indra/win_crash_logger/win_crash_logger.rc deleted file mode 100755 index 2819722f63..0000000000 --- a/indra/win_crash_logger/win_crash_logger.rc +++ /dev/null @@ -1,188 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -#include "resource.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_WIN_CRASH_LOGGER    ICON                    "ll_icon.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDC_WIN_CRASH_LOGGER MENU  -BEGIN -    POPUP "&File" -    BEGIN -        MENUITEM "E&xit",                       IDM_EXIT -    END -    POPUP "&Help" -    BEGIN -        MENUITEM "&About ...",                  IDM_ABOUT -    END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_PROGRESS DIALOGEX 100, 100, 234, 33 -STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU -CAPTION "%s Crash Logger" -CLASS "WIN_CRASH_LOGGER" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN -    LTEXT           "Static",IDC_LOG,7,7,220,8 -END - -IDD_REPORT DIALOGEX 100, 100, 297, 125 -STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU -CAPTION "%s Crash Logger" -CLASS "WIN_CRASH_LOGGER" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN -    DEFPUSHBUTTON   "Send",IDOK,198,104,45,15,WS_GROUP -    PUSHBUTTON      "Don't Send",IDCANCEL,247,104,45,15,WS_GROUP -    LTEXT           "%s appears to have crashed.",IDC_STATIC_HEADER,4,4,288,14 -    LTEXT           "This crash reporter collects information about your computer's hardware, operating system, and some %s logs, which are used for debugging purposes only.",IDC_STATIC_WHATINFO,4,23,288,19,NOT WS_GROUP -    CONTROL         "Remember this choice",IDC_CHECK_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,106,89,13 -    LTEXT           "Sending crash reports is the best way to help us improve the quality of %s.",IDC_STATIC_MOTIVATION,4,43,288,8 -    LTEXT           "If you continue to experience this problem, please try:",IDC_STATIC,4,57,251,8 -    LTEXT           "- Contacting support by visiting http://www.secondlife.com/support",IDC_STATIC,4,67,231,8 -END - -IDD_PREVREPORTBOX DIALOGEX 100, 100, 232, 213 -STYLE DS_SETFONT | DS_SETFOREGROUND | WS_CAPTION | WS_SYSMENU -CAPTION "%s Crash Logger" -CLASS "WIN_CRASH_LOGGER" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN -    DEFPUSHBUTTON   "Send Report",IDOK,131,193,45,15,WS_GROUP -    EDITTEXT        IDC_EDIT1,3,100,223,89,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL -    PUSHBUTTON      "Don't Send",IDCANCEL,181,193,45,15,WS_GROUP -    LTEXT           "%s appears to have crashed or frozen the last time it ran.",IDC_STATIC_HEADER,4,4,214,8 -    LTEXT           "This crash reporter collects information about your computer's",IDC_STATIC,4,17,201,8 -    LTEXT           "hardware configuration, operating system, and some %s",IDC_STATIC_MSG,4,25,212,8 -    LTEXT           "logs, all of which are used for debugging purposes only.",IDC_STATIC,4,33,210,8 -    LTEXT           "In the space below, please briefly describe what you were doing",IDC_STATIC,3,48,208,8 -    LTEXT           "or trying to do just prior to the crash.",IDC_STATIC,3,56,204,8 -    LTEXT           "If you don't wish to send Linden Lab a crash report, press Don't Send.",IDC_STATIC,3,90,223,8 -    LTEXT           "This report is NOT read by customer support.  If you have billing or",IDC_STATIC,3,68,208,8 -    LTEXT           "other questions, please go to: www.secondlife.com/support",IDC_STATIC,3,76,206,8 -    CONTROL         "Remember this choice",IDC_CHECK_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,193,89,13 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE  -BEGIN -    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" -    "#include ""windows.h""\r\n" -    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" -    "#include ""resource.h""\r\n" -    "\0" -END - -3 TEXTINCLUDE  -BEGIN -    "\r\n" -    "\0" -END - -1 TEXTINCLUDE  -BEGIN -    "resource.h\0" -END - -#endif    // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO  -BEGIN -    IDD_PROGRESS, DIALOG -    BEGIN -        LEFTMARGIN, 7 -        RIGHTMARGIN, 227 -        TOPMARGIN, 7 -        BOTTOMMARGIN, 26 -    END - -    IDD_REPORT, DIALOG -    BEGIN -        RIGHTMARGIN, 292 -        VERTGUIDE, 4 -        BOTTOMMARGIN, 119 -        HORZGUIDE, 4 -    END -END -#endif    // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE  -BEGIN -    IDS_APP_TITLE           "win_crash_logger" -    IDS_HELLO               "Hello World!" -    IDC_WIN_CRASH_LOGGER    "WIN_CRASH_LOGGER" -END - -#endif    // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif    // not APSTUDIO_INVOKED - | 
