From 0a745b47880fb16b1db8cd3327377a383dbfe6a8 Mon Sep 17 00:00:00 2001
From: Andrey Lihatskiy <alihatskiy@productengine.com>
Date: Tue, 8 Jun 2021 05:06:21 +0300
Subject: [PATCH] Revert "Merge branch 'DRTVWR-520-apple-notarization' into
 DRTVWR-540-maint"

This reverts commit 681298dd726b2d00910fe71646147fadd1aba980, reversing
changes made to 323f41f4892248762fc8505d8df17d70bd833cf3.
---
 autobuild.xml                                 |  372 +-
 indra/CMakeLists.txt                          |    6 +
 indra/cmake/CEFPlugin.cmake                   |    4 +-
 indra/cmake/CMakeLists.txt                    |    2 +
 indra/cmake/Copy3rdPartyLibs.cmake            |   12 +-
 indra/cmake/FindGoogleBreakpad.cmake          |   40 +
 indra/cmake/GoogleBreakpad.cmake              |   22 +
 indra/cmake/OpenSSL.cmake                     |    2 +-
 indra/llcommon/CMakeLists.txt                 |    3 +
 indra/llcommon/llapp.cpp                      |  243 +-
 indra/llcommon/llapp.h                        |    8 +
 indra/llcorehttp/CMakeLists.txt               |    1 +
 indra/llcorehttp/httpcommon.cpp               |   55 +
 indra/llmessage/llblowfishcipher.cpp          |   28 +-
 indra/llplugin/llpluginprocessparent.cpp      |    6 +-
 indra/mac_crash_logger/CMakeLists.txt         |   95 +
 indra/mac_crash_logger/CrashReporter.nib      |  Bin 0 -> 32286 bytes
 indra/mac_crash_logger/CrashReporter.xib      | 3895 +++++++++++++++++
 indra/mac_crash_logger/Info.plist             |   28 +
 indra/mac_crash_logger/llcrashloggermac.cpp   |   91 +
 indra/mac_crash_logger/llcrashloggermac.h     |   45 +
 .../llcrashloggermacdelegate.h                |   52 +
 .../llcrashloggermacdelegate.mm               |   75 +
 indra/mac_crash_logger/mac_crash_logger.cpp   |   58 +
 .../libvlc/media_plugin_libvlc.cpp            |    5 -
 indra/newview/CMakeLists.txt                  |   72 +-
 indra/newview/generate_breakpad_symbols.py    |  166 +
 .../installers/darwin/apple-notarize.sh       |   44 -
 indra/newview/llappviewer.cpp                 |    2 +-
 indra/newview/llappviewer.h                   |    1 +
 indra/newview/llappviewermacosx.cpp           |   27 +-
 indra/newview/llappviewermacosx.h             |    1 +
 indra/newview/llappviewerwin32.cpp            |   54 +
 indra/newview/llappviewerwin32.h              |    1 +
 indra/newview/llsecapi.h                      |    2 +-
 indra/newview/llsechandler_basic.cpp          |   48 +-
 indra/newview/llsechandler_basic.h            |    4 +-
 indra/newview/tests/llsecapi_test.cpp         |    2 +-
 .../newview/tests/llsechandler_basic_test.cpp |   32 +-
 indra/newview/viewer_manifest.py              |   60 +-
 indra/win_crash_logger/CMakeLists.txt         |  105 +
 indra/win_crash_logger/StdAfx.cpp             |   34 +
 indra/win_crash_logger/StdAfx.h               |   56 +
 indra/win_crash_logger/ll_icon.ico            |  Bin 0 -> 2238 bytes
 .../win_crash_logger/llcrashloggerwindows.cpp |  536 +++
 indra/win_crash_logger/llcrashloggerwindows.h |   86 +
 indra/win_crash_logger/resource.h             |   63 +
 indra/win_crash_logger/win_crash_logger.cpp   |   70 +
 indra/win_crash_logger/win_crash_logger.h     |   38 +
 indra/win_crash_logger/win_crash_logger.ico   |  Bin 0 -> 1078 bytes
 indra/win_crash_logger/win_crash_logger.rc    |  188 +
 51 files changed, 6525 insertions(+), 315 deletions(-)
 create mode 100644 indra/cmake/FindGoogleBreakpad.cmake
 create mode 100644 indra/cmake/GoogleBreakpad.cmake
 create mode 100644 indra/mac_crash_logger/CMakeLists.txt
 create mode 100755 indra/mac_crash_logger/CrashReporter.nib
 create mode 100755 indra/mac_crash_logger/CrashReporter.xib
 create mode 100644 indra/mac_crash_logger/Info.plist
 create mode 100644 indra/mac_crash_logger/llcrashloggermac.cpp
 create mode 100644 indra/mac_crash_logger/llcrashloggermac.h
 create mode 100644 indra/mac_crash_logger/llcrashloggermacdelegate.h
 create mode 100644 indra/mac_crash_logger/llcrashloggermacdelegate.mm
 create mode 100644 indra/mac_crash_logger/mac_crash_logger.cpp
 create mode 100755 indra/newview/generate_breakpad_symbols.py
 delete mode 100755 indra/newview/installers/darwin/apple-notarize.sh
 create mode 100644 indra/win_crash_logger/CMakeLists.txt
 create mode 100644 indra/win_crash_logger/StdAfx.cpp
 create mode 100644 indra/win_crash_logger/StdAfx.h
 create mode 100644 indra/win_crash_logger/ll_icon.ico
 create mode 100644 indra/win_crash_logger/llcrashloggerwindows.cpp
 create mode 100644 indra/win_crash_logger/llcrashloggerwindows.h
 create mode 100644 indra/win_crash_logger/resource.h
 create mode 100644 indra/win_crash_logger/win_crash_logger.cpp
 create mode 100644 indra/win_crash_logger/win_crash_logger.h
 create mode 100644 indra/win_crash_logger/win_crash_logger.ico
 create mode 100755 indra/win_crash_logger/win_crash_logger.rc

diff --git a/autobuild.xml b/autobuild.xml
index fc7226c3461..2470b2e5aa6 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -76,9 +76,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>b6357ef3a0ec37877a5831820f25094e</string>
+              <string>9b8bcc3be6dbe40a04c9c81c313f70dc</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80557/759704/apr_suite-1.4.5.558565-darwin64-558565.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/68333/658209/apr_suite-1.4.5.548882-darwin64-548882.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -112,9 +112,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>cb48ac069440f6dcd564cfa9fd02a4c2</string>
+              <string>6bdf460c18ee004b41a46afc80041a92</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80556/759710/apr_suite-1.4.5.558565-windows-558565.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/68334/658225/apr_suite-1.4.5.548882-windows-548882.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -124,16 +124,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>646dc3828d9c39fb1e77c4eec44ed739</string>
+              <string>83104bfa4dabb77cd70d185e38a95b49</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80555/759709/apr_suite-1.4.5.558565-windows64-558565.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/68332/658215/apr_suite-1.4.5.548882-windows64-548882.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.4.5.558565</string>
+        <string>1.4.5.548882</string>
       </map>
       <key>boost</key>
       <map>
@@ -166,9 +166,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>35cc090d942b85c9126ceac9912d52d6</string>
+              <string>3cc73623c9a976b4f8346a3837f7a916</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78585/744021/boost-1.72-darwin64-557045.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64088/601256/boost-1.72-darwin64-545361.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -202,9 +202,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>9aa4ce32df5f5e36124c990e2d77b885</string>
+              <string>7d4b2511976449e9a4ec7be41dc8310f</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78586/743982/boost-1.72-windows-557045.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64092/601270/boost-1.72-windows-545361.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -214,9 +214,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>a79511c9d8b956767ebaa405155d4238</string>
+              <string>4ad8df0700745201cddf6b71d7b0949f</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78584/743961/boost-1.72-windows64-557045.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64091/601265/boost-1.72-windows64-545361.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -308,9 +308,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>1d063cf1783e7788f17486c234adb1db</string>
+              <string>02e6a8207dcdaf243dcb6da19b8c3534</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78635/744249/colladadom-2.3.557064-darwin64-557064.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64099/601302/colladadom-2.3.545362-darwin64-545362.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -344,9 +344,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>e78ecf919eee01567556787c3a358d15</string>
+              <string>8a02a10fc69c8f504dc5335644db184a</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78637/744269/colladadom-2.3.557064-windows-557064.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64104/601313/colladadom-2.3.545362-windows-545362.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -356,16 +356,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>7e63a212c8909a25236138422fe01298</string>
+              <string>742180324fca7ab92b6a61a36aab4f9d</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78636/744273/colladadom-2.3.557064-windows64-557064.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64103/601314/colladadom-2.3.545362-windows64-545362.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>2.3.557064</string>
+        <string>2.3.545362</string>
       </map>
       <key>curl</key>
       <map>
@@ -398,9 +398,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>13f74f43a6363ec998569f731fd869c5</string>
+              <string>f5ae57117a6518d11f49ccfbfbe0969d</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82637/774617/curl-7.54.1.560191-darwin64-560191.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64131/601402/curl-7.54.1.545369-darwin64-545369.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -434,11 +434,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>0df99bd685dc3561ca8ea347b2921987</string>
+              <string>2796ae7b09e730a55ac03f74ed669520</string>
               <key>hash_algorithm</key>
               <string>md5</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82639/774610/curl-7.54.1.560191-windows-560191.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64130/601396/curl-7.54.1.545369-windows-545369.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -448,16 +448,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>50db2a9e6b74ec4b0c38b1ea8f135735</string>
+              <string>a8f96e5cdb8128b23d49ff4c3f2233a4</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82638/774608/curl-7.54.1.560191-windows64-560191.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64129/601382/curl-7.54.1.545369-windows64-545369.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>7.54.1.560191</string>
+        <string>7.54.1.545369</string>
       </map>
       <key>db</key>
       <map>
@@ -580,9 +580,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>77d2bc0c26c5047ac9f8126f8fa5aa0f</string>
+              <string>856ba0e5b7be4bf683cf2849bce845e0</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80680/760744/dullahan-1.7.0.202104220619_81.3.10_gb223419_chromium-81.0.4044.138-darwin64-558653.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72458/699860/dullahan-1.7.0.202011160759_81.3.10_gb223419_chromium-81.0.4044.138-darwin64-552313.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -592,9 +592,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6a110e6b902617bab404b259110824bc</string>
+              <string>515950c911a53ff910b18c7c417ea984</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80683/760762/dullahan-1.7.0.202104220629_81.3.10_gb223419_chromium-81.0.4044.138-windows-558653.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72460/699870/dullahan-1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138-windows-552313.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -604,16 +604,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>3826abcf9dd5a2b137aa69f4a2a881d1</string>
+              <string>f1dccbdfe0603f488eeee4c8f518c959</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80684/760763/dullahan-1.7.0.202104220629_81.3.10_gb223419_chromium-81.0.4044.138-windows64-558653.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/72459/699874/dullahan-1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138-windows64-552313.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.7.0.202104220629_81.3.10_gb223419_chromium-81.0.4044.138</string>
+        <string>1.7.0.202011161603_81.3.10_gb223419_chromium-81.0.4044.138</string>
       </map>
       <key>elfio</key>
       <map>
@@ -670,9 +670,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>f4e80e0dfcab713a3da90cd8f7f23e7b</string>
+              <string>3656b7f7b655cb267fd94f089d2e145c</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76341/727265/expat-2.1.1.555519-darwin64-555519.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54860/510198/expat-2.1.1.538990-darwin64-538990.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -706,9 +706,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>cd4fe03473076c324d80ae3bd91a85bb</string>
+              <string>c509f8afa1e02f4c16232cce7f6855f8</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76343/727273/expat-2.1.1.555519-windows-555519.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55056/512080/expat-2.1.1.538990-windows-538990.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -718,16 +718,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>d2d74d73b914150982b1883a3b96e60b</string>
+              <string>aba97cfdf44c04dbfcac89c7cb472580</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76344/727279/expat-2.1.1.555519-windows64-555519.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55054/512068/expat-2.1.1.538990-windows64-538990.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>2.1.1.555519</string>
+        <string>2.1.1.538990</string>
       </map>
       <key>fmodstudio</key>
       <map>
@@ -748,9 +748,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>d5528538e67c710387ae0c061a90cb23</string>
+              <string>89c37441a806ed80c0102d380eec6fd0</string>
               <key>url</key>
-              <string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76868/730756/fmodstudio-2.01.07.555883-darwin64-555883.tar.bz2</string>
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65400/612632/fmodstudio-2.00.11.546392-darwin64-546392.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -784,9 +784,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>a2bb6eaf51f933993b26a5fe7503a761</string>
+              <string>0f44323b0d03b7d0d8a17eec83e103ce</string>
               <key>url</key>
-              <string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76869/730763/fmodstudio-2.01.07.555883-windows-555883.tar.bz2</string>
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65401/612647/fmodstudio-2.00.11.546392-windows-546392.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -796,16 +796,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>138d07dd516a9ad5b9787192fe6134dd</string>
+              <string>462d28eacf731a5d36ab031e7071c32a</string>
               <key>url</key>
-              <string>https://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/76867/730751/fmodstudio-2.01.07.555883-windows64-555883.tar.bz2</string>
+              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/65402/612648/fmodstudio-2.00.11.546392-windows64-546392.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>2.01.07.555883</string>
+        <string>2.00.11.546392</string>
       </map>
       <key>fontconfig</key>
       <map>
@@ -880,9 +880,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>3a478d6c8a10d49d9161ef864394b03c</string>
+              <string>81a2e9aca3e33c4eecf0081854540b07</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78592/744013/freetype-2.4.4.557047-darwin64-557047.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56309/526711/freetype-2.4.4.539865-darwin64-539865.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -916,9 +916,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>7ee200d6b5fa282c7f973ade5615aa86</string>
+              <string>1d1c7b60f71a5152ced60bee87f5bba8</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78594/744011/freetype-2.4.4.557047-windows-557047.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56312/526734/freetype-2.4.4.539865-windows-539865.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -928,16 +928,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>69307aaba16ac71531c9c4d930ace993</string>
+              <string>53e78d4a607e959637e98a82a3cf5bea</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78593/744010/freetype-2.4.4.557047-windows64-557047.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56310/526723/freetype-2.4.4.539865-windows64-539865.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>2.4.4.557047</string>
+        <string>2.4.4.539865</string>
       </map>
       <key>glext</key>
       <map>
@@ -1078,9 +1078,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>a9eaa005ff9d387f946283fbcb69b3c8</string>
+              <string>343913fe1434da228c2210c23d2e3a1a</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76353/727324/glod-1.0pre3.555522-darwin64-555522.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54850/510134/glod-1.0pre3.538980-darwin64-538980.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1139,7 +1139,97 @@
           </map>
         </map>
         <key>version</key>
-        <string>1.0pre3.555522</string>
+        <string>1.0pre3.538980</string>
+      </map>
+      <key>google_breakpad</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2006, Google Inc.</string>
+        <key>description</key>
+        <string>Breakpad is a crossplatform library for capturing crash callstacks and runtime data.</string>
+        <key>license</key>
+        <string>bsd</string>
+        <key>license_file</key>
+        <string>LICENSES/google_breakpad.txt</string>
+        <key>name</key>
+        <string>google_breakpad</string>
+        <key>platforms</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>171b39db6d0702535b41fad5b476e39d</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/google-breakpad_3p-update-google-breakpad/rev/298033/arch/Darwin/installer/google_breakpad-1413.298033-darwin-298033.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>darwin</string>
+          </map>
+          <key>darwin64</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>ca33f234aae399b9e704e262f7e15d35</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56338/526869/google_breakpad-1413.539880-darwin64-539880.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>darwin64</string>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>352e673897e8f36f8470150b8ace6ce9</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-google-breakpad/rev/314225/arch/Linux/installer/google_breakpad-1413.314225-linux-314225.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>linux</string>
+          </map>
+          <key>linux64</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>6bddcc1ac470dd5eab459220102df9e9</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1835/4114/google_breakpad-1413.501824-linux64-501824.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>linux64</string>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>bfee0438617f57f02f7e8515a801cb20</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56359/526982/google_breakpad-1413.539880-windows-539880.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>windows</string>
+          </map>
+          <key>windows64</key>
+          <map>
+            <key>archive</key>
+            <map>
+              <key>hash</key>
+              <string>6f983e754bb3046f065806b510b408c5</string>
+              <key>url</key>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56358/526975/google_breakpad-1413.539880-windows64-539880.tar.bz2</string>
+            </map>
+            <key>name</key>
+            <string>windows64</string>
+          </map>
+        </map>
+        <key>version</key>
+        <string>1413.539880</string>
       </map>
       <key>googlemock</key>
       <map>
@@ -1172,9 +1262,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>19e925604bc1a91efb4b130e1edd8bf2</string>
+              <string>f9831360ced94943ab9dfb3fbf5256d3</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78620/744140/googlemock-1.7.0.557057-darwin64-557057.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64101/601290/googlemock-1.7.0.545363-darwin64-545363.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1208,9 +1298,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>eed7b41d0d1f41b24f315349ef78c728</string>
+              <string>8149e46b4f7abb3ac284415cfe1366e1</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78622/744148/googlemock-1.7.0.557057-windows-557057.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64102/601296/googlemock-1.7.0.545363-windows-545363.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -1220,16 +1310,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>a6ad6fe722d2fe4e8137495af3f374c9</string>
+              <string>f3851eba809ead2810d702041569d36d</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78621/744152/googlemock-1.7.0.557057-windows64-557057.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64100/601284/googlemock-1.7.0.545363-windows64-545363.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.7.0.557057</string>
+        <string>1.7.0.545363</string>
       </map>
       <key>gstreamer</key>
       <map>
@@ -1702,9 +1792,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>2021ea3a19b81c82993e733709683303</string>
+              <string>c327e6d6573fc0a808677de47f08acd9</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76371/727419/libhunspell-1.3.2.555528-darwin64-555528.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54844/510092/libhunspell-1.3.2.538974-darwin64-538974.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1738,9 +1828,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>2253ec09136cc7c208481030d78d9dd7</string>
+              <string>ec22ec25160bcfd2a74f1c7bc8ff6133</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76369/727412/libhunspell-1.3.2.555528-windows-555528.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54986/511824/libhunspell-1.3.2.538974-windows-538974.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -1750,16 +1840,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>858d1708f6b3a74738a3d57a5387e20f</string>
+              <string>f470c6f3f7b0559e95e76467b808de10</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76370/727413/libhunspell-1.3.2.555528-windows64-555528.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54985/511817/libhunspell-1.3.2.538974-windows64-538974.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.3.2.555528</string>
+        <string>1.3.2.538974</string>
       </map>
       <key>libndofdev</key>
       <map>
@@ -1792,9 +1882,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>a487fff84208a45844602c4a1f68c974</string>
+              <string>bf765dfe0b928ef3c531cd9618fee89b</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76356/727333/libndofdev-0.1.555523-darwin64-555523.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54843/510085/libndofdev-0.1.538973-darwin64-538973.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1804,9 +1894,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>4c839555bf0ed9ae60ffc3f8a7c96f9b</string>
+              <string>8abb7d216535009f6c0a7e43b0734b1e</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76354/727340/libndofdev-0.1.555523-windows-555523.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54984/511810/libndofdev-0.1.538973-windows-538973.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -1816,16 +1906,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>cbc033ae3b034b992b59f6de1034247c</string>
+              <string>9da7aed5a914174dcb2be12ecd4a656f</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76355/727341/libndofdev-0.1.555523-windows64-555523.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54983/511803/libndofdev-0.1.538973-windows64-538973.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>0.1.555523</string>
+        <string>0.1.538973</string>
       </map>
       <key>libpng</key>
       <map>
@@ -1858,9 +1948,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>2a41acc3116ce19a443873216cb882ad</string>
+              <string>0932b19bb6a8e2641706afd13d92951d</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78587/743948/libpng-1.6.8.557046-darwin64-557046.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56313/526740/libpng-1.6.8.539868-darwin64-539868.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -1894,9 +1984,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>b935b440947f63c69700bdcf5095a8e1</string>
+              <string>f498782698428888113b64a7505c8f7f</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78591/743970/libpng-1.6.8.557046-windows-557046.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56319/526770/libpng-1.6.8.539868-windows-539868.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -1906,16 +1996,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>d1cc8354ac4e877eefedf16b1be3aac6</string>
+              <string>f8ac4f690a2925418866bccf6eba3cf4</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78589/743991/libpng-1.6.8.557046-windows64-557046.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56317/526762/libpng-1.6.8.539868-windows64-539868.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.6.8.557046</string>
+        <string>1.6.8.539868</string>
       </map>
       <key>libuuid</key>
       <map>
@@ -1990,9 +2080,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6677173bbbb0ea32369b5e9b6c9aa641</string>
+              <string>0706b9c3889d767af9f5105d9ffa9b51</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78631/744225/libxml2-2.9.4.557062-darwin64-557062.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56327/526819/libxml2-2.9.4.539866-darwin64-539866.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -2026,9 +2116,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>ad6a596fbf0e83a21d95762da78437bc</string>
+              <string>1b7b979a8387fbb0f278dc681558b9ef</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78633/744239/libxml2-2.9.4.557062-windows-557062.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56316/526755/libxml2-2.9.4.539866-windows-539866.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -2038,16 +2128,16 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6b5bb230684ecf28386d7c91c47bb6e1</string>
+              <string>4f8ff97d6a9ab350306b62eec8adc810</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78634/744240/libxml2-2.9.4.557062-windows64-557062.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56314/526748/libxml2-2.9.4.539866-windows64-539866.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>2.9.4.557062</string>
+        <string>2.9.4.539866</string>
       </map>
       <key>llappearance_utility</key>
       <map>
@@ -2324,9 +2414,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>e4f784d8a035c51921a1562ca7a1bab6</string>
+              <string>937ce1a2158c0cfff37f5989f5b24aba</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76357/727350/nghttp2-1.40.0.555524-darwin64-555524.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64066/601156/nghttp2-1.40.0.545354-darwin64-545354.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -2360,9 +2450,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>af05aa2994c9845308fecd094b7b2d25</string>
+              <string>138b881bdf37dff4e626e022a50dd11f</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76359/727360/nghttp2-1.40.0.555524-windows-555524.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64069/601181/nghttp2-1.40.0.545354-windows-545354.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -2372,9 +2462,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>5a55cede40eef16b9d1e47c418a2b77a</string>
+              <string>c23c6480c7cbea60a2bd26e257adc0a7</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76358/727359/nghttp2-1.40.0.555524-windows64-555524.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/64068/601177/nghttp2-1.40.0.545354-windows64-545354.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -2383,7 +2473,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
         <key>source_type</key>
         <string>hg</string>
         <key>version</key>
-        <string>1.40.0.555524</string>
+        <string>1.40.0.545354</string>
       </map>
       <key>nvapi</key>
       <map>
@@ -2738,9 +2828,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>5503e4928bcdb0a29685b3242c4a409b</string>
+              <string>18aef0c8fc471b6539addbdc019aea25</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82619/774464/openssl-1.1.1l.560177-darwin64-560177.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56325/526804/openssl-1.0.2l.539874-darwin64-539874.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -2774,9 +2864,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>d2153f20dc2d35c609b876a9f019a748</string>
+              <string>2b2f61313b1cbd2893c1ba5bf15061fa</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82623/774521/openssl-1.1.1l.560177-windows-560177.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56328/526826/openssl-1.0.2l.539874-windows-539874.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -2786,16 +2876,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>f40b8622ba38084b0962e273988d748f</string>
+              <string>59aae854155bc7119e0dca25e65828c0</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/82624/774520/openssl-1.1.1l.560177-windows64-560177.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/56326/526811/openssl-1.0.2l.539874-windows64-539874.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.1.1l.560177</string>
+        <string>1.0.2l.539874</string>
       </map>
       <key>pcre</key>
       <map>
@@ -2918,9 +3008,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6ce3cbaed968a69fb7a2cca80220874d</string>
+              <string>321a8542e7b693fbe8e44ebface06087</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80380/758537/slvoice-4.10.0000.32327.5fc3fe7c.558436-darwin64-558436.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55966/524403/slvoice-4.10.0000.32327.5fc3fe7c.539691-darwin64-539691.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -2954,9 +3044,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>2eb38c5eff4d0f18fbb89d0c30c4f0a4</string>
+              <string>fb1a57a1cf5e38a3d51b32307b93ffba</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80382/758550/slvoice-4.10.0000.32327.5fc3fe7c.558436-windows-558436.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55968/524423/slvoice-4.10.0000.32327.5fc3fe7c.539691-windows-539691.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -2966,16 +3056,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>9ee8f3cbc5369c598a998c61961ed16d</string>
+              <string>81df970eb0c97d415d7bd12049c82042</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/80381/758551/slvoice-4.10.0000.32327.5fc3fe7c.558436-windows64-558436.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55967/524409/slvoice-4.10.0000.32327.5fc3fe7c.539691-windows64-539691.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>4.10.0000.32327.5fc3fe7c.558436</string>
+        <string>4.10.0000.32327.5fc3fe7c.539691</string>
       </map>
       <key>tut</key>
       <map>
@@ -3038,9 +3128,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>c42575ac8997de979eadb082c33a578e</string>
+              <string>60f008c5fd31641ad4e61ac751ce15d1</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81322/765512/uriparser-0.9.4-darwin64-559132.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75748/723495/uriparser-0.9.4-darwin64-555117.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3074,9 +3164,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>901b1063556fc6b2575e745eef2bf744</string>
+              <string>00aff37a6f5e1fe08456702d28706cf6</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81323/765528/uriparser-0.9.4-windows-559132.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75751/723507/uriparser-0.9.4-windows-555117.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3086,9 +3176,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>962c01d553f286c430102998129fb0d6</string>
+              <string>ff27a91f3941c7bef5e1613a064cb048</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/81324/765527/uriparser-0.9.4-windows64-559132.tar.bz2</string>
+              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/75750/723506/uriparser-0.9.4-windows64-555117.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
@@ -3172,9 +3262,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>b639d0035f4a8c9b4973be428a1b7e61</string>
+              <string>5e553a4358203f283c74744aed2fcd8c</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69569/671323/vlc_bin-3.0.9.549888-darwin64-549888.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54836/510036/vlc_bin-2.2.8.538966-darwin64-538966.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3196,9 +3286,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>4f50b0c47daa081dd4fcb83763d5b0b2</string>
+              <string>ca84b7c5f86e702fb35727eed8f0c8c4</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69567/671314/vlc_bin-3.0.9.549888-windows-549888.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54958/511725/vlc_bin-2.2.8.538966-windows-538966.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3208,16 +3298,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>c2f8c01fb6c261b72beb07f0c4cd423f</string>
+              <string>93cd88d90cb8aedbed5cd90ff9262409</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/69568/671315/vlc_bin-3.0.9.549888-windows64-549888.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54954/511718/vlc_bin-2.2.8.538966-windows64-538966.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>3.0.9.549888</string>
+        <string>2.2.8.538966</string>
       </map>
       <key>xmlrpc-epi</key>
       <map>
@@ -3250,9 +3340,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>922a0dea32266897ed1911200438e1e1</string>
+              <string>99ea1808ee9f5b55029daa9fdef86776</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76372/727426/xmlrpc_epi-0.54.1.555529-darwin64-555529.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55063/512104/xmlrpc_epi-0.54.1.539072-darwin64-539072.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3286,9 +3376,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>34b847e6b280048465fe7c6ce67fe05c</string>
+              <string>94643b7cebb449f049fa9e32ae682bcd</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76374/727436/xmlrpc_epi-0.54.1.555529-windows-555529.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55138/512288/xmlrpc_epi-0.54.1.539072-windows-539072.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3298,16 +3388,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>8fbe7c4ea22bb7f23a93c73884ebb34c</string>
+              <string>c409de1974a879291ce7daaf52348d85</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/76373/727435/xmlrpc_epi-0.54.1.555529-windows64-555529.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55137/512279/xmlrpc_epi-0.54.1.539072-windows64-539072.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>0.54.1.555529</string>
+        <string>0.54.1.539072</string>
       </map>
       <key>zlib</key>
       <map>
@@ -3340,9 +3430,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>9181bc8229f1a8e480d2a40a2744ec28</string>
+              <string>9785bda5b4d3b41bf391b33d0da78c9e</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78578/743913/zlib-1.2.11.557041-darwin64-557041.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/54858/510190/zlib-1.2.8.538988-darwin64-538988.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin64</string>
@@ -3378,9 +3468,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>8308cbd2ea0fe290541698b0f63482e2</string>
+              <string>ebdb07d4aaa5312005a8773f625032a4</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78579/743926/zlib-1.2.11.557041-windows-557041.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55048/512031/zlib-1.2.8.538988-windows-538988.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
@@ -3390,16 +3480,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>36bdc34f67d3ad3c57125dc1b16a3129</string>
+              <string>0ac95f3dece7d575ba45cf5728f53eea</string>
               <key>url</key>
-              <string>https://automated-builds-secondlife-com.s3.amazonaws.com/ct2/78577/743920/zlib-1.2.11.557041-windows64-557041.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55047/512024/zlib-1.2.8.538988-windows64-538988.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows64</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.2.11.557041</string>
+        <string>1.2.8.538988</string>
       </map>
     </map>
     <key>package_description</key>
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index eb205ccb118..53e5d7b6a54 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -70,11 +70,17 @@ 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 7d8bfb1b0f9..b8e569d3a84 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -24,7 +24,7 @@ elseif (DARWIN)
         message(FATAL_ERROR "AppKit not found")
     endif()
 
-    set(CEF_LIBRARY "'${ARCH_PREBUILT_DIRS_RELEASE}/Chromium\ Embedded\ Framework.framework'")
+    FIND_LIBRARY(CEF_LIBRARY "Chromium Embedded Framework" ${ARCH_PREBUILT_DIRS_RELEASE})
     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}
-        "-F ${CEF_LIBRARY}"
+        ${CEF_LIBRARY}
        )
 
 elseif (LINUX)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index cca305c741e..a17e37cd320 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -28,6 +28,7 @@ set(cmake_SOURCE_FILES
     FindAutobuild.cmake
     FindBerkeleyDB.cmake
     FindGLH.cmake
+    FindGoogleBreakpad.cmake
     FindHUNSPELL.cmake
     FindJsonCpp.cmake
     FindNDOF.cmake
@@ -42,6 +43,7 @@ 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 848547f2a28..de81512eef5 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -56,21 +56,14 @@ if(WINDOWS)
         libapr-1.dll
         libaprutil-1.dll
         libapriconv-1.dll
+        ssleay32.dll
+        libeay32.dll
         nghttp2.dll
         glod.dll
         libhunspell.dll
         uriparser.dll
         )
 
-    # OpenSSL
-    if(ADDRESS_SIZE EQUAL 64)
-        set(release_files ${release_files} libcrypto-1_1-x64.dll)
-        set(release_files ${release_files} libssl-1_1-x64.dll)
-    else(ADDRESS_SIZE EQUAL 64)
-        set(release_files ${release_files} libcrypto-1_1.dll)
-        set(release_files ${release_files} libssl-1_1.dll)
-    endif(ADDRESS_SIZE EQUAL 64)
-
     # Filenames are different for 32/64 bit BugSplat file and we don't
     # have any control over them so need to branch.
     if (BUGSPLAT_DB)
@@ -165,6 +158,7 @@ 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
new file mode 100644
index 00000000000..1a0493be5ed
--- /dev/null
+++ b/indra/cmake/FindGoogleBreakpad.cmake
@@ -0,0 +1,40 @@
+# -*- 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
new file mode 100644
index 00000000000..829e1ac08a8
--- /dev/null
+++ b/indra/cmake/GoogleBreakpad.cmake
@@ -0,0 +1,22 @@
+# -*- 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/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 32400f5e4e5..eb548bdcc13 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -9,7 +9,7 @@ if (USESYSTEMLIBS)
 else (USESYSTEMLIBS)
   use_prebuilt_binary(openssl)
   if (WINDOWS)
-    set(OPENSSL_LIBRARIES libssl libcrypto)
+    set(OPENSSL_LIBRARIES ssleay32 libeay32)
   else (WINDOWS)
     set(OPENSSL_LIBRARIES ssl crypto)
   endif (WINDOWS)
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index b16fedfc3e2..cecfadcd91f 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -8,6 +8,7 @@ include(Linking)
 include(Boost)
 include(LLSharedLibs)
 include(JsonCpp)
+include(GoogleBreakpad)
 include(Copy3rdPartyLibs)
 include(ZLIB)
 include(URIPARSER)
@@ -17,6 +18,7 @@ include_directories(
     ${LLCOMMON_INCLUDE_DIRS}
     ${JSONCPP_INCLUDE_DIR}
     ${ZLIB_INCLUDE_DIRS}
+    ${BREAKPAD_INCLUDE_DIRECTORIES}
     ${URIPARSER_INCLUDE_DIRS}
     )
 
@@ -285,6 +287,7 @@ 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 72dd0ea0484..a90b2945504 100644
--- a/indra/llcommon/llapp.cpp
+++ b/indra/llcommon/llapp.cpp
@@ -46,6 +46,7 @@
 #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"
@@ -61,6 +62,12 @@
 
 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()
@@ -139,6 +146,8 @@ 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)
@@ -168,6 +177,8 @@ LLApp::~LLApp()
 		delete mThreadErrorp;
 		mThreadErrorp = NULL;
 	}
+	
+	if(mExceptionHandler != 0) delete mExceptionHandler;
 
 	SUBSYSTEM_CLEANUP_DBG(LLCommon);
 }
@@ -383,18 +394,139 @@ 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)
-    //
-    // 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();
+#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;
 #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();
 }
@@ -477,6 +609,31 @@ 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";
@@ -485,6 +642,8 @@ void LLApp::setDebugFileNames(const std::string &path)
 
 void LLApp::writeMiniDump()
 {
+	if(mExceptionHandler == 0) return;
+	mExceptionHandler->WriteMinidump();
 }
 
 // static
@@ -541,6 +700,13 @@ bool LLApp::isExiting()
 
 void LLApp::disableCrashlogger()
 {
+	// Disable Breakpad exception handler.
+	if (mExceptionHandler != 0)
+	{
+		delete mExceptionHandler;
+		mExceptionHandler = 0;
+	}
+
 	sDisableCrashlogger = TRUE;
 }
 
@@ -929,3 +1095,64 @@ 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 e590e5eafdf..245c73e3a22 100644
--- a/indra/llcommon/llapp.h
+++ b/indra/llcommon/llapp.h
@@ -49,6 +49,10 @@ void clear_signals();
 
 #endif
 
+namespace google_breakpad {
+	class ExceptionHandler; // See exception_handler.h
+}
+
 class LL_COMMON_API LLApp
 {
 	friend class LLErrorThread;
@@ -232,6 +236,7 @@ class LL_COMMON_API LLApp
 	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.
@@ -307,6 +312,9 @@ class LL_COMMON_API LLApp
 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 d90d148ee68..240ea2da839 100644
--- a/indra/llcorehttp/CMakeLists.txt
+++ b/indra/llcorehttp/CMakeLists.txt
@@ -176,6 +176,7 @@ 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/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp
index bbf23a6d70b..e37a38b05f8 100644
--- a/indra/llcorehttp/httpcommon.cpp
+++ b/indra/llcorehttp/httpcommon.cpp
@@ -23,6 +23,13 @@
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
+#if LL_WINDOWS
+#define SAFE_SSL 1
+#elif LL_DARWIN
+#define SAFE_SSL 1
+#else
+#define SAFE_SSL 1
+#endif
 
 #include "linden_common.h"		// Modifies curl/curl.h interfaces
 #include "httpcommon.h"
@@ -31,6 +38,10 @@
 #include <curl/curl.h>
 #include <string>
 #include <sstream>
+#if SAFE_SSL
+#include <openssl/crypto.h>
+#include <functional>               // std::hash
+#endif
 
 
 namespace LLCore
@@ -337,6 +348,34 @@ void deallocateEasyCurl(CURL *curlp)
 }
 
 
+#if SAFE_SSL
+//static
+void ssl_locking_callback(int mode, int type, const char *file, int line)
+{
+    if (type >= sSSLMutex.size())
+    {
+        LL_WARNS() << "Attempt to get unknown MUTEX in SSL Lock." << LL_ENDL;
+    }
+
+    if (mode & CRYPTO_LOCK)
+    {
+        sSSLMutex[type]->lock();
+    }
+    else
+    {
+        sSSLMutex[type]->unlock();
+    }
+}
+
+//static
+unsigned long ssl_thread_id(void)
+{
+    // std::thread::id is very deliberately opaque, but we can hash it
+    return std::hash<LLThread::id_t>()(LLThread::currentID());
+}
+#endif
+
+
 }
 
 void initialize()
@@ -348,11 +387,27 @@ void initialize()
 
     check_curl_code(code, CURL_GLOBAL_ALL);
 
+#if SAFE_SSL
+    S32 mutex_count = CRYPTO_num_locks();
+    for (S32 i = 0; i < mutex_count; i++)
+    {
+        sSSLMutex.push_back(LLMutex_ptr(new LLMutex()));
+    }
+    CRYPTO_set_id_callback(&ssl_thread_id);
+    CRYPTO_set_locking_callback(&ssl_locking_callback);
+#endif
+
 }
 
 
 void cleanup()
 {
+#if SAFE_SSL
+    CRYPTO_set_id_callback(NULL);
+    CRYPTO_set_locking_callback(NULL);
+    sSSLMutex.clear();
+#endif
+
     curl_global_cleanup();
 }
 
diff --git a/indra/llmessage/llblowfishcipher.cpp b/indra/llmessage/llblowfishcipher.cpp
index 949d4cc0c7f..0b5025a4225 100644
--- a/indra/llmessage/llblowfishcipher.cpp
+++ b/indra/llmessage/llblowfishcipher.cpp
@@ -52,28 +52,24 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
 	if (src_len > dst_len) return 0;
 
 	// OpenSSL uses "cipher contexts" to hold encryption parameters.
-    EVP_CIPHER_CTX *context = EVP_CIPHER_CTX_new();
-    if (!context)
-    {
-        LL_WARNS() << "LLBlowfishCipher::encrypt EVP_CIPHER_CTX initiation failure" << LL_ENDL;
-        return 0;
-    }
+    EVP_CIPHER_CTX context;
+    EVP_CIPHER_CTX_init(&context);
 
 	// We want a blowfish cyclic block chain cipher, but need to set 
 	// the key length before we pass in a key, so call EncryptInit 
 	// first with NULLs.
-	EVP_EncryptInit_ex(context, EVP_bf_cbc(), NULL, NULL, NULL);
-	EVP_CIPHER_CTX_set_key_length(context, (int)mSecretSize);
+	EVP_EncryptInit_ex(&context, EVP_bf_cbc(), NULL, NULL, NULL);
+	EVP_CIPHER_CTX_set_key_length(&context, (int)mSecretSize);
 	
 	// Complete initialization.  Per EVP_EncryptInit man page, the
 	// cipher pointer must be NULL.  Apparently initial_vector must
 	// be 8 bytes for blowfish, as this is the block size.
     unsigned char initial_vector[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-	EVP_EncryptInit_ex(context, NULL, NULL, mSecret, initial_vector);
+	EVP_EncryptInit_ex(&context, NULL, NULL, mSecret, initial_vector);
 
-    int blocksize = EVP_CIPHER_CTX_block_size(context);
-    int keylen = EVP_CIPHER_CTX_key_length(context);
-    int iv_length = EVP_CIPHER_CTX_iv_length(context);
+    int blocksize = EVP_CIPHER_CTX_block_size(&context);
+    int keylen = EVP_CIPHER_CTX_key_length(&context);
+    int iv_length = EVP_CIPHER_CTX_iv_length(&context);
     LL_DEBUGS() << "LLBlowfishCipher blocksize " << blocksize
 		<< " keylen " << keylen
 		<< " iv_len " << iv_length
@@ -81,7 +77,7 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
 
 	int output_len = 0;
 	int temp_len = 0;
-	if (!EVP_EncryptUpdate(context,
+	if (!EVP_EncryptUpdate(&context,
 			dst,
 			&output_len,
 			src,
@@ -93,18 +89,18 @@ U32 LLBlowfishCipher::encrypt(const U8* src, U32 src_len, U8* dst, U32 dst_len)
 
 	// There may be some final data left to encrypt if the input is
 	// not an exact multiple of the block size.
-	if (!EVP_EncryptFinal_ex(context, (unsigned char*)(dst + output_len), &temp_len))
+	if (!EVP_EncryptFinal_ex(&context, (unsigned char*)(dst + output_len), &temp_len))
 	{
 		LL_WARNS() << "LLBlowfishCipher::encrypt EVP_EncryptFinal failure" << LL_ENDL;
 		goto ERROR;
 	}
 	output_len += temp_len;
 
-	EVP_CIPHER_CTX_free(context);
+	EVP_CIPHER_CTX_cleanup(&context);
 	return output_len;
 
 ERROR:
-	EVP_CIPHER_CTX_free(context);
+	EVP_CIPHER_CTX_cleanup(&context);
 	return 0;
 }
 
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index e5b4dec1bd0..7d18bae9470 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
new file mode 100644
index 00000000000..95637c9a282
--- /dev/null
+++ b/indra/mac_crash_logger/CMakeLists.txt
@@ -0,0 +1,95 @@
+# -*- 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.nib
new file mode 100755
index 0000000000000000000000000000000000000000..e9d9e059855078b54b9d1d3c382f7f241cab9e27
GIT binary patch
literal 32286
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

literal 0
HcmV?d00001

diff --git a/indra/mac_crash_logger/CrashReporter.xib b/indra/mac_crash_logger/CrashReporter.xib
new file mode 100755
index 00000000000..f6d4776d51c
--- /dev/null
+++ b/indra/mac_crash_logger/CrashReporter.xib
@@ -0,0 +1,3895 @@
+<?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
new file mode 100644
index 00000000000..2ebed11c3f9
--- /dev/null
+++ b/indra/mac_crash_logger/Info.plist
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 00000000000..ec3616e26a9
--- /dev/null
+++ b/indra/mac_crash_logger/llcrashloggermac.cpp
@@ -0,0 +1,91 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..05ef8c9f539
--- /dev/null
+++ b/indra/mac_crash_logger/llcrashloggermac.h
@@ -0,0 +1,45 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..c998a8efe24
--- /dev/null
+++ b/indra/mac_crash_logger/llcrashloggermacdelegate.h
@@ -0,0 +1,52 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..b2af76a47cc
--- /dev/null
+++ b/indra/mac_crash_logger/llcrashloggermacdelegate.mm
@@ -0,0 +1,75 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..54e41a1954d
--- /dev/null
+++ b/indra/mac_crash_logger/mac_crash_logger.cpp
@@ -0,0 +1,58 @@
+/** 
+ * @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 5d4a488e64c..f7d35b33c28 100644
--- a/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
+++ b/indra/media_plugins/libvlc/media_plugin_libvlc.cpp
@@ -34,11 +34,6 @@
 #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 b6fb2dccbaf..fc8d8b805b5 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1829,27 +1829,28 @@ if (WINDOWS)
       ${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
       ${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
       ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt
+      ${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll
+      ${ARCH_PREBUILT_DIRS_RELEASE}/ssleay32.dll
+      ${ARCH_PREBUILT_DIRS_DEBUG}/libeay32.dll
+      ${ARCH_PREBUILT_DIRS_DEBUG}/ssleay32.dll
       ${viewer_APPSETTINGS_FILES}
       SLPlugin
       media_plugin_cef
       media_plugin_libvlc
       media_plugin_example
       winmm_shim
+      windows-crash-logger
       )
 
     if (ADDRESS_SIZE EQUAL 64)
         list(APPEND COPY_INPUT_DEPENDENCIES
             ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk_x64.dll
             ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp_x64.dll
-           ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto-1_1-x64.dll
-           ${ARCH_PREBUILT_DIRS_RELEASE}/libssl-1_1-x64.dll
             )
     else (ADDRESS_SIZE EQUAL 64)
         list(APPEND COPY_INPUT_DEPENDENCIES
             ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk.dll
             ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp.dll
-            ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto-1_1.dll
-            ${ARCH_PREBUILT_DIRS_RELEASE}/libssl-1_1.dll
             )
     endif (ADDRESS_SIZE EQUAL 64)
 
@@ -1905,6 +1906,7 @@ if (WINDOWS)
 
     add_dependencies(${VIEWER_BINARY_NAME}
       SLPlugin
+      windows-crash-logger
     )
 
     # sets the 'working directory' for debugging from visual studio.
@@ -2209,7 +2211,8 @@ if (DARWIN)
       ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
     )
 
-  add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_libvlc media_plugin_cef)
+  add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_libvlc media_plugin_cef mac-crash-logger)
+  add_dependencies(${VIEWER_BINARY_NAME} mac-crash-logger)
 
   if (ENABLE_SIGNING)
       set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
@@ -2252,7 +2255,62 @@ 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 (BUGSPLAT_DB)
+  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)
     # BugSplat symbol-file generation
     if (WINDOWS)
       # Just pack up a tarball containing only the .pdb file for the
@@ -2336,7 +2394,7 @@ if (PACKAGE AND (RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING) AND VIE
     if (LINUX)
       # TBD
     endif (LINUX)
-  endif (BUGSPLAT_DB)
+  endif (NOT 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
new file mode 100755
index 00000000000..d351c406bce
--- /dev/null
+++ b/indra/newview/generate_breakpad_symbols.py
@@ -0,0 +1,166 @@
+#!/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
deleted file mode 100755
index b953af81af3..00000000000
--- a/indra/newview/installers/darwin/apple-notarize.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/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
-
-            #remove temporary file
-            rm "$zip_file"
-
-            if [["$status" == "success"]]; then
-                xcrun stapler staple "$app_file"
-            elif [["$status" == "invalid"]]; then
-                exit 1
-            fi
-        fi
-    fi
-fi
-
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 66a33ed6ae2..053c0a5ab78 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -738,7 +738,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 e9c467bd01b..5ceb5407843 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -108,6 +108,7 @@ class LLAppViewer : public LLApp
 
 	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 862e2b45dff..662164af2dc 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -240,7 +240,17 @@ LLAppViewerMacOSX::~LLAppViewerMacOSX()
 
 bool LLAppViewerMacOSX::init()
 {
-    return LLAppViewer::init();
+	bool success = LLAppViewer::init();
+    
+#if LL_SEND_CRASH_REPORTS
+    if (success)
+    {
+        LLAppViewer* pApp = LLAppViewer::instance();
+        pApp->initCrashReporting();
+    }
+#endif
+    
+    return success;
 }
 
 // MacOSX may add and addition command line arguement for the process serial number.
@@ -357,6 +367,21 @@ 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 b0e325a955b..d5a80864be3 100644
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
@@ -44,6 +44,7 @@ class LLAppViewerMacOSX : public LLAppViewer
 
 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 f0bede53213..9b1c0d1f8b0 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -603,6 +603,9 @@ 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")
 
@@ -814,6 +817,57 @@ 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 2699224e589..c5fae6a3a3b 100644
--- a/indra/newview/llappviewerwin32.h
+++ b/indra/newview/llappviewerwin32.h
@@ -51,6 +51,7 @@ class LLAppViewerWin32 : public LLAppViewer
 
 	virtual bool beingDebugged();
 	virtual bool restoreErrorTrap();
+	virtual void initCrashReporting(bool reportFreeze); 
 
 	virtual bool sendURLToOtherInstance(const std::string& url);
 
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index 1e6f2154bca..14059f828a4 100644
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
@@ -452,7 +452,7 @@ class LLSecAPIHandler : public LLThreadSafeRefCount
 	virtual LLPointer<LLCertificate> getCertificate(X509* openssl_cert)=0;
 	
 	// instantiate a chain from an X509_STORE_CTX
-	virtual LLPointer<LLCertificateChain> getCertificateChain(X509_STORE_CTX* chain)=0;
+	virtual LLPointer<LLCertificateChain> getCertificateChain(const X509_STORE_CTX* chain)=0;
 	
 	// instantiate a cert store given it's id.  if a persisted version
 	// exists, it'll be loaded.  If not, one will be created (but not
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 94331fddfa6..737ef30ada9 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -95,7 +95,7 @@ LLBasicCertificate::LLBasicCertificate(const std::string& pem_cert,
 LLBasicCertificate::LLBasicCertificate(X509* pCert,
                                        const LLSD* validation_params) 
 {
-	if (!pCert)
+	if (!pCert || !pCert->cert_info)
 	{
 		LLTHROW(LLInvalidCertificate(LLSD::emptyMap()));
 	}	
@@ -355,8 +355,8 @@ LLSD cert_name_from_X509_NAME(X509_NAME* name)
 		char buffer[32];
 		X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, entry_index);
 		
-		std::string name_value = std::string((const char*)ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)), 
-											 ASN1_STRING_length(X509_NAME_ENTRY_get_data(entry)));
+		std::string name_value = std::string((const char*)M_ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry)), 
+											 M_ASN1_STRING_length(X509_NAME_ENTRY_get_data(entry)));
 
 		ASN1_OBJECT* name_obj = X509_NAME_ENTRY_get_object(entry);		
 		OBJ_obj2txt(buffer, sizeof(buffer), name_obj, 0);
@@ -683,29 +683,29 @@ std::string LLBasicCertificateStore::storeId() const
 // LLBasicCertificateChain
 // This class represents a chain of certs, each cert being signed by the next cert
 // in the chain.  Certs must be properly signed by the parent
-LLBasicCertificateChain::LLBasicCertificateChain(X509_STORE_CTX* store)
+LLBasicCertificateChain::LLBasicCertificateChain(const X509_STORE_CTX* store)
 {
 
 	// we're passed in a context, which contains a cert, and a blob of untrusted
 	// certificates which compose the chain.
-	if((store == NULL) || X509_STORE_CTX_get0_cert(store) == NULL)
+	if((store == NULL) || (store->cert == NULL))
 	{
 		LL_WARNS("SECAPI") << "An invalid store context was passed in when trying to create a certificate chain" << LL_ENDL;
 		return;
 	}
 	// grab the child cert
-	LLPointer<LLCertificate> current = new LLBasicCertificate(X509_STORE_CTX_get0_cert(store));
+	LLPointer<LLCertificate> current = new LLBasicCertificate(store->cert);
 
 	add(current);
-	if(X509_STORE_CTX_get0_untrusted(store) != NULL)
+	if(store->untrusted != NULL)
 	{
 		// if there are other certs in the chain, we build up a vector
 		// of untrusted certs so we can search for the parents of each
 		// consecutive cert.
 		LLBasicCertificateVector untrusted_certs;
-		for(int i = 0; i < sk_X509_num(X509_STORE_CTX_get0_untrusted(store)); i++)
+		for(int i = 0; i < sk_X509_num(store->untrusted); i++)
 		{
-			LLPointer<LLCertificate> cert = new LLBasicCertificate(sk_X509_value(X509_STORE_CTX_get0_untrusted(store), i));
+			LLPointer<LLCertificate> cert = new LLBasicCertificate(sk_X509_value(store->untrusted, i));
 			untrusted_certs.add(cert);
 
 		}		
@@ -1340,10 +1340,9 @@ void LLSecAPIBasicHandler::_readProtectedData()
 		
 
 		// read in the rest of the file.
-		EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
-        // todo: ctx error handling
-
-		EVP_DecryptInit(ctx, EVP_rc4(), salt, NULL);
+		EVP_CIPHER_CTX ctx;
+		EVP_CIPHER_CTX_init(&ctx);
+		EVP_DecryptInit(&ctx, EVP_rc4(), salt, NULL);
 		// allocate memory:
 		std::string decrypted_data;	
 		
@@ -1351,14 +1350,14 @@ void LLSecAPIBasicHandler::_readProtectedData()
 			// read data as a block:
 			protected_data_stream.read((char *)buffer, BUFFER_READ_SIZE);
 			
-			EVP_DecryptUpdate(ctx, decrypted_buffer, &decrypted_length, 
+			EVP_DecryptUpdate(&ctx, decrypted_buffer, &decrypted_length, 
 							  buffer, protected_data_stream.gcount());
 			decrypted_data.append((const char *)decrypted_buffer, protected_data_stream.gcount());
 		}
 		
 		// RC4 is a stream cipher, so we don't bother to EVP_DecryptFinal, as there is
 		// no block padding.
-        EVP_CIPHER_CTX_free(ctx);
+		EVP_CIPHER_CTX_cleanup(&ctx);
 		std::istringstream parse_stream(decrypted_data);
 		if (parser->parse(parse_stream, mProtectedDataMap, 
 						  LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE)
@@ -1394,14 +1393,12 @@ void LLSecAPIBasicHandler::_writeProtectedData()
 	
 	llofstream protected_data_stream(tmp_filename.c_str(), 
                                      std::ios_base::binary);
-    EVP_CIPHER_CTX *ctx = NULL;
 	try
 	{
 		
-		ctx = EVP_CIPHER_CTX_new();
-        // todo: ctx error handling
-
-		EVP_EncryptInit(ctx, EVP_rc4(), salt, NULL);
+		EVP_CIPHER_CTX ctx;
+		EVP_CIPHER_CTX_init(&ctx);
+		EVP_EncryptInit(&ctx, EVP_rc4(), salt, NULL);
 		unsigned char unique_id[MAC_ADDRESS_BYTES];
         LLMachineID::getUniqueID(unique_id, sizeof(unique_id));
 		LLXORCipher cipher(unique_id, sizeof(unique_id));
@@ -1416,13 +1413,13 @@ void LLSecAPIBasicHandler::_writeProtectedData()
 				break;
 			}
 			int encrypted_length;
-			EVP_EncryptUpdate(ctx, encrypted_buffer, &encrypted_length, 
+			EVP_EncryptUpdate(&ctx, encrypted_buffer, &encrypted_length, 
 						  buffer, formatted_data_istream.gcount());
 			protected_data_stream.write((const char *)encrypted_buffer, encrypted_length);
 		}
 		
 		// no EVP_EncrypteFinal, as this is a stream cipher
-        EVP_CIPHER_CTX_free(ctx);
+		EVP_CIPHER_CTX_cleanup(&ctx);
 
 		protected_data_stream.close();
 	}
@@ -1434,11 +1431,6 @@ void LLSecAPIBasicHandler::_writeProtectedData()
 		// it may be, however.
 		LLFile::remove(tmp_filename);
 
-        if (ctx)
-        {
-            EVP_CIPHER_CTX_free(ctx);
-        }
-
 		// EXP-1825 crash in LLSecAPIBasicHandler::_writeProtectedData()
 		// Decided throwing an exception here was overkill until we figure out why this happens
 		//LLTHROW(LLProtectedDataException("Error writing Protected Data Store"));
@@ -1491,7 +1483,7 @@ LLPointer<LLCertificate> LLSecAPIBasicHandler::getCertificate(X509* openssl_cert
 }
 		
 // instantiate a chain from an X509_STORE_CTX
-LLPointer<LLCertificateChain> LLSecAPIBasicHandler::getCertificateChain(X509_STORE_CTX* chain)
+LLPointer<LLCertificateChain> LLSecAPIBasicHandler::getCertificateChain(const X509_STORE_CTX* chain)
 {
 	LLPointer<LLCertificateChain> result = new LLBasicCertificateChain(chain);
 	return result;
diff --git a/indra/newview/llsechandler_basic.h b/indra/newview/llsechandler_basic.h
index 82670f9083b..0bc7f5230f8 100644
--- a/indra/newview/llsechandler_basic.h
+++ b/indra/newview/llsechandler_basic.h
@@ -197,7 +197,7 @@ class LLBasicCertificateChain : virtual public LLBasicCertificateVector, public
 {
 	
 public:
-	LLBasicCertificateChain(X509_STORE_CTX * store);
+	LLBasicCertificateChain(const X509_STORE_CTX * store);
 	
 	virtual ~LLBasicCertificateChain() {}
 	
@@ -241,7 +241,7 @@ class LLSecAPIBasicHandler : public LLSecAPIHandler
 	virtual LLPointer<LLCertificate> getCertificate(X509* openssl_cert);
 	
 	// instantiate a chain from an X509_STORE_CTX
-	virtual LLPointer<LLCertificateChain> getCertificateChain(X509_STORE_CTX* chain);
+	virtual LLPointer<LLCertificateChain> getCertificateChain(const X509_STORE_CTX* chain);
 	
 	// instantiate a cert store given it's id.  if a persisted version
 	// exists, it'll be loaded.  If not, one will be created (but not
diff --git a/indra/newview/tests/llsecapi_test.cpp b/indra/newview/tests/llsecapi_test.cpp
index 37fbbb449be..caa3016d2e9 100644
--- a/indra/newview/tests/llsecapi_test.cpp
+++ b/indra/newview/tests/llsecapi_test.cpp
@@ -57,7 +57,7 @@ void LLSecAPIBasicHandler::init() {}
 LLSecAPIBasicHandler::~LLSecAPIBasicHandler() {}
 LLPointer<LLCertificate> LLSecAPIBasicHandler::getCertificate(const std::string& pem_cert) { return NULL; }
 LLPointer<LLCertificate> LLSecAPIBasicHandler::getCertificate(X509* openssl_cert) { return NULL; }
-LLPointer<LLCertificateChain> LLSecAPIBasicHandler::getCertificateChain(X509_STORE_CTX* chain) { return NULL; }
+LLPointer<LLCertificateChain> LLSecAPIBasicHandler::getCertificateChain(const X509_STORE_CTX* chain) { return NULL; }
 LLPointer<LLCertificateStore> LLSecAPIBasicHandler::getCertificateStore(const std::string& store_id) { return NULL; }
 void LLSecAPIBasicHandler::setProtectedData(const std::string& data_type, const std::string& data_id, const LLSD& data) {}
 void LLSecAPIBasicHandler::addToProtectedMap(const std::string& data_type, const std::string& data_id, const std::string& map_elem, const LLSD& data) {}
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index 4c8d6c51b09..e5d226a2a49 100644
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
@@ -1217,8 +1217,8 @@ namespace tut
 
 		// Single cert in the chain.
 		X509_STORE_CTX *test_store = X509_STORE_CTX_new();
-        X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
-        X509_STORE_CTX_set0_untrusted(test_store, NULL);
+		test_store->cert = mX509ChildCert;		
+		test_store->untrusted = NULL;
 		test_chain = new LLBasicCertificateChain(test_store);
 		X509_STORE_CTX_free(test_store);
 		ensure_equals("two elements in store", test_chain->size(), 1);		
@@ -1229,9 +1229,9 @@ namespace tut
 		// cert + CA
 		
 		test_store = X509_STORE_CTX_new();
-        X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
-        X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
+		test_store->cert = mX509ChildCert;
+		test_store->untrusted = sk_X509_new_null();
+		sk_X509_push(test_store->untrusted, mX509IntermediateCert);
 		test_chain = new LLBasicCertificateChain(test_store);
 		X509_STORE_CTX_free(test_store);
 		ensure_equals("two elements in store", test_chain->size(), 2);	
@@ -1245,9 +1245,9 @@ namespace tut
 		// cert + nonrelated
 		
 		test_store = X509_STORE_CTX_new();
-        X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
-        X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509TestCert);
+		test_store->cert = mX509ChildCert;
+		test_store->untrusted = sk_X509_new_null();
+		sk_X509_push(test_store->untrusted, mX509TestCert);
 		test_chain = new LLBasicCertificateChain(test_store);
 		X509_STORE_CTX_free(test_store);
 		ensure_equals("two elements in store", test_chain->size(), 1);	
@@ -1257,10 +1257,10 @@ namespace tut
 		
 		// cert + CA + nonrelated
 		test_store = X509_STORE_CTX_new();
-        X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
-        X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509TestCert);
+		test_store->cert = mX509ChildCert;
+		test_store->untrusted = sk_X509_new_null();
+		sk_X509_push(test_store->untrusted, mX509IntermediateCert);
+		sk_X509_push(test_store->untrusted, mX509TestCert);
 		test_chain = new LLBasicCertificateChain(test_store);
 		X509_STORE_CTX_free(test_store);
 		ensure_equals("two elements in store", test_chain->size(), 2);	
@@ -1273,10 +1273,10 @@ namespace tut
 
 		// cert + intermediate + CA 
 		test_store = X509_STORE_CTX_new();
-        X509_STORE_CTX_set_cert(test_store, mX509ChildCert);
-        X509_STORE_CTX_set0_untrusted(test_store, sk_X509_new_null());
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509IntermediateCert);
-		sk_X509_push(X509_STORE_CTX_get0_untrusted(test_store), mX509RootCert);
+		test_store->cert = mX509ChildCert;
+		test_store->untrusted = sk_X509_new_null();
+		sk_X509_push(test_store->untrusted, mX509IntermediateCert);
+		sk_X509_push(test_store->untrusted, mX509RootCert);
 		test_chain = new LLBasicCertificateChain(test_store);
 		X509_STORE_CTX_free(test_store);
 		ensure_equals("three elements in store", test_chain->size(), 3);	
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index c0a0a7ec46c..adac7af7123 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -553,13 +553,9 @@ def construct(self):
                 self.path("vivoxsdk.dll")
                 self.path("ortp.dll")
             
-            # OpenSSL
-            if (self.address_size == 64):
-                self.path("libcrypto-1_1-x64.dll")
-                self.path("libssl-1_1-x64.dll")
-            else:
-                self.path("libcrypto-1_1.dll")
-                self.path("libssl-1_1.dll")
+            # Security
+            self.path("ssleay32.dll")
+            self.path("libeay32.dll")
 
             # HTTP/2
             self.path("nghttp2.dll")
@@ -687,6 +683,11 @@ def construct(self):
                 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"    
 
@@ -1031,6 +1032,7 @@ def path_optional(src, dst):
                                 "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
@@ -1066,15 +1068,21 @@ def path_optional(src, dst):
 
                 # our apps
                 executable_path = {}
-                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:
+                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.relsymlinkf(os.path.join(libfile_parent, libfile))
 
                 # Dullahan helper apps go inside SLPlugin.app
@@ -1295,19 +1303,14 @@ def package_finish(self):
                     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/_greenlet.so"
                     while (not signed) and (sign_attempts > 0):
                         try:
-                            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])
+                            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])
                             signed=True # if no exception was raised, the codesign worked
                         except ManifestError as err:
                             if sign_attempts:
@@ -1318,7 +1321,6 @@ def package_finish(self):
                                 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 
@@ -1371,7 +1373,7 @@ def construct(self):
         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
new file mode 100644
index 00000000000..86aa655f034
--- /dev/null
+++ b/indra/win_crash_logger/CMakeLists.txt
@@ -0,0 +1,105 @@
+# -*- 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
new file mode 100644
index 00000000000..f56711af73e
--- /dev/null
+++ b/indra/win_crash_logger/StdAfx.cpp
@@ -0,0 +1,34 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..35976658acb
--- /dev/null
+++ b/indra/win_crash_logger/StdAfx.h
@@ -0,0 +1,56 @@
+/** 
+ * @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.ico
new file mode 100644
index 0000000000000000000000000000000000000000..566346dfe301eec04d1fb819ecec2f2dd8d2483c
GIT binary patch
literal 2238
zcmc&!-ES0C96fhtciXi#L~4tniK1>MzL=O0o*E+oAB;3H(P{_^u|O#W+q>H@XlbRT
z*&?M~`aMv(?G|WlM{S7%J|Hy_1D4^VxNZ~s*gt}VH#~QCci2Ys)jPR!cYYuDob&tL
zyMW-cWeeOfn-7%m*IS%hIJa{O(8$r@bC-3m!mV3T_`yzyfuDhyByiy#MD!Zacmdkp
zR*2s3vADR17s}p;s67u+AA>maBM`rZyd59WHVz~lh}aGITE@8k0`dCW!1x`A#%XNa
z{06j^d1zlTZ}3;3;Uao_d!a>t050B#=($CVpWy$Z4x;TU%FD~4M=iwTaR?s?M-mX5
zLlEH+yu7gpIR85^_7J`k<Is+rf%xV+xvWAz&iJNT<X7wg>L;k<Hy|8GN$IQn9waZ~
zoLz)|Dvp(v71|QW+kFap=M3_8?MC3h7<_GUXf@r?_ca64tK@bAXd0%*VfdR(Y}olO
zFv5L~k3p|&gOFU0^f5jHz5OaMv4o=HQr2h$+SlKaJ2{@1gH}BR$O+~gXI;sqVU)Hr
zz-8)h9EV;z$QsSi-wEw-KYY~_2-J0Ozdsn?$9<;ZYo8+L3)FR!Ixj=iCGg<E17cl4
zVDAXyxPSKy^SJl^M%KF<1v?I~H;joezIhOORW|~kbOONwY}>YtI)-Q;<s1gCq__@1
zw0}!ZTw8~cSIL}?%kUj-V{KTUR+B!?$a!FrHB8(g$9s6Opa7+%n<0)7C-e^djqJs-
zaa2@Pux~RcDlEh+Ma9q})E?&E;TVcHY~&fa%ee%Rmk(`E7+N#)BeRTSeuTVa4+7Qa
z$h#L$pFXA58EExG&=2+i{XBD0)hq_TOt4>%u&}TIj4pBBC+8{XHSBTKIK+wT@HNJe
z|8Wg@@!X9)BKL>DrDdKWp6R9pG)`Z&3E!c9VD>Ngk4^&3Q|#3wxlAJ(jY4CuMC=+i
z6>owT9>wFwj~P!p&(f18PayhkV{L7Xb!FbUy9n%yL96XTOG^uUhr4)Iy5Rq`587Ft
z)6Y)xE?h$KYi}}slIO1tsGZ|IypG`ZT4*P2V1T`AU=Q}6M(|)0{8b(BH}H-%lk@3C
zVCXjVL#;exH=zyABk*Azg5_TVFO?urUWwp)N0Gm)9s0?6<bTe!YnHmHeeO?`m6f^w
z1GeLsrs@3K;{;VeIz)x7pZt{4`j25caygmnPg?6fO*55~FKxqc3?s+F{8Tnwnr0|O
z#1M^HTTZ?~YKD|4DakS$pzzbNwrSexS1OgX4AV&)Eyu%8yNO{M7R{LrJbXGxJVmz(
zv_n~cHs3Z4`U%3}aCNaP%fmN9hBT7OFQu(u(`E4R4bzYzNBIqDJBoulJbd~sMJ_!u
zyK{dJKg5(}+i)Dmu%Fe`!&i)K$Fj)Vwvt(S&-5EqWSWGKQvG72J3M?_(&tcsOpys`
zXZ%@we%hp9gzS{7KU*KK{;H@-xSfW{2=w$bUv<rKX{1z)J3M?cr`B|gipwbQ^t-jE
zFxO{W(n%Ba^jmJz**{5+s#WQcgTESLn!;c!vu@SDj8e;3O(}npuN;4lekRF~;+^TO
z+9U^GeOfHzx{-sw&Yt}sUl(6pn}0s4rnDxdTz>8o<aw~HWQv#K`42Cg`zP=}zWxS?
CVwiIP

literal 0
HcmV?d00001

diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
new file mode 100644
index 00000000000..267224a79bf
--- /dev/null
+++ b/indra/win_crash_logger/llcrashloggerwindows.cpp
@@ -0,0 +1,536 @@
+/** 
+* @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
new file mode 100644
index 00000000000..f89b8708dc9
--- /dev/null
+++ b/indra/win_crash_logger/llcrashloggerwindows.h
@@ -0,0 +1,86 @@
+/** 
+* @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
new file mode 100644
index 00000000000..37a387275ed
--- /dev/null
+++ b/indra/win_crash_logger/resource.h
@@ -0,0 +1,63 @@
+/** 
+* @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
new file mode 100644
index 00000000000..58746eba025
--- /dev/null
+++ b/indra/win_crash_logger/win_crash_logger.cpp
@@ -0,0 +1,70 @@
+/** 
+ * @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
new file mode 100644
index 00000000000..2cc2cf3dcfc
--- /dev/null
+++ b/indra/win_crash_logger/win_crash_logger.h
@@ -0,0 +1,38 @@
+/** 
+ * @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.ico
new file mode 100644
index 0000000000000000000000000000000000000000..386883523bcc032db77b69b047cbc5c15ae3b7fe
GIT binary patch
literal 1078
zcmeH_K@!3s3`IZHwe$$AoF2oYaWszOk{jR)NR>_(PRDWOZ<G8GXgc9bPLo2IWw=k$
zl{n8WUz~I~NegQMyJ1deycF5Hk4TY9j4j}ySX4@hLaDDxF^2Kj5-$7VrCfZ@!g)^)
z2c`N~o@EQ<I4EaY4)g1ItG~gv4xrrt_S<J^O>gV)&%Zp6VccBVa2?uQ&sh9LW;!?J
w2dwKn!S@jnH5GJS10MR3&V{nkc?%F^XS#jrb=7ItXV>BJ*yg?&H~)SR4}%AClK=n!

literal 0
HcmV?d00001

diff --git a/indra/win_crash_logger/win_crash_logger.rc b/indra/win_crash_logger/win_crash_logger.rc
new file mode 100755
index 00000000000..2819722f636
--- /dev/null
+++ b/indra/win_crash_logger/win_crash_logger.rc
@@ -0,0 +1,188 @@
+// 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
+
-- 
GitLab