bug 1336548 - remove unused files from breakpad-client fork r?gsvelto draft
authorTed Mielczarek <ted@mielczarek.org>
Mon, 06 Feb 2017 15:49:22 -0500
changeset 480513 f346263c22c3483511a7935af7c0f5c93eae357b
parent 480512 b41f22afdc28d7cdcd7c92d4cc4dfda9b1383694
child 544973 143e8ba2a8ade3f41d7bc1f30de0c9f35827b002
push id44563
push userbmo:ted@mielczarek.org
push dateWed, 08 Feb 2017 11:45:29 +0000
reviewersgsvelto
bugs1336548
milestone54.0a1
bug 1336548 - remove unused files from breakpad-client fork r?gsvelto MozReview-Commit-ID: 64ktg9CBFkf
toolkit/crashreporter/breakpad-client/apple/Framework/BreakpadDefines.h
toolkit/crashreporter/breakpad-client/ios/Breakpad.h
toolkit/crashreporter/breakpad-client/ios/Breakpad.mm
toolkit/crashreporter/breakpad-client/ios/Breakpad.xcodeproj/project.pbxproj
toolkit/crashreporter/breakpad-client/ios/BreakpadController.h
toolkit/crashreporter/breakpad-client/ios/BreakpadController.mm
toolkit/crashreporter/breakpad-client/ios/Breakpad_Prefix.pch
toolkit/crashreporter/breakpad-client/ios/handler/ios_exception_minidump_generator.h
toolkit/crashreporter/breakpad-client/ios/handler/ios_exception_minidump_generator.mm
toolkit/crashreporter/breakpad-client/linux/sender/google_crash_report_sender.cc
toolkit/crashreporter/breakpad-client/mac/Breakpad.xcodeproj/project.pbxproj
toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad.h
toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad.mm
toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad_Prefix.pch
toolkit/crashreporter/breakpad-client/mac/Framework/Info.plist
toolkit/crashreporter/breakpad-client/mac/Framework/OnDemandServer.h
toolkit/crashreporter/breakpad-client/mac/Framework/OnDemandServer.mm
toolkit/crashreporter/breakpad-client/mac/UnitTests-Info.plist
toolkit/crashreporter/breakpad-client/mac/crash_generation/ConfigFile.h
toolkit/crashreporter/breakpad-client/mac/crash_generation/ConfigFile.mm
toolkit/crashreporter/breakpad-client/mac/crash_generation/Inspector.h
toolkit/crashreporter/breakpad-client/mac/crash_generation/Inspector.mm
toolkit/crashreporter/breakpad-client/mac/crash_generation/InspectorMain.mm
toolkit/crashreporter/breakpad-client/mac/gcov/libgcov.a
toolkit/crashreporter/breakpad-client/mac/handler/minidump_tests32-Info.plist
toolkit/crashreporter/breakpad-client/mac/handler/minidump_tests64-Info.plist
toolkit/crashreporter/breakpad-client/mac/handler/obj-cTestCases-Info.plist
toolkit/crashreporter/breakpad-client/mac/sender/Breakpad.xib
toolkit/crashreporter/breakpad-client/mac/sender/English.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/English.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/ReporterIcon.graffle
toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender-Info.plist
toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender.h
toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender.icns
toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender.m
toolkit/crashreporter/breakpad-client/mac/sender/da.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/da.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/de.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/de.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/es.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/es.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/fr.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/fr.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/goArrow.png
toolkit/crashreporter/breakpad-client/mac/sender/it.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/it.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/ja.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/ja.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/nl.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/nl.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/no.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/no.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/sl.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/sl.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/sv.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/sv.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/tr.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/sender/tr.lproj/Localizable.strings
toolkit/crashreporter/breakpad-client/mac/sender/uploader.h
toolkit/crashreporter/breakpad-client/mac/sender/uploader.mm
toolkit/crashreporter/breakpad-client/mac/testapp/Controller.h
toolkit/crashreporter/breakpad-client/mac/testapp/Controller.m
toolkit/crashreporter/breakpad-client/mac/testapp/English.lproj/InfoPlist.strings
toolkit/crashreporter/breakpad-client/mac/testapp/English.lproj/MainMenu.xib
toolkit/crashreporter/breakpad-client/mac/testapp/Info.plist
toolkit/crashreporter/breakpad-client/mac/testapp/TestClass.h
toolkit/crashreporter/breakpad-client/mac/testapp/TestClass.mm
toolkit/crashreporter/breakpad-client/mac/testapp/bomb.icns
toolkit/crashreporter/breakpad-client/mac/testapp/crashInMain
toolkit/crashreporter/breakpad-client/mac/testapp/crashduringload
toolkit/crashreporter/breakpad-client/mac/testapp/main.m
toolkit/crashreporter/breakpad-client/solaris/handler/Makefile
toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler.cc
toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler.h
toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler_test.cc
toolkit/crashreporter/breakpad-client/solaris/handler/minidump_generator.cc
toolkit/crashreporter/breakpad-client/solaris/handler/minidump_generator.h
toolkit/crashreporter/breakpad-client/solaris/handler/minidump_test.cc
toolkit/crashreporter/breakpad-client/solaris/handler/moz.build
toolkit/crashreporter/breakpad-client/solaris/handler/solaris_lwp.cc
toolkit/crashreporter/breakpad-client/solaris/handler/solaris_lwp.h
toolkit/crashreporter/breakpad-client/windows/breakpad_client.gyp
toolkit/crashreporter/breakpad-client/windows/crash_generation/crash_generation.gyp
toolkit/crashreporter/breakpad-client/windows/handler/exception_handler.gyp
toolkit/crashreporter/breakpad-client/windows/sender/crash_report_sender.gyp
toolkit/crashreporter/breakpad-client/windows/sender/objs.mozbuild
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/abstract_class.cc
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/abstract_class.h
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.cc
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.gyp
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.h
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.ico
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.rc
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/resource.h
toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/small.ico
toolkit/crashreporter/breakpad-client/windows/unittests/client_tests.gyp
toolkit/crashreporter/breakpad-client/windows/unittests/testing.gyp
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/apple/Framework/BreakpadDefines.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Keys for configuration file
-#define kReporterMinidumpDirectoryKey "MinidumpDir"
-#define kReporterMinidumpIDKey        "MinidumpID"
-
-// Filename for recording uploaded IDs
-#define kReporterLogFilename          "uploads.log"
-
-// The default subdirectory of the Library to put crash dumps in
-// The subdirectory is
-//  ~/Library/<kDefaultLibrarySubdirectory>/<GoogleBreakpadProduct>
-#define kDefaultLibrarySubdirectory   "Breakpad"
-
-// Specify some special keys to be used in the configuration file that is
-// generated by Breakpad and consumed by the crash_sender.
-#define BREAKPAD_PRODUCT               "BreakpadProduct"
-#define BREAKPAD_PRODUCT_DISPLAY       "BreakpadProductDisplay"
-#define BREAKPAD_VERSION               "BreakpadVersion"
-#define BREAKPAD_VENDOR                "BreakpadVendor"
-#define BREAKPAD_URL                   "BreakpadURL"
-#define BREAKPAD_REPORT_INTERVAL       "BreakpadReportInterval"
-#define BREAKPAD_SKIP_CONFIRM          "BreakpadSkipConfirm"
-#define BREAKPAD_CONFIRM_TIMEOUT       "BreakpadConfirmTimeout"
-#define BREAKPAD_SEND_AND_EXIT         "BreakpadSendAndExit"
-#define BREAKPAD_DUMP_DIRECTORY        "BreakpadMinidumpLocation"
-#define BREAKPAD_INSPECTOR_LOCATION    "BreakpadInspectorLocation"
-#define BREAKPAD_REPORTER_EXE_LOCATION \
-  "BreakpadReporterExeLocation"
-#define BREAKPAD_LOGFILES              "BreakpadLogFiles"
-#define BREAKPAD_LOGFILE_UPLOAD_SIZE   "BreakpadLogFileTailSize"
-#define BREAKPAD_REQUEST_COMMENTS      "BreakpadRequestComments"
-#define BREAKPAD_COMMENTS              "BreakpadComments"
-#define BREAKPAD_REQUEST_EMAIL         "BreakpadRequestEmail"
-#define BREAKPAD_EMAIL                 "BreakpadEmail"
-#define BREAKPAD_SERVER_TYPE           "BreakpadServerType"
-#define BREAKPAD_SERVER_PARAMETER_DICT "BreakpadServerParameters"
-#define BREAKPAD_IN_PROCESS            "BreakpadInProcess"
-
-// The keys below are NOT user supplied, and are used internally.
-#define BREAKPAD_PROCESS_START_TIME       "BreakpadProcStartTime"
-#define BREAKPAD_PROCESS_UP_TIME          "BreakpadProcessUpTime"
-#define BREAKPAD_PROCESS_CRASH_TIME       "BreakpadProcessCrashTime"
-#define BREAKPAD_LOGFILE_KEY_PREFIX       "BreakpadAppLogFile"
-#define BREAKPAD_SERVER_PARAMETER_PREFIX  "BreakpadServerParameterPrefix_"
-#define BREAKPAD_ON_DEMAND                "BreakpadOnDemand"
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/Breakpad.h
+++ /dev/null
@@ -1,246 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Framework to provide a simple C API to crash reporting for
-// applications.  By default, if any machine-level exception (e.g.,
-// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef
-// object as follows:
-//
-// 1. Create a minidump file (see Breakpad for details)
-// 2. Create a config file.
-//
-// These files can then be uploaded to a server.
-
-typedef void *BreakpadRef;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <Foundation/Foundation.h>
-
-#include <client/apple/Framework/BreakpadDefines.h>
-
-// The keys in the dictionary returned by |BreakpadGenerateReport|.
-#define BREAKPAD_OUTPUT_DUMP_FILE   "BreakpadDumpFile"
-#define BREAKPAD_OUTPUT_CONFIG_FILE "BreakpadConfigFile"
-
-// Optional user-defined function to decide if we should handle this crash or
-// forward it along.
-// Return true if you want Breakpad to handle it.
-// Return false if you want Breakpad to skip it
-// The exception handler always returns false, as if SEND_AND_EXIT were false
-// (which means the next exception handler will take the exception)
-typedef bool (*BreakpadFilterCallback)(int exception_type,
-                                       int exception_code,
-                                       mach_port_t crashing_thread,
-                                       void *context);
-
-// Create a new BreakpadRef object and install it as an exception
-// handler.  The |parameters| will typically be the contents of your
-// bundle's Info.plist.
-//
-// You can also specify these additional keys for customizable behavior:
-// Key:                           Value:
-// BREAKPAD_PRODUCT               Product name (e.g., "MyAwesomeProduct")
-//                                This one is used as the key to identify
-//                                the product when uploading. Falls back to
-//                                CFBundleName if not specified.
-//                                REQUIRED
-//
-// BREAKPAD_PRODUCT_DISPLAY       This is the display name, e.g. a pretty
-//                                name for the product when the crash_sender
-//                                pops up UI for the user. Falls back first to
-//                                CFBundleDisplayName and then to
-//                                BREAKPAD_PRODUCT if not specified.
-//
-// BREAKPAD_VERSION               Product version (e.g., 1.2.3), used
-//                                as metadata for crash report. Falls back to
-//                                CFBundleVersion if not specified.
-//                                REQUIRED
-//
-// BREAKPAD_VENDOR                Vendor name, used in UI (e.g. "A report has
-//                                been created that you can send to <vendor>")
-//
-// BREAKPAD_URL                   URL destination for reporting
-//                                REQUIRED
-//
-// BREAKPAD_DUMP_DIRECTORY        The directory to store crash-dumps
-//                                in. By default, we use
-//                                ~/Library/Cache/Breakpad/<BREAKPAD_PRODUCT>
-//                                The path you specify here is tilde-expanded.
-//
-// BREAKPAD_SERVER_TYPE           A parameter that tells Breakpad how to
-//                                rewrite the upload parameters for a specific
-//                                server type.  The currently valid values are
-//                                'socorro' or 'google'.  If you want to add
-//                                other types, see the function in
-//                                crash_report_sender.m that maps parameters to
-//                                URL parameters.  Defaults to 'google'.
-//
-// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static
-//                                parameters that are uploaded to the
-//                                server.  The parameters are sent as
-//                                is to the crash server.  Their
-//                                content isn't added to the minidump
-//                                but pass as URL parameters when
-//                                uploading theminidump to the crash
-//                                server.
-//=============================================================================
-// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are
-// required to have non-NULL values.  By default, the BREAKPAD_PRODUCT
-// will be the CFBundleName and the BREAKPAD_VERSION will be the
-// CFBundleVersion when these keys are present in the bundle's
-// Info.plist, which is usually passed in to BreakpadCreate() as an
-// NSDictionary (you could also pass in another dictionary that had
-// the same keys configured).  If the BREAKPAD_PRODUCT or
-// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will
-// fail.  You have been warned.
-//
-// If you are running in a debugger, Breakpad will not install, unless the
-// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero.
-//
-//=============================================================================
-// The following are NOT user-supplied but are documented here for
-// completeness.  They are calculated by Breakpad during initialization &
-// crash-dump generation, or entered in by the user.
-//
-// BREAKPAD_PROCESS_START_TIME       The time, in seconds since the Epoch, the
-//                                   process started
-//
-// BREAKPAD_PROCESS_CRASH_TIME       The time, in seconds since the Epoch, the
-//                                   process crashed.
-//
-// BREAKPAD_PROCESS_UP_TIME          The total time in milliseconds the process
-//                                   has been running.  This parameter is not
-//                                   set until the crash-dump-generation phase.
-//
-// BREAKPAD_SERVER_PARAMETER_PREFIX  This prefix is used by Breakpad
-//                                   internally, because Breakpad uses
-//                                   the same dictionary internally to
-//                                   track both its internal
-//                                   configuration parameters and
-//                                   parameters meant to be uploaded
-//                                   to the server.  This string is
-//                                   used internally by Breakpad to
-//                                   prefix user-supplied parameter
-//                                   names so those can be sent to the
-//                                   server without leaking Breakpad's
-//                                   internal values.
-
-// Returns a new BreakpadRef object on success, NULL otherwise.
-BreakpadRef BreakpadCreate(NSDictionary *parameters);
-
-// Uninstall and release the data associated with |ref|.
-void BreakpadRelease(BreakpadRef ref);
-
-// User defined key and value string storage.  Generally this is used
-// to configure Breakpad's internal operation, such as whether the
-// crash_sender should prompt the user, or the filesystem location for
-// the minidump file.  See Breakpad.h for some parameters that can be
-// set.  Anything longer than 255 bytes will be truncated. Note that
-// the string is converted to UTF8 before truncation, so any multibyte
-// character that straddles the 255(256 - 1 for terminator) byte limit
-// will be mangled.
-//
-// A maximum number of 64 key/value pairs are supported.  An assert()
-// will fire if more than this number are set.  Unfortunately, right
-// now, the same dictionary is used for both Breakpad's parameters AND
-// the Upload parameters.
-//
-// TODO (nealsid): Investigate how necessary this is if we don't
-// automatically upload parameters to the server anymore.
-// TODO (nealsid): separate server parameter dictionary from the
-// dictionary used to configure Breakpad, and document limits for each
-// independently.
-void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value);
-NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key);
-void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key);
-
-// You can use this method to specify parameters that will be uploaded
-// to the crash server.  They will be automatically encoded as
-// necessary.  Note that as mentioned above there are limits on both
-// the number of keys and their length.
-void BreakpadAddUploadParameter(BreakpadRef ref, NSString *key,
-                                NSString *value);
-
-// This method will remove a previously-added parameter from the
-// upload parameter set.
-void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString *key);
-
-// Method to handle uploading data to the server
-
-// Returns the number of crash reports waiting to send to the server.
-int BreakpadGetCrashReportCount(BreakpadRef ref);
-
-// Returns the next upload configuration. The report file is deleted.
-NSDictionary *BreakpadGetNextReportConfiguration(BreakpadRef ref);
-
-// Upload next report to the server.
-void BreakpadUploadNextReport(BreakpadRef ref);
-
-// Upload next report to the server.
-// |server_parameters| is additional server parameters to send.
-void BreakpadUploadNextReportWithParameters(BreakpadRef ref,
-                                            NSDictionary *server_parameters);
-
-// Upload a report to the server.
-// |server_parameters| is additional server parameters to send.
-// |configuration| is the configuration of the breakpad report to send.
-void BreakpadUploadReportWithParametersAndConfiguration(
-    BreakpadRef ref,
-    NSDictionary *server_parameters,
-    NSDictionary *configuration);
-
-// Handles the network response of a breakpad upload. This function is needed if
-// the actual upload is done by the Breakpad client.
-// |configuration| is the configuration of the upload. It must contain the same
-// fields as the configuration passed to
-// BreakpadUploadReportWithParametersAndConfiguration.
-// |data| and |error| contain the network response.
-void BreakpadHandleNetworkResponse(BreakpadRef ref,
-                                   NSDictionary *configuration,
-                                   NSData *data,
-                                   NSError *error);
-
-// Upload a file to the server. |data| is the content of the file to sent.
-// |server_parameters| is additional server parameters to send.
-void BreakpadUploadData(BreakpadRef ref, NSData *data, NSString *name,
-                        NSDictionary *server_parameters);
-
-// Generate a breakpad minidump and configuration file in the dump directory.
-// The report will be available for uploading. The paths of the created files
-// are returned in the dictionary. |server_parameters| is additional server
-// parameters to add in the config file.
-NSDictionary *BreakpadGenerateReport(BreakpadRef ref,
-                                     NSDictionary *server_parameters);
-
-#ifdef __cplusplus
-}
-#endif
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/Breakpad.mm
+++ /dev/null
@@ -1,916 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#define IGNORE_DEBUGGER "BREAKPAD_IGNORE_DEBUGGER"
-
-#import "client/ios/Breakpad.h"
-
-#include <assert.h>
-#import <Foundation/Foundation.h>
-#include <pthread.h>
-#include <sys/stat.h>
-#include <sys/sysctl.h>
-
-#import "client/ios/handler/ios_exception_minidump_generator.h"
-#import "client/mac/crash_generation/ConfigFile.h"
-#import "client/mac/handler/exception_handler.h"
-#import "client/mac/handler/minidump_generator.h"
-#import "client/mac/sender/uploader.h"
-#import "client/mac/handler/protected_memory_allocator.h"
-#import "common/simple_string_dictionary.h"
-
-#if !defined(__EXCEPTIONS) || (__clang__ && !__has_feature(cxx_exceptions))
-// This file uses C++ try/catch (but shouldn't). Duplicate the macros from
-// <c++/4.2.1/exception_defines.h> allowing this file to work properly with
-// exceptions disabled even when other C++ libraries are used. #undef the try
-// and catch macros first in case libstdc++ is in use and has already provided
-// its own definitions.
-#undef try
-#define try       if (true)
-#undef catch
-#define catch(X)  if (false)
-#endif  // __EXCEPTIONS
-
-using google_breakpad::ConfigFile;
-using google_breakpad::EnsureDirectoryPathExists;
-using google_breakpad::SimpleStringDictionary;
-
-//=============================================================================
-// We want any memory allocations which are used by breakpad during the
-// exception handling process (after a crash has happened) to be read-only
-// to prevent them from being smashed before a crash occurs.  Unfortunately
-// we cannot protect against smashes to our exception handling thread's
-// stack.
-//
-// NOTE: Any memory allocations which are not used during the exception
-// handling process may be allocated in the normal ways.
-//
-// The ProtectedMemoryAllocator class provides an Allocate() method which
-// we'll using in conjunction with placement operator new() to control
-// allocation of C++ objects.  Note that we don't use operator delete()
-// but instead call the objects destructor directly:  object->~ClassName();
-//
-ProtectedMemoryAllocator *gMasterAllocator = NULL;
-ProtectedMemoryAllocator *gKeyValueAllocator = NULL;
-ProtectedMemoryAllocator *gBreakpadAllocator = NULL;
-
-// Mutex for thread-safe access to the key/value dictionary used by breakpad.
-// It's a global instead of an instance variable of Breakpad
-// since it can't live in a protected memory area.
-pthread_mutex_t gDictionaryMutex;
-
-//=============================================================================
-// Stack-based object for thread-safe access to a memory-protected region.
-// It's assumed that normally the memory block (allocated by the allocator)
-// is protected (read-only).  Creating a stack-based instance of
-// ProtectedMemoryLocker will unprotect this block after taking the lock.
-// Its destructor will first re-protect the memory then release the lock.
-class ProtectedMemoryLocker {
- public:
-  ProtectedMemoryLocker(pthread_mutex_t *mutex,
-                        ProtectedMemoryAllocator *allocator)
-      : mutex_(mutex),
-        allocator_(allocator) {
-    // Lock the mutex
-    __attribute__((unused)) int rv = pthread_mutex_lock(mutex_);
-    assert(rv == 0);
-
-    // Unprotect the memory
-    allocator_->Unprotect();
-  }
-
-  ~ProtectedMemoryLocker() {
-    // First protect the memory
-    allocator_->Protect();
-
-    // Then unlock the mutex
-    __attribute__((unused)) int rv = pthread_mutex_unlock(mutex_);
-    assert(rv == 0);
-  };
-
- private:
-  ProtectedMemoryLocker();
-  ProtectedMemoryLocker(const ProtectedMemoryLocker&);
-  ProtectedMemoryLocker& operator=(const ProtectedMemoryLocker&);
-
-  pthread_mutex_t           *mutex_;
-  ProtectedMemoryAllocator  *allocator_;
-};
-
-//=============================================================================
-class Breakpad {
- public:
-  // factory method
-  static Breakpad *Create(NSDictionary *parameters) {
-    // Allocate from our special allocation pool
-    Breakpad *breakpad =
-      new (gBreakpadAllocator->Allocate(sizeof(Breakpad)))
-        Breakpad();
-
-    if (!breakpad)
-      return NULL;
-
-    if (!breakpad->Initialize(parameters)) {
-      // Don't use operator delete() here since we allocated from special pool
-      breakpad->~Breakpad();
-      return NULL;
-    }
-
-    return breakpad;
-  }
-
-  ~Breakpad();
-
-  void SetKeyValue(NSString *key, NSString *value);
-  NSString *KeyValue(NSString *key);
-  void RemoveKeyValue(NSString *key);
-  NSArray *CrashReportsToUpload();
-  NSString *NextCrashReportToUpload();
-  NSDictionary *NextCrashReportConfiguration();
-  void UploadNextReport(NSDictionary *server_parameters);
-  void UploadReportWithConfiguration(NSDictionary *configuration,
-                                     NSDictionary *server_parameters);
-  void UploadData(NSData *data, NSString *name,
-                  NSDictionary *server_parameters);
-  void HandleNetworkResponse(NSDictionary *configuration,
-                             NSData *data,
-                             NSError *error);
-  NSDictionary *GenerateReport(NSDictionary *server_parameters);
-
- private:
-  Breakpad()
-    : handler_(NULL),
-      config_params_(NULL) {}
-
-  bool Initialize(NSDictionary *parameters);
-
-  bool ExtractParameters(NSDictionary *parameters);
-
-  // Dispatches to HandleMinidump()
-  static bool HandleMinidumpCallback(const char *dump_dir,
-                                     const char *minidump_id,
-                                     void *context, bool succeeded);
-
-  bool HandleMinidump(const char *dump_dir,
-                      const char *minidump_id);
-
-  // NSException handler
-  static void UncaughtExceptionHandler(NSException *exception);
-
-  // Handle an uncaught NSException.
-  void HandleUncaughtException(NSException *exception);
-
-  // Since ExceptionHandler (w/o namespace) is defined as typedef in OSX's
-  // MachineExceptions.h, we have to explicitly name the handler.
-  google_breakpad::ExceptionHandler *handler_; // The actual handler (STRONG)
-
-  SimpleStringDictionary  *config_params_; // Create parameters (STRONG)
-
-  ConfigFile config_file_;
-
-  // A static reference to the current Breakpad instance. Used for handling
-  // NSException.
-  static Breakpad *current_breakpad_;
-};
-
-Breakpad *Breakpad::current_breakpad_ = NULL;
-
-#pragma mark -
-#pragma mark Helper functions
-
-//=============================================================================
-// Helper functions
-
-//=============================================================================
-static BOOL IsDebuggerActive() {
-  BOOL result = NO;
-  NSUserDefaults *stdDefaults = [NSUserDefaults standardUserDefaults];
-
-  // We check both defaults and the environment variable here
-
-  BOOL ignoreDebugger = [stdDefaults boolForKey:@IGNORE_DEBUGGER];
-
-  if (!ignoreDebugger) {
-    char *ignoreDebuggerStr = getenv(IGNORE_DEBUGGER);
-    ignoreDebugger =
-        (ignoreDebuggerStr ? strtol(ignoreDebuggerStr, NULL, 10) : 0) != 0;
-  }
-
-  if (!ignoreDebugger) {
-    pid_t pid = getpid();
-    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
-    int mibSize = sizeof(mib) / sizeof(int);
-    size_t actualSize;
-
-    if (sysctl(mib, mibSize, NULL, &actualSize, NULL, 0) == 0) {
-      struct kinfo_proc *info = (struct kinfo_proc *)malloc(actualSize);
-
-      if (info) {
-        // This comes from looking at the Darwin xnu Kernel
-        if (sysctl(mib, mibSize, info, &actualSize, NULL, 0) == 0)
-          result = (info->kp_proc.p_flag & P_TRACED) ? YES : NO;
-
-        free(info);
-      }
-    }
-  }
-
-  return result;
-}
-
-//=============================================================================
-bool Breakpad::HandleMinidumpCallback(const char *dump_dir,
-                                      const char *minidump_id,
-                                      void *context, bool succeeded) {
-  Breakpad *breakpad = (Breakpad *)context;
-
-  // If our context is damaged or something, just return false to indicate that
-  // the handler should continue without us.
-  if (!breakpad || !succeeded)
-    return false;
-
-  return breakpad->HandleMinidump(dump_dir, minidump_id);
-}
-
-//=============================================================================
-void Breakpad::UncaughtExceptionHandler(NSException *exception) {
-  NSSetUncaughtExceptionHandler(NULL);
-  if (current_breakpad_) {
-    current_breakpad_->HandleUncaughtException(exception);
-    BreakpadRelease(current_breakpad_);
-  }
-}
-
-//=============================================================================
-#pragma mark -
-
-//=============================================================================
-bool Breakpad::Initialize(NSDictionary *parameters) {
-  // Initialize
-  current_breakpad_ = this;
-  config_params_ = NULL;
-  handler_ = NULL;
-
-  // Gather any user specified parameters
-  if (!ExtractParameters(parameters)) {
-    return false;
-  }
-
-  // Check for debugger
-  if (IsDebuggerActive()) {
-    return true;
-  }
-
-  // Create the handler (allocating it in our special protected pool)
-  handler_ =
-      new (gBreakpadAllocator->Allocate(
-          sizeof(google_breakpad::ExceptionHandler)))
-          google_breakpad::ExceptionHandler(
-              config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY),
-              0, &HandleMinidumpCallback, this, true, 0);
-  NSSetUncaughtExceptionHandler(&Breakpad::UncaughtExceptionHandler);
-  return true;
-}
-
-//=============================================================================
-Breakpad::~Breakpad() {
-  NSSetUncaughtExceptionHandler(NULL);
-  current_breakpad_ = NULL;
-  // Note that we don't use operator delete() on these pointers,
-  // since they were allocated by ProtectedMemoryAllocator objects.
-  //
-  if (config_params_) {
-    config_params_->~SimpleStringDictionary();
-  }
-
-  if (handler_)
-    handler_->~ExceptionHandler();
-}
-
-//=============================================================================
-bool Breakpad::ExtractParameters(NSDictionary *parameters) {
-  NSString *serverType = [parameters objectForKey:@BREAKPAD_SERVER_TYPE];
-  NSString *display = [parameters objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
-  NSString *product = [parameters objectForKey:@BREAKPAD_PRODUCT];
-  NSString *version = [parameters objectForKey:@BREAKPAD_VERSION];
-  NSString *urlStr = [parameters objectForKey:@BREAKPAD_URL];
-  NSString *vendor =
-      [parameters objectForKey:@BREAKPAD_VENDOR];
-  // We check both parameters and the environment variable here.
-  char *envVarDumpSubdirectory = getenv(BREAKPAD_DUMP_DIRECTORY);
-  NSString *dumpSubdirectory = envVarDumpSubdirectory ?
-      [NSString stringWithUTF8String:envVarDumpSubdirectory] :
-          [parameters objectForKey:@BREAKPAD_DUMP_DIRECTORY];
-
-  NSDictionary *serverParameters =
-      [parameters objectForKey:@BREAKPAD_SERVER_PARAMETER_DICT];
-
-  if (!product)
-    product = [parameters objectForKey:@"CFBundleName"];
-
-  if (!display) {
-    display = [parameters objectForKey:@"CFBundleDisplayName"];
-    if (!display) {
-      display = product;
-    }
-  }
-
-  if (!version.length)  // Default nil or empty string to CFBundleVersion
-    version = [parameters objectForKey:@"CFBundleVersion"];
-
-  if (!vendor) {
-    vendor = @"Vendor not specified";
-  }
-
-  if (!dumpSubdirectory) {
-    NSString *cachePath =
-        [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
-                                             NSUserDomainMask,
-                                             YES)
-            objectAtIndex:0];
-    dumpSubdirectory =
-        [cachePath stringByAppendingPathComponent:@kDefaultLibrarySubdirectory];
-
-    EnsureDirectoryPathExists(dumpSubdirectory);
-  }
-
-  // The product, version, and URL are required values.
-  if (![product length]) {
-    return false;
-  }
-
-  if (![version length]) {
-    return false;
-  }
-
-  if (![urlStr length]) {
-    return false;
-  }
-
-  config_params_ =
-      new (gKeyValueAllocator->Allocate(sizeof(SimpleStringDictionary)) )
-        SimpleStringDictionary();
-
-  SimpleStringDictionary &dictionary = *config_params_;
-
-  dictionary.SetKeyValue(BREAKPAD_SERVER_TYPE,     [serverType UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_PRODUCT_DISPLAY, [display UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_PRODUCT,         [product UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_VERSION,         [version UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_URL,             [urlStr UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_VENDOR,          [vendor UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_DUMP_DIRECTORY,
-                         [dumpSubdirectory UTF8String]);
-
-  struct timeval tv;
-  gettimeofday(&tv, NULL);
-  char timeStartedString[32];
-  sprintf(timeStartedString, "%zd", tv.tv_sec);
-  dictionary.SetKeyValue(BREAKPAD_PROCESS_START_TIME, timeStartedString);
-
-  if (serverParameters) {
-    // For each key-value pair, call BreakpadAddUploadParameter()
-    NSEnumerator *keyEnumerator = [serverParameters keyEnumerator];
-    NSString *aParameter;
-    while ((aParameter = [keyEnumerator nextObject])) {
-      BreakpadAddUploadParameter(this, aParameter,
-				 [serverParameters objectForKey:aParameter]);
-    }
-  }
-  return true;
-}
-
-//=============================================================================
-void Breakpad::SetKeyValue(NSString *key, NSString *value) {
-  // We allow nil values. This is the same as removing the keyvalue.
-  if (!config_params_ || !key)
-    return;
-
-  config_params_->SetKeyValue([key UTF8String], [value UTF8String]);
-}
-
-//=============================================================================
-NSString *Breakpad::KeyValue(NSString *key) {
-  if (!config_params_ || !key)
-    return nil;
-
-  const char *value = config_params_->GetValueForKey([key UTF8String]);
-  return value ? [NSString stringWithUTF8String:value] : nil;
-}
-
-//=============================================================================
-void Breakpad::RemoveKeyValue(NSString *key) {
-  if (!config_params_ || !key) return;
-
-  config_params_->RemoveKey([key UTF8String]);
-}
-
-//=============================================================================
-NSArray *Breakpad::CrashReportsToUpload() {
-  NSString *directory = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
-  if (!directory)
-    return nil;
-  NSArray *dirContents = [[NSFileManager defaultManager]
-      contentsOfDirectoryAtPath:directory error:nil];
-  NSArray *configs = [dirContents filteredArrayUsingPredicate:[NSPredicate
-      predicateWithFormat:@"self BEGINSWITH 'Config-'"]];
-  return configs;
-}
-
-//=============================================================================
-NSString *Breakpad::NextCrashReportToUpload() {
-  NSString *directory = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
-  if (!directory)
-    return nil;
-  NSString *config = [CrashReportsToUpload() lastObject];
-  if (!config)
-    return nil;
-  return [NSString stringWithFormat:@"%@/%@", directory, config];
-}
-
-//=============================================================================
-NSDictionary *Breakpad::NextCrashReportConfiguration() {
-  return [Uploader readConfigurationDataFromFile:NextCrashReportToUpload()];
-}
-
-//=============================================================================
-void Breakpad::HandleNetworkResponse(NSDictionary *configuration,
-                                     NSData *data,
-                                     NSError *error) {
-  Uploader *uploader = [[[Uploader alloc]
-      initWithConfig:configuration] autorelease];
-  [uploader handleNetworkResponse:data withError:error];
-}
-
-//=============================================================================
-void Breakpad::UploadReportWithConfiguration(NSDictionary *configuration,
-                                             NSDictionary *server_parameters) {
-  Uploader *uploader = [[[Uploader alloc]
-      initWithConfig:configuration] autorelease];
-  if (!uploader)
-    return;
-  for (NSString *key in server_parameters) {
-    [uploader addServerParameter:[server_parameters objectForKey:key]
-                          forKey:key];
-  }
-  [uploader report];
-}
-
-//=============================================================================
-void Breakpad::UploadNextReport(NSDictionary *server_parameters) {
-  NSDictionary *configuration = NextCrashReportConfiguration();
-  if (configuration) {
-    return UploadReportWithConfiguration(configuration, server_parameters);
-  }
-}
-
-//=============================================================================
-void Breakpad::UploadData(NSData *data, NSString *name,
-                          NSDictionary *server_parameters) {
-  NSMutableDictionary *config = [NSMutableDictionary dictionary];
-
-  SimpleStringDictionary::Iterator it(*config_params_);
-  while (const SimpleStringDictionary::Entry *next = it.Next()) {
-    [config setValue:[NSString stringWithUTF8String:next->value]
-              forKey:[NSString stringWithUTF8String:next->key]];
-  }
-
-  Uploader *uploader =
-      [[[Uploader alloc] initWithConfig:config] autorelease];
-  for (NSString *key in server_parameters) {
-    [uploader addServerParameter:[server_parameters objectForKey:key]
-                          forKey:key];
-  }
-  [uploader uploadData:data name:name];
-}
-
-//=============================================================================
-NSDictionary *Breakpad::GenerateReport(NSDictionary *server_parameters) {
-  NSString *dumpDirAsNSString = KeyValue(@BREAKPAD_DUMP_DIRECTORY);
-  if (!dumpDirAsNSString)
-    return nil;
-  const char *dumpDir = [dumpDirAsNSString UTF8String];
-
-  google_breakpad::MinidumpGenerator generator(mach_task_self(),
-                                               MACH_PORT_NULL);
-  std::string dumpId;
-  std::string dumpFilename = generator.UniqueNameInDirectory(dumpDir, &dumpId);
-  bool success = generator.Write(dumpFilename.c_str());
-  if (!success)
-    return nil;
-
-  SimpleStringDictionary params = *config_params_;
-  for (NSString *key in server_parameters) {
-    params.SetKeyValue([key UTF8String],
-                       [[server_parameters objectForKey:key] UTF8String]);
-  }
-  ConfigFile config_file;
-  config_file.WriteFile(dumpDir, &params, dumpDir, dumpId.c_str());
-
-  // Handle results.
-  NSMutableDictionary *result = [NSMutableDictionary dictionary];
-  NSString *dumpFullPath = [NSString stringWithUTF8String:dumpFilename.c_str()];
-  [result setValue:dumpFullPath
-            forKey:@BREAKPAD_OUTPUT_DUMP_FILE];
-  [result setValue:[NSString stringWithUTF8String:config_file.GetFilePath()]
-            forKey:@BREAKPAD_OUTPUT_CONFIG_FILE];
-  return result;
-}
-
-//=============================================================================
-bool Breakpad::HandleMinidump(const char *dump_dir,
-                              const char *minidump_id) {
-  config_file_.WriteFile(dump_dir,
-                         config_params_,
-                         dump_dir,
-                         minidump_id);
-
-  // Return true here to indicate that we've processed things as much as we
-  // want.
-  return true;
-}
-
-//=============================================================================
-void Breakpad::HandleUncaughtException(NSException *exception) {
-  // Generate the minidump.
-  google_breakpad::IosExceptionMinidumpGenerator generator(exception);
-  const char *minidump_path =
-      config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY);
-  std::string minidump_id;
-  std::string minidump_filename = generator.UniqueNameInDirectory(minidump_path,
-                                                                  &minidump_id);
-  generator.Write(minidump_filename.c_str());
-
-  // Copy the config params and our custom parameter. This is necessary for 2
-  // reasons:
-  // 1- config_params_ is protected.
-  // 2- If the application crash while trying to handle this exception, a usual
-  //    report will be generated. This report must not contain these special
-  //    keys.
-  SimpleStringDictionary params = *config_params_;
-  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "type", "exception");
-  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "exceptionName",
-                     [[exception name] UTF8String]);
-  params.SetKeyValue(BREAKPAD_SERVER_PARAMETER_PREFIX "exceptionReason",
-                     [[exception reason] UTF8String]);
-
-  // And finally write the config file.
-  ConfigFile config_file;
-  config_file.WriteFile(minidump_path,
-                        &params,
-                        minidump_path,
-                        minidump_id.c_str());
-}
-
-//=============================================================================
-
-#pragma mark -
-#pragma mark Public API
-
-//=============================================================================
-BreakpadRef BreakpadCreate(NSDictionary *parameters) {
-  try {
-    // This is confusing.  Our two main allocators for breakpad memory are:
-    //    - gKeyValueAllocator for the key/value memory
-    //    - gBreakpadAllocator for the Breakpad, ExceptionHandler, and other
-    //      breakpad allocations which are accessed at exception handling time.
-    //
-    // But in order to avoid these two allocators themselves from being smashed,
-    // we'll protect them as well by allocating them with gMasterAllocator.
-    //
-    // gMasterAllocator itself will NOT be protected, but this doesn't matter,
-    // since once it does its allocations and locks the memory, smashes to
-    // itself don't affect anything we care about.
-    gMasterAllocator =
-        new ProtectedMemoryAllocator(sizeof(ProtectedMemoryAllocator) * 2);
-
-    gKeyValueAllocator =
-        new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
-            ProtectedMemoryAllocator(sizeof(SimpleStringDictionary));
-
-    // Create a mutex for use in accessing the SimpleStringDictionary
-    int mutexResult = pthread_mutex_init(&gDictionaryMutex, NULL);
-    if (mutexResult == 0) {
-
-      // With the current compiler, gBreakpadAllocator is allocating 1444 bytes.
-      // Let's round up to the nearest page size.
-      //
-      int breakpad_pool_size = 4096;
-
-      /*
-       sizeof(Breakpad)
-       + sizeof(google_breakpad::ExceptionHandler)
-       + sizeof( STUFF ALLOCATED INSIDE ExceptionHandler )
-       */
-
-      gBreakpadAllocator =
-          new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
-              ProtectedMemoryAllocator(breakpad_pool_size);
-
-      // Stack-based autorelease pool for Breakpad::Create() obj-c code.
-      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-      Breakpad *breakpad = Breakpad::Create(parameters);
-
-      if (breakpad) {
-        // Make read-only to protect against memory smashers
-        gMasterAllocator->Protect();
-        gKeyValueAllocator->Protect();
-        gBreakpadAllocator->Protect();
-        // Can uncomment this line to figure out how much space was actually
-        // allocated using this allocator
-        //     printf("gBreakpadAllocator allocated size = %d\n",
-        //         gBreakpadAllocator->GetAllocatedSize() );
-        [pool release];
-        return (BreakpadRef)breakpad;
-      }
-
-      [pool release];
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadCreate() : error\n");
-  }
-
-  if (gKeyValueAllocator) {
-    gKeyValueAllocator->~ProtectedMemoryAllocator();
-    gKeyValueAllocator = NULL;
-  }
-
-  if (gBreakpadAllocator) {
-    gBreakpadAllocator->~ProtectedMemoryAllocator();
-    gBreakpadAllocator = NULL;
-  }
-
-  delete gMasterAllocator;
-  gMasterAllocator = NULL;
-
-  return NULL;
-}
-
-//=============================================================================
-void BreakpadRelease(BreakpadRef ref) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (gMasterAllocator) {
-      gMasterAllocator->Unprotect();
-      gKeyValueAllocator->Unprotect();
-      gBreakpadAllocator->Unprotect();
-
-      breakpad->~Breakpad();
-
-      // Unfortunately, it's not possible to deallocate this stuff
-      // because the exception handling thread is still finishing up
-      // asynchronously at this point...  OK, it could be done with
-      // locks, etc.  But since BreakpadRelease() should usually only
-      // be called right before the process exits, it's not worth
-      // deallocating this stuff.
-#if 0
-      gKeyValueAllocator->~ProtectedMemoryAllocator();
-      gBreakpadAllocator->~ProtectedMemoryAllocator();
-      delete gMasterAllocator;
-
-      gMasterAllocator = NULL;
-      gKeyValueAllocator = NULL;
-      gBreakpadAllocator = NULL;
-#endif
-
-      pthread_mutex_destroy(&gDictionaryMutex);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRelease() : error\n");
-  }
-}
-
-//=============================================================================
-void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      breakpad->SetKeyValue(key, value);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
-  }
-}
-
-void BreakpadAddUploadParameter(BreakpadRef ref,
-                                NSString *key,
-                                NSString *value) {
-  // The only difference, internally, between an upload parameter and
-  // a key value one that is set with BreakpadSetKeyValue is that we
-  // prepend the keyname with a special prefix.  This informs the
-  // crash sender that the parameter should be sent along with the
-  // POST of the crash dump upload.
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      NSString *prefixedKey = [@BREAKPAD_SERVER_PARAMETER_PREFIX
-				stringByAppendingString:key];
-      breakpad->SetKeyValue(prefixedKey, value);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
-  }
-}
-
-void BreakpadRemoveUploadParameter(BreakpadRef ref,
-                                   NSString *key) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      NSString *prefixedKey = [NSString stringWithFormat:@"%@%@",
-                                        @BREAKPAD_SERVER_PARAMETER_PREFIX, key];
-      breakpad->RemoveKeyValue(prefixedKey);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
-  }
-}
-//=============================================================================
-NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key) {
-  NSString *value = nil;
-
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (!breakpad || !key || !gKeyValueAllocator)
-      return nil;
-
-    ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-    value = breakpad->KeyValue(key);
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadKeyValue() : error\n");
-  }
-
-  return value;
-}
-
-//=============================================================================
-void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      breakpad->RemoveKeyValue(key);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
-  }
-}
-
-//=============================================================================
-int BreakpadGetCrashReportCount(BreakpadRef ref) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad) {
-       return static_cast<int>([breakpad->CrashReportsToUpload() count]);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadGetCrashReportCount() : error\n");
-  }
-  return false;
-}
-
-//=============================================================================
-void BreakpadUploadNextReport(BreakpadRef ref) {
-  BreakpadUploadNextReportWithParameters(ref, nil);
-}
-
-//=============================================================================
-NSDictionary *BreakpadGetNextReportConfiguration(BreakpadRef ref) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-    if (breakpad)
-      return breakpad->NextCrashReportConfiguration();
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadGetNextReportConfiguration() : error\n");
-  }
-  return nil;
-}
-
-//=============================================================================
-void BreakpadUploadReportWithParametersAndConfiguration(
-    BreakpadRef ref,
-    NSDictionary *server_parameters,
-    NSDictionary *configuration) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-    if (!breakpad || !configuration)
-      return;
-    breakpad->UploadReportWithConfiguration(configuration, server_parameters);
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr,
-        "BreakpadUploadReportWithParametersAndConfiguration() : error\n");
-  }
-
-}
-
-//=============================================================================
-void BreakpadUploadNextReportWithParameters(BreakpadRef ref,
-                                            NSDictionary *server_parameters) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-    if (!breakpad)
-      return;
-    NSDictionary *configuration = breakpad->NextCrashReportConfiguration();
-    if (!configuration)
-      return;
-    return BreakpadUploadReportWithParametersAndConfiguration(ref,
-                                                              server_parameters,
-                                                              configuration);
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadUploadNextReportWithParameters() : error\n");
-  }
-}
-
-void BreakpadHandleNetworkResponse(BreakpadRef ref,
-                                   NSDictionary *configuration,
-                                   NSData *data,
-                                   NSError *error) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-    if (breakpad && configuration)
-      breakpad->HandleNetworkResponse(configuration,data, error);
-
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadHandleNetworkResponse() : error\n");
-  }
-}
-
-//=============================================================================
-void BreakpadUploadData(BreakpadRef ref, NSData *data, NSString *name,
-                        NSDictionary *server_parameters) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad) {
-      breakpad->UploadData(data, name, server_parameters);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadUploadData() : error\n");
-  }
-}
-
-//=============================================================================
-NSDictionary *BreakpadGenerateReport(BreakpadRef ref,
-                                     NSDictionary *server_parameters) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad) {
-      return breakpad->GenerateReport(server_parameters);
-    } else {
-      return nil;
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadGenerateReport() : error\n");
-    return nil;
-  }
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/Breakpad.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,578 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 46;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		14569321182CE29F0029C465 /* ucontext_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 14569320182CE29F0029C465 /* ucontext_compat.h */; };
-		14569323182CE2C10029C465 /* mach_vm_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 14569322182CE2C10029C465 /* mach_vm_compat.h */; };
-		16BFA67014E195E9009704F8 /* ios_exception_minidump_generator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */; };
-		16BFA67214E1965A009704F8 /* ios_exception_minidump_generator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */; };
-		16C7CCCB147D4A4300776EAD /* BreakpadDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C968147D4A4200776EAD /* BreakpadDefines.h */; };
-		16C7CCCC147D4A4300776EAD /* Breakpad.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C96A147D4A4200776EAD /* Breakpad.h */; };
-		16C7CCCD147D4A4300776EAD /* Breakpad.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7C96B147D4A4200776EAD /* Breakpad.mm */; };
-		16C7CDE8147D4A4300776EAD /* ConfigFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CB9E147D4A4300776EAD /* ConfigFile.h */; };
-		16C7CDE9147D4A4300776EAD /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CB9F147D4A4300776EAD /* ConfigFile.mm */; };
-		16C7CDF5147D4A4300776EAD /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */; };
-		16C7CDF6147D4A4300776EAD /* breakpad_nlist_64.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */; };
-		16C7CDF7147D4A4300776EAD /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBAF147D4A4300776EAD /* dynamic_images.cc */; };
-		16C7CDF8147D4A4300776EAD /* dynamic_images.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB0147D4A4300776EAD /* dynamic_images.h */; };
-		16C7CDF9147D4A4300776EAD /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBB1147D4A4300776EAD /* exception_handler.cc */; };
-		16C7CDFA147D4A4300776EAD /* exception_handler.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB2147D4A4300776EAD /* exception_handler.h */; };
-		16C7CDFC147D4A4300776EAD /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBB4147D4A4300776EAD /* minidump_generator.cc */; };
-		16C7CDFD147D4A4300776EAD /* minidump_generator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBB5147D4A4300776EAD /* minidump_generator.h */; };
-		16C7CDFE147D4A4300776EAD /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */; };
-		16C7CDFF147D4A4300776EAD /* protected_memory_allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */; };
-		16C7CE08147D4A4300776EAD /* uploader.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CBEA147D4A4300776EAD /* uploader.h */; };
-		16C7CE09147D4A4300776EAD /* uploader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CBEB147D4A4300776EAD /* uploader.mm */; };
-		16C7CE18147D4A4300776EAD /* minidump_file_writer-inl.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */; };
-		16C7CE19147D4A4300776EAD /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */; };
-		16C7CE1A147D4A4300776EAD /* minidump_file_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC06147D4A4300776EAD /* minidump_file_writer.h */; };
-		16C7CE40147D4A4300776EAD /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC4A147D4A4300776EAD /* convert_UTF.c */; };
-		16C7CE41147D4A4300776EAD /* convert_UTF.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC4B147D4A4300776EAD /* convert_UTF.h */; };
-		16C7CE78147D4A4300776EAD /* GTMLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC88147D4A4300776EAD /* GTMLogger.h */; };
-		16C7CE79147D4A4300776EAD /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC89147D4A4300776EAD /* GTMLogger.m */; };
-		16C7CE7A147D4A4300776EAD /* HTTPMultipartUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */; };
-		16C7CE7B147D4A4300776EAD /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */; };
-		16C7CE83147D4A4300776EAD /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC93147D4A4300776EAD /* file_id.cc */; };
-		16C7CE84147D4A4300776EAD /* file_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC94147D4A4300776EAD /* file_id.h */; };
-		16C7CE85147D4A4300776EAD /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC95147D4A4300776EAD /* macho_id.cc */; };
-		16C7CE86147D4A4300776EAD /* macho_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC96147D4A4300776EAD /* macho_id.h */; };
-		16C7CE8A147D4A4300776EAD /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9A147D4A4300776EAD /* macho_utilities.cc */; };
-		16C7CE8B147D4A4300776EAD /* macho_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC9B147D4A4300776EAD /* macho_utilities.h */; };
-		16C7CE8C147D4A4300776EAD /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9C147D4A4300776EAD /* macho_walker.cc */; };
-		16C7CE8D147D4A4300776EAD /* macho_walker.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CC9D147D4A4300776EAD /* macho_walker.h */; };
-		16C7CE8F147D4A4300776EAD /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CC9F147D4A4300776EAD /* string_utilities.cc */; };
-		16C7CE90147D4A4300776EAD /* string_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCA0147D4A4300776EAD /* string_utilities.h */; };
-		16C7CE93147D4A4300776EAD /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CCA4147D4A4300776EAD /* md5.cc */; };
-		16C7CE94147D4A4300776EAD /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCA5147D4A4300776EAD /* md5.h */; };
-		16C7CEA7147D4A4300776EAD /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = 16C7CCB9147D4A4300776EAD /* string_conversion.cc */; };
-		16C7CEA8147D4A4300776EAD /* string_conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7CCBA147D4A4300776EAD /* string_conversion.h */; };
-		16C92FAD150DF8330053D7BA /* BreakpadController.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C92FAB150DF8330053D7BA /* BreakpadController.h */; };
-		16C92FAE150DF8330053D7BA /* BreakpadController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16C92FAC150DF8330053D7BA /* BreakpadController.mm */; };
-		1EEEB60F1720821900F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */; };
-		1EEEB6101720821900F7E689 /* simple_string_dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */; };
-		AA747D9F0F9514B9006C5449 /* Breakpad_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */; };
-		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
-		14569320182CE29F0029C465 /* ucontext_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ucontext_compat.h; sourceTree = "<group>"; };
-		14569322182CE2C10029C465 /* mach_vm_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_vm_compat.h; sourceTree = "<group>"; };
-		16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_exception_minidump_generator.h; sourceTree = "<group>"; };
-		16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_exception_minidump_generator.mm; sourceTree = "<group>"; };
-		16C7C968147D4A4200776EAD /* BreakpadDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadDefines.h; sourceTree = "<group>"; };
-		16C7C96A147D4A4200776EAD /* Breakpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Breakpad.h; sourceTree = "<group>"; };
-		16C7C96B147D4A4200776EAD /* Breakpad.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Breakpad.mm; sourceTree = "<group>"; };
-		16C7CB9E147D4A4300776EAD /* ConfigFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigFile.h; sourceTree = "<group>"; };
-		16C7CB9F147D4A4300776EAD /* ConfigFile.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ConfigFile.mm; sourceTree = "<group>"; };
-		16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_64.cc; sourceTree = "<group>"; };
-		16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_nlist_64.h; sourceTree = "<group>"; };
-		16C7CBAF147D4A4300776EAD /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_images.cc; sourceTree = "<group>"; };
-		16C7CBB0147D4A4300776EAD /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dynamic_images.h; sourceTree = "<group>"; };
-		16C7CBB1147D4A4300776EAD /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = exception_handler.cc; sourceTree = "<group>"; };
-		16C7CBB2147D4A4300776EAD /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = exception_handler.h; sourceTree = "<group>"; };
-		16C7CBB4147D4A4300776EAD /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_generator.cc; sourceTree = "<group>"; };
-		16C7CBB5147D4A4300776EAD /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = minidump_generator.h; sourceTree = "<group>"; };
-		16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = protected_memory_allocator.cc; sourceTree = "<group>"; };
-		16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = protected_memory_allocator.h; sourceTree = "<group>"; };
-		16C7CBEA147D4A4300776EAD /* uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uploader.h; sourceTree = "<group>"; };
-		16C7CBEB147D4A4300776EAD /* uploader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = uploader.mm; sourceTree = "<group>"; };
-		16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "minidump_file_writer-inl.h"; sourceTree = "<group>"; };
-		16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_file_writer.cc; sourceTree = "<group>"; };
-		16C7CC06147D4A4300776EAD /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = minidump_file_writer.h; sourceTree = "<group>"; };
-		16C7CC07147D4A4300776EAD /* minidump_file_writer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minidump_file_writer_unittest.cc; sourceTree = "<group>"; };
-		16C7CC4A147D4A4300776EAD /* convert_UTF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = convert_UTF.c; sourceTree = "<group>"; };
-		16C7CC4B147D4A4300776EAD /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_UTF.h; sourceTree = "<group>"; };
-		16C7CC88147D4A4300776EAD /* GTMLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMLogger.h; sourceTree = "<group>"; };
-		16C7CC89147D4A4300776EAD /* GTMLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTMLogger.m; sourceTree = "<group>"; };
-		16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPMultipartUpload.h; sourceTree = "<group>"; };
-		16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPMultipartUpload.m; sourceTree = "<group>"; };
-		16C7CC93147D4A4300776EAD /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = file_id.cc; sourceTree = "<group>"; };
-		16C7CC94147D4A4300776EAD /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file_id.h; sourceTree = "<group>"; };
-		16C7CC95147D4A4300776EAD /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_id.cc; sourceTree = "<group>"; };
-		16C7CC96147D4A4300776EAD /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_id.h; sourceTree = "<group>"; };
-		16C7CC9A147D4A4300776EAD /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_utilities.cc; sourceTree = "<group>"; };
-		16C7CC9B147D4A4300776EAD /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_utilities.h; sourceTree = "<group>"; };
-		16C7CC9C147D4A4300776EAD /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = macho_walker.cc; sourceTree = "<group>"; };
-		16C7CC9D147D4A4300776EAD /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macho_walker.h; sourceTree = "<group>"; };
-		16C7CC9F147D4A4300776EAD /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utilities.cc; sourceTree = "<group>"; };
-		16C7CCA0147D4A4300776EAD /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_utilities.h; sourceTree = "<group>"; };
-		16C7CCA4147D4A4300776EAD /* md5.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = md5.cc; sourceTree = "<group>"; };
-		16C7CCA5147D4A4300776EAD /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
-		16C7CCB9147D4A4300776EAD /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_conversion.cc; sourceTree = "<group>"; };
-		16C7CCBA147D4A4300776EAD /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = string_conversion.h; sourceTree = "<group>"; };
-		16C92FAB150DF8330053D7BA /* BreakpadController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadController.h; sourceTree = "<group>"; };
-		16C92FAC150DF8330053D7BA /* BreakpadController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BreakpadController.mm; sourceTree = "<group>"; };
-		1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simple_string_dictionary.cc; sourceTree = "<group>"; };
-		1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simple_string_dictionary.h; sourceTree = "<group>"; };
-		AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Breakpad_Prefix.pch; sourceTree = SOURCE_ROOT; };
-		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		D2AAC07E0554694100DB518D /* libBreakpad.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBreakpad.a; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		D2AAC07C0554694100DB518D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		034768DFFF38A50411DB9C8B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				D2AAC07E0554694100DB518D /* libBreakpad.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		0867D691FE84028FC02AAC07 /* Breakpad */ = {
-			isa = PBXGroup;
-			children = (
-				08FB77AEFE84172EC02AAC07 /* Classes */,
-				32C88DFF0371C24200C91783 /* Other Sources */,
-				0867D69AFE84028FC02AAC07 /* Frameworks */,
-				034768DFFF38A50411DB9C8B /* Products */,
-			);
-			name = Breakpad;
-			sourceTree = "<group>";
-		};
-		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				AACBBE490F95108600F1A2B1 /* Foundation.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		08FB77AEFE84172EC02AAC07 /* Classes */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C965147D4A4200776EAD /* client */,
-				16C7CC47147D4A4300776EAD /* common */,
-			);
-			name = Classes;
-			sourceTree = "<group>";
-		};
-		16BFA66A14E195E9009704F8 /* handler */ = {
-			isa = PBXGroup;
-			children = (
-				16BFA67114E1965A009704F8 /* ios_exception_minidump_generator.mm */,
-				16BFA66E14E195E9009704F8 /* ios_exception_minidump_generator.h */,
-			);
-			path = handler;
-			sourceTree = "<group>";
-		};
-		16C7C965147D4A4200776EAD /* client */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C966147D4A4200776EAD /* apple */,
-				16C7C969147D4A4200776EAD /* ios */,
-				16C7C99E147D4A4200776EAD /* mac */,
-				16C7CC04147D4A4300776EAD /* minidump_file_writer-inl.h */,
-				16C7CC05147D4A4300776EAD /* minidump_file_writer.cc */,
-				16C7CC06147D4A4300776EAD /* minidump_file_writer.h */,
-				16C7CC07147D4A4300776EAD /* minidump_file_writer_unittest.cc */,
-			);
-			name = client;
-			path = ..;
-			sourceTree = SOURCE_ROOT;
-		};
-		16C7C966147D4A4200776EAD /* apple */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C967147D4A4200776EAD /* Framework */,
-			);
-			path = apple;
-			sourceTree = "<group>";
-		};
-		16C7C967147D4A4200776EAD /* Framework */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C968147D4A4200776EAD /* BreakpadDefines.h */,
-			);
-			path = Framework;
-			sourceTree = "<group>";
-		};
-		16C7C969147D4A4200776EAD /* ios */ = {
-			isa = PBXGroup;
-			children = (
-				16C92FAB150DF8330053D7BA /* BreakpadController.h */,
-				16C92FAC150DF8330053D7BA /* BreakpadController.mm */,
-				16BFA66A14E195E9009704F8 /* handler */,
-				16C7C96A147D4A4200776EAD /* Breakpad.h */,
-				16C7C96B147D4A4200776EAD /* Breakpad.mm */,
-			);
-			path = ios;
-			sourceTree = "<group>";
-		};
-		16C7C99E147D4A4200776EAD /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				16C7CB9D147D4A4300776EAD /* crash_generation */,
-				16C7CBAA147D4A4300776EAD /* handler */,
-				16C7CBC8147D4A4300776EAD /* sender */,
-			);
-			path = mac;
-			sourceTree = "<group>";
-		};
-		16C7CB9D147D4A4300776EAD /* crash_generation */ = {
-			isa = PBXGroup;
-			children = (
-				16C7CB9E147D4A4300776EAD /* ConfigFile.h */,
-				16C7CB9F147D4A4300776EAD /* ConfigFile.mm */,
-			);
-			path = crash_generation;
-			sourceTree = "<group>";
-		};
-		16C7CBAA147D4A4300776EAD /* handler */ = {
-			isa = PBXGroup;
-			children = (
-				16C7CBAD147D4A4300776EAD /* breakpad_nlist_64.cc */,
-				16C7CBAE147D4A4300776EAD /* breakpad_nlist_64.h */,
-				16C7CBAF147D4A4300776EAD /* dynamic_images.cc */,
-				16C7CBB0147D4A4300776EAD /* dynamic_images.h */,
-				16C7CBB1147D4A4300776EAD /* exception_handler.cc */,
-				16C7CBB2147D4A4300776EAD /* exception_handler.h */,
-				14569322182CE2C10029C465 /* mach_vm_compat.h */,
-				16C7CBB4147D4A4300776EAD /* minidump_generator.cc */,
-				16C7CBB5147D4A4300776EAD /* minidump_generator.h */,
-				16C7CBBC147D4A4300776EAD /* protected_memory_allocator.cc */,
-				16C7CBBD147D4A4300776EAD /* protected_memory_allocator.h */,
-				14569320182CE29F0029C465 /* ucontext_compat.h */,
-			);
-			path = handler;
-			sourceTree = "<group>";
-		};
-		16C7CBC8147D4A4300776EAD /* sender */ = {
-			isa = PBXGroup;
-			children = (
-				16C7CBEA147D4A4300776EAD /* uploader.h */,
-				16C7CBEB147D4A4300776EAD /* uploader.mm */,
-			);
-			path = sender;
-			sourceTree = "<group>";
-		};
-		16C7CC47147D4A4300776EAD /* common */ = {
-			isa = PBXGroup;
-			children = (
-				1EEEB60C1720821900F7E689 /* simple_string_dictionary.cc */,
-				1EEEB60D1720821900F7E689 /* simple_string_dictionary.h */,
-				16C7CC4A147D4A4300776EAD /* convert_UTF.c */,
-				16C7CC4B147D4A4300776EAD /* convert_UTF.h */,
-				16C7CC82147D4A4300776EAD /* mac */,
-				16C7CCA4147D4A4300776EAD /* md5.cc */,
-				16C7CCA5147D4A4300776EAD /* md5.h */,
-				16C7CCB9147D4A4300776EAD /* string_conversion.cc */,
-				16C7CCBA147D4A4300776EAD /* string_conversion.h */,
-			);
-			name = common;
-			path = ../../common;
-			sourceTree = SOURCE_ROOT;
-		};
-		16C7CC82147D4A4300776EAD /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				16C7CC88147D4A4300776EAD /* GTMLogger.h */,
-				16C7CC89147D4A4300776EAD /* GTMLogger.m */,
-				16C7CC8A147D4A4300776EAD /* HTTPMultipartUpload.h */,
-				16C7CC8B147D4A4300776EAD /* HTTPMultipartUpload.m */,
-				16C7CC93147D4A4300776EAD /* file_id.cc */,
-				16C7CC94147D4A4300776EAD /* file_id.h */,
-				16C7CC95147D4A4300776EAD /* macho_id.cc */,
-				16C7CC96147D4A4300776EAD /* macho_id.h */,
-				16C7CC9A147D4A4300776EAD /* macho_utilities.cc */,
-				16C7CC9B147D4A4300776EAD /* macho_utilities.h */,
-				16C7CC9C147D4A4300776EAD /* macho_walker.cc */,
-				16C7CC9D147D4A4300776EAD /* macho_walker.h */,
-				16C7CC9F147D4A4300776EAD /* string_utilities.cc */,
-				16C7CCA0147D4A4300776EAD /* string_utilities.h */,
-			);
-			path = mac;
-			sourceTree = "<group>";
-		};
-		32C88DFF0371C24200C91783 /* Other Sources */ = {
-			isa = PBXGroup;
-			children = (
-				AA747D9E0F9514B9006C5449 /* Breakpad_Prefix.pch */,
-			);
-			name = "Other Sources";
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
-		D2AAC07A0554694100DB518D /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA747D9F0F9514B9006C5449 /* Breakpad_Prefix.pch in Headers */,
-				16C7CCCB147D4A4300776EAD /* BreakpadDefines.h in Headers */,
-				16C7CCCC147D4A4300776EAD /* Breakpad.h in Headers */,
-				16C7CDE8147D4A4300776EAD /* ConfigFile.h in Headers */,
-				14569321182CE29F0029C465 /* ucontext_compat.h in Headers */,
-				16C7CDF6147D4A4300776EAD /* breakpad_nlist_64.h in Headers */,
-				16C7CDF8147D4A4300776EAD /* dynamic_images.h in Headers */,
-				16C7CDFA147D4A4300776EAD /* exception_handler.h in Headers */,
-				16C7CDFD147D4A4300776EAD /* minidump_generator.h in Headers */,
-				16C7CDFF147D4A4300776EAD /* protected_memory_allocator.h in Headers */,
-				16C7CE08147D4A4300776EAD /* uploader.h in Headers */,
-				16C7CE18147D4A4300776EAD /* minidump_file_writer-inl.h in Headers */,
-				16C7CE1A147D4A4300776EAD /* minidump_file_writer.h in Headers */,
-				16C7CE41147D4A4300776EAD /* convert_UTF.h in Headers */,
-				16C7CE78147D4A4300776EAD /* GTMLogger.h in Headers */,
-				16C7CE7A147D4A4300776EAD /* HTTPMultipartUpload.h in Headers */,
-				16C7CE84147D4A4300776EAD /* file_id.h in Headers */,
-				16C7CE86147D4A4300776EAD /* macho_id.h in Headers */,
-				16C7CE8B147D4A4300776EAD /* macho_utilities.h in Headers */,
-				16C7CE8D147D4A4300776EAD /* macho_walker.h in Headers */,
-				16C7CE90147D4A4300776EAD /* string_utilities.h in Headers */,
-				16C7CE94147D4A4300776EAD /* md5.h in Headers */,
-				16C7CEA8147D4A4300776EAD /* string_conversion.h in Headers */,
-				16BFA67014E195E9009704F8 /* ios_exception_minidump_generator.h in Headers */,
-				16C92FAD150DF8330053D7BA /* BreakpadController.h in Headers */,
-				1EEEB6101720821900F7E689 /* simple_string_dictionary.h in Headers */,
-				14569323182CE2C10029C465 /* mach_vm_compat.h in Headers */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
-		D2AAC07D0554694100DB518D /* Breakpad */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
-			buildPhases = (
-				D2AAC07A0554694100DB518D /* Headers */,
-				D2AAC07B0554694100DB518D /* Sources */,
-				D2AAC07C0554694100DB518D /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = Breakpad;
-			productName = Breakpad;
-			productReference = D2AAC07E0554694100DB518D /* libBreakpad.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		0867D690FE84028FC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				LastUpgradeCheck = 0510;
-			};
-			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Breakpad" */;
-			compatibilityVersion = "Xcode 3.2";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-				da,
-				de,
-				es,
-				fr,
-				it,
-				ja,
-				nl,
-				no,
-				sl,
-				sv,
-				tr,
-			);
-			mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */;
-			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				D2AAC07D0554694100DB518D /* Breakpad */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		D2AAC07B0554694100DB518D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				16C7CCCD147D4A4300776EAD /* Breakpad.mm in Sources */,
-				16C7CDE9147D4A4300776EAD /* ConfigFile.mm in Sources */,
-				16C7CDF5147D4A4300776EAD /* breakpad_nlist_64.cc in Sources */,
-				16C7CDF7147D4A4300776EAD /* dynamic_images.cc in Sources */,
-				16C7CDF9147D4A4300776EAD /* exception_handler.cc in Sources */,
-				16C7CDFC147D4A4300776EAD /* minidump_generator.cc in Sources */,
-				16C7CDFE147D4A4300776EAD /* protected_memory_allocator.cc in Sources */,
-				16C7CE09147D4A4300776EAD /* uploader.mm in Sources */,
-				16C7CE19147D4A4300776EAD /* minidump_file_writer.cc in Sources */,
-				16C7CE40147D4A4300776EAD /* convert_UTF.c in Sources */,
-				16C7CE79147D4A4300776EAD /* GTMLogger.m in Sources */,
-				16C7CE7B147D4A4300776EAD /* HTTPMultipartUpload.m in Sources */,
-				16C7CE83147D4A4300776EAD /* file_id.cc in Sources */,
-				16C7CE85147D4A4300776EAD /* macho_id.cc in Sources */,
-				16C7CE8A147D4A4300776EAD /* macho_utilities.cc in Sources */,
-				16C7CE8C147D4A4300776EAD /* macho_walker.cc in Sources */,
-				16C7CE8F147D4A4300776EAD /* string_utilities.cc in Sources */,
-				16C7CE93147D4A4300776EAD /* md5.cc in Sources */,
-				16C7CEA7147D4A4300776EAD /* string_conversion.cc in Sources */,
-				16BFA67214E1965A009704F8 /* ios_exception_minidump_generator.mm in Sources */,
-				16C92FAE150DF8330053D7BA /* BreakpadController.mm in Sources */,
-				1EEEB60F1720821900F7E689 /* simple_string_dictionary.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB921F08733DC00010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = NO;
-				DSTROOT = /tmp/Breakpad.dst;
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../mac/build/Debug\"",
-				);
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Breakpad_Prefix.pch;
-				INSTALL_PATH = /usr/local/lib;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Debug\"",
-					"\"$(SRCROOT)/../mac/gcov\"",
-				);
-				PRODUCT_NAME = Breakpad;
-			};
-			name = Debug;
-		};
-		1DEB922008733DC00010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				DSTROOT = /tmp/Breakpad.dst;
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../mac/build/Debug\"",
-				);
-				GCC_MODEL_TUNING = G5;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Breakpad_Prefix.pch;
-				INSTALL_PATH = /usr/local/lib;
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/Breakpad.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/breakpadUtilities.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/i386\"",
-					"\"$(SRCROOT)/../mac/build/Breakpad.build/Debug/gtest.build/Objects-normal/x86_64\"",
-					"\"$(SRCROOT)/../mac/build/Debug\"",
-					"\"$(SRCROOT)/../mac/gcov\"",
-				);
-				PRODUCT_NAME = Breakpad;
-			};
-			name = Release;
-		};
-		1DEB922308733DC00010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_SHADOW = YES;
-				GCC_WARN_SIGN_COMPARE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNKNOWN_PRAGMAS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					../../,
-					../../client/apple/Framework,
-					../../common/mac,
-				);
-				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
-				ONLY_ACTIVE_ARCH = YES;
-				OTHER_LDFLAGS = "-ObjC";
-				SDKROOT = iphoneos;
-				WARNING_CFLAGS = "-Wundef";
-			};
-			name = Debug;
-		};
-		1DEB922408733DC00010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
-				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_SHADOW = YES;
-				GCC_WARN_SIGN_COMPARE = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES;
-				GCC_WARN_UNKNOWN_PRAGMAS = YES;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_LABEL = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = (
-					../../,
-					../../client/apple/Framework,
-					../../common/mac,
-				);
-				IPHONEOS_DEPLOYMENT_TARGET = 5.0;
-				OTHER_LDFLAGS = "-ObjC";
-				SDKROOT = iphoneos;
-				WARNING_CFLAGS = "-Wundef";
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB921F08733DC00010E9CD /* Debug */,
-				1DEB922008733DC00010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Breakpad" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB922308733DC00010E9CD /* Debug */,
-				1DEB922408733DC00010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/BreakpadController.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
-#define CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
-
-#import <Foundation/Foundation.h>
-
-#import "client/ios/Breakpad.h"
-
-// This class is used to offer a higher level API around BreakpadRef. It
-// configures it, ensures thread-safety, and sends crash reports back to the
-// collecting server. By default, no crash reports are sent, the user must call
-// |setUploadingEnabled:YES| to start the uploading.
-@interface BreakpadController : NSObject {
- @private
-  // The dispatch queue that will own the breakpad reference.
-  dispatch_queue_t queue_;
-
-  // Instance of Breakpad crash reporter. This is owned by the queue, but can
-  // be created on the main thread at startup.
-  BreakpadRef breakpadRef_;
-
-  // The dictionary that contains configuration for breakpad. Modifying it
-  // should only happen when the controller is not started. The initial value
-  // is the infoDictionary of the bundle of the application.
-  NSMutableDictionary* configuration_;
-
-  // Whether or not crash reports should be uploaded.
-  BOOL enableUploads_;
-
-  // Whether the controller has been started on the main thread. This is only
-  // used to assert the initialization order is correct.
-  BOOL started_;
-
-  // The interval to wait between two uploads. Value is 0 if no upload must be
-  // done.
-  int uploadIntervalInSeconds_;
-
-  // The dictionary that contains additional server parameters to send when
-  // uploading crash reports.
-  NSDictionary* uploadTimeParameters_;
-}
-
-// Singleton.
-+ (BreakpadController*)sharedInstance;
-
-// Update the controller configuration. Merges its old configuration with the
-// new one. Merge is done by replacing the old values by the new values.
-- (void)updateConfiguration:(NSDictionary*)configuration;
-
-// Reset the controller configuration to its initial value, which is the
-// infoDictionary of the bundle of the application.
-- (void)resetConfiguration;
-
-// Configure the URL to upload the report to. This must be called at least once
-// if the URL is not in the bundle information.
-- (void)setUploadingURL:(NSString*)url;
-
-// Set the minimal interval between two uploads in seconds. This must be called
-// at least once if the interval is not in the bundle information. A value of 0
-// will prevent uploads.
-- (void)setUploadInterval:(int)intervalInSeconds;
-
-// Set additional server parameters to send when uploading crash reports.
-- (void)setParametersToAddAtUploadTime:(NSDictionary*)uploadTimeParameters;
-
-// Specify an upload parameter that will be added to the crash report when a
-// crash report is generated. See |BreakpadAddUploadParameter|.
-- (void)addUploadParameter:(NSString*)value forKey:(NSString*)key;
-
-// Remove a previously-added parameter from the upload parameter set. See
-// |BreakpadRemoveUploadParameter|.
-- (void)removeUploadParameterForKey:(NSString*)key;
-
-// Access the underlying BreakpadRef. This method is asynchronous, and will be
-// executed on the thread owning the BreakpadRef variable. Moreover, if the
-// controller is not started, the block will be called with a NULL parameter.
-- (void)withBreakpadRef:(void(^)(BreakpadRef))callback;
-
-// Starts the BreakpadController by registering crash handlers. If
-// |onCurrentThread| is YES, all setup is done on the current thread, otherwise
-// it is done on a private queue.
-- (void)start:(BOOL)onCurrentThread;
-
-// Unregisters the crash handlers.
-- (void)stop;
-
-// Enables or disables uploading of crash reports, but does not stop the
-// BreakpadController.
-- (void)setUploadingEnabled:(BOOL)enabled;
-
-// Check if there is currently a crash report to upload.
-- (void)hasReportToUpload:(void(^)(BOOL))callback;
-
-// Get the number of crash reports waiting to upload.
-- (void)getCrashReportCount:(void(^)(int))callback;
-
-// Get the next report to upload.
-// - If upload is disabled, callback will be called with (nil, -1).
-// - If a delay is to be waited before sending, callback will be called with
-//   (nil, n), with n (> 0) being the number of seconds to wait.
-// - if no delay is needed, callback will be called with (0, configuration),
-//   configuration being next report to upload, or nil if none is pending.
-- (void)getNextReportConfigurationOrSendDelay:
-    (void(^)(NSDictionary*, int))callback;
-
-// Sends synchronously the report specified by |configuration|. This method is
-// NOT thread safe and must be called from the breakpad thread.
-- (void)threadUnsafeSendReportWithConfiguration:(NSDictionary*)configuration
-                                withBreakpadRef:(BreakpadRef)ref;
-
-@end
-
-#endif  // CLIENT_IOS_HANDLER_IOS_BREAKPAD_CONTROLLER_H_
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/BreakpadController.mm
+++ /dev/null
@@ -1,354 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "BreakpadController.h"
-
-#import <UIKit/UIKit.h>
-#include <asl.h>
-#include <execinfo.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/sysctl.h>
-
-#include <common/scoped_ptr.h>
-
-#pragma mark -
-#pragma mark Private Methods
-
-@interface BreakpadController ()
-
-// Init the singleton instance.
-- (id)initSingleton;
-
-// Load a crash report and send it to the server.
-- (void)sendStoredCrashReports;
-
-// Returns when a report can be sent. |-1| means never, |0| means that a report
-// can be sent immediately, a positive number is the number of seconds to wait
-// before being allowed to upload a report.
-- (int)sendDelay;
-
-// Notifies that a report will be sent, and update the last sending time
-// accordingly.
-- (void)reportWillBeSent;
-
-@end
-
-#pragma mark -
-#pragma mark Anonymous namespace
-
-namespace {
-
-// The name of the user defaults key for the last submission to the crash
-// server.
-NSString* const kLastSubmission = @"com.google.Breakpad.LastSubmission";
-
-// Returns a NSString describing the current platform.
-NSString* GetPlatform() {
-  // Name of the system call for getting the platform.
-  static const char kHwMachineSysctlName[] = "hw.machine";
-
-  NSString* result = nil;
-
-  size_t size = 0;
-  if (sysctlbyname(kHwMachineSysctlName, NULL, &size, NULL, 0) || size == 0)
-    return nil;
-  google_breakpad::scoped_array<char> machine(new char[size]);
-  if (sysctlbyname(kHwMachineSysctlName, machine.get(), &size, NULL, 0) == 0)
-    result = [NSString stringWithUTF8String:machine.get()];
-  return result;
-}
-
-}  // namespace
-
-#pragma mark -
-#pragma mark BreakpadController Implementation
-
-@implementation BreakpadController
-
-+ (BreakpadController*)sharedInstance {
-  @synchronized(self) {
-    static BreakpadController* sharedInstance_ =
-        [[BreakpadController alloc] initSingleton];
-    return sharedInstance_;
-  }
-}
-
-- (id)init {
-  return nil;
-}
-
-- (id)initSingleton {
-  self = [super init];
-  if (self) {
-    queue_ = dispatch_queue_create("com.google.BreakpadQueue", NULL);
-    enableUploads_ = NO;
-    started_ = NO;
-    [self resetConfiguration];
-  }
-  return self;
-}
-
-// Since this class is a singleton, this method is not expected to be called.
-- (void)dealloc {
-  assert(!breakpadRef_);
-  dispatch_release(queue_);
-  [configuration_ release];
-  [uploadTimeParameters_ release];
-  [super dealloc];
-}
-
-#pragma mark -
-
-- (void)start:(BOOL)onCurrentThread {
-  if (started_)
-    return;
-  started_ = YES;
-  void(^startBlock)() = ^{
-      assert(!breakpadRef_);
-      breakpadRef_ = BreakpadCreate(configuration_);
-      if (breakpadRef_) {
-        BreakpadAddUploadParameter(breakpadRef_, @"platform", GetPlatform());
-      }
-  };
-  if (onCurrentThread)
-    startBlock();
-  else
-    dispatch_async(queue_, startBlock);
-}
-
-- (void)stop {
-  if (!started_)
-    return;
-  started_ = NO;
-  dispatch_sync(queue_, ^{
-      if (breakpadRef_) {
-        BreakpadRelease(breakpadRef_);
-        breakpadRef_ = NULL;
-      }
-  });
-}
-
-// This method must be called from the breakpad queue.
-- (void)threadUnsafeSendReportWithConfiguration:(NSDictionary*)configuration
-                                withBreakpadRef:(BreakpadRef)ref {
-  NSAssert(started_, @"The controller must be started before "
-                     "threadUnsafeSendReportWithConfiguration is called");
-  if (breakpadRef_) {
-    BreakpadUploadReportWithParametersAndConfiguration(breakpadRef_,
-                                                       uploadTimeParameters_,
-                                                       configuration);
-  }
-}
-
-- (void)setUploadingEnabled:(BOOL)enabled {
-  NSAssert(started_,
-      @"The controller must be started before setUploadingEnabled is called");
-  dispatch_async(queue_, ^{
-      if (enabled == enableUploads_)
-        return;
-      if (enabled) {
-        // Set this before calling doSendStoredCrashReport, because that
-        // calls sendDelay, which in turn checks this flag.
-        enableUploads_ = YES;
-        [self sendStoredCrashReports];
-      } else {
-        enableUploads_ = NO;
-        [NSObject cancelPreviousPerformRequestsWithTarget:self
-            selector:@selector(sendStoredCrashReports)
-            object:nil];
-      }
-  });
-}
-
-- (void)updateConfiguration:(NSDictionary*)configuration {
-  NSAssert(!started_,
-      @"The controller must not be started when updateConfiguration is called");
-  [configuration_ addEntriesFromDictionary:configuration];
-  NSString* uploadInterval =
-      [configuration_ valueForKey:@BREAKPAD_REPORT_INTERVAL];
-  if (uploadInterval)
-    [self setUploadInterval:[uploadInterval intValue]];
-}
-
-- (void)resetConfiguration {
-  NSAssert(!started_,
-      @"The controller must not be started when resetConfiguration is called");
-  [configuration_ autorelease];
-  configuration_ = [[[NSBundle mainBundle] infoDictionary] mutableCopy];
-  NSString* uploadInterval =
-      [configuration_ valueForKey:@BREAKPAD_REPORT_INTERVAL];
-  [self setUploadInterval:[uploadInterval intValue]];
-  [self setParametersToAddAtUploadTime:nil];
-}
-
-- (void)setUploadingURL:(NSString*)url {
-  NSAssert(!started_,
-      @"The controller must not be started when setUploadingURL is called");
-  [configuration_ setValue:url forKey:@BREAKPAD_URL];
-}
-
-- (void)setUploadInterval:(int)intervalInSeconds {
-  NSAssert(!started_,
-      @"The controller must not be started when setUploadInterval is called");
-  [configuration_ removeObjectForKey:@BREAKPAD_REPORT_INTERVAL];
-  uploadIntervalInSeconds_ = intervalInSeconds;
-  if (uploadIntervalInSeconds_ < 0)
-    uploadIntervalInSeconds_ = 0;
-}
-
-- (void)setParametersToAddAtUploadTime:(NSDictionary*)uploadTimeParameters {
-  NSAssert(!started_, @"The controller must not be started when "
-                      "setParametersToAddAtUploadTime is called");
-  [uploadTimeParameters_ autorelease];
-  uploadTimeParameters_ = [uploadTimeParameters copy];
-}
-
-- (void)addUploadParameter:(NSString*)value forKey:(NSString*)key {
-  NSAssert(started_,
-      @"The controller must be started before addUploadParameter is called");
-  dispatch_async(queue_, ^{
-      if (breakpadRef_)
-        BreakpadAddUploadParameter(breakpadRef_, key, value);
-  });
-}
-
-- (void)removeUploadParameterForKey:(NSString*)key {
-  NSAssert(started_, @"The controller must be started before "
-                     "removeUploadParameterForKey is called");
-  dispatch_async(queue_, ^{
-      if (breakpadRef_)
-        BreakpadRemoveUploadParameter(breakpadRef_, key);
-  });
-}
-
-- (void)withBreakpadRef:(void(^)(BreakpadRef))callback {
-  NSAssert(started_,
-      @"The controller must be started before withBreakpadRef is called");
-  dispatch_async(queue_, ^{
-      callback(breakpadRef_);
-  });
-}
-
-- (void)hasReportToUpload:(void(^)(BOOL))callback {
-  NSAssert(started_, @"The controller must be started before "
-                     "hasReportToUpload is called");
-  dispatch_async(queue_, ^{
-      callback(breakpadRef_ && (BreakpadGetCrashReportCount(breakpadRef_) > 0));
-  });
-}
-
-- (void)getCrashReportCount:(void(^)(int))callback {
-  NSAssert(started_, @"The controller must be started before "
-                     "getCrashReportCount is called");
-  dispatch_async(queue_, ^{
-      callback(breakpadRef_ ? BreakpadGetCrashReportCount(breakpadRef_) : 0);
-  });
-}
-
-- (void)getNextReportConfigurationOrSendDelay:
-    (void(^)(NSDictionary*, int))callback {
-  NSAssert(started_, @"The controller must be started before "
-                     "getNextReportConfigurationOrSendDelay is called");
-  dispatch_async(queue_, ^{
-      if (!breakpadRef_) {
-        callback(nil, -1);
-        return;
-      }
-      int delay = [self sendDelay];
-      if (delay != 0) {
-        callback(nil, delay);
-        return;
-      }
-      [self reportWillBeSent];
-      callback(BreakpadGetNextReportConfiguration(breakpadRef_), 0);
-  });
-}
-
-#pragma mark -
-
-- (int)sendDelay {
-  if (!breakpadRef_ || uploadIntervalInSeconds_ <= 0 || !enableUploads_)
-    return -1;
-
-  // To prevent overloading the crash server, crashes are not sent than one
-  // report every |uploadIntervalInSeconds_|. A value in the user defaults is
-  // used to keep the time of the last upload.
-  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-  NSNumber *lastTimeNum = [userDefaults objectForKey:kLastSubmission];
-  NSTimeInterval lastTime = lastTimeNum ? [lastTimeNum floatValue] : 0;
-  NSTimeInterval spanSeconds = CFAbsoluteTimeGetCurrent() - lastTime;
-
-  if (spanSeconds >= uploadIntervalInSeconds_)
-    return 0;
-  return uploadIntervalInSeconds_ - static_cast<int>(spanSeconds);
-}
-
-- (void)reportWillBeSent {
-  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-  [userDefaults setObject:[NSNumber numberWithDouble:CFAbsoluteTimeGetCurrent()]
-                   forKey:kLastSubmission];
-  [userDefaults synchronize];
-}
-
-- (void)sendStoredCrashReports {
-  dispatch_async(queue_, ^{
-      if (BreakpadGetCrashReportCount(breakpadRef_) == 0)
-        return;
-
-      int timeToWait = [self sendDelay];
-
-      // Unable to ever send report.
-      if (timeToWait == -1)
-        return;
-
-      // A report can be sent now.
-      if (timeToWait == 0) {
-        [self reportWillBeSent];
-        BreakpadUploadNextReportWithParameters(breakpadRef_,
-                                               uploadTimeParameters_);
-
-        // If more reports must be sent, make sure this method is called again.
-        if (BreakpadGetCrashReportCount(breakpadRef_) > 0)
-          timeToWait = uploadIntervalInSeconds_;
-      }
-
-      // A report must be sent later.
-      if (timeToWait > 0) {
-        // performSelector: doesn't work on queue_
-        dispatch_async(dispatch_get_main_queue(), ^{
-            [self performSelector:@selector(sendStoredCrashReports)
-                       withObject:nil
-                       afterDelay:timeToWait];
-        });
-     }
-  });
-}
-
-@end
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/Breakpad_Prefix.pch
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
-//
-
-#ifdef __OBJC__
-    #import <Foundation/Foundation.h>
-#endif
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/handler/ios_exception_minidump_generator.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// ios_exception_minidump_generator.h:  Create a fake minidump from a
-// NSException.
-
-#ifndef CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
-#define CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
-
-#include <Foundation/Foundation.h>
-
-#include "client/mac/handler/minidump_generator.h"
-
-namespace google_breakpad {
-
-class IosExceptionMinidumpGenerator : public MinidumpGenerator {
- public:
-  explicit IosExceptionMinidumpGenerator(NSException *exception);
-  virtual ~IosExceptionMinidumpGenerator();
-
- protected:
-  virtual bool WriteExceptionStream(MDRawDirectory *exception_stream);
-  virtual bool WriteThreadStream(mach_port_t thread_id, MDRawThread *thread);
-
- private:
-
-  // Get the crashing program counter from the exception.
-  uintptr_t GetPCFromException();
-
-  // Get the crashing link register from the exception.
-  uintptr_t GetLRFromException();
-
-  // Write a virtual thread context for the crashing site.
-  bool WriteCrashingContext(MDLocationDescriptor *register_location);
-  // Per-CPU implementations of the above method.
-#ifdef HAS_ARM_SUPPORT
-  bool WriteCrashingContextARM(MDLocationDescriptor *register_location);
-#endif
-#ifdef HAS_ARM64_SUPPORT
-  bool WriteCrashingContextARM64(MDLocationDescriptor *register_location);
-#endif
-
-  NSArray *return_addresses_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_IOS_HANDLER_IOS_EXCEPTION_MINIDUMP_GENERATOR_H_
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/ios/handler/ios_exception_minidump_generator.mm
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "client/ios/handler/ios_exception_minidump_generator.h"
-
-#include <pthread.h>
-
-#include "google_breakpad/common/minidump_cpu_arm.h"
-#include "google_breakpad/common/minidump_cpu_arm64.h"
-#include "google_breakpad/common/minidump_exception_mac.h"
-#include "client/minidump_file_writer-inl.h"
-#include "common/scoped_ptr.h"
-
-#if defined(HAS_ARM_SUPPORT) && defined(HAS_ARM64_SUPPORT)
-#error "This file should be compiled for only one architecture at a time"
-#endif
-
-namespace {
-
-const int kExceptionType = EXC_SOFTWARE;
-const int kExceptionCode = MD_EXCEPTION_CODE_MAC_NS_EXCEPTION;
-
-#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
-const uintptr_t kExpectedFinalFp = sizeof(uintptr_t);
-const uintptr_t kExpectedFinalSp = 0;
-
-// Append the given value to the sp position of the stack represented
-// by memory.
-void AppendToMemory(uint8_t *memory, uintptr_t sp, uintptr_t data) {
-  memcpy(memory + sp, &data, sizeof(data));
-}
-#endif
-
-}  // namespace
-
-namespace google_breakpad {
-
-IosExceptionMinidumpGenerator::IosExceptionMinidumpGenerator(
-    NSException *exception)
-    : MinidumpGenerator(mach_task_self(), 0) {
-  return_addresses_ = [[exception callStackReturnAddresses] retain];
-  SetExceptionInformation(kExceptionType,
-                          kExceptionCode,
-                          0,
-                          pthread_mach_thread_np(pthread_self()));
-}
-
-IosExceptionMinidumpGenerator::~IosExceptionMinidumpGenerator() {
-  [return_addresses_ release];
-}
-
-bool IosExceptionMinidumpGenerator::WriteCrashingContext(
-    MDLocationDescriptor *register_location) {
-#ifdef HAS_ARM_SUPPORT
-  return WriteCrashingContextARM(register_location);
-#elif defined(HAS_ARM64_SUPPORT)
-  return WriteCrashingContextARM64(register_location);
-#else
-  assert(false);
-  return false;
-#endif
-}
-
-#ifdef HAS_ARM_SUPPORT
-bool IosExceptionMinidumpGenerator::WriteCrashingContextARM(
-    MDLocationDescriptor *register_location) {
-  TypedMDRVA<MDRawContextARM> context(&writer_);
-  if (!context.Allocate())
-    return false;
-  *register_location = context.location();
-  MDRawContextARM *context_ptr = context.get();
-  memset(context_ptr, 0, sizeof(MDRawContextARM));
-  context_ptr->context_flags = MD_CONTEXT_ARM_FULL;
-  context_ptr->iregs[MD_CONTEXT_ARM_REG_IOS_FP] = kExpectedFinalFp;  // FP
-  context_ptr->iregs[MD_CONTEXT_ARM_REG_SP] = kExpectedFinalSp;      // SP
-  context_ptr->iregs[MD_CONTEXT_ARM_REG_LR] = GetLRFromException();  // LR
-  context_ptr->iregs[MD_CONTEXT_ARM_REG_PC] = GetPCFromException();  // PC
-  return true;
-}
-#endif
-
-#ifdef HAS_ARM64_SUPPORT
-bool IosExceptionMinidumpGenerator::WriteCrashingContextARM64(
-    MDLocationDescriptor *register_location) {
-  TypedMDRVA<MDRawContextARM64> context(&writer_);
-  if (!context.Allocate())
-    return false;
-  *register_location = context.location();
-  MDRawContextARM64 *context_ptr = context.get();
-  memset(context_ptr, 0, sizeof(*context_ptr));
-  context_ptr->context_flags = MD_CONTEXT_ARM64_FULL;
-  context_ptr->iregs[MD_CONTEXT_ARM64_REG_FP] = kExpectedFinalFp;      // FP
-  context_ptr->iregs[MD_CONTEXT_ARM64_REG_SP] = kExpectedFinalSp;      // SP
-  context_ptr->iregs[MD_CONTEXT_ARM64_REG_LR] = GetLRFromException();  // LR
-  context_ptr->iregs[MD_CONTEXT_ARM64_REG_PC] = GetPCFromException();  // PC
-  return true;
-}
-#endif
-
-uintptr_t IosExceptionMinidumpGenerator::GetPCFromException() {
-  return [[return_addresses_ objectAtIndex:0] unsignedIntegerValue];
-}
-
-uintptr_t IosExceptionMinidumpGenerator::GetLRFromException() {
-  return [[return_addresses_ objectAtIndex:1] unsignedIntegerValue];
-}
-
-bool IosExceptionMinidumpGenerator::WriteExceptionStream(
-    MDRawDirectory *exception_stream) {
-#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
-  TypedMDRVA<MDRawExceptionStream> exception(&writer_);
-
-  if (!exception.Allocate())
-    return false;
-
-  exception_stream->stream_type = MD_EXCEPTION_STREAM;
-  exception_stream->location = exception.location();
-  MDRawExceptionStream *exception_ptr = exception.get();
-  exception_ptr->thread_id = pthread_mach_thread_np(pthread_self());
-
-  // This naming is confusing, but it is the proper translation from
-  // mach naming to minidump naming.
-  exception_ptr->exception_record.exception_code = kExceptionType;
-  exception_ptr->exception_record.exception_flags = kExceptionCode;
-
-  if (!WriteCrashingContext(&exception_ptr->thread_context))
-    return false;
-
-  exception_ptr->exception_record.exception_address = GetPCFromException();
-  return true;
-#else
-  return MinidumpGenerator::WriteExceptionStream(exception_stream);
-#endif
-}
-
-bool IosExceptionMinidumpGenerator::WriteThreadStream(mach_port_t thread_id,
-                                                      MDRawThread *thread) {
-#if defined(HAS_ARM_SUPPORT) || defined(HAS_ARM64_SUPPORT)
-  if (pthread_mach_thread_np(pthread_self()) != thread_id)
-    return MinidumpGenerator::WriteThreadStream(thread_id, thread);
-
-  size_t frame_count = [return_addresses_ count];
-  if (frame_count == 0)
-    return false;
-  UntypedMDRVA memory(&writer_);
-  size_t pointer_size = sizeof(uintptr_t);
-  size_t frame_record_size = 2 * pointer_size;
-  size_t stack_size = frame_record_size * (frame_count - 1) + pointer_size;
-  if (!memory.Allocate(stack_size))
-    return false;
-  scoped_array<uint8_t> stack_memory(new uint8_t[stack_size]);
-  uintptr_t sp = stack_size - pointer_size;
-  uintptr_t fp = 0;
-  uintptr_t lr = 0;
-  for (size_t current_frame = frame_count - 1;
-       current_frame > 0;
-       --current_frame) {
-    AppendToMemory(stack_memory.get(), sp, lr);
-    sp -= pointer_size;
-    AppendToMemory(stack_memory.get(), sp, fp);
-    fp = sp;
-    sp -= pointer_size;
-    lr = [[return_addresses_ objectAtIndex:current_frame] unsignedIntegerValue];
-  }
-  if (!memory.Copy(stack_memory.get(), stack_size))
-    return false;
-  assert(sp == kExpectedFinalSp);
-  assert(fp == kExpectedFinalFp);
-  assert(lr == GetLRFromException());
-  thread->stack.start_of_memory_range = sp;
-  thread->stack.memory = memory.location();
-  memory_blocks_.push_back(thread->stack);
-
-  if (!WriteCrashingContext(&thread->thread_context))
-    return false;
-
-  thread->thread_id = thread_id;
-  return true;
-#else
-  return MinidumpGenerator::WriteThreadStream(thread_id, thread);
-#endif
-}
-
-}  // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/linux/sender/google_crash_report_sender.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "common/linux/google_crashdump_uploader.h"
-#include "third_party/linux/include/gflags/gflags.h"
-#include <string>
-#include <iostream>
-
-#include "common/using_std_string.h"
-
-DEFINE_string(crash_server, "https://clients2.google.com/cr",
-              "The crash server to upload minidumps to.");
-DEFINE_string(product_name, "",
-              "The product name that the minidump corresponds to.");
-DEFINE_string(product_version, "",
-              "The version of the product that produced the minidump.");
-DEFINE_string(client_id, "",
-              "The client GUID");
-DEFINE_string(minidump_path, "",
-              "The path of the minidump file.");
-DEFINE_string(ptime, "",
-              "The process uptime in milliseconds.");
-DEFINE_string(ctime, "",
-              "The cumulative process uptime in milliseconds.");
-DEFINE_string(email, "",
-              "The user's email address.");
-DEFINE_string(comments, "",
-              "Extra user comments");
-DEFINE_string(proxy_host, "",
-              "Proxy host");
-DEFINE_string(proxy_userpasswd, "",
-              "Proxy username/password in user:pass format.");
-
-
-bool CheckForRequiredFlagsOrDie() {
-  string error_text = "";
-  if (FLAGS_product_name.empty()) {
-    error_text.append("\nProduct name must be specified.");
-  }
-
-  if (FLAGS_product_version.empty()) {
-    error_text.append("\nProduct version must be specified.");
-  }
-
-  if (FLAGS_client_id.empty()) {
-    error_text.append("\nClient ID must be specified.");
-  }
-
-  if (FLAGS_minidump_path.empty()) {
-    error_text.append("\nMinidump pathname must be specified.");
-  }
-
-  if (!error_text.empty()) {
-    std::cout << error_text;
-    return false;
-  }
-  return true;
-}
-
-int main(int argc, char *argv[]) {
-  google::InitGoogleLogging(argv[0]);
-  google::ParseCommandLineFlags(&argc, &argv, true);
-  if (!CheckForRequiredFlagsOrDie()) {
-    return 1;
-  }
-  google_breakpad::GoogleCrashdumpUploader g(FLAGS_product_name,
-                                             FLAGS_product_version,
-                                             FLAGS_client_id,
-                                             FLAGS_ptime,
-                                             FLAGS_ctime,
-                                             FLAGS_email,
-                                             FLAGS_comments,
-                                             FLAGS_minidump_path,
-                                             FLAGS_crash_server,
-                                             FLAGS_proxy_host,
-                                             FLAGS_proxy_userpasswd);
-  g.Upload(NULL, NULL, NULL);
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Breakpad.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,2788 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 45;
-	objects = {
-
-/* Begin PBXAggregateTarget section */
-		F94585840F782326009A47BF /* All */ = {
-			isa = PBXAggregateTarget;
-			buildConfigurationList = F94585930F78235C009A47BF /* Build configuration list for PBXAggregateTarget "All" */;
-			buildPhases = (
-			);
-			dependencies = (
-				F94585880F78232B009A47BF /* PBXTargetDependency */,
-				F945858A0F78232E009A47BF /* PBXTargetDependency */,
-				F945858C0F782330009A47BF /* PBXTargetDependency */,
-				F945858E0F782333009A47BF /* PBXTargetDependency */,
-				F94585900F782336009A47BF /* PBXTargetDependency */,
-				F93DE3A70F830D1D00608B94 /* PBXTargetDependency */,
-				F95BB8B3101F94D300AA053B /* PBXTargetDependency */,
-				F95BB8B5101F94D300AA053B /* PBXTargetDependency */,
-				F95BB8B7101F94D300AA053B /* PBXTargetDependency */,
-				8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */,
-				8B31051711F1010E00FCF3E4 /* PBXTargetDependency */,
-				8B31051911F1010E00FCF3E4 /* PBXTargetDependency */,
-				8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */,
-				8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */,
-				8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */,
-			);
-			name = All;
-			productName = All;
-		};
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
-		162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
-		162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
-		162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
-		162F64F5161C579B00CD68D5 /* arch_utilities.h in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
-		163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 163201D41443019E00C4DBF5 /* ConfigFile.h */; };
-		163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 163201D51443019E00C4DBF5 /* ConfigFile.mm */; };
-		163201E31443029300C4DBF5 /* ConfigFile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 163201D51443019E00C4DBF5 /* ConfigFile.mm */; };
-		16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C7C917147D45AE00776EAD /* BreakpadDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		16E02DB8147410F0008C604D /* uploader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 16E02DB4147410D4008C604D /* uploader.mm */; };
-		1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */; };
-		1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */; };
-		1EEEB6271720831E00F7E689 /* BreakpadFramework_Test.mm in Sources */ = {isa = PBXBuildFile; fileRef = F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */; };
-		1EEEB62A1720859200F7E689 /* simple_string_dictionary_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */; };
-		1EEEB62B1720868C00F7E689 /* simple_string_dictionary.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */; };
-		3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */; };
-		33880C800F9E097100817F82 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33880C7E0F9E097100817F82 /* InfoPlist.strings */; };
-		4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; };
-		4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D61A26C14F43D42002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D61A26D14F43D43002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D61A26E14F43D45002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D61A26F14F43D48002D5862 /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
-		4D72CA0E13DFAD5C006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
-		4D72CA2513DFAE1C006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
-		4D72CA2F13DFAE65006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
-		4D72CA3813DFAE91006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
-		4D72CA3913DFAE92006CABE3 /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
-		4DBE49A6134A4F200072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
-		4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
-		4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
-		4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
-		8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
-		8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
-		8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */; };
-		8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
-		D23F4B2E12A7E13200686C8D /* minidump_generator_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */; };
-		D23F4B3312A7E17700686C8D /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
-		D23F4BB112A868CB00686C8D /* minidump_generator_test_helper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */; };
-		D23F4BB812A868F700686C8D /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
-		D244536A12426F00009BBCE0 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
-		D244536B12426F00009BBCE0 /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
-		D244536C12426F00009BBCE0 /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
-		D244536D12426F00009BBCE0 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
-		D244540B12439BA0009BBCE0 /* memory_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244540A12439BA0009BBCE0 /* memory_unittest.cc */; };
-		D246417012BAA40E005170D0 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
-		D246417112BAA41C005170D0 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
-		D246417512BAA438005170D0 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
-		D246417612BAA43F005170D0 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
-		D246417712BAA444005170D0 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
-		D246418412BAA4BA005170D0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		D246418812BAA4E3005170D0 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
-		D246418C12BAA508005170D0 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		D246419012BAA52A005170D0 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		D246419112BAA52F005170D0 /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		D246419512BAA54C005170D0 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
-		D246419612BAA55A005170D0 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
-		D24641A012BAA67F005170D0 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
-		D24641AF12BAA82D005170D0 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
-		D24641EC12BAC6FB005170D0 /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
-		D24641ED12BAC6FB005170D0 /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
-		D24641EE12BAC6FB005170D0 /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
-		D24641EF12BAC6FB005170D0 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
-		D24BBBFD121050F000F3D417 /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
-		D24BBD291211EDB100F3D417 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
-		D24BBD321212CACF00F3D417 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
-		D2A5DD301188633800081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
-		D2A5DD401188640400081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
-		D2A5DD411188642E00081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
-		D2C1DBE412AFC270006917BD /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535112426EBB009BBCE0 /* logging.cc */; };
-		D2C1DBE512AFC270006917BD /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535212426EBB009BBCE0 /* minidump.cc */; };
-		D2C1DBE612AFC270006917BD /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244535312426EBB009BBCE0 /* pathname_stripper.cc */; };
-		D2C1DBE712AFC270006917BD /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = D244534F12426E98009BBCE0 /* basic_code_modules.cc */; };
-		D2F9A3D51212F87C002747C1 /* exception_handler_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */; };
-		D2F9A43D12131F55002747C1 /* gmock-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43C12131F55002747C1 /* gmock-all.cc */; };
-		D2F9A44012131F65002747C1 /* gtest_main.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43E12131F65002747C1 /* gtest_main.cc */; };
-		D2F9A44112131F65002747C1 /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A43F12131F65002747C1 /* gtest-all.cc */; };
-		D2F9A44412131F84002747C1 /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
-		D2F9A4C9121336C7002747C1 /* client_info.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C4121336C7002747C1 /* client_info.h */; };
-		D2F9A4CA121336C7002747C1 /* crash_generation_client.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C5121336C7002747C1 /* crash_generation_client.h */; };
-		D2F9A4CB121336C7002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
-		D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F9A4C7121336C7002747C1 /* crash_generation_server.h */; };
-		D2F9A4CD121336C7002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
-		D2F9A4DF12133AD9002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
-		D2F9A4E012133AD9002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
-		D2F9A4E112133AE2002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
-		D2F9A4E212133AE2002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
-		D2F9A52E121383A1002747C1 /* crash_generation_client.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */; };
-		D2F9A52F121383A1002747C1 /* crash_generation_server.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */; };
-		D2F9A530121383A1002747C1 /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
-		D2F9A531121383A1002747C1 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
-		D2F9A532121383A1002747C1 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
-		D2F9A533121383A1002747C1 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
-		D2F9A534121383A1002747C1 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
-		D2F9A535121383A1002747C1 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		D2F9A536121383A1002747C1 /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		D2F9A537121383A1002747C1 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		D2F9A538121383A1002747C1 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
-		D2F9A539121383A1002747C1 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
-		D2F9A53A121383A1002747C1 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
-		D2F9A53B121383A1002747C1 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
-		D2F9A53C121383A1002747C1 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
-		D2F9A53F121383A1002747C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		D2F9A541121383A1002747C1 /* libgtest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D2F9A41512131EF0002747C1 /* libgtest.a */; };
-		D2F9A553121383DC002747C1 /* crash_generation_server_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */; };
-		F4DAB1DD19F1027100A5A838 /* launch_reporter.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */; };
-		F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */ = {isa = PBXBuildFile; fileRef = F4DAB1DC19F1027100A5A838 /* launch_reporter.h */; };
-		F4F916B619F10FFC00B83BE4 /* launch_reporter.cc in Sources */ = {isa = PBXBuildFile; fileRef = F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */; };
-		F91AF6210FD60784009D8BE2 /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
-		F9286B3A0F7EB25800A4DCC8 /* InspectorMain.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */; };
-		F92C53B80ECCE7B3009BE4BA /* Inspector.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53B70ECCE7B3009BE4BA /* Inspector.mm */; };
-		F92C554C0ECCF534009BE4BA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
-		F92C55D00ECD0064009BE4BA /* Breakpad.h in Headers */ = {isa = PBXBuildFile; fileRef = F92C55CE0ECD0064009BE4BA /* Breakpad.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C55CF0ECD0064009BE4BA /* Breakpad.mm */; };
-		F92C56330ECD0DF1009BE4BA /* OnDemandServer.h in Headers */ = {isa = PBXBuildFile; fileRef = F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */; };
-		F92C56340ECD0DF1009BE4BA /* OnDemandServer.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */; };
-		F92C563F0ECD10CA009BE4BA /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		F92C56400ECD10CA009BE4BA /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
-		F92C56410ECD10CA009BE4BA /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
-		F92C56420ECD10CA009BE4BA /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
-		F92C56430ECD10CA009BE4BA /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
-		F92C56440ECD10CA009BE4BA /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
-		F92C56450ECD10CA009BE4BA /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
-		F92C56460ECD10CA009BE4BA /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		F92C56470ECD10CA009BE4BA /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
-		F92C56490ECD10CA009BE4BA /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
-		F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
-		F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C554A0ECCF530009BE4BA /* Carbon.framework */; };
-		F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
-		F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */; };
-		F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
-		F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
-		F92C568A0ECD15F9009BE4BA /* Inspector in Resources */ = {isa = PBXBuildFile; fileRef = F92C53540ECCE349009BE4BA /* Inspector */; };
-		F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */; };
-		F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
-		F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
-		F93803CF0F8083B7004D428B /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
-		F93803D00F8083B7004D428B /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		F93803D10F8083B7004D428B /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		F93803D20F8083B7004D428B /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		F93803D30F8083B7004D428B /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
-		F93803D40F8083B7004D428B /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
-		F93803D50F8083B7004D428B /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
-		F93803D60F8083B7004D428B /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
-		F93803D70F8083B7004D428B /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
-		F93DE2D80F82A70E00608B94 /* minidump_file_writer_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */; };
-		F93DE2D90F82A73500608B94 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		F93DE2DA0F82A73500608B94 /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		F93DE2DB0F82A73500608B94 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		F93DE3350F82C66B00608B94 /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
-		F93DE3360F82C66B00608B94 /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
-		F93DE3370F82C66B00608B94 /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
-		F93DE3380F82C66B00608B94 /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
-		F93DE3390F82C66B00608B94 /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
-		F93DE33A0F82C66B00608B94 /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
-		F93DE33B0F82C66B00608B94 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
-		F93DE33C0F82C66B00608B94 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
-		F93DE33D0F82C66B00608B94 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
-		F93DE33E0F82C66B00608B94 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
-		F93DE33F0F82C66B00608B94 /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
-		F945849E0F280E3C009A47BF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F945849C0F280E3C009A47BF /* Localizable.strings */; };
-		F9B630A0100FF96B00D0F4AC /* goArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F9B6309F100FF96B00D0F4AC /* goArrow.png */; };
-		F9C44DB20EF07288003AEBAA /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DAC0EF07288003AEBAA /* Controller.m */; };
-		F9C44DB30EF07288003AEBAA /* crashduringload in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DAD0EF07288003AEBAA /* crashduringload */; };
-		F9C44DB40EF07288003AEBAA /* crashInMain in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DAE0EF07288003AEBAA /* crashInMain */; };
-		F9C44DB60EF07288003AEBAA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DB00EF07288003AEBAA /* main.m */; };
-		F9C44DB70EF07288003AEBAA /* TestClass.mm in Sources */ = {isa = PBXBuildFile; fileRef = F9C44DB10EF07288003AEBAA /* TestClass.mm */; };
-		F9C44DBC0EF072A0003AEBAA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */; };
-		F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */; };
-		F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
-		F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
-		F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */ = {isa = PBXBuildFile; fileRef = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */; };
-		F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */; };
-		F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */; };
-		F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */; };
-		F9C77E130F7DDF810045F7DB /* GTMSenTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
-		8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = B88FAFC9116BDCAD00407530;
-			remoteInfo = all_unittests;
-		};
-		8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F93803BD0F80820F004D428B;
-			remoteInfo = generator_test;
-		};
-		8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F93DE2D00F82A67300608B94;
-			remoteInfo = minidump_file_writer_unittest;
-		};
-		8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F93DE32B0F82C55600608B94;
-			remoteInfo = handler_test;
-		};
-		8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = B89E0E731166575200DD08C9;
-			remoteInfo = macho_dump;
-		};
-		8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = 9BD835FA0B0544950055103E;
-			remoteInfo = minidump_upload;
-		};
-		8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B89E0E741166575200DD08C9;
-			remoteInfo = macho_dump;
-		};
-		8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB024116BDFFF00407530;
-			remoteInfo = gtestmockall;
-		};
-		8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB14B116CF4A700407530;
-			remoteInfo = byte_cursor_unittest;
-		};
-		8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B89E0E9511665A6400DD08C9;
-			remoteInfo = macho_reader_unittest;
-		};
-		8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB007116BDE8300407530;
-			remoteInfo = stabs_reader_unittest;
-		};
-		8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB135116CF30F00407530;
-			remoteInfo = bytereader_unittest;
-		};
-		8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FAF2F116A591E00407530;
-			remoteInfo = dwarf2reader_cfi_unittest;
-		};
-		8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB0DF116CEEA800407530;
-			remoteInfo = dwarf2diehandler_unittest;
-		};
-		8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB10A116CF07900407530;
-			remoteInfo = dwarf_cu_to_module_unittest;
-		};
-		8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB0F2116CEF1900407530;
-			remoteInfo = dwarf_line_to_module_unittest;
-		};
-		8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB11F116CF27F00407530;
-			remoteInfo = dwarf_cfi_to_module_unittest;
-		};
-		8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B84A91F4116CF784006C210E;
-			remoteInfo = stabs_to_module_unittest;
-		};
-		8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = B88FB0B9116CEABF00407530;
-			remoteInfo = module_unittest;
-		};
-		8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = D21F97D211CBA0F200239E38;
-			remoteInfo = test_assembler_unittest;
-		};
-		D23F4B2F12A7E16200686C8D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = D2F9A41412131EF0002747C1;
-			remoteInfo = gtest;
-		};
-		D23F4BB912A8694C00686C8D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = D23F4BAA12A868A500686C8D;
-			remoteInfo = minidump_generator_test_helper;
-		};
-		D2F9A44212131F80002747C1 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = D2F9A41412131EF0002747C1;
-			remoteInfo = gtest;
-		};
-		D2F9A52C121383A1002747C1 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = D2F9A41412131EF0002747C1;
-			remoteInfo = gtest;
-		};
-		D2F9A5DE12142A6A002747C1 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = D2F9A52A121383A1002747C1;
-			remoteInfo = crash_generation_server_test;
-		};
-		F91AF6370FD60A74009D8BE2 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
-			remoteInfo = Breakpad;
-		};
-		F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
-			remoteInfo = breakpadUtilities;
-		};
-		F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
-			remoteInfo = breakpadUtilities;
-		};
-		F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C53530ECCE349009BE4BA;
-			remoteInfo = Inspector;
-		};
-		F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F93803BD0F80820F004D428B;
-			remoteInfo = generator_test;
-		};
-		F93DE36F0F82CC1300608B94 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F93DE32B0F82C55600608B94;
-			remoteInfo = handler_test;
-		};
-		F93DE3A60F830D1D00608B94 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F9C77DD90F7DD5CF0045F7DB;
-			remoteInfo = UnitTests;
-		};
-		F94585870F78232B009A47BF /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
-			remoteInfo = Breakpad;
-		};
-		F94585890F78232E009A47BF /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C53530ECCE349009BE4BA;
-			remoteInfo = Inspector;
-		};
-		F945858B0F782330009A47BF /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
-			remoteInfo = breakpadUtilities;
-		};
-		F945858D0F782333009A47BF /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
-			remoteInfo = crash_report_sender;
-		};
-		F945858F0F782336009A47BF /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F9C44DA40EF060A8003AEBAA;
-			remoteInfo = BreakpadTest;
-		};
-		F95BB884101F949F00AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
-			remoteInfo = crash_report;
-		};
-		F95BB891101F94AC00AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
-			remoteInfo = dump_syms;
-		};
-		F95BB89E101F94C000AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 8DD76FA10486AA7600D96B5E;
-			remoteInfo = symupload;
-		};
-		F95BB8A0101F94C000AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
-			proxyType = 2;
-			remoteGlobalIDString = 9BD835FB0B0544950055103E;
-			remoteInfo = minidump_upload;
-		};
-		F95BB8B2101F94D300AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = B8C5B5101166531A00D34F4E;
-			remoteInfo = dump_syms;
-		};
-		F95BB8B4101F94D300AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = 8DD76F960486AA7600D96B5E;
-			remoteInfo = symupload;
-		};
-		F95BB8B6101F94D300AA053B /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
-			proxyType = 1;
-			remoteGlobalIDString = 8DD76F960486AA7600D96B5E;
-			remoteInfo = crash_report;
-		};
-		F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
-			remoteInfo = Breakpad;
-		};
-		F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
-			remoteInfo = crash_report_sender;
-		};
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		F9C44E410EF08B17003AEBAA /* Copy Frameworks */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 2147483647;
-			dstPath = "";
-			dstSubfolderSpec = 10;
-			files = (
-				F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */,
-			);
-			name = "Copy Frameworks";
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
-		1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
-		162F64F0161C577500CD68D5 /* arch_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = arch_utilities.cc; path = ../../common/mac/arch_utilities.cc; sourceTree = "<group>"; };
-		162F64F1161C577500CD68D5 /* arch_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch_utilities.h; path = ../../common/mac/arch_utilities.h; sourceTree = "<group>"; };
-		163201D41443019E00C4DBF5 /* ConfigFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConfigFile.h; path = crash_generation/ConfigFile.h; sourceTree = "<group>"; };
-		163201D51443019E00C4DBF5 /* ConfigFile.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = ConfigFile.mm; path = crash_generation/ConfigFile.mm; sourceTree = "<group>"; };
-		163202431443201300C4DBF5 /* uploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = uploader.h; path = sender/uploader.h; sourceTree = "<group>"; };
-		16C7C917147D45AE00776EAD /* BreakpadDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BreakpadDefines.h; sourceTree = "<group>"; };
-		16E02DB4147410D4008C604D /* uploader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = uploader.mm; path = sender/uploader.mm; sourceTree = "<group>"; };
-		1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simple_string_dictionary.cc; path = ../../common/simple_string_dictionary.cc; sourceTree = "<group>"; };
-		1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = simple_string_dictionary.h; path = ../../common/simple_string_dictionary.h; sourceTree = "<group>"; };
-		1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simple_string_dictionary_unittest.cc; path = ../../common/simple_string_dictionary_unittest.cc; sourceTree = "<group>"; };
-		32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Breakpad_Prefix.pch; path = Framework/Breakpad_Prefix.pch; sourceTree = "<group>"; };
-		3329D4EC0FA16D820007BBC5 /* Breakpad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Breakpad.xib; path = sender/Breakpad.xib; sourceTree = "<group>"; };
-		33880C7F0F9E097100817F82 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; };
-		4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bootstrap_compat.cc; path = ../../common/mac/bootstrap_compat.cc; sourceTree = SOURCE_ROOT; };
-		4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bootstrap_compat.h; path = ../../common/mac/bootstrap_compat.h; sourceTree = SOURCE_ROOT; };
-		4D72CA0D13DFAD5C006CABE3 /* md5.cc */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = md5.cc; path = ../../common/md5.cc; sourceTree = SOURCE_ROOT; };
-		4DBE4769134A4F080072546A /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
-		8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMDefines.h; path = ../../common/mac/GTMDefines.h; sourceTree = SOURCE_ROOT; };
-		8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
-		8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; };
-		8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; };
-		8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; };
-		8DC2EF5B0486A6940098B216 /* Breakpad.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Breakpad.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator_test.cc; path = tests/minidump_generator_test.cc; sourceTree = "<group>"; };
-		D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator_test_helper.cc; path = tests/minidump_generator_test_helper.cc; sourceTree = "<group>"; };
-		D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = minidump_generator_test_helper; sourceTree = BUILT_PRODUCTS_DIR; };
-		D244534F12426E98009BBCE0 /* basic_code_modules.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = basic_code_modules.cc; path = ../../processor/basic_code_modules.cc; sourceTree = SOURCE_ROOT; };
-		D244535112426EBB009BBCE0 /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cc; path = ../../processor/logging.cc; sourceTree = SOURCE_ROOT; };
-		D244535212426EBB009BBCE0 /* minidump.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump.cc; path = ../../processor/minidump.cc; sourceTree = SOURCE_ROOT; };
-		D244535312426EBB009BBCE0 /* pathname_stripper.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pathname_stripper.cc; path = ../../processor/pathname_stripper.cc; sourceTree = SOURCE_ROOT; };
-		D244540A12439BA0009BBCE0 /* memory_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = memory_unittest.cc; path = ../../common/memory_unittest.cc; sourceTree = SOURCE_ROOT; };
-		D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exception_handler_test.cc; path = tests/exception_handler_test.cc; sourceTree = "<group>"; };
-		D2F9A41512131EF0002747C1 /* libgtest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgtest.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		D2F9A43C12131F55002747C1 /* gmock-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gmock-all.cc"; path = "../../testing/src/gmock-all.cc"; sourceTree = SOURCE_ROOT; };
-		D2F9A43E12131F65002747C1 /* gtest_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtest_main.cc; path = ../../testing/gtest/src/gtest_main.cc; sourceTree = "<group>"; };
-		D2F9A43F12131F65002747C1 /* gtest-all.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "gtest-all.cc"; path = "../../testing/gtest/src/gtest-all.cc"; sourceTree = "<group>"; };
-		D2F9A4C4121336C7002747C1 /* client_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = client_info.h; path = crash_generation/client_info.h; sourceTree = "<group>"; };
-		D2F9A4C5121336C7002747C1 /* crash_generation_client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_generation_client.h; path = crash_generation/crash_generation_client.h; sourceTree = "<group>"; };
-		D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_client.cc; path = crash_generation/crash_generation_client.cc; sourceTree = "<group>"; };
-		D2F9A4C7121336C7002747C1 /* crash_generation_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_generation_server.h; path = crash_generation/crash_generation_server.h; sourceTree = "<group>"; };
-		D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_server.cc; path = crash_generation/crash_generation_server.cc; sourceTree = "<group>"; };
-		D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = crash_generation_server_test.cc; path = tests/crash_generation_server_test.cc; sourceTree = "<group>"; };
-		D2F9A546121383A1002747C1 /* crash_generation_server_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = crash_generation_server_test; sourceTree = BUILT_PRODUCTS_DIR; };
-		DE43467411C72855004F095F /* da */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = da; path = sender/da.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467511C72857004F095F /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = sender/de.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467611C7285B004F095F /* es */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = es; path = sender/es.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467711C72862004F095F /* fr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fr; path = sender/fr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467811C72869004F095F /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = sender/it.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467911C7286D004F095F /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = sender/nl.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467A11C72873004F095F /* no */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = no; path = sender/no.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467B11C72877004F095F /* sl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sl; path = sender/sl.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467C11C7287A004F095F /* sv */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sv; path = sender/sv.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467E11C728DC004F095F /* ja */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ja; path = sender/ja.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43467F11C728E1004F095F /* tr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = sender/tr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DE43468611C72958004F095F /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = sender/de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468711C7295D004F095F /* da */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = da; path = sender/da.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468811C7295F004F095F /* es */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = es; path = sender/es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468911C72964004F095F /* fr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fr; path = sender/fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468A11C72967004F095F /* it */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = it; path = sender/it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468B11C7296B004F095F /* ja */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ja; path = sender/ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468C11C7296D004F095F /* nl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = nl; path = sender/nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468D11C7296F004F095F /* no */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = no; path = sender/no.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468E11C72971004F095F /* sl */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sl; path = sender/sl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43468F11C72973004F095F /* sv */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = sv; path = sender/sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		DE43469011C72976004F095F /* tr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = tr; path = sender/tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = launch_reporter.cc; path = ../../common/mac/launch_reporter.cc; sourceTree = SOURCE_ROOT; };
-		F4DAB1DC19F1027100A5A838 /* launch_reporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = launch_reporter.h; path = ../../common/mac/launch_reporter.h; sourceTree = SOURCE_ROOT; };
-		F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = BreakpadFramework_Test.mm; path = tests/BreakpadFramework_Test.mm; sourceTree = "<group>"; };
-		F9286B380F7EB25800A4DCC8 /* Inspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Inspector.h; path = crash_generation/Inspector.h; sourceTree = "<group>"; };
-		F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InspectorMain.mm; path = crash_generation/InspectorMain.mm; sourceTree = "<group>"; };
-		F92C53540ECCE349009BE4BA /* Inspector */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Inspector; sourceTree = BUILT_PRODUCTS_DIR; };
-		F92C53670ECCE3FD009BE4BA /* breakpad_exc_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = breakpad_exc_server.c; path = handler/breakpad_exc_server.c; sourceTree = SOURCE_ROOT; };
-		F92C53680ECCE3FD009BE4BA /* breakpad_exc_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_exc_server.h; path = handler/breakpad_exc_server.h; sourceTree = SOURCE_ROOT; };
-		F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = breakpad_nlist_64.cc; path = handler/breakpad_nlist_64.cc; sourceTree = SOURCE_ROOT; };
-		F92C536A0ECCE3FD009BE4BA /* breakpad_nlist_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = breakpad_nlist_64.h; path = handler/breakpad_nlist_64.h; sourceTree = SOURCE_ROOT; };
-		F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dynamic_images.cc; path = handler/dynamic_images.cc; sourceTree = SOURCE_ROOT; };
-		F92C536C0ECCE3FD009BE4BA /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dynamic_images.h; path = handler/dynamic_images.h; sourceTree = SOURCE_ROOT; };
-		F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exception_handler.cc; path = handler/exception_handler.cc; sourceTree = SOURCE_ROOT; };
-		F92C536E0ECCE3FD009BE4BA /* exception_handler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = exception_handler.h; path = handler/exception_handler.h; sourceTree = SOURCE_ROOT; };
-		F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_generator.cc; path = handler/minidump_generator.cc; sourceTree = SOURCE_ROOT; };
-		F92C53700ECCE3FD009BE4BA /* minidump_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_generator.h; path = handler/minidump_generator.h; sourceTree = SOURCE_ROOT; };
-		F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = protected_memory_allocator.cc; path = handler/protected_memory_allocator.cc; sourceTree = SOURCE_ROOT; };
-		F92C53730ECCE3FD009BE4BA /* protected_memory_allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = protected_memory_allocator.h; path = handler/protected_memory_allocator.h; sourceTree = SOURCE_ROOT; };
-		F92C53740ECCE635009BE4BA /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; };
-		F92C53750ECCE635009BE4BA /* file_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_id.h; path = ../../common/mac/file_id.h; sourceTree = SOURCE_ROOT; };
-		F92C53760ECCE635009BE4BA /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPMultipartUpload.h; path = ../../common/mac/HTTPMultipartUpload.h; sourceTree = SOURCE_ROOT; };
-		F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HTTPMultipartUpload.m; path = ../../common/mac/HTTPMultipartUpload.m; sourceTree = SOURCE_ROOT; };
-		F92C53780ECCE635009BE4BA /* MachIPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MachIPC.h; path = ../../common/mac/MachIPC.h; sourceTree = SOURCE_ROOT; };
-		F92C53790ECCE635009BE4BA /* MachIPC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MachIPC.mm; path = ../../common/mac/MachIPC.mm; sourceTree = SOURCE_ROOT; };
-		F92C537A0ECCE635009BE4BA /* macho_id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_id.cc; path = ../../common/mac/macho_id.cc; sourceTree = SOURCE_ROOT; };
-		F92C537B0ECCE635009BE4BA /* macho_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_id.h; path = ../../common/mac/macho_id.h; sourceTree = SOURCE_ROOT; };
-		F92C537C0ECCE635009BE4BA /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; };
-		F92C537D0ECCE635009BE4BA /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; };
-		F92C537E0ECCE635009BE4BA /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
-		F92C537F0ECCE635009BE4BA /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
-		F92C53820ECCE635009BE4BA /* string_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_utilities.cc; path = ../../common/mac/string_utilities.cc; sourceTree = SOURCE_ROOT; };
-		F92C53830ECCE635009BE4BA /* string_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_utilities.h; path = ../../common/mac/string_utilities.h; sourceTree = SOURCE_ROOT; };
-		F92C53850ECCE6AD009BE4BA /* string_conversion.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = string_conversion.cc; path = ../../common/string_conversion.cc; sourceTree = SOURCE_ROOT; };
-		F92C53860ECCE6AD009BE4BA /* string_conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = string_conversion.h; path = ../../common/string_conversion.h; sourceTree = SOURCE_ROOT; };
-		F92C53870ECCE6C0009BE4BA /* convert_UTF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = convert_UTF.c; path = ../../common/convert_UTF.c; sourceTree = SOURCE_ROOT; };
-		F92C53880ECCE6C0009BE4BA /* convert_UTF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = convert_UTF.h; path = ../../common/convert_UTF.h; sourceTree = SOURCE_ROOT; };
-		F92C538E0ECCE70A009BE4BA /* minidump_file_writer-inl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "minidump_file_writer-inl.h"; path = "../minidump_file_writer-inl.h"; sourceTree = SOURCE_ROOT; };
-		F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer.cc; path = ../minidump_file_writer.cc; sourceTree = SOURCE_ROOT; };
-		F92C53900ECCE70A009BE4BA /* minidump_file_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = minidump_file_writer.h; path = ../minidump_file_writer.h; sourceTree = SOURCE_ROOT; };
-		F92C53B70ECCE7B3009BE4BA /* Inspector.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Inspector.mm; path = crash_generation/Inspector.mm; sourceTree = SOURCE_ROOT; };
-		F92C554A0ECCF530009BE4BA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
-		F92C55CE0ECD0064009BE4BA /* Breakpad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Breakpad.h; path = Framework/Breakpad.h; sourceTree = "<group>"; };
-		F92C55CF0ECD0064009BE4BA /* Breakpad.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Breakpad.mm; path = Framework/Breakpad.mm; sourceTree = "<group>"; };
-		F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OnDemandServer.h; path = Framework/OnDemandServer.h; sourceTree = "<group>"; };
-		F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OnDemandServer.mm; path = Framework/OnDemandServer.mm; sourceTree = "<group>"; };
-		F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = breakpadUtilities.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
-		F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = crash_report_sender.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "crash_report_sender-Info.plist"; path = "sender/crash_report_sender-Info.plist"; sourceTree = "<group>"; };
-		F92C56A70ECE04C5009BE4BA /* crash_report_sender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crash_report_sender.h; path = sender/crash_report_sender.h; sourceTree = "<group>"; };
-		F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = crash_report_sender.m; path = sender/crash_report_sender.m; sourceTree = "<group>"; };
-		F93803BE0F80820F004D428B /* generator_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = generator_test; sourceTree = BUILT_PRODUCTS_DIR; };
-		F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = minidump_file_writer_unittest; sourceTree = BUILT_PRODUCTS_DIR; };
-		F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = minidump_file_writer_unittest.cc; path = ../minidump_file_writer_unittest.cc; sourceTree = SOURCE_ROOT; };
-		F93DE32C0F82C55600608B94 /* handler_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = handler_test; sourceTree = BUILT_PRODUCTS_DIR; };
-		F945849D0F280E3C009A47BF /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/Localizable.strings; sourceTree = "<group>"; };
-		F945859D0F78241E009A47BF /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Framework/Info.plist; sourceTree = "<group>"; };
-		F95BB87C101F949F00AA053B /* crash_report.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = crash_report.xcodeproj; path = ../../tools/mac/crash_report/crash_report.xcodeproj; sourceTree = SOURCE_ROOT; };
-		F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = dump_syms.xcodeproj; path = ../../tools/mac/dump_syms/dump_syms.xcodeproj; sourceTree = SOURCE_ROOT; };
-		F95BB894101F94C000AA053B /* symupload.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = symupload.xcodeproj; path = ../../tools/mac/symupload/symupload.xcodeproj; sourceTree = SOURCE_ROOT; };
-		F9B6309F100FF96B00D0F4AC /* goArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = goArrow.png; path = sender/goArrow.png; sourceTree = "<group>"; };
-		F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BreakpadTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
-		F9C44DAC0EF07288003AEBAA /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Controller.m; path = testapp/Controller.m; sourceTree = "<group>"; };
-		F9C44DAD0EF07288003AEBAA /* crashduringload */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = crashduringload; path = testapp/crashduringload; sourceTree = "<group>"; };
-		F9C44DAE0EF07288003AEBAA /* crashInMain */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = crashInMain; path = testapp/crashInMain; sourceTree = "<group>"; };
-		F9C44DAF0EF07288003AEBAA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = testapp/Info.plist; sourceTree = "<group>"; };
-		F9C44DB00EF07288003AEBAA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = testapp/main.m; sourceTree = "<group>"; };
-		F9C44DB10EF07288003AEBAA /* TestClass.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TestClass.mm; path = testapp/TestClass.mm; sourceTree = "<group>"; };
-		F9C44DB90EF072A0003AEBAA /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = testapp/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		F9C44DBB0EF072A0003AEBAA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = testapp/English.lproj/MainMenu.xib; sourceTree = "<group>"; };
-		F9C44DBF0EF0778F003AEBAA /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Controller.h; path = testapp/Controller.h; sourceTree = "<group>"; };
-		F9C44DC00EF0778F003AEBAA /* TestClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestClass.h; path = testapp/TestClass.h; sourceTree = "<group>"; };
-		F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
-		F9C44EE70EF0A3C1003AEBAA /* GTMLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMLogger.h; path = ../../common/mac/GTMLogger.h; sourceTree = SOURCE_ROOT; };
-		F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTMLogger.m; path = ../../common/mac/GTMLogger.m; sourceTree = SOURCE_ROOT; };
-		F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
-		F9C77DDB0F7DD5CF0045F7DB /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "UnitTests-Info.plist"; sourceTree = "<group>"; };
-		F9C77E110F7DDF810045F7DB /* GTMSenTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMSenTestCase.h; path = ../../common/mac/testing/GTMSenTestCase.h; sourceTree = SOURCE_ROOT; };
-		F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTMSenTestCase.m; path = ../../common/mac/testing/GTMSenTestCase.m; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		8DC2EF560486A6940098B216 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */,
-				8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D23F4BA912A868A500686C8D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D246418412BAA4BA005170D0 /* Foundation.framework in Frameworks */,
-				4DBE49A6134A4F200072546A /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D2F9A41312131EF0002747C1 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D2F9A53E121383A1002747C1 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D2F9A53F121383A1002747C1 /* Foundation.framework in Frameworks */,
-				D2F9A541121383A1002747C1 /* libgtest.a in Frameworks */,
-				4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C53520ECCE349009BE4BA /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */,
-				F92C554C0ECCF534009BE4BA /* Foundation.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C563A0ECD10B3009BE4BA /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */,
-				F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C569E0ECE04A7009BE4BA /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */,
-				8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */,
-				8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93803BC0F80820F004D428B /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */,
-				D23F4B3312A7E17700686C8D /* libgtest.a in Frameworks */,
-				4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93DE2CF0F82A67300608B94 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93DE32A0F82C55600608B94 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */,
-				D2F9A44412131F84002747C1 /* libgtest.a in Frameworks */,
-				4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C44DA30EF060A8003AEBAA /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */,
-				8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */,
-				8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C77DD70F7DD5CF0045F7DB /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F91AF6210FD60784009D8BE2 /* Breakpad.framework in Frameworks */,
-				8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */,
-				8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */,
-				D24BBBFD121050F000F3D417 /* breakpadUtilities.dylib in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		034768DFFF38A50411DB9C8B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				8DC2EF5B0486A6940098B216 /* Breakpad.framework */,
-				F92C53540ECCE349009BE4BA /* Inspector */,
-				F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */,
-				F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */,
-				F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */,
-				F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */,
-				F93803BE0F80820F004D428B /* generator_test */,
-				F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */,
-				F93DE32C0F82C55600608B94 /* handler_test */,
-				D2F9A41512131EF0002747C1 /* libgtest.a */,
-				D2F9A546121383A1002747C1 /* crash_generation_server_test */,
-				D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		0867D691FE84028FC02AAC07 /* Breakpad */ = {
-			isa = PBXGroup;
-			children = (
-				D2F9A43812131F3B002747C1 /* gtest */,
-				8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */,
-				8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */,
-				8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */,
-				F95BB8A3101F94C300AA053B /* Tools */,
-				32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */,
-				F92C538D0ECCE6F2009BE4BA /* client */,
-				F92C53600ECCE3D6009BE4BA /* common */,
-				D244536912426EE7009BBCE0 /* processor */,
-				0867D69AFE84028FC02AAC07 /* Frameworks */,
-				034768DFFF38A50411DB9C8B /* Products */,
-				F9C77DDB0F7DD5CF0045F7DB /* UnitTests-Info.plist */,
-			);
-			name = Breakpad;
-			sourceTree = "<group>";
-		};
-		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */,
-				F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */,
-				F92C554A0ECCF530009BE4BA /* Carbon.framework */,
-				1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
-				0867D6A5FE840307C02AAC07 /* AppKit.framework */,
-				0867D69BFE84028FC02AAC07 /* Foundation.framework */,
-				4DBE4769134A4F080072546A /* CoreServices.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		16C7C915147D45AE00776EAD /* apple */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C916147D45AE00776EAD /* Framework */,
-			);
-			name = apple;
-			path = ../apple;
-			sourceTree = SOURCE_ROOT;
-		};
-		16C7C916147D45AE00776EAD /* Framework */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C917147D45AE00776EAD /* BreakpadDefines.h */,
-			);
-			path = Framework;
-			sourceTree = "<group>";
-		};
-		D244536912426EE7009BBCE0 /* processor */ = {
-			isa = PBXGroup;
-			children = (
-				D244535112426EBB009BBCE0 /* logging.cc */,
-				D244535212426EBB009BBCE0 /* minidump.cc */,
-				D244535312426EBB009BBCE0 /* pathname_stripper.cc */,
-				D244534F12426E98009BBCE0 /* basic_code_modules.cc */,
-			);
-			name = processor;
-			sourceTree = "<group>";
-		};
-		D2F9A43812131F3B002747C1 /* gtest */ = {
-			isa = PBXGroup;
-			children = (
-				D2F9A43E12131F65002747C1 /* gtest_main.cc */,
-				D2F9A43F12131F65002747C1 /* gtest-all.cc */,
-				D2F9A43C12131F55002747C1 /* gmock-all.cc */,
-			);
-			name = gtest;
-			sourceTree = "<group>";
-		};
-		F92C53590ECCE3BB009BE4BA /* handler */ = {
-			isa = PBXGroup;
-			children = (
-				F92C53670ECCE3FD009BE4BA /* breakpad_exc_server.c */,
-				F92C53680ECCE3FD009BE4BA /* breakpad_exc_server.h */,
-				F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */,
-				F92C536A0ECCE3FD009BE4BA /* breakpad_nlist_64.h */,
-				F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */,
-				F92C536C0ECCE3FD009BE4BA /* dynamic_images.h */,
-				F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */,
-				F92C536E0ECCE3FD009BE4BA /* exception_handler.h */,
-				F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */,
-				F92C53700ECCE3FD009BE4BA /* minidump_generator.h */,
-				F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */,
-				F92C53730ECCE3FD009BE4BA /* protected_memory_allocator.h */,
-			);
-			name = handler;
-			sourceTree = "<group>";
-		};
-		F92C53600ECCE3D6009BE4BA /* common */ = {
-			isa = PBXGroup;
-			children = (
-				D244540A12439BA0009BBCE0 /* memory_unittest.cc */,
-				F92C53870ECCE6C0009BE4BA /* convert_UTF.c */,
-				F92C53880ECCE6C0009BE4BA /* convert_UTF.h */,
-				4D72CA0D13DFAD5C006CABE3 /* md5.cc */,
-				1EEEB6211720829E00F7E689 /* simple_string_dictionary.cc */,
-				1EEEB6221720829E00F7E689 /* simple_string_dictionary.h */,
-				F92C53850ECCE6AD009BE4BA /* string_conversion.cc */,
-				F92C53860ECCE6AD009BE4BA /* string_conversion.h */,
-				F92C53840ECCE68D009BE4BA /* mac */,
-			);
-			name = common;
-			sourceTree = "<group>";
-		};
-		F92C53840ECCE68D009BE4BA /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				162F64F0161C577500CD68D5 /* arch_utilities.cc */,
-				162F64F1161C577500CD68D5 /* arch_utilities.h */,
-				8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */,
-				F9C77E0F0F7DDF650045F7DB /* testing */,
-				F9C44EE70EF0A3C1003AEBAA /* GTMLogger.h */,
-				F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */,
-				F92C53740ECCE635009BE4BA /* file_id.cc */,
-				F92C53750ECCE635009BE4BA /* file_id.h */,
-				F92C53760ECCE635009BE4BA /* HTTPMultipartUpload.h */,
-				F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */,
-				F4DAB1DB19F1027100A5A838 /* launch_reporter.cc */,
-				F4DAB1DC19F1027100A5A838 /* launch_reporter.h */,
-				F92C53780ECCE635009BE4BA /* MachIPC.h */,
-				F92C53790ECCE635009BE4BA /* MachIPC.mm */,
-				4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */,
-				4D61A25E14F43CFC002D5862 /* bootstrap_compat.h */,
-				F92C537A0ECCE635009BE4BA /* macho_id.cc */,
-				F92C537B0ECCE635009BE4BA /* macho_id.h */,
-				F92C537C0ECCE635009BE4BA /* macho_utilities.cc */,
-				F92C537D0ECCE635009BE4BA /* macho_utilities.h */,
-				F92C537E0ECCE635009BE4BA /* macho_walker.cc */,
-				F92C537F0ECCE635009BE4BA /* macho_walker.h */,
-				F92C53820ECCE635009BE4BA /* string_utilities.cc */,
-				F92C53830ECCE635009BE4BA /* string_utilities.h */,
-			);
-			name = mac;
-			sourceTree = "<group>";
-		};
-		F92C538D0ECCE6F2009BE4BA /* client */ = {
-			isa = PBXGroup;
-			children = (
-				16C7C915147D45AE00776EAD /* apple */,
-				F92C53990ECCE78E009BE4BA /* mac */,
-				F92C538E0ECCE70A009BE4BA /* minidump_file_writer-inl.h */,
-				F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */,
-				F92C53900ECCE70A009BE4BA /* minidump_file_writer.h */,
-				F93DE2D70F82A70E00608B94 /* minidump_file_writer_unittest.cc */,
-			);
-			name = client;
-			sourceTree = "<group>";
-		};
-		F92C53990ECCE78E009BE4BA /* mac */ = {
-			isa = PBXGroup;
-			children = (
-				F9C77DDF0F7DD7CF0045F7DB /* tests */,
-				F9C44DAB0EF0726F003AEBAA /* testapp */,
-				F92C56A60ECE04B6009BE4BA /* sender */,
-				F92C55CD0ECD0053009BE4BA /* Framework */,
-				F92C53B50ECCE799009BE4BA /* crash_generation */,
-				F92C53590ECCE3BB009BE4BA /* handler */,
-			);
-			name = mac;
-			sourceTree = "<group>";
-		};
-		F92C53B50ECCE799009BE4BA /* crash_generation */ = {
-			isa = PBXGroup;
-			children = (
-				163201D41443019E00C4DBF5 /* ConfigFile.h */,
-				163201D51443019E00C4DBF5 /* ConfigFile.mm */,
-				D2F9A4C4121336C7002747C1 /* client_info.h */,
-				D2F9A4C5121336C7002747C1 /* crash_generation_client.h */,
-				D2F9A4C6121336C7002747C1 /* crash_generation_client.cc */,
-				D2F9A4C7121336C7002747C1 /* crash_generation_server.h */,
-				D2F9A4C8121336C7002747C1 /* crash_generation_server.cc */,
-				F9286B380F7EB25800A4DCC8 /* Inspector.h */,
-				F9286B390F7EB25800A4DCC8 /* InspectorMain.mm */,
-				F92C53B70ECCE7B3009BE4BA /* Inspector.mm */,
-			);
-			name = crash_generation;
-			sourceTree = "<group>";
-		};
-		F92C55CD0ECD0053009BE4BA /* Framework */ = {
-			isa = PBXGroup;
-			children = (
-				F945859D0F78241E009A47BF /* Info.plist */,
-				F92C56310ECD0DF1009BE4BA /* OnDemandServer.h */,
-				F92C56320ECD0DF1009BE4BA /* OnDemandServer.mm */,
-				F92C55CE0ECD0064009BE4BA /* Breakpad.h */,
-				F92C55CF0ECD0064009BE4BA /* Breakpad.mm */,
-			);
-			name = Framework;
-			sourceTree = "<group>";
-		};
-		F92C56A60ECE04B6009BE4BA /* sender */ = {
-			isa = PBXGroup;
-			children = (
-				16E02DB4147410D4008C604D /* uploader.mm */,
-				163202431443201300C4DBF5 /* uploader.h */,
-				F9B6309F100FF96B00D0F4AC /* goArrow.png */,
-				F92C56A70ECE04C5009BE4BA /* crash_report_sender.h */,
-				F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */,
-				F945849C0F280E3C009A47BF /* Localizable.strings */,
-				33880C7E0F9E097100817F82 /* InfoPlist.strings */,
-				3329D4EC0FA16D820007BBC5 /* Breakpad.xib */,
-				4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */,
-				F92C56A20ECE04A7009BE4BA /* crash_report_sender-Info.plist */,
-			);
-			name = sender;
-			sourceTree = "<group>";
-		};
-		F95BB87D101F949F00AA053B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				F95BB885101F949F00AA053B /* crash_report */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		F95BB88A101F94AC00AA053B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				F95BB892101F94AC00AA053B /* dump_syms */,
-				8B31F7A111EF9A8700FCF3E4 /* macho_dump */,
-				8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */,
-				8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */,
-				8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */,
-				8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */,
-				8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */,
-				8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */,
-				8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */,
-				8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */,
-				8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */,
-				8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */,
-				8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */,
-				8B31F7B911EF9A8700FCF3E4 /* module_unittest */,
-				8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		F95BB895101F94C000AA053B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				F95BB89F101F94C000AA053B /* symupload */,
-				F95BB8A1101F94C000AA053B /* minidump_upload */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		F95BB8A3101F94C300AA053B /* Tools */ = {
-			isa = PBXGroup;
-			children = (
-				F95BB894101F94C000AA053B /* symupload.xcodeproj */,
-				F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */,
-				F95BB87C101F949F00AA053B /* crash_report.xcodeproj */,
-			);
-			name = Tools;
-			sourceTree = "<group>";
-		};
-		F9C44DAB0EF0726F003AEBAA /* testapp */ = {
-			isa = PBXGroup;
-			children = (
-				F9C44DBF0EF0778F003AEBAA /* Controller.h */,
-				F9C44DC00EF0778F003AEBAA /* TestClass.h */,
-				F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */,
-				F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */,
-				F9C44DAC0EF07288003AEBAA /* Controller.m */,
-				F9C44DAD0EF07288003AEBAA /* crashduringload */,
-				F9C44DAE0EF07288003AEBAA /* crashInMain */,
-				F9C44DAF0EF07288003AEBAA /* Info.plist */,
-				F9C44DB00EF07288003AEBAA /* main.m */,
-				F9C44DB10EF07288003AEBAA /* TestClass.mm */,
-			);
-			name = testapp;
-			sourceTree = "<group>";
-		};
-		F9C77DDF0F7DD7CF0045F7DB /* tests */ = {
-			isa = PBXGroup;
-			children = (
-				1EEEB6251720830600F7E689 /* simple_string_dictionary_unittest.cc */,
-				D23F4B9A12A8688800686C8D /* minidump_generator_test_helper.cc */,
-				D23F4B2C12A7E13200686C8D /* minidump_generator_test.cc */,
-				D2F9A4CE121336F7002747C1 /* crash_generation_server_test.cc */,
-				D2F9A3D41212F87C002747C1 /* exception_handler_test.cc */,
-				F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */,
-			);
-			name = tests;
-			sourceTree = "<group>";
-		};
-		F9C77E0F0F7DDF650045F7DB /* testing */ = {
-			isa = PBXGroup;
-			children = (
-				F9C77E110F7DDF810045F7DB /* GTMSenTestCase.h */,
-				F9C77E120F7DDF810045F7DB /* GTMSenTestCase.m */,
-			);
-			name = testing;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
-		8DC2EF500486A6940098B216 /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F92C55D00ECD0064009BE4BA /* Breakpad.h in Headers */,
-				F92C56330ECD0DF1009BE4BA /* OnDemandServer.h in Headers */,
-				D2F9A4C9121336C7002747C1 /* client_info.h in Headers */,
-				D2F9A4CA121336C7002747C1 /* crash_generation_client.h in Headers */,
-				D2F9A4CC121336C7002747C1 /* crash_generation_server.h in Headers */,
-				163201D61443019E00C4DBF5 /* ConfigFile.h in Headers */,
-				16C7C918147D45AE00776EAD /* BreakpadDefines.h in Headers */,
-				162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */,
-				F4DAB1DE19F1027100A5A838 /* launch_reporter.h in Headers */,
-				1EEEB6241720829E00F7E689 /* simple_string_dictionary.h in Headers */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D2F9A41112131EF0002747C1 /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C56380ECD10B3009BE4BA /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
-		8DC2EF4F0486A6940098B216 /* Breakpad */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
-			buildPhases = (
-				F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */,
-				8DC2EF500486A6940098B216 /* Headers */,
-				8DC2EF520486A6940098B216 /* Resources */,
-				8DC2EF540486A6940098B216 /* Sources */,
-				8DC2EF560486A6940098B216 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				F92C56860ECD15EF009BE4BA /* PBXTargetDependency */,
-				F92C56880ECD15F1009BE4BA /* PBXTargetDependency */,
-				F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */,
-			);
-			name = Breakpad;
-			productInstallPath = "$(HOME)/Library/Frameworks";
-			productName = Breakpad;
-			productReference = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */;
-			productType = "com.apple.product-type.framework";
-		};
-		D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = D23F4BB012A868C400686C8D /* Build configuration list for PBXNativeTarget "minidump_generator_test_helper" */;
-			buildPhases = (
-				D23F4BA812A868A500686C8D /* Sources */,
-				D23F4BA912A868A500686C8D /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = minidump_generator_test_helper;
-			productName = minidump_generator_test_helper;
-			productReference = D23F4BAB12A868A500686C8D /* minidump_generator_test_helper */;
-			productType = "com.apple.product-type.tool";
-		};
-		D2F9A41412131EF0002747C1 /* gtest */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = D2F9A42D12131F0E002747C1 /* Build configuration list for PBXNativeTarget "gtest" */;
-			buildPhases = (
-				D2F9A41112131EF0002747C1 /* Headers */,
-				D2F9A41212131EF0002747C1 /* Sources */,
-				D2F9A41312131EF0002747C1 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = gtest;
-			productName = gtest;
-			productReference = D2F9A41512131EF0002747C1 /* libgtest.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-		D2F9A52A121383A1002747C1 /* crash_generation_server_test */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = D2F9A542121383A1002747C1 /* Build configuration list for PBXNativeTarget "crash_generation_server_test" */;
-			buildPhases = (
-				D2F9A52D121383A1002747C1 /* Sources */,
-				D2F9A53E121383A1002747C1 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				D2F9A52B121383A1002747C1 /* PBXTargetDependency */,
-			);
-			name = crash_generation_server_test;
-			productName = handler_test;
-			productReference = D2F9A546121383A1002747C1 /* crash_generation_server_test */;
-			productType = "com.apple.product-type.tool";
-		};
-		F92C53530ECCE349009BE4BA /* Inspector */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F92C53580ECCE36D009BE4BA /* Build configuration list for PBXNativeTarget "Inspector" */;
-			buildPhases = (
-				F94584840F27FB40009A47BF /* Change install name of breakpadUtilities */,
-				F92C53510ECCE349009BE4BA /* Sources */,
-				F92C53520ECCE349009BE4BA /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				F92C564E0ECD10E5009BE4BA /* PBXTargetDependency */,
-			);
-			name = Inspector;
-			productName = Inspector;
-			productReference = F92C53540ECCE349009BE4BA /* Inspector */;
-			productType = "com.apple.product-type.tool";
-		};
-		F92C563B0ECD10B3009BE4BA /* breakpadUtilities */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F92C56670ECD11A3009BE4BA /* Build configuration list for PBXNativeTarget "breakpadUtilities" */;
-			buildPhases = (
-				F92C56380ECD10B3009BE4BA /* Headers */,
-				F92C56390ECD10B3009BE4BA /* Sources */,
-				F92C563A0ECD10B3009BE4BA /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = breakpadUtilities;
-			productName = breakpadUtilities;
-			productReference = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */;
-			productType = "com.apple.product-type.library.dynamic";
-		};
-		F92C569F0ECE04A7009BE4BA /* crash_report_sender */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F92C56A50ECE04A8009BE4BA /* Build configuration list for PBXNativeTarget "crash_report_sender" */;
-			buildPhases = (
-				F92C569C0ECE04A7009BE4BA /* Resources */,
-				F92C569D0ECE04A7009BE4BA /* Sources */,
-				F92C569E0ECE04A7009BE4BA /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = crash_report_sender;
-			productName = crash_report_sender;
-			productReference = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */;
-			productType = "com.apple.product-type.application";
-		};
-		F93803BD0F80820F004D428B /* generator_test */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F93803C40F80822E004D428B /* Build configuration list for PBXNativeTarget "generator_test" */;
-			buildPhases = (
-				F93803BB0F80820F004D428B /* Sources */,
-				F93803BC0F80820F004D428B /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				D23F4B3012A7E16200686C8D /* PBXTargetDependency */,
-				D23F4BBA12A8694C00686C8D /* PBXTargetDependency */,
-			);
-			name = generator_test;
-			productName = generator_test;
-			productReference = F93803BE0F80820F004D428B /* generator_test */;
-			productType = "com.apple.product-type.tool";
-		};
-		F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F93DE2D60F82A67700608B94 /* Build configuration list for PBXNativeTarget "minidump_file_writer_unittest" */;
-			buildPhases = (
-				F93DE2CE0F82A67300608B94 /* Sources */,
-				F93DE2CF0F82A67300608B94 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = minidump_file_writer_unittest;
-			productName = minidump_file_writer_unittest;
-			productReference = F93DE2D10F82A67300608B94 /* minidump_file_writer_unittest */;
-			productType = "com.apple.product-type.tool";
-		};
-		F93DE32B0F82C55600608B94 /* handler_test */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F93DE3320F82C5D800608B94 /* Build configuration list for PBXNativeTarget "handler_test" */;
-			buildPhases = (
-				F93DE3290F82C55600608B94 /* Sources */,
-				F93DE32A0F82C55600608B94 /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				D2F9A44312131F80002747C1 /* PBXTargetDependency */,
-			);
-			name = handler_test;
-			productName = handler_test;
-			productReference = F93DE32C0F82C55600608B94 /* handler_test */;
-			productType = "com.apple.product-type.tool";
-		};
-		F9C44DA40EF060A8003AEBAA /* BreakpadTest */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F9C44DAA0EF060A9003AEBAA /* Build configuration list for PBXNativeTarget "BreakpadTest" */;
-			buildPhases = (
-				F9C44DA10EF060A8003AEBAA /* Resources */,
-				F9C44DA20EF060A8003AEBAA /* Sources */,
-				F9C44DA30EF060A8003AEBAA /* Frameworks */,
-				F9C44E410EF08B17003AEBAA /* Copy Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				F9C44E1A0EF0790F003AEBAA /* PBXTargetDependency */,
-			);
-			name = BreakpadTest;
-			productName = BreakpadTest;
-			productReference = F9C44DA50EF060A8003AEBAA /* BreakpadTest.app */;
-			productType = "com.apple.product-type.application";
-		};
-		F9C77DD90F7DD5CF0045F7DB /* UnitTests */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = F9C77DDE0F7DD5D00045F7DB /* Build configuration list for PBXNativeTarget "UnitTests" */;
-			buildPhases = (
-				F9C77DD50F7DD5CF0045F7DB /* Resources */,
-				F9C77DD60F7DD5CF0045F7DB /* Sources */,
-				F9C77DD70F7DD5CF0045F7DB /* Frameworks */,
-				F9C77DD80F7DD5CF0045F7DB /* ShellScript */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */,
-				F93DE3700F82CC1300608B94 /* PBXTargetDependency */,
-				F91AF6380FD60A74009D8BE2 /* PBXTargetDependency */,
-				D2F9A5DF12142A6A002747C1 /* PBXTargetDependency */,
-			);
-			name = UnitTests;
-			productName = UnitTests;
-			productReference = F9C77DDA0F7DD5CF0045F7DB /* UnitTests.octest */;
-			productType = "com.apple.product-type.bundle";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		0867D690FE84028FC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */;
-			compatibilityVersion = "Xcode 3.1";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				da,
-				de,
-				es,
-				fr,
-				it,
-				ja,
-				nl,
-				no,
-				sl,
-				sv,
-				tr,
-			);
-			mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */;
-			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
-			projectDirPath = "";
-			projectReferences = (
-				{
-					ProductGroup = F95BB87D101F949F00AA053B /* Products */;
-					ProjectRef = F95BB87C101F949F00AA053B /* crash_report.xcodeproj */;
-				},
-				{
-					ProductGroup = F95BB88A101F94AC00AA053B /* Products */;
-					ProjectRef = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */;
-				},
-				{
-					ProductGroup = F95BB895101F94C000AA053B /* Products */;
-					ProjectRef = F95BB894101F94C000AA053B /* symupload.xcodeproj */;
-				},
-			);
-			projectRoot = "";
-			targets = (
-				8DC2EF4F0486A6940098B216 /* Breakpad */,
-				F92C53530ECCE349009BE4BA /* Inspector */,
-				F92C563B0ECD10B3009BE4BA /* breakpadUtilities */,
-				F92C569F0ECE04A7009BE4BA /* crash_report_sender */,
-				F9C44DA40EF060A8003AEBAA /* BreakpadTest */,
-				F94585840F782326009A47BF /* All */,
-				F9C77DD90F7DD5CF0045F7DB /* UnitTests */,
-				F93803BD0F80820F004D428B /* generator_test */,
-				F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */,
-				F93DE32B0F82C55600608B94 /* handler_test */,
-				D2F9A41412131EF0002747C1 /* gtest */,
-				D2F9A52A121383A1002747C1 /* crash_generation_server_test */,
-				D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
-		8B31F7A111EF9A8700FCF3E4 /* macho_dump */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = macho_dump;
-			remoteRef = 8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */ = {
-			isa = PBXReferenceProxy;
-			fileType = archive.ar;
-			path = libgtestmockall.a;
-			remoteRef = 8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = byte_cursor_unittest;
-			remoteRef = 8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = macho_reader_unittest;
-			remoteRef = 8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = stabs_reader_unittest;
-			remoteRef = 8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = bytereader_unittest;
-			remoteRef = 8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dwarf2reader_cfi_unittest;
-			remoteRef = 8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dwarf2diehandler_unittest;
-			remoteRef = 8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dwarf_cu_to_module_unittest;
-			remoteRef = 8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dwarf_line_to_module_unittest;
-			remoteRef = 8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dwarf_cfi_to_module_unittest;
-			remoteRef = 8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = stabs_to_module_unittest;
-			remoteRef = 8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7B911EF9A8700FCF3E4 /* module_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = module_unittest;
-			remoteRef = 8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = test_assembler_unittest;
-			remoteRef = 8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F95BB885101F949F00AA053B /* crash_report */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = crash_report;
-			remoteRef = F95BB884101F949F00AA053B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F95BB892101F94AC00AA053B /* dump_syms */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = dump_syms;
-			remoteRef = F95BB891101F94AC00AA053B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F95BB89F101F94C000AA053B /* symupload */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = symupload;
-			remoteRef = F95BB89E101F94C000AA053B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-		F95BB8A1101F94C000AA053B /* minidump_upload */ = {
-			isa = PBXReferenceProxy;
-			fileType = "compiled.mach-o.executable";
-			path = minidump_upload;
-			remoteRef = F95BB8A0101F94C000AA053B /* PBXContainerItemProxy */;
-			sourceTree = BUILT_PRODUCTS_DIR;
-		};
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
-		8DC2EF520486A6940098B216 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */,
-				F92C568A0ECD15F9009BE4BA /* Inspector in Resources */,
-				F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C569C0ECE04A7009BE4BA /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F945849E0F280E3C009A47BF /* Localizable.strings in Resources */,
-				4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */,
-				33880C800F9E097100817F82 /* InfoPlist.strings in Resources */,
-				3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */,
-				F9B630A0100FF96B00D0F4AC /* goArrow.png in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C44DA10EF060A8003AEBAA /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44DB30EF07288003AEBAA /* crashduringload in Resources */,
-				F9C44DB40EF07288003AEBAA /* crashInMain in Resources */,
-				F9C44DBC0EF072A0003AEBAA /* InfoPlist.strings in Resources */,
-				F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C77DD50F7DD5CF0045F7DB /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
-		F94584840F27FB40009A47BF /* Change install name of breakpadUtilities */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Change install name of breakpadUtilities";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
-		};
-		F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Change install name of breakpadUtilities";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
-		};
-		F9C77DD80F7DD5CF0045F7DB /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n\necho running minidump generator tests...\n\"${BUILT_PRODUCTS_DIR}/generator_test\"\necho Running exception handler tests...\n\"${BUILT_PRODUCTS_DIR}/handler_test\"\necho Running crash generation server tests...\n\"${BUILT_PRODUCTS_DIR}/crash_generation_server_test\"\n";
-		};
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		8DC2EF540486A6940098B216 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */,
-				F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */,
-				F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */,
-				F4DAB1DD19F1027100A5A838 /* launch_reporter.cc in Sources */,
-				F92C56340ECD0DF1009BE4BA /* OnDemandServer.mm in Sources */,
-				D2F9A4CB121336C7002747C1 /* crash_generation_client.cc in Sources */,
-				D2F9A4CD121336C7002747C1 /* crash_generation_server.cc in Sources */,
-				163201D71443019E00C4DBF5 /* ConfigFile.mm in Sources */,
-				162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */,
-				1EEEB6231720829E00F7E689 /* simple_string_dictionary.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D23F4BA812A868A500686C8D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D23F4BB112A868CB00686C8D /* minidump_generator_test_helper.cc in Sources */,
-				D23F4BB812A868F700686C8D /* MachIPC.mm in Sources */,
-				D246417012BAA40E005170D0 /* exception_handler.cc in Sources */,
-				D246417112BAA41C005170D0 /* crash_generation_client.cc in Sources */,
-				D246417512BAA438005170D0 /* minidump_generator.cc in Sources */,
-				D246417612BAA43F005170D0 /* dynamic_images.cc in Sources */,
-				D246417712BAA444005170D0 /* breakpad_nlist_64.cc in Sources */,
-				D246418812BAA4E3005170D0 /* string_utilities.cc in Sources */,
-				D246418C12BAA508005170D0 /* minidump_file_writer.cc in Sources */,
-				D246419012BAA52A005170D0 /* string_conversion.cc in Sources */,
-				D246419112BAA52F005170D0 /* convert_UTF.c in Sources */,
-				D246419512BAA54C005170D0 /* file_id.cc in Sources */,
-				D246419612BAA55A005170D0 /* macho_id.cc in Sources */,
-				D24641A012BAA67F005170D0 /* macho_walker.cc in Sources */,
-				D24641AF12BAA82D005170D0 /* macho_utilities.cc in Sources */,
-				4D72CA2513DFAE1C006CABE3 /* md5.cc in Sources */,
-				4D61A26C14F43D42002D5862 /* bootstrap_compat.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D2F9A41212131EF0002747C1 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D2F9A43D12131F55002747C1 /* gmock-all.cc in Sources */,
-				D2F9A44012131F65002747C1 /* gtest_main.cc in Sources */,
-				D2F9A44112131F65002747C1 /* gtest-all.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		D2F9A52D121383A1002747C1 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D2F9A553121383DC002747C1 /* crash_generation_server_test.cc in Sources */,
-				D2F9A52E121383A1002747C1 /* crash_generation_client.cc in Sources */,
-				D2F9A52F121383A1002747C1 /* crash_generation_server.cc in Sources */,
-				D2F9A530121383A1002747C1 /* MachIPC.mm in Sources */,
-				D2F9A531121383A1002747C1 /* breakpad_nlist_64.cc in Sources */,
-				D2F9A532121383A1002747C1 /* dynamic_images.cc in Sources */,
-				D2F9A533121383A1002747C1 /* exception_handler.cc in Sources */,
-				D2F9A534121383A1002747C1 /* minidump_generator.cc in Sources */,
-				D2F9A535121383A1002747C1 /* minidump_file_writer.cc in Sources */,
-				D2F9A536121383A1002747C1 /* convert_UTF.c in Sources */,
-				D2F9A537121383A1002747C1 /* string_conversion.cc in Sources */,
-				D2F9A538121383A1002747C1 /* file_id.cc in Sources */,
-				D2F9A539121383A1002747C1 /* macho_id.cc in Sources */,
-				D2F9A53A121383A1002747C1 /* macho_utilities.cc in Sources */,
-				D2F9A53B121383A1002747C1 /* macho_walker.cc in Sources */,
-				D2F9A53C121383A1002747C1 /* string_utilities.cc in Sources */,
-				D24641EC12BAC6FB005170D0 /* logging.cc in Sources */,
-				D24641ED12BAC6FB005170D0 /* minidump.cc in Sources */,
-				D24641EE12BAC6FB005170D0 /* pathname_stripper.cc in Sources */,
-				D24641EF12BAC6FB005170D0 /* basic_code_modules.cc in Sources */,
-				4D72CA3913DFAE92006CABE3 /* md5.cc in Sources */,
-				4D61A26F14F43D48002D5862 /* bootstrap_compat.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C53510ECCE349009BE4BA /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F92C53B80ECCE7B3009BE4BA /* Inspector.mm in Sources */,
-				F9286B3A0F7EB25800A4DCC8 /* InspectorMain.mm in Sources */,
-				163201E31443029300C4DBF5 /* ConfigFile.mm in Sources */,
-				4D61A26B14F43D3C002D5862 /* bootstrap_compat.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C56390ECD10B3009BE4BA /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F4F916B619F10FFC00B83BE4 /* launch_reporter.cc in Sources */,
-				162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */,
-				162F64F5161C579B00CD68D5 /* arch_utilities.h in Sources */,
-				D2A5DD301188633800081F03 /* breakpad_nlist_64.cc in Sources */,
-				F92C563F0ECD10CA009BE4BA /* convert_UTF.c in Sources */,
-				F92C56400ECD10CA009BE4BA /* dynamic_images.cc in Sources */,
-				F92C56410ECD10CA009BE4BA /* file_id.cc in Sources */,
-				F92C56420ECD10CA009BE4BA /* macho_id.cc in Sources */,
-				F92C56430ECD10CA009BE4BA /* macho_utilities.cc in Sources */,
-				F92C56440ECD10CA009BE4BA /* macho_walker.cc in Sources */,
-				F92C56450ECD10CA009BE4BA /* MachIPC.mm in Sources */,
-				4D72CA0E13DFAD5C006CABE3 /* md5.cc in Sources */,
-				F92C56460ECD10CA009BE4BA /* minidump_file_writer.cc in Sources */,
-				F92C56470ECD10CA009BE4BA /* minidump_generator.cc in Sources */,
-				F92C56490ECD10CA009BE4BA /* string_utilities.cc in Sources */,
-				F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */,
-				4D61A25F14F43CFC002D5862 /* bootstrap_compat.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F92C569D0ECE04A7009BE4BA /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */,
-				F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */,
-				F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */,
-				16E02DB8147410F0008C604D /* uploader.mm in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93803BB0F80820F004D428B /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D2C1DBE412AFC270006917BD /* logging.cc in Sources */,
-				D2C1DBE512AFC270006917BD /* minidump.cc in Sources */,
-				D2C1DBE612AFC270006917BD /* pathname_stripper.cc in Sources */,
-				D2C1DBE712AFC270006917BD /* basic_code_modules.cc in Sources */,
-				D2F9A4DF12133AD9002747C1 /* crash_generation_client.cc in Sources */,
-				D2F9A4E012133AD9002747C1 /* crash_generation_server.cc in Sources */,
-				D24BBD291211EDB100F3D417 /* MachIPC.mm in Sources */,
-				D2A5DD401188640400081F03 /* breakpad_nlist_64.cc in Sources */,
-				F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */,
-				F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */,
-				F93803CF0F8083B7004D428B /* minidump_generator.cc in Sources */,
-				F93803D00F8083B7004D428B /* minidump_file_writer.cc in Sources */,
-				F93803D10F8083B7004D428B /* convert_UTF.c in Sources */,
-				F93803D20F8083B7004D428B /* string_conversion.cc in Sources */,
-				F93803D30F8083B7004D428B /* file_id.cc in Sources */,
-				F93803D40F8083B7004D428B /* macho_id.cc in Sources */,
-				F93803D50F8083B7004D428B /* macho_utilities.cc in Sources */,
-				F93803D60F8083B7004D428B /* macho_walker.cc in Sources */,
-				F93803D70F8083B7004D428B /* string_utilities.cc in Sources */,
-				D23F4B2E12A7E13200686C8D /* minidump_generator_test.cc in Sources */,
-				4D72CA2F13DFAE65006CABE3 /* md5.cc in Sources */,
-				4D61A26D14F43D43002D5862 /* bootstrap_compat.cc in Sources */,
-				1EEEB62B1720868C00F7E689 /* simple_string_dictionary.cc in Sources */,
-				1EEEB62A1720859200F7E689 /* simple_string_dictionary_unittest.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93DE2CE0F82A67300608B94 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F93DE2D90F82A73500608B94 /* minidump_file_writer.cc in Sources */,
-				F93DE2DA0F82A73500608B94 /* convert_UTF.c in Sources */,
-				F93DE2DB0F82A73500608B94 /* string_conversion.cc in Sources */,
-				F93DE2D80F82A70E00608B94 /* minidump_file_writer_unittest.cc in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F93DE3290F82C55600608B94 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				D244536A12426F00009BBCE0 /* logging.cc in Sources */,
-				D244536B12426F00009BBCE0 /* minidump.cc in Sources */,
-				D244536C12426F00009BBCE0 /* pathname_stripper.cc in Sources */,
-				D244536D12426F00009BBCE0 /* basic_code_modules.cc in Sources */,
-				D2F9A4E112133AE2002747C1 /* crash_generation_client.cc in Sources */,
-				D2F9A4E212133AE2002747C1 /* crash_generation_server.cc in Sources */,
-				D24BBD321212CACF00F3D417 /* MachIPC.mm in Sources */,
-				D2A5DD411188642E00081F03 /* breakpad_nlist_64.cc in Sources */,
-				F93DE3350F82C66B00608B94 /* dynamic_images.cc in Sources */,
-				F93DE3360F82C66B00608B94 /* exception_handler.cc in Sources */,
-				F93DE3370F82C66B00608B94 /* minidump_generator.cc in Sources */,
-				F93DE3380F82C66B00608B94 /* minidump_file_writer.cc in Sources */,
-				F93DE3390F82C66B00608B94 /* convert_UTF.c in Sources */,
-				F93DE33A0F82C66B00608B94 /* string_conversion.cc in Sources */,
-				F93DE33B0F82C66B00608B94 /* file_id.cc in Sources */,
-				F93DE33C0F82C66B00608B94 /* macho_id.cc in Sources */,
-				F93DE33D0F82C66B00608B94 /* macho_utilities.cc in Sources */,
-				F93DE33E0F82C66B00608B94 /* macho_walker.cc in Sources */,
-				F93DE33F0F82C66B00608B94 /* string_utilities.cc in Sources */,
-				D2F9A3D51212F87C002747C1 /* exception_handler_test.cc in Sources */,
-				D244540B12439BA0009BBCE0 /* memory_unittest.cc in Sources */,
-				4D72CA3813DFAE91006CABE3 /* md5.cc in Sources */,
-				4D61A26E14F43D45002D5862 /* bootstrap_compat.cc in Sources */,
-				1EEEB6271720831E00F7E689 /* BreakpadFramework_Test.mm in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C44DA20EF060A8003AEBAA /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C44DB20EF07288003AEBAA /* Controller.m in Sources */,
-				F9C44DB60EF07288003AEBAA /* main.m in Sources */,
-				F9C44DB70EF07288003AEBAA /* TestClass.mm in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		F9C77DD60F7DD5CF0045F7DB /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F9C77E130F7DDF810045F7DB /* GTMSenTestCase.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
-		8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = all_unittests;
-			targetProxy = 8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */;
-		};
-		8B31051711F1010E00FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F93803BD0F80820F004D428B /* generator_test */;
-			targetProxy = 8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */;
-		};
-		8B31051911F1010E00FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */;
-			targetProxy = 8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */;
-		};
-		8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F93DE32B0F82C55600608B94 /* handler_test */;
-			targetProxy = 8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */;
-		};
-		8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = macho_dump;
-			targetProxy = 8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */;
-		};
-		8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = minidump_upload;
-			targetProxy = 8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */;
-		};
-		D23F4B3012A7E16200686C8D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = D2F9A41412131EF0002747C1 /* gtest */;
-			targetProxy = D23F4B2F12A7E16200686C8D /* PBXContainerItemProxy */;
-		};
-		D23F4BBA12A8694C00686C8D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = D23F4BAA12A868A500686C8D /* minidump_generator_test_helper */;
-			targetProxy = D23F4BB912A8694C00686C8D /* PBXContainerItemProxy */;
-		};
-		D2F9A44312131F80002747C1 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = D2F9A41412131EF0002747C1 /* gtest */;
-			targetProxy = D2F9A44212131F80002747C1 /* PBXContainerItemProxy */;
-		};
-		D2F9A52B121383A1002747C1 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = D2F9A41412131EF0002747C1 /* gtest */;
-			targetProxy = D2F9A52C121383A1002747C1 /* PBXContainerItemProxy */;
-		};
-		D2F9A5DF12142A6A002747C1 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = D2F9A52A121383A1002747C1 /* crash_generation_server_test */;
-			targetProxy = D2F9A5DE12142A6A002747C1 /* PBXContainerItemProxy */;
-		};
-		F91AF6380FD60A74009D8BE2 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
-			targetProxy = F91AF6370FD60A74009D8BE2 /* PBXContainerItemProxy */;
-		};
-		F92C564E0ECD10E5009BE4BA /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
-			targetProxy = F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */;
-		};
-		F92C56860ECD15EF009BE4BA /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
-			targetProxy = F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */;
-		};
-		F92C56880ECD15F1009BE4BA /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C53530ECCE349009BE4BA /* Inspector */;
-			targetProxy = F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */;
-		};
-		F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F93803BD0F80820F004D428B /* generator_test */;
-			targetProxy = F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */;
-		};
-		F93DE3700F82CC1300608B94 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F93DE32B0F82C55600608B94 /* handler_test */;
-			targetProxy = F93DE36F0F82CC1300608B94 /* PBXContainerItemProxy */;
-		};
-		F93DE3A70F830D1D00608B94 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F9C77DD90F7DD5CF0045F7DB /* UnitTests */;
-			targetProxy = F93DE3A60F830D1D00608B94 /* PBXContainerItemProxy */;
-		};
-		F94585880F78232B009A47BF /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
-			targetProxy = F94585870F78232B009A47BF /* PBXContainerItemProxy */;
-		};
-		F945858A0F78232E009A47BF /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C53530ECCE349009BE4BA /* Inspector */;
-			targetProxy = F94585890F78232E009A47BF /* PBXContainerItemProxy */;
-		};
-		F945858C0F782330009A47BF /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
-			targetProxy = F945858B0F782330009A47BF /* PBXContainerItemProxy */;
-		};
-		F945858E0F782333009A47BF /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
-			targetProxy = F945858D0F782333009A47BF /* PBXContainerItemProxy */;
-		};
-		F94585900F782336009A47BF /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F9C44DA40EF060A8003AEBAA /* BreakpadTest */;
-			targetProxy = F945858F0F782336009A47BF /* PBXContainerItemProxy */;
-		};
-		F95BB8B3101F94D300AA053B /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = dump_syms;
-			targetProxy = F95BB8B2101F94D300AA053B /* PBXContainerItemProxy */;
-		};
-		F95BB8B5101F94D300AA053B /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = symupload;
-			targetProxy = F95BB8B4101F94D300AA053B /* PBXContainerItemProxy */;
-		};
-		F95BB8B7101F94D300AA053B /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			name = crash_report;
-			targetProxy = F95BB8B6101F94D300AA053B /* PBXContainerItemProxy */;
-		};
-		F9C44E1A0EF0790F003AEBAA /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
-			targetProxy = F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */;
-		};
-		F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
-			targetProxy = F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
-		33880C7E0F9E097100817F82 /* InfoPlist.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				33880C7F0F9E097100817F82 /* English */,
-				DE43468711C7295D004F095F /* da */,
-				DE43468611C72958004F095F /* de */,
-				DE43468811C7295F004F095F /* es */,
-				DE43468911C72964004F095F /* fr */,
-				DE43468A11C72967004F095F /* it */,
-				DE43468B11C7296B004F095F /* ja */,
-				DE43468C11C7296D004F095F /* nl */,
-				DE43468D11C7296F004F095F /* no */,
-				DE43468E11C72971004F095F /* sl */,
-				DE43468F11C72973004F095F /* sv */,
-				DE43469011C72976004F095F /* tr */,
-			);
-			name = InfoPlist.strings;
-			sourceTree = "<group>";
-		};
-		F945849C0F280E3C009A47BF /* Localizable.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				F945849D0F280E3C009A47BF /* English */,
-				DE43467411C72855004F095F /* da */,
-				DE43467511C72857004F095F /* de */,
-				DE43467611C7285B004F095F /* es */,
-				DE43467711C72862004F095F /* fr */,
-				DE43467811C72869004F095F /* it */,
-				DE43467E11C728DC004F095F /* ja */,
-				DE43467911C7286D004F095F /* nl */,
-				DE43467A11C72873004F095F /* no */,
-				DE43467B11C72877004F095F /* sl */,
-				DE43467C11C7287A004F095F /* sv */,
-				DE43467F11C728E1004F095F /* tr */,
-			);
-			name = Localizable.strings;
-			sourceTree = "<group>";
-		};
-		F9C44DB80EF072A0003AEBAA /* InfoPlist.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				F9C44DB90EF072A0003AEBAA /* English */,
-			);
-			name = InfoPlist.strings;
-			sourceTree = "<group>";
-		};
-		F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */ = {
-			isa = PBXVariantGroup;
-			children = (
-				F9C44DBB0EF072A0003AEBAA /* English */,
-			);
-			name = MainMenu.xib;
-			sourceTree = "<group>";
-		};
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB91AE08733DA50010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				FRAMEWORK_VERSION = A;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = Framework/Info.plist;
-				INSTALL_PATH = "@executable_path/../Frameworks";
-				PRODUCT_NAME = Breakpad;
-				WRAPPER_EXTENSION = framework;
-			};
-			name = Debug;
-		};
-		1DEB91AF08733DA50010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				FRAMEWORK_VERSION = A;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = Framework/Info.plist;
-				INSTALL_PATH = "@executable_path/../Frameworks";
-				PRODUCT_NAME = Breakpad;
-				WRAPPER_EXTENSION = framework;
-			};
-			name = Release;
-		};
-		1DEB91B208733DA50010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
-			buildSettings = {
-				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-				SDKROOT = macosx10.5;
-			};
-			name = Debug;
-		};
-		1DEB91B308733DA50010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */;
-			buildSettings = {
-				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-			};
-			name = Release;
-		};
-		D23F4BAD12A868A600686C8D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				HEADER_SEARCH_PATHS = ../..;
-				INSTALL_PATH = /usr/local/bin;
-				PREBINDING = NO;
-				PRODUCT_NAME = minidump_generator_test_helper;
-			};
-			name = Debug;
-		};
-		D23F4BAE12A868A600686C8D /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				HEADER_SEARCH_PATHS = ../..;
-				INSTALL_PATH = /usr/local/bin;
-				PREBINDING = NO;
-				PRODUCT_NAME = minidump_generator_test_helper;
-			};
-			name = "Debug With Code Coverage";
-		};
-		D23F4BAF12A868A600686C8D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				GCC_MODEL_TUNING = G5;
-				HEADER_SEARCH_PATHS = ../..;
-				INSTALL_PATH = /usr/local/bin;
-				PREBINDING = NO;
-				PRODUCT_NAME = minidump_generator_test_helper;
-				ZERO_LINK = NO;
-			};
-			name = Release;
-		};
-		D2F9A41612131EF0002747C1 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PREBINDING = NO;
-				PRODUCT_NAME = gtest;
-			};
-			name = Debug;
-		};
-		D2F9A41712131EF0002747C1 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PREBINDING = NO;
-				PRODUCT_NAME = gtest;
-			};
-			name = "Debug With Code Coverage";
-		};
-		D2F9A41812131EF0002747C1 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_ENABLE_FIX_AND_CONTINUE = NO;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PREBINDING = NO;
-				PRODUCT_NAME = gtest;
-				ZERO_LINK = NO;
-			};
-			name = Release;
-		};
-		D2F9A543121383A1002747C1 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/build/Debug\"",
-				);
-				PRODUCT_NAME = crash_generation_server_test;
-			};
-			name = Debug;
-		};
-		D2F9A544121383A1002747C1 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\\\"$(SRCROOT)/build/Debug\\\"",
-				);
-				PRODUCT_NAME = crash_generation_server_test;
-			};
-			name = "Debug With Code Coverage";
-		};
-		D2F9A545121383A1002747C1 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\\\"$(SRCROOT)/build/Debug\\\"",
-				);
-				PRODUCT_NAME = crash_generation_server_test;
-			};
-			name = Release;
-		};
-		F92C53560ECCE34A009BE4BA /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = Inspector;
-			};
-			name = Debug;
-		};
-		F92C53570ECCE34A009BE4BA /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = Inspector;
-			};
-			name = Release;
-		};
-		F92C563D0ECD10B3009BE4BA /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				HEADER_SEARCH_PATHS = ../..;
-				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
-				OTHER_LDFLAGS = (
-					"$(inherited)",
-					"-headerpad_max_install_names",
-				);
-				PRODUCT_NAME = breakpadUtilities;
-			};
-			name = Debug;
-		};
-		F92C563E0ECD10B3009BE4BA /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				HEADER_SEARCH_PATHS = ../..;
-				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
-				OTHER_LDFLAGS = (
-					"$(inherited)",
-					"-headerpad_max_install_names",
-				);
-				PRODUCT_NAME = breakpadUtilities;
-			};
-			name = Release;
-		};
-		F92C56A30ECE04A8009BE4BA /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
-				PRODUCT_NAME = crash_report_sender;
-			};
-			name = Debug;
-		};
-		F92C56A40ECE04A8009BE4BA /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
-				PRODUCT_NAME = crash_report_sender;
-			};
-			name = Release;
-		};
-		F93803C00F808210004D428B /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PRODUCT_NAME = generator_test;
-			};
-			name = Debug;
-		};
-		F93803C10F808210004D428B /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PRODUCT_NAME = generator_test;
-			};
-			name = Release;
-		};
-		F93DE2D30F82A67400608B94 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = minidump_file_writer_unittest;
-			};
-			name = Debug;
-		};
-		F93DE2D40F82A67400608B94 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = minidump_file_writer_unittest;
-			};
-			name = Release;
-		};
-		F93DE32E0F82C55700608B94 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
-				GCC_PREPROCESSOR_DEFINITIONS = "BP_LOGGING_INCLUDE=\\\"client/mac/tests/testlogging.h\\\"";
-				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
-				HEADER_SEARCH_PATHS = (
-					../../..,
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/build/Debug\"",
-				);
-				PRODUCT_NAME = handler_test;
-			};
-			name = Debug;
-		};
-		F93DE32F0F82C55700608B94 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../../..,
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/build/Debug\"",
-				);
-				PRODUCT_NAME = handler_test;
-			};
-			name = Release;
-		};
-		F93DE3B90F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
-			buildSettings = {
-				GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BA0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				FRAMEWORK_VERSION = A;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch;
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = Framework/Info.plist;
-				INSTALL_PATH = "@executable_path/../Frameworks";
-				PRODUCT_NAME = Breakpad;
-				WRAPPER_EXTENSION = framework;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BB0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = Inspector;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BC0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				DYLIB_COMPATIBILITY_VERSION = 1;
-				DYLIB_CURRENT_VERSION = 1;
-				HEADER_SEARCH_PATHS = ../..;
-				LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)";
-				OTHER_LDFLAGS = (
-					"$(inherited)",
-					"-headerpad_max_install_names",
-				);
-				PRODUCT_NAME = breakpadUtilities;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BD0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = "sender/crash_report_sender-Info.plist";
-				PRODUCT_NAME = crash_report_sender;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BE0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
-				INFOPLIST_FILE = testapp/Info.plist;
-				PRODUCT_NAME = BreakpadTest;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3BF0F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = All;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3C00F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
-				);
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				HEADER_SEARCH_PATHS = ../..;
-				INFOPLIST_FILE = "UnitTests-Info.plist";
-				PRODUCT_NAME = UnitTests;
-				WRAPPER_EXTENSION = octest;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3C10F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../..,
-					../../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				PRODUCT_NAME = generator_test;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3C20F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = ../..;
-				PRODUCT_NAME = minidump_file_writer_unittest;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F93DE3C30F830E7000608B94 /* Debug With Code Coverage */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				HEADER_SEARCH_PATHS = (
-					../../..,
-					../..,
-					../../testing,
-					../../testing/include,
-					../../testing/gtest,
-					../../testing/gtest/include,
-				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/build/Debug\"",
-				);
-				PRODUCT_NAME = handler_test;
-			};
-			name = "Debug With Code Coverage";
-		};
-		F94585850F782326009A47BF /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = All;
-			};
-			name = Debug;
-		};
-		F94585860F782326009A47BF /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				PRODUCT_NAME = All;
-			};
-			name = Release;
-		};
-		F9C44DA80EF060A8003AEBAA /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
-				INFOPLIST_FILE = testapp/Info.plist;
-				PRODUCT_NAME = BreakpadTest;
-			};
-			name = Debug;
-		};
-		F9C44DA90EF060A8003AEBAA /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)";
-				INFOPLIST_FILE = testapp/Info.plist;
-				PRODUCT_NAME = BreakpadTest;
-			};
-			name = Release;
-		};
-		F9C77DDC0F7DD5D00045F7DB /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
-				);
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				INFOPLIST_FILE = "UnitTests-Info.plist";
-				PRODUCT_NAME = UnitTests;
-				WRAPPER_EXTENSION = octest;
-			};
-			name = Debug;
-		};
-		F9C77DDD0F7DD5D00045F7DB /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				FRAMEWORK_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
-				);
-				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
-				INFOPLIST_FILE = "UnitTests-Info.plist";
-				PRODUCT_NAME = UnitTests;
-				WRAPPER_EXTENSION = octest;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB91AE08733DA50010E9CD /* Debug */,
-				F93DE3BA0F830E7000608B94 /* Debug With Code Coverage */,
-				1DEB91AF08733DA50010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB91B208733DA50010E9CD /* Debug */,
-				F93DE3B90F830E7000608B94 /* Debug With Code Coverage */,
-				1DEB91B308733DA50010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		D23F4BB012A868C400686C8D /* Build configuration list for PBXNativeTarget "minidump_generator_test_helper" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				D23F4BAD12A868A600686C8D /* Debug */,
-				D23F4BAE12A868A600686C8D /* Debug With Code Coverage */,
-				D23F4BAF12A868A600686C8D /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		D2F9A42D12131F0E002747C1 /* Build configuration list for PBXNativeTarget "gtest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				D2F9A41612131EF0002747C1 /* Debug */,
-				D2F9A41712131EF0002747C1 /* Debug With Code Coverage */,
-				D2F9A41812131EF0002747C1 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		D2F9A542121383A1002747C1 /* Build configuration list for PBXNativeTarget "crash_generation_server_test" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				D2F9A543121383A1002747C1 /* Debug */,
-				D2F9A544121383A1002747C1 /* Debug With Code Coverage */,
-				D2F9A545121383A1002747C1 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F92C53580ECCE36D009BE4BA /* Build configuration list for PBXNativeTarget "Inspector" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F92C53560ECCE34A009BE4BA /* Debug */,
-				F93DE3BB0F830E7000608B94 /* Debug With Code Coverage */,
-				F92C53570ECCE34A009BE4BA /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F92C56670ECD11A3009BE4BA /* Build configuration list for PBXNativeTarget "breakpadUtilities" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F92C563D0ECD10B3009BE4BA /* Debug */,
-				F93DE3BC0F830E7000608B94 /* Debug With Code Coverage */,
-				F92C563E0ECD10B3009BE4BA /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F92C56A50ECE04A8009BE4BA /* Build configuration list for PBXNativeTarget "crash_report_sender" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F92C56A30ECE04A8009BE4BA /* Debug */,
-				F93DE3BD0F830E7000608B94 /* Debug With Code Coverage */,
-				F92C56A40ECE04A8009BE4BA /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F93803C40F80822E004D428B /* Build configuration list for PBXNativeTarget "generator_test" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F93803C00F808210004D428B /* Debug */,
-				F93DE3C10F830E7000608B94 /* Debug With Code Coverage */,
-				F93803C10F808210004D428B /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F93DE2D60F82A67700608B94 /* Build configuration list for PBXNativeTarget "minidump_file_writer_unittest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F93DE2D30F82A67400608B94 /* Debug */,
-				F93DE3C20F830E7000608B94 /* Debug With Code Coverage */,
-				F93DE2D40F82A67400608B94 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F93DE3320F82C5D800608B94 /* Build configuration list for PBXNativeTarget "handler_test" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F93DE32E0F82C55700608B94 /* Debug */,
-				F93DE3C30F830E7000608B94 /* Debug With Code Coverage */,
-				F93DE32F0F82C55700608B94 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F94585930F78235C009A47BF /* Build configuration list for PBXAggregateTarget "All" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F94585850F782326009A47BF /* Debug */,
-				F93DE3BF0F830E7000608B94 /* Debug With Code Coverage */,
-				F94585860F782326009A47BF /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F9C44DAA0EF060A9003AEBAA /* Build configuration list for PBXNativeTarget "BreakpadTest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F9C44DA80EF060A8003AEBAA /* Debug */,
-				F93DE3BE0F830E7000608B94 /* Debug With Code Coverage */,
-				F9C44DA90EF060A8003AEBAA /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		F9C77DDE0F7DD5D00045F7DB /* Build configuration list for PBXNativeTarget "UnitTests" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				F9C77DDC0F7DD5D00045F7DB /* Debug */,
-				F93DE3C00F830E7000608B94 /* Debug With Code Coverage */,
-				F9C77DDD0F7DD5D00045F7DB /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad.h
+++ /dev/null
@@ -1,285 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Framework to provide a simple C API to crash reporting for
-// applications.  By default, if any machine-level exception (e.g.,
-// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef
-// object as follows:
-//
-// 1. Create a minidump file (see Breakpad for details)
-// 2. Prompt the user (using CFUserNotification)
-// 3. Invoke a command line reporting tool to send the minidump to a
-//    server
-//
-// By specifying parameters to the BreakpadCreate function, you can
-// modify the default behavior to suit your needs and wants and
-// desires.
-
-// A service name associated with the original bootstrap parent port, saved in
-// OnDemandServer and restored in Inspector.
-#define BREAKPAD_BOOTSTRAP_PARENT_PORT    "com.Breakpad.BootstrapParent"
-
-typedef void *BreakpadRef;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <Foundation/Foundation.h>
-
-#include "BreakpadDefines.h"
-
-// Optional user-defined function to dec to decide if we should handle
-// this crash or forward it along.
-// Return true if you want Breakpad to handle it.
-// Return false if you want Breakpad to skip it
-// The exception handler always returns false, as if SEND_AND_EXIT were false
-// (which means the next exception handler will take the exception)
-typedef bool (*BreakpadFilterCallback)(int exception_type,
-                                       int exception_code,
-                                       mach_port_t crashing_thread,
-                                       void *context);
-
-// Create a new BreakpadRef object and install it as an exception
-// handler.  The |parameters| will typically be the contents of your
-// bundle's Info.plist.
-//
-// You can also specify these additional keys for customizable behavior:
-// Key:                           Value:
-// BREAKPAD_PRODUCT               Product name (e.g., "MyAwesomeProduct")
-//                                This one is used as the key to identify
-//                                the product when uploading. Falls back to
-//                                CFBundleName if not specified.
-//                                REQUIRED
-//
-// BREAKPAD_PRODUCT_DISPLAY       This is the display name, e.g. a pretty
-//                                name for the product when the crash_sender
-//                                pops up UI for the user. Falls back first to
-//                                CFBundleDisplayName and then to
-//                                BREAKPAD_PRODUCT if not specified.
-//
-// BREAKPAD_VERSION               Product version (e.g., 1.2.3), used
-//                                as metadata for crash report. Falls back to
-//                                CFBundleVersion if not specified.
-//                                REQUIRED
-//
-// BREAKPAD_VENDOR                Vendor name, used in UI (e.g. "A report has
-//                                been created that you can send to <vendor>")
-//
-// BREAKPAD_URL                   URL destination for reporting
-//                                REQUIRED
-//
-// BREAKPAD_REPORT_INTERVAL       # of seconds between sending
-//                                reports.  If an additional report is
-//                                generated within this time, it will
-//                                be ignored.  Default: 3600sec.
-//                                Specify 0 to send all reports.
-//
-// BREAKPAD_SKIP_CONFIRM          If true, the reporter will send the report
-//                                without any user intervention.
-//                                Defaults to NO
-//
-// BREAKPAD_CONFIRM_TIMEOUT       Number of seconds before the upload
-//                                confirmation dialog will be automatically
-//                                dismissed (cancelling the upload).
-//                                Default: 300 seconds (min of 60).
-//                                Specify 0 to prevent timeout.
-//
-// BREAKPAD_SEND_AND_EXIT         If true, the handler will exit after sending.
-//                                This will prevent any other handler (e.g.,
-//                                CrashReporter) from getting the crash.
-//                                Defaults TO YES
-//
-// BREAKPAD_DUMP_DIRECTORY        The directory to store crash-dumps
-//                                in. By default, we use
-//                                ~/Library/Breakpad/<BREAKPAD_PRODUCT>
-//                                The path you specify here is tilde-expanded.
-//
-// BREAKPAD_INSPECTOR_LOCATION    The full path to the Inspector executable.
-//                                Defaults to <Framework resources>/Inspector
-//
-// BREAKPAD_REPORTER_EXE_LOCATION The full path to the Reporter/sender
-//                                executable.
-//                                Default:
-//                                <Framework Resources>/crash_report_sender.app
-//
-// BREAKPAD_LOGFILES              Indicates an array of log file paths that
-//                                should be uploaded at crash time.
-//
-// BREAKPAD_REQUEST_COMMENTS      If true, the message dialog will have a
-//                                text box for the user to enter comments.
-//                                Default: NO
-//
-// BREAKPAD_REQUEST_EMAIL         If true and BREAKPAD_REQUEST_COMMENTS is also
-//                                true, the message dialog will have a text
-//                                box for the user to enter their email address.
-//                                Default: NO
-//
-// BREAKPAD_SERVER_TYPE           A parameter that tells Breakpad how to
-//                                rewrite the upload parameters for a specific
-//                                server type.  The currently valid values are
-//                                'socorro' or 'google'.  If you want to add
-//                                other types, see the function in
-//                                crash_report_sender.m that maps parameters to
-//                                URL parameters.  Defaults to 'google'.
-//
-// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static
-//                                parameters that are uploaded to the
-//                                server.  The parameters are sent as
-//                                is to the crash server.  Their
-//                                content isn't added to the minidump
-//                                but pass as URL parameters when
-//                                uploading theminidump to the crash
-//                                server.
-//
-// BREAKPAD_IN_PROCESS            A boolean NSNumber value. If YES, Breakpad
-//                                will write the dump file in-process and then
-//                                launch the reporter executable as a child
-//                                process.
-//=============================================================================
-// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are
-// required to have non-NULL values.  By default, the BREAKPAD_PRODUCT
-// will be the CFBundleName and the BREAKPAD_VERSION will be the
-// CFBundleVersion when these keys are present in the bundle's
-// Info.plist, which is usually passed in to BreakpadCreate() as an
-// NSDictionary (you could also pass in another dictionary that had
-// the same keys configured).  If the BREAKPAD_PRODUCT or
-// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will
-// fail.  You have been warned.
-//
-// If you are running in a debugger, Breakpad will not install, unless the
-// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero.
-//
-// The BREAKPAD_SKIP_CONFIRM and BREAKPAD_SEND_AND_EXIT default
-// values are NO and YES.  However, they can be controlled by setting their
-// values in a user or global plist.
-//
-// It's easiest to use Breakpad via the Framework, but if you're compiling the
-// code in directly, BREAKPAD_INSPECTOR_LOCATION and
-// BREAKPAD_REPORTER_EXE_LOCATION allow you to specify custom paths
-// to the helper executables.
-//
-//=============================================================================
-// The following are NOT user-supplied but are documented here for
-// completeness.  They are calculated by Breakpad during initialization &
-// crash-dump generation, or entered in by the user.
-//
-// BREAKPAD_PROCESS_START_TIME       The time, in seconds since the Epoch, the
-//                                   process started
-//
-// BREAKPAD_PROCESS_CRASH_TIME       The time, in seconds since the Epoch, the
-//                                   process crashed.
-//
-// BREAKPAD_PROCESS_UP_TIME          The total time in milliseconds the process
-//                                   has been running.  This parameter is not
-//                                   set until the crash-dump-generation phase.
-//
-// BREAKPAD_LOGFILE_KEY_PREFIX       Used to find out which parameters in the
-//                                   parameter dictionary correspond to log
-//                                   file paths.
-//
-// BREAKPAD_SERVER_PARAMETER_PREFIX  This prefix is used by Breakpad
-//                                   internally, because Breakpad uses
-//                                   the same dictionary internally to
-//                                   track both its internal
-//                                   configuration parameters and
-//                                   parameters meant to be uploaded
-//                                   to the server.  This string is
-//                                   used internally by Breakpad to
-//                                   prefix user-supplied parameter
-//                                   names so those can be sent to the
-//                                   server without leaking Breakpad's
-//                                   internal values.
-//
-// BREAKPAD_ON_DEMAND                Used internally to indicate to the
-//                                   Reporter that we're sending on-demand,
-//                                   not as result of a crash.
-//
-// BREAKPAD_COMMENTS                 The text the user provided as comments.
-//                                   Only used in crash_report_sender.
-
-// Returns a new BreakpadRef object on success, NULL otherwise.
-BreakpadRef BreakpadCreate(NSDictionary *parameters);
-
-// Uninstall and release the data associated with |ref|.
-void BreakpadRelease(BreakpadRef ref);
-
-// Clients may set an optional callback which gets called when a crash
-// occurs.  The callback function should return |true| if we should
-// handle the crash, generate a crash report, etc. or |false| if we
-// should ignore it and forward the crash (normally to CrashReporter).
-// Context is a pointer to arbitrary data to make the callback with.
-void BreakpadSetFilterCallback(BreakpadRef ref,
-                               BreakpadFilterCallback callback,
-                               void *context);
-
-// User defined key and value string storage.  Generally this is used
-// to configure Breakpad's internal operation, such as whether the
-// crash_sender should prompt the user, or the filesystem location for
-// the minidump file.  See Breakpad.h for some parameters that can be
-// set.  Anything longer than 255 bytes will be truncated. Note that
-// the string is converted to UTF8 before truncation, so any multibyte
-// character that straddles the 255(256 - 1 for terminator) byte limit
-// will be mangled.
-//
-// A maximum number of 64 key/value pairs are supported.  An assert()
-// will fire if more than this number are set.  Unfortunately, right
-// now, the same dictionary is used for both Breakpad's parameters AND
-// the Upload parameters.
-//
-// TODO (nealsid): Investigate how necessary this is if we don't
-// automatically upload parameters to the server anymore.
-// TODO (nealsid): separate server parameter dictionary from the
-// dictionary used to configure Breakpad, and document limits for each
-// independently.
-void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value);
-NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key);
-void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key);
-
-// You can use this method to specify parameters that will be uploaded
-// to the crash server.  They will be automatically encoded as
-// necessary.  Note that as mentioned above there are limits on both
-// the number of keys and their length.
-void BreakpadAddUploadParameter(BreakpadRef ref, NSString *key,
-                                NSString *value);
-
-// This method will remove a previously-added parameter from the
-// upload parameter set.
-void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString *key);
-
-// Add a log file for Breakpad to read and send upon crash dump
-void BreakpadAddLogFile(BreakpadRef ref, NSString *logPathname);
-
-// Generate a minidump and send
-void BreakpadGenerateAndSendReport(BreakpadRef ref);
-
-#ifdef __cplusplus
-}
-#endif
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad.mm
+++ /dev/null
@@ -1,1043 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-
-
-#define IGNORE_DEBUGGER "BREAKPAD_IGNORE_DEBUGGER"
-
-#import "client/mac/Framework/Breakpad.h"
-
-#include <assert.h>
-#import <Foundation/Foundation.h>
-#include <pthread.h>
-#include <sys/stat.h>
-#include <sys/sysctl.h>
-
-#import "client/mac/crash_generation/Inspector.h"
-#import "client/mac/handler/exception_handler.h"
-#import "client/mac/Framework/Breakpad.h"
-#import "client/mac/Framework/OnDemandServer.h"
-#import "client/mac/handler/protected_memory_allocator.h"
-#include "common/mac/launch_reporter.h"
-#import "common/mac/MachIPC.h"
-#import "common/simple_string_dictionary.h"
-
-#if !defined(__EXCEPTIONS) || (__clang__ && !__has_feature(cxx_exceptions))
-// This file uses C++ try/catch (but shouldn't). Duplicate the macros from
-// <c++/4.2.1/exception_defines.h> allowing this file to work properly with
-// exceptions disabled even when other C++ libraries are used. #undef the try
-// and catch macros first in case libstdc++ is in use and has already provided
-// its own definitions.
-#undef try
-#define try       if (true)
-#undef catch
-#define catch(X)  if (false)
-#endif  // __EXCEPTIONS
-
-using google_breakpad::MachPortSender;
-using google_breakpad::MachReceiveMessage;
-using google_breakpad::MachSendMessage;
-using google_breakpad::ReceivePort;
-using google_breakpad::SimpleStringDictionary;
-
-//=============================================================================
-// We want any memory allocations which are used by breakpad during the
-// exception handling process (after a crash has happened) to be read-only
-// to prevent them from being smashed before a crash occurs.  Unfortunately
-// we cannot protect against smashes to our exception handling thread's
-// stack.
-//
-// NOTE: Any memory allocations which are not used during the exception
-// handling process may be allocated in the normal ways.
-//
-// The ProtectedMemoryAllocator class provides an Allocate() method which
-// we'll using in conjunction with placement operator new() to control
-// allocation of C++ objects.  Note that we don't use operator delete()
-// but instead call the objects destructor directly:  object->~ClassName();
-//
-ProtectedMemoryAllocator *gMasterAllocator = NULL;
-ProtectedMemoryAllocator *gKeyValueAllocator = NULL;
-ProtectedMemoryAllocator *gBreakpadAllocator = NULL;
-
-// Mutex for thread-safe access to the key/value dictionary used by breakpad.
-// It's a global instead of an instance variable of Breakpad
-// since it can't live in a protected memory area.
-pthread_mutex_t gDictionaryMutex;
-
-//=============================================================================
-// Stack-based object for thread-safe access to a memory-protected region.
-// It's assumed that normally the memory block (allocated by the allocator)
-// is protected (read-only).  Creating a stack-based instance of
-// ProtectedMemoryLocker will unprotect this block after taking the lock.
-// Its destructor will first re-protect the memory then release the lock.
-class ProtectedMemoryLocker {
- public:
-  ProtectedMemoryLocker(pthread_mutex_t *mutex,
-                        ProtectedMemoryAllocator *allocator)
-      : mutex_(mutex),
-        allocator_(allocator) {
-    // Lock the mutex
-    __attribute__((unused)) int rv = pthread_mutex_lock(mutex_);
-    assert(rv == 0);
-
-    // Unprotect the memory
-    allocator_->Unprotect();
-  }
-
-  ~ProtectedMemoryLocker() {
-    // First protect the memory
-    allocator_->Protect();
-
-    // Then unlock the mutex
-    __attribute__((unused)) int rv = pthread_mutex_unlock(mutex_);
-    assert(rv == 0);
-  };
-
- private:
-  ProtectedMemoryLocker();
-  ProtectedMemoryLocker(const ProtectedMemoryLocker&);
-  ProtectedMemoryLocker& operator=(const ProtectedMemoryLocker&);
-
-  pthread_mutex_t           *mutex_;
-  ProtectedMemoryAllocator  *allocator_;
-};
-
-//=============================================================================
-class Breakpad {
- public:
-  // factory method
-  static Breakpad *Create(NSDictionary *parameters) {
-    // Allocate from our special allocation pool
-    Breakpad *breakpad =
-      new (gBreakpadAllocator->Allocate(sizeof(Breakpad)))
-        Breakpad();
-
-    if (!breakpad)
-      return NULL;
-
-    if (!breakpad->Initialize(parameters)) {
-      // Don't use operator delete() here since we allocated from special pool
-      breakpad->~Breakpad();
-      return NULL;
-    }
-
-    return breakpad;
-  }
-
-  ~Breakpad();
-
-  void SetKeyValue(NSString *key, NSString *value);
-  NSString *KeyValue(NSString *key);
-  void RemoveKeyValue(NSString *key);
-
-  void GenerateAndSendReport();
-
-  void SetFilterCallback(BreakpadFilterCallback callback, void *context) {
-    filter_callback_ = callback;
-    filter_callback_context_ = context;
-  }
-
- private:
-  Breakpad()
-    : handler_(NULL),
-      config_params_(NULL),
-      send_and_exit_(true),
-      filter_callback_(NULL),
-      filter_callback_context_(NULL) {
-    inspector_path_[0] = 0;
-  }
-
-  bool Initialize(NSDictionary *parameters);
-  bool InitializeInProcess(NSDictionary *parameters);
-  bool InitializeOutOfProcess(NSDictionary *parameters);
-
-  bool ExtractParameters(NSDictionary *parameters);
-
-  // Dispatches to HandleException()
-  static bool ExceptionHandlerDirectCallback(void *context,
-                                             int exception_type,
-                                             int exception_code,
-                                             int exception_subcode,
-                                             mach_port_t crashing_thread);
-
-  bool HandleException(int exception_type,
-                       int exception_code,
-                       int exception_subcode,
-                       mach_port_t crashing_thread);
-
-  // Dispatches to HandleMinidump().
-  // This gets called instead of ExceptionHandlerDirectCallback when running
-  // with the BREAKPAD_IN_PROCESS option.
-  static bool HandleMinidumpCallback(const char *dump_dir,
-                                     const char *minidump_id,
-                                     void *context,
-                                     bool succeeded);
-
-  // This is only used when BREAKPAD_IN_PROCESS is YES.
-  bool HandleMinidump(const char *dump_dir, const char *minidump_id);
-
-  // Since ExceptionHandler (w/o namespace) is defined as typedef in OSX's
-  // MachineExceptions.h, we have to explicitly name the handler.
-  google_breakpad::ExceptionHandler *handler_; // The actual handler (STRONG)
-
-  char                    inspector_path_[PATH_MAX];  // Path to inspector tool
-
-  SimpleStringDictionary  *config_params_; // Create parameters (STRONG)
-
-  OnDemandServer          inspector_;
-
-  bool                    send_and_exit_;  // Exit after sending, if true
-
-  BreakpadFilterCallback  filter_callback_;
-  void                    *filter_callback_context_;
-};
-
-#pragma mark -
-#pragma mark Helper functions
-
-//=============================================================================
-// Helper functions
-
-//=============================================================================
-static BOOL IsDebuggerActive() {
-  BOOL result = NO;
-  NSUserDefaults *stdDefaults = [NSUserDefaults standardUserDefaults];
-
-  // We check both defaults and the environment variable here
-
-  BOOL ignoreDebugger = [stdDefaults boolForKey:@IGNORE_DEBUGGER];
-
-  if (!ignoreDebugger) {
-    char *ignoreDebuggerStr = getenv(IGNORE_DEBUGGER);
-    ignoreDebugger = (ignoreDebuggerStr ? strtol(ignoreDebuggerStr, NULL, 10) : 0) != 0;
-  }
-
-  if (!ignoreDebugger) {
-    pid_t pid = getpid();
-    int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
-    int mibSize = sizeof(mib) / sizeof(int);
-    size_t actualSize;
-
-    if (sysctl(mib, mibSize, NULL, &actualSize, NULL, 0) == 0) {
-      struct kinfo_proc *info = (struct kinfo_proc *)malloc(actualSize);
-
-      if (info) {
-        // This comes from looking at the Darwin xnu Kernel
-        if (sysctl(mib, mibSize, info, &actualSize, NULL, 0) == 0)
-          result = (info->kp_proc.p_flag & P_TRACED) ? YES : NO;
-
-        free(info);
-      }
-    }
-  }
-
-  return result;
-}
-
-//=============================================================================
-bool Breakpad::ExceptionHandlerDirectCallback(void *context,
-                                                    int exception_type,
-                                                    int exception_code,
-                                                    int exception_subcode,
-                                                    mach_port_t crashing_thread) {
-  Breakpad *breakpad = (Breakpad *)context;
-
-  // If our context is damaged or something, just return false to indicate that
-  // the handler should continue without us.
-  if (!breakpad)
-    return false;
-
-  return breakpad->HandleException( exception_type,
-                                    exception_code,
-                                    exception_subcode,
-                                    crashing_thread);
-}
-
-//=============================================================================
-bool Breakpad::HandleMinidumpCallback(const char *dump_dir,
-                                      const char *minidump_id,
-                                      void *context,
-                                      bool succeeded) {
-  Breakpad *breakpad = (Breakpad *)context;
-
-  // If our context is damaged or something, just return false to indicate that
-  // the handler should continue without us.
-  if (!breakpad || !succeeded)
-    return false;
-
-  return breakpad->HandleMinidump(dump_dir, minidump_id);
-}
-
-//=============================================================================
-#pragma mark -
-
-#include <dlfcn.h>
-
-//=============================================================================
-// Returns the pathname to the Resources directory for this version of
-// Breakpad which we are now running.
-//
-// Don't make the function static, since _dyld_lookup_and_bind_fully needs a
-// simple non-static C name
-//
-extern "C" {
-NSString * GetResourcePath();
-NSString * GetResourcePath() {
-  NSString *resourcePath = nil;
-
-  // If there are multiple breakpads installed then calling bundleWithIdentifier
-  // will not work properly, so only use that as a backup plan.
-  // We want to find the bundle containing the code where this function lives
-  // and work from there
-  //
-
-  // Get the pathname to the code which contains this function
-  Dl_info info;
-  if (dladdr((const void*)GetResourcePath, &info) != 0) {
-    NSFileManager *filemgr = [NSFileManager defaultManager];
-    NSString *filePath =
-        [filemgr stringWithFileSystemRepresentation:info.dli_fname
-                                             length:strlen(info.dli_fname)];
-    NSString *bundlePath = [filePath stringByDeletingLastPathComponent];
-    // The "Resources" directory should be in the same directory as the
-    // executable code, since that's how the Breakpad framework is built.
-    resourcePath = [bundlePath stringByAppendingPathComponent:@"Resources/"];
-  } else {
-    // fallback plan
-    NSBundle *bundle =
-        [NSBundle bundleWithIdentifier:@"com.Google.BreakpadFramework"];
-    resourcePath = [bundle resourcePath];
-  }
-
-  return resourcePath;
-}
-}  // extern "C"
-
-//=============================================================================
-bool Breakpad::Initialize(NSDictionary *parameters) {
-  // Initialize
-  config_params_ = NULL;
-  handler_ = NULL;
-
-  // Check for debugger
-  if (IsDebuggerActive()) {
-    return true;
-  }
-
-  // Gather any user specified parameters
-  if (!ExtractParameters(parameters)) {
-    return false;
-  }
-
-  if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
-    return InitializeInProcess(parameters);
-  else
-    return InitializeOutOfProcess(parameters);
-}
-
-//=============================================================================
-bool Breakpad::InitializeInProcess(NSDictionary* parameters) {
-  handler_ =
-      new (gBreakpadAllocator->Allocate(
-          sizeof(google_breakpad::ExceptionHandler)))
-          google_breakpad::ExceptionHandler(
-              config_params_->GetValueForKey(BREAKPAD_DUMP_DIRECTORY),
-              0, &HandleMinidumpCallback, this, true, 0);
-  return true;    
-}
-
-//=============================================================================
-bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
-  // Get path to Inspector executable.
-  NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
-
-  // Standardize path (resolve symlinkes, etc.)  and escape spaces
-  inspectorPathString = [inspectorPathString stringByStandardizingPath];
-  inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
-                                              componentsJoinedByString:@"\\ "];
-
-  // Create an on-demand server object representing the Inspector.
-  // In case of a crash, we simply need to call the LaunchOnDemand()
-  // method on it, then send a mach message to its service port.
-  // It will then launch and perform a process inspection of our crashed state.
-  // See the HandleException() method for the details.
-#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
-
-  name_t portName;
-  snprintf(portName, sizeof(name_t),  "%s%d", RECEIVE_PORT_NAME, getpid());
-
-  // Save the location of the Inspector
-  strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
-          sizeof(inspector_path_));
-
-  // Append a single command-line argument to the Inspector path
-  // representing the bootstrap name of the launch-on-demand receive port.
-  // When the Inspector is launched, it can use this to lookup the port
-  // by calling bootstrap_check_in().
-  strlcat(inspector_path_, " ", sizeof(inspector_path_));
-  strlcat(inspector_path_, portName, sizeof(inspector_path_));
-
-  kern_return_t kr = inspector_.Initialize(inspector_path_,
-                                           portName,
-                                           true);        // shutdown on exit
-
-  if (kr != KERN_SUCCESS) {
-    return false;
-  }
-
-  // Create the handler (allocating it in our special protected pool)
-  handler_ =
-      new (gBreakpadAllocator->Allocate(
-          sizeof(google_breakpad::ExceptionHandler)))
-          google_breakpad::ExceptionHandler(
-              Breakpad::ExceptionHandlerDirectCallback, this, true);
-  return true;
-}
-
-//=============================================================================
-Breakpad::~Breakpad() {
-  // Note that we don't use operator delete() on these pointers,
-  // since they were allocated by ProtectedMemoryAllocator objects.
-  //
-  if (config_params_) {
-    config_params_->~SimpleStringDictionary();
-  }
-
-  if (handler_)
-    handler_->~ExceptionHandler();
-}
-
-//=============================================================================
-bool Breakpad::ExtractParameters(NSDictionary *parameters) {
-  NSUserDefaults *stdDefaults = [NSUserDefaults standardUserDefaults];
-  NSString *skipConfirm = [stdDefaults stringForKey:@BREAKPAD_SKIP_CONFIRM];
-  NSString *sendAndExit = [stdDefaults stringForKey:@BREAKPAD_SEND_AND_EXIT];
-
-  NSString *serverType = [parameters objectForKey:@BREAKPAD_SERVER_TYPE];
-  NSString *display = [parameters objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
-  NSString *product = [parameters objectForKey:@BREAKPAD_PRODUCT];
-  NSString *version = [parameters objectForKey:@BREAKPAD_VERSION];
-  NSString *urlStr = [parameters objectForKey:@BREAKPAD_URL];
-  NSString *interval = [parameters objectForKey:@BREAKPAD_REPORT_INTERVAL];
-  NSString *inspectorPathString =
-      [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
-  NSString *reporterPathString =
-      [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
-  NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
-  NSArray  *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
-  NSString *logFileTailSize =
-      [parameters objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE];
-  NSString *requestUserText =
-      [parameters objectForKey:@BREAKPAD_REQUEST_COMMENTS];
-  NSString *requestEmail = [parameters objectForKey:@BREAKPAD_REQUEST_EMAIL];
-  NSString *vendor =
-      [parameters objectForKey:@BREAKPAD_VENDOR];
-  NSString *dumpSubdirectory =
-      [parameters objectForKey:@BREAKPAD_DUMP_DIRECTORY];
-
-  NSDictionary *serverParameters =
-      [parameters objectForKey:@BREAKPAD_SERVER_PARAMETER_DICT];
-
-  // These may have been set above as user prefs, which take priority.
-  if (!skipConfirm) {
-    skipConfirm = [parameters objectForKey:@BREAKPAD_SKIP_CONFIRM];
-  }
-  if (!sendAndExit) {
-    sendAndExit = [parameters objectForKey:@BREAKPAD_SEND_AND_EXIT];
-  }
-
-  if (!product)
-    product = [parameters objectForKey:@"CFBundleName"];
-
-  if (!display) {
-    display = [parameters objectForKey:@"CFBundleDisplayName"];
-    if (!display) {
-      display = product;
-    }
-  }
-
-  if (!version)
-    version = [parameters objectForKey:@"CFBundleVersion"];
-
-  if (!interval)
-    interval = @"3600";
-
-  if (!timeout)
-    timeout = @"300";
-
-  if (!logFileTailSize)
-    logFileTailSize = @"200000";
-
-  if (!vendor) {
-    vendor = @"Vendor not specified";
-  }
-
-  // Normalize the values.
-  if (skipConfirm) {
-    skipConfirm = [skipConfirm uppercaseString];
-
-    if ([skipConfirm isEqualToString:@"YES"] ||
-        [skipConfirm isEqualToString:@"TRUE"] ||
-        [skipConfirm isEqualToString:@"1"])
-      skipConfirm = @"YES";
-    else
-      skipConfirm = @"NO";
-  } else {
-    skipConfirm = @"NO";
-  }
-
-  send_and_exit_ = true;
-  if (sendAndExit) {
-    sendAndExit = [sendAndExit uppercaseString];
-
-    if ([sendAndExit isEqualToString:@"NO"] ||
-        [sendAndExit isEqualToString:@"FALSE"] ||
-        [sendAndExit isEqualToString:@"0"])
-      send_and_exit_ = false;
-  }
-
-  if (requestUserText) {
-    requestUserText = [requestUserText uppercaseString];
-
-    if ([requestUserText isEqualToString:@"YES"] ||
-        [requestUserText isEqualToString:@"TRUE"] ||
-        [requestUserText isEqualToString:@"1"])
-      requestUserText = @"YES";
-    else
-      requestUserText = @"NO";
-  } else {
-    requestUserText = @"NO";
-  }
-
-  // Find the helper applications if not specified in user config.
-  NSString *resourcePath = nil;
-  if (!inspectorPathString || !reporterPathString) {
-    resourcePath = GetResourcePath();
-    if (!resourcePath) {
-      return false;
-    }
-  }
-
-  // Find Inspector.
-  if (!inspectorPathString) {
-    inspectorPathString =
-        [resourcePath stringByAppendingPathComponent:@"Inspector"];
-  }
-
-  // Verify that there is an Inspector tool.
-  if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
-    return false;
-  }
-
-  // Find Reporter.
-  if (!reporterPathString) {
-    reporterPathString =
-        [resourcePath
-         stringByAppendingPathComponent:@"crash_report_sender.app"];
-    reporterPathString =
-        [[NSBundle bundleWithPath:reporterPathString] executablePath];
-  }
-
-  // Verify that there is a Reporter application.
-  if (![[NSFileManager defaultManager]
-             fileExistsAtPath:reporterPathString]) {
-    return false;
-  }
-
-  if (!dumpSubdirectory) {
-    dumpSubdirectory = @"";
-  }
-
-  // The product, version, and URL are required values.
-  if (![product length]) {
-    return false;
-  }
-
-  if (![version length]) {
-    return false;
-  }
-
-  if (![urlStr length]) {
-    return false;
-  }
-
-  config_params_ =
-      new (gKeyValueAllocator->Allocate(sizeof(SimpleStringDictionary)) )
-        SimpleStringDictionary();
-
-  SimpleStringDictionary &dictionary = *config_params_;
-
-  dictionary.SetKeyValue(BREAKPAD_SERVER_TYPE,     [serverType UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_PRODUCT_DISPLAY, [display UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_PRODUCT,         [product UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_VERSION,         [version UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_URL,             [urlStr UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM,    [skipConfirm UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
-                         [inspectorPathString fileSystemRepresentation]);
-  dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
-                         [reporterPathString fileSystemRepresentation]);
-  dictionary.SetKeyValue(BREAKPAD_LOGFILE_UPLOAD_SIZE,
-                         [logFileTailSize UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_REQUEST_COMMENTS,
-                         [requestUserText UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_REQUEST_EMAIL, [requestEmail UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_VENDOR, [vendor UTF8String]);
-  dictionary.SetKeyValue(BREAKPAD_DUMP_DIRECTORY,
-                         [dumpSubdirectory UTF8String]);
-
-  struct timeval tv;
-  gettimeofday(&tv, NULL);
-  char timeStartedString[32];
-  sprintf(timeStartedString, "%zd", tv.tv_sec);
-  dictionary.SetKeyValue(BREAKPAD_PROCESS_START_TIME,
-                         timeStartedString);
-
-  if (logFilePaths) {
-    char logFileKey[255];
-    for(unsigned int i = 0; i < [logFilePaths count]; i++) {
-      sprintf(logFileKey,"%s%d", BREAKPAD_LOGFILE_KEY_PREFIX, i);
-      dictionary.SetKeyValue(logFileKey,
-                             [[logFilePaths objectAtIndex:i]
-                               fileSystemRepresentation]);
-    }
-  }
-
-  if (serverParameters) {
-    // For each key-value pair, call BreakpadAddUploadParameter()
-    NSEnumerator *keyEnumerator = [serverParameters keyEnumerator];
-    NSString *aParameter;
-    while ((aParameter = [keyEnumerator nextObject])) {
-      BreakpadAddUploadParameter(this, aParameter,
-				 [serverParameters objectForKey:aParameter]);
-    }
-  }
-  return true;
-}
-
-//=============================================================================
-void Breakpad::SetKeyValue(NSString *key, NSString *value) {
-  // We allow nil values. This is the same as removing the keyvalue.
-  if (!config_params_ || !key)
-    return;
-
-  config_params_->SetKeyValue([key UTF8String], [value UTF8String]);
-}
-
-//=============================================================================
-NSString *Breakpad::KeyValue(NSString *key) {
-  if (!config_params_ || !key)
-    return nil;
-
-  const char *value = config_params_->GetValueForKey([key UTF8String]);
-  return value ? [NSString stringWithUTF8String:value] : nil;
-}
-
-//=============================================================================
-void Breakpad::RemoveKeyValue(NSString *key) {
-  if (!config_params_ || !key) return;
-
-  config_params_->RemoveKey([key UTF8String]);
-}
-
-//=============================================================================
-void Breakpad::GenerateAndSendReport() {
-  config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "YES");
-  HandleException(0, 0, 0, mach_thread_self());
-  config_params_->SetKeyValue(BREAKPAD_ON_DEMAND, "NO");
-}
-
-//=============================================================================
-bool Breakpad::HandleException(int exception_type,
-                               int exception_code,
-                               int exception_subcode,
-                               mach_port_t crashing_thread) {
-  if (filter_callback_) {
-    bool should_handle = filter_callback_(exception_type,
-                                          exception_code,
-                                          crashing_thread,
-                                          filter_callback_context_);
-    if (!should_handle) return false;
-  }
-
-  // We need to reset the memory protections to be read/write,
-  // since LaunchOnDemand() requires changing state.
-  gBreakpadAllocator->Unprotect();
-  // Configure the server to launch when we message the service port.
-  // The reason we do this here, rather than at startup, is that we
-  // can leak a bootstrap service entry if this method is called and
-  // there never ends up being a crash.
-  inspector_.LaunchOnDemand();
-  gBreakpadAllocator->Protect();
-
-  // The Inspector should send a message to this port to verify it
-  // received our information and has finished the inspection.
-  ReceivePort acknowledge_port;
-
-  // Send initial information to the Inspector.
-  MachSendMessage message(kMsgType_InspectorInitialInfo);
-  message.AddDescriptor(mach_task_self());          // our task
-  message.AddDescriptor(crashing_thread);           // crashing thread
-  message.AddDescriptor(mach_thread_self());        // exception-handling thread
-  message.AddDescriptor(acknowledge_port.GetPort());// message receive port
-
-  InspectorInfo info;
-  info.exception_type = exception_type;
-  info.exception_code = exception_code;
-  info.exception_subcode = exception_subcode;
-  info.parameter_count = config_params_->GetCount();
-  message.SetData(&info, sizeof(info));
-
-  MachPortSender sender(inspector_.GetServicePort());
-
-  kern_return_t result = sender.SendMessage(message, 2000);
-
-  if (result == KERN_SUCCESS) {
-    // Now, send a series of key-value pairs to the Inspector.
-    const SimpleStringDictionary::Entry *entry = NULL;
-    SimpleStringDictionary::Iterator iter(*config_params_);
-
-    while ( (entry = iter.Next()) ) {
-      KeyValueMessageData keyvalue_data(*entry);
-
-      MachSendMessage keyvalue_message(kMsgType_InspectorKeyValuePair);
-      keyvalue_message.SetData(&keyvalue_data, sizeof(keyvalue_data));
-
-      result = sender.SendMessage(keyvalue_message, 2000);
-
-      if (result != KERN_SUCCESS) {
-        break;
-      }
-    }
-
-    if (result == KERN_SUCCESS) {
-      // Wait for acknowledgement that the inspection has finished.
-      MachReceiveMessage acknowledge_messsage;
-      result = acknowledge_port.WaitForMessage(&acknowledge_messsage, 5000);
-    }
-  }
-
-#if VERBOSE
-  PRINT_MACH_RESULT(result, "Breakpad: SendMessage ");
-  printf("Breakpad: Inspector service port = %#x\n",
-    inspector_.GetServicePort());
-#endif
-
-  // If we don't want any forwarding, return true here to indicate that we've
-  // processed things as much as we want.
-  if (send_and_exit_) return true;
-
-  return false;
-}
-
-//=============================================================================
-bool Breakpad::HandleMinidump(const char *dump_dir, const char *minidump_id) {
-  google_breakpad::ConfigFile config_file;
-  config_file.WriteFile(dump_dir, config_params_, dump_dir, minidump_id);
-  google_breakpad::LaunchReporter(
-      config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
-      config_file.GetFilePath());
-  return true;
-}
-
-//=============================================================================
-//=============================================================================
-
-#pragma mark -
-#pragma mark Public API
-
-//=============================================================================
-BreakpadRef BreakpadCreate(NSDictionary *parameters) {
-  try {
-    // This is confusing.  Our two main allocators for breakpad memory are:
-    //    - gKeyValueAllocator for the key/value memory
-    //    - gBreakpadAllocator for the Breakpad, ExceptionHandler, and other
-    //      breakpad allocations which are accessed at exception handling time.
-    //
-    // But in order to avoid these two allocators themselves from being smashed,
-    // we'll protect them as well by allocating them with gMasterAllocator.
-    //
-    // gMasterAllocator itself will NOT be protected, but this doesn't matter,
-    // since once it does its allocations and locks the memory, smashes to itself
-    // don't affect anything we care about.
-    gMasterAllocator =
-        new ProtectedMemoryAllocator(sizeof(ProtectedMemoryAllocator) * 2);
-
-    gKeyValueAllocator =
-        new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
-            ProtectedMemoryAllocator(sizeof(SimpleStringDictionary));
-
-    // Create a mutex for use in accessing the SimpleStringDictionary
-    int mutexResult = pthread_mutex_init(&gDictionaryMutex, NULL);
-    if (mutexResult == 0) {
-
-      // With the current compiler, gBreakpadAllocator is allocating 1444 bytes.
-      // Let's round up to the nearest page size.
-      //
-      int breakpad_pool_size = 4096;
-
-      /*
-       sizeof(Breakpad)
-       + sizeof(google_breakpad::ExceptionHandler)
-       + sizeof( STUFF ALLOCATED INSIDE ExceptionHandler )
-       */
-
-      gBreakpadAllocator =
-          new (gMasterAllocator->Allocate(sizeof(ProtectedMemoryAllocator)))
-              ProtectedMemoryAllocator(breakpad_pool_size);
-
-      // Stack-based autorelease pool for Breakpad::Create() obj-c code.
-      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-      Breakpad *breakpad = Breakpad::Create(parameters);
-
-      if (breakpad) {
-        // Make read-only to protect against memory smashers
-        gMasterAllocator->Protect();
-        gKeyValueAllocator->Protect();
-        gBreakpadAllocator->Protect();
-        // Can uncomment this line to figure out how much space was actually
-        // allocated using this allocator
-        //     printf("gBreakpadAllocator allocated size = %d\n",
-        //         gBreakpadAllocator->GetAllocatedSize() );
-        [pool release];
-        return (BreakpadRef)breakpad;
-      }
-
-      [pool release];
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadCreate() : error\n");
-  }
-
-  if (gKeyValueAllocator) {
-    gKeyValueAllocator->~ProtectedMemoryAllocator();
-    gKeyValueAllocator = NULL;
-  }
-
-  if (gBreakpadAllocator) {
-    gBreakpadAllocator->~ProtectedMemoryAllocator();
-    gBreakpadAllocator = NULL;
-  }
-
-  delete gMasterAllocator;
-  gMasterAllocator = NULL;
-
-  return NULL;
-}
-
-//=============================================================================
-void BreakpadRelease(BreakpadRef ref) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (gMasterAllocator) {
-      gMasterAllocator->Unprotect();
-      gKeyValueAllocator->Unprotect();
-      gBreakpadAllocator->Unprotect();
-
-      breakpad->~Breakpad();
-
-      // Unfortunately, it's not possible to deallocate this stuff
-      // because the exception handling thread is still finishing up
-      // asynchronously at this point...  OK, it could be done with
-      // locks, etc.  But since BreakpadRelease() should usually only
-      // be called right before the process exits, it's not worth
-      // deallocating this stuff.
-#if 0
-      gKeyValueAllocator->~ProtectedMemoryAllocator();
-      gBreakpadAllocator->~ProtectedMemoryAllocator();
-      delete gMasterAllocator;
-
-      gMasterAllocator = NULL;
-      gKeyValueAllocator = NULL;
-      gBreakpadAllocator = NULL;
-#endif
-
-      pthread_mutex_destroy(&gDictionaryMutex);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRelease() : error\n");
-  }
-}
-
-//=============================================================================
-void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      breakpad->SetKeyValue(key, value);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
-  }
-}
-
-void BreakpadAddUploadParameter(BreakpadRef ref,
-                                NSString *key,
-                                NSString *value) {
-  // The only difference, internally, between an upload parameter and
-  // a key value one that is set with BreakpadSetKeyValue is that we
-  // prepend the keyname with a special prefix.  This informs the
-  // crash sender that the parameter should be sent along with the
-  // POST of the crash dump upload.
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      NSString *prefixedKey = [@BREAKPAD_SERVER_PARAMETER_PREFIX
-				stringByAppendingString:key];
-      breakpad->SetKeyValue(prefixedKey, value);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadSetKeyValue() : error\n");
-  }
-}
-
-void BreakpadRemoveUploadParameter(BreakpadRef ref,
-                                   NSString *key) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      NSString *prefixedKey = [NSString stringWithFormat:@"%@%@",
-                                        @BREAKPAD_SERVER_PARAMETER_PREFIX, key];
-      breakpad->RemoveKeyValue(prefixedKey);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
-  }
-}
-//=============================================================================
-NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key) {
-  NSString *value = nil;
-
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (!breakpad || !key || !gKeyValueAllocator)
-      return nil;
-
-    ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-    value = breakpad->KeyValue(key);
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadKeyValue() : error\n");
-  }
-
-  return value;
-}
-
-//=============================================================================
-void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key) {
-  try {
-    // Not called at exception time
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && key && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      breakpad->RemoveKeyValue(key);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadRemoveKeyValue() : error\n");
-  }
-}
-
-//=============================================================================
-void BreakpadGenerateAndSendReport(BreakpadRef ref) {
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && gKeyValueAllocator) {
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gKeyValueAllocator);
-
-      gBreakpadAllocator->Unprotect();
-      breakpad->GenerateAndSendReport();
-      gBreakpadAllocator->Protect();
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadGenerateAndSendReport() : error\n");
-  }
-}
-
-//=============================================================================
-void BreakpadSetFilterCallback(BreakpadRef ref,
-                               BreakpadFilterCallback callback,
-                               void *context) {
-
-  try {
-    Breakpad *breakpad = (Breakpad *)ref;
-
-    if (breakpad && gBreakpadAllocator) {
-      // share the dictionary mutex here (we really don't need a mutex)
-      ProtectedMemoryLocker locker(&gDictionaryMutex, gBreakpadAllocator);
-
-      breakpad->SetFilterCallback(callback, context);
-    }
-  } catch(...) {    // don't let exceptions leave this C API
-    fprintf(stderr, "BreakpadSetFilterCallback() : error\n");
-  }
-}
-
-//============================================================================
-void BreakpadAddLogFile(BreakpadRef ref, NSString *logPathname) {
-  int logFileCounter = 0;
-
-  NSString *logFileKey = [NSString stringWithFormat:@"%@%d",
-                                   @BREAKPAD_LOGFILE_KEY_PREFIX,
-                                   logFileCounter];
-
-  NSString *existingLogFilename = nil;
-  existingLogFilename = BreakpadKeyValue(ref, logFileKey);
-  // Find the first log file key that we can use by testing for existence
-  while (existingLogFilename) {
-    if ([existingLogFilename isEqualToString:logPathname]) {
-      return;
-    }
-    logFileCounter++;
-    logFileKey = [NSString stringWithFormat:@"%@%d",
-                           @BREAKPAD_LOGFILE_KEY_PREFIX,
-                           logFileCounter];
-    existingLogFilename = BreakpadKeyValue(ref, logFileKey);
-  }
-
-  BreakpadSetKeyValue(ref, logFileKey, logPathname);
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/Breakpad_Prefix.pch
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-// Prefix header for all source files of the 'Breakpad' target in the
-// 'Breakpad' project.
-//
-
-#ifdef __OBJC__
-    #import <Cocoa/Cocoa.h>
-#endif
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string></string>
-	<key>CFBundleIdentifier</key>
-	<string>com.googlecode.google-breakpad</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>FMWK</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>NSPrincipalClass</key>
-	<string></string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/OnDemandServer.h
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include <mach/mach.h>
-#include <servers/bootstrap.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-//==============================================================================
-// class OnDemandServer :
-//    A basic on-demand server launcher supporting a single named service port
-//
-// Example Usage :
-//
-//  kern_return_t result;
-//  OnDemandServer *server = OnDemandServer::Create("/tmp/myserver",
-//                                                  "com.MyCompany.MyServiceName",
-//                                                  true,
-//                                                  &result);
-//
-//  if (server) {
-//    server->LaunchOnDemand();
-//    mach_port_t service_port = GetServicePort();
-//
-//    // Send a mach message to service_port and "myserver" will be launched
-//  }
-//
-//
-//                  ---- Now in the server code ----
-//
-//  // "myserver" should get the service port and read the message which
-//  // launched it:
-//  mach_port_t service_rcv_port_;
-//  kern_return_t kr = bootstrap_check_in(bootstrap_port,
-//                                      "com.MyCompany.MyServiceName",
-//                                      &service_rcv_port_);
-//  // mach_msg() read service_rcv_port_ ....
-//
-//  ....
-//
-//  // Later "myserver" may want to unregister the service if it doesn't
-//  // want its bootstrap service to stick around after it exits.
-//
-//  // DO NOT use mach_port_deallocate() here -- it will fail and the
-//  // following bootstrap_register() will also fail leaving our service
-//  // name hanging around forever (until reboot)
-//  kern_return_t kr = mach_port_destroy(mach_task_self(), service_rcv_port_);
-//
-//  kr = bootstrap_register(bootstrap_port,
-//                          "com.MyCompany.MyServiceName",
-//                          MACH_PORT_NULL);
-
-class OnDemandServer {
- public:
-  // must call Initialize() to be useful
-  OnDemandServer()
-    : server_port_(MACH_PORT_NULL),
-      service_port_(MACH_PORT_NULL),
-      unregister_on_cleanup_(true) {
-  }
-
-  // Creates the bootstrap server and service
-  kern_return_t Initialize(const char *server_command,
-                           const char *service_name,
-                           bool unregister_on_cleanup);
-
-  // Returns an OnDemandServer object if successful, or NULL if there's
-  // an error.  The error result will be returned in out_result.
-  //
-  //    server_command : the full path name including optional command-line
-  //      arguments to the executable representing the server
-  //
-  //    service_name : represents service name
-  //      something like "com.company.ServiceName"
-  //
-  //    unregister_on_cleanup : if true, unregisters the service name
-  //      when the OnDemandServer is deleted -- unregistering will
-  //      ONLY be possible if LaunchOnDemand() has NOT been called.
-  //      If false, then the service will continue to be registered
-  //      even after the current process quits.
-  //
-  //    out_result : if non-NULL, returns the result
-  //      this value will be KERN_SUCCESS if Create() returns non-NULL
-  //
-  static OnDemandServer *Create(const char *server_command,
-                                const char *service_name,
-                                bool unregister_on_cleanup,
-                                kern_return_t *out_result);
-
-  // Cleans up and if LaunchOnDemand() has not yet been called then
-  // the bootstrap service will be unregistered.
-  ~OnDemandServer();
-
-  // This must be called if we intend to commit to launching the server
-  // by sending a mach message to our service port.  Do not call it otherwise
-  // or it will be difficult (impossible?) to unregister the service name.
-  void LaunchOnDemand();
-
-  // This is the port we need to send a mach message to after calling
-  // LaunchOnDemand().  Sending a message causing an immediate launch
-  // of the server
-  mach_port_t GetServicePort() { return service_port_; };
-
- private:
-  // Disallow copy constructor
-  OnDemandServer(const OnDemandServer&);
-
-  // Cleans up and if LaunchOnDemand() has not yet been called then
-  // the bootstrap service will be unregistered.
-  void Unregister();
-
-  name_t      service_name_;
-
-  mach_port_t server_port_;
-  mach_port_t service_port_;
-  bool        unregister_on_cleanup_;
-};
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/Framework/OnDemandServer.mm
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "OnDemandServer.h"
-
-#import "Breakpad.h"
-#include "common/mac/bootstrap_compat.h"
-
-#if DEBUG
-  #define PRINT_MACH_RESULT(result_, message_) \
-    printf(message_"%s (%d)\n", mach_error_string(result_), result_ );
-#if defined(MAC_OS_X_VERSION_10_5) && \
-    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
-  #define PRINT_BOOTSTRAP_RESULT(result_, message_) \
-    printf(message_"%s (%d)\n", bootstrap_strerror(result_), result_ );
-#else
-  #define PRINT_BOOTSTRAP_RESULT(result_, message_) \
-    PRINT_MACH_RESULT(result_, message_)
-#endif
-#else
-  #define PRINT_MACH_RESULT(result_, message_)
-  #define PRINT_BOOTSTRAP_RESULT(result_, message_)
-#endif
-
-//==============================================================================
-OnDemandServer *OnDemandServer::Create(const char *server_command,
-                                       const char *service_name,
-                                       bool unregister_on_cleanup,
-                                       kern_return_t *out_result) {
-  OnDemandServer *server = new OnDemandServer();
-
-  if (!server) return NULL;
-
-  kern_return_t result = server->Initialize(server_command,
-                                            service_name,
-                                            unregister_on_cleanup);
-
-  if (out_result) {
-    *out_result = result;
-  }
-
-  if (result == KERN_SUCCESS) {
-    return server;
-  }
-
-  delete server;
-  return NULL;
-};
-
-//==============================================================================
-kern_return_t OnDemandServer::Initialize(const char *server_command,
-                                         const char *service_name,
-                                         bool unregister_on_cleanup) {
-  unregister_on_cleanup_ = unregister_on_cleanup;
-
-  mach_port_t self_task = mach_task_self();
-
-  mach_port_t bootstrap_port;
-  kern_return_t kr = task_get_bootstrap_port(self_task, &bootstrap_port);
-  if (kr != KERN_SUCCESS) {
-    PRINT_MACH_RESULT(kr, "task_get_bootstrap_port(): ");
-    return kr;
-  }
-
-  mach_port_t bootstrap_subset_port;
-  kr = bootstrap_subset(bootstrap_port, self_task, &bootstrap_subset_port);
-  if (kr != BOOTSTRAP_SUCCESS) {
-    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_subset(): ");
-    return kr;
-  }
-
-  // The inspector will be invoked with its bootstrap port set to the subset,
-  // but the sender will need access to the original bootstrap port. Although
-  // the original port is the subset's parent, bootstrap_parent can't be used
-  // because it requires extra privileges. Stash the original bootstrap port
-  // in the subset by registering it under a known name. The inspector will
-  // recover this port and set it as its own bootstrap port in Inspector.mm
-  // Inspector::ResetBootstrapPort.
-  kr = breakpad::BootstrapRegister(
-      bootstrap_subset_port,
-      const_cast<char*>(BREAKPAD_BOOTSTRAP_PARENT_PORT),
-      bootstrap_port);
-  if (kr != BOOTSTRAP_SUCCESS) {
-    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_register(): ");
-    return kr;
-  }
-
-  kr = bootstrap_create_server(bootstrap_subset_port,
-                               const_cast<char*>(server_command),
-                               geteuid(),       // server uid
-                               true,
-                               &server_port_);
-  if (kr != BOOTSTRAP_SUCCESS) {
-    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_create_server(): ");
-    return kr;
-  }
-
-  strlcpy(service_name_, service_name, sizeof(service_name_));
-
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  // Create a service called service_name, and return send rights to
-  // that port in service_port_.
-  kr = bootstrap_create_service(server_port_,
-                                const_cast<char*>(service_name),
-                                &service_port_);
-#pragma clang diagnostic pop
-  if (kr != BOOTSTRAP_SUCCESS) {
-    PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_create_service(): ");
-
-    // perhaps the service has already been created - try to look it up
-    kr = bootstrap_look_up(bootstrap_port, (char*)service_name, &service_port_);
-
-    if (kr != BOOTSTRAP_SUCCESS) {
-      PRINT_BOOTSTRAP_RESULT(kr, "bootstrap_look_up(): ");
-      Unregister();  // clean up server port
-      return kr;
-    }
-  }
-
-  return KERN_SUCCESS;
-}
-
-//==============================================================================
-OnDemandServer::~OnDemandServer() {
-  if (unregister_on_cleanup_) {
-    Unregister();
-  }
-}
-
-//==============================================================================
-void OnDemandServer::LaunchOnDemand() {
-  // We need to do this, since the launched server is another process
-  // and holding on to this port delays launching until the current process
-  // exits!
-  mach_port_deallocate(mach_task_self(), server_port_);
-  server_port_ = MACH_PORT_DEAD;
-
-  // Now, the service is still registered and all we need to do is send
-  // a mach message to the service port in order to launch the server.
-}
-
-//==============================================================================
-void OnDemandServer::Unregister() {
-  if (service_port_ != MACH_PORT_NULL) {
-    mach_port_deallocate(mach_task_self(), service_port_);
-    service_port_ = MACH_PORT_NULL;
-  }
-
-  if (server_port_ != MACH_PORT_NULL) {
-    // unregister the service
-    kern_return_t kr = breakpad::BootstrapRegister(server_port_,
-                                                   service_name_,
-                                                   MACH_PORT_NULL);
-
-    if (kr != KERN_SUCCESS) {
-      PRINT_MACH_RESULT(kr, "Breakpad UNREGISTER : bootstrap_register() : ");
-    }
-
-    mach_port_deallocate(mach_task_self(), server_port_);
-    server_port_ = MACH_PORT_NULL;
-  }
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/UnitTests-Info.plist
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/ConfigFile.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Utility class that can persist a SimpleStringDictionary to disk.
-
-#import <Foundation/Foundation.h>
-
-#include "common/simple_string_dictionary.h"
-
-namespace google_breakpad {
-
-BOOL EnsureDirectoryPathExists(NSString *dirPath);
-
-//=============================================================================
-class ConfigFile {
- public:
-  ConfigFile() {
-    config_file_ = -1;
-    config_file_path_[0] = 0;
-    has_created_file_ = false;
-  };
-
-  ~ConfigFile() {
-  };
-
-  void WriteFile(const char* directory,
-                 const SimpleStringDictionary *configurationParameters,
-                 const char *dump_dir,
-                 const char *minidump_id);
-
-  const char *GetFilePath() { return config_file_path_; }
-
-  void Unlink() {
-    if (config_file_ != -1)
-      unlink(config_file_path_);
-
-    config_file_ = -1;
-  }
-
- private:
-  BOOL WriteData(const void *data, size_t length);
-
-  BOOL AppendConfigData(const char *key,
-                        const void *data,
-                        size_t length);
-
-  BOOL AppendConfigString(const char *key,
-                          const char *value);
-
-  BOOL AppendCrashTimeParameters(const char *processStartTimeString);
-
-  int   config_file_;                    // descriptor for config file
-  char  config_file_path_[PATH_MAX];     // Path to configuration file
-  bool  has_created_file_;
-};
-
-} // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/ConfigFile.mm
+++ /dev/null
@@ -1,167 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Utility class that can persist a SimpleStringDictionary to disk.
-
-#import "client/mac/crash_generation/ConfigFile.h"
-
-#import <Foundation/Foundation.h>
-#include <stdio.h>
-#include <sys/time.h>
-
-#import "client/apple/Framework/BreakpadDefines.h"
-#import "common/mac/GTMDefines.h"
-
-
-namespace google_breakpad {
-
-//=============================================================================
-BOOL EnsureDirectoryPathExists(NSString *dirPath) {
-  NSFileManager *mgr = [NSFileManager defaultManager];
-
-  NSDictionary *attrs =
-    [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedLong:0750]
-                                forKey:NSFilePosixPermissions];
-
-  return [mgr createDirectoryAtPath:dirPath
-        withIntermediateDirectories:YES
-                         attributes:attrs
-                              error:nil];
-}
-
-//=============================================================================
-BOOL ConfigFile::WriteData(const void *data, size_t length) {
-  size_t result = write(config_file_, data, length);
-
-  return result == length;
-}
-
-//=============================================================================
-BOOL ConfigFile::AppendConfigData(const char *key,
-                                  const void *data, size_t length) {
-  assert(config_file_ != -1);
-
-  if (!key) {
-    return NO;
-  }
-
-  if (!data) {
-    return NO;
-  }
-
-  // Write the key, \n, length of data (ascii integer), \n, data
-  char buffer[16];
-  char nl = '\n';
-  BOOL result = WriteData(key, strlen(key));
-
-  snprintf(buffer, sizeof(buffer) - 1, "\n%lu\n", length);
-  result &= WriteData(buffer, strlen(buffer));
-  result &= WriteData(data, length);
-  result &= WriteData(&nl, 1);
-  return result;
-}
-
-//=============================================================================
-BOOL ConfigFile::AppendConfigString(const char *key,
-                                    const char *value) {
-  return AppendConfigData(key, value, strlen(value));
-}
-
-//=============================================================================
-BOOL ConfigFile::AppendCrashTimeParameters(const char *processStartTimeString) {
-  // Set process uptime parameter
-  struct timeval tv;
-  gettimeofday(&tv, NULL);
-
-  char processUptimeString[32], processCrashtimeString[32];
-  // Set up time if we've received the start time.
-  if (processStartTimeString) {
-    time_t processStartTime = strtol(processStartTimeString, NULL, 10);
-    time_t processUptime = tv.tv_sec - processStartTime;
-    // Store the uptime in milliseconds.
-    sprintf(processUptimeString, "%llu",
-        static_cast<unsigned long long int>(processUptime) * 1000);
-    if (!AppendConfigString(BREAKPAD_PROCESS_UP_TIME, processUptimeString))
-      return false;
-  }
-
-  sprintf(processCrashtimeString, "%zd", tv.tv_sec);
-  return AppendConfigString(BREAKPAD_PROCESS_CRASH_TIME,
-                            processCrashtimeString);
-}
-
-//=============================================================================
-void ConfigFile::WriteFile(const char* directory,
-                           const SimpleStringDictionary *configurationParameters,
-                           const char *dump_dir,
-                           const char *minidump_id) {
-
-  assert(config_file_ == -1);
-
-  // Open and write out configuration file preamble
-  if (directory) {
-    snprintf(config_file_path_, sizeof(config_file_path_), "%s/Config-XXXXXX",
-             directory);
-  } else {
-    strlcpy(config_file_path_, "/tmp/Config-XXXXXX",
-            sizeof(config_file_path_));
-  }
-  config_file_ = mkstemp(config_file_path_);
-
-  if (config_file_ == -1) {
-    return;
-  }
-
-  has_created_file_ = true;
-
-  // Add the minidump dir
-  AppendConfigString(kReporterMinidumpDirectoryKey, dump_dir);
-  AppendConfigString(kReporterMinidumpIDKey, minidump_id);
-
-  // Write out the configuration parameters
-  BOOL result = YES;
-  const SimpleStringDictionary &dictionary = *configurationParameters;
-
-  const SimpleStringDictionary::Entry *entry = NULL;
-  SimpleStringDictionary::Iterator iter(dictionary);
-
-  while ((entry = iter.Next())) {
-    result = AppendConfigString(entry->key, entry->value);
-
-    if (!result)
-      break;
-  }
-  AppendCrashTimeParameters(
-      configurationParameters->GetValueForKey(BREAKPAD_PROCESS_START_TIME));
-
-  close(config_file_);
-  config_file_ = -1;
-}
-
-} // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/Inspector.h
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Interface file between the Breakpad.framework and
-// the Inspector process.
-
-#include "common/simple_string_dictionary.h"
-
-#import <Foundation/Foundation.h>
-#include <mach/mach.h>
-
-#import "client/mac/crash_generation/ConfigFile.h"
-#import "client/mac/handler/minidump_generator.h"
-
-
-// Types of mach messsages (message IDs)
-enum {
-  kMsgType_InspectorInitialInfo = 0,    // data is InspectorInfo
-  kMsgType_InspectorKeyValuePair = 1,   // data is KeyValueMessageData
-  kMsgType_InspectorAcknowledgement = 2 // no data sent
-};
-
-// Initial information sent from the crashed process by
-// Breakpad.framework to the Inspector process
-// The mach message with this struct as data will also include
-// several descriptors for sending mach port rights to the crashed
-// task, etc.
-struct InspectorInfo {
-  int           exception_type;
-  int           exception_code;
-  int           exception_subcode;
-  unsigned int  parameter_count;  // key-value pairs
-};
-
-// Key/value message data to be sent to the Inspector
-struct KeyValueMessageData {
- public:
-  KeyValueMessageData() {}
-  explicit KeyValueMessageData(
-      const google_breakpad::SimpleStringDictionary::Entry &inEntry) {
-    strlcpy(key, inEntry.key, sizeof(key) );
-    strlcpy(value, inEntry.value, sizeof(value) );
-  }
-
-  char key[google_breakpad::SimpleStringDictionary::key_size];
-  char value[google_breakpad::SimpleStringDictionary::value_size];
-};
-
-using std::string;
-using google_breakpad::MinidumpGenerator;
-
-namespace google_breakpad {
-
-//=============================================================================
-class MinidumpLocation {
- public:
-  MinidumpLocation(NSString *minidumpDir) {
-    // Ensure that the path exists.  Fallback to /tmp if unable to locate path.
-    assert(minidumpDir);
-    if (!EnsureDirectoryPathExists(minidumpDir)) {
-      minidumpDir = @"/tmp";
-    }
-
-    strlcpy(minidump_dir_path_, [minidumpDir fileSystemRepresentation],
-            sizeof(minidump_dir_path_));
-
-    // now generate a unique ID
-    string dump_path(minidump_dir_path_);
-    string next_minidump_id;
-
-    string next_minidump_path_ =
-      (MinidumpGenerator::UniqueNameInDirectory(dump_path, &next_minidump_id));
-
-    strlcpy(minidump_id_, next_minidump_id.c_str(), sizeof(minidump_id_));
-  };
-
-  const char *GetPath() { return minidump_dir_path_; }
-  const char *GetID() { return minidump_id_; }
-
- private:
-  char minidump_dir_path_[PATH_MAX];             // Path to minidump directory
-  char minidump_id_[128];
-};
-
-//=============================================================================
-class Inspector {
- public:
-  Inspector() {};
-
-  // given a bootstrap service name, receives mach messages
-  // from a crashed process, then inspects it, creates a minidump file
-  // and asks the user if he wants to upload it to a server.
-  void            Inspect(const char *receive_port_name);
-
- private:
-  // The Inspector is invoked with its bootstrap port set to the bootstrap
-  // subset established in OnDemandServer.mm OnDemandServer::Initialize.
-  // For proper communication with the system, the sender (which will inherit
-  // the Inspector's bootstrap port) needs the per-session bootstrap namespace
-  // available directly in its bootstrap port. OnDemandServer stashed this
-  // port into the subset namespace under a special name. ResetBootstrapPort
-  // recovers this port and switches this task to use it as its own bootstrap
-  // (ensuring that children like the sender will inherit it), and saves the
-  // subset in bootstrap_subset_port_ for use by ServiceCheckIn and
-  // ServiceCheckOut.
-  kern_return_t   ResetBootstrapPort();
-
-  kern_return_t   ServiceCheckIn(const char *receive_port_name);
-  kern_return_t   ServiceCheckOut(const char *receive_port_name);
-
-  kern_return_t   ReadMessages();
-
-  bool            InspectTask();
-  kern_return_t   SendAcknowledgement();
-
-  // The bootstrap port in which the inspector is registered and into which it
-  // must check in.
-  mach_port_t     bootstrap_subset_port_;
-
-  mach_port_t     service_rcv_port_;
-
-  int             exception_type_;
-  int             exception_code_;
-  int             exception_subcode_;
-  mach_port_t     remote_task_;
-  mach_port_t     crashing_thread_;
-  mach_port_t     handler_thread_;
-  mach_port_t     ack_port_;
-
-  SimpleStringDictionary config_params_;
-
-  ConfigFile      config_file_;
-};
-
-
-} // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/Inspector.mm
+++ /dev/null
@@ -1,362 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Utility that can inspect another process and write a crash dump
-
-#include <cstdio>
-#include <iostream>
-#include <servers/bootstrap.h>
-#include <stdio.h>
-#include <string.h>
-#include <string>
-
-#import "client/mac/crash_generation/Inspector.h"
-
-#import "client/mac/Framework/Breakpad.h"
-#import "client/mac/handler/minidump_generator.h"
-
-#import "common/mac/MachIPC.h"
-#include "common/mac/bootstrap_compat.h"
-#include "common/mac/launch_reporter.h"
-
-#import "GTMDefines.h"
-
-#import <Foundation/Foundation.h>
-
-namespace google_breakpad {
-
-//=============================================================================
-void Inspector::Inspect(const char *receive_port_name) {
-  kern_return_t result = ResetBootstrapPort();
-  if (result != KERN_SUCCESS) {
-    return;
-  }
-
-  result = ServiceCheckIn(receive_port_name);
-
-  if (result == KERN_SUCCESS) {
-    result = ReadMessages();
-
-    if (result == KERN_SUCCESS) {
-      // Inspect the task and write a minidump file.
-      bool wrote_minidump = InspectTask();
-
-      // Send acknowledgement to the crashed process that the inspection
-      // has finished.  It will then be able to cleanly exit.
-      // The return value is ignored because failure isn't fatal. If the process
-      // didn't get the message there's nothing we can do, and we still want to
-      // send the report.
-      SendAcknowledgement();
-
-      if (wrote_minidump) {
-        // Ask the user if he wants to upload the crash report to a server,
-        // and do so if he agrees.
-        LaunchReporter(
-            config_params_.GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
-            config_file_.GetFilePath());
-      } else {
-        fprintf(stderr, "Inspection of crashed process failed\n");
-      }
-
-      // Now that we're done reading messages, cleanup the service, but only
-      // if there was an actual exception
-      // Otherwise, it means the dump was generated on demand and the process
-      // lives on, and we might be needed again in the future.
-      if (exception_code_) {
-        ServiceCheckOut(receive_port_name);
-      }
-    } else {
-        PRINT_MACH_RESULT(result, "Inspector: WaitForMessage()");
-    }
-  }
-}
-
-//=============================================================================
-kern_return_t Inspector::ResetBootstrapPort() {
-  // A reasonable default, in case anything fails.
-  bootstrap_subset_port_ = bootstrap_port;
-
-  mach_port_t self_task = mach_task_self();
-
-  kern_return_t kr = task_get_bootstrap_port(self_task,
-                                             &bootstrap_subset_port_);
-  if (kr != KERN_SUCCESS) {
-    NSLog(@"ResetBootstrapPort: task_get_bootstrap_port failed: %s (%d)",
-          mach_error_string(kr), kr);
-    return kr;
-  }
-
-  mach_port_t bootstrap_parent_port;
-  kr = bootstrap_look_up(bootstrap_subset_port_,
-                         const_cast<char*>(BREAKPAD_BOOTSTRAP_PARENT_PORT),
-                         &bootstrap_parent_port);
-  if (kr != BOOTSTRAP_SUCCESS) {
-    NSLog(@"ResetBootstrapPort: bootstrap_look_up failed: %s (%d)",
-#if defined(MAC_OS_X_VERSION_10_5) && \
-    MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
-          bootstrap_strerror(kr),
-#else
-          mach_error_string(kr),
-#endif
-          kr);
-    return kr;
-  }
-
-  kr = task_set_bootstrap_port(self_task, bootstrap_parent_port);
-  if (kr != KERN_SUCCESS) {
-    NSLog(@"ResetBootstrapPort: task_set_bootstrap_port failed: %s (%d)",
-          mach_error_string(kr), kr);
-    return kr;
-  }
-
-  // Some things access the bootstrap port through this global variable
-  // instead of calling task_get_bootstrap_port.
-  bootstrap_port = bootstrap_parent_port;
-
-  return KERN_SUCCESS;
-}
-
-//=============================================================================
-kern_return_t Inspector::ServiceCheckIn(const char *receive_port_name) {
-  // We need to get the mach port representing this service, so we can
-  // get information from the crashed process.
-  kern_return_t kr = bootstrap_check_in(bootstrap_subset_port_,
-                                        (char*)receive_port_name,
-                                        &service_rcv_port_);
-
-  if (kr != KERN_SUCCESS) {
-#if VERBOSE
-    PRINT_MACH_RESULT(kr, "Inspector: bootstrap_check_in()");
-#endif
-  }
-
-  return kr;
-}
-
-//=============================================================================
-kern_return_t Inspector::ServiceCheckOut(const char *receive_port_name) {
-  // We're done receiving mach messages from the crashed process,
-  // so clean up a bit.
-  kern_return_t kr;
-
-  // DO NOT use mach_port_deallocate() here -- it will fail and the
-  // following bootstrap_register() will also fail leaving our service
-  // name hanging around forever (until reboot)
-  kr = mach_port_destroy(mach_task_self(), service_rcv_port_);
-
-  if (kr != KERN_SUCCESS) {
-    PRINT_MACH_RESULT(kr,
-      "Inspector: UNREGISTERING: service_rcv_port mach_port_deallocate()");
-    return kr;
-  }
-
-  // Unregister the service associated with the receive port.
-  kr = breakpad::BootstrapRegister(bootstrap_subset_port_,
-                                   (char*)receive_port_name,
-                                   MACH_PORT_NULL);
-
-  if (kr != KERN_SUCCESS) {
-    PRINT_MACH_RESULT(kr, "Inspector: UNREGISTERING: bootstrap_register()");
-  }
-
-  return kr;
-}
-
-//=============================================================================
-kern_return_t Inspector::ReadMessages() {
-  // Wait for an initial message from the crashed process containing basic
-  // information about the crash.
-  ReceivePort receive_port(service_rcv_port_);
-
-  MachReceiveMessage message;
-  kern_return_t result = receive_port.WaitForMessage(&message, 1000);
-
-  if (result == KERN_SUCCESS) {
-    InspectorInfo &info = (InspectorInfo &)*message.GetData();
-    exception_type_ = info.exception_type;
-    exception_code_ = info.exception_code;
-    exception_subcode_ = info.exception_subcode;
-
-#if VERBOSE
-    printf("message ID = %d\n", message.GetMessageID());
-#endif
-
-    remote_task_ = message.GetTranslatedPort(0);
-    crashing_thread_ = message.GetTranslatedPort(1);
-    handler_thread_ = message.GetTranslatedPort(2);
-    ack_port_ = message.GetTranslatedPort(3);
-
-#if VERBOSE
-    printf("exception_type = %d\n", exception_type_);
-    printf("exception_code = %d\n", exception_code_);
-    printf("exception_subcode = %d\n", exception_subcode_);
-    printf("remote_task = %d\n", remote_task_);
-    printf("crashing_thread = %d\n", crashing_thread_);
-    printf("handler_thread = %d\n", handler_thread_);
-    printf("ack_port_ = %d\n", ack_port_);
-    printf("parameter count = %d\n", info.parameter_count);
-#endif
-
-    // In certain situations where multiple crash requests come
-    // through quickly, we can end up with the mach IPC messages not
-    // coming through correctly.  Since we don't know what parameters
-    // we've missed, we can't do much besides abort the crash dump
-    // situation in this case.
-    unsigned int parameters_read = 0;
-    // The initial message contains the number of key value pairs that
-    // we are expected to read.
-    // Read each key/value pair, one mach message per key/value pair.
-    for (unsigned int i = 0; i < info.parameter_count; ++i) {
-      MachReceiveMessage parameter_message;
-      result = receive_port.WaitForMessage(&parameter_message, 1000);
-
-      if(result == KERN_SUCCESS) {
-        KeyValueMessageData &key_value_data =
-          (KeyValueMessageData&)*parameter_message.GetData();
-        // If we get a blank key, make sure we don't increment the
-        // parameter count; in some cases (notably on-demand generation
-        // many times in a short period of time) caused the Mach IPC
-        // messages to not come through correctly.
-        if (strlen(key_value_data.key) == 0) {
-          continue;
-        }
-        parameters_read++;
-
-        config_params_.SetKeyValue(key_value_data.key, key_value_data.value);
-      } else {
-        PRINT_MACH_RESULT(result, "Inspector: key/value message");
-        break;
-      }
-    }
-    if (parameters_read != info.parameter_count) {
-      return KERN_FAILURE;
-    }
-  }
-
-  return result;
-}
-
-//=============================================================================
-bool Inspector::InspectTask() {
-  // keep the task quiet while we're looking at it
-  task_suspend(remote_task_);
-
-  NSString *minidumpDir;
-
-  const char *minidumpDirectory =
-    config_params_.GetValueForKey(BREAKPAD_DUMP_DIRECTORY);
-
-  // If the client app has not specified a minidump directory,
-  // use a default of Library/<kDefaultLibrarySubdirectory>/<Product Name>
-  if (!minidumpDirectory || 0 == strlen(minidumpDirectory)) {
-    NSArray *libraryDirectories =
-      NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
-                                          NSUserDomainMask,
-                                          YES);
-
-    NSString *applicationSupportDirectory =
-        [libraryDirectories objectAtIndex:0];
-    NSString *library_subdirectory = [NSString
-        stringWithUTF8String:kDefaultLibrarySubdirectory];
-    NSString *breakpad_product = [NSString
-        stringWithUTF8String:config_params_.GetValueForKey(BREAKPAD_PRODUCT)];
-
-    NSArray *path_components = [NSArray
-        arrayWithObjects:applicationSupportDirectory,
-                         library_subdirectory,
-                         breakpad_product,
-                         nil];
-
-    minidumpDir = [NSString pathWithComponents:path_components];
-  } else {
-    minidumpDir = [[NSString stringWithUTF8String:minidumpDirectory]
-                    stringByExpandingTildeInPath];
-  }
-
-  MinidumpLocation minidumpLocation(minidumpDir);
-
-  // Obscure bug alert:
-  // Don't use [NSString stringWithFormat] to build up the path here since it
-  // assumes system encoding and in RTL locales will prepend an LTR override
-  // character for paths beginning with '/' which fileSystemRepresentation does
-  // not remove. Filed as rdar://6889706 .
-  NSString *path_ns = [NSString
-      stringWithUTF8String:minidumpLocation.GetPath()];
-  NSString *pathid_ns = [NSString
-      stringWithUTF8String:minidumpLocation.GetID()];
-  NSString *minidumpPath = [path_ns stringByAppendingPathComponent:pathid_ns];
-  minidumpPath = [minidumpPath
-      stringByAppendingPathExtension:@"dmp"];
-
-  config_file_.WriteFile( 0,
-                          &config_params_,
-                          minidumpLocation.GetPath(),
-                          minidumpLocation.GetID());
-
-
-  MinidumpGenerator generator(remote_task_, handler_thread_);
-
-  if (exception_type_ && exception_code_) {
-    generator.SetExceptionInformation(exception_type_,
-                                      exception_code_,
-                                      exception_subcode_,
-                                      crashing_thread_);
-  }
-
-
-  bool result = generator.Write([minidumpPath fileSystemRepresentation]);
-
-  // let the task continue
-  task_resume(remote_task_);
-
-  return result;
-}
-
-//=============================================================================
-// The crashed task needs to be told that the inspection has finished.
-// It will wait on a mach port (with timeout) until we send acknowledgement.
-kern_return_t Inspector::SendAcknowledgement() {
-  if (ack_port_ != MACH_PORT_DEAD) {
-    MachPortSender sender(ack_port_);
-    MachSendMessage ack_message(kMsgType_InspectorAcknowledgement);
-
-    kern_return_t result = sender.SendMessage(ack_message, 2000);
-
-#if VERBOSE
-    PRINT_MACH_RESULT(result, "Inspector: sent acknowledgement");
-#endif
-
-    return result;
-  }
-
-  return KERN_INVALID_NAME;
-}
-
-} // namespace google_breakpad
-
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/crash_generation/InspectorMain.mm
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Main driver for Inspector
-
-#import "client/mac/crash_generation/Inspector.h"
-#import <Cocoa/Cocoa.h>
-
-namespace google_breakpad {
-
-//=============================================================================
-extern "C" {
-
-int main(int argc, char *const argv[]) {
-#if DEBUG
-  // Since we're launched on-demand, this is necessary to see debugging
-  // output in the console window.
-  freopen("/dev/console", "w", stdout);
-  freopen("/dev/console", "w", stderr);
-#endif
-
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
-  if (argc != 2) {
-    exit(0);
-  }
-  // Our first command-line argument contains the name of the service
-  // that we're providing.
-  google_breakpad::Inspector inspector;
-  inspector.Inspect(argv[1]);
-
-  [pool release];
-
-  return 0;
-}
-
-} // extern "C"
-
-} // namespace google_breakpad
deleted file mode 100644
index f45a58d71d01b554fbf4db03f4805f2123797e18..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/handler/minidump_tests32-Info.plist
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.google.breakpad.minidump_tests32</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/handler/minidump_tests64-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.google.breakpad.minidump_tests64</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>CSResourcesFileMapped</key>
-	<string>yes</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/handler/obj-cTestCases-Info.plist
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundlePackageType</key>
-	<string>BNDL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/Breakpad.xib
+++ /dev/null
@@ -1,1140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">10F569</string>
-		<string key="IBDocument.InterfaceBuilderVersion">762</string>
-		<string key="IBDocument.AppKitVersion">1038.29</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-		</object>
-		<reference key="IBDocument.PluginDependencies" ref="0"/>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<reference key="dict.sortedKeys" ref="0"/>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="504246249">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSCustomObject" id="273934324">
-				<string key="NSClassName">Reporter</string>
-			</object>
-			<object class="NSCustomObject" id="388635980">
-				<string key="NSClassName">FirstResponder</string>
-			</object>
-			<object class="NSCustomObject" id="220995958">
-				<string key="NSClassName">NSApplication</string>
-			</object>
-			<object class="NSWindowTemplate" id="762998835">
-				<int key="NSWindowStyleMask">1</int>
-				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{72, 251}, {490, 489}}</string>
-				<int key="NSWTFlags">536871936</int>
-				<string key="NSWindowTitle"/>
-				<string key="NSWindowClass">NSWindow</string>
-				<nil key="NSViewClass"/>
-				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
-				<string key="NSWindowContentMinSize">{72, 5}</string>
-				<object class="NSView" key="NSWindowView" id="197525436">
-					<nil key="NSNextResponder"/>
-					<int key="NSvFlags">264</int>
-					<object class="NSMutableArray" key="NSSubviews">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSBox" id="469837363">
-							<reference key="NSNextResponder" ref="197525436"/>
-							<int key="NSvFlags">272</int>
-							<object class="NSMutableArray" key="NSSubviews">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSView" id="966817352">
-									<reference key="NSNextResponder" ref="469837363"/>
-									<int key="NSvFlags">256</int>
-									<object class="NSMutableArray" key="NSSubviews">
-										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSTextField" id="997378142">
-											<reference key="NSNextResponder" ref="966817352"/>
-											<int key="NSvFlags">290</int>
-											<string key="NSFrame">{{17, 36}, {456, 70}}</string>
-											<reference key="NSSuperview" ref="966817352"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="509794736">
-												<int key="NSCellFlags">67239424</int>
-												<int key="NSCellFlags2">272760832</int>
-												<string key="NSContents">Providing your email address is optional and will allow us contact you in case we need more details. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed arcu urna, pulvinar sit amet, tincidunt ac, fermentum ut, ligula. Quisque mi. Duis lectus. Vestibulum velit. Morbi turpis. Nunc at diam consectetur turpis volutpat tristique. Donec quis diam. Suspendisse scelerisque.</string>
-												<object class="NSFont" key="NSSupport" id="26">
-													<string key="NSName">LucidaGrande</string>
-													<double key="NSSize">11</double>
-													<int key="NSfFlags">3100</int>
-												</object>
-												<reference key="NSControlView" ref="997378142"/>
-												<object class="NSColor" key="NSBackgroundColor" id="420457920">
-													<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" id="800255527">
-													<int key="NSColorSpace">6</int>
-													<string key="NSCatalogName">System</string>
-													<string key="NSColorName">controlTextColor</string>
-													<object class="NSColor" key="NSColor" id="908763363">
-														<int key="NSColorSpace">3</int>
-														<bytes key="NSWhite">MAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<object class="NSTextField" id="975305147">
-											<reference key="NSNextResponder" ref="966817352"/>
-											<int key="NSvFlags">290</int>
-											<string key="NSFrame">{{87, 9}, {195, 19}}</string>
-											<reference key="NSSuperview" ref="966817352"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="592393645">
-												<int key="NSCellFlags">-1804468671</int>
-												<int key="NSCellFlags2">272761856</int>
-												<string key="NSContents"/>
-												<reference key="NSSupport" ref="26"/>
-												<string key="NSPlaceholderString">optional</string>
-												<reference key="NSControlView" ref="975305147"/>
-												<bool key="NSDrawsBackground">YES</bool>
-												<object class="NSColor" key="NSBackgroundColor" id="128478752">
-													<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" id="734930533">
-													<int key="NSColorSpace">6</int>
-													<string key="NSCatalogName">System</string>
-													<string key="NSColorName">textColor</string>
-													<reference key="NSColor" ref="908763363"/>
-												</object>
-											</object>
-										</object>
-										<object class="NSTextField" id="268211031">
-											<reference key="NSNextResponder" ref="966817352"/>
-											<int key="NSvFlags">292</int>
-											<string key="NSFrame">{{17, 11}, {65, 14}}</string>
-											<reference key="NSSuperview" ref="966817352"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="461570326">
-												<int key="NSCellFlags">68288064</int>
-												<int key="NSCellFlags2">71435264</int>
-												<string key="NSContents">EmailLabel:</string>
-												<reference key="NSSupport" ref="26"/>
-												<reference key="NSControlView" ref="268211031"/>
-												<reference key="NSBackgroundColor" ref="420457920"/>
-												<reference key="NSTextColor" ref="800255527"/>
-											</object>
-										</object>
-										<object class="NSButton" id="538303250">
-											<reference key="NSNextResponder" ref="966817352"/>
-											<int key="NSvFlags">289</int>
-											<string key="NSFrame">{{456, 10}, {16, 17}}</string>
-											<reference key="NSSuperview" ref="966817352"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSButtonCell" key="NSCell" id="778004767">
-												<int key="NSCellFlags">-2080244224</int>
-												<int key="NSCellFlags2">0</int>
-												<string key="NSContents">Privacy Policy</string>
-												<object class="NSFont" key="NSSupport" id="222882491">
-													<string key="NSName">LucidaGrande</string>
-													<double key="NSSize">13</double>
-													<int key="NSfFlags">1044</int>
-												</object>
-												<reference key="NSControlView" ref="538303250"/>
-												<int key="NSButtonFlags">-2040250113</int>
-												<int key="NSButtonFlags2">36</int>
-												<object class="NSCustomResource" key="NSNormalImage">
-													<string key="NSClassName">NSImage</string>
-													<string key="NSResourceName">goArrow</string>
-												</object>
-												<string key="NSAlternateContents"/>
-												<string key="NSKeyEquivalent"/>
-												<int key="NSPeriodicDelay">400</int>
-												<int key="NSPeriodicInterval">75</int>
-											</object>
-										</object>
-										<object class="NSTextField" id="655227981">
-											<reference key="NSNextResponder" ref="966817352"/>
-											<int key="NSvFlags">289</int>
-											<string key="NSFrame">{{355, 11}, {100, 14}}</string>
-											<reference key="NSSuperview" ref="966817352"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="1012850565">
-												<int key="NSCellFlags">68288064</int>
-												<int key="NSCellFlags2">4326400</int>
-												<string key="NSContents">PrivacyPolicyLabel</string>
-												<reference key="NSSupport" ref="26"/>
-												<reference key="NSControlView" ref="655227981"/>
-												<reference key="NSBackgroundColor" ref="420457920"/>
-												<reference key="NSTextColor" ref="800255527"/>
-											</object>
-										</object>
-									</object>
-									<string key="NSFrameSize">{490, 114}</string>
-									<reference key="NSSuperview" ref="469837363"/>
-								</object>
-							</object>
-							<string key="NSFrame">{{0, 51}, {490, 114}}</string>
-							<reference key="NSSuperview" ref="197525436"/>
-							<string key="NSOffsets">{0, 0}</string>
-							<object class="NSTextFieldCell" key="NSTitleCell">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">Title</string>
-								<object class="NSFont" key="NSSupport" id="668643277">
-									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">11</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<reference key="NSBackgroundColor" ref="128478752"/>
-								<object class="NSColor" key="NSTextColor">
-									<int key="NSColorSpace">3</int>
-									<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
-								</object>
-							</object>
-							<reference key="NSContentView" ref="966817352"/>
-							<int key="NSBorderType">0</int>
-							<int key="NSBoxType">3</int>
-							<int key="NSTitlePosition">0</int>
-							<bool key="NSTransparent">NO</bool>
-						</object>
-						<object class="NSButton" id="219938755">
-							<reference key="NSNextResponder" ref="197525436"/>
-							<int key="NSvFlags">289</int>
-							<string key="NSFrame">{{330, 12}, {146, 32}}</string>
-							<reference key="NSSuperview" ref="197525436"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="733475259">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">SendReportLabel</string>
-								<reference key="NSSupport" ref="222882491"/>
-								<reference key="NSControlView" ref="219938755"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<reference key="NSAlternateImage" ref="222882491"/>
-								<string key="NSAlternateContents"/>
-								<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="409721323">
-							<reference key="NSNextResponder" ref="197525436"/>
-							<int key="NSvFlags">289</int>
-							<string key="NSFrame">{{214, 12}, {116, 32}}</string>
-							<reference key="NSSuperview" ref="197525436"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="586160416">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">CancelLabel</string>
-								<reference key="NSSupport" ref="222882491"/>
-								<reference key="NSControlView" ref="409721323"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<reference key="NSAlternateImage" ref="222882491"/>
-								<string key="NSAlternateContents"/>
-								<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSBox" id="468151514">
-							<reference key="NSNextResponder" ref="197525436"/>
-							<int key="NSvFlags">256</int>
-							<object class="NSMutableArray" key="NSSubviews">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSView" id="1059038623">
-									<reference key="NSNextResponder" ref="468151514"/>
-									<int key="NSvFlags">256</int>
-									<object class="NSMutableArray" key="NSSubviews">
-										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSTextField" id="375247105">
-											<reference key="NSNextResponder" ref="1059038623"/>
-											<int key="NSvFlags">266</int>
-											<string key="NSFrame">{{17, 83}, {456, 154}}</string>
-											<reference key="NSSuperview" ref="1059038623"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="188082030">
-												<int key="NSCellFlags">67239424</int>
-												<int key="NSCellFlags2">272760832</int>
-												<string type="base64-UTF8" key="NSContents">VGhlIHN5c3RlbSBhbmQgb3RoZXIgYXBwbGljYXRpb25zIGhhdmUgbm90IGJlZW4gYWZmZWN0ZWQuIEEg
-cmVwb3J0IGhhcyBiZWVuIGNyZWF0ZWQgdGhhdCB5b3UgY2FuIHNlbmQgdG8gPFJlYWxseSBMb25nIENv
-bXBhbnkgTmFtZT4gdG8gaGVscCBpZGVudGlmeSB0aGUgcHJvYmxlbS4gTG9yZW0gaXBzdW0gZG9sb3Ig
-c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gU2VkIGFyY3UgdXJuYSwgcHVsdmlu
-YXIgc2l0IGFtZXQsIHRpbmNpZHVudCBhYywgZmVybWVudHVtIHV0LCBsaWd1bGEuIFF1aXNxdWUgbWku
-IER1aXMgbGVjdHVzLiBWZXN0aWJ1bHVtIHZlbGl0LiBNb3JiaSB0dXJwaXMuIE51bmMgYXQgZGlhbSBj
-b25zZWN0ZXR1ciB0dXJwaXMgdm9sdXRwYXQgdHJpc3RpcXVlLiBEb25lYyBxdWlzIGRpYW0uIFN1c3Bl
-bmRpc3NlIHNjZWxlcmlzcXVlLiBRdWlzcXVlIHB1bHZpbmFyIG1pIGlkIHB1cnVzLiBFdGlhbSB2aXRh
-ZSB0dXJwaXMgdml0YWUgbmVxdWUgcG9ydGEgY29uZ3VlLgoKUGxlYXNlIGhlbHAgdXMgZml4IHRoZSBw
-cm9ibGVtIGJ5IGRlc2NyaWJpbmcgd2hhdCBoYXBwZW5lZCBiZWZvcmUgdGhlIGNyYXNoLiBMb3JlbSBp
-cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBTZWQgYXJjdSB1
-cm5hLCBwdWx2aW5hciBzaXQgYW1ldCwgdGluY2lkdW50IGFjLCBmZXJtZW50dW0gdXQsIGxpZ3VsYS4g
-UXVpc3F1ZSBtaS4gRHVpcyBsZWN0dXMuA</string>
-												<reference key="NSSupport" ref="26"/>
-												<reference key="NSControlView" ref="375247105"/>
-												<reference key="NSBackgroundColor" ref="420457920"/>
-												<reference key="NSTextColor" ref="800255527"/>
-											</object>
-										</object>
-										<object class="NSTextField" id="996404163">
-											<reference key="NSNextResponder" ref="1059038623"/>
-											<int key="NSvFlags">274</int>
-											<string key="NSFrame">{{20, 14}, {450, 61}}</string>
-											<reference key="NSSuperview" ref="1059038623"/>
-											<bool key="NSEnabled">YES</bool>
-											<object class="NSTextFieldCell" key="NSCell" id="242564194">
-												<int key="NSCellFlags">341966337</int>
-												<int key="NSCellFlags2">272760832</int>
-												<string key="NSContents">Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 1 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 2 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 3 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 Line 4 </string>
-												<reference key="NSSupport" ref="26"/>
-												<reference key="NSControlView" ref="996404163"/>
-												<bool key="NSDrawsBackground">YES</bool>
-												<reference key="NSBackgroundColor" ref="128478752"/>
-												<reference key="NSTextColor" ref="734930533"/>
-											</object>
-										</object>
-										<object class="NSBox" id="667608859">
-											<reference key="NSNextResponder" ref="1059038623"/>
-											<int key="NSvFlags">256</int>
-											<object class="NSMutableArray" key="NSSubviews">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<object class="NSView" id="971021844">
-													<reference key="NSNextResponder" ref="667608859"/>
-													<int key="NSvFlags">256</int>
-													<object class="NSMutableArray" key="NSSubviews">
-														<bool key="EncodedWithXMLCoder">YES</bool>
-														<object class="NSTextField" id="1032334641">
-															<reference key="NSNextResponder" ref="971021844"/>
-															<int key="NSvFlags">266</int>
-															<string key="NSFrame">{{85, 10}, {381, 54}}</string>
-															<reference key="NSSuperview" ref="971021844"/>
-															<bool key="NSEnabled">YES</bool>
-															<object class="NSTextFieldCell" key="NSCell" id="316557784">
-																<int key="NSCellFlags">67239424</int>
-																<int key="NSCellFlags2">272629760</int>
-																<string key="NSContents">The application &lt;Really Long App Name Here&gt; has quit unexpectedly.</string>
-																<object class="NSFont" key="NSSupport">
-																	<string key="NSName">LucidaGrande-Bold</string>
-																	<double key="NSSize">14</double>
-																	<int key="NSfFlags">16</int>
-																</object>
-																<reference key="NSControlView" ref="1032334641"/>
-																<reference key="NSBackgroundColor" ref="420457920"/>
-																<reference key="NSTextColor" ref="800255527"/>
-															</object>
-														</object>
-														<object class="NSImageView" id="594334723">
-															<reference key="NSNextResponder" ref="971021844"/>
-															<int key="NSvFlags">268</int>
-															<object class="NSMutableSet" key="NSDragTypes">
-																<bool key="EncodedWithXMLCoder">YES</bool>
-																<object class="NSArray" key="set.sortedObjects">
-																	<bool key="EncodedWithXMLCoder">YES</bool>
-																	<string>Apple PDF pasteboard type</string>
-																	<string>Apple PICT pasteboard type</string>
-																	<string>Apple PNG pasteboard type</string>
-																	<string>NSFilenamesPboardType</string>
-																	<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
-																	<string>NeXT TIFF v4.0 pasteboard type</string>
-																</object>
-															</object>
-															<string key="NSFrame">{{16, 0}, {64, 64}}</string>
-															<reference key="NSSuperview" ref="971021844"/>
-															<bool key="NSEnabled">YES</bool>
-															<object class="NSImageCell" key="NSCell" id="465445685">
-																<int key="NSCellFlags">130560</int>
-																<int key="NSCellFlags2">33554432</int>
-																<object class="NSCustomResource" key="NSContents">
-																	<string key="NSClassName">NSImage</string>
-																	<string key="NSResourceName">NSApplicationIcon</string>
-																</object>
-																<int key="NSAlign">0</int>
-																<int key="NSScale">0</int>
-																<int key="NSStyle">0</int>
-																<bool key="NSAnimates">NO</bool>
-															</object>
-															<bool key="NSEditable">YES</bool>
-														</object>
-													</object>
-													<string key="NSFrameSize">{482, 70}</string>
-													<reference key="NSSuperview" ref="667608859"/>
-												</object>
-											</object>
-											<string key="NSFrame">{{4, 245}, {482, 70}}</string>
-											<reference key="NSSuperview" ref="1059038623"/>
-											<string key="NSOffsets">{0, 0}</string>
-											<object class="NSTextFieldCell" key="NSTitleCell">
-												<int key="NSCellFlags">67239424</int>
-												<int key="NSCellFlags2">0</int>
-												<string key="NSContents">Title</string>
-												<reference key="NSSupport" ref="668643277"/>
-												<reference key="NSBackgroundColor" ref="128478752"/>
-												<object class="NSColor" key="NSTextColor">
-													<int key="NSColorSpace">3</int>
-													<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
-												</object>
-											</object>
-											<reference key="NSContentView" ref="971021844"/>
-											<int key="NSBorderType">0</int>
-											<int key="NSBoxType">3</int>
-											<int key="NSTitlePosition">0</int>
-											<bool key="NSTransparent">NO</bool>
-										</object>
-									</object>
-									<string key="NSFrameSize">{490, 325}</string>
-									<reference key="NSSuperview" ref="468151514"/>
-								</object>
-							</object>
-							<string key="NSFrame">{{0, 160}, {490, 325}}</string>
-							<reference key="NSSuperview" ref="197525436"/>
-							<string key="NSOffsets">{0, 0}</string>
-							<object class="NSTextFieldCell" key="NSTitleCell">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">Title</string>
-								<reference key="NSSupport" ref="668643277"/>
-								<reference key="NSBackgroundColor" ref="128478752"/>
-								<object class="NSColor" key="NSTextColor">
-									<int key="NSColorSpace">3</int>
-									<bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
-								</object>
-							</object>
-							<reference key="NSContentView" ref="1059038623"/>
-							<int key="NSBorderType">0</int>
-							<int key="NSBoxType">3</int>
-							<int key="NSTitlePosition">0</int>
-							<bool key="NSTransparent">NO</bool>
-						</object>
-						<object class="NSTextField" id="149448677">
-							<reference key="NSNextResponder" ref="197525436"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{17, 20}, {163, 14}}</string>
-							<reference key="NSSuperview" ref="197525436"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSTextFieldCell" key="NSCell" id="690832321">
-								<int key="NSCellFlags">68288064</int>
-								<int key="NSCellFlags2">272630784</int>
-								<string key="NSContents">xx seconds.</string>
-								<reference key="NSSupport" ref="668643277"/>
-								<reference key="NSControlView" ref="149448677"/>
-								<reference key="NSBackgroundColor" ref="420457920"/>
-								<reference key="NSTextColor" ref="800255527"/>
-							</object>
-						</object>
-					</object>
-					<string key="NSFrameSize">{490, 489}</string>
-				</object>
-				<string key="NSScreenRect">{{0, 0}, {2560, 1578}}</string>
-				<string key="NSMinSize">{72, 27}</string>
-				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
-			</object>
-			<object class="NSUserDefaultsController" id="626548788">
-				<bool key="NSSharedInstance">YES</bool>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">sendReport:</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="219938755"/>
-					</object>
-					<int key="connectionID">45</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">cancel:</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="409721323"/>
-					</object>
-					<int key="connectionID">46</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">showPrivacyPolicy:</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="538303250"/>
-					</object>
-					<int key="connectionID">53</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBBindingConnection" key="connection">
-						<string key="label">value: emailValue</string>
-						<reference key="source" ref="975305147"/>
-						<reference key="destination" ref="273934324"/>
-						<object class="NSNibBindingConnector" key="connector">
-							<reference key="NSSource" ref="975305147"/>
-							<reference key="NSDestination" ref="273934324"/>
-							<string key="NSLabel">value: emailValue</string>
-							<string key="NSBinding">value</string>
-							<string key="NSKeyPath">emailValue</string>
-							<object class="NSDictionary" key="NSOptions">
-								<string key="NS.key.0">NSNullPlaceholder</string>
-								<string key="NS.object.0">optional</string>
-							</object>
-							<int key="NSNibBindingConnectorVersion">2</int>
-						</object>
-					</object>
-					<int key="connectionID">90</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">initialFirstResponder</string>
-						<reference key="source" ref="762998835"/>
-						<reference key="destination" ref="219938755"/>
-					</object>
-					<int key="connectionID">91</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBBindingConnection" key="connection">
-						<string key="label">value: commentsValue</string>
-						<reference key="source" ref="996404163"/>
-						<reference key="destination" ref="273934324"/>
-						<object class="NSNibBindingConnector" key="connector">
-							<reference key="NSSource" ref="996404163"/>
-							<reference key="NSDestination" ref="273934324"/>
-							<string key="NSLabel">value: commentsValue</string>
-							<string key="NSBinding">value</string>
-							<string key="NSKeyPath">commentsValue</string>
-							<object class="NSDictionary" key="NSOptions">
-								<string key="NS.key.0">NSNullPlaceholder</string>
-								<string key="NS.object.0">optional comments</string>
-							</object>
-							<int key="NSNibBindingConnectorVersion">2</int>
-						</object>
-					</object>
-					<int key="connectionID">124</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">nextKeyView</string>
-						<reference key="source" ref="975305147"/>
-						<reference key="destination" ref="219938755"/>
-					</object>
-					<int key="connectionID">125</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">nextKeyView</string>
-						<reference key="source" ref="996404163"/>
-						<reference key="destination" ref="975305147"/>
-					</object>
-					<int key="connectionID">126</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">nextKeyView</string>
-						<reference key="source" ref="219938755"/>
-						<reference key="destination" ref="996404163"/>
-					</object>
-					<int key="connectionID">127</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="996404163"/>
-						<reference key="destination" ref="273934324"/>
-					</object>
-					<int key="connectionID">128</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">alertWindow_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="762998835"/>
-					</object>
-					<int key="connectionID">142</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">preEmailBox_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="468151514"/>
-					</object>
-					<int key="connectionID">150</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">headerBox_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="667608859"/>
-					</object>
-					<int key="connectionID">151</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">emailSectionBox_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="469837363"/>
-					</object>
-					<int key="connectionID">152</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">privacyLinkLabel_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="655227981"/>
-					</object>
-					<int key="connectionID">153</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">commentMessage_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="375247105"/>
-					</object>
-					<int key="connectionID">154</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">dialogTitle_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="1032334641"/>
-					</object>
-					<int key="connectionID">155</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">emailLabel_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="268211031"/>
-					</object>
-					<int key="connectionID">156</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">cancelButton_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="409721323"/>
-					</object>
-					<int key="connectionID">158</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">sendButton_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="219938755"/>
-					</object>
-					<int key="connectionID">159</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">emailEntryField_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="975305147"/>
-					</object>
-					<int key="connectionID">161</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">privacyLinkArrow_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="538303250"/>
-					</object>
-					<int key="connectionID">162</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">emailMessage_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="997378142"/>
-					</object>
-					<int key="connectionID">163</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">commentsEntryField_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="996404163"/>
-					</object>
-					<int key="connectionID">176</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBBindingConnection" key="connection">
-						<string key="label">value: countdownMessage</string>
-						<reference key="source" ref="149448677"/>
-						<reference key="destination" ref="273934324"/>
-						<object class="NSNibBindingConnector" key="connector">
-							<reference key="NSSource" ref="149448677"/>
-							<reference key="NSDestination" ref="273934324"/>
-							<string key="NSLabel">value: countdownMessage</string>
-							<string key="NSBinding">value</string>
-							<string key="NSKeyPath">countdownMessage</string>
-							<int key="NSNibBindingConnectorVersion">2</int>
-						</object>
-					</object>
-					<int key="connectionID">194</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">countdownLabel_</string>
-						<reference key="source" ref="273934324"/>
-						<reference key="destination" ref="149448677"/>
-					</object>
-					<int key="connectionID">208</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="504246249"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="273934324"/>
-						<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="388635980"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">First Responder</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-3</int>
-						<reference key="object" ref="220995958"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Application</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">1</int>
-						<reference key="object" ref="762998835"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="197525436"/>
-						</object>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Window</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="197525436"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="219938755"/>
-							<reference ref="409721323"/>
-							<reference ref="469837363"/>
-							<reference ref="468151514"/>
-							<reference ref="149448677"/>
-						</object>
-						<reference key="parent" ref="762998835"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">12</int>
-						<reference key="object" ref="219938755"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="733475259"/>
-						</object>
-						<reference key="parent" ref="197525436"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">14</int>
-						<reference key="object" ref="409721323"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="586160416"/>
-						</object>
-						<reference key="parent" ref="197525436"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">132</int>
-						<reference key="object" ref="469837363"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="997378142"/>
-							<reference ref="975305147"/>
-							<reference ref="268211031"/>
-							<reference ref="538303250"/>
-							<reference ref="655227981"/>
-						</object>
-						<reference key="parent" ref="197525436"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">145</int>
-						<reference key="object" ref="468151514"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="375247105"/>
-							<reference ref="996404163"/>
-							<reference ref="667608859"/>
-						</object>
-						<reference key="parent" ref="197525436"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">189</int>
-						<reference key="object" ref="149448677"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="690832321"/>
-						</object>
-						<reference key="parent" ref="197525436"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">191</int>
-						<reference key="object" ref="626548788"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Shared User Defaults Controller</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">210</int>
-						<reference key="object" ref="733475259"/>
-						<reference key="parent" ref="219938755"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">211</int>
-						<reference key="object" ref="586160416"/>
-						<reference key="parent" ref="409721323"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">221</int>
-						<reference key="object" ref="690832321"/>
-						<reference key="parent" ref="149448677"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">58</int>
-						<reference key="object" ref="997378142"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="509794736"/>
-						</object>
-						<reference key="parent" ref="469837363"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">215</int>
-						<reference key="object" ref="509794736"/>
-						<reference key="parent" ref="997378142"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">18</int>
-						<reference key="object" ref="975305147"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="592393645"/>
-						</object>
-						<reference key="parent" ref="469837363"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">212</int>
-						<reference key="object" ref="592393645"/>
-						<reference key="parent" ref="975305147"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">20</int>
-						<reference key="object" ref="268211031"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="461570326"/>
-						</object>
-						<reference key="parent" ref="469837363"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">213</int>
-						<reference key="object" ref="461570326"/>
-						<reference key="parent" ref="268211031"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">48</int>
-						<reference key="object" ref="538303250"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="778004767"/>
-						</object>
-						<reference key="parent" ref="469837363"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">214</int>
-						<reference key="object" ref="778004767"/>
-						<reference key="parent" ref="538303250"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">66</int>
-						<reference key="object" ref="655227981"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1012850565"/>
-						</object>
-						<reference key="parent" ref="469837363"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">216</int>
-						<reference key="object" ref="1012850565"/>
-						<reference key="parent" ref="655227981"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">8</int>
-						<reference key="object" ref="375247105"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="188082030"/>
-						</object>
-						<reference key="parent" ref="468151514"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">217</int>
-						<reference key="object" ref="188082030"/>
-						<reference key="parent" ref="375247105"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">116</int>
-						<reference key="object" ref="996404163"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="242564194"/>
-						</object>
-						<reference key="parent" ref="468151514"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">218</int>
-						<reference key="object" ref="242564194"/>
-						<reference key="parent" ref="996404163"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">147</int>
-						<reference key="object" ref="667608859"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1032334641"/>
-							<reference ref="594334723"/>
-						</object>
-						<reference key="parent" ref="468151514"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">3</int>
-						<reference key="object" ref="1032334641"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="316557784"/>
-						</object>
-						<reference key="parent" ref="667608859"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">219</int>
-						<reference key="object" ref="316557784"/>
-						<reference key="parent" ref="1032334641"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">6</int>
-						<reference key="object" ref="594334723"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="465445685"/>
-						</object>
-						<reference key="parent" ref="667608859"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">220</int>
-						<reference key="object" ref="465445685"/>
-						<reference key="parent" ref="594334723"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-3.ImportedFromIB2</string>
-					<string>1.IBEditorWindowLastContentRect</string>
-					<string>1.IBWindowTemplateEditedContentRect</string>
-					<string>1.ImportedFromIB2</string>
-					<string>1.windowTemplate.hasMinSize</string>
-					<string>1.windowTemplate.minSize</string>
-					<string>116.CustomClassName</string>
-					<string>116.ImportedFromIB2</string>
-					<string>12.ImportedFromIB2</string>
-					<string>132.ImportedFromIB2</string>
-					<string>14.ImportedFromIB2</string>
-					<string>145.ImportedFromIB2</string>
-					<string>147.ImportedFromIB2</string>
-					<string>18.CustomClassName</string>
-					<string>18.ImportedFromIB2</string>
-					<string>189.ImportedFromIB2</string>
-					<string>191.ImportedFromIB2</string>
-					<string>2.ImportedFromIB2</string>
-					<string>20.ImportedFromIB2</string>
-					<string>3.ImportedFromIB2</string>
-					<string>48.ImportedFromIB2</string>
-					<string>58.ImportedFromIB2</string>
-					<string>6.ImportedFromIB2</string>
-					<string>66.ImportedFromIB2</string>
-					<string>8.ImportedFromIB2</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<boolean value="YES"/>
-					<string>{{0, 656}, {490, 489}}</string>
-					<string>{{0, 656}, {490, 489}}</string>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<string>{72, 5}</string>
-					<string>LengthLimitingTextField</string>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<string>LengthLimitingTextField</string>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">221</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">LengthLimitingTextField</string>
-					<string key="superclassName">NSTextField</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">Reporter</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>cancel:</string>
-							<string>sendReport:</string>
-							<string>showPrivacyPolicy:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>alertWindow_</string>
-							<string>cancelButton_</string>
-							<string>commentMessage_</string>
-							<string>commentsEntryField_</string>
-							<string>countdownLabel_</string>
-							<string>dialogTitle_</string>
-							<string>emailEntryField_</string>
-							<string>emailLabel_</string>
-							<string>emailMessage_</string>
-							<string>emailSectionBox_</string>
-							<string>headerBox_</string>
-							<string>preEmailBox_</string>
-							<string>privacyLinkArrow_</string>
-							<string>privacyLinkLabel_</string>
-							<string>sendButton_</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>NSWindow</string>
-							<string>NSButton</string>
-							<string>NSTextField</string>
-							<string>LengthLimitingTextField</string>
-							<string>NSTextField</string>
-							<string>NSTextField</string>
-							<string>LengthLimitingTextField</string>
-							<string>NSTextField</string>
-							<string>NSTextField</string>
-							<string>NSBox</string>
-							<string>NSBox</string>
-							<string>NSBox</string>
-							<string>NSView</string>
-							<string>NSTextField</string>
-							<string>NSButton</string>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-			</object>
-		</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="1050" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
-			<integer value="3000" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../Breakpad.xcodeproj</string>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>NSApplicationIcon</string>
-				<string>goArrow</string>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>{128, 128}</string>
-				<string>{128, 128}</string>
-			</object>
-		</object>
-	</data>
-</archive>
deleted file mode 100644
index 65d161818a12f785bc58a885664ac859f1e755ff..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 5f1cc82698fc553f85e4fd1bbe6bfc07df43b6c7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/ReporterIcon.graffle
+++ /dev/null
@@ -1,2489 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>ActiveLayerIndex</key>
-	<integer>0</integer>
-	<key>ApplicationVersion</key>
-	<array>
-		<string>com.omnigroup.OmniGrafflePro</string>
-		<string>137.6.0.106738</string>
-	</array>
-	<key>AutoAdjust</key>
-	<false/>
-	<key>BackgroundGraphic</key>
-	<dict>
-		<key>Bounds</key>
-		<string>{{0, 0}, {512, 512}}</string>
-		<key>Class</key>
-		<string>SolidGraphic</string>
-		<key>FontInfo</key>
-		<dict>
-			<key>Font</key>
-			<string>CalisMTBol</string>
-			<key>Size</key>
-			<real>112</real>
-		</dict>
-		<key>ID</key>
-		<integer>2</integer>
-		<key>Style</key>
-		<dict>
-			<key>fill</key>
-			<dict>
-				<key>Color</key>
-				<dict>
-					<key>a</key>
-					<string>0</string>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0.852018</string>
-					<key>r</key>
-					<string>0.998962</string>
-				</dict>
-			</dict>
-			<key>shadow</key>
-			<dict>
-				<key>Draws</key>
-				<string>NO</string>
-			</dict>
-			<key>stroke</key>
-			<dict>
-				<key>Draws</key>
-				<string>NO</string>
-			</dict>
-		</dict>
-	</dict>
-	<key>CanvasOrigin</key>
-	<string>{0, 0}</string>
-	<key>CanvasSize</key>
-	<string>{512, 512}</string>
-	<key>ColumnAlign</key>
-	<integer>1</integer>
-	<key>ColumnSpacing</key>
-	<real>36</real>
-	<key>CreationDate</key>
-	<string>2008-11-14 16:58:15 -0700</string>
-	<key>Creator</key>
-	<string>John P. Developer</string>
-	<key>DisplayScale</key>
-	<string>1 pt = 1 px</string>
-	<key>FileType</key>
-	<string>flat</string>
-	<key>GraphDocumentVersion</key>
-	<integer>6</integer>
-	<key>GraphicsList</key>
-	<array>
-		<dict>
-			<key>Bounds</key>
-			<string>{{33.9443, 35.3885}, {444.111, 437.112}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>112</real>
-			</dict>
-			<key>ID</key>
-			<integer>31</integer>
-			<key>Rotation</key>
-			<real>270</real>
-			<key>Shape</key>
-			<string>Bezier</string>
-			<key>ShapeData</key>
-			<dict>
-				<key>UnitPoints</key>
-				<array>
-					<string>{-0.5, -0.439247}</string>
-					<string>{-0.5, -0.485429}</string>
-					<string>{-0.446294, -0.512626}</string>
-					<string>{-0.409932, -0.494153}</string>
-					<string>{-0.373569, -0.47568}</string>
-					<string>{0.436363, -0.0733799}</string>
-					<string>{0.472729, -0.0549059}</string>
-					<string>{0.50909, -0.0364333}</string>
-					<string>{0.509091, 0.0364345}</string>
-					<string>{0.472729, 0.0549059}</string>
-					<string>{0.436368, 0.0733802}</string>
-					<string>{-0.373569, 0.475681}</string>
-					<string>{-0.409932, 0.494153}</string>
-					<string>{-0.446294, 0.512626}</string>
-					<string>{-0.500001, 0.485429}</string>
-					<string>{-0.5, 0.439247}</string>
-					<string>{-0.49998, 0.393072}</string>
-					<string>{-0.500002, -0.393066}</string>
-				</array>
-			</dict>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.770962</string>
-						<key>r</key>
-						<string>0.997971</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>FillType</key>
-					<integer>3</integer>
-					<key>GradientCenter</key>
-					<string>{-0.609524, 0}</string>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.911574</string>
-						<key>r</key>
-						<string>0.998779</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.6111111044883728</real>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0.43</string>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Fuzziness</key>
-					<real>7.2213706970214844</real>
-					<key>ShadowVector</key>
-					<string>{0, 6}</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.766903</string>
-						<key>r</key>
-						<string>0.997925</string>
-					</dict>
-					<key>Width</key>
-					<real>7</real>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>TextPlacement</key>
-			<integer>0</integer>
-			<key>TextRelativeArea</key>
-			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
-			<key>TextRotation</key>
-			<real>90</real>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{3.89085, 67.8908}, {404.218, 332}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>112</real>
-			</dict>
-			<key>ID</key>
-			<integer>30</integer>
-			<key>Rotation</key>
-			<real>270</real>
-			<key>Shape</key>
-			<string>Bezier</string>
-			<key>ShapeData</key>
-			<dict>
-				<key>UnitPoints</key>
-				<array>
-					<string>{-0.5, -0.5}</string>
-					<string>{-0.459695, -0.475464}</string>
-					<string>{0.429465, 0.0537758}</string>
-					<string>{0.469773, 0.0783133}</string>
-					<string>{0.510074, 0.102849}</string>
-					<string>{0.510077, 0.198357}</string>
-					<string>{0.469773, 0.222892}</string>
-					<string>{0.429473, 0.247428}</string>
-					<string>{-0.00521517, 0.499998}</string>
-					<string>{-0.00521785, 0.5}</string>
-					<string>{-0.00521713, -0.113381}</string>
-					<string>{-0.44962, -0.458615}</string>
-				</array>
-			</dict>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0</string>
-						<key>b</key>
-						<string>1</string>
-						<key>g</key>
-						<string>1</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>FillType</key>
-					<integer>2</integer>
-					<key>GradientAngle</key>
-					<real>180</real>
-					<key>GradientCenter</key>
-					<string>{-0.609524, 0}</string>
-					<key>GradientColor</key>
-					<dict>
-						<key>a</key>
-						<string>0.5</string>
-						<key>w</key>
-						<string>1</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.6111111044883728</real>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0.51</string>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Fuzziness</key>
-					<real>3.3371961116790771</real>
-					<key>ShadowVector</key>
-					<string>{0, 2}</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.766903</string>
-						<key>r</key>
-						<string>0.997925</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Width</key>
-					<real>2</real>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>TextPlacement</key>
-			<integer>0</integer>
-			<key>TextRelativeArea</key>
-			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
-			<key>TextRotation</key>
-			<real>90</real>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{33.9443, 35.3886}, {444.112, 437.111}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>112</real>
-			</dict>
-			<key>ID</key>
-			<integer>29</integer>
-			<key>Rotation</key>
-			<real>270</real>
-			<key>Shape</key>
-			<string>Bezier</string>
-			<key>ShapeData</key>
-			<dict>
-				<key>UnitPoints</key>
-				<array>
-					<string>{-0.5, -0.439247}</string>
-					<string>{-0.500001, -0.485429}</string>
-					<string>{-0.446295, -0.512626}</string>
-					<string>{-0.409932, -0.494153}</string>
-					<string>{-0.373568, -0.475681}</string>
-					<string>{0.436363, -0.0733802}</string>
-					<string>{0.472729, -0.0549062}</string>
-					<string>{0.509089, -0.0364334}</string>
-					<string>{0.509092, 0.0364341}</string>
-					<string>{0.472729, 0.0549056}</string>
-					<string>{0.436369, 0.0733803}</string>
-					<string>{-0.373568, 0.475681}</string>
-					<string>{-0.409932, 0.494153}</string>
-					<string>{-0.446294, 0.512626}</string>
-					<string>{-0.500001, 0.485428}</string>
-					<string>{-0.5, 0.439248}</string>
-					<string>{-0.499978, 0.39307}</string>
-					<string>{-0.500003, -0.393066}</string>
-				</array>
-			</dict>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0.2</string>
-						<key>b</key>
-						<string>1</string>
-						<key>g</key>
-						<string>1</string>
-						<key>r</key>
-						<string>1</string>
-					</dict>
-					<key>FillType</key>
-					<integer>2</integer>
-					<key>GradientAngle</key>
-					<real>90</real>
-					<key>GradientCenter</key>
-					<string>{-0.609524, 0}</string>
-					<key>GradientColor</key>
-					<dict>
-						<key>a</key>
-						<string>0</string>
-						<key>w</key>
-						<string>1</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.6111111044883728</real>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0.51</string>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Fuzziness</key>
-					<real>3.3371961116790771</real>
-					<key>ShadowVector</key>
-					<string>{0, 2}</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.766903</string>
-						<key>r</key>
-						<string>0.997925</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Width</key>
-					<real>2</real>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>TextPlacement</key>
-			<integer>0</integer>
-			<key>TextRelativeArea</key>
-			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
-			<key>TextRotation</key>
-			<real>90</real>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{176, 102.384}, {158.841, 537.616}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>425</real>
-			</dict>
-			<key>ID</key>
-			<integer>26</integer>
-			<key>Shape</key>
-			<string>Rectangle</string>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>Text</key>
-				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350
-{\fonttbl\f0\fnil\fcharset0 CalistoMT;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs850 \cf1 !}</string>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{176, 104}, {158.841, 537.616}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Color</key>
-				<dict>
-					<key>b</key>
-					<string>0</string>
-					<key>g</key>
-					<string>0.749523</string>
-					<key>r</key>
-					<string>0.997726</string>
-				</dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>425</real>
-			</dict>
-			<key>ID</key>
-			<integer>27</integer>
-			<key>Shape</key>
-			<string>Rectangle</string>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Draws</key>
-					<string>NO</string>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>RTFD</key>
-				<data>
-				BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
-				ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
-				bmcBlIQBKwEhhoQCaUkBAZKEhIQMTlNEaWN0aW9uYXJ5
-				AJSEAWkEkoSWlhBOU1BhcmFncmFwaFN0eWxlhpKEhIQQ
-				TlNQYXJhZ3JhcGhTdHlsZQCUhARDQ0BTAgCEhIQHTlNB
-				cnJheQCUmQyShISECU5TVGV4dFRhYgCUhAJDZgAchpKE
-				n54AOIaShJ+eAFSGkoSfngBwhpKEn54AgYwAhpKEn54A
-				gagAhpKEn54AgcQAhpKEn54AgeAAhpKEn54AgfwAhpKE
-				n54AgRgBhpKEn54AgTQBhpKEn54AgVABhoYAhpKElpYG
-				TlNGb250hpKEhIQGTlNGb250HpSZIIQFWzMyY10GAAAA
-				FgAAAP/+QwBhAGwAaQBzAE0AVABCAG8AbAAAAIQBZoGp
-				AYQBYwCiAaIAogCGkoSWlg1OU1N0cm9rZVdpZHRohpKE
-				hIQITlNOdW1iZXIAhIQHTlNWYWx1ZQCUhAEqhIQBZKYD
-				hpKElpYHTlNDb2xvcoaShISEB05TQ29sb3IAlKIChARm
-				ZmZmAYN4dz8/AAGGhoY=
-				</data>
-				<key>Text</key>
-				<string>{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350
-{\fonttbl\f0\fnil\fcharset0 CalistoMT;}
-{\colortbl;\red255\green255\blue255;\red254\green191\blue0;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
-
-\f0\b\fs850 \cf2 \outl\strokewidth60 \strokec2 !}</string>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-		<dict>
-			<key>Bounds</key>
-			<string>{{33.9441, 35.3884}, {444.112, 437.111}}</string>
-			<key>Class</key>
-			<string>ShapedGraphic</string>
-			<key>FontInfo</key>
-			<dict>
-				<key>Font</key>
-				<string>CalisMTBol</string>
-				<key>Size</key>
-				<real>112</real>
-			</dict>
-			<key>ID</key>
-			<integer>16</integer>
-			<key>Rotation</key>
-			<real>270</real>
-			<key>Shape</key>
-			<string>Bezier</string>
-			<key>ShapeData</key>
-			<dict>
-				<key>UnitPoints</key>
-				<array>
-					<string>{-0.5, -0.439247}</string>
-					<string>{-0.5, -0.485429}</string>
-					<string>{-0.446295, -0.512626}</string>
-					<string>{-0.409933, -0.494153}</string>
-					<string>{-0.373569, -0.47568}</string>
-					<string>{0.436363, -0.073379}</string>
-					<string>{0.472729, -0.0549049}</string>
-					<string>{0.50909, -0.0364324}</string>
-					<string>{0.509091, 0.0364344}</string>
-					<string>{0.472729, 0.0549058}</string>
-					<string>{0.436368, 0.0733801}</string>
-					<string>{-0.373569, 0.47568}</string>
-					<string>{-0.409933, 0.494153}</string>
-					<string>{-0.446295, 0.512626}</string>
-					<string>{-0.500001, 0.485429}</string>
-					<string>{-0.5, 0.439247}</string>
-					<string>{-0.49998, 0.393072}</string>
-					<string>{-0.500002, -0.393066}</string>
-				</array>
-			</dict>
-			<key>Style</key>
-			<dict>
-				<key>fill</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.770962</string>
-						<key>r</key>
-						<string>0.997971</string>
-					</dict>
-					<key>FillType</key>
-					<integer>3</integer>
-					<key>GradientCenter</key>
-					<string>{-0.609524, 0}</string>
-					<key>GradientColor</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.911574</string>
-						<key>r</key>
-						<string>0.998779</string>
-					</dict>
-					<key>MiddleFraction</key>
-					<real>0.6111111044883728</real>
-				</dict>
-				<key>shadow</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>a</key>
-						<string>0.9</string>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0</string>
-						<key>r</key>
-						<string>0</string>
-					</dict>
-					<key>Fuzziness</key>
-					<real>8.0632610321044922</real>
-					<key>ShadowVector</key>
-					<string>{0, 9}</string>
-				</dict>
-				<key>stroke</key>
-				<dict>
-					<key>Color</key>
-					<dict>
-						<key>b</key>
-						<string>0</string>
-						<key>g</key>
-						<string>0.766903</string>
-						<key>r</key>
-						<string>0.997925</string>
-					</dict>
-					<key>Draws</key>
-					<string>NO</string>
-					<key>Width</key>
-					<real>2</real>
-				</dict>
-			</dict>
-			<key>Text</key>
-			<dict>
-				<key>Pad</key>
-				<integer>0</integer>
-				<key>VerticalPad</key>
-				<integer>0</integer>
-			</dict>
-			<key>TextPlacement</key>
-			<integer>0</integer>
-			<key>TextRelativeArea</key>
-			<string>{{0.06, 0.17}, {0.88, 0.5}}</string>
-			<key>TextRotation</key>
-			<real>90</real>
-			<key>Wrap</key>
-			<string>NO</string>
-		</dict>
-	</array>
-	<key>GridInfo</key>
-	<dict>
-		<key>GridSpacing</key>
-		<real>4</real>
-		<key>ShowsGrid</key>
-		<string>YES</string>
-		<key>SnapsToGrid</key>
-		<string>YES</string>
-	</dict>
-	<key>GuidesLocked</key>
-	<string>NO</string>
-	<key>GuidesVisible</key>
-	<string>YES</string>
-	<key>HPages</key>
-	<integer>1</integer>
-	<key>ImageCounter</key>
-	<integer>2</integer>
-	<key>KeepToScale</key>
-	<false/>
-	<key>Layers</key>
-	<array>
-		<dict>
-			<key>Lock</key>
-			<string>NO</string>
-			<key>Name</key>
-			<string>Layer 1</string>
-			<key>Print</key>
-			<string>YES</string>
-			<key>View</key>
-			<string>YES</string>
-		</dict>
-	</array>
-	<key>LayoutInfo</key>
-	<dict>
-		<key>Animate</key>
-		<string>NO</string>
-		<key>circoMinDist</key>
-		<real>18</real>
-		<key>circoSeparation</key>
-		<real>0.0</real>
-		<key>layoutEngine</key>
-		<string>dot</string>
-		<key>neatoSeparation</key>
-		<real>0.0</real>
-		<key>twopiSeparation</key>
-		<real>0.0</real>
-	</dict>
-	<key>LinksVisible</key>
-	<string>NO</string>
-	<key>MagnetsVisible</key>
-	<string>NO</string>
-	<key>MasterSheets</key>
-	<array/>
-	<key>ModificationDate</key>
-	<string>2008-11-17 11:41:28 -0700</string>
-	<key>Modifier</key>
-	<string>Preston Jackson</string>
-	<key>NotesVisible</key>
-	<string>NO</string>
-	<key>Orientation</key>
-	<integer>2</integer>
-	<key>OriginVisible</key>
-	<string>NO</string>
-	<key>PageBreaks</key>
-	<string>YES</string>
-	<key>PrintInfo</key>
-	<dict>
-		<key>NSBottomMargin</key>
-		<array>
-			<string>float</string>
-			<string>41</string>
-		</array>
-		<key>NSLeftMargin</key>
-		<array>
-			<string>float</string>
-			<string>18</string>
-		</array>
-		<key>NSPaperSize</key>
-		<array>
-			<string>size</string>
-			<string>{612, 792}</string>
-		</array>
-		<key>NSRightMargin</key>
-		<array>
-			<string>float</string>
-			<string>18</string>
-		</array>
-		<key>NSTopMargin</key>
-		<array>
-			<string>float</string>
-			<string>18</string>
-		</array>
-	</dict>
-	<key>PrintOnePage</key>
-	<false/>
-	<key>QuickLookPreview</key>
-	<data>
-	JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmls
-	dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGVlktvJEUQhO/9K5IbHFyuR9brioEV
-	nFh5JM5o5MWsPIA9IP4+X2b12gPrBbHWSt3lzkdFREb6Ud7Ko0R+asr+/+lOfpBfJIYW
-	/Z/8LNc35yTHsyROh/ZYxyTgfJTrN/zip7NcxVD3r1+e9oQbCd/J9fd3T8e7337/48cH
-	eSLjm3O2wEfR2ry8tiJ5hDJSVEk9pF7jkONJrr89JfnqV/p8uz1KK1YpJynNHlKVk2gJ
-	JZWqdqZz9iklBc21ZmkxlJoin0/vsEonTo6b9lC79iQzh6azSc7FYjINZWIkk4MCKtrG
-	ejhyRpZeRYcSNIbk7oXmtk5m4mRaD/NvYcOK1bKnpnkuu4qt6jqEVujLmtuOvFgdrXv7
-	mcjWQxut71ds5LcbAIADIcTkDgpt4TKmyigWoXNzVAYtfYzdUe5fOT25ACxMtZAQiPeX
-	xEVTSCkNeaBLDbXWDhwfnxH1QHJX0sfiulDDhhpMgMnUJZAGDLkCea3T6b+9T3K+N/pf
-	F6qL8+ZW0hYDjM4ESlFubyTlAFd/kvfwRKilj3IFRdTQHJsk6EwzW5UvDwBY1xf2cNVL
-	SDWiyTa2AyL8JgXr8fBOPv/sCzm8l68PNERtwm0wGIb4yTrK2LiYt3+rI5+uY1df7JW8
-	CD9tS/XNGUdxFSUs1e+yiQPuXPUMyVI9lL2qeh2bq16Rjet+qRdVLcWrceySz8+S30+A
-	zyTPTNiYWMQSe10Z64vY+/OoudZNus9dudwRqE+rVVty97v63bZd7iZHL7PkjnfYe5xw
-	vvTOAJtW5+gMv3vFB8RetF6yzYQ5x3/L08wKeQZ3t1pin5Fp1GpD0ORKy7AnlLN/kbPS
-	2ofZwIlqwA1G35aT5d3JyGncLARwMKZb0Tt2gIAHLOBGpTJExgtaxZ/MjxbK+B8mYdQ0
-	5QuYoSumBgvBBXEsP0n9khlidnI8xrK6LZqBzVm2bFzEhIjMiIwcPyGGeQqjdjrwT7h+
-	LYHiADxbwGHg6+Uux+3+4u1/I6yj5DSiaKw0CBBXpRSDluldCFM4zgHvPa9zujJygMR3
-	RXlB+JWt1t0PvmNg35PwHxsOE4mw1Weu0cykNci2JJjJhX+sVUm1pt4BgIOOr6HBGsLd
-	eYUt0uRFYFIEgAl4n6yrBqw6QuzKxtA0wdf4g/OZ2QWMAd4DfUgXOqHaYjtc4/Gjshmh
-	y/PP/YQ62VDzj4dlZttYGh2ZHAwCzaCeVcoaJty3VGm2b4bnZwuhC2LommlOA9lxF2ub
-	WDS6QrjdWjcjNZJ3Uzh/OyA6IjK7cIVwj0t8fPwuD05ya6b+F7C1v1cKZW5kc3RyZWFt
-	CmVuZG9iago1IDAgb2JqCjk4MwplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAv
-	UGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgNiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRp
-	YUJveCBbMCAwIDUxMiA1MTJdCj4+CmVuZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsg
-	L1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8
-	IC9DczIgMTIgMCBSCi9DczEgNyAwIFIgPj4gL0V4dEdTdGF0ZSA8PCAvR3MxIDE3IDAg
-	UiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvRjEuMCAxMSAwIFIKPj4gL1hPYmplY3Qg
-	PDwgL0ltMiAxMyAwIFIgL0ltMSA4IDAgUiAvSW0zIDE1IDAgUiA+PiAvU2hhZGluZyA8
-	PCAvU2gxIDEwIDAgUgo+PiA+PgplbmRvYmoKMTAgMCBvYmoKPDwgL0NvbG9yU3BhY2Ug
-	NyAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIC0yNzEuMzA2MyAwIDAgLTI3MS4z
-	MDYzIDAgNTQwLjI2NApdIC9Eb21haW4gWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFs
-	c2UgXSAvRnVuY3Rpb24gMTkgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvTGVuZ3Ro
-	IDE0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI1NiAv
-	SGVpZ2h0IDI1NiAvQ29sb3JTcGFjZQo3IDAgUiAvU01hc2sgMjAgMCBSIC9CaXRzUGVy
-	Q29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dABAQAA
-	CAKg/p+2Bx4QJpBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
-	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
-	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
-	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
-	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
-	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
-	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
-	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
-	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
-	wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
-	GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
-	AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDDQBg4DBgwYMGDA
-	wNjAA65NNU0KZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago4ODMKZW5kb2JqCjggMCBv
-	YmoKPDwgL0xlbmd0aCA5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug
-	L1dpZHRoIDkxMiAvSGVpZ2h0IDkyNiAvQ29sb3JTcGFjZQoyMiAwIFIgL1NNYXNrIDIz
-	IDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0
-	cmVhbQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
-	MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
-	BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
-	wMvAAKraAAEKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjExMDcwCmVuZG9iagoxNSAw
-	IG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1h
-	Z2UgL1dpZHRoIDI1NiAvSGVpZ2h0IDI1NiAvQ29sb3JTcGFjZQo3IDAgUiAvU01hc2sg
-	MjUgMCBSIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4K
-	c3RyZWFtCngB7dKBDQAgDMMw/n+6SHBGvA+aeXMKFAucd8XlNiuw8U9BuQD/5e/bzj8D
-	5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+
-	vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889A
-	uQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/
-	bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQ
-	LsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv
-	284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyU
-	C/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7
-	tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPl
-	AvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+
-	7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5
-	AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79v
-	O/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1Au
-	wH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/b
-	zj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL
-	8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2
-	889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC
-	/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287/wyUC/Bf/r7t
-	/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7Af/n7tvPPQLkA
-	/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vOPwPlAvyXv287
-	/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvwX/6+7fwzUC7A
-	f/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu38M1AuwH/5+7bzz0C5AP/l79vO
-	PwPlAvyXv287/wyUC/Bf/r7t/DNQLsB/+fu2889AuQD/5e/bzj8D5QL8l79vO/8MlAvw
-	X/6+7fwzUC7Af/n7tvPPQLkA/+Xv284/A+UC/Je/bzv/DJQL8F/+vu3f/wUgwjJ6CmVu
-	ZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKMTIxNAplbmRvYmoKMjMgMCBvYmoKPDwgL0xl
-	bmd0aCAyNCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA5
-	MTIgL0hlaWdodCA5MjYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21w
-	b25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHsnYlfTV37/288
-	j4xJUVJRGtCEoggliZCxyFQUlUiGNCgJIXOFyFTKlCljmUMlUaZK4XY/N31fv//jd621
-	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
-	5IiRegajjceajhs/cbKF5RRriMrp021nzJg5c6YdPmgByVkAHH/GDFvb6dOnTbWZYmUx
-	edIEM1OTMYYGo3R1ZNFIdjl6BI4sJGlEwtbHwEGwGzlcR1ffYLTRGIhJs/ETJk6abGFh
-	YWlpZWU1BR+0gOQsAI5vZWkJMTB50sTx5uMgFoGMo/RGjtCmuhHY2NPRCEEJi1aGkb8P
-	GjwUQhIoCTFpCEFpYmoKcWlmZm5uPh4ftIDkLACOb25mNm6cqanJ2DHGRqMNRunr6kAw
-	wkJ1IFmpqiAaCSXZiKSQJCEJmBypq6c/ygDC0tDIyMgYnjH4oAUkZgHi98ZGRoaGo0cb
-	QCjqQSwOBzIOgZQqKcdRUTSSiKS7kb/++huEJFByyFCtYRCUI3QgLHX19PT0uWcUPmgB
-	aViAc3lwf13dkSMhEodr01gEMrJo7FndSMOQ9y8MJJmQBDEJQQlRCWFJn+H4oAWkaAHG
-	/YcN09ICLA5mYpGsU3s4icOLQ94faUhCGR1gEjj5+8CBgwYNGjx48BD5MxQfTbSA/APh
-	n2QW+JkPJXvJEIhCiMNBA4GKvw8Y0B9iEZapqiUjLyJh3UqyO/36wdr1t/79IS5JYOKD
-	FpCyBSAKIBZ+I6FIY7Entzf4wdfdn2lQsmH5Kzy/4YMWkKgFiP+TOCSRCFjs0a3G7uKv
-	m39Ofh0eGAc+aAHpWoAJA3VDsZugxH+MFkALoAXQAmgBtABaAC2AFkALoAXQAmgBtABa
-	AC2AFkALoAXQAmgBtABaoFct8P/b5umcCmVuZHN0cmVhbQplbmRvYmoKMjQgMCBvYmoK
-	NDQ4NjUKZW5kb2JqCjIwIDAgb2JqCjw8IC9MZW5ndGggMjEgMCBSIC9UeXBlIC9YT2Jq
-	ZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMjU2IC9IZWlnaHQgMjU2IC9Db2xvclNw
-	YWNlCi9EZXZpY2VHcmF5IC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVE
-	ZWNvZGUgPj4Kc3RyZWFtCngB7dCFQQIAAABBsTswEAxsBQWD/XdzkL8b4Vartj8MGDBg
-	IDnwiwEDBgwkB34wYMCAgeTANwYMGDCQHFhiwIABA8mBBQYMGDCQHPjCgAEDBpIDnxgw
-	YMCAgeDAHAMGDBhIDswwYMCAgeTABwYMGDCQHHjHgAEDBpIDbxgwYMBAcuAVAwYMGEgO
-	vGDAgAEDBoIDzxgwYMBAcuAJAwYMGEgOPGLAgAEDyYEHDBgwYCA5MMWAAQMGkgP3GDBg
-	wEBy4A4DBgwYSA7cYsCAAQMGggM3GDBgwEByYIIBAwYMJAfGGDBgIDpwjQED2YERBgxk
-	B64wYCA7cIkBA9mBCwyEB84xYCA7MMSAgezAGQYMZAdOMWAgO3CCAQPZgWMMGMgOHGHA
-	QHbgEAMGsgMHGDCQHdjHQHhgDwMGsgO7GDCQHdjBgIHswDYGDGQHtjBgIDuwiQED2YEN
-	DBjIDqxjwEB2YIABA9mBNQyEB/4BLgXylgplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2Jq
-	CjM2NgplbmRvYmoKMjUgMCBvYmoKPDwgL0xlbmd0aCAyNiAwIFIgL1R5cGUgL1hPYmpl
-	Y3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNTYgL0hlaWdodCAyNTYgL0NvbG9yU3Bh
-	Y2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURl
-	Y29kZSA+PgpzdHJlYW0KeAHt3Qs/k2EYB+A5j2HOZpjz+TxzNkQSSSJJJJEkkkgStq/e
-	B+n6CPtte9/nuQ//K51KPT483N//vbv7c3v7++bm1/X11dXPy8sfFxffz8/Pzr6dnn49
-	OflyfPz56Ojw8NPBwcf9/Q97e7u773d23m1vv93aerO5ubHxen391dray9XVFysry8vP
-	l5aeLS4+XViYn38yNzc7OzOTTCanp6empiYnJyYmxsfHxsZGR0dGEonE8HA8Hh8aGhwc
-	HBjo7+/v6+vt7e3p6e7u6urq7Ozo6Ghvb2tra21taWlpbm5qampsbGiIxWL19XV1dbW1
-	0Wi0piYSiVRXV1VVVVZWVJSXl5eVlZaWlpSEw+Hi4qKiosLCUChUUJCfHwwG8/Jyc3Nz
-	crKzs7OyMjMzMzICgbTP7/v3+/f/9/zz/Pf+8/53/nH+c/51/nf/cf9z/3X/V/9Q/1H/
-	Uv9T/1T/Vf9W/9f/0P/R/9L/0//U/9X/1v83/2D+w/yL+R/zT+a/zL+Z/zP/aP7T/Kv5
-	X/PP5r/Nv5v/t/9g/8P+i/0f+0/2v+y/2f+z/2j/0/6r/V/7z/a/7b/b/5d/IP9B/oX8
-	D/kn8l/k38j/kX8k/0n+lfwv+Wfy3+Tfyf+Tfyj/Uf6l/E/5p/Jf5d/K/5V/LP9Z/rX8
-	b/nn8t/l38v/5x/wH/gX/A/+Cf+Ff8P/4R/xn/hX/C/+Gf+Nf8f/4x/yH/mX/E/+Kf+V
-	f8v/5R/zn/nX/G/+Of89IxBIp1L8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8
-	d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/
-	zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf
-	+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47
-	/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/nv/Pf+e/8d/47/53/zn/n
-	vwfSqdTjw3/sv/8DK6twSQplbmRzdHJlYW0KZW5kb2JqCjI2IDAgb2JqCjgxNwplbmRv
-	YmoKMTcgMCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMCA+PgplbmRvYmoKMTgg
-	MCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgplbmRvYmoKMjcgMCBvYmoK
-	PDwgL0xlbmd0aCAyOCAwIFIgL04gMSAvQWx0ZXJuYXRlIC9EZXZpY2VHcmF5IC9GaWx0
-	ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AYVST0gUURz+zTYShIhBhXiIdwoJlSms
-	rKDadnVZlW1bldKiGGffuqOzM9Ob2TXFkwRdojx1D6JjdOzQoZuXosCsS9cgqSAIPHXo
-	+83s6iiEb3k73/v9/X7fe0RtnabvOylBVHNDlSulp25OTYuDHylFHdROWKYV+OlicYyx
-	67mSv7vX1mfS2LLex7V2+/Y9tZVlYCHqLba3EPohkWYAH5mfKGWAs8Adlq/YPgE8WA6s
-	GvAjogMPmrkw09GcdKWyLZFT5qIoKq9iO0mu+/m5xr6LtYmD/lyPZtaOvbPqqtFM1LT3
-	RKG8D65EGc9fVPZsNRSnDeOcSEMaKfKu1d8rTMcRkSsQSgZSNWS5n2pOnXXgdRi7XbqT
-	4/j2EKU+yWCoibXpspkdhX0AdirL7BDwBejxsmIP54F7Yf9bUcOTwCdhP2SHedatH/YX
-	rlPge4Q9NeDOFK7F8dqKH14tAUP3VCNojHNNxNPXOXOkiO8x1BmY90Y5pgsxd5aqEzeA
-	O2EfWapmCrFd+67qJe57AnfT4zvRmzkLXKAcSXKxFdkU0DwJWBR9i7BJDjw+zh5V4Heo
-	mMAcuYnczSj3HtURG2ejUoFWeo1Xxk/jufHF+GVsGM+Afqx213t8/+njFXXXtj48+Y16
-	3DmuvZ0bVWFWcWUL3f/HMoSP2Sc5psHToVlYa9h25A+azEywDCjEfwU+l/qSE1Xc1e7t
-	uEUSzFA+LGwluktUbinU6j2DSqwcK9gAdnCSxCxaHLhTa7o5eHfYInpt+U1XsuuG/vr2
-	evva8h5tyqgpKBPNs0RmlLFbo+TdeNv9ZpERnzg6vue9ilrJ/klFED+FOVoq8hRV9FZQ
-	1sRvZw5+G7Z+XD+l5/VB/TwJPa2f0a/ooxG+DHRJz8JzUR+jSfCwaSHiEqCKgzPUTlRj
-	jQPiKfHytFtkkf0PQBn9ZgplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjcwNAplbmRv
-	YmoKMTIgMCBvYmoKWyAvSUNDQmFzZWQgMjcgMCBSIF0KZW5kb2JqCjI5IDAgb2JqCjw8
-	IC9MZW5ndGggMzAgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIg
-	L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa2TzWsTQRjGn02QCtZQi0jx4oJSPERdkhbb
-	W9t8SOwSlySlfhw02d1soslm3d1ErR561H+gFEQQPOjBmxc9tSeR4ieC9OBdUU9a6qGU
-	9Z0Zd4Ng8eK7zMxvH555Z+adXSC+UXWcVgxA2/bd0qkZ+ey58/LAOiQcQgJJyFXdc6Y1
-	TSXLDrH5gdwU74+xXF9iz7c+fdtz58Li7bXDSw9bO0wK5YRLCwJSkoT9luApxjXBFcbX
-	fMcnT4Ox3qgaxLeIk26llCF+RJywBD9lXBP8gnFPt9jcdWLFNpo2ENtNPGGYnk48RWwZ
-	nt4mpjwS2u0O5Y+znEd1x6W58bfER1hdaKS4mgAmv5J+r69dPAE8WQMOaH1tdBkYvgQ8
-	m+xrP97wWkkjNa+eTvF00uBBYNdqEHwPgAHyb78Ogq3lINheojU2gJWi3nV73EsblF4B
-	/3oXZxbZgXd0Bgp+R39nURfuUoAHq0BlEVBpvEvj6E9g301AA+lUpnQ6bKKGJAN7szlV
-	lVNjynhem+fKf+zarS7dFY9h6gftWvEMjSPUPju+RpsS7PXKuZDrzXwhZKOanQ15oZEp
-	hlx386WQL1dPswPynKY9Vw7ZafFv//daM5Hf9HKRZ6FRYWfmHrdbmgv5Smc28htmNtqb
-	3Sqy/4n7m34h2j+yyEGlR0YKY1AwjjyVfV58kzQDQ4+B+0PKyXR55eNLJvwRvnmd33Wm
-	49xwm1bDl6fpjzSTcsHWjyfllKJM4BeDarM/CmVuZHN0cmVhbQplbmRvYmoKMzAgMCBv
-	YmoKNTY1CmVuZG9iagoyMiAwIG9iagpbIC9JQ0NCYXNlZCAyOSAwIFIgXQplbmRvYmoK
-	MzEgMCBvYmoKPDwgL0xlbmd0aCAzMiAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VS
-	R0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhZRNSBRhGMf/s40EsQbR
-	lwjF0MEkVCYLUgLT9StTtmXVTAlinX13nRxnp5ndLUUihOiYdYwuVkSHiE7hoUOnOkQE
-	mXWJoKNFEAVeIrb/O5O7Y1S+MDO/eZ7/+3y9wwBVj1KOY0U0YMrOu8nemHZ6dEzb/BpV
-	qEYUXCnDczoSiQGfqZXP9Wv1LRRpWWqUsdb7NnyrdpkQUDQqd2QDPix5PODjki/knTw1
-	ZyQbE6k02SE3uEPJTvIt8tZsiMdDnBaeAVS1U5MzHJdxIjvILUUjK2M+IOt22rTJ76U9
-	7RlT1LDfyDc5C9q48v1A2x5g04uKbcwDHtwDdtdVbPU1wM4RYPFQxfY96c9H2fXKyxxq
-	9sMp0Rhr+lAqfa8DNt8Afl4vlX7cLpV+3mEO1vHUMgpu0deyMOUlENQb7Gb85Br9i4Oe
-	fFULsMA5jmwB+q8ANz8C+x8C2x8DiWpgqBWRy2w3uPLiIucCdOacadfMTuS1Zl0/onXw
-	aIXWZxtNDVrKsjTf5Wmu8IRbFOkmTFkFztlf23iPCnt4kE/2F7kkvO7frMylU12cJZrY
-	1qe06OomN5DvZ8yePnI9r/cZt2c4YOWAme8bCjhyyrbiPBepidTY4/GTZMZXVCcfk/OQ
-	POcVB2VM334udSJBrqU9OZnrl5pd3Ns+MzHEM5KsWDMTnfHf/MYtJGXefdTcdSz/m2dt
-	kWcYhQUBEzbvNjQk0YsYGuHARQ4ZekwqTFqlX9BqwsPkX5UWEuVdFhW9WOGeFX/PeRS4
-	W8Y/hVgccw3lCJr+Tv+iL+sL+l3983xtob7imXPPmsara18ZV2aW1ci4QY0yvqwpiG+w
-	2g56LWRpneIV9OSV9Y3h6jL2fG3Zo8kc4mp8NdSlCGVqxDjjya5l90WyxTfh51vL9q/p
-	Uft89klNJdeyunhmKfp8NlwNa/+zq2DSsqvw5I2QLjxroe5VD6p9aovaCk09prarbWoX
-	346qA+Udw5yViQus22X1KfZgY5reyklXZovg38Ivhv+lXmEL1zQ0+Q9NuLmMaQnfEdw2
-	cIeU/8NfswMN3gplbmRzdHJlYW0KZW5kb2JqCjMyIDAgb2JqCjc5MgplbmRvYmoKNyAw
-	IG9iagpbIC9JQ0NCYXNlZCAzMSAwIFIgXQplbmRvYmoKMTkgMCBvYmoKPDwgL0xlbmd0
-	aCAzMyAwIFIgL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlIDggL1NpemUgWyAx
-	MzY1IF0gL0RvbWFpbgpbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL0ZpbHRl
-	ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBzcLXcQJAEAXByT8vjLDCO4HwIoobfRPA
-	K7arW4f22V1akT1anX3ae/t85hfWOcAih1jnCIscY50TLHKKdX5jkTMsco51LrDIJda5
-	wiLXWOcGQ7cYusPEPYYeMPEHQ4+YeMLQXww9Y+IFQ6+YeMPQO4Y+MPGJoX+Y+MLAf+tF
-	vN4KZW5kc3RyZWFtCmVuZG9iagozMyAwIG9iagoxMzAKZW5kb2JqCjMgMCBvYmoKPDwg
-	L1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDUxMiA1MTJdIC9Db3VudCAxIC9LaWRz
-	IFsgMiAwIFIgXSA+PgplbmRvYmoKMzQgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL1Bh
-	Z2VzIDMgMCBSIC9WZXJzaW9uIC8xLjQgPj4KZW5kb2JqCjM1IDAgb2JqCjw8IC9MZW5n
-	dGggMzYgMCBSIC9MZW5ndGgxIDUwMzIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry
-	ZWFtCngB7TiNfxNVtufcOzOZNkDT0pbQAJl0aJWm2QIKlEJpaJKWNkILVDepsCb9kADF
-	Flo+n9Iqq2L4sK7a1d+u6K6rFaw6bZENRZevxdUVfn6ivLfig4X14z0R9Af7VoHOO5Nq
-	BZd9f8Gbk3vn3nPOveeej3vu3AACwBBoAw7u2mXhJpBhGmEOU7HWrmpR3tm342NqnwaQ
-	V9zetGhZ6hcziZ4QABDKFzWsvT0yatrbAEN/RzyvR+rDdWeXqscBhjVQf3KEEMPGCEQf
-	ZtDHRpa1rJH3Yxf1X6e+3NBYG4Y6SKc+8YC0LLymiT0q3k39Y9RX7ggvqx+59bl11P8H
-	9dWmxuYWvQpuB0gaRf3sphX1TWeOuN6jvpfWEyYcEhjPEJCoADgMjNgLILbBGCojeA9k
-	6hf0v1L5zCj9s4j2NCT31wDwEmpvi4+/qhJP0OyeAZT+L56rBlyzMzAQDE2Ncu2nHMxQ
-	AltABAsI8Az1zsJxuA8klGEyJEM+vIAfgQcq4R4shJ8TTwaUwQuwGz7ARfolEPSgfgCW
-	QidOIv0zoAAWwF44T3x/gp9CGNZAK96j30XWSYQxkAk3kDVXwDo4SRwJkAY2yMQsNo0f
-	gxE0sgHaYAPsFir0Z/XjNCaBoAKeheegH6sxou/STxEmH6aCD+bDHcT7AIqYJo7R/6Kf
-	18/DRFrnQlhE8yyHx2AXmnA4OvEPrIh3wDjSsxGaIAod8Ev4M2bjm7xS3w4uggkwh+a7
-	FWpozi3QB2/ANyixGraGvcB28RX8ogDCUfFtyae/ph+hyBXBSmMKaMRtFE+Lad4H4R34
-	EP4KX8HXmIaZOAEn4wwsw6WsQTJLP9X30BgzjAaFbJADebTSAigmmEe2uBMehS54BV4l
-	OABfokJwHcE4vBWfwR48xZKYwg6zd9g3PJ/7+aOCVVgo3Ck+Jp6UcnSPvosslQJ2UGEK
-	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
-	Q1aLMVmjIaszPu5HsroMcqchq8uQ1WXI6nR3xmWhb/H8YrJVoFuG4qBnwcC7l5kTyT0h
-	myNYHPfTNId1va2PXcACMNMpMoQ+PoZSMVzomumaSSQP88RJw4zvku9I1vXTHLY+LGAX
-	4iQLoZMpaPAHLxmtZmdzc/PKFqpaVkLLSoJm4miOU5zQMsBMwfi/LcjbTgplbmRzdHJl
-	YW0KZW5kb2JqCjM2IDAgb2JqCjM0NTYKZW5kb2JqCjM3IDAgb2JqCjw8IC9UeXBlIC9G
-	b250RGVzY3JpcHRvciAvQXNjZW50IDc1MSAvQ2FwSGVpZ2h0IDY5NSAvRGVzY2VudCAt
-	MzE5IC9GbGFncyAzMgovRm9udEJCb3ggWy0xNzYgLTIyNyAxMDc2IDkxM10gL0ZvbnRO
-	YW1lIC9EUUJQSVYrQ2FsaXNNVEJvbCAvSXRhbGljQW5nbGUgMAovU3RlbVYgMCAvTGVh
-	ZGluZyAxMTEgL01heFdpZHRoIDEwOTQgL1hIZWlnaHQgNDcxIC9Gb250RmlsZTIgMzUg
-	MCBSID4+CmVuZG9iagozOCAwIG9iagpbIDM0NCBdCmVuZG9iagoxMSAwIG9iago8PCAv
-	VHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9EUUJQSVYrQ2Fs
-	aXNNVEJvbCAvRm9udERlc2NyaXB0b3IKMzcgMCBSIC9XaWR0aHMgMzggMCBSIC9GaXJz
-	dENoYXIgMzMgL0xhc3RDaGFyIDMzIC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZwo+
-	PgplbmRvYmoKMSAwIG9iago8PCAvVGl0bGUgKFVudGl0bGVkKSAvQXV0aG9yIChQcmVz
-	dG9uIEphY2tzb24pIC9DcmVhdG9yIChPbW5pR3JhZmZsZSBQcm9mZXNzaW9uYWwpCi9Q
-	cm9kdWNlciAoTWFjIE9TIFggMTAuNS41IFF1YXJ0eiBQREZDb250ZXh0KSAvQ3JlYXRp
-	b25EYXRlIChEOjIwMDgxMTE3MTg0NzE0WjAwJzAwJykKL01vZERhdGUgKEQ6MjAwODEx
-	MTcxODQ3MTRaMDAnMDAnKSA+PgplbmRvYmoKeHJlZgowIDM5CjAwMDAwMDAwMDAgNjU1
-	MzUgZiAKMDAwMDA2OTExNCAwMDAwMCBuIAowMDAwMDAxMDk4IDAwMDAwIG4gCjAwMDAw
-	NjQ5NjMgMDAwMDAgbiAKMDAwMDAwMDAyMiAwMDAwMCBuIAowMDAwMDAxMDc5IDAwMDAw
-	IG4gCjAwMDAwMDEyMDIgMDAwMDAgbiAKMDAwMDA2NDYxNCAwMDAwMCBuIAowMDAwMDAy
-	Njk4IDAwMDAwIG4gCjAwMDAwMTM5NDkgMDAwMDAgbiAKMDAwMDAwMTQ1NSAwMDAwMCBu
-	IAowMDAwMDY4OTM5IDAwMDAwIG4gCjAwMDAwNjI5MzcgMDAwMDAgbiAKMDAwMDAwMTYx
-	MyAwMDAwMCBuIAowMDAwMDAyNjc4IDAwMDAwIG4gCjAwMDAwMTM5NzAgMDAwMDAgbiAK
-	MDAwMDAxNTM2NiAwMDAwMCBuIAowMDAwMDYyMDE5IDAwMDAwIG4gCjAwMDAwNjIwNjQg
-	MDAwMDAgbiAKMDAwMDA2NDY1MCAwMDAwMCBuIAowMDAwMDYwNDQ4IDAwMDAwIG4gCjAw
-	MDAwNjA5ODggMDAwMDAgbiAKMDAwMDA2MzY2MiAwMDAwMCBuIAowMDAwMDE1Mzg3IDAw
-	MDAwIG4gCjAwMDAwNjA0MjYgMDAwMDAgbiAKMDAwMDA2MTAwOCAwMDAwMCBuIAowMDAw
-	MDYxOTk5IDAwMDAwIG4gCjAwMDAwNjIxMDkgMDAwMDAgbiAKMDAwMDA2MjkxNyAwMDAw
-	MCBuIAowMDAwMDYyOTc0IDAwMDAwIG4gCjAwMDAwNjM2NDIgMDAwMDAgbiAKMDAwMDA2
-	MzY5OSAwMDAwMCBuIAowMDAwMDY0NTk0IDAwMDAwIG4gCjAwMDAwNjQ5NDMgMDAwMDAg
-	biAKMDAwMDA2NTA0NiAwMDAwMCBuIAowMDAwMDY1MTEwIDAwMDAwIG4gCjAwMDAwNjg2
-	NTYgMDAwMDAgbiAKMDAwMDA2ODY3NyAwMDAwMCBuIAowMDAwMDY4OTE1IDAwMDAwIG4g
-	CnRyYWlsZXIKPDwgL1NpemUgMzkgL1Jvb3QgMzQgMCBSIC9JbmZvIDEgMCBSIC9JRCBb
-	IDw0OWU2MjQzZGUwYzBiMTQ0NmRmMDQzNjRjNzc1ZGNlZj4KPDQ5ZTYyNDNkZTBjMGIx
-	NDQ2ZGYwNDM2NGM3NzVkY2VmPiBdID4+CnN0YXJ0eHJlZgo2OTMzNgolJUVPRgoxIDAg
-	b2JqCjw8L0F1dGhvciAoUHJlc3RvbiBKYWNrc29uKS9DcmVhdGlvbkRhdGUgKEQ6MjAw
-	ODExMTQyMzU4MDBaKS9DcmVhdG9yIChPbW5pR3JhZmZsZSBQcm9mZXNzaW9uYWwgNS4x
-	IHJjIDEpL01vZERhdGUgKEQ6MjAwODExMTcxODQxMDBaKS9Qcm9kdWNlciAoTWFjIE9T
-	IFggMTAuNS41IFF1YXJ0eiBQREZDb250ZXh0KS9UaXRsZSAoUmVwb3J0ZXJJY29uLmdy
-	YWZmbGUpPj4KZW5kb2JqCnhyZWYKMSAxCjAwMDAwNzAyNzQgMDAwMDAgbiAKdHJhaWxl
-	cgo8PC9JRCBbPDQ5ZTYyNDNkZTBjMGIxNDQ2ZGYwNDM2NGM3NzVkY2VmPiA8NDllNjI0
-	M2RlMGMwYjE0NDZkZjA0MzY0Yzc3NWRjZWY+XSAvSW5mbyAxIDAgUiAvUHJldiA2OTMz
-	NiAvUm9vdCAzNCAwIFIgL1NpemUgMzk+PgpzdGFydHhyZWYKNzA0OTgKJSVFT0YK
-	</data>
-	<key>QuickLookThumbnail</key>
-	<data>
-	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
-	</data>
-	<key>ReadOnly</key>
-	<string>NO</string>
-	<key>RowAlign</key>
-	<integer>1</integer>
-	<key>RowSpacing</key>
-	<real>36</real>
-	<key>SheetTitle</key>
-	<string>Canvas 1</string>
-	<key>SmartAlignmentGuidesActive</key>
-	<string>NO</string>
-	<key>SmartDistanceGuidesActive</key>
-	<string>NO</string>
-	<key>UniqueID</key>
-	<integer>1</integer>
-	<key>UseEntirePage</key>
-	<false/>
-	<key>VPages</key>
-	<integer>1</integer>
-	<key>WindowInfo</key>
-	<dict>
-		<key>CurrentSheet</key>
-		<integer>0</integer>
-		<key>ExpandedCanvases</key>
-		<array>
-			<dict>
-				<key>name</key>
-				<string>Canvas 1</string>
-			</dict>
-		</array>
-		<key>Frame</key>
-		<string>{{2002, 20}, {1215, 1180}}</string>
-		<key>ListView</key>
-		<true/>
-		<key>OutlineWidth</key>
-		<integer>142</integer>
-		<key>RightSidebar</key>
-		<false/>
-		<key>Sidebar</key>
-		<true/>
-		<key>SidebarWidth</key>
-		<integer>157</integer>
-		<key>VisibleRegion</key>
-		<string>{{-4.5, 0.5}, {522, 535.5}}</string>
-		<key>Zoom</key>
-		<real>2</real>
-		<key>ZoomValues</key>
-		<array>
-			<array>
-				<string>Canvas 1</string>
-				<real>2</real>
-				<real>4</real>
-			</array>
-		</array>
-	</dict>
-	<key>saveQuickLookFiles</key>
-	<string>YES</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender-Info.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleDisplayName</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string>crash_report_sender</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.Breakpad.${PRODUCT_NAME:identifier}</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>LSHasLocalizedDisplayName</key>
-	<true/>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender.h
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// This component uses the HTTPMultipartUpload of the breakpad project to send
-// the minidump and associated data to the crash reporting servers.
-// It will perform throttling based on the parameters passed to it and will
-// prompt the user to send the minidump.
-
-#import <Cocoa/Cocoa.h>
-
-#include "client/mac/sender/uploader.h"
-#import "GTMDefines.h"
-
-// We're sublcassing NSTextField in order to override a particular
-// method (see the implementation) that lets us reject changes if they
-// are longer than a particular length.  Bindings would normally solve
-// this problem, but when we implemented a validation method, and
-// returned NO for strings that were too long, the UI was not updated
-// right away, which was a poor user experience.  The UI would be
-// updated as soon as the text field lost first responder status,
-// which isn't soon enough.  It is a known bug that the UI KVO didn't
-// work in the middle of a validation.
-@interface LengthLimitingTextField : NSTextField {
-  @private
-   NSUInteger maximumLength_;
-}
-
-- (void)setMaximumLength:(NSUInteger)maxLength;
-@end
-
-@interface Reporter : NSObject {
- @public
-  IBOutlet NSWindow *alertWindow_;        // The alert window
-
-  // Grouping boxes used for resizing.
-  IBOutlet NSBox *headerBox_;
-  IBOutlet NSBox *preEmailBox_;
-  IBOutlet NSBox *emailSectionBox_;
-  // Localized elements (or things that need to be moved during localization).
-  IBOutlet NSTextField                *dialogTitle_;
-  IBOutlet NSTextField                *commentMessage_;
-  IBOutlet NSTextField                *emailMessage_;
-  IBOutlet NSTextField                *emailLabel_;
-  IBOutlet NSTextField                *privacyLinkLabel_;
-  IBOutlet NSButton                   *sendButton_;
-  IBOutlet NSButton                   *cancelButton_;
-  IBOutlet LengthLimitingTextField    *emailEntryField_;
-  IBOutlet LengthLimitingTextField    *commentsEntryField_;
-  IBOutlet NSTextField                *countdownLabel_;
-  IBOutlet NSView                     *privacyLinkArrow_;
-
-  // Text field bindings, for user input.
-  NSString *commentsValue_;                // Comments from the user
-  NSString *emailValue_;                   // Email from the user
-  NSString *countdownMessage_;             // Message indicating time
-                                           // left for input.
- @private
-  NSTimeInterval remainingDialogTime_;     // Keeps track of how long
-                                           // we have until we cancel
-                                           // the dialog
-  NSTimer *messageTimer_;                  // Timer we use to update
-                                           // the dialog
-  Uploader* uploader_;                     // Uploader we use to send the data.
-}
-
-// Stops the modal panel with an NSAlertDefaultReturn value. This is the action
-// invoked by the "Send Report" button.
-- (IBAction)sendReport:(id)sender;
-// Stops the modal panel with an NSAlertAlternateReturn value. This is the
-// action invoked by the "Cancel" button.
-- (IBAction)cancel:(id)sender;
-// Opens the Privacy Policy url in the default web browser.
-- (IBAction)showPrivacyPolicy:(id)sender;
-
-// Delegate methods for the NSTextField for comments. We want to capture the
-// Return key and use it to send the message when no text has been entered.
-// Otherwise, we want Return to add a carriage return to the comments field.
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView
-                          doCommandBySelector:(SEL)commandSelector;
-
-// Accessors to make bindings work
-- (NSString *)commentsValue;
-- (void)setCommentsValue:(NSString *)value;
-
-- (NSString *)emailValue;
-- (void)setEmailValue:(NSString *)value;
-
-- (NSString *)countdownMessage;
-- (void)setCountdownMessage:(NSString *)value;
-
-@end
deleted file mode 100644
index e8c21242bf84a70a1efb7e005f47684a882eabe1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/crash_report_sender.m
+++ /dev/null
@@ -1,755 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import "client/mac/sender/crash_report_sender.h"
-
-#import <Cocoa/Cocoa.h>
-#import <pwd.h>
-#import <sys/stat.h>
-#import <SystemConfiguration/SystemConfiguration.h>
-#import <unistd.h>
-
-#import "client/apple/Framework/BreakpadDefines.h"
-#import "common/mac/GTMLogger.h"
-#import "common/mac/HTTPMultipartUpload.h"
-
-
-#define kLastSubmission @"LastSubmission"
-const int kUserCommentsMaxLength = 1500;
-const int kEmailMaxLength = 64;
-
-#define kApplePrefsSyncExcludeAllKey \
-  @"com.apple.PreferenceSync.ExcludeAllSyncKeys"
-
-#pragma mark -
-
-@interface NSView (ResizabilityExtentions)
-// Shifts the view vertically by the given amount.
-- (void)breakpad_shiftVertically:(CGFloat)offset;
-
-// Shifts the view horizontally by the given amount.
-- (void)breakpad_shiftHorizontally:(CGFloat)offset;
-@end
-
-@implementation NSView (ResizabilityExtentions)
-- (void)breakpad_shiftVertically:(CGFloat)offset {
-  NSPoint origin = [self frame].origin;
-  origin.y += offset;
-  [self setFrameOrigin:origin];
-}
-
-- (void)breakpad_shiftHorizontally:(CGFloat)offset {
-  NSPoint origin = [self frame].origin;
-  origin.x += offset;
-  [self setFrameOrigin:origin];
-}
-@end
-
-@interface NSWindow (ResizabilityExtentions)
-// Adjusts the window height by heightDelta relative to its current height,
-// keeping all the content at the same size.
-- (void)breakpad_adjustHeight:(CGFloat)heightDelta;
-@end
-
-@implementation NSWindow (ResizabilityExtentions)
-- (void)breakpad_adjustHeight:(CGFloat)heightDelta {
-  [[self contentView] setAutoresizesSubviews:NO];
-
-  NSRect windowFrame = [self frame];
-  windowFrame.size.height += heightDelta;
-  [self setFrame:windowFrame display:YES];
-  // For some reason the content view is resizing, but not adjusting its origin,
-  // so correct it manually.
-  [[self contentView] setFrameOrigin:NSMakePoint(0, 0)];
-
-  [[self contentView] setAutoresizesSubviews:YES];
-}
-@end
-
-@interface NSTextField (ResizabilityExtentions)
-// Grows or shrinks the height of the field to the minimum required to show the
-// current text, preserving the existing width and origin.
-// Returns the change in height.
-- (CGFloat)breakpad_adjustHeightToFit;
-
-// Grows or shrinks the width of the field to the minimum required to show the
-// current text, preserving the existing height and origin.
-// Returns the change in width.
-- (CGFloat)breakpad_adjustWidthToFit;
-@end
-
-@implementation NSTextField (ResizabilityExtentions)
-- (CGFloat)breakpad_adjustHeightToFit {
-  NSRect oldFrame = [self frame];
-  // Starting with the 10.5 SDK, height won't grow, so make it huge to start.
-  NSRect presizeFrame = oldFrame;
-  presizeFrame.size.height = MAXFLOAT;
-  // sizeToFit will blow out the width rather than making the field taller, so
-  // we do it manually.
-  NSSize newSize = [[self cell] cellSizeForBounds:presizeFrame];
-  NSRect newFrame = NSMakeRect(oldFrame.origin.x, oldFrame.origin.y,
-                               NSWidth(oldFrame), newSize.height);
-  [self setFrame:newFrame];
-
-  return newSize.height - NSHeight(oldFrame);
-}
-
-- (CGFloat)breakpad_adjustWidthToFit {
-  NSRect oldFrame = [self frame];
-  [self sizeToFit];
-  return NSWidth([self frame]) - NSWidth(oldFrame);
-}
-@end
-
-@interface NSButton (ResizabilityExtentions)
-// Resizes to fit the label using IB-style size-to-fit metrics and enforcing a
-// minimum width of 70, while preserving the right edge location.
-// Returns the change in width.
-- (CGFloat)breakpad_smartSizeToFit;
-@end
-
-@implementation NSButton (ResizabilityExtentions)
-- (CGFloat)breakpad_smartSizeToFit {
-  NSRect oldFrame = [self frame];
-  [self sizeToFit];
-  NSRect newFrame = [self frame];
-  // sizeToFit gives much worse results that IB's Size to Fit option. This is
-  // the amount of padding IB adds over a sizeToFit, empirically determined.
-  const float kExtraPaddingAmount = 12;
-  const float kMinButtonWidth = 70; // The default button size in IB.
-  newFrame.size.width = NSWidth(newFrame) + kExtraPaddingAmount;
-  if (NSWidth(newFrame) < kMinButtonWidth)
-    newFrame.size.width = kMinButtonWidth;
-  // Preserve the right edge location.
-  newFrame.origin.x = NSMaxX(oldFrame) - NSWidth(newFrame);
-  [self setFrame:newFrame];
-  return NSWidth(newFrame) - NSWidth(oldFrame);
-}
-@end
-
-#pragma mark -
-
-@interface Reporter(PrivateMethods)
-- (id)initWithConfigFile:(const char *)configFile;
-
-// Returns YES if it has been long enough since the last report that we should
-// submit a report for this crash.
-- (BOOL)reportIntervalElapsed;
-
-// Returns YES if we should send the report without asking the user first.
-- (BOOL)shouldSubmitSilently;
-
-// Returns YES if the minidump was generated on demand.
-- (BOOL)isOnDemand;
-
-// Returns YES if we should ask the user to provide comments.
-- (BOOL)shouldRequestComments;
-
-// Returns YES if we should ask the user to provide an email address.
-- (BOOL)shouldRequestEmail;
-
-// Shows UI to the user to ask for permission to send and any extra information
-// we've been instructed to request. Returns YES if the user allows the report
-// to be sent.
-- (BOOL)askUserPermissionToSend;
-
-// Returns the short description of the crash, suitable for use as a dialog
-// title (e.g., "The application Foo has quit unexpectedly").
-- (NSString*)shortDialogMessage;
-
-// Return explanatory text about the crash and the reporter, suitable for the
-// body text of a dialog.
-- (NSString*)explanatoryDialogText;
-
-// Returns the amount of time the UI should be shown before timing out.
-- (NSTimeInterval)messageTimeout;
-
-// Preps the comment-prompting alert window for display:
-// * localizes all the elements
-// * resizes and adjusts layout as necessary for localization
-// * removes the email section if includeEmail is NO
-- (void)configureAlertWindowIncludingEmail:(BOOL)includeEmail;
-
-// Rmevoes the email section of the dialog, adjusting the rest of the window
-// as necessary.
-- (void)removeEmailPrompt;
-
-// Run an alert window with the given timeout. Returns
-// NSRunStoppedResponse if the timeout is exceeded. A timeout of 0
-// queues the message immediately in the modal run loop.
-- (NSInteger)runModalWindow:(NSWindow*)window 
-                withTimeout:(NSTimeInterval)timeout;
-
-// This method is used to periodically update the UI with how many
-// seconds are left in the dialog display.
-- (void)updateSecondsLeftInDialogDisplay:(NSTimer*)theTimer;
-
-// When we receive this notification, it means that the user has
-// begun editing the email address or comments field, and we disable
-// the timers so that the user has as long as they want to type
-// in their comments/email.
-- (void)controlTextDidBeginEditing:(NSNotification *)aNotification;
-
-- (void)report;
-
-@end
-
-@implementation Reporter
-//=============================================================================
-- (id)initWithConfigFile:(const char *)configFile {
-  if ((self = [super init])) {
-    remainingDialogTime_ = 0;
-    uploader_ = [[Uploader alloc] initWithConfigFile:configFile];
-    if (!uploader_) {
-      [self release];
-      return nil;
-    }
-  }
-  return self;
-}
-
-//=============================================================================
-- (BOOL)askUserPermissionToSend {
-  // Initialize Cocoa, needed to display the alert
-  NSApplicationLoad();
-
-  // Get the timeout value for the notification.
-  NSTimeInterval timeout = [self messageTimeout];
-
-  NSInteger buttonPressed = NSAlertAlternateReturn;
-  // Determine whether we should create a text box for user feedback.
-  if ([self shouldRequestComments]) {
-    BOOL didLoadNib = [NSBundle loadNibNamed:@"Breakpad" owner:self];
-    if (!didLoadNib) {
-      return NO;
-    }
-
-    [self configureAlertWindowIncludingEmail:[self shouldRequestEmail]];
-
-    buttonPressed = [self runModalWindow:alertWindow_ withTimeout:timeout];
-
-    // Extract info from the user into the uploader_.
-    if ([self commentsValue]) {
-      [[uploader_ parameters] setObject:[self commentsValue]
-                                 forKey:@BREAKPAD_COMMENTS];
-    }
-    if ([self emailValue]) {
-      [[uploader_ parameters] setObject:[self emailValue]
-                                 forKey:@BREAKPAD_EMAIL];
-    }
-  } else {
-    // Create an alert panel to tell the user something happened
-    NSPanel* alert =
-        NSGetAlertPanel([self shortDialogMessage],
-                        @"%@",
-                        NSLocalizedString(@"sendReportButton", @""),
-                        NSLocalizedString(@"cancelButton", @""),
-                        nil,
-                        [self explanatoryDialogText]);
-
-    // Pop the alert with an automatic timeout, and wait for the response
-    buttonPressed = [self runModalWindow:alert withTimeout:timeout];
-
-    // Release the panel memory
-    NSReleaseAlertPanel(alert);
-  }
-  return buttonPressed == NSAlertDefaultReturn;
-}
-
-- (void)configureAlertWindowIncludingEmail:(BOOL)includeEmail {
-  // Swap in localized values, making size adjustments to impacted elements as
-  // we go. Remember that the origin is in the bottom left, so elements above
-  // "fall" as text areas are shrunk from their overly-large IB sizes.
-
-  // Localize the header. No resizing needed, as it has plenty of room.
-  [dialogTitle_ setStringValue:[self shortDialogMessage]];
-
-  // Localize the explanatory text field.
-  [commentMessage_ setStringValue:[NSString stringWithFormat:@"%@\n\n%@",
-                                   [self explanatoryDialogText],
-                                   NSLocalizedString(@"commentsMsg", @"")]];
-  CGFloat commentHeightDelta = [commentMessage_ breakpad_adjustHeightToFit];
-  [headerBox_ breakpad_shiftVertically:commentHeightDelta];
-  [alertWindow_ breakpad_adjustHeight:commentHeightDelta];
-
-  // Either localize the email explanation field or remove the whole email
-  // section depending on whether or not we are asking for email.
-  if (includeEmail) {
-    [emailMessage_ setStringValue:NSLocalizedString(@"emailMsg", @"")];
-    CGFloat emailHeightDelta = [emailMessage_ breakpad_adjustHeightToFit];
-    [preEmailBox_ breakpad_shiftVertically:emailHeightDelta];
-    [alertWindow_ breakpad_adjustHeight:emailHeightDelta];
-  } else {
-    [self removeEmailPrompt];  // Handles necessary resizing.
-  }
-
-  // Localize the email label, and shift the associated text field.
-  [emailLabel_ setStringValue:NSLocalizedString(@"emailLabel", @"")];
-  CGFloat emailLabelWidthDelta = [emailLabel_ breakpad_adjustWidthToFit];
-  [emailEntryField_ breakpad_shiftHorizontally:emailLabelWidthDelta];
-
-  // Localize the privacy policy label, and keep it right-aligned to the arrow.
-  [privacyLinkLabel_ setStringValue:NSLocalizedString(@"privacyLabel", @"")];
-  CGFloat privacyLabelWidthDelta =
-      [privacyLinkLabel_ breakpad_adjustWidthToFit];
-  [privacyLinkLabel_ breakpad_shiftHorizontally:(-privacyLabelWidthDelta)];
-
-  // Ensure that the email field and the privacy policy link don't overlap.
-  CGFloat kMinControlPadding = 8;
-  CGFloat maxEmailFieldWidth = NSMinX([privacyLinkLabel_ frame]) -
-                               NSMinX([emailEntryField_ frame]) -
-                               kMinControlPadding;
-  if (NSWidth([emailEntryField_ bounds]) > maxEmailFieldWidth &&
-      maxEmailFieldWidth > 0) {
-    NSSize emailSize = [emailEntryField_ frame].size;
-    emailSize.width = maxEmailFieldWidth;
-    [emailEntryField_ setFrameSize:emailSize];
-  }
-
-  // Localize the placeholder text.
-  [[commentsEntryField_ cell]
-      setPlaceholderString:NSLocalizedString(@"commentsPlaceholder", @"")];
-  [[emailEntryField_ cell]
-      setPlaceholderString:NSLocalizedString(@"emailPlaceholder", @"")];
-
-  // Localize the buttons, and keep the cancel button at the right distance.
-  [sendButton_ setTitle:NSLocalizedString(@"sendReportButton", @"")];
-  CGFloat sendButtonWidthDelta = [sendButton_ breakpad_smartSizeToFit];
-  [cancelButton_ breakpad_shiftHorizontally:(-sendButtonWidthDelta)];
-  [cancelButton_ setTitle:NSLocalizedString(@"cancelButton", @"")];
-  [cancelButton_ breakpad_smartSizeToFit];
-}
-
-- (void)removeEmailPrompt {
-  [emailSectionBox_ setHidden:YES];
-  CGFloat emailSectionHeight = NSHeight([emailSectionBox_ frame]);
-  [preEmailBox_ breakpad_shiftVertically:(-emailSectionHeight)];
-  [alertWindow_ breakpad_adjustHeight:(-emailSectionHeight)];
-}
-
-- (NSInteger)runModalWindow:(NSWindow*)window 
-                withTimeout:(NSTimeInterval)timeout {
-  // Queue a |stopModal| message to be performed in |timeout| seconds.
-  if (timeout > 0.001) {
-    remainingDialogTime_ = timeout;
-    SEL updateSelector = @selector(updateSecondsLeftInDialogDisplay:);
-    messageTimer_ = [NSTimer scheduledTimerWithTimeInterval:1.0
-                                                     target:self
-                                                   selector:updateSelector
-                                                   userInfo:nil
-                                                    repeats:YES];
-  }
-
-  // Run the window modally and wait for either a |stopModal| message or a
-  // button click.
-  [NSApp activateIgnoringOtherApps:YES];
-  NSInteger returnMethod = [NSApp runModalForWindow:window];
-
-  return returnMethod;
-}
-
-- (IBAction)sendReport:(id)sender {
-  // Force the text fields to end editing so text for the currently focused
-  // field will be commited.
-  [alertWindow_ makeFirstResponder:alertWindow_];
-
-  [alertWindow_ orderOut:self];
-  // Use NSAlertDefaultReturn so that the return value of |runModalWithWindow|
-  // matches the AppKit function NSRunAlertPanel()
-  [NSApp stopModalWithCode:NSAlertDefaultReturn];
-}
-
-// UI Button Actions
-//=============================================================================
-- (IBAction)cancel:(id)sender {
-  [alertWindow_ orderOut:self];
-  // Use NSAlertDefaultReturn so that the return value of |runModalWithWindow|
-  // matches the AppKit function NSRunAlertPanel()
-  [NSApp stopModalWithCode:NSAlertAlternateReturn];
-}
-
-- (IBAction)showPrivacyPolicy:(id)sender {
-  // Get the localized privacy policy URL and open it in the default browser.
-  NSURL* privacyPolicyURL =
-      [NSURL URLWithString:NSLocalizedString(@"privacyPolicyURL", @"")];
-  [[NSWorkspace sharedWorkspace] openURL:privacyPolicyURL];
-}
-
-// Text Field Delegate Methods
-//=============================================================================
-- (BOOL)    control:(NSControl*)control
-           textView:(NSTextView*)textView
-doCommandBySelector:(SEL)commandSelector {
-  BOOL result = NO;
-  // If the user has entered text on the comment field, don't end
-  // editing on "return".
-  if (control == commentsEntryField_ &&
-      commandSelector == @selector(insertNewline:)
-      && [[textView string] length] > 0) {
-    [textView insertNewlineIgnoringFieldEditor:self];
-    result = YES;
-  }
-  return result;
-}
-
-- (void)controlTextDidBeginEditing:(NSNotification *)aNotification {
-  [messageTimer_ invalidate];
-  [self setCountdownMessage:@""];
-}
-
-- (void)updateSecondsLeftInDialogDisplay:(NSTimer*)theTimer {
-  remainingDialogTime_ -= 1;
-
-  NSString *countdownMessage;
-  NSString *formatString;
-
-  int displayedTimeLeft; // This can be either minutes or seconds.
-  
-  if (remainingDialogTime_ > 59) {
-    // calculate minutes remaining for UI purposes
-    displayedTimeLeft = (int)(remainingDialogTime_ / 60);
-    
-    if (displayedTimeLeft == 1) {
-      formatString = NSLocalizedString(@"countdownMsgMinuteSingular", @"");
-    } else {
-      formatString = NSLocalizedString(@"countdownMsgMinutesPlural", @"");
-    }
-  } else {
-    displayedTimeLeft = (int)remainingDialogTime_;
-    if (displayedTimeLeft == 1) {
-      formatString = NSLocalizedString(@"countdownMsgSecondSingular", @"");
-    } else {
-      formatString = NSLocalizedString(@"countdownMsgSecondsPlural", @"");
-    }
-  }
-  countdownMessage = [NSString stringWithFormat:formatString,
-                               displayedTimeLeft];
-  if (remainingDialogTime_ <= 30) {
-    [countdownLabel_ setTextColor:[NSColor redColor]];
-  }
-  [self setCountdownMessage:countdownMessage];
-  if (remainingDialogTime_ <= 0) {
-    [messageTimer_ invalidate];
-    [NSApp stopModal];
-  }
-}
-
-
-
-#pragma mark Accessors
-#pragma mark -
-//=============================================================================
-
-- (NSString *)commentsValue {
-  return [[commentsValue_ retain] autorelease];
-}
-
-- (void)setCommentsValue:(NSString *)value {
-  if (commentsValue_ != value) {
-    [commentsValue_ release];
-    commentsValue_ = [value copy];
-  }
-}
-
-- (NSString *)emailValue {
-  return [[emailValue_ retain] autorelease];
-}
-
-- (void)setEmailValue:(NSString *)value {
-  if (emailValue_ != value) {
-    [emailValue_ release];
-    emailValue_ = [value copy];
-  }
-}
-
-- (NSString *)countdownMessage {
-  return [[countdownMessage_ retain] autorelease];
-}
-
-- (void)setCountdownMessage:(NSString *)value {
-  if (countdownMessage_ != value) {
-    [countdownMessage_ release];
-    countdownMessage_ = [value copy];
-  }
-}
-
-#pragma mark -
-//=============================================================================
-- (BOOL)reportIntervalElapsed {
-  float interval = [[[uploader_ parameters]
-      objectForKey:@BREAKPAD_REPORT_INTERVAL] floatValue];
-  NSString *program = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
-  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSMutableDictionary *programDict =
-    [NSMutableDictionary dictionaryWithDictionary:[ud dictionaryForKey:program]];
-  NSNumber *lastTimeNum = [programDict objectForKey:kLastSubmission];
-  NSTimeInterval lastTime = lastTimeNum ? [lastTimeNum floatValue] : 0;
-  NSTimeInterval now = CFAbsoluteTimeGetCurrent();
-  NSTimeInterval spanSeconds = (now - lastTime);
-
-  [programDict setObject:[NSNumber numberWithDouble:now] 
-                  forKey:kLastSubmission];
-  [ud setObject:programDict forKey:program];
-  [ud synchronize];
-
-  // If we've specified an interval and we're within that time, don't ask the
-  // user if we should report
-  GTMLoggerDebug(@"Reporter Interval: %f", interval);
-  if (interval > spanSeconds) {
-    GTMLoggerDebug(@"Within throttling interval, not sending report");
-    return NO;
-  }
-  return YES;
-}
-
-- (BOOL)isOnDemand {
-  return [[[uploader_ parameters] objectForKey:@BREAKPAD_ON_DEMAND]
-	   isEqualToString:@"YES"];
-}
-
-- (BOOL)shouldSubmitSilently {
-  return [[[uploader_ parameters] objectForKey:@BREAKPAD_SKIP_CONFIRM]
-            isEqualToString:@"YES"];
-}
-
-- (BOOL)shouldRequestComments {
-  return [[[uploader_ parameters] objectForKey:@BREAKPAD_REQUEST_COMMENTS]
-            isEqualToString:@"YES"];
-}
-
-- (BOOL)shouldRequestEmail {
-  return [[[uploader_ parameters] objectForKey:@BREAKPAD_REQUEST_EMAIL]
-            isEqualToString:@"YES"];
-}
-
-- (NSString*)shortDialogMessage {
-  NSString *displayName =
-      [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
-  if (![displayName length])
-    displayName = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
-
-  if ([self isOnDemand]) {
-    // Local variable to pacify clang's -Wformat-extra-args.
-    NSString* format = NSLocalizedString(@"noCrashDialogHeader", @"");
-    return [NSString stringWithFormat:format, displayName];
-  } else {
-    // Local variable to pacify clang's -Wformat-extra-args.
-    NSString* format = NSLocalizedString(@"crashDialogHeader", @"");
-    return [NSString stringWithFormat:format, displayName];
-  }
-}
-
-- (NSString*)explanatoryDialogText {
-  NSString *displayName =
-      [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT_DISPLAY];
-  if (![displayName length])
-    displayName = [[uploader_ parameters] objectForKey:@BREAKPAD_PRODUCT];
-
-  NSString *vendor = [[uploader_ parameters] objectForKey:@BREAKPAD_VENDOR];
-  if (![vendor length])
-    vendor = @"unknown vendor";
-
-  if ([self isOnDemand]) {
-    // Local variable to pacify clang's -Wformat-extra-args.
-    NSString* format = NSLocalizedString(@"noCrashDialogMsg", @"");
-    return [NSString stringWithFormat:format, vendor, displayName];
-  } else {
-    // Local variable to pacify clang's -Wformat-extra-args.
-    NSString* format = NSLocalizedString(@"crashDialogMsg", @"");
-    return [NSString stringWithFormat:format, vendor];
-  }
-}
-
-- (NSTimeInterval)messageTimeout {
-  // Get the timeout value for the notification.
-  NSTimeInterval timeout = [[[uploader_ parameters]
-      objectForKey:@BREAKPAD_CONFIRM_TIMEOUT] floatValue];
-  // Require a timeout of at least a minute (except 0, which means no timeout).
-  if (timeout > 0.001 && timeout < 60.0) {
-    timeout = 60.0;
-  }
-  return timeout;
-}
-
-- (void)report {
-  [uploader_ report];
-}
-
-//=============================================================================
-- (void)dealloc {
-  [uploader_ release];
-  [super dealloc];
-}
-
-- (void)awakeFromNib {
-  [emailEntryField_ setMaximumLength:kEmailMaxLength];
-  [commentsEntryField_ setMaximumLength:kUserCommentsMaxLength];
-}
-
-@end
-
-//=============================================================================
-@implementation LengthLimitingTextField
-
-- (void)setMaximumLength:(NSUInteger)maxLength {
-  maximumLength_ = maxLength;
-}
-
-// This is the method we're overriding in NSTextField, which lets us
-// limit the user's input if it makes the string too long.
-- (BOOL)       textView:(NSTextView *)textView
-shouldChangeTextInRange:(NSRange)affectedCharRange
-      replacementString:(NSString *)replacementString {
-
-  // Sometimes the range comes in invalid, so reject if we can't
-  // figure out if the replacement text is too long.
-  if (affectedCharRange.location == NSNotFound) {
-    return NO;
-  }
-  // Figure out what the new string length would be, taking into
-  // account user selections.
-  NSUInteger newStringLength =
-    [[textView string] length] - affectedCharRange.length +
-    [replacementString length];
-  if (newStringLength > maximumLength_) {
-    return NO;
-  } else {
-    return YES;
-  }
-}
-
-// Cut, copy, and paste have to be caught specifically since there is no menu.
-- (BOOL)performKeyEquivalent:(NSEvent*)event {
-  // Only handle the key equivalent if |self| is the text field with focus.
-  NSText* fieldEditor = [self currentEditor];
-  if (fieldEditor != nil) {
-    // Check for a single "Command" modifier
-    NSUInteger modifiers = [event modifierFlags];
-    modifiers &= NSDeviceIndependentModifierFlagsMask;
-    if (modifiers == NSCommandKeyMask) {
-      // Now, check for Select All, Cut, Copy, or Paste key equivalents.
-      NSString* characters = [event characters];
-      // Select All is Command-A.
-      if ([characters isEqualToString:@"a"]) {
-        [fieldEditor selectAll:self];
-        return YES;
-      // Cut is Command-X.
-      } else if ([characters isEqualToString:@"x"]) {
-        [fieldEditor cut:self];
-        return YES;
-      // Copy is Command-C.
-      } else if ([characters isEqualToString:@"c"]) {
-        [fieldEditor copy:self];
-        return YES;
-      // Paste is Command-V.
-      } else if ([characters isEqualToString:@"v"]) {
-        [fieldEditor paste:self];
-        return YES;
-      }
-    }
-  }
-  // Let the super class handle the rest (e.g. Command-Period will cancel).
-  return [super performKeyEquivalent:event];
-}
-
-@end
-
-//=============================================================================
-int main(int argc, const char *argv[]) {
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-#if DEBUG
-  // Log to stderr in debug builds.
-  [GTMLogger setSharedLogger:[GTMLogger standardLoggerWithStderr]];
-#endif
-  GTMLoggerDebug(@"Reporter Launched, argc=%d", argc);
-  // The expectation is that there will be one argument which is the path
-  // to the configuration file
-  if (argc != 2) {
-    exit(1);
-  }
-
-  Reporter *reporter = [[Reporter alloc] initWithConfigFile:argv[1]];
-  if (!reporter) {
-    GTMLoggerDebug(@"reporter initialization failed");
-    exit(1);
-  }
-
-  // only submit a report if we have not recently crashed in the past
-  BOOL shouldSubmitReport = [reporter reportIntervalElapsed];
-  BOOL okayToSend = NO;
-
-  // ask user if we should send
-  if (shouldSubmitReport) {
-    if ([reporter shouldSubmitSilently]) {
-      GTMLoggerDebug(@"Skipping confirmation and sending report");
-      okayToSend = YES;
-    } else {
-      okayToSend = [reporter askUserPermissionToSend];
-    }
-  }
-
-  // If we're running as root, switch over to nobody
-  if (getuid() == 0 || geteuid() == 0) {
-    struct passwd *pw = getpwnam("nobody");
-
-    // If we can't get a non-root uid, don't send the report
-    if (!pw) {
-      GTMLoggerDebug(@"!pw - %s", strerror(errno));
-      exit(0);
-    }
-
-    if (setgid(pw->pw_gid) == -1) {
-      GTMLoggerDebug(@"setgid(pw->pw_gid) == -1 - %s", strerror(errno));
-      exit(0);
-    }
-
-    if (setuid(pw->pw_uid) == -1) {
-      GTMLoggerDebug(@"setuid(pw->pw_uid) == -1 - %s", strerror(errno));
-      exit(0);
-    }
-  }
-  else {
-     GTMLoggerDebug(@"getuid() !=0 || geteuid() != 0");
-  }
-
-  if (okayToSend && shouldSubmitReport) {
-    GTMLoggerDebug(@"Sending Report");
-    [reporter report];
-    GTMLoggerDebug(@"Report Sent!");
-  } else {
-    GTMLoggerDebug(@"Not sending crash report okayToSend=%d, "\
-                     "shouldSubmitReport=%d", okayToSend, shouldSubmitReport);
-  }
-
-  GTMLoggerDebug(@"Exiting with no errors");
-  // Cleanup
-  [reporter release];
-  [pool release];
-  return 0;
-}
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 2b8bb969398e68e8cec2fb664b816d9c5761a3d4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 3180973eacedb2f7b1e4ab897a7343ed43c64329..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 73da36f48b35902943a91752a8f9d5df5f82fa90..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a82c013e059dbf7918192662fe2d4030ff6aee37..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index c31d6f48bb2c7e913abc209842492eeb7d2364af..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index c32f8ff7a6219853e541db1bf3df512b3f5e7786..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index f318a56711d43d1b8925f1c26e709da0872dd607..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a4b7fd3acd5f3b8030d47d81fa4c3db03a1d987c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 1f1a4fee5cd6f98defce31446463266b67048904..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a4a54f75936fbbd8ea7d1ddd578555cbbae9d996..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 725ef5a26298400705791e12a36c232a8262fd3f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 585f6221dc91a2e19ef05347bbee12e0626e227e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b7dfeecebe02c401d3d6e6f124fe16974d81fd60..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 4cfd32c54b7f216718ef1a97d69bd92a2a92a143..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index f7d1251668bb433b683da995409eacb54d5fc0be..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 088fb4f6cd3ed0b07763ca02b8c608f97ddfff67..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index a82f990edcd36c5bd6abc8c76abbf399717a0dc7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/uploader.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// This component uses the HTTPMultipartUpload of the breakpad project to send
-// the minidump and associated data to the crash reporting servers.
-// It will perform throttling based on the parameters passed to it and will
-// prompt the user to send the minidump.
-
-#include <Foundation/Foundation.h>
-
-#import "common/mac/GTMDefines.h"
-
-#define kClientIdPreferenceKey @"clientid"
-
-extern NSString *const kGoogleServerType;
-extern NSString *const kSocorroServerType;
-extern NSString *const kDefaultServerType;
-
-@interface Uploader : NSObject {
- @private
-  NSMutableDictionary *parameters_;        // Key value pairs of data (STRONG)
-  NSData *minidumpContents_;               // The data in the minidump (STRONG)
-  NSData *logFileData_;                    // An NSdata for the tar,
-                                           // bz2'd log file.
-  NSMutableDictionary *serverDictionary_;  // The dictionary mapping a
-                                           // server type name to a
-                                           // dictionary of server
-                                           // parameter names.
-  NSMutableDictionary *socorroDictionary_; // The dictionary for
-                                           // Socorro.
-  NSMutableDictionary *googleDictionary_;  // The dictionary for
-                                           // Google.
-  NSMutableDictionary *extraServerVars_;   // A dictionary containing
-                                           // extra key/value pairs
-                                           // that are uploaded to the
-                                           // crash server with the
-                                           // minidump.
-}
-
-- (id)initWithConfigFile:(const char *)configFile;
-
-- (id)initWithConfig:(NSDictionary *)config;
-
-// Reads the file |configFile| and returns the corresponding NSDictionary.
-// |configFile| will be deleted after reading.
-+ (NSDictionary *)readConfigurationDataFromFile:(NSString *)configFile;
-
-- (NSMutableDictionary *)parameters;
-
-- (void)report;
-
-// Upload the given data to the crash server.
-- (void)uploadData:(NSData *)data name:(NSString *)name;
-
-// This method adds a key/value pair to the dictionary that
-// will be uploaded to the crash server.
-- (void)addServerParameter:(id)value forKey:(NSString *)key;
-
-// This method process the HTTP response and renames the minidump file with the
-// new ID.
-- (void)handleNetworkResponse:(NSData *)data withError:(NSError *)error;
-
-@end
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/sender/uploader.mm
+++ /dev/null
@@ -1,636 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <fcntl.h>
-#import <sys/stat.h>
-#include <TargetConditionals.h>
-#import <unistd.h>
-
-#import <SystemConfiguration/SystemConfiguration.h>
-
-#import "common/mac/HTTPMultipartUpload.h"
-
-#import "client/apple/Framework/BreakpadDefines.h"
-#import "client/mac/sender/uploader.h"
-#import "common/mac/GTMLogger.h"
-
-const int kMinidumpFileLengthLimit = 2 * 1024 * 1024;  // 2MB
-
-#define kApplePrefsSyncExcludeAllKey \
-  @"com.apple.PreferenceSync.ExcludeAllSyncKeys"
-
-NSString *const kGoogleServerType = @"google";
-NSString *const kSocorroServerType = @"socorro";
-NSString *const kDefaultServerType = @"google";
-
-#pragma mark -
-
-namespace {
-// Read one line from the configuration file.
-NSString *readString(int fileId) {
-  NSMutableString *str = [NSMutableString stringWithCapacity:32];
-  char ch[2] = { 0 };
-
-  while (read(fileId, &ch[0], 1) == 1) {
-    if (ch[0] == '\n') {
-      // Break if this is the first newline after reading some other string
-      // data.
-      if ([str length])
-        break;
-    } else {
-      [str appendString:[NSString stringWithUTF8String:ch]];
-    }
-  }
-
-  return str;
-}
-
-//=============================================================================
-// Read |length| of binary data from the configuration file. This method will
-// returns |nil| in case of error.
-NSData *readData(int fileId, ssize_t length) {
-  NSMutableData *data = [NSMutableData dataWithLength:length];
-  char *bytes = (char *)[data bytes];
-
-  if (read(fileId, bytes, length) != length)
-    return nil;
-
-  return data;
-}
-
-//=============================================================================
-// Read the configuration from the config file.
-NSDictionary *readConfigurationData(const char *configFile) {
-  int fileId = open(configFile, O_RDONLY, 0600);
-  if (fileId == -1) {
-    GTMLoggerDebug(@"Couldn't open config file %s - %s",
-                   configFile,
-                   strerror(errno));
-  }
-
-  // we want to avoid a build-up of old config files even if they
-  // have been incorrectly written by the framework
-  if (unlink(configFile)) {
-    GTMLoggerDebug(@"Couldn't unlink config file %s - %s",
-                   configFile,
-                   strerror(errno));
-  }
-
-  if (fileId == -1) {
-    return nil;
-  }
-
-  NSMutableDictionary *config = [NSMutableDictionary dictionary];
-
-  while (1) {
-    NSString *key = readString(fileId);
-
-    if (![key length])
-      break;
-
-    // Read the data.  Try to convert to a UTF-8 string, or just save
-    // the data
-    NSString *lenStr = readString(fileId);
-    ssize_t len = [lenStr intValue];
-    NSData *data = readData(fileId, len);
-    id value = [[NSString alloc] initWithData:data
-                                     encoding:NSUTF8StringEncoding];
-
-    [config setObject:(value ? value : data) forKey:key];
-    [value release];
-  }
-
-  close(fileId);
-  return config;
-}
-}  // namespace
-
-#pragma mark -
-
-@interface Uploader(PrivateMethods)
-
-// Update |parameters_| as well as the server parameters using |config|.
-- (void)translateConfigurationData:(NSDictionary *)config;
-
-// Read the minidump referenced in |parameters_| and update |minidumpContents_|
-// with its content.
-- (BOOL)readMinidumpData;
-
-// Read the log files referenced in |parameters_| and update |logFileData_|
-// with their content.
-- (BOOL)readLogFileData;
-
-// Returns a unique client id (user-specific), creating a persistent
-// one in the user defaults, if necessary.
-- (NSString*)clientID;
-
-// Returns a dictionary that can be used to map Breakpad parameter names to
-// URL parameter names.
-- (NSMutableDictionary *)dictionaryForServerType:(NSString *)serverType;
-
-// Helper method to set HTTP parameters based on server type.  This is
-// called right before the upload - crashParameters will contain, on exit,
-// URL parameters that should be sent with the minidump.
-- (BOOL)populateServerDictionary:(NSMutableDictionary *)crashParameters;
-
-// Initialization helper to create dictionaries mapping Breakpad
-// parameters to URL parameters
-- (void)createServerParameterDictionaries;
-
-// Accessor method for the URL parameter dictionary
-- (NSMutableDictionary *)urlParameterDictionary;
-
-// Records the uploaded crash ID to the log file.
-- (void)logUploadWithID:(const char *)uploadID;
-@end
-
-@implementation Uploader
-
-//=============================================================================
-- (id)initWithConfigFile:(const char *)configFile {
-  NSDictionary *config = readConfigurationData(configFile);
-  if (!config)
-    return nil;
-
-  return [self initWithConfig:config];
-}
-
-//=============================================================================
-- (id)initWithConfig:(NSDictionary *)config {
-  if ((self = [super init])) {
-    // Because the reporter is embedded in the framework (and many copies
-    // of the framework may exist) its not completely certain that the OS
-    // will obey the com.apple.PreferenceSync.ExcludeAllSyncKeys in our
-    // Info.plist. To make sure, also set the key directly if needed.
-    NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-    if (![ud boolForKey:kApplePrefsSyncExcludeAllKey]) {
-      [ud setBool:YES forKey:kApplePrefsSyncExcludeAllKey];
-    }
-
-    [self createServerParameterDictionaries];
-
-    [self translateConfigurationData:config];
-
-    // Read the minidump into memory.
-    [self readMinidumpData];
-    [self readLogFileData];
-  }
-  return self;
-}
-
-//=============================================================================
-+ (NSDictionary *)readConfigurationDataFromFile:(NSString *)configFile {
-  return readConfigurationData([configFile fileSystemRepresentation]);
-}
-
-//=============================================================================
-- (void)translateConfigurationData:(NSDictionary *)config {
-  parameters_ = [[NSMutableDictionary alloc] init];
-
-  NSEnumerator *it = [config keyEnumerator];
-  while (NSString *key = [it nextObject]) {
-    // If the keyname is prefixed by BREAKPAD_SERVER_PARAMETER_PREFIX
-    // that indicates that it should be uploaded to the server along
-    // with the minidump, so we treat it specially.
-    if ([key hasPrefix:@BREAKPAD_SERVER_PARAMETER_PREFIX]) {
-      NSString *urlParameterKey =
-        [key substringFromIndex:[@BREAKPAD_SERVER_PARAMETER_PREFIX length]];
-      if ([urlParameterKey length]) {
-        id value = [config objectForKey:key];
-        if ([value isKindOfClass:[NSString class]]) {
-          [self addServerParameter:(NSString *)value
-                            forKey:urlParameterKey];
-        } else {
-          [self addServerParameter:(NSData *)value
-                            forKey:urlParameterKey];
-        }
-      }
-    } else {
-      [parameters_ setObject:[config objectForKey:key] forKey:key];
-    }
-  }
-
-  // generate a unique client ID based on this host's MAC address
-  // then add a key/value pair for it
-  NSString *clientID = [self clientID];
-  [parameters_ setObject:clientID forKey:@"guid"];
-}
-
-// Per user per machine
-- (NSString *)clientID {
-  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  NSString *crashClientID = [ud stringForKey:kClientIdPreferenceKey];
-  if (crashClientID) {
-    return crashClientID;
-  }
-
-  // Otherwise, if we have no client id, generate one!
-  srandom((int)[[NSDate date] timeIntervalSince1970]);
-  long clientId1 = random();
-  long clientId2 = random();
-  long clientId3 = random();
-  crashClientID = [NSString stringWithFormat:@"%lx%lx%lx",
-                            clientId1, clientId2, clientId3];
-
-  [ud setObject:crashClientID forKey:kClientIdPreferenceKey];
-  [ud synchronize];
-  return crashClientID;
-}
-
-//=============================================================================
-- (BOOL)readLogFileData {
-#if TARGET_OS_IPHONE
-  return NO;
-#else
-  unsigned int logFileCounter = 0;
-
-  NSString *logPath;
-  size_t logFileTailSize =
-      [[parameters_ objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE] intValue];
-
-  NSMutableArray *logFilenames; // An array of NSString, one per log file
-  logFilenames = [[NSMutableArray alloc] init];
-
-  char tmpDirTemplate[80] = "/tmp/CrashUpload-XXXXX";
-  char *tmpDir = mkdtemp(tmpDirTemplate);
-
-  // Construct key names for the keys we expect to contain log file paths
-  for(logFileCounter = 0;; logFileCounter++) {
-    NSString *logFileKey = [NSString stringWithFormat:@"%@%d",
-                                     @BREAKPAD_LOGFILE_KEY_PREFIX,
-                                     logFileCounter];
-
-    logPath = [parameters_ objectForKey:logFileKey];
-
-    // They should all be consecutive, so if we don't find one, assume
-    // we're done
-
-    if (!logPath) {
-      break;
-    }
-
-    NSData *entireLogFile = [[NSData alloc] initWithContentsOfFile:logPath];
-
-    if (entireLogFile == nil) {
-      continue;
-    }
-
-    NSRange fileRange;
-
-    // Truncate the log file, only if necessary
-
-    if ([entireLogFile length] <= logFileTailSize) {
-      fileRange = NSMakeRange(0, [entireLogFile length]);
-    } else {
-      fileRange = NSMakeRange([entireLogFile length] - logFileTailSize,
-                              logFileTailSize);
-    }
-
-    char tmpFilenameTemplate[100];
-
-    // Generate a template based on the log filename
-    sprintf(tmpFilenameTemplate,"%s/%s-XXXX", tmpDir,
-            [[logPath lastPathComponent] fileSystemRepresentation]);
-
-    char *tmpFile = mktemp(tmpFilenameTemplate);
-
-    NSData *logSubdata = [entireLogFile subdataWithRange:fileRange];
-    NSString *tmpFileString = [NSString stringWithUTF8String:tmpFile];
-    [logSubdata writeToFile:tmpFileString atomically:NO];
-
-    [logFilenames addObject:[tmpFileString lastPathComponent]];
-    [entireLogFile release];
-  }
-
-  if ([logFilenames count] == 0) {
-    [logFilenames release];
-    logFileData_ =  nil;
-    return NO;
-  }
-
-  // now, bzip all files into one
-  NSTask *tarTask = [[NSTask alloc] init];
-
-  [tarTask setCurrentDirectoryPath:[NSString stringWithUTF8String:tmpDir]];
-  [tarTask setLaunchPath:@"/usr/bin/tar"];
-
-  NSMutableArray *bzipArgs = [NSMutableArray arrayWithObjects:@"-cjvf",
-                                             @"log.tar.bz2",nil];
-  [bzipArgs addObjectsFromArray:logFilenames];
-
-  [logFilenames release];
-
-  [tarTask setArguments:bzipArgs];
-  [tarTask launch];
-  [tarTask waitUntilExit];
-  [tarTask release];
-
-  NSString *logTarFile = [NSString stringWithFormat:@"%s/log.tar.bz2",tmpDir];
-  logFileData_ = [[NSData alloc] initWithContentsOfFile:logTarFile];
-  if (logFileData_ == nil) {
-    GTMLoggerDebug(@"Cannot find temp tar log file: %@", logTarFile);
-    return NO;
-  }
-  return YES;
-#endif  // TARGET_OS_IPHONE
-}
-
-//=============================================================================
-- (BOOL)readMinidumpData {
-  NSString *minidumpDir =
-      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
-  NSString *minidumpID = [parameters_ objectForKey:@kReporterMinidumpIDKey];
-
-  if (![minidumpID length])
-    return NO;
-
-  NSString *path = [minidumpDir stringByAppendingPathComponent:minidumpID];
-  path = [path stringByAppendingPathExtension:@"dmp"];
-
-  // check the size of the minidump and limit it to a reasonable size
-  // before attempting to load into memory and upload
-  const char *fileName = [path fileSystemRepresentation];
-  struct stat fileStatus;
-
-  BOOL success = YES;
-
-  if (!stat(fileName, &fileStatus)) {
-    if (fileStatus.st_size > kMinidumpFileLengthLimit) {
-      fprintf(stderr, "Breakpad Uploader: minidump file too large " \
-              "to upload : %d\n", (int)fileStatus.st_size);
-      success = NO;
-    }
-  } else {
-      fprintf(stderr, "Breakpad Uploader: unable to determine minidump " \
-              "file length\n");
-      success = NO;
-  }
-
-  if (success) {
-    minidumpContents_ = [[NSData alloc] initWithContentsOfFile:path];
-    success = ([minidumpContents_ length] ? YES : NO);
-  }
-
-  if (!success) {
-    // something wrong with the minidump file -- delete it
-    unlink(fileName);
-  }
-
-  return success;
-}
-
-#pragma mark -
-//=============================================================================
-
-- (void)createServerParameterDictionaries {
-  serverDictionary_ = [[NSMutableDictionary alloc] init];
-  socorroDictionary_ = [[NSMutableDictionary alloc] init];
-  googleDictionary_ = [[NSMutableDictionary alloc] init];
-  extraServerVars_ = [[NSMutableDictionary alloc] init];
-
-  [serverDictionary_ setObject:socorroDictionary_ forKey:kSocorroServerType];
-  [serverDictionary_ setObject:googleDictionary_ forKey:kGoogleServerType];
-
-  [googleDictionary_ setObject:@"ptime" forKey:@BREAKPAD_PROCESS_UP_TIME];
-  [googleDictionary_ setObject:@"email" forKey:@BREAKPAD_EMAIL];
-  [googleDictionary_ setObject:@"comments" forKey:@BREAKPAD_COMMENTS];
-  [googleDictionary_ setObject:@"prod" forKey:@BREAKPAD_PRODUCT];
-  [googleDictionary_ setObject:@"ver" forKey:@BREAKPAD_VERSION];
-  [googleDictionary_ setObject:@"guid" forKey:@"guid"];
-
-  [socorroDictionary_ setObject:@"Comments" forKey:@BREAKPAD_COMMENTS];
-  [socorroDictionary_ setObject:@"CrashTime"
-                         forKey:@BREAKPAD_PROCESS_CRASH_TIME];
-  [socorroDictionary_ setObject:@"StartupTime"
-                         forKey:@BREAKPAD_PROCESS_START_TIME];
-  [socorroDictionary_ setObject:@"Version"
-                         forKey:@BREAKPAD_VERSION];
-  [socorroDictionary_ setObject:@"ProductName"
-                         forKey:@BREAKPAD_PRODUCT];
-  [socorroDictionary_ setObject:@"Email"
-                         forKey:@BREAKPAD_EMAIL];
-}
-
-- (NSMutableDictionary *)dictionaryForServerType:(NSString *)serverType {
-  if (serverType == nil || [serverType length] == 0) {
-    return [serverDictionary_ objectForKey:kDefaultServerType];
-  }
-  return [serverDictionary_ objectForKey:serverType];
-}
-
-- (NSMutableDictionary *)urlParameterDictionary {
-  NSString *serverType = [parameters_ objectForKey:@BREAKPAD_SERVER_TYPE];
-  return [self dictionaryForServerType:serverType];
-
-}
-
-- (BOOL)populateServerDictionary:(NSMutableDictionary *)crashParameters {
-  NSDictionary *urlParameterNames = [self urlParameterDictionary];
-
-  id key;
-  NSEnumerator *enumerator = [parameters_ keyEnumerator];
-
-  while ((key = [enumerator nextObject])) {
-    // The key from parameters_ corresponds to a key in
-    // urlParameterNames.  The value in parameters_ gets stored in
-    // crashParameters with a key that is the value in
-    // urlParameterNames.
-
-    // For instance, if parameters_ has [PRODUCT_NAME => "FOOBAR"] and
-    // urlParameterNames has [PRODUCT_NAME => "pname"] the final HTTP
-    // URL parameter becomes [pname => "FOOBAR"].
-    NSString *breakpadParameterName = (NSString *)key;
-    NSString *urlParameter = [urlParameterNames
-                                   objectForKey:breakpadParameterName];
-    if (urlParameter) {
-      [crashParameters setObject:[parameters_ objectForKey:key]
-                          forKey:urlParameter];
-    }
-  }
-
-  // Now, add the parameters that were added by the application.
-  enumerator = [extraServerVars_ keyEnumerator];
-
-  while ((key = [enumerator nextObject])) {
-    NSString *urlParameterName = (NSString *)key;
-    NSString *urlParameterValue =
-      [extraServerVars_ objectForKey:urlParameterName];
-    [crashParameters setObject:urlParameterValue
-                        forKey:urlParameterName];
-  }
-  return YES;
-}
-
-- (void)addServerParameter:(id)value forKey:(NSString *)key {
-  [extraServerVars_ setObject:value forKey:key];
-}
-
-//=============================================================================
-- (void)handleNetworkResponse:(NSData *)data withError:(NSError *)error {
-  NSString *result = [[NSString alloc] initWithData:data
-                                           encoding:NSUTF8StringEncoding];
-  const char *reportID = "ERR";
-  if (error) {
-    fprintf(stderr, "Breakpad Uploader: Send Error: %s\n",
-            [[error description] UTF8String]);
-  } else {
-    NSCharacterSet *trimSet =
-        [NSCharacterSet whitespaceAndNewlineCharacterSet];
-    reportID = [[result stringByTrimmingCharactersInSet:trimSet] UTF8String];
-    [self logUploadWithID:reportID];
-  }
-
-  // rename the minidump file according to the id returned from the server
-  NSString *minidumpDir =
-      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
-  NSString *minidumpID = [parameters_ objectForKey:@kReporterMinidumpIDKey];
-
-  NSString *srcString = [NSString stringWithFormat:@"%@/%@.dmp",
-                                  minidumpDir, minidumpID];
-  NSString *destString = [NSString stringWithFormat:@"%@/%s.dmp",
-                                   minidumpDir, reportID];
-
-  const char *src = [srcString fileSystemRepresentation];
-  const char *dest = [destString fileSystemRepresentation];
-
-  if (rename(src, dest) == 0) {
-    GTMLoggerInfo(@"Breakpad Uploader: Renamed %s to %s after successful " \
-                  "upload",src, dest);
-  }
-  else {
-    // can't rename - don't worry - it's not important for users
-    GTMLoggerDebug(@"Breakpad Uploader: successful upload report ID = %s\n",
-                   reportID );
-  }
-  [result release];
-}
-
-//=============================================================================
-- (void)report {
-  NSURL *url = [NSURL URLWithString:[parameters_ objectForKey:@BREAKPAD_URL]];
-  HTTPMultipartUpload *upload = [[HTTPMultipartUpload alloc] initWithURL:url];
-  NSMutableDictionary *uploadParameters = [NSMutableDictionary dictionary];
-
-  if (![self populateServerDictionary:uploadParameters]) {
-    [upload release];
-    return;
-  }
-
-  [upload setParameters:uploadParameters];
-
-  // Add minidump file
-  if (minidumpContents_) {
-    [upload addFileContents:minidumpContents_ name:@"upload_file_minidump"];
-
-    // If there is a log file, upload it together with the minidump.
-    if (logFileData_) {
-      [upload addFileContents:logFileData_ name:@"log"];
-    }
-
-    // Send it
-    NSError *error = nil;
-    NSData *data = [upload send:&error];
-
-    if (![url isFileURL]) {
-      [self handleNetworkResponse:data withError:error];
-    } else {
-      if (error) {
-        fprintf(stderr, "Breakpad Uploader: Error writing request file: %s\n",
-                [[error description] UTF8String]);
-      }
-    }
-
-  } else {
-    // Minidump is missing -- upload just the log file.
-    if (logFileData_) {
-      [self uploadData:logFileData_ name:@"log"];
-    }
-  }
-  [upload release];
-}
-
-- (void)uploadData:(NSData *)data name:(NSString *)name {
-  NSURL *url = [NSURL URLWithString:[parameters_ objectForKey:@BREAKPAD_URL]];
-  NSMutableDictionary *uploadParameters = [NSMutableDictionary dictionary];
-
-  if (![self populateServerDictionary:uploadParameters])
-    return;
-
-  HTTPMultipartUpload *upload =
-      [[HTTPMultipartUpload alloc] initWithURL:url];
-
-  [uploadParameters setObject:name forKey:@"type"];
-  [upload setParameters:uploadParameters];
-  [upload addFileContents:data name:name];
-
-  [upload send:nil];
-  [upload release];
-}
-
-- (void)logUploadWithID:(const char *)uploadID {
-  NSString *minidumpDir =
-      [parameters_ objectForKey:@kReporterMinidumpDirectoryKey];
-  NSString *logFilePath = [NSString stringWithFormat:@"%@/%s",
-      minidumpDir, kReporterLogFilename];
-  NSString *logLine = [NSString stringWithFormat:@"%0.f,%s\n",
-      [[NSDate date] timeIntervalSince1970], uploadID];
-  NSData *logData = [logLine dataUsingEncoding:NSUTF8StringEncoding];
-
-  NSFileManager *fileManager = [NSFileManager defaultManager];
-  if ([fileManager fileExistsAtPath:logFilePath]) {
-    NSFileHandle *logFileHandle =
-       [NSFileHandle fileHandleForWritingAtPath:logFilePath];
-    [logFileHandle seekToEndOfFile];
-    [logFileHandle writeData:logData];
-    [logFileHandle closeFile];
-  } else {
-    [fileManager createFileAtPath:logFilePath
-                         contents:logData
-                       attributes:nil];
-  }
-}
-
-//=============================================================================
-- (NSMutableDictionary *)parameters {
-  return parameters_;
-}
-
-//=============================================================================
-- (void)dealloc {
-  [parameters_ release];
-  [minidumpContents_ release];
-  [logFileData_ release];
-  [googleDictionary_ release];
-  [socorroDictionary_ release];
-  [serverDictionary_ release];
-  [extraServerVars_ release];
-  [super dealloc];
-}
-
-@end
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/Controller.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Cocoa/Cocoa.h>
-
-#import <Breakpad/Breakpad.h>
-
-enum BreakpadForkBehavior {
-  DONOTHING = 0,
-  UNINSTALL,
-  RESETEXCEPTIONPORT
-};
-
-enum BreakpadForkTestCrashPoint {
-  DURINGLAUNCH = 5,
-  AFTERLAUNCH = 6,
-  BETWEENFORKEXEC = 7
-};
-
-@interface Controller : NSObject {
-  IBOutlet NSWindow *window_;
-  IBOutlet NSWindow *forkTestOptions_;
-
-  BreakpadRef breakpad_;
-
-  enum BreakpadForkBehavior bpForkOption;
-
-  BOOL useVFork;
-  enum BreakpadForkTestCrashPoint progCrashPoint;
-}
-
-- (IBAction)crash:(id)sender;
-- (IBAction)forkTestOptions:(id)sender;
-- (IBAction)forkTestGo:(id)sender;
-- (IBAction)showForkTestWindow:(id) sender;
-- (void)generateReportWithoutCrash:(id)sender;
-- (void)awakeFromNib;
-
-@end
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/Controller.m
+++ /dev/null
@@ -1,261 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Breakpad/Breakpad.h>
-
-#import "Controller.h"
-#import "TestClass.h"
-#import "GTMDefines.h"
-#include <unistd.h>
-#include <mach/mach.h>
-
-@implementation Controller
-
-- (void)causeCrash {
-  float *aPtr = nil;
-  NSLog(@"Crash!");
-  NSLog(@"Bad programmer: %f", *aPtr);
-}
-
-- (void)generateReportWithoutCrash:(id)sender {
-  BreakpadGenerateAndSendReport(breakpad_);
-}
-
-- (IBAction)showForkTestWindow:(id) sender {
-  [forkTestOptions_ setIsVisible:YES];
-}
-
-- (IBAction)forkTestOptions:(id)sender {
-  NSInteger tag = [[sender selectedCell] tag];
-  NSLog(@"sender tag: %d", tag);
-  if (tag <= 2) {
-    bpForkOption = tag;
-  }
-
-  if (tag == 3) {
-    useVFork = NO;
-  }
-
-  if (tag == 4) {
-    useVFork = YES;
-  }
-
-  if (tag >= 5 && tag <= 7) {
-    progCrashPoint = tag;
-  }
-
-}
-
-- (IBAction)forkTestGo:(id)sender {
-
-  NSString *resourcePath = [[NSBundle bundleForClass:
-                                        [self class]] resourcePath];
-  NSString *execProgname = nil;
-  if (progCrashPoint == DURINGLAUNCH) {
-    execProgname = [resourcePath stringByAppendingString:@"/crashduringload"];
-  } else if (progCrashPoint == AFTERLAUNCH) {
-    execProgname = [resourcePath stringByAppendingString:@"/crashInMain"];
-  }
-
-  const char *progName = NULL;
-  if (progCrashPoint != BETWEENFORKEXEC) {
-    progName = [execProgname UTF8String];
-  }
-
-  int pid;
-
-  if (bpForkOption == UNINSTALL) {
-    BreakpadRelease(breakpad_);
-  }
-
-  if (useVFork) {
-    pid = vfork();
-  } else {
-    pid = fork();
-  }
-
-  if (pid == 0) {
-    sleep(3);
-    NSLog(@"Child continuing");
-    FILE *fd = fopen("/tmp/childlog.txt","wt");
-    kern_return_t kr;
-    if (bpForkOption == RESETEXCEPTIONPORT) {
-      kr = task_set_exception_ports(mach_task_self(),
-                               EXC_MASK_BAD_ACCESS | EXC_MASK_BAD_INSTRUCTION |
-                               EXC_MASK_ARITHMETIC | EXC_MASK_BREAKPOINT,
-                               MACH_PORT_NULL,
-                               EXCEPTION_DEFAULT,
-                               THREAD_STATE_NONE);
-      fprintf(fd,"task_set_exception_ports returned %d\n", kr);
-    }
-
-    if (progCrashPoint == BETWEENFORKEXEC) {
-      fprintf(fd,"crashing post-fork\n");
-      int *a = NULL;
-      printf("%d\n",*a++);
-    }
-
-    fprintf(fd,"about to call exec with %s\n", progName);
-    fclose(fd);
-    int i = execl(progName, progName, NULL);
-    fprintf(fd, "exec returned! %d\n", i);
-    fclose(fd);
-  }
-}
-
-- (IBAction)crash:(id)sender {
-  NSInteger tag = [sender tag];
-
-  if (tag == 1) {
-    [NSObject cancelPreviousPerformRequestsWithTarget:self];
-    [self performSelector:@selector(causeCrash) withObject:nil afterDelay:10.0];
-    [sender setState:NSOnState];
-    return;
-  }
-
-  if (tag == 2 && breakpad_) {
-    BreakpadRelease(breakpad_);
-    breakpad_ = NULL;
-    return;
-  }
-
-  [self causeCrash];
-}
-
-- (void)anotherThread {
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-  TestClass *tc = [[TestClass alloc] init];
-
-  [tc wait];
-
-  [pool release];
-}
-
-- (void)awakeFromNib {
-  NSBundle *bundle = [NSBundle mainBundle];
-  NSDictionary *info = [bundle infoDictionary];
-
-
-  breakpad_ = BreakpadCreate(info);
-
-  // Do some unit tests with keys
-  // first a series of bogus values
-  BreakpadSetKeyValue(breakpad_, nil, @"bad2");
-  BreakpadSetKeyValue(nil, @"bad3", @"bad3");
-
-  // Now some good ones
-  BreakpadSetKeyValue(breakpad_,@"key1", @"value1");
-  BreakpadSetKeyValue(breakpad_,@"key2", @"value2");
-  BreakpadSetKeyValue(breakpad_,@"key3", @"value3");
-
-  // Look for a bogus one that we didn't try to set
-  NSString *test = BreakpadKeyValue(breakpad_, @"bad4");
-  if (test) {
-    NSLog(@"Bad BreakpadKeyValue (bad4)");
-  }
-
-  // Look for a bogus one we did try to set
-  test = BreakpadKeyValue(breakpad_, @"bad1");
-  if (test) {
-    NSLog(@"Bad BreakpadKeyValue (bad1)");
-  }
-
-  // Test some bad args for BreakpadKeyValue
-  test = BreakpadKeyValue(nil, @"bad5");
-  if (test) {
-    NSLog(@"Bad BreakpadKeyValue (bad5)");
-  }
-
-  test = BreakpadKeyValue(breakpad_, nil);
-  if (test) {
-    NSLog(@"Bad BreakpadKeyValue (nil)");
-  }
-
-  // Find some we did set
-  test = BreakpadKeyValue(breakpad_, @"key1");
-  if (![test isEqualToString:@"value1"]) {
-    NSLog(@"Can't find BreakpadKeyValue (key1)");
-  }
-  test = BreakpadKeyValue(breakpad_, @"key2");
-  if (![test isEqualToString:@"value2"]) {
-    NSLog(@"Can't find BreakpadKeyValue (key2)");
-  }
-  test = BreakpadKeyValue(breakpad_, @"key3");
-  if (![test isEqualToString:@"value3"]) {
-    NSLog(@"Can't find BreakpadKeyValue (key3)");
-  }
-
-  // Bad args for BreakpadRemoveKeyValue
-  BreakpadRemoveKeyValue(nil, @"bad6");
-  BreakpadRemoveKeyValue(breakpad_, nil);
-
-  // Remove one that is valid
-  BreakpadRemoveKeyValue(breakpad_, @"key3");
-
-  // Try and find it
-  test = BreakpadKeyValue(breakpad_, @"key3");
-  if (test) {
-    NSLog(@"Shouldn't find BreakpadKeyValue (key3)");
-  }
-
-  // Try and remove it again
-  BreakpadRemoveKeyValue(breakpad_, @"key3");
-
-  // Try removal by setting to nil
-  BreakpadSetKeyValue(breakpad_,@"key2", nil);
-  // Try and find it
-  test = BreakpadKeyValue(breakpad_, @"key2");
-  if (test) {
-    NSLog(@"Shouldn't find BreakpadKeyValue (key2)");
-  }
-
-  BreakpadAddUploadParameter(breakpad_,
-                             @"MeaningOfLife",
-                             @"42");
-  [NSThread detachNewThreadSelector:@selector(anotherThread)
-                           toTarget:self withObject:nil];
-
-  NSUserDefaults *args = [NSUserDefaults standardUserDefaults];
-
-  // If the user specified autocrash on the command line, toggle
-  // Breakpad to not confirm and crash immediately.  This is for
-  // automated testing.
-  if ([args boolForKey:@"autocrash"]) {
-    BreakpadSetKeyValue(breakpad_,
-                        @BREAKPAD_SKIP_CONFIRM,
-                        @"YES");
-    [self causeCrash];
-  }
-
-  progCrashPoint = DURINGLAUNCH;
-  [window_ center];
-  [window_ makeKeyAndOrderFront:self];
-}
-
-@end
deleted file mode 100644
index b8c6c6bf0ba1a55cea7e4656822a4ee5d65546b8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/English.lproj/MainMenu.xib
+++ /dev/null
@@ -1,3748 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
-	<data>
-		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">10F569</string>
-		<string key="IBDocument.InterfaceBuilderVersion">788</string>
-		<string key="IBDocument.AppKitVersion">1038.29</string>
-		<string key="IBDocument.HIToolboxVersion">461.00</string>
-		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">788</string>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="220"/>
-		</object>
-		<object class="NSArray" key="IBDocument.PluginDependencies">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-		</object>
-		<object class="NSMutableArray" key="IBDocument.RootObjects" id="925601844">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSCustomObject" id="870565383">
-				<object class="NSMutableString" key="NSClassName">
-					<characters key="NS.bytes">NSApplication</characters>
-				</object>
-			</object>
-			<object class="NSCustomObject" id="442653439">
-				<string key="NSClassName">FirstResponder</string>
-			</object>
-			<object class="NSCustomObject" id="751079937">
-				<string key="NSClassName">NSApplication</string>
-			</object>
-			<object class="NSWindowTemplate" id="341270541">
-				<int key="NSWindowStyleMask">15</int>
-				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{945, 874}, {320, 188}}</string>
-				<int key="NSWTFlags">1886912512</int>
-				<string key="NSWindowTitle">Window</string>
-				<string key="NSWindowClass">NSWindow</string>
-				<object class="NSMutableString" key="NSViewClass">
-					<characters key="NS.bytes">View</characters>
-				</object>
-				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
-				<string key="NSWindowContentMinSize">{213, 107}</string>
-				<object class="NSView" key="NSWindowView" id="814272478">
-					<reference key="NSNextResponder"/>
-					<int key="NSvFlags">256</int>
-					<object class="NSMutableArray" key="NSSubviews">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSButton" id="726278107">
-							<reference key="NSNextResponder" ref="814272478"/>
-							<int key="NSvFlags">301</int>
-							<string key="NSFrame">{{14, 140}, {292, 32}}</string>
-							<reference key="NSSuperview" ref="814272478"/>
-							<reference key="NSWindow"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="539552922">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Crash! (Airbag Installed)</string>
-								<object class="NSFont" key="NSSupport" id="933596199">
-									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">13</double>
-									<int key="NSfFlags">1044</int>
-								</object>
-								<reference key="NSControlView" ref="726278107"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">1</int>
-								<reference key="NSAlternateImage" ref="933596199"/>
-								<string key="NSAlternateContents"/>
-								<object class="NSMutableString" key="NSKeyEquivalent">
-									<characters key="NS.bytes"/>
-								</object>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="799567279">
-							<reference key="NSNextResponder" ref="814272478"/>
-							<int key="NSvFlags">301</int>
-							<string key="NSFrame">{{14, 76}, {292, 32}}</string>
-							<reference key="NSSuperview" ref="814272478"/>
-							<reference key="NSWindow"/>
-							<int key="NSTag">2</int>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="1010617379">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Crash! (Airbag NOT Installed)</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<reference key="NSControlView" ref="799567279"/>
-								<int key="NSTag">2</int>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">1</int>
-								<reference key="NSAlternateImage" ref="933596199"/>
-								<string key="NSAlternateContents"/>
-								<object class="NSMutableString" key="NSKeyEquivalent">
-									<characters key="NS.bytes"/>
-								</object>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="27781390">
-							<reference key="NSNextResponder" ref="814272478"/>
-							<int key="NSvFlags">301</int>
-							<string key="NSFrame">{{14, 108}, {292, 32}}</string>
-							<reference key="NSSuperview" ref="814272478"/>
-							<reference key="NSWindow"/>
-							<int key="NSTag">1</int>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="547901497">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Crash! (Airbag Installed w/10sec delay)</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<reference key="NSControlView" ref="27781390"/>
-								<int key="NSTag">1</int>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">1</int>
-								<reference key="NSAlternateImage" ref="933596199"/>
-								<string key="NSAlternateContents"/>
-								<object class="NSMutableString" key="NSKeyEquivalent">
-									<characters key="NS.bytes"/>
-								</object>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="856256540">
-							<reference key="NSNextResponder" ref="814272478"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{14, 44}, {292, 32}}</string>
-							<reference key="NSSuperview" ref="814272478"/>
-							<reference key="NSWindow"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="353736234">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Fork Test</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<reference key="NSControlView" ref="856256540"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-						<object class="NSButton" id="460755987">
-							<reference key="NSNextResponder" ref="814272478"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{14, 12}, {292, 32}}</string>
-							<reference key="NSSuperview" ref="814272478"/>
-							<reference key="NSWindow"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="775425649">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Generate report without crash</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<reference key="NSControlView" ref="460755987"/>
-								<int key="NSButtonFlags">-2038284033</int>
-								<int key="NSButtonFlags2">129</int>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-						</object>
-					</object>
-					<string key="NSFrameSize">{320, 188}</string>
-					<reference key="NSSuperview"/>
-					<reference key="NSWindow"/>
-				</object>
-				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
-				<string key="NSMinSize">{213, 129}</string>
-				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
-			</object>
-			<object class="NSMenu" id="695387251">
-				<string key="NSTitle">MainMenu</string>
-				<object class="NSMutableArray" key="NSMenuItems">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="NSMenuItem" id="458207250">
-						<reference key="NSMenu" ref="695387251"/>
-						<string key="NSTitle">NewApplication</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<object class="NSCustomResource" key="NSOnImage" id="419346806">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">NSMenuCheckmark</string>
-						</object>
-						<object class="NSCustomResource" key="NSMixedImage" id="290286705">
-							<string key="NSClassName">NSImage</string>
-							<string key="NSResourceName">NSMenuMixedState</string>
-						</object>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="753534561">
-							<string key="NSTitle">NewApplication</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="838552093">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">About NewApplication</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="758254482">
-									<reference key="NSMenu" ref="753534561"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="443649494">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">Preferences…</string>
-									<string key="NSKeyEquiv">,</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="217746140">
-									<reference key="NSMenu" ref="753534561"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="826764396">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">Services</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-									<string key="NSAction">submenuAction:</string>
-									<object class="NSMenu" key="NSSubmenu" id="276709607">
-										<object class="NSMutableString" key="NSTitle">
-											<characters key="NS.bytes">Services</characters>
-										</object>
-										<object class="NSMutableArray" key="NSMenuItems">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-										</object>
-										<string key="NSName">_NSServicesMenu</string>
-									</object>
-								</object>
-								<object class="NSMenuItem" id="881859155">
-									<reference key="NSMenu" ref="753534561"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="104472016">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">Hide NewApplication</string>
-									<string key="NSKeyEquiv">h</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="216168366">
-									<reference key="NSMenu" ref="753534561"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="667790509">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">Show All</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="928933982">
-									<reference key="NSMenu" ref="753534561"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="887927135">
-									<reference key="NSMenu" ref="753534561"/>
-									<string key="NSTitle">Quit NewApplication</string>
-									<string key="NSKeyEquiv">q</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-							</object>
-							<string key="NSName">_NSAppleMenu</string>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="369472335">
-						<reference key="NSMenu" ref="695387251"/>
-						<string key="NSTitle">File</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="419346806"/>
-						<reference key="NSMixedImage" ref="290286705"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="902982238">
-							<object class="NSMutableString" key="NSTitle">
-								<characters key="NS.bytes">File</characters>
-							</object>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="660391032">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">New</string>
-									<string key="NSKeyEquiv">n</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="367379562">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Open...</string>
-									<string key="NSKeyEquiv">o</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="84883275">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Open Recent</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-									<string key="NSAction">submenuAction:</string>
-									<object class="NSMenu" key="NSSubmenu" id="693280130">
-										<object class="NSMutableString" key="NSTitle">
-											<characters key="NS.bytes">Open Recent</characters>
-										</object>
-										<object class="NSMutableArray" key="NSMenuItems">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSMenuItem" id="85018532">
-												<reference key="NSMenu" ref="693280130"/>
-												<string key="NSTitle">Clear Menu</string>
-												<string key="NSKeyEquiv"/>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-											</object>
-										</object>
-										<string key="NSName">_NSRecentDocumentsMenu</string>
-									</object>
-								</object>
-								<object class="NSMenuItem" id="154948703">
-									<reference key="NSMenu" ref="902982238"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="468594275">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Close</string>
-									<string key="NSKeyEquiv">w</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="479945444">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Save</string>
-									<string key="NSKeyEquiv">s</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="976375553">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Save As…</string>
-									<string key="NSKeyEquiv">S</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="885975128">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Revert</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="232609393">
-									<reference key="NSMenu" ref="902982238"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="409810395">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Page Setup…</string>
-									<string key="NSKeyEquiv">P</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="302505815">
-									<reference key="NSMenu" ref="902982238"/>
-									<string key="NSTitle">Print…</string>
-									<string key="NSKeyEquiv">p</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-							</object>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="542216986">
-						<reference key="NSMenu" ref="695387251"/>
-						<string key="NSTitle">Edit</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="419346806"/>
-						<reference key="NSMixedImage" ref="290286705"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="1053284541">
-							<object class="NSMutableString" key="NSTitle">
-								<characters key="NS.bytes">Edit</characters>
-							</object>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="284548410">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Undo</string>
-									<string key="NSKeyEquiv">z</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="1001272176">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Redo</string>
-									<string key="NSKeyEquiv">Z</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="209744238">
-									<reference key="NSMenu" ref="1053284541"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="909447496">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Cut</string>
-									<string key="NSKeyEquiv">x</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="994487277">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Copy</string>
-									<string key="NSKeyEquiv">c</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="84012734">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Paste</string>
-									<string key="NSKeyEquiv">v</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="182251545">
-									<reference key="NSMenu" ref="1053284541"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="512189403">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Delete</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="917620781">
-									<reference key="NSMenu" ref="1053284541"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="431895313">
-									<reference key="NSMenu" ref="1053284541"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="153501847">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Find</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-									<string key="NSAction">submenuAction:</string>
-									<object class="NSMenu" key="NSSubmenu" id="333484665">
-										<object class="NSMutableString" key="NSTitle">
-											<characters key="NS.bytes">Find</characters>
-										</object>
-										<object class="NSMutableArray" key="NSMenuItems">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSMenuItem" id="203238834">
-												<reference key="NSMenu" ref="333484665"/>
-												<string key="NSTitle">Find…</string>
-												<string key="NSKeyEquiv">f</string>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-												<int key="NSTag">1</int>
-											</object>
-											<object class="NSMenuItem" id="861312964">
-												<reference key="NSMenu" ref="333484665"/>
-												<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="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-												<int key="NSTag">2</int>
-											</object>
-											<object class="NSMenuItem" id="743767160">
-												<reference key="NSMenu" ref="333484665"/>
-												<string key="NSTitle">Find Previous</string>
-												<string key="NSKeyEquiv">G</string>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-												<int key="NSTag">3</int>
-											</object>
-											<object class="NSMenuItem" id="180446588">
-												<reference key="NSMenu" ref="333484665"/>
-												<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="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-												<int key="NSTag">7</int>
-											</object>
-											<object class="NSMenuItem" id="731027425">
-												<reference key="NSMenu" ref="333484665"/>
-												<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="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-											</object>
-										</object>
-									</object>
-								</object>
-								<object class="NSMenuItem" id="61602259">
-									<reference key="NSMenu" ref="1053284541"/>
-									<string key="NSTitle">Spelling</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-									<string key="NSAction">submenuAction:</string>
-									<object class="NSMenu" key="NSSubmenu" id="8174285">
-										<string key="NSTitle">Spelling</string>
-										<object class="NSMutableArray" key="NSMenuItems">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSMenuItem" id="438210660">
-												<reference key="NSMenu" ref="8174285"/>
-												<string key="NSTitle">Spelling…</string>
-												<string key="NSKeyEquiv">:</string>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-											</object>
-											<object class="NSMenuItem" id="102172584">
-												<reference key="NSMenu" ref="8174285"/>
-												<string key="NSTitle">Check Spelling</string>
-												<string key="NSKeyEquiv">;</string>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-											</object>
-											<object class="NSMenuItem" id="540509341">
-												<reference key="NSMenu" ref="8174285"/>
-												<string key="NSTitle">Check Spelling as You Type</string>
-												<string key="NSKeyEquiv"/>
-												<int key="NSKeyEquivModMask">1048576</int>
-												<int key="NSMnemonicLoc">2147483647</int>
-												<reference key="NSOnImage" ref="419346806"/>
-												<reference key="NSMixedImage" ref="290286705"/>
-											</object>
-										</object>
-									</object>
-								</object>
-							</object>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="764068863">
-						<reference key="NSMenu" ref="695387251"/>
-						<string key="NSTitle">Window</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="419346806"/>
-						<reference key="NSMixedImage" ref="290286705"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="200536676">
-							<object class="NSMutableString" key="NSTitle">
-								<characters key="NS.bytes">Window</characters>
-							</object>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="683986939">
-									<reference key="NSMenu" ref="200536676"/>
-									<string key="NSTitle">Minimize</string>
-									<string key="NSKeyEquiv">m</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="548098734">
-									<reference key="NSMenu" ref="200536676"/>
-									<string key="NSTitle">Zoom</string>
-									<string key="NSKeyEquiv"/>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="297002686">
-									<reference key="NSMenu" ref="200536676"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-								<object class="NSMenuItem" id="164762492">
-									<reference key="NSMenu" ref="200536676"/>
-									<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="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-							</object>
-							<string key="NSName">_NSWindowsMenu</string>
-						</object>
-					</object>
-					<object class="NSMenuItem" id="599772536">
-						<reference key="NSMenu" ref="695387251"/>
-						<string key="NSTitle">Help</string>
-						<string key="NSKeyEquiv"/>
-						<int key="NSKeyEquivModMask">1048576</int>
-						<int key="NSMnemonicLoc">2147483647</int>
-						<reference key="NSOnImage" ref="419346806"/>
-						<reference key="NSMixedImage" ref="290286705"/>
-						<string key="NSAction">submenuAction:</string>
-						<object class="NSMenu" key="NSSubmenu" id="1066958924">
-							<string key="NSTitle">Help</string>
-							<object class="NSMutableArray" key="NSMenuItems">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSMenuItem" id="192540884">
-									<reference key="NSMenu" ref="1066958924"/>
-									<string key="NSTitle">NewApplication Help</string>
-									<string key="NSKeyEquiv">?</string>
-									<int key="NSKeyEquivModMask">1048576</int>
-									<int key="NSMnemonicLoc">2147483647</int>
-									<reference key="NSOnImage" ref="419346806"/>
-									<reference key="NSMixedImage" ref="290286705"/>
-								</object>
-							</object>
-						</object>
-					</object>
-				</object>
-				<string key="NSName">_NSMainMenu</string>
-			</object>
-			<object class="NSCustomObject" id="623097029">
-				<string key="NSClassName">Controller</string>
-			</object>
-			<object class="NSWindowTemplate" id="347013037">
-				<int key="NSWindowStyleMask">15</int>
-				<int key="NSWindowBacking">2</int>
-				<string key="NSWindowRect">{{858, 755}, {787, 260}}</string>
-				<int key="NSWTFlags">603979776</int>
-				<string key="NSWindowTitle">Window</string>
-				<string key="NSWindowClass">NSWindow</string>
-				<nil key="NSViewClass"/>
-				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
-				<object class="NSView" key="NSWindowView" id="594333702">
-					<reference key="NSNextResponder"/>
-					<int key="NSvFlags">256</int>
-					<object class="NSMutableArray" key="NSSubviews">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSMatrix" id="891367997">
-							<reference key="NSNextResponder" ref="594333702"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{20, 7}, {645, 79}}</string>
-							<reference key="NSSuperview" ref="594333702"/>
-							<bool key="NSEnabled">YES</bool>
-							<int key="NSNumRows">3</int>
-							<int key="NSNumCols">1</int>
-							<object class="NSMutableArray" key="NSCells">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSButtonCell" id="410017819">
-									<int key="NSCellFlags">-2080244224</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">program crashes during launch because of missing dylib</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="891367997"/>
-									<int key="NSTag">5</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSButtonImageSource" key="NSAlternateImage" id="619763889">
-										<string key="NSImageName">NSRadioButton</string>
-									</object>
-									<string key="NSAlternateContents"/>
-									<string key="NSKeyEquivalent"/>
-									<int key="NSPeriodicDelay">200</int>
-									<int key="NSPeriodicInterval">25</int>
-								</object>
-								<object class="NSButtonCell" id="904578786">
-									<int key="NSCellFlags">67239424</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">program crashes after launch</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="891367997"/>
-									<int key="NSTag">6</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSImage" key="NSNormalImage">
-										<int key="NSImageFlags">549453824</int>
-										<string key="NSSize">{18, 18}</string>
-										<object class="NSMutableArray" key="NSReps">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSArray">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<integer value="0"/>
-												<object class="NSBitmapImageRep">
-													<object class="NSData" key="NSTIFFRepresentation">
-														<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
-IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
-29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
-dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
-AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
-AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
-0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
-7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
-5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
-3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
-AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
-AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
-6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
-/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
-///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
-YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
-AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
-AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
-AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgEAAAMAAAABABIAAAEB
-AAMAAAABABIAAAECAAMAAAAEAAAFxgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
-AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
-AAMAAAABAAEAAAFTAAMAAAAEAAAFzodzAAcAAAwYAAAF1gAAAAAACAAIAAgACAABAAEAAQABAAAMGGFw
-cGwCAAAAbW50clJHQiBYWVogB9YABAADABMALAASYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAA
-AXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAMSbmRpbgAA
-BOwAAAY+ZGVzYwAACywAAABkZHNjbQAAC5AAAAAubW1vZAAAC8AAAAAoY3BydAAAC+gAAAAtWFlaIAAA
-AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
-AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
-cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
-AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
-SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
-hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
-vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
-7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
-Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
-aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
-n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
-2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
-FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
-Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
-ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
-rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
-AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
-AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
-A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
-DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
-HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
-MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
-UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
-eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
-rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
-5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
-AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
-CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
-GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
-MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
-UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
-d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
-pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
-0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
-AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
-BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
-FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
-LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
-Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
-h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
-svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
-1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
-8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
-AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
-QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<object class="NSColor" key="NSColor" id="30384615">
-											<int key="NSColorSpace">3</int>
-											<bytes key="NSWhite">MCAwAA</bytes>
-										</object>
-									</object>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<int key="NSPeriodicDelay">400</int>
-									<int key="NSPeriodicInterval">75</int>
-								</object>
-								<object class="NSButtonCell" id="971445237">
-									<int key="NSCellFlags">67239424</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">program crashes in between fork() and exec() (3rd option in first group will happen before crash)</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="891367997"/>
-									<int key="NSTag">7</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSImage" key="NSNormalImage">
-										<int key="NSImageFlags">549453824</int>
-										<string key="NSSize">{18, 18}</string>
-										<object class="NSMutableArray" key="NSReps">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSArray">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<integer value="0"/>
-												<object class="NSBitmapImageRep">
-													<object class="NSData" key="NSTIFFRepresentation">
-														<bytes key="NS.bytes">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
-ArBYWVogAAAAAAAANWMAAJ/rAAAZsVhZWiAAAAAAAAAlzQAAE9UAALbFWFlaIAAAAAAAAPPYAAEAAAAB
-FghzZjMyAAAAAAABC7cAAAWW///zVwAABykAAP3X///7t////aYAAAPaAADA9mN1cnYAAAAAAAAAAQHN
-AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAioENAYA
-B9AJlAtRDQwOshBOEekTgxUVFqMYMRm9GzwcvR4+H7chLiKnJBoliCb3KGIpyCswLJMt9C9WMLIyDjNn
-NL02FTdoOLs6ETtdPKw9+D9DQJBB1kMeRGZFq0bySDRJeEq6S/tNPk59T75Q+lI2U25Uo1XZVwlYOlln
-WpZbwFzsXhdfQWBrYZRiv2PoZRNmPWdqaJhpyGr5bC1tZW6hb+BxLXJ+c9d1OHafeA55gnr5fHR98H9t
-gOuCY4PYhUqGsIgSiWyKuIwBjTqObY+VkLORyJLUk9eU05XFlrWXlZh2mUuaG5rsm6ucbJ0qndqei588
-n9+ghKEqoceiYqL/o5qkLqTDpVml66Z7pwunnKgpqLWpQqnQqlqq5Ktvq/qsg60MrZauIa6qrzOvvbBH
-sNGxXLHnsnKy/7OMtBm0p7U3tci2Wbbrt4C4FrituUa54rqAux27wbxlvQq9rr5Tvvi/ncBAwOXBisIu
-wtPDeMQdxMLFaMYPxrXHXMgEyKzJVcn/yqnLVcwBzK7NXc4Mzr3PcNAk0NnRkdJK0wTTw9SC1UTWCtbR
-153Ybdk+2hfa8dvM3KfdhN5g3zzgGuD34dbiteOV5HblWeY85yHoCOjw6drqxuu27Kbtm+6R74zwivGM
-8pPzn/Sw9cj25/gP+T76e/u//Rr+hP//AAABpANzBRoGsggnCZsLFQx+Dd4PRRCiEf8TYxS0FgoXXRiu
-GgQbTRyZHekfMCB8IcIjCSRSJZUm3SgdKWAqpCvjLSYuZC+lMOIyIDNgNJs12TcTOFA5izrEO/49NT5w
-P6dA30IWQ01Eg0W4Ru9IIElVSoZLt0zmThVPRFBwUZ5SylP5VSRWUVd+WKtZ2lsIXDhdaV6bX89hBWI8
-Y3dktGX0ZzhohGnVayxsiW3sb1Vww3I0c6p1I3aeeBl5k3sMfIR99X9kgM6CLYOJhNyGJodriKGJ1Ir5
-jBuNL45Aj0WQSJE8kjKTGJP+lNyVspaKl1OYHZjlmaSaZJshm9ecj51EnfSepJ9Vn/+gqqFWofyio6NL
-o/CklKU4pdymfacfp8KoYqkDqaWqRarlq4asJ6zHrWiuCq6rr02v77CSsTax27KAsyezzrR3tSG1zLZ5
-tye32LiKuT659rqwu2q8J7zkvaK+YL8ev93AnMFcwhzC3MOdxF7FIMXixqXHaMgryPDJtcp6y0DMB8zO
-zZbOX88oz/PQvtGJ0lbTI9Px1MDVkNZi1zTYB9jb2bDah9te3DjdEt3t3sjfpOB/4VviN+MT4/DkzeWq
-5ojnZuhG6SXqBuro68rsre2S7nfvXvBH8TDyHPMI8/j06fXc9tL3yvjF+cL6w/vG/ND92v7s//8AAAMJ
-BboIZwrCDSsPghG8E/IWHxg5GkgcVB5VIEQiMyQTJeknuimHK00tCy7AMHEyHDO/NV829ziKOhs7pj0s
-PrBALEGmQx9EkkYCR3JI3EpCS6pND05vT89RLVKKU+dVP1aYV+9ZRVqdW/NdSV6hX+thM2JzY61k42YS
-Z0FoZ2mOaq5rz2zsbglvI3A9cVRybHOEdJx1tHbOd+d5A3ofez98Yn2Lfrl/8IEqgmyDsoT8hkuHnYjw
-ikSLmYzsjj+PjJDWkh2TW5SXlceW85gWmTOaSJtVnFqdWp5Pn0SgKaEQoeuiwqOYpGClKaXtpqmnZqgf
-qNKph6o5quWrk6xArOatja41rtevebAcsLyxWbH3spWzL7PJtGO0/LWTtiq2wrdWt+q4f7kUuaW6OLrL
-u1277Lx9vQ69nr4tvry/TL/bwGjA98GGwhPCocMvw77ESsTYxWXF9MZ/xwzHmcgkyKXJJ8mpyizKpMsc
-y5XMDsyFzPjNa83fzlPOxc81z6fQGNCK0PvRbNHe0lDSw9M206vUINSV1QvVhtYA1nzW+Nd61//YhNkK
-2ZnaL9rG213cCty63WveI97d35fgUuEO4crih+NE5ALkw+WD5kXnCufP6JbpYOor6vrry+yd7XbuUe8w
-8BXw+/Ht8uDz4PTl9fj3E/hE+X363vxa/gH//wAAbmRpbgAAAAAAAAMGAACogAAAUwAAADRAAACqQAAA
-JpcAABLbAABQQAAAVEAAAj99AAI1egACxUsAAwB4AAIAAAADAAsAGQAsAEUAYwCHALEA4QEWAVEBkgHZ
-AiYCeQLSAzEDlwQDBHYE7wVvBfUGgwcXB7IIUwj8CawKYgsgC+QMrw2BDloPORAfEQ0SBRMGFBEVJBZA
-F2MYjhm/GvYcMh1xHrMf9SE1ImwjnSTJJfAnFig7KWMqjivBLP4uSC+jMRMymzRBNgo3+joWPGY+8EG8
-RNhIQEvvT95UCFhkXOxhlWZYaylv/XTKeYN+GoKOhxGLqJBOlP6Ztp5voyan1Kx0sQG1c7nGvfHB9cX7
-ygbOFNIi1izaMN4p4hTl7emv7Vbw3vRC93z6iP1g//8AAAAEAA8AIgA9AF8AiQC7APQBNAF8AcwCIgKB
-AuYDUwPHBEIExAVOBd4GdgcUB7oIZgkaCdQKlQteDC0NAw3gDsQPrxCiEZwSnxOpFLsV0xbyGBcZQRpw
-G6Mc2R4RH0oggyG3IuckEyU8JmQniyiyKd0rDCxBLYAuyTAhMYkzBjSbNkw4HToSPDA+fED8Q7FGmUmx
-TPdQaFQAV7tbll+KY5RnrmvTb/p0H3g6fEOAMoQXiASL+I/yk/KX+JwBoA2kHKgrrDuwS7RYuGK8aMBo
-xGvId8yI0J/UuNjS3OvhAOUQ6RftE/EC9OH4rfxi//8AAAABAAYADQAXACUANQBIAF8AeQCWALcA3AEE
-ATABYQGVAc4CDAJOApUC4QMyA4gD5QRGBK4FHAWPBgkGigcQB54IMQjMCW0KFArDC3cMMgzzDbsOiA9a
-EDIRFhIIEwgUFRUvFlYXhxjDGgkbVhyqHgMfYCC8IhIjYSSrJfMnOSiBKc0rHyx7LeQvXTDrMpE0VTY7
-OEg6gjzuP5NCckWCSMJMMk/QU5xXk1u1X/9kcGkGbb5ylneLfJqByoeDjcyUf5t4oo2plLBetru8eMFr
-xirK7c+v1GnZFd2r4iXme+ql7pryUvXD+OT7qv4M//8AAGRlc2MAAAAAAAAAFUhQIExQMzA2NSBDYWxp
-YnJhdGVkAAAAAAAAAAAVAEgAUAAgAEwAUAAzADAANgA1ACAAQwBhAGwAaQBiAHIAYQB0AGUAZAAAAAAV
-SFAgTFAzMDY1IENhbGlicmF0ZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMDgAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<reference key="NSColor" ref="30384615"/>
-									</object>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<string key="NSAlternateContents"/>
-									<int key="NSPeriodicDelay">200</int>
-									<int key="NSPeriodicInterval">25</int>
-								</object>
-							</object>
-							<string key="NSCellSize">{645, 25}</string>
-							<string key="NSIntercellSpacing">{4, 2}</string>
-							<int key="NSMatrixFlags">1151868928</int>
-							<string key="NSCellClass">NSActionCell</string>
-							<object class="NSButtonCell" key="NSProtoCell" id="1072218638">
-								<int key="NSCellFlags">-2080244224</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">program crashes after launch</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<int key="NSTag">5</int>
-								<int key="NSButtonFlags">1211912703</int>
-								<int key="NSButtonFlags2">0</int>
-								<reference key="NSAlternateImage" ref="619763889"/>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">200</int>
-								<int key="NSPeriodicInterval">25</int>
-							</object>
-							<reference key="NSSelectedCell" ref="410017819"/>
-							<object class="NSColor" key="NSBackgroundColor" id="349124561">
-								<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="NSCellBackgroundColor" id="195671423">
-								<int key="NSColorSpace">3</int>
-								<bytes key="NSWhite">MQA</bytes>
-							</object>
-							<reference key="NSFont" ref="933596199"/>
-						</object>
-						<object class="NSMatrix" id="7590393">
-							<reference key="NSNextResponder" ref="594333702"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{20, 170}, {565, 70}}</string>
-							<reference key="NSSuperview" ref="594333702"/>
-							<bool key="NSEnabled">YES</bool>
-							<int key="NSNumRows">3</int>
-							<int key="NSNumCols">1</int>
-							<object class="NSMutableArray" key="NSCells">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSButtonCell" id="808388382">
-									<int key="NSCellFlags">-2080244224</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">Leave breakpad alone before fork</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="7590393"/>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<string key="NSAlternateContents"/>
-									<string key="NSKeyEquivalent"/>
-									<int key="NSPeriodicDelay">200</int>
-									<int key="NSPeriodicInterval">25</int>
-								</object>
-								<object class="NSButtonCell" id="378736460">
-									<int key="NSCellFlags">67239424</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">Uninitialize Breakpad before fork</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="7590393"/>
-									<int key="NSTag">1</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSImage" key="NSNormalImage">
-										<int key="NSImageFlags">549453824</int>
-										<string key="NSSize">{18, 18}</string>
-										<object class="NSMutableArray" key="NSReps">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSArray">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<integer value="0"/>
-												<object class="NSBitmapImageRep">
-													<object class="NSData" key="NSTIFFRepresentation">
-														<bytes key="NS.bytes">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
-AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
-AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
-cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
-AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
-SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
-hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
-vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
-7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
-Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
-aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
-n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
-2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
-FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
-Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
-ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
-rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
-AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
-AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
-A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
-DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
-HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
-MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
-UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
-eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
-rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
-5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
-AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
-CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
-GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
-MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
-UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
-d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
-pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
-0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
-AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
-BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
-FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
-LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
-Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
-h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
-svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
-1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
-8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
-AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
-QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<reference key="NSColor" ref="30384615"/>
-									</object>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<int key="NSPeriodicDelay">400</int>
-									<int key="NSPeriodicInterval">75</int>
-								</object>
-								<object class="NSButtonCell" id="251439646">
-									<int key="NSCellFlags">67239424</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">Call task_set_exception_port with null exception port in child process before exec</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="7590393"/>
-									<int key="NSTag">2</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSImage" key="NSNormalImage">
-										<int key="NSImageFlags">549453824</int>
-										<string key="NSSize">{18, 18}</string>
-										<object class="NSMutableArray" key="NSReps">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSArray">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<integer value="0"/>
-												<object class="NSBitmapImageRep">
-													<object class="NSData" key="NSTIFFRepresentation">
-														<bytes key="NS.bytes">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
-ArBYWVogAAAAAAAANWMAAJ/rAAAZsVhZWiAAAAAAAAAlzQAAE9UAALbFWFlaIAAAAAAAAPPYAAEAAAAB
-FghzZjMyAAAAAAABC7cAAAWW///zVwAABykAAP3X///7t////aYAAAPaAADA9mN1cnYAAAAAAAAAAQHN
-AABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAioENAYA
-B9AJlAtRDQwOshBOEekTgxUVFqMYMRm9GzwcvR4+H7chLiKnJBoliCb3KGIpyCswLJMt9C9WMLIyDjNn
-NL02FTdoOLs6ETtdPKw9+D9DQJBB1kMeRGZFq0bySDRJeEq6S/tNPk59T75Q+lI2U25Uo1XZVwlYOlln
-WpZbwFzsXhdfQWBrYZRiv2PoZRNmPWdqaJhpyGr5bC1tZW6hb+BxLXJ+c9d1OHafeA55gnr5fHR98H9t
-gOuCY4PYhUqGsIgSiWyKuIwBjTqObY+VkLORyJLUk9eU05XFlrWXlZh2mUuaG5rsm6ucbJ0qndqei588
-n9+ghKEqoceiYqL/o5qkLqTDpVml66Z7pwunnKgpqLWpQqnQqlqq5Ktvq/qsg60MrZauIa6qrzOvvbBH
-sNGxXLHnsnKy/7OMtBm0p7U3tci2Wbbrt4C4FrituUa54rqAux27wbxlvQq9rr5Tvvi/ncBAwOXBisIu
-wtPDeMQdxMLFaMYPxrXHXMgEyKzJVcn/yqnLVcwBzK7NXc4Mzr3PcNAk0NnRkdJK0wTTw9SC1UTWCtbR
-153Ybdk+2hfa8dvM3KfdhN5g3zzgGuD34dbiteOV5HblWeY85yHoCOjw6drqxuu27Kbtm+6R74zwivGM
-8pPzn/Sw9cj25/gP+T76e/u//Rr+hP//AAABpANzBRoGsggnCZsLFQx+Dd4PRRCiEf8TYxS0FgoXXRiu
-GgQbTRyZHekfMCB8IcIjCSRSJZUm3SgdKWAqpCvjLSYuZC+lMOIyIDNgNJs12TcTOFA5izrEO/49NT5w
-P6dA30IWQ01Eg0W4Ru9IIElVSoZLt0zmThVPRFBwUZ5SylP5VSRWUVd+WKtZ2lsIXDhdaV6bX89hBWI8
-Y3dktGX0ZzhohGnVayxsiW3sb1Vww3I0c6p1I3aeeBl5k3sMfIR99X9kgM6CLYOJhNyGJodriKGJ1Ir5
-jBuNL45Aj0WQSJE8kjKTGJP+lNyVspaKl1OYHZjlmaSaZJshm9ecj51EnfSepJ9Vn/+gqqFWofyio6NL
-o/CklKU4pdymfacfp8KoYqkDqaWqRarlq4asJ6zHrWiuCq6rr02v77CSsTax27KAsyezzrR3tSG1zLZ5
-tye32LiKuT659rqwu2q8J7zkvaK+YL8ev93AnMFcwhzC3MOdxF7FIMXixqXHaMgryPDJtcp6y0DMB8zO
-zZbOX88oz/PQvtGJ0lbTI9Px1MDVkNZi1zTYB9jb2bDah9te3DjdEt3t3sjfpOB/4VviN+MT4/DkzeWq
-5ojnZuhG6SXqBuro68rsre2S7nfvXvBH8TDyHPMI8/j06fXc9tL3yvjF+cL6w/vG/ND92v7s//8AAAMJ
-BboIZwrCDSsPghG8E/IWHxg5GkgcVB5VIEQiMyQTJeknuimHK00tCy7AMHEyHDO/NV829ziKOhs7pj0s
-PrBALEGmQx9EkkYCR3JI3EpCS6pND05vT89RLVKKU+dVP1aYV+9ZRVqdW/NdSV6hX+thM2JzY61k42YS
-Z0FoZ2mOaq5rz2zsbglvI3A9cVRybHOEdJx1tHbOd+d5A3ofez98Yn2Lfrl/8IEqgmyDsoT8hkuHnYjw
-ikSLmYzsjj+PjJDWkh2TW5SXlceW85gWmTOaSJtVnFqdWp5Pn0SgKaEQoeuiwqOYpGClKaXtpqmnZqgf
-qNKph6o5quWrk6xArOatja41rtevebAcsLyxWbH3spWzL7PJtGO0/LWTtiq2wrdWt+q4f7kUuaW6OLrL
-u1277Lx9vQ69nr4tvry/TL/bwGjA98GGwhPCocMvw77ESsTYxWXF9MZ/xwzHmcgkyKXJJ8mpyizKpMsc
-y5XMDsyFzPjNa83fzlPOxc81z6fQGNCK0PvRbNHe0lDSw9M206vUINSV1QvVhtYA1nzW+Nd61//YhNkK
-2ZnaL9rG213cCty63WveI97d35fgUuEO4crih+NE5ALkw+WD5kXnCufP6JbpYOor6vrry+yd7XbuUe8w
-8BXw+/Ht8uDz4PTl9fj3E/hE+X363vxa/gH//wAAbmRpbgAAAAAAAAMGAACogAAAUwAAADRAAACqQAAA
-JpcAABLbAABQQAAAVEAAAj99AAI1egACxUsAAwB4AAIAAAADAAsAGQAsAEUAYwCHALEA4QEWAVEBkgHZ
-AiYCeQLSAzEDlwQDBHYE7wVvBfUGgwcXB7IIUwj8CawKYgsgC+QMrw2BDloPORAfEQ0SBRMGFBEVJBZA
-F2MYjhm/GvYcMh1xHrMf9SE1ImwjnSTJJfAnFig7KWMqjivBLP4uSC+jMRMymzRBNgo3+joWPGY+8EG8
-RNhIQEvvT95UCFhkXOxhlWZYaylv/XTKeYN+GoKOhxGLqJBOlP6Ztp5voyan1Kx0sQG1c7nGvfHB9cX7
-ygbOFNIi1izaMN4p4hTl7emv7Vbw3vRC93z6iP1g//8AAAAEAA8AIgA9AF8AiQC7APQBNAF8AcwCIgKB
-AuYDUwPHBEIExAVOBd4GdgcUB7oIZgkaCdQKlQteDC0NAw3gDsQPrxCiEZwSnxOpFLsV0xbyGBcZQRpw
-G6Mc2R4RH0oggyG3IuckEyU8JmQniyiyKd0rDCxBLYAuyTAhMYkzBjSbNkw4HToSPDA+fED8Q7FGmUmx
-TPdQaFQAV7tbll+KY5RnrmvTb/p0H3g6fEOAMoQXiASL+I/yk/KX+JwBoA2kHKgrrDuwS7RYuGK8aMBo
-xGvId8yI0J/UuNjS3OvhAOUQ6RftE/EC9OH4rfxi//8AAAABAAYADQAXACUANQBIAF8AeQCWALcA3AEE
-ATABYQGVAc4CDAJOApUC4QMyA4gD5QRGBK4FHAWPBgkGigcQB54IMQjMCW0KFArDC3cMMgzzDbsOiA9a
-EDIRFhIIEwgUFRUvFlYXhxjDGgkbVhyqHgMfYCC8IhIjYSSrJfMnOSiBKc0rHyx7LeQvXTDrMpE0VTY7
-OEg6gjzuP5NCckWCSMJMMk/QU5xXk1u1X/9kcGkGbb5ylneLfJqByoeDjcyUf5t4oo2plLBetru8eMFr
-xirK7c+v1GnZFd2r4iXme+ql7pryUvXD+OT7qv4M//8AAGRlc2MAAAAAAAAAFUhQIExQMzA2NSBDYWxp
-YnJhdGVkAAAAAAAAAAAVAEgAUAAgAEwAUAAzADAANgA1ACAAQwBhAGwAaQBiAHIAYQB0AGUAZAAAAAAV
-SFAgTFAzMDY1IENhbGlicmF0ZWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlIEluYy4sIDIwMDgAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<reference key="NSColor" ref="30384615"/>
-									</object>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<int key="NSPeriodicDelay">400</int>
-									<int key="NSPeriodicInterval">75</int>
-								</object>
-							</object>
-							<string key="NSCellSize">{565, 22}</string>
-							<string key="NSIntercellSpacing">{4, 2}</string>
-							<int key="NSMatrixFlags">1151868928</int>
-							<string key="NSCellClass">NSActionCell</string>
-							<object class="NSButtonCell" key="NSProtoCell" id="773902463">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">Radio</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<int key="NSButtonFlags">1211912703</int>
-								<int key="NSButtonFlags2">0</int>
-								<object class="NSImage" key="NSNormalImage">
-									<int key="NSImageFlags">549453824</int>
-									<string key="NSSize">{18, 18}</string>
-									<object class="NSMutableArray" key="NSReps">
-										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSArray">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<integer value="0"/>
-											<object class="NSBitmapImageRep">
-												<object class="NSData" key="NSTIFFRepresentation">
-													<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
-IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
-29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
-dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
-AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
-AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
-0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
-7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
-5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
-3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
-AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
-AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
-6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
-/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
-///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
-YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
-AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
-AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
-AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
-AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
-AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
-AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
-												</object>
-											</object>
-										</object>
-									</object>
-									<reference key="NSColor" ref="30384615"/>
-								</object>
-								<reference key="NSAlternateImage" ref="619763889"/>
-								<int key="NSPeriodicDelay">400</int>
-								<int key="NSPeriodicInterval">75</int>
-							</object>
-							<reference key="NSSelectedCell" ref="808388382"/>
-							<reference key="NSBackgroundColor" ref="349124561"/>
-							<reference key="NSCellBackgroundColor" ref="195671423"/>
-							<reference key="NSFont" ref="933596199"/>
-						</object>
-						<object class="NSMatrix" id="1050951576">
-							<reference key="NSNextResponder" ref="594333702"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{20, 104}, {565, 38}}</string>
-							<reference key="NSSuperview" ref="594333702"/>
-							<bool key="NSEnabled">YES</bool>
-							<int key="NSNumRows">2</int>
-							<int key="NSNumCols">1</int>
-							<object class="NSMutableArray" key="NSCells">
-								<bool key="EncodedWithXMLCoder">YES</bool>
-								<object class="NSButtonCell" id="943458284">
-									<int key="NSCellFlags">-2080244224</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">fork()</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="1050951576"/>
-									<int key="NSTag">3</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<string key="NSAlternateContents"/>
-									<string key="NSKeyEquivalent"/>
-									<int key="NSPeriodicDelay">200</int>
-									<int key="NSPeriodicInterval">25</int>
-								</object>
-								<object class="NSButtonCell" id="69061500">
-									<int key="NSCellFlags">67239424</int>
-									<int key="NSCellFlags2">0</int>
-									<string key="NSContents">vfork()</string>
-									<reference key="NSSupport" ref="933596199"/>
-									<reference key="NSControlView" ref="1050951576"/>
-									<int key="NSTag">4</int>
-									<int key="NSButtonFlags">1211912703</int>
-									<int key="NSButtonFlags2">0</int>
-									<object class="NSImage" key="NSNormalImage">
-										<int key="NSImageFlags">549453824</int>
-										<string key="NSSize">{18, 18}</string>
-										<object class="NSMutableArray" key="NSReps">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<object class="NSArray">
-												<bool key="EncodedWithXMLCoder">YES</bool>
-												<integer value="0"/>
-												<object class="NSBitmapImageRep">
-													<object class="NSData" key="NSTIFFRepresentation">
-														<bytes key="NS.bytes">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
-AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA
-AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1
-cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD
-AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH
-SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF
-hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8
-vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt
-7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq
-Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo
-aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e
-n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX
-2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW
-FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O
-Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6
-ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt
-rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA
-AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA
-AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl
-A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq
-DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU
-HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8
-MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v
-UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/
-eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj
-rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn
-5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh
-AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK
-CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY
-GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95
-MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S
-UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2
-d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV
-pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK
-0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf//
-AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw
-BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA
-FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H
-LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh
-Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ
-h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp
-svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb
-1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX
-8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE
-AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg
-QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes>
-													</object>
-												</object>
-											</object>
-										</object>
-										<reference key="NSColor" ref="30384615"/>
-									</object>
-									<reference key="NSAlternateImage" ref="619763889"/>
-									<int key="NSPeriodicDelay">400</int>
-									<int key="NSPeriodicInterval">75</int>
-								</object>
-							</object>
-							<string key="NSCellSize">{565, 18}</string>
-							<string key="NSIntercellSpacing">{4, 2}</string>
-							<int key="NSMatrixFlags">1151868928</int>
-							<string key="NSCellClass">NSActionCell</string>
-							<object class="NSButtonCell" key="NSProtoCell" id="709643899">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">0</int>
-								<string key="NSContents">Radio</string>
-								<reference key="NSSupport" ref="933596199"/>
-								<int key="NSButtonFlags">1211912703</int>
-								<int key="NSButtonFlags2">0</int>
-								<object class="NSImage" key="NSNormalImage">
-									<int key="NSImageFlags">549453824</int>
-									<string key="NSSize">{18, 18}</string>
-									<object class="NSMutableArray" key="NSReps">
-										<bool key="EncodedWithXMLCoder">YES</bool>
-										<object class="NSArray">
-											<bool key="EncodedWithXMLCoder">YES</bool>
-											<integer value="0"/>
-											<object class="NSBitmapImageRep">
-												<object class="NSData" key="NSTIFFRepresentation">
-													<bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw
-IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/
-29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5
-dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA
-AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG
-AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/
-0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/
-7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/
-5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/
-3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD
-AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns
-AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/
-6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/
-/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/
-///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl
-YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA
-AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD
-AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu
-AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB
-AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
-AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS
-AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
-												</object>
-											</object>
-										</object>
-									</object>
-									<reference key="NSColor" ref="30384615"/>
-								</object>
-								<reference key="NSAlternateImage" ref="619763889"/>
-								<int key="NSPeriodicDelay">400</int>
-								<int key="NSPeriodicInterval">75</int>
-							</object>
-							<reference key="NSSelectedCell" ref="943458284"/>
-							<reference key="NSBackgroundColor" ref="349124561"/>
-							<reference key="NSCellBackgroundColor" ref="195671423"/>
-							<reference key="NSFont" ref="933596199"/>
-						</object>
-						<object class="NSButton" id="512228208">
-							<reference key="NSNextResponder" ref="594333702"/>
-							<int key="NSvFlags">268</int>
-							<string key="NSFrame">{{591, 59}, {178, 161}}</string>
-							<reference key="NSSuperview" ref="594333702"/>
-							<bool key="NSEnabled">YES</bool>
-							<object class="NSButtonCell" key="NSCell" id="69630975">
-								<int key="NSCellFlags">67239424</int>
-								<int key="NSCellFlags2">134217728</int>
-								<string key="NSContents">Go!</string>
-								<object class="NSFont" key="NSSupport">
-									<string key="NSName">LucidaGrande</string>
-									<double key="NSSize">10</double>
-									<int key="NSfFlags">16</int>
-								</object>
-								<reference key="NSControlView" ref="512228208"/>
-								<int key="NSButtonFlags">-2033434369</int>
-								<int key="NSButtonFlags2">130</int>
-								<string key="NSAlternateContents"/>
-								<string key="NSKeyEquivalent"/>
-								<int key="NSPeriodicDelay">400</int>
-								<int key="NSPeriodicInterval">75</int>
-							</object>
-						</object>
-					</object>
-					<string key="NSFrameSize">{787, 260}</string>
-					<reference key="NSSuperview"/>
-				</object>
-				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
-				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
-			</object>
-		</object>
-		<object class="IBObjectContainer" key="IBDocument.Objects">
-			<object class="NSMutableArray" key="connectionRecords">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performMiniaturize:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="683986939"/>
-					</object>
-					<int key="connectionID">37</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">arrangeInFront:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="164762492"/>
-					</object>
-					<int key="connectionID">39</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">print:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="302505815"/>
-					</object>
-					<int key="connectionID">86</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">runPageLayout:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="409810395"/>
-					</object>
-					<int key="connectionID">87</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">showHelp:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="192540884"/>
-					</object>
-					<int key="connectionID">122</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">clearRecentDocuments:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="85018532"/>
-					</object>
-					<int key="connectionID">127</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">terminate:</string>
-						<reference key="source" ref="870565383"/>
-						<reference key="destination" ref="887927135"/>
-					</object>
-					<int key="connectionID">139</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">orderFrontStandardAboutPanel:</string>
-						<reference key="source" ref="870565383"/>
-						<reference key="destination" ref="838552093"/>
-					</object>
-					<int key="connectionID">142</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">hideOtherApplications:</string>
-						<reference key="source" ref="870565383"/>
-						<reference key="destination" ref="216168366"/>
-					</object>
-					<int key="connectionID">146</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">hide:</string>
-						<reference key="source" ref="870565383"/>
-						<reference key="destination" ref="104472016"/>
-					</object>
-					<int key="connectionID">152</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">unhideAllApplications:</string>
-						<reference key="source" ref="870565383"/>
-						<reference key="destination" ref="667790509"/>
-					</object>
-					<int key="connectionID">153</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">cut:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="909447496"/>
-					</object>
-					<int key="connectionID">175</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">paste:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="84012734"/>
-					</object>
-					<int key="connectionID">176</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">redo:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="1001272176"/>
-					</object>
-					<int key="connectionID">178</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">selectAll:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="917620781"/>
-					</object>
-					<int key="connectionID">179</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">undo:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="284548410"/>
-					</object>
-					<int key="connectionID">180</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">copy:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="994487277"/>
-					</object>
-					<int key="connectionID">181</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">showGuessPanel:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="438210660"/>
-					</object>
-					<int key="connectionID">188</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">checkSpelling:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="102172584"/>
-					</object>
-					<int key="connectionID">190</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">toggleContinuousSpellChecking:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="540509341"/>
-					</object>
-					<int key="connectionID">192</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performClose:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="468594275"/>
-					</object>
-					<int key="connectionID">193</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">delete:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="512189403"/>
-					</object>
-					<int key="connectionID">195</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performZoom:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="548098734"/>
-					</object>
-					<int key="connectionID">198</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performFindPanelAction:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="203238834"/>
-					</object>
-					<int key="connectionID">199</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performFindPanelAction:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="861312964"/>
-					</object>
-					<int key="connectionID">200</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performFindPanelAction:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="743767160"/>
-					</object>
-					<int key="connectionID">201</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">performFindPanelAction:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="180446588"/>
-					</object>
-					<int key="connectionID">202</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">centerSelectionInVisibleArea:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="731027425"/>
-					</object>
-					<int key="connectionID">203</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">pasteAsPlainText:</string>
-						<reference key="source" ref="442653439"/>
-						<reference key="destination" ref="182251545"/>
-					</object>
-					<int key="connectionID">205</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">crash:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="726278107"/>
-					</object>
-					<int key="connectionID">208</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">window_</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="341270541"/>
-					</object>
-					<int key="connectionID">209</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">crash:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="799567279"/>
-					</object>
-					<int key="connectionID">211</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">crash:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="27781390"/>
-					</object>
-					<int key="connectionID">213</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">forkTestOptions_</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="347013037"/>
-					</object>
-					<int key="connectionID">241</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestOptions:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="943458284"/>
-					</object>
-					<int key="connectionID">242</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestOptions:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="7590393"/>
-					</object>
-					<int key="connectionID">243</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestOptions:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="410017819"/>
-					</object>
-					<int key="connectionID">244</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestGo:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="512228208"/>
-					</object>
-					<int key="connectionID">250</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestOptions:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="1050951576"/>
-					</object>
-					<int key="connectionID">261</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">forkTestOptions:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="891367997"/>
-					</object>
-					<int key="connectionID">262</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">showForkTestWindow:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="856256540"/>
-					</object>
-					<int key="connectionID">283</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">generateReportWithoutCrash:</string>
-						<reference key="source" ref="623097029"/>
-						<reference key="destination" ref="460755987"/>
-					</object>
-					<int key="connectionID">327</int>
-				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="925601844"/>
-						<nil key="parent"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="870565383"/>
-						<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="442653439"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">First Responder</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-3</int>
-						<reference key="object" ref="751079937"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Application</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">21</int>
-						<reference key="object" ref="341270541"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="814272478"/>
-						</object>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Window</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">2</int>
-						<reference key="object" ref="814272478"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="726278107"/>
-							<reference ref="799567279"/>
-							<reference ref="27781390"/>
-							<reference ref="856256540"/>
-							<reference ref="460755987"/>
-						</object>
-						<reference key="parent" ref="341270541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">206</int>
-						<reference key="object" ref="726278107"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="539552922"/>
-						</object>
-						<reference key="parent" ref="814272478"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">210</int>
-						<reference key="object" ref="799567279"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1010617379"/>
-						</object>
-						<reference key="parent" ref="814272478"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">212</int>
-						<reference key="object" ref="27781390"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="547901497"/>
-						</object>
-						<reference key="parent" ref="814272478"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">218</int>
-						<reference key="object" ref="856256540"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="353736234"/>
-						</object>
-						<reference key="parent" ref="814272478"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">325</int>
-						<reference key="object" ref="460755987"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="775425649"/>
-						</object>
-						<reference key="parent" ref="814272478"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">29</int>
-						<reference key="object" ref="695387251"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="764068863"/>
-							<reference ref="458207250"/>
-							<reference ref="369472335"/>
-							<reference ref="599772536"/>
-							<reference ref="542216986"/>
-						</object>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">MainMenu</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">19</int>
-						<reference key="object" ref="764068863"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="200536676"/>
-						</object>
-						<reference key="parent" ref="695387251"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">24</int>
-						<reference key="object" ref="200536676"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="164762492"/>
-							<reference ref="683986939"/>
-							<reference ref="297002686"/>
-							<reference ref="548098734"/>
-						</object>
-						<reference key="parent" ref="764068863"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">5</int>
-						<reference key="object" ref="164762492"/>
-						<reference key="parent" ref="200536676"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">23</int>
-						<reference key="object" ref="683986939"/>
-						<reference key="parent" ref="200536676"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">92</int>
-						<reference key="object" ref="297002686"/>
-						<reference key="parent" ref="200536676"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">197</int>
-						<reference key="object" ref="548098734"/>
-						<reference key="parent" ref="200536676"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">56</int>
-						<reference key="object" ref="458207250"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="753534561"/>
-						</object>
-						<reference key="parent" ref="695387251"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">57</int>
-						<reference key="object" ref="753534561"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="838552093"/>
-							<reference ref="443649494"/>
-							<reference ref="826764396"/>
-							<reference ref="104472016"/>
-							<reference ref="887927135"/>
-							<reference ref="217746140"/>
-							<reference ref="881859155"/>
-							<reference ref="216168366"/>
-							<reference ref="928933982"/>
-							<reference ref="667790509"/>
-							<reference ref="758254482"/>
-						</object>
-						<reference key="parent" ref="458207250"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">58</int>
-						<reference key="object" ref="838552093"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">129</int>
-						<reference key="object" ref="443649494"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">131</int>
-						<reference key="object" ref="826764396"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="276709607"/>
-						</object>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">130</int>
-						<reference key="object" ref="276709607"/>
-						<reference key="parent" ref="826764396"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">134</int>
-						<reference key="object" ref="104472016"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">136</int>
-						<reference key="object" ref="887927135"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">143</int>
-						<reference key="object" ref="217746140"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">144</int>
-						<reference key="object" ref="881859155"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">145</int>
-						<reference key="object" ref="216168366"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">149</int>
-						<reference key="object" ref="928933982"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">150</int>
-						<reference key="object" ref="667790509"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">196</int>
-						<reference key="object" ref="758254482"/>
-						<reference key="parent" ref="753534561"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">83</int>
-						<reference key="object" ref="369472335"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="902982238"/>
-						</object>
-						<reference key="parent" ref="695387251"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">81</int>
-						<reference key="object" ref="902982238"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="367379562"/>
-							<reference ref="468594275"/>
-							<reference ref="232609393"/>
-							<reference ref="479945444"/>
-							<reference ref="409810395"/>
-							<reference ref="302505815"/>
-							<reference ref="154948703"/>
-							<reference ref="976375553"/>
-							<reference ref="660391032"/>
-							<reference ref="885975128"/>
-							<reference ref="84883275"/>
-						</object>
-						<reference key="parent" ref="369472335"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">72</int>
-						<reference key="object" ref="367379562"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">73</int>
-						<reference key="object" ref="468594275"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">74</int>
-						<reference key="object" ref="232609393"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">75</int>
-						<reference key="object" ref="479945444"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">77</int>
-						<reference key="object" ref="409810395"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">78</int>
-						<reference key="object" ref="302505815"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">79</int>
-						<reference key="object" ref="154948703"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">80</int>
-						<reference key="object" ref="976375553"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">82</int>
-						<reference key="object" ref="660391032"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">112</int>
-						<reference key="object" ref="885975128"/>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">124</int>
-						<reference key="object" ref="84883275"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="693280130"/>
-						</object>
-						<reference key="parent" ref="902982238"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">125</int>
-						<reference key="object" ref="693280130"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="85018532"/>
-						</object>
-						<reference key="parent" ref="84883275"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">126</int>
-						<reference key="object" ref="85018532"/>
-						<reference key="parent" ref="693280130"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">103</int>
-						<reference key="object" ref="599772536"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1066958924"/>
-						</object>
-						<reference key="parent" ref="695387251"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">106</int>
-						<reference key="object" ref="1066958924"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="192540884"/>
-						</object>
-						<reference key="parent" ref="599772536"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">111</int>
-						<reference key="object" ref="192540884"/>
-						<reference key="parent" ref="1066958924"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">163</int>
-						<reference key="object" ref="542216986"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1053284541"/>
-						</object>
-						<reference key="parent" ref="695387251"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">169</int>
-						<reference key="object" ref="1053284541"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="209744238"/>
-							<reference ref="994487277"/>
-							<reference ref="284548410"/>
-							<reference ref="909447496"/>
-							<reference ref="512189403"/>
-							<reference ref="153501847"/>
-							<reference ref="84012734"/>
-							<reference ref="917620781"/>
-							<reference ref="1001272176"/>
-							<reference ref="431895313"/>
-							<reference ref="61602259"/>
-							<reference ref="182251545"/>
-						</object>
-						<reference key="parent" ref="542216986"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">156</int>
-						<reference key="object" ref="209744238"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">157</int>
-						<reference key="object" ref="994487277"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">158</int>
-						<reference key="object" ref="284548410"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">160</int>
-						<reference key="object" ref="909447496"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">164</int>
-						<reference key="object" ref="512189403"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">168</int>
-						<reference key="object" ref="153501847"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="333484665"/>
-						</object>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">159</int>
-						<reference key="object" ref="333484665"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="203238834"/>
-							<reference ref="731027425"/>
-							<reference ref="180446588"/>
-							<reference ref="743767160"/>
-							<reference ref="861312964"/>
-						</object>
-						<reference key="parent" ref="153501847"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">154</int>
-						<reference key="object" ref="203238834"/>
-						<reference key="parent" ref="333484665"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">155</int>
-						<reference key="object" ref="731027425"/>
-						<reference key="parent" ref="333484665"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">161</int>
-						<reference key="object" ref="180446588"/>
-						<reference key="parent" ref="333484665"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">162</int>
-						<reference key="object" ref="743767160"/>
-						<reference key="parent" ref="333484665"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">167</int>
-						<reference key="object" ref="861312964"/>
-						<reference key="parent" ref="333484665"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">171</int>
-						<reference key="object" ref="84012734"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">172</int>
-						<reference key="object" ref="917620781"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">173</int>
-						<reference key="object" ref="1001272176"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">174</int>
-						<reference key="object" ref="431895313"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">184</int>
-						<reference key="object" ref="61602259"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="8174285"/>
-						</object>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">185</int>
-						<reference key="object" ref="8174285"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="438210660"/>
-							<reference ref="102172584"/>
-							<reference ref="540509341"/>
-						</object>
-						<reference key="parent" ref="61602259"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">187</int>
-						<reference key="object" ref="438210660"/>
-						<reference key="parent" ref="8174285"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">189</int>
-						<reference key="object" ref="102172584"/>
-						<reference key="parent" ref="8174285"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">191</int>
-						<reference key="object" ref="540509341"/>
-						<reference key="parent" ref="8174285"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">204</int>
-						<reference key="object" ref="182251545"/>
-						<reference key="parent" ref="1053284541"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">207</int>
-						<reference key="object" ref="623097029"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Controller</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">220</int>
-						<reference key="object" ref="347013037"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="594333702"/>
-						</object>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Window (Window)</string>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">221</int>
-						<reference key="object" ref="594333702"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="891367997"/>
-							<reference ref="7590393"/>
-							<reference ref="1050951576"/>
-							<reference ref="512228208"/>
-						</object>
-						<reference key="parent" ref="347013037"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">226</int>
-						<reference key="object" ref="891367997"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="410017819"/>
-							<reference ref="904578786"/>
-							<reference ref="971445237"/>
-							<reference ref="1072218638"/>
-						</object>
-						<reference key="parent" ref="594333702"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">227</int>
-						<reference key="object" ref="410017819"/>
-						<reference key="parent" ref="891367997"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">228</int>
-						<reference key="object" ref="904578786"/>
-						<reference key="parent" ref="891367997"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">272</int>
-						<reference key="object" ref="971445237"/>
-						<reference key="parent" ref="891367997"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">232</int>
-						<reference key="object" ref="7590393"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="808388382"/>
-							<reference ref="378736460"/>
-							<reference ref="251439646"/>
-							<reference ref="773902463"/>
-						</object>
-						<reference key="parent" ref="594333702"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">233</int>
-						<reference key="object" ref="808388382"/>
-						<reference key="parent" ref="7590393"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">234</int>
-						<reference key="object" ref="378736460"/>
-						<reference key="parent" ref="7590393"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">236</int>
-						<reference key="object" ref="251439646"/>
-						<reference key="parent" ref="7590393"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">237</int>
-						<reference key="object" ref="1050951576"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="943458284"/>
-							<reference ref="69061500"/>
-							<reference ref="709643899"/>
-						</object>
-						<reference key="parent" ref="594333702"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">238</int>
-						<reference key="object" ref="943458284"/>
-						<reference key="parent" ref="1050951576"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">239</int>
-						<reference key="object" ref="69061500"/>
-						<reference key="parent" ref="1050951576"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">248</int>
-						<reference key="object" ref="512228208"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="69630975"/>
-						</object>
-						<reference key="parent" ref="594333702"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">329</int>
-						<reference key="object" ref="539552922"/>
-						<reference key="parent" ref="726278107"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">330</int>
-						<reference key="object" ref="1010617379"/>
-						<reference key="parent" ref="799567279"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">331</int>
-						<reference key="object" ref="547901497"/>
-						<reference key="parent" ref="27781390"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">332</int>
-						<reference key="object" ref="353736234"/>
-						<reference key="parent" ref="856256540"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">333</int>
-						<reference key="object" ref="775425649"/>
-						<reference key="parent" ref="460755987"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">334</int>
-						<reference key="object" ref="69630975"/>
-						<reference key="parent" ref="512228208"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">335</int>
-						<reference key="object" ref="1072218638"/>
-						<reference key="parent" ref="891367997"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">336</int>
-						<reference key="object" ref="773902463"/>
-						<reference key="parent" ref="7590393"/>
-					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">337</int>
-						<reference key="object" ref="709643899"/>
-						<reference key="parent" ref="1050951576"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="flattenedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="NSArray" key="dict.sortedKeys">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>-3.IBPluginDependency</string>
-					<string>-3.ImportedFromIB2</string>
-					<string>103.IBPluginDependency</string>
-					<string>103.ImportedFromIB2</string>
-					<string>106.IBPluginDependency</string>
-					<string>106.ImportedFromIB2</string>
-					<string>111.IBPluginDependency</string>
-					<string>111.ImportedFromIB2</string>
-					<string>112.IBPluginDependency</string>
-					<string>112.ImportedFromIB2</string>
-					<string>124.IBPluginDependency</string>
-					<string>124.ImportedFromIB2</string>
-					<string>125.IBPluginDependency</string>
-					<string>125.ImportedFromIB2</string>
-					<string>126.IBPluginDependency</string>
-					<string>126.ImportedFromIB2</string>
-					<string>129.IBPluginDependency</string>
-					<string>129.ImportedFromIB2</string>
-					<string>130.IBPluginDependency</string>
-					<string>130.ImportedFromIB2</string>
-					<string>131.IBPluginDependency</string>
-					<string>131.ImportedFromIB2</string>
-					<string>134.IBPluginDependency</string>
-					<string>134.ImportedFromIB2</string>
-					<string>136.IBPluginDependency</string>
-					<string>136.ImportedFromIB2</string>
-					<string>143.IBPluginDependency</string>
-					<string>143.ImportedFromIB2</string>
-					<string>144.IBPluginDependency</string>
-					<string>144.ImportedFromIB2</string>
-					<string>145.IBPluginDependency</string>
-					<string>145.ImportedFromIB2</string>
-					<string>149.IBPluginDependency</string>
-					<string>149.ImportedFromIB2</string>
-					<string>150.IBPluginDependency</string>
-					<string>150.ImportedFromIB2</string>
-					<string>154.IBPluginDependency</string>
-					<string>154.ImportedFromIB2</string>
-					<string>155.IBPluginDependency</string>
-					<string>155.ImportedFromIB2</string>
-					<string>156.IBPluginDependency</string>
-					<string>156.ImportedFromIB2</string>
-					<string>157.IBPluginDependency</string>
-					<string>157.ImportedFromIB2</string>
-					<string>158.IBPluginDependency</string>
-					<string>158.ImportedFromIB2</string>
-					<string>159.IBPluginDependency</string>
-					<string>159.ImportedFromIB2</string>
-					<string>160.IBPluginDependency</string>
-					<string>160.ImportedFromIB2</string>
-					<string>161.IBPluginDependency</string>
-					<string>161.ImportedFromIB2</string>
-					<string>162.IBPluginDependency</string>
-					<string>162.ImportedFromIB2</string>
-					<string>163.IBPluginDependency</string>
-					<string>163.ImportedFromIB2</string>
-					<string>164.IBPluginDependency</string>
-					<string>164.ImportedFromIB2</string>
-					<string>167.IBPluginDependency</string>
-					<string>167.ImportedFromIB2</string>
-					<string>168.IBPluginDependency</string>
-					<string>168.ImportedFromIB2</string>
-					<string>169.IBPluginDependency</string>
-					<string>169.ImportedFromIB2</string>
-					<string>171.IBPluginDependency</string>
-					<string>171.ImportedFromIB2</string>
-					<string>172.IBPluginDependency</string>
-					<string>172.ImportedFromIB2</string>
-					<string>173.IBPluginDependency</string>
-					<string>173.ImportedFromIB2</string>
-					<string>174.IBPluginDependency</string>
-					<string>174.ImportedFromIB2</string>
-					<string>184.IBPluginDependency</string>
-					<string>184.ImportedFromIB2</string>
-					<string>185.IBPluginDependency</string>
-					<string>185.ImportedFromIB2</string>
-					<string>187.IBPluginDependency</string>
-					<string>187.ImportedFromIB2</string>
-					<string>189.IBPluginDependency</string>
-					<string>189.ImportedFromIB2</string>
-					<string>19.IBPluginDependency</string>
-					<string>19.ImportedFromIB2</string>
-					<string>191.IBPluginDependency</string>
-					<string>191.ImportedFromIB2</string>
-					<string>196.IBPluginDependency</string>
-					<string>196.ImportedFromIB2</string>
-					<string>197.IBPluginDependency</string>
-					<string>197.ImportedFromIB2</string>
-					<string>2.IBPluginDependency</string>
-					<string>2.ImportedFromIB2</string>
-					<string>204.IBPluginDependency</string>
-					<string>204.ImportedFromIB2</string>
-					<string>206.IBPluginDependency</string>
-					<string>206.ImportedFromIB2</string>
-					<string>207.ImportedFromIB2</string>
-					<string>21.IBEditorWindowLastContentRect</string>
-					<string>21.IBPluginDependency</string>
-					<string>21.IBWindowTemplateEditedContentRect</string>
-					<string>21.ImportedFromIB2</string>
-					<string>21.windowTemplate.hasMinSize</string>
-					<string>21.windowTemplate.minSize</string>
-					<string>210.IBPluginDependency</string>
-					<string>210.ImportedFromIB2</string>
-					<string>212.IBPluginDependency</string>
-					<string>212.ImportedFromIB2</string>
-					<string>218.IBPluginDependency</string>
-					<string>218.ImportedFromIB2</string>
-					<string>220.IBEditorWindowLastContentRect</string>
-					<string>220.IBPluginDependency</string>
-					<string>220.IBWindowTemplateEditedContentRect</string>
-					<string>220.ImportedFromIB2</string>
-					<string>221.IBPluginDependency</string>
-					<string>221.ImportedFromIB2</string>
-					<string>226.IBPluginDependency</string>
-					<string>226.ImportedFromIB2</string>
-					<string>227.IBPluginDependency</string>
-					<string>227.ImportedFromIB2</string>
-					<string>228.IBPluginDependency</string>
-					<string>228.ImportedFromIB2</string>
-					<string>23.IBPluginDependency</string>
-					<string>23.ImportedFromIB2</string>
-					<string>232.IBPluginDependency</string>
-					<string>232.ImportedFromIB2</string>
-					<string>233.IBPluginDependency</string>
-					<string>233.ImportedFromIB2</string>
-					<string>234.IBPluginDependency</string>
-					<string>234.ImportedFromIB2</string>
-					<string>236.IBPluginDependency</string>
-					<string>236.ImportedFromIB2</string>
-					<string>237.IBPluginDependency</string>
-					<string>237.ImportedFromIB2</string>
-					<string>238.IBPluginDependency</string>
-					<string>238.ImportedFromIB2</string>
-					<string>239.IBPluginDependency</string>
-					<string>239.ImportedFromIB2</string>
-					<string>24.IBPluginDependency</string>
-					<string>24.ImportedFromIB2</string>
-					<string>248.IBPluginDependency</string>
-					<string>248.ImportedFromIB2</string>
-					<string>272.IBPluginDependency</string>
-					<string>272.ImportedFromIB2</string>
-					<string>29.IBEditorWindowLastContentRect</string>
-					<string>29.IBPluginDependency</string>
-					<string>29.ImportedFromIB2</string>
-					<string>325.IBPluginDependency</string>
-					<string>325.ImportedFromIB2</string>
-					<string>329.IBPluginDependency</string>
-					<string>330.IBPluginDependency</string>
-					<string>331.IBPluginDependency</string>
-					<string>332.IBPluginDependency</string>
-					<string>333.IBPluginDependency</string>
-					<string>334.IBPluginDependency</string>
-					<string>335.IBPluginDependency</string>
-					<string>336.IBPluginDependency</string>
-					<string>337.IBPluginDependency</string>
-					<string>5.IBPluginDependency</string>
-					<string>5.ImportedFromIB2</string>
-					<string>56.IBPluginDependency</string>
-					<string>56.ImportedFromIB2</string>
-					<string>57.IBPluginDependency</string>
-					<string>57.ImportedFromIB2</string>
-					<string>58.IBPluginDependency</string>
-					<string>58.ImportedFromIB2</string>
-					<string>72.IBPluginDependency</string>
-					<string>72.ImportedFromIB2</string>
-					<string>73.IBPluginDependency</string>
-					<string>73.ImportedFromIB2</string>
-					<string>74.IBPluginDependency</string>
-					<string>74.ImportedFromIB2</string>
-					<string>75.IBPluginDependency</string>
-					<string>75.ImportedFromIB2</string>
-					<string>77.IBPluginDependency</string>
-					<string>77.ImportedFromIB2</string>
-					<string>78.IBPluginDependency</string>
-					<string>78.ImportedFromIB2</string>
-					<string>79.IBPluginDependency</string>
-					<string>79.ImportedFromIB2</string>
-					<string>80.IBPluginDependency</string>
-					<string>80.ImportedFromIB2</string>
-					<string>81.IBPluginDependency</string>
-					<string>81.ImportedFromIB2</string>
-					<string>82.IBPluginDependency</string>
-					<string>82.ImportedFromIB2</string>
-					<string>83.IBPluginDependency</string>
-					<string>83.ImportedFromIB2</string>
-					<string>92.IBPluginDependency</string>
-					<string>92.ImportedFromIB2</string>
-				</object>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<string>{{510, 1250}, {320, 188}}</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{510, 1250}, {320, 188}}</string>
-					<boolean value="YES"/>
-					<boolean value="YES"/>
-					<string>{213, 107}</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>{{-55, 1287}, {787, 260}}</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{-55, 1287}, {787, 260}}</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>{{0, 1114}, {362, 20}}</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="YES"/>
-				</object>
-			</object>
-			<object class="NSMutableDictionary" key="unlocalizedProperties">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="activeLocalization"/>
-			<object class="NSMutableDictionary" key="localizations">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
-			</object>
-			<nil key="sourceID"/>
-			<int key="maxID">337</int>
-		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes">
-			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">Controller</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>crash:</string>
-							<string>forkTestGo:</string>
-							<string>forkTestOptions:</string>
-							<string>generateReportWithoutCrash:</string>
-							<string>showForkTestWindow:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>crash:</string>
-							<string>forkTestGo:</string>
-							<string>forkTestOptions:</string>
-							<string>generateReportWithoutCrash:</string>
-							<string>showForkTestWindow:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBActionInfo">
-								<string key="name">crash:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">forkTestGo:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">forkTestOptions:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">generateReportWithoutCrash:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">showForkTestWindow:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>forkTestOptions_</string>
-							<string>window_</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>NSWindow</string>
-							<string>NSWindow</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>forkTestOptions_</string>
-							<string>window_</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBToOneOutletInfo">
-								<string key="name">forkTestOptions_</string>
-								<string key="candidateClassName">NSWindow</string>
-							</object>
-							<object class="IBToOneOutletInfo">
-								<string key="name">window_</string>
-								<string key="candidateClassName">NSWindow</string>
-							</object>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">testapp/Controller.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">Controller</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">FirstResponder</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSActionCell</string>
-					<string key="superclassName">NSCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<string key="superclassName">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="785325875">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="806686590">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="301712406">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSBrowser</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSButton</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSButtonCell</string>
-					<string key="superclassName">NSActionCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSCell</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSControl</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="787388657">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSDocument</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>printDocument:</string>
-							<string>revertDocumentToSaved:</string>
-							<string>runPageLayout:</string>
-							<string>saveDocument:</string>
-							<string>saveDocumentAs:</string>
-							<string>saveDocumentTo:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>printDocument:</string>
-							<string>revertDocumentToSaved:</string>
-							<string>runPageLayout:</string>
-							<string>saveDocument:</string>
-							<string>saveDocumentAs:</string>
-							<string>saveDocumentTo:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBActionInfo">
-								<string key="name">printDocument:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">revertDocumentToSaved:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">runPageLayout:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">saveDocument:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">saveDocumentAs:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">saveDocumentTo:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSDocument</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSDocumentController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="NSMutableDictionary" key="actions">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>clearRecentDocuments:</string>
-							<string>newDocument:</string>
-							<string>openDocument:</string>
-							<string>saveAllDocuments:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-						</object>
-					</object>
-					<object class="NSMutableDictionary" key="actionInfosByName">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>clearRecentDocuments:</string>
-							<string>newDocument:</string>
-							<string>openDocument:</string>
-							<string>saveAllDocuments:</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<object class="IBActionInfo">
-								<string key="name">clearRecentDocuments:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">newDocument:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">openDocument:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-							<object class="IBActionInfo">
-								<string key="name">saveAllDocuments:</string>
-								<string key="candidateClassName">id</string>
-							</object>
-						</object>
-					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSFormatter</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSMatrix</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSMenu</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="136824428">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSMenuItem</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="171959132">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSMovieView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="785325875"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="806686590"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="301712406"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="787388657"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="136824428"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="521965700">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="104369095">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSResponder</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTableView</string>
-					<string key="superclassName">NSControl</string>
-					<reference key="sourceIdentifier" ref="521965700"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSText</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<reference key="sourceIdentifier" ref="171959132"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<string key="superclassName">NSResponder</string>
-					<reference key="sourceIdentifier" ref="104369095"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
-					<string key="superclassName">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
-					</object>
-				</object>
-			</object>
-		</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="1050" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
-			<integer value="1050" key="NS.object.0"/>
-		</object>
-		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
-			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
-			<integer value="3000" key="NS.object.0"/>
-		</object>
-		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../../Breakpad.xcodeproj</string>
-		<int key="IBDocument.defaultPropertyAccessControl">3</int>
-		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>NSMenuCheckmark</string>
-				<string>NSMenuMixedState</string>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<string>{9, 8}</string>
-				<string>{7, 2}</string>
-			</object>
-		</object>
-	</data>
-</archive>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/Info.plist
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>English</string>
-	<key>CFBundleExecutable</key>
-	<string>${EXECUTABLE_NAME}</string>
-	<key>CFBundleIconFile</key>
-	<string>bomb</string>
-	<key>CFBundleIdentifier</key>
-	<string>com.Google.BreakpadTest</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>${PRODUCT_NAME}</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1.0</string>
-	<key>NSMainNibFile</key>
-	<string>MainMenu</string>
-	<key>NSPrincipalClass</key>
-	<string>NSApplication</string>
-	<key>BreakpadProductDisplay</key>
-	<string>Breakpad Tester</string>
-	<key>BreakpadProduct</key>
-	<string>Breakpad_Tester</string>
-	<key>BreakpadVersion</key>
-	<string>1.2.3.4</string>
-	<key>BreakpadReportInterval</key>
-	<string>10</string>
-	<key>BreakpadSkipConfirm</key>
-	<string>NO</string>
-	<key>BreakpadSendAndExit</key>
-	<string>YES</string>
-	<key>BreakpadRequestEmail</key>
-	<string>YES</string>
-	<key>BreakpadRequestComments</key>
-	<string>YES</string>
-	<key>BreakpadVendor</key>
-	<string>Foo Bar Corp, Incorporated, LTD, LLC</string>
-	<key>BreakpadServerParameters</key>
-	<dict>
-	  <key>Param1</key>
-	  <string>Value1</string>
-	  <key>Param2</key>
-	  <string>Value2</string>
-	</dict>
-	<key>LSUIElement</key>
-	<string>1</string>
-</dict>
-</plist>
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/TestClass.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Cocoa/Cocoa.h>
-
-@interface TestClass : NSObject {
-}
-
-- (void)wait;
-
-@end
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/TestClass.mm
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include <unistd.h>
-
-#import "TestClass.h"
-
-struct AStruct {
-  int x;
-  float y;
-  double z;
-};
-
-class InternalTestClass {
- public:
-  InternalTestClass(int a) : a_(a) {}
-  ~InternalTestClass() {}
-
-  void snooze(float a);
-  void snooze(int a);
-  int snooze(int a, float b);
-
- protected:
-  int a_;
-  AStruct s_;
-
-  static void InternalFunction(AStruct &s);
-  static float kStaticFloatValue;
-};
-
-void InternalTestClass::snooze(float a) {
-  InternalFunction(s_);
-  sleep(a_ * a);
-}
-
-void InternalTestClass::snooze(int a) {
-  InternalFunction(s_);
-  sleep(a_ * a);
-}
-
-int InternalTestClass::snooze(int a, float b) {
-  InternalFunction(s_);
-  sleep(a_ * a * b);
-
-  return 33;
-}
-
-void InternalTestClass::InternalFunction(AStruct &s) {
-  s.x = InternalTestClass::kStaticFloatValue;
-}
-
-float InternalTestClass::kStaticFloatValue = 42;
-
-static float PlainOldFunction() {
-  return 3.14145f;
-}
-
-@implementation TestClass
-
-- (void)wait {
-  InternalTestClass t(10);
-  float z = PlainOldFunction();
-
-  while (1) {
-    t.snooze(z);
-  }
-}
-
-@end
deleted file mode 100644
index c360dbf618946920498958680eddb253a1ff677f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100755
index 03bb3172769307065261123d239ca253e4dbf1cf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100755
index 5ca9debb755d4cebdae609cea91156ff244b6793..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/mac/testapp/main.m
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#import <Cocoa/Cocoa.h>
-
-int main(int argc, char *argv[]) {
-  return NSApplicationMain(argc,  (const char **) argv);
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright (c) 2007, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Author: Alfred Peng
-
-CC=cc
-CXX=CC
-
-CPPFLAGS=-g -I../../.. -DNDEBUG -features=extensions -D_REENTRANT
-LDFLAGS=-lpthread -lssl -lgnutls-openssl -lelf
-
-OBJ_DIR=.
-BIN_DIR=.
-
-THREAD_SRC=solaris_lwp.cc
-SHARE_SRC=../../minidump_file_writer.cc\
-	  ../../../common/md5.cc\
-	  ../../../common/string_conversion.cc\
-	  ../../../common/solaris/file_id.cc\
-	  minidump_generator.cc
-HANDLER_SRC=exception_handler.cc\
-	  ../../../common/solaris/guid_creator.cc
-SHARE_C_SRC=../../../common/convert_UTF.c
-
-MINIDUMP_TEST_SRC=minidump_test.cc
-EXCEPTION_TEST_SRC=exception_handler_test.cc
-
-THREAD_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(THREAD_SRC))
-SHARE_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(SHARE_SRC))
-HANDLER_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o,$(HANDLER_SRC))
-SHARE_C_OBJ=$(patsubst %.c,$(OBJ_DIR)/%.o,$(SHARE_C_SRC))
-MINIDUMP_TEST_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o, $(MINIDUMP_TEST_SRC))\
-		  $(THREAD_OBJ) $(SHARE_OBJ) $(SHARE_C_OBJ) $(HANDLER_OBJ)
-EXCEPTION_TEST_OBJ=$(patsubst %.cc,$(OBJ_DIR)/%.o, $(EXCEPTION_TEST_SRC))\
-          $(THREAD_OBJ) $(SHARE_OBJ) $(SHARE_C_OBJ) $(HANDLER_OBJ)
-
-BIN=$(BIN_DIR)/minidump_test\
-    $(BIN_DIR)/exception_handler_test
-
-.PHONY:all clean
-
-all:$(BIN)
-
-$(BIN_DIR)/minidump_test:$(MINIDUMP_TEST_OBJ)
-	$(CXX) $(CPPFLAGS) $(LDFLAGS) $^ -o $@
-
-$(BIN_DIR)/exception_handler_test:$(EXCEPTION_TEST_OBJ)
-	$(CXX) $(CPPFLAGS) $(LDFLAGS) $^ -o $@
-
-clean:
-	rm -f $(BIN) *.o *.out *.dmp core ../../minidump_file_writer.o\
-		../../../common/*.o ../../../common/solaris/*.o
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler.cc
+++ /dev/null
@@ -1,258 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#include <signal.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <cassert>
-#include <cstdlib>
-#include <ctime>
-
-#include "client/solaris/handler/exception_handler.h"
-#include "common/solaris/guid_creator.h"
-#include "common/solaris/message_output.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-// Signals that we are interested.
-static const int kSigTable[] = {
-  SIGSEGV,
-  SIGABRT,
-  SIGFPE,
-  SIGILL,
-  SIGBUS
-};
-
-std::vector<ExceptionHandler*> *ExceptionHandler::handler_stack_ = NULL;
-int ExceptionHandler::handler_stack_index_ = 0;
-pthread_mutex_t ExceptionHandler::handler_stack_mutex_ =
-  PTHREAD_MUTEX_INITIALIZER;
-
-ExceptionHandler::ExceptionHandler(const string &dump_path,
-                                   FilterCallback filter,
-                                   MinidumpCallback callback,
-                                   void *callback_context,
-                                   bool install_handler)
-    : filter_(filter),
-      callback_(callback),
-      callback_context_(callback_context),
-      dump_path_(),
-      installed_handler_(install_handler) {
-  set_dump_path(dump_path);
-
-  if (install_handler) {
-    SetupHandler();
-  }
-
-  if (install_handler) {
-    pthread_mutex_lock(&handler_stack_mutex_);
-
-    if (handler_stack_ == NULL)
-      handler_stack_ = new std::vector<ExceptionHandler *>;
-    handler_stack_->push_back(this);
-    pthread_mutex_unlock(&handler_stack_mutex_);
-  }
-}
-
-ExceptionHandler::~ExceptionHandler() {
-  TeardownAllHandlers();
-  pthread_mutex_lock(&handler_stack_mutex_);
-  if (handler_stack_->back() == this) {
-    handler_stack_->pop_back();
-  } else {
-    print_message1(2, "warning: removing Breakpad handler out of order\n");
-    for (std::vector<ExceptionHandler *>::iterator iterator =
-         handler_stack_->begin();
-         iterator != handler_stack_->end();
-         ++iterator) {
-      if (*iterator == this) {
-        handler_stack_->erase(iterator);
-      }
-    }
-  }
-
-  if (handler_stack_->empty()) {
-    // When destroying the last ExceptionHandler that installed a handler,
-    // clean up the handler stack.
-    delete handler_stack_;
-    handler_stack_ = NULL;
-  }
-  pthread_mutex_unlock(&handler_stack_mutex_);
-}
-
-bool ExceptionHandler::WriteMinidump() {
-  return InternalWriteMinidump(0, 0, NULL);
-}
-
-// static
-bool ExceptionHandler::WriteMinidump(const string &dump_path,
-                                     MinidumpCallback callback,
-                                     void *callback_context) {
-  ExceptionHandler handler(dump_path, NULL, callback,
-                           callback_context, false);
-  return handler.InternalWriteMinidump(0, 0, NULL);
-}
-
-void ExceptionHandler::SetupHandler() {
-  // Signal on a different stack to avoid using the stack
-  // of the crashing lwp.
-  struct sigaltstack sig_stack;
-  sig_stack.ss_sp = malloc(MINSIGSTKSZ);
-  if (sig_stack.ss_sp == NULL)
-    return;
-  sig_stack.ss_size = MINSIGSTKSZ;
-  sig_stack.ss_flags = 0;
-
-  if (sigaltstack(&sig_stack, NULL) < 0)
-    return;
-  for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i)
-    SetupHandler(kSigTable[i]);
-}
-
-void ExceptionHandler::SetupHandler(int signo) {
-  struct sigaction act, old_act;
-  act.sa_handler = HandleException;
-  act.sa_flags = SA_ONSTACK;
-  if (sigaction(signo, &act, &old_act) < 0)
-    return;
-  old_handlers_[signo] = old_act.sa_handler;
-}
-
-void ExceptionHandler::TeardownHandler(int signo) {
-  if (old_handlers_.find(signo) != old_handlers_.end()) {
-    struct sigaction act;
-    act.sa_handler = old_handlers_[signo];
-    act.sa_flags = 0;
-    sigaction(signo, &act, 0);
-  }
-}
-
-void ExceptionHandler::TeardownAllHandlers() {
-  for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i) {
-    TeardownHandler(kSigTable[i]);
-  }
-}
-
-// static
-void ExceptionHandler::HandleException(int signo) {
-//void ExceptionHandler::HandleException(int signo, siginfo_t *sip, ucontext_t *sig_ctx) {
-  // The context information about the signal is put on the stack of
-  // the signal handler frame as value parameter. For some reasons, the
-  // prototype of the handler doesn't declare this information as parameter, we
-  // will do it by hand. The stack layout for a signal handler frame is here:
-  // http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libproc/common/Pstack.c#81
-  //
-  // However, if we are being called by another signal handler passing the
-  // signal up the chain, then we may not have this random extra parameter,
-  // so we may have to walk the stack to find it.  We do the actual work
-  // on another thread, where it's a little safer, but we want the ebp
-  // from this frame to find it.
-  uintptr_t current_ebp = (uintptr_t)_getfp();
-
-  pthread_mutex_lock(&handler_stack_mutex_);
-  ExceptionHandler *current_handler =
-    handler_stack_->at(handler_stack_->size() - ++handler_stack_index_);
-  pthread_mutex_unlock(&handler_stack_mutex_);
-
-  // Restore original handler.
-  current_handler->TeardownHandler(signo);
-
-  ucontext_t *sig_ctx = NULL;
-  if (current_handler->InternalWriteMinidump(signo, current_ebp, &sig_ctx)) {
-//  if (current_handler->InternalWriteMinidump(signo, &sig_ctx)) {
-    // Fully handled this exception, safe to exit.
-    exit(EXIT_FAILURE);
-  } else {
-    // Exception not fully handled, will call the next handler in stack to
-    // process it.
-    typedef void (*SignalHandler)(int signo);
-    SignalHandler old_handler =
-      reinterpret_cast<SignalHandler>(current_handler->old_handlers_[signo]);
-    if (old_handler != NULL)
-      old_handler(signo);
-  }
-
-  pthread_mutex_lock(&handler_stack_mutex_);
-  current_handler->SetupHandler(signo);
-  --handler_stack_index_;
-  // All the handlers in stack have been invoked to handle the exception,
-  // normally the process should be terminated and should not reach here.
-  // In case we got here, ask the OS to handle it to avoid endless loop,
-  // normally the OS will generate a core and termiate the process. This
-  // may be desired to debug the program.
-  if (handler_stack_index_ == 0)
-    signal(signo, SIG_DFL);
-  pthread_mutex_unlock(&handler_stack_mutex_);
-}
-
-bool ExceptionHandler::InternalWriteMinidump(int signo,
-                                             uintptr_t sighandler_ebp,
-                                             ucontext_t **sig_ctx) {
-  if (filter_ && !filter_(callback_context_))
-    return false;
-
-  bool success = false;
-  GUID guid;
-  char guid_str[kGUIDStringLength + 1];
-  if (CreateGUID(&guid) && GUIDToString(&guid, guid_str, sizeof(guid_str))) {
-    char minidump_path[PATH_MAX];
-    snprintf(minidump_path, sizeof(minidump_path), "%s/%s.dmp",
-             dump_path_c_, guid_str);
-
-    // Block all the signals we want to process when writing minidump.
-    // We don't want it to be interrupted.
-    sigset_t sig_blocked, sig_old;
-    bool blocked = true;
-    sigfillset(&sig_blocked);
-    for (size_t i = 0; i < sizeof(kSigTable) / sizeof(kSigTable[0]); ++i)
-      sigdelset(&sig_blocked, kSigTable[i]);
-    if (sigprocmask(SIG_BLOCK, &sig_blocked, &sig_old) != 0) {
-      blocked = false;
-      print_message1(2, "HandleException: failed to block signals.\n");
-    }
-
-    success = minidump_generator_.WriteMinidumpToFile(
-                       minidump_path, signo, sighandler_ebp, sig_ctx);
-
-    // Unblock the signals.
-    if (blocked)
-      sigprocmask(SIG_SETMASK, &sig_old, &sig_old);
-
-    if (callback_)
-      success = callback_(dump_path_c_, guid_str, callback_context_, success);
-  }
-  return success;
-}
-
-}  // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler.h
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: Alfred Peng
-
-#ifndef CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
-#define CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "client/solaris/handler/minidump_generator.h"
-
-namespace google_breakpad {
-
-using std::string;
-
-//
-// ExceptionHandler
-//
-// ExceptionHandler can write a minidump file when an exception occurs,
-// or when WriteMinidump() is called explicitly by your program.
-//
-// To have the exception handler write minidumps when an uncaught exception
-// (crash) occurs, you should create an instance early in the execution
-// of your program, and keep it around for the entire time you want to
-// have crash handling active (typically, until shutdown).
-// (NOTE): There should be only one this kind of exception handler
-// object per process.
-//
-// If you want to write minidumps without installing the exception handler,
-// you can create an ExceptionHandler with install_handler set to false,
-// then call WriteMinidump.  You can also use this technique if you want to
-// use different minidump callbacks for different call sites.
-//
-// In either case, a callback function is called when a minidump is written,
-// which receives the unqiue id of the minidump.  The caller can use this
-// id to collect and write additional application state, and to launch an
-// external crash-reporting application.
-//
-// Caller should try to make the callbacks as crash-friendly as possible,
-// it should avoid use heap memory allocation as much as possible.
-//
-class ExceptionHandler {
- public:
-  // A callback function to run before Breakpad performs any substantial
-  // processing of an exception.  A FilterCallback is called before writing
-  // a minidump.  context is the parameter supplied by the user as
-  // callback_context when the handler was created.
-  //
-  // If a FilterCallback returns true, Breakpad will continue processing,
-  // attempting to write a minidump.  If a FilterCallback returns false,
-  // Breakpad  will immediately report the exception as unhandled without
-  // writing a minidump, allowing another handler the opportunity to handle it.
-  typedef bool (*FilterCallback)(void *context);
-
-  // A callback function to run after the minidump has been written.
-  // minidump_id is a unique id for the dump, so the minidump
-  // file is <dump_path>/<minidump_id>.dmp.  context is the parameter supplied
-  // by the user as callback_context when the handler was created.  succeeded
-  // indicates whether a minidump file was successfully written.
-  //
-  // If an exception occurred and the callback returns true, Breakpad will
-  // treat the exception as fully-handled, suppressing any other handlers from
-  // being notified of the exception.  If the callback returns false, Breakpad
-  // will treat the exception as unhandled, and allow another handler to handle
-  // it. If there are no other handlers, Breakpad will report the exception to
-  // the system as unhandled, allowing a debugger or native crash dialog the
-  // opportunity to handle the exception.  Most callback implementations
-  // should normally return the value of |succeeded|, or when they wish to
-  // not report an exception of handled, false.  Callbacks will rarely want to
-  // return true directly (unless |succeeded| is true).
-  typedef bool (*MinidumpCallback)(const char *dump_path,
-                                   const char *minidump_id,
-                                   void *context,
-                                   bool succeeded);
-
-  // Creates a new ExceptionHandler instance to handle writing minidumps.
-  // Before writing a minidump, the optional filter callback will be called.
-  // Its return value determines whether or not Breakpad should write a
-  // minidump.  Minidump files will be written to dump_path, and the optional
-  // callback is called after writing the dump file, as described above.
-  // If install_handler is true, then a minidump will be written whenever
-  // an unhandled exception occurs.  If it is false, minidumps will only
-  // be written when WriteMinidump is called.
-  ExceptionHandler(const string &dump_path,
-                   FilterCallback filter, MinidumpCallback callback,
-                   void *callback_context,
-                   bool install_handler);
-  ~ExceptionHandler();
-
-  // Get and Set the minidump path.
-  string dump_path() const { return dump_path_; }
-  void set_dump_path(const string &dump_path) {
-    dump_path_ = dump_path;
-    dump_path_c_ = dump_path_.c_str();
-  }
-
-  // Writes a minidump immediately.  This can be used to capture the
-  // execution state independently of a crash.  Returns true on success.
-  bool WriteMinidump();
-
-  // Convenience form of WriteMinidump which does not require an
-  // ExceptionHandler instance.
-  static bool WriteMinidump(const string &dump_path,
-                            MinidumpCallback callback,
-                            void *callback_context);
-
- private:
-  // Setup crash handler.
-  void SetupHandler();
-  // Setup signal handler for a signal.
-  void SetupHandler(int signo);
-  // Teardown the handler for a signal.
-  void TeardownHandler(int signo);
-  // Teardown all handlers.
-  void TeardownAllHandlers();
-
-  // Runs the main loop for the exception handler thread.
-  static void* ExceptionHandlerThreadMain(void *lpParameter);
-
-  // Signal handler.
-  static void HandleException(int signo);
-
-  // Write all the information to the dump file.
-  // If called from a signal handler, sighandler_ebp is the ebp of
-  // that signal handler's frame, and sig_ctx is an out parameter
-  // that will be set to point at the ucontext_t that was placed
-  // on the stack by the kernel.  You can pass zero and NULL
-  // for the second and third parameters if you are not calling
-  // this from a signal handler.
-  bool InternalWriteMinidump(int signo, uintptr_t sighandler_ebp,
-                             ucontext_t **sig_ctx);
-
- private:
-  // The callbacks before and after writing the dump file.
-  FilterCallback filter_;
-  MinidumpCallback callback_;
-  void *callback_context_;
-
-  // The directory in which a minidump will be written, set by the dump_path
-  // argument to the constructor, or set_dump_path.
-  string dump_path_;
-  // C style dump path. Keep this when setting dump path, since calling
-  // c_str() of std::string when crashing may not be safe.
-  const char *dump_path_c_;
-
-  // True if the ExceptionHandler installed an unhandled exception filter
-  // when created (with an install_handler parameter set to true).
-  bool installed_handler_;
-
-  // Keep the previous handlers for the signal.
-  typedef void (*sighandler_t)(int);
-  std::map<int, sighandler_t> old_handlers_;
-
-  // The global exception handler stack. This is need becuase there may exist
-  // multiple ExceptionHandler instances in a process. Each will have itself
-  // registered in this stack.
-  static std::vector<ExceptionHandler *> *handler_stack_;
-  // The index of the handler that should handle the next exception.
-  static int handler_stack_index_;
-  static pthread_mutex_t handler_stack_mutex_;
-
-  // The minidump generator.
-  MinidumpGenerator minidump_generator_;
-
-  // disallow copy ctor and operator=
-  explicit ExceptionHandler(const ExceptionHandler &);
-  void operator=(const ExceptionHandler &);
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_SOLARIS_HANDLER_EXCEPTION_HANDLER_H__
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/exception_handler_test.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#include <pthread.h>
-#include <unistd.h>
-
-#include <cassert>
-#include <cstdio>
-#include <cstdlib>
-#include <cstring>
-
-#include "client/solaris/handler/exception_handler.h"
-#include "client/solaris/handler/solaris_lwp.h"
-
-using namespace google_breakpad;
-
-// Thread use this to see if it should stop working.
-static bool should_exit = false;
-
-static int foo2(int arg) {
-  // Stack variable, used for debugging stack dumps.
-  int c = 0xcccccccc;
-  fprintf(stderr, "Thread trying to crash: %x\n", getpid());
-  c = *reinterpret_cast<int *>(0x5);
-  return c;
-}
-
-static int foo(int arg) {
-  // Stack variable, used for debugging stack dumps.
-  int b = 0xbbbbbbbb;
-  b = foo2(b);
-  return b;
-}
-
-static void *thread_crash(void *) {
-  // Stack variable, used for debugging stack dumps.
-  int a = 0xaaaaaaaa;
-  sleep(3);
-  a = foo(a);
-  printf("%x\n", a);
-  return NULL;
-}
-
-static void *thread_main(void *) {
-  while (!should_exit)
-    sleep(1);
-  return NULL;
-}
-
-static void CreateCrashThread() {
-  pthread_t h;
-  pthread_create(&h, NULL, thread_crash, NULL);
-  pthread_detach(h);
-}
-
-// Create working threads.
-static void CreateThread(int num) {
-  pthread_t h;
-  for (int i = 0; i < num; ++i) {
-    pthread_create(&h, NULL, thread_main, NULL);
-    pthread_detach(h);
-  }
-}
-
-// Callback when minidump written.
-static bool MinidumpCallback(const char *dump_path,
-                             const char *minidump_id,
-                             void *context,
-                             bool succeeded) {
-  int index = reinterpret_cast<int>(context);
-  if (index == 0) {
-    should_exit = true;
-    return true;
-  }
-  // Don't process it.
-  return false;
-}
-
-int main(int argc, char *argv[]) {
-  int handler_index = 1;
-  ExceptionHandler handler_ignore(".", NULL, MinidumpCallback,
-                                  (void*)handler_index, true);
-  CreateCrashThread();
-  CreateThread(10);
-
-  while (true)
-    sleep(20);
-  should_exit = true;
-
-  return 0;
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/minidump_generator.cc
+++ /dev/null
@@ -1,786 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#include <fcntl.h>
-#include <sys/frame.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/utsname.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#include <cstdlib>
-#include <ctime>
-
-#include "client/solaris/handler/minidump_generator.h"
-#include "client/minidump_file_writer-inl.h"
-#include "common/solaris/file_id.h"
-
-namespace {
-
-using namespace google_breakpad;
-
-// Argument for the writer function.
-struct WriterArgument {
-  MinidumpFileWriter *minidump_writer;
-
-  // Pid of the lwp who called WriteMinidumpToFile
-  int requester_pid;
-
-  // The stack bottom of the lwp which caused the dump.
-  // Mainly used to find the lwp id of the crashed lwp since signal
-  // handler may not be called in the lwp who caused it.
-  uintptr_t crashed_stack_bottom;
-
-  // Id of the crashing lwp.
-  int crashed_lwpid;
-
-  // Signal number when crash happened. Can be 0 if this is a requested dump.
-  int signo;
-
-  // The ebp of the signal handler frame on x86.  Can be 0 if this is a
-  // requested dump.
-  uintptr_t sighandler_ebp;
-
-  // User context when crash happens. Can be NULL if this is a requested dump.
-  // This is actually an out parameter, but it will be filled in at the start
-  // of the writer LWP.
-  ucontext_t *sig_ctx;
-
-  // Used to get information about the lwps.
-  SolarisLwp *lwp_lister;
-};
-
-// Holding context information for the callback of finding the crashing lwp.
-struct FindCrashLwpContext {
-  const SolarisLwp *lwp_lister;
-  uintptr_t crashing_stack_bottom;
-  int crashing_lwpid;
-
-  FindCrashLwpContext() :
-    lwp_lister(NULL),
-    crashing_stack_bottom(0UL),
-    crashing_lwpid(-1) {
-  }
-};
-
-// Callback for list lwps.
-// It will compare the stack bottom of the provided lwp with the stack
-// bottom of the crashed lwp, it they are eqaul, this lwp is the one
-// who crashed.
-bool IsLwpCrashedCallback(lwpstatus_t *lsp, void *context) {
-  FindCrashLwpContext *crashing_context =
-    static_cast<FindCrashLwpContext *>(context);
-  const SolarisLwp *lwp_lister = crashing_context->lwp_lister;
-  const prgregset_t *gregs = &(lsp->pr_reg);
-#if TARGET_CPU_SPARC
-  uintptr_t last_ebp = (*gregs)[R_FP];
-#elif TARGET_CPU_X86
-  uintptr_t last_ebp = (*gregs)[EBP];
-#endif
-  uintptr_t stack_bottom = lwp_lister->GetLwpStackBottom(last_ebp);
-  if (stack_bottom > last_ebp &&
-      stack_bottom == crashing_context->crashing_stack_bottom) {
-    // Got it. Stop iteration.
-    crashing_context->crashing_lwpid = lsp->pr_lwpid;
-    return false;
-  }
-
-  return true;
-}
-
-// Find the crashing lwpid.
-// This is done based on stack bottom comparing.
-int FindCrashingLwp(uintptr_t crashing_stack_bottom,
-                    int requester_pid,
-                    const SolarisLwp *lwp_lister) {
-  FindCrashLwpContext context;
-  context.lwp_lister = lwp_lister;
-  context.crashing_stack_bottom = crashing_stack_bottom;
-  CallbackParam<LwpCallback> callback_param(IsLwpCrashedCallback,
-                                            &context);
-  lwp_lister->Lwp_iter_all(lwp_lister->getpid(), &callback_param);
-  return context.crashing_lwpid;
-}
-
-bool WriteLwpStack(const SolarisLwp *lwp_lister,
-                   uintptr_t last_esp,
-                   UntypedMDRVA *memory,
-                   MDMemoryDescriptor *loc) {
-  uintptr_t stack_bottom = lwp_lister->GetLwpStackBottom(last_esp);
-  if (stack_bottom >= last_esp) {
-    int size = stack_bottom - last_esp;
-    if (size > 0) {
-      if (!memory->Allocate(size))
-        return false;
-      memory->Copy(reinterpret_cast<void *>(last_esp), size);
-      loc->start_of_memory_range = last_esp;
-      loc->memory = memory->location();
-    }
-    return true;
-  }
-  return false;
-}
-
-#if TARGET_CPU_SPARC
-bool WriteContext(MDRawContextSPARC *context, ucontext_t *sig_ctx) {
-  assert(sig_ctx != NULL);
-  int* regs = sig_ctx->uc_mcontext.gregs;
-  context->context_flags = MD_CONTEXT_SPARC_FULL;
-
-  context->ccr = (unsigned int)(regs[0]);
-  context->pc = (unsigned int)(regs[REG_PC]);
-  context->npc = (unsigned int)(regs[REG_nPC]);
-  context->y = (unsigned int)(regs[REG_Y]);
-  context->asi = (unsigned int)(regs[19]);
-  context->fprs = (unsigned int)(regs[20]);
-
-  for ( int i = 0 ; i < 32; ++i ) {
-    context->g_r[i] = 0;
-  }
-
-  for ( int i = 1 ; i < 16; ++i ) {
-    context->g_r[i] = (uintptr_t)(sig_ctx->uc_mcontext.gregs[i + 3]);
-  }
-  context->g_r[30] = (uintptr_t)(((struct frame *)context->g_r[14])->fr_savfp);
-
-  return true;
-}
-
-bool WriteContext(MDRawContextSPARC *context, prgregset_t regs,
-                  prfpregset_t *fp_regs) {
-  if (!context || !regs)
-    return false;
-
-  context->context_flags = MD_CONTEXT_SPARC_FULL;
-
-  context->ccr = (uintptr_t)(regs[32]);
-  context->pc = (uintptr_t)(regs[R_PC]);
-  context->npc = (uintptr_t)(regs[R_nPC]);
-  context->y = (uintptr_t)(regs[R_Y]);
-  context->asi = (uintptr_t)(regs[36]);
-  context->fprs = (uintptr_t)(regs[37]);
-  for ( int i = 0 ; i < 32 ; ++i ){
-    context->g_r[i] = (uintptr_t)(regs[i]);
-  }
-
-  return true;
-}
-#elif TARGET_CPU_X86
-bool WriteContext(MDRawContextX86 *context, prgregset_t regs,
-                  prfpregset_t *fp_regs) {
-  if (!context || !regs)
-    return false;
-
-  context->context_flags = MD_CONTEXT_X86_FULL;
-
-  context->cs = regs[CS];
-  context->ds = regs[DS];
-  context->es = regs[ES];
-  context->fs = regs[FS];
-  context->gs = regs[GS];
-  context->ss = regs[SS];
-  context->edi = regs[EDI];
-  context->esi = regs[ESI];
-  context->ebx = regs[EBX];
-  context->edx = regs[EDX];
-  context->ecx = regs[ECX];
-  context->eax = regs[EAX];
-  context->ebp = regs[EBP];
-  context->eip = regs[EIP];
-  context->esp = regs[UESP];
-  context->eflags = regs[EFL];
-
-  return true;
-}
-#endif /* TARGET_CPU_XXX */
-
-// Write information about a crashed Lwp.
-// When a lwp crash, kernel will write something on the stack for processing
-// signal. This makes the current stack not reliable, and our stack walker
-// won't figure out the whole call stack for this. So we write the stack at the
-// time of the crash into the minidump file, not the current stack.
-bool WriteCrashedLwpStream(MinidumpFileWriter *minidump_writer,
-                           const WriterArgument *writer_args,
-                           const lwpstatus_t *lsp,
-                           MDRawThread *lwp) {
-  assert(writer_args->sig_ctx != NULL);
-
-  lwp->thread_id = lsp->pr_lwpid;
-
-#if TARGET_CPU_SPARC
-  UntypedMDRVA memory(minidump_writer);
-  if (!WriteLwpStack(writer_args->lwp_lister,
-                     writer_args->sig_ctx->uc_mcontext.gregs[REG_O6],
-                     &memory,
-                     &lwp->stack))
-    return false;
-
-  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  lwp->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextSPARC));
-  return WriteContext(context.get(), writer_args->sig_ctx);
-#elif TARGET_CPU_X86
-  UntypedMDRVA memory(minidump_writer);
-  if (!WriteLwpStack(writer_args->lwp_lister,
-                     writer_args->sig_ctx->uc_mcontext.gregs[UESP],
-                     &memory,
-                     &lwp->stack))
-    return false;
-
-  TypedMDRVA<MDRawContextX86> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  lwp->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextX86));
-  return WriteContext(context.get(),
-                      (int *)&writer_args->sig_ctx->uc_mcontext.gregs,
-                      &writer_args->sig_ctx->uc_mcontext.fpregs);
-#endif
-}
-
-bool WriteLwpStream(MinidumpFileWriter *minidump_writer,
-                    const SolarisLwp *lwp_lister,
-                    const lwpstatus_t *lsp, MDRawThread *lwp) {
-  prfpregset_t fp_regs = lsp->pr_fpreg;
-  const prgregset_t *gregs = &(lsp->pr_reg);
-  UntypedMDRVA memory(minidump_writer);
-#if TARGET_CPU_SPARC
-  if (!WriteLwpStack(lwp_lister,
-                     (*gregs)[R_SP],
-                     &memory,
-                     &lwp->stack))
-    return false;
-
-  // Write context
-  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  // should be the thread_id
-  lwp->thread_id = lsp->pr_lwpid;
-  lwp->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextSPARC));
-#elif TARGET_CPU_X86
-  if (!WriteLwpStack(lwp_lister,
-                     (*gregs)[UESP],
-                     &memory,
-                     &lwp->stack))
-  return false;
-
-  // Write context
-  TypedMDRVA<MDRawContextX86> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  // should be the thread_id
-  lwp->thread_id = lsp->pr_lwpid;
-  lwp->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextX86));
-#endif /* TARGET_CPU_XXX */
-  return WriteContext(context.get(), (int *)gregs, &fp_regs);
-}
-
-bool WriteCPUInformation(MDRawSystemInfo *sys_info) {
-  struct utsname uts;
-  char *major, *minor, *build;
-
-  sys_info->number_of_processors = sysconf(_SC_NPROCESSORS_CONF);
-  sys_info->processor_architecture = MD_CPU_ARCHITECTURE_UNKNOWN;
-  if (uname(&uts) != -1) {
-    // Match "i86pc" as X86 architecture.
-    if (strcmp(uts.machine, "i86pc") == 0)
-      sys_info->processor_architecture = MD_CPU_ARCHITECTURE_X86;
-    else if (strcmp(uts.machine, "sun4u") == 0)
-      sys_info->processor_architecture = MD_CPU_ARCHITECTURE_SPARC;
-  }
-
-  major = uts.release;
-  minor = strchr(major, '.');
-  *minor = '\0';
-  ++minor;
-  sys_info->major_version = atoi(major);
-  sys_info->minor_version = atoi(minor);
-
-  build = strchr(uts.version, '_');
-  ++build;
-  sys_info->build_number = atoi(build);
-  
-  return true;
-}
-
-bool WriteOSInformation(MinidumpFileWriter *minidump_writer,
-                        MDRawSystemInfo *sys_info) {
-  sys_info->platform_id = MD_OS_SOLARIS;
-
-  struct utsname uts;
-  if (uname(&uts) != -1) {
-    char os_version[512];
-    size_t space_left = sizeof(os_version);
-    memset(os_version, 0, space_left);
-    const char *os_info_table[] = {
-      uts.sysname,
-      uts.release,
-      uts.version,
-      uts.machine,
-      "OpenSolaris",
-      NULL
-    };
-    for (const char **cur_os_info = os_info_table;
-         *cur_os_info != NULL;
-         ++cur_os_info) {
-      if (cur_os_info != os_info_table && space_left > 1) {
-        strcat(os_version, " ");
-        --space_left;
-      }
-      if (space_left > strlen(*cur_os_info)) {
-        strcat(os_version, *cur_os_info);
-        space_left -= strlen(*cur_os_info);
-      } else {
-        break;
-      }
-    }
-
-    MDLocationDescriptor location;
-    if (!minidump_writer->WriteString(os_version, 0, &location))
-      return false;
-    sys_info->csd_version_rva = location.rva;
-  }
-  return true;
-}
-
-// Callback context for get writting lwp information.
-struct LwpInfoCallbackCtx {
-  MinidumpFileWriter *minidump_writer;
-  const WriterArgument *writer_args;
-  TypedMDRVA<MDRawThreadList> *list;
-  int lwp_index;
-};
-
-bool LwpInformationCallback(lwpstatus_t *lsp, void *context) {
-  bool success = true;
-  LwpInfoCallbackCtx *callback_context =
-    static_cast<LwpInfoCallbackCtx *>(context);
-
-  // The current lwp is the one to handle the crash. Ignore it.
-  if (lsp->pr_lwpid != pthread_self()) {
-    LwpInfoCallbackCtx *callback_context =
-      static_cast<LwpInfoCallbackCtx *>(context);
-    MDRawThread lwp;
-    memset(&lwp, 0, sizeof(MDRawThread));
-
-    if (lsp->pr_lwpid != callback_context->writer_args->crashed_lwpid ||
-        callback_context->writer_args->sig_ctx == NULL) {
-      success = WriteLwpStream(callback_context->minidump_writer,
-                               callback_context->writer_args->lwp_lister,
-                               lsp, &lwp);
-    } else {
-      success = WriteCrashedLwpStream(callback_context->minidump_writer,
-                                      callback_context->writer_args,
-                                      lsp, &lwp);
-    }
-    if (success) {
-      callback_context->list->CopyIndexAfterObject(
-          callback_context->lwp_index++,
-          &lwp, sizeof(MDRawThread));
-    }
-  }
-
-  return success;
-}
-
-bool WriteLwpListStream(MinidumpFileWriter *minidump_writer,
-                        const WriterArgument *writer_args,
-                        MDRawDirectory *dir) {
-  // Get the lwp information.
-  const SolarisLwp *lwp_lister = writer_args->lwp_lister;
-  int lwp_count = lwp_lister->GetLwpCount();
-  if (lwp_count < 0)
-    return false;
-  TypedMDRVA<MDRawThreadList> list(minidump_writer);
-  if (!list.AllocateObjectAndArray(lwp_count - 1, sizeof(MDRawThread)))
-    return false;
-  dir->stream_type = MD_THREAD_LIST_STREAM;
-  dir->location = list.location();
-  list.get()->number_of_threads = lwp_count - 1;
-
-  LwpInfoCallbackCtx context;
-  context.minidump_writer = minidump_writer;
-  context.writer_args = writer_args;
-  context.list = &list;
-  context.lwp_index = 0;
-  CallbackParam<LwpCallback> callback_param(LwpInformationCallback,
-                                            &context);
-  int written =
-    lwp_lister->Lwp_iter_all(lwp_lister->getpid(), &callback_param);
-  return written == lwp_count;
-}
-
-bool WriteCVRecord(MinidumpFileWriter *minidump_writer,
-                   MDRawModule *module,
-                   const char *module_path,
-                   char *realname) {
-  TypedMDRVA<MDCVInfoPDB70> cv(minidump_writer);
-
-  char path[PATH_MAX];
-  const char *module_name = module_path ? module_path : "<Unknown>";
-  snprintf(path, sizeof(path), "/proc/self/object/%s", module_name);
-
-  size_t module_name_length = strlen(realname);
-  if (!cv.AllocateObjectAndArray(module_name_length + 1, sizeof(uint8_t)))
-    return false;
-  if (!cv.CopyIndexAfterObject(0, realname, module_name_length))
-    return false;
-
-  module->cv_record = cv.location();
-  MDCVInfoPDB70 *cv_ptr = cv.get();
-  memset(cv_ptr, 0, sizeof(MDCVInfoPDB70));
-  cv_ptr->cv_signature = MD_CVINFOPDB70_SIGNATURE;
-  cv_ptr->age = 0;
-
-  // Get the module identifier
-  FileID file_id(path);
-  unsigned char identifier[16];
-
-  if (file_id.ElfFileIdentifier(identifier)) {
-    cv_ptr->signature.data1 = (uint32_t)identifier[0] << 24 |
-      (uint32_t)identifier[1] << 16 | (uint32_t)identifier[2] << 8 |
-      (uint32_t)identifier[3];
-    cv_ptr->signature.data2 = (uint32_t)identifier[4] << 8 | identifier[5];
-    cv_ptr->signature.data3 = (uint32_t)identifier[6] << 8 | identifier[7];
-    cv_ptr->signature.data4[0] = identifier[8];
-    cv_ptr->signature.data4[1] = identifier[9];
-    cv_ptr->signature.data4[2] = identifier[10];
-    cv_ptr->signature.data4[3] = identifier[11];
-    cv_ptr->signature.data4[4] = identifier[12];
-    cv_ptr->signature.data4[5] = identifier[13];
-    cv_ptr->signature.data4[6] = identifier[14];
-    cv_ptr->signature.data4[7] = identifier[15];
-  }
-  return true;
-}
-
-struct ModuleInfoCallbackCtx {
-  MinidumpFileWriter *minidump_writer;
-  const WriterArgument *writer_args;
-  TypedMDRVA<MDRawModuleList> *list;
-  int module_index;
-};
-
-bool ModuleInfoCallback(const ModuleInfo &module_info, void *context) {
-  ModuleInfoCallbackCtx *callback_context =
-    static_cast<ModuleInfoCallbackCtx *>(context);
-  // Skip those modules without name, or those that are not modules.
-  if (strlen(module_info.name) == 0)
-    return true;
-
-  MDRawModule module;
-  memset(&module, 0, sizeof(module));
-  MDLocationDescriptor loc;
-  char path[PATH_MAX];
-  char buf[PATH_MAX];
-  char *realname;
-  int count;
-
-  snprintf(path, sizeof (path), "/proc/self/path/%s", module_info.name);
-  if ((count = readlink(path, buf, PATH_MAX)) < 0)
-    return false;
-  buf[count] = '\0';
-
-  if ((realname = strrchr(buf, '/')) == NULL)
-    return false;
-  realname++;
-
-  if (!callback_context->minidump_writer->WriteString(realname, 0, &loc))
-    return false;
-
-  module.base_of_image = (uint64_t)module_info.start_addr;
-  module.size_of_image = module_info.size;
-  module.module_name_rva = loc.rva;
-
-  if (!WriteCVRecord(callback_context->minidump_writer, &module,
-                     module_info.name, realname))
-    return false;
-
-  callback_context->list->CopyIndexAfterObject(
-      callback_context->module_index++, &module, MD_MODULE_SIZE);
-  return true;
-}
-
-bool WriteModuleListStream(MinidumpFileWriter *minidump_writer,
-                           const WriterArgument *writer_args,
-                           MDRawDirectory *dir) {
-  TypedMDRVA<MDRawModuleList> list(minidump_writer);
-  int module_count = writer_args->lwp_lister->GetModuleCount();
-
-  if (module_count <= 0 ||
-      !list.AllocateObjectAndArray(module_count, MD_MODULE_SIZE)) {
-    return false;
-  }
-
-  dir->stream_type = MD_MODULE_LIST_STREAM;
-  dir->location = list.location();
-  list.get()->number_of_modules = module_count;
-  ModuleInfoCallbackCtx context;
-  context.minidump_writer = minidump_writer;
-  context.writer_args = writer_args;
-  context.list = &list;
-  context.module_index = 0;
-  CallbackParam<ModuleCallback> callback(ModuleInfoCallback, &context);
-  return writer_args->lwp_lister->ListModules(&callback) == module_count;
-}
-
-bool WriteSystemInfoStream(MinidumpFileWriter *minidump_writer,
-                           const WriterArgument *writer_args,
-                           MDRawDirectory *dir) {
-  TypedMDRVA<MDRawSystemInfo> sys_info(minidump_writer);
-
-  if (!sys_info.Allocate())
-    return false;
-
-  dir->stream_type = MD_SYSTEM_INFO_STREAM;
-  dir->location = sys_info.location();
-
-  return WriteCPUInformation(sys_info.get()) &&
-         WriteOSInformation(minidump_writer, sys_info.get());
-}
-
-bool WriteExceptionStream(MinidumpFileWriter *minidump_writer,
-                          const WriterArgument *writer_args,
-                          MDRawDirectory *dir) {
-  // This happenes when this is not a crash, but a requested dump.
-  if (writer_args->sig_ctx == NULL)
-    return false;
-
-  TypedMDRVA<MDRawExceptionStream> exception(minidump_writer);
-  if (!exception.Allocate())
-    return false;
-
-  dir->stream_type = MD_EXCEPTION_STREAM;
-  dir->location = exception.location();
-  exception.get()->thread_id = writer_args->crashed_lwpid;
-  exception.get()->exception_record.exception_code = writer_args->signo;
-  exception.get()->exception_record.exception_flags = 0;
-
-#if TARGET_CPU_SPARC
-  if (writer_args->sig_ctx != NULL) {
-    exception.get()->exception_record.exception_address = 
-      writer_args->sig_ctx->uc_mcontext.gregs[REG_PC];
-  } else {
-    return true;
-  }
-
-  // Write context of the exception.
-  TypedMDRVA<MDRawContextSPARC> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  exception.get()->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextSPARC));
-  return WriteContext(context.get(), writer_args->sig_ctx);
-#elif TARGET_CPU_X86
-  if (writer_args->sig_ctx != NULL) {
-    exception.get()->exception_record.exception_address =
-      writer_args->sig_ctx->uc_mcontext.gregs[EIP];
-  } else {
-    return true;
-  }
-
-  // Write context of the exception.
-  TypedMDRVA<MDRawContextX86> context(minidump_writer);
-  if (!context.Allocate())
-    return false;
-  exception.get()->thread_context = context.location();
-  memset(context.get(), 0, sizeof(MDRawContextX86));
-  return WriteContext(context.get(),
-                      (int *)&writer_args->sig_ctx->uc_mcontext.gregs,
-                      NULL);
-#endif
-}
-
-bool WriteMiscInfoStream(MinidumpFileWriter *minidump_writer,
-                         const WriterArgument *writer_args,
-                         MDRawDirectory *dir) {
-  TypedMDRVA<MDRawMiscInfo> info(minidump_writer);
-
-  if (!info.Allocate())
-    return false;
-
-  dir->stream_type = MD_MISC_INFO_STREAM;
-  dir->location = info.location();
-  info.get()->size_of_info = sizeof(MDRawMiscInfo);
-  info.get()->flags1 = MD_MISCINFO_FLAGS1_PROCESS_ID;
-  info.get()->process_id = writer_args->requester_pid;
-
-  return true;
-}
-
-bool WriteBreakpadInfoStream(MinidumpFileWriter *minidump_writer,
-                             const WriterArgument *writer_args,
-                             MDRawDirectory *dir) {
-  TypedMDRVA<MDRawBreakpadInfo> info(minidump_writer);
-
-  if (!info.Allocate())
-    return false;
-
-  dir->stream_type = MD_BREAKPAD_INFO_STREAM;
-  dir->location = info.location();
-
-  info.get()->validity = MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID |
-                         MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID;
-  info.get()->dump_thread_id = getpid();
-  info.get()->requesting_thread_id = writer_args->requester_pid;
-  return true;
-}
-
-class AutoLwpResumer {
- public:
-  AutoLwpResumer(SolarisLwp *lwp) : lwp_(lwp) {}
-  ~AutoLwpResumer() { lwp_->ControlAllLwps(false); }
- private:
-  SolarisLwp *lwp_;
-};
-
-// Prototype of writer functions.
-typedef bool (*WriteStreamFN)(MinidumpFileWriter *,
-                              const WriterArgument *,
-                              MDRawDirectory *);
-
-// Function table to writer a full minidump.
-const WriteStreamFN writers[] = {
-  WriteLwpListStream,
-  WriteModuleListStream,
-  WriteSystemInfoStream,
-  WriteExceptionStream,
-  WriteMiscInfoStream,
-  WriteBreakpadInfoStream,
-};
-
-// Will call each writer function in the writers table.
-//void* MinidumpGenerator::Write(void *argument) {
-void* Write(void *argument) {
-  WriterArgument *writer_args = static_cast<WriterArgument *>(argument);
-
-  if (!writer_args->lwp_lister->ControlAllLwps(true))
-    return NULL;
-
-  AutoLwpResumer lwpResumer(writer_args->lwp_lister);
-
-  if (writer_args->sighandler_ebp != 0 &&
-      writer_args->lwp_lister->FindSigContext(writer_args->sighandler_ebp,
-                                              &writer_args->sig_ctx)) {
-    writer_args->crashed_stack_bottom = 
-      writer_args->lwp_lister->GetLwpStackBottom(
-#if TARGET_CPU_SPARC
-          writer_args->sig_ctx->uc_mcontext.gregs[REG_O6]
-#elif TARGET_CPU_X86
-          writer_args->sig_ctx->uc_mcontext.gregs[UESP]
-#endif
-      );
-
-    int crashed_lwpid = FindCrashingLwp(writer_args->crashed_stack_bottom,
-                                        writer_args->requester_pid,
-                                        writer_args->lwp_lister);
-    if (crashed_lwpid > 0)
-      writer_args->crashed_lwpid = crashed_lwpid;
-  }
-
-  MinidumpFileWriter *minidump_writer = writer_args->minidump_writer;
-  TypedMDRVA<MDRawHeader> header(minidump_writer);
-  TypedMDRVA<MDRawDirectory> dir(minidump_writer);
-  if (!header.Allocate())
-    return 0;
-
-  int writer_count = sizeof(writers) / sizeof(writers[0]);
-  // Need directory space for all writers.
-  if (!dir.AllocateArray(writer_count))
-    return 0;
-  header.get()->signature = MD_HEADER_SIGNATURE;
-  header.get()->version = MD_HEADER_VERSION;
-  header.get()->time_date_stamp = time(NULL);
-  header.get()->stream_count = writer_count;
-  header.get()->stream_directory_rva = dir.position();
-
-  int dir_index = 0;
-  MDRawDirectory local_dir;
-  for (int i = 0; i < writer_count; ++i) {
-    if ((*writers[i])(minidump_writer, writer_args, &local_dir))
-      dir.CopyIndex(dir_index++, &local_dir);
-  }
-
-  return 0;
-}
-
-}  // namespace
-
-namespace google_breakpad {
-
-MinidumpGenerator::MinidumpGenerator() {
-}
-
-MinidumpGenerator::~MinidumpGenerator() {
-}
-
-// Write minidump into file.
-// It runs in a different thread from the crashing thread.
-bool MinidumpGenerator::WriteMinidumpToFile(const char *file_pathname,
-                                            int signo,
-                                            uintptr_t sighandler_ebp,
-                                            ucontext_t **sig_ctx) const {
-  // The exception handler thread.
-  pthread_t handler_thread;
-
-  assert(file_pathname != NULL);
-
-  if (file_pathname == NULL)
-    return false;
-
-  MinidumpFileWriter minidump_writer;
-  if (minidump_writer.Open(file_pathname)) {
-    WriterArgument argument;
-    memset(&argument, 0, sizeof(argument));
-    SolarisLwp lwp_lister(getpid());
-    argument.lwp_lister = &lwp_lister;
-    argument.minidump_writer = &minidump_writer;
-    argument.requester_pid = getpid();
-    argument.crashed_lwpid = pthread_self();
-    argument.signo = signo;
-    argument.sighandler_ebp = sighandler_ebp;
-    argument.sig_ctx = NULL;
-
-    pthread_create(&handler_thread, NULL, Write, (void *)&argument);
-    pthread_join(handler_thread, NULL);
-    return true;
-  }
-
-  return false;
-}
-
-}  // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/minidump_generator.h
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#ifndef CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H__
-#define CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H__
-
-#include <ucontext.h>
-
-#include "client/minidump_file_writer.h"
-#include "client/solaris/handler/solaris_lwp.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-//
-// MinidumpGenerator
-//
-// A minidump generator should be created before any exception happen.
-//
-class MinidumpGenerator {
-  // Callback run for writing lwp information in the process.
-  friend bool LwpInformationCallback(lwpstatus_t *lsp, void *context);
-
-  // Callback run for writing module information in the process.
-  friend bool ModuleInfoCallback(const ModuleInfo &module_info, void *context);
-
- public:
-  MinidumpGenerator();
-
-  ~MinidumpGenerator();
-
-  // Write minidump.
-  bool WriteMinidumpToFile(const char *file_pathname,
-                           int signo,
-                           uintptr_t sighandler_ebp,
-                           ucontext_t **sig_ctx) const;
-};
-
-}  // namespace google_breakpad
-
-#endif   // CLIENT_SOLARIS_HANDLER_MINIDUMP_GENERATOR_H_
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/minidump_test.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#include <pthread.h>
-#include <unistd.h>
-
-#include "client/minidump_file_writer.h"
-#include "client/solaris/handler/minidump_generator.h"
-
-using std::string;
-using google_breakpad::MinidumpGenerator;
-
-static bool doneWritingReport = false;
-
-static void *Reporter(void *) {
-  char buffer[PATH_MAX];
-  MinidumpGenerator md;
-
-  // Write it to the desktop
-  snprintf(buffer, sizeof(buffer), "./minidump_test.out");
-  fprintf(stdout, "Writing %s\n", buffer);
-
-  md.WriteMinidumpToFile(buffer, 0, 0, NULL);
-  doneWritingReport = true;
-
-  return NULL;
-}
-
-static void SleepyFunction() {
-  while (!doneWritingReport) {
-    usleep(100);
-  }
-}
-
-int main(int argc, char * const argv[]) {
-  pthread_t reporter_thread;
-
-  if (pthread_create(&reporter_thread, NULL, Reporter, NULL) == 0) {
-    pthread_detach(reporter_thread);
-  } else {
-    perror("pthread_create");
-  }
-
-  SleepyFunction();
-
-  return 0;
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/moz.build
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-SOURCES += [
-    'exception_handler.cc',
-    'minidump_generator.cc',
-    'solaris_lwp.cc',
-]
-
-FINAL_LIBRARY = 'xul'
-
-LOCAL_INCLUDES += [
-    '../../..',
-]
-
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/solaris_lwp.cc
+++ /dev/null
@@ -1,436 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#include <dirent.h>
-#include <elf.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <sys/frame.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#include <algorithm>
-#include <cassert>
-#include <cstdio>
-#include <cstdlib>
-#include <functional>
-
-#include "client/solaris/handler/solaris_lwp.h"
-#include "common/solaris/message_output.h"
-
-using namespace google_breakpad;
-
-// This unamed namespace contains helper function.
-namespace {
-
-uintptr_t stack_base_address = 0;
-static const int HEADER_MAX = 2000;
-static const int MAP_MAX = 1000;
-
-// Context information for the callbacks when validating address by listing
-// modules.
-struct AddressValidatingContext {
-  uintptr_t address;
-  bool is_mapped;
-
-  AddressValidatingContext() : address(0UL), is_mapped(false) {
-  }
-};
-
-// Convert from string to int.
-static bool LocalAtoi(char *s, int *r) {
-  assert(s != NULL);
-  assert(r != NULL);
-  char *endptr = NULL;
-  int ret = strtol(s, &endptr, 10);
-  if (endptr == s)
-    return false;
-  *r = ret;
-  return true;
-}
-
-// Callback invoked for each mapped module.
-// It uses the module's adderss range to validate the address.
-static bool AddressNotInModuleCallback(const ModuleInfo &module_info,
-                                       void *context) {
-  AddressValidatingContext *addr =
-    reinterpret_cast<AddressValidatingContext *>(context);
-  if (addr->is_mapped = ((module_info.start_addr > 0) &&
-                         (addr->address >= module_info.start_addr) &&
-                         (addr->address <= module_info.start_addr +
-                          module_info.size))) {
-    stack_base_address = module_info.start_addr + module_info.size;
-  }
-
-  return !addr->is_mapped;
-}
-
-static int IterateLwpAll(int pid,
-                         CallbackParam<LwpidCallback> *callback_param) {
-  char lwp_path[40];
-  DIR *dir;
-  int count = 0;
-
-  snprintf(lwp_path, sizeof (lwp_path), "/proc/%d/lwp", (int)pid);
-  if ((dir = opendir(lwp_path)) == NULL)
-    return -1;
-
-  struct dirent *entry = NULL;
-  while ((entry = readdir(dir)) != NULL) {
-    if ((strcmp(entry->d_name, ".") != 0) &&
-        (strcmp(entry->d_name, "..") != 0)) {
-      int lwpid = 0;
-      int last_pid = 0;
-      if (LocalAtoi(entry->d_name, &lwpid) && last_pid != lwpid) {
-        last_pid = lwpid;
-        ++count;
-        if (callback_param &&
-            !(callback_param->call_back)(lwpid, callback_param->context)) {
-          break;
-        }
-      }
-    }
-  }
-
-  closedir(dir);
-  return count;
-}
-
-#if defined(__i386) && !defined(NO_FRAME_POINTER)
-void *GetNextFrame(void **last_ebp) {
-  void *sp = *last_ebp;
-  if ((unsigned long)sp == (unsigned long)last_ebp)
-    return NULL;
-  if ((unsigned long)sp & (sizeof(void *) - 1))
-    return NULL;
-  if ((unsigned long)sp - (unsigned long)last_ebp > 100000)
-    return NULL;
-  return sp;
-}
-#elif defined(__sparc)
-void *GetNextFrame(void *last_ebp) {
-  return reinterpret_cast<struct frame *>(last_ebp)->fr_savfp;
-}
-#else
-void *GetNextFrame(void **last_ebp) {
-  return reinterpret_cast<void*>(last_ebp);
-}
-#endif
-
-
-class AutoCloser {
- public:
-  AutoCloser(int fd) : fd_(fd) {}
-  ~AutoCloser() { if (fd_) close(fd_); }
- private:
-  int fd_;
-};
-
-// Control the execution of the lwp.
-// Suspend/Resume lwp based on the value of context.
-static bool ControlLwp(int lwpid, void *context) {
-  // The current thread is the one to handle the crash. Ignore it.
-  if (lwpid != pthread_self()) {
-    int ctlfd;
-    char procname[PATH_MAX];
-    bool suspend = *(bool *)context;
-
-    // Open the /proc/$pid/lwp/$lwpid/lwpctl files
-    snprintf(procname, sizeof (procname), "/proc/self/lwp/%d/lwpctl", lwpid);
-
-    if ((ctlfd = open(procname, O_WRONLY|O_EXCL)) < 0) {
-      print_message2(2, "failed to open %s in ControlLwp\n", procname);
-      return false;
-    }
-
-    AutoCloser autocloser(ctlfd);
-
-    long ctl[2];
-    ctl[0] = suspend ? PCSTOP : PCRUN;
-    ctl[1] = 0;
-    if (write(ctlfd, ctl, sizeof (ctl)) != sizeof (ctl)) {
-      print_message2(2, "failed in lwp %d\n", lwpid);
-      return false;
-    }
-  }
-
-  return true;
-}
-
-/*
- * Utility function to read the contents of a file that contains a
- * prheader_t at the start (/proc/$pid/lstatus or /proc/$pid/lpsinfo).
- * Return true on success.
- */
-static bool read_lfile(int pid, const char *lname, prheader_t *lhp) {
-  char lpath[PATH_MAX];
-  struct stat statb;
-  int fd;
-  size_t size;
-
-  snprintf(lpath, sizeof (lpath), "/proc/%d/%s", pid, lname);
-  if ((fd = open(lpath, O_RDONLY)) < 0) {
-    print_message2(2, "failed to open %s in read_lfile\n", lpath);
-    return false;
-  }
-
-  AutoCloser autocloser(fd);
-
-  if (fstat(fd, &statb) != 0)
-    return false;
-
-  size = statb.st_size;
-  if ((size / sizeof (prheader_t)) + 32 > HEADER_MAX) {
-    print_message1(2, "map size overflow\n");
-    return false;
-  }
-
-  if (pread(fd, lhp, size, 0) <= sizeof (prheader_t))
-    return false;
-
-  return true;
-}
-
-}  // namespace
-
-namespace google_breakpad {
-
-SolarisLwp::SolarisLwp(int pid) : pid_(pid) {
-}
-
-SolarisLwp::~SolarisLwp() {
-}
-
-int SolarisLwp::ControlAllLwps(bool suspend) {
-  CallbackParam<LwpidCallback> callback_param(ControlLwp, &suspend);
-  return IterateLwpAll(pid_, &callback_param);
-}
-
-int SolarisLwp::GetLwpCount() const {
-  return IterateLwpAll(pid_, NULL);
-}
-
-int SolarisLwp::Lwp_iter_all(int pid,
-                             CallbackParam<LwpCallback> *callback_param) const {
-  lwpstatus_t *Lsp;
-  lwpstatus_t *sp;
-  prheader_t lphp[HEADER_MAX];
-  prheader_t lhp[HEADER_MAX];
-  prheader_t *Lphp = lphp;
-  prheader_t *Lhp = lhp;
-  lwpsinfo_t *Lpsp;
-  long nstat;
-  long ninfo;
-  int rv = 0;
-
-  /*
-   * The /proc/pid/lstatus file has the array of lwpstatus_t's and the
-   * /proc/pid/lpsinfo file has the array of lwpsinfo_t's.
-   */
-  if (read_lfile(pid, "lstatus", Lhp) == NULL)
-    return -1;
-  if (read_lfile(pid, "lpsinfo", Lphp) == NULL) {
-    return -1;
-  }
-
-  Lsp = (lwpstatus_t *)(uintptr_t)(Lhp + 1);
-  Lpsp = (lwpsinfo_t *)(uintptr_t)(Lphp + 1);
-
-  for (ninfo = Lphp->pr_nent; ninfo != 0; --ninfo) {
-    if (Lpsp->pr_sname != 'Z') {
-      sp = Lsp;
-      Lsp = (lwpstatus_t *)((uintptr_t)Lsp + Lhp->pr_entsize);
-    } else {
-      sp = NULL;
-    }
-    if (callback_param &&
-        !(callback_param->call_back)(sp, callback_param->context))
-      break;
-    ++rv;
-    Lpsp = (lwpsinfo_t *)((uintptr_t)Lpsp + Lphp->pr_entsize);
-  }
-
-  return rv;
-}
-
-uintptr_t SolarisLwp::GetLwpStackBottom(uintptr_t current_esp) const {
-  AddressValidatingContext addr;
-  addr.address = current_esp;
-  CallbackParam<ModuleCallback> callback_param(AddressNotInModuleCallback,
-                                               &addr);
-  ListModules(&callback_param);
-  return stack_base_address;
-}
-
-int SolarisLwp::GetModuleCount() const {
-  return ListModules(NULL);
-}
-
-int SolarisLwp::ListModules(
-    CallbackParam<ModuleCallback> *callback_param) const {
-  const char *maps_path = "/proc/self/map";
-  struct stat status;
-  int fd = 0, num;
-  prmap_t map_array[MAP_MAX];
-  prmap_t *maps = map_array;
-  size_t size;
-
-  if ((fd = open(maps_path, O_RDONLY)) == -1) {
-    print_message2(2, "failed to open %s in ListModules\n", maps_path);
-    return -1;
-  }
-
-  AutoCloser autocloser(fd);
-
-  if (fstat(fd, &status))
-    return -1;
-
-  /*
-   * Determine number of mappings, this value must be 
-   * larger than the actual module count
-   */
-  size = status.st_size;
-  if ((num = (int)(size / sizeof (prmap_t))) > MAP_MAX) {
-    print_message1(2, "map size overflow\n");
-    return -1;
-  }
-
-  if (read(fd, (void *)maps, size) < 0) {
-    print_message2(2, "failed to read %d\n", fd);
-    return -1;
-  }
-
-  prmap_t *_maps;
-  int _num;
-  int module_count = 0;
-  
-  /*
-   * Scan each mapping - note it is assummed that the mappings are
-   * presented in order.  We fill holes between mappings.  On intel
-   * the last mapping is usually the data segment of ld.so.1, after
-   * this comes a red zone into which non-fixed mapping won't get
-   * place.  Thus we can simply bail from the loop after seeing the
-   * last mapping.
-   */
-  for (_num = 0, _maps = maps; _num < num; ++_num, ++_maps) {
-    ModuleInfo module;
-    char *name = _maps->pr_mapname;
-
-    memset(&module, 0, sizeof (module));
-    module.start_addr = _maps->pr_vaddr;
-    module.size = _maps->pr_size;
-    if (strlen(name) > 0) {
-      int objectfd = 0;
-      char path[PATH_MAX];
-      char buf[SELFMAG];
-
-      snprintf(path, sizeof (path), "/proc/self/object/%s", name);
-      if ((objectfd = open(path, O_RDONLY)) < 0) {
-        print_message1(2, "can't open module file\n");
-        continue;
-      }
-
-      AutoCloser autocloser(objectfd);
-
-      if (read(objectfd, buf, SELFMAG) != SELFMAG) {
-        print_message1(2, "can't read module file\n");
-        continue;
-      }
-      if (buf[0] != ELFMAG0 || buf[1] != ELFMAG1 ||
-          buf[2] != ELFMAG2 || buf[3] != ELFMAG3) {
-        continue;
-      }
-
-      strncpy(module.name, name, sizeof (module.name) - 1);
-      ++module_count;
-    }
-    if (callback_param &&
-        (!callback_param->call_back(module, callback_param->context))) {
-      break;
-    }
-  }
-
-  return module_count;
-}
-
-// Check if the address is a valid virtual address.
-// If the address is in any of the mapped modules, we take it as valid.
-// Otherwise it is invalid.
-bool SolarisLwp::IsAddressMapped(uintptr_t address) const {
-  AddressValidatingContext addr;
-  addr.address = address;
-  CallbackParam<ModuleCallback> callback_param(AddressNotInModuleCallback,
-                                               &addr);
-  ListModules(&callback_param);
-  return addr.is_mapped;
-}
-
-// We're looking for a ucontext_t as the second parameter
-// to a signal handler function call.  Luckily, the ucontext_t
-// has an ebp(fp on SPARC) member which should match the ebp(fp)
-// pointed to by the ebp(fp) of the signal handler frame.
-// The Solaris stack looks like this:
-// http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libproc/common/Pstack.c#81
-bool SolarisLwp::FindSigContext(uintptr_t sighandler_ebp,
-                                ucontext_t **sig_ctx) {
-  uintptr_t previous_ebp;
-  uintptr_t sig_ebp;
-  const int MAX_STACK_DEPTH = 50;
-  int depth_counter = 0;
-
-  do {
-#if TARGET_CPU_SPARC
-    previous_ebp = reinterpret_cast<uintptr_t>(GetNextFrame(
-                                  reinterpret_cast<void*>(sighandler_ebp)));
-    *sig_ctx = reinterpret_cast<ucontext_t*>(sighandler_ebp + sizeof (struct frame));
-    uintptr_t sig_esp = (*sig_ctx)->uc_mcontext.gregs[REG_O6];
-    if (sig_esp < previous_ebp && sig_esp > sighandler_ebp)
-      sig_ebp = (uintptr_t)(((struct frame *)sig_esp)->fr_savfp);
-
-#elif TARGET_CPU_X86
-    previous_ebp = reinterpret_cast<uintptr_t>(GetNextFrame(
-                                  reinterpret_cast<void**>(sighandler_ebp)));
-    *sig_ctx = reinterpret_cast<ucontext_t*>(sighandler_ebp + sizeof (struct frame) +
-                                             3 * sizeof(uintptr_t));
-    sig_ebp = (*sig_ctx)->uc_mcontext.gregs[EBP];
-#endif
-    sighandler_ebp = previous_ebp;
-    depth_counter++;
-  } while(previous_ebp != sig_ebp && sighandler_ebp != 0 &&
-          IsAddressMapped(sighandler_ebp) && depth_counter < MAX_STACK_DEPTH);
-
-  return previous_ebp == sig_ebp && previous_ebp != 0;
-}
-
-}  // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/solaris/handler/solaris_lwp.h
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Author: Alfred Peng
-
-#ifndef CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
-#define CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
-
-#if defined(sparc) || defined(__sparc)
-#define TARGET_CPU_SPARC 1
-#elif defined(i386) || defined(__i386)
-#define TARGET_CPU_X86 1
-#else
-#error "cannot determine cpu type"
-#endif
-
-#include <signal.h>
-#include <stdint.h>
-#include <sys/user.h>
-#include <ucontext.h>
-
-#ifndef _KERNEL
-#define _KERNEL
-#define MUST_UNDEF_KERNEL
-#endif  // _KERNEL
-#include <sys/procfs.h>
-#ifdef MUST_UNDEF_KERNEL
-#undef _KERNEL
-#undef MUST_UNDEF_KERNEL
-#endif  // MUST_UNDEF_KERNEL
-
-namespace google_breakpad {
-
-// Max module path name length.
-static const int kMaxModuleNameLength = 256;
-
-// Holding infomaton about a module in the process.
-struct ModuleInfo {
-  char name[kMaxModuleNameLength];
-  uintptr_t start_addr;
-  int size;
-};
-
-// A callback to run when getting a lwp in the process.
-// Return true will go on to the next lwp while return false will stop the
-// iteration.
-typedef bool (*LwpCallback)(lwpstatus_t* lsp, void *context); 
-
-// A callback to run when a new module is found in the process.
-// Return true will go on to the next module while return false will stop the
-// iteration.
-typedef bool (*ModuleCallback)(const ModuleInfo &module_info, void *context);
-
-// A callback to run when getting a lwpid in the process.
-// Return true will go on to the next lwp while return false will stop the
-// iteration.
-typedef bool (*LwpidCallback)(int lwpid, void *context);
-
-// Holding the callback information.
-template<class CallbackFunc>
-struct CallbackParam {
-  // Callback function address.
-  CallbackFunc call_back;
-  // Callback context;
-  void *context;
-
-  CallbackParam() : call_back(NULL), context(NULL) {
-  }
-
-  CallbackParam(CallbackFunc func, void *func_context) :
-    call_back(func), context(func_context) {
-  }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-//
-// SolarisLwp
-//
-// Provides handy support for operation on Solaris lwps.
-// It uses proc file system to get lwp information.
-//
-// TODO(Alfred): Currently it only supports x86. Add SPARC support.
-//
-class SolarisLwp {
- public:
-  // Create a SolarisLwp instance to list all the lwps in a process.
-  explicit SolarisLwp(int pid);
-  ~SolarisLwp();
-
-  int getpid() const { return this->pid_; }
-
-  // Control all the lwps in the process.
-  // Return the number of suspended/resumed lwps in the process.
-  // Return -1 means failed to control lwps.
-  int ControlAllLwps(bool suspend);
-
-  // Get the count of lwps in the process.
-  // Return -1 means error.
-  int GetLwpCount() const;
-
-  // Iterate the lwps of process.
-  // Whenever there is a lwp found, the callback will be invoked to process
-  // the information.
-  // Return the callback return value or -1 on error.
-  int Lwp_iter_all(int pid, CallbackParam<LwpCallback> *callback_param) const;
-
-  // Get the module count of the current process.
-  int GetModuleCount() const;
-
-  // Get the mapped modules in the address space.
-  // Whenever a module is found, the callback will be invoked to process the
-  // information.
-  // Return how may modules are found.
-  int ListModules(CallbackParam<ModuleCallback> *callback_param) const;
-
-  // Get the bottom of the stack from esp.
-  uintptr_t GetLwpStackBottom(uintptr_t current_esp) const;
-
-  // Finds a signal context on the stack given the ebp of our signal handler.
-  bool FindSigContext(uintptr_t sighandler_ebp, ucontext_t **sig_ctx);
-
- private:
-  // Check if the address is a valid virtual address.
-  bool IsAddressMapped(uintptr_t address) const;
-
- private:
-  // The pid of the process we are listing lwps.
-  int pid_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_SOLARIS_HANDLER_SOLARIS_LWP_H__
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/breakpad_client.gyp
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'build_all',
-      'type': 'none',
-      'dependencies': [
-        './crash_generation/crash_generation.gyp:*',
-        './handler/exception_handler.gyp:*',
-        './sender/crash_report_sender.gyp:*',
-        './unittests/client_tests.gyp:*',
-        './unittests/testing.gyp:*',
-        './tests/crash_generation_app/crash_generation_app.gyp:*',
-      ]
-    },
-    {
-      'target_name': 'common',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(DEPTH)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(DEPTH)',
-        ]
-      },
-      'sources': [
-        '<(DEPTH)/common/windows/guid_string.cc',
-        '<(DEPTH)/common/windows/guid_string.h',
-        '<(DEPTH)/common/windows/http_upload.cc',
-        '<(DEPTH)/common/windows/http_upload.h',
-        '<(DEPTH)/common/windows/string_utils.cc',
-      ]
-    }
-  ]
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/crash_generation/crash_generation.gyp
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'crash_generation_server',
-      'type': 'static_library',
-      'sources': [
-        'client_info.cc',
-        'crash_generation_server.cc',
-        'minidump_generator.cc',
-        'client_info.h',
-        'crash_generation_client.h',
-        'crash_generation_server.h',
-        'minidump_generator.h',
-      ],
-      'dependencies': [
-        '../breakpad_client.gyp:common'
-      ],
-    },
-    {
-      'target_name': 'crash_generation_client',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(DEPTH)',
-      ],
-      'sources': [
-        'crash_generation_client.h',
-        'crash_generation_client.cc',
-        'crash_generation_server.h',
-      ],
-    },
-  ],
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/handler/exception_handler.gyp
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'exception_handler',
-      'type': 'static_library',
-      'sources': [
-        "exception_handler.cc",
-        "exception_handler.h",
-      ],
-      'dependencies': [
-        '../breakpad_client.gyp:common',
-        '../crash_generation/crash_generation.gyp:crash_generation_server',
-      ]
-    },
-  ],
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/sender/crash_report_sender.gyp
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'crash_report_sender',
-      'type': 'static_library',
-      'sources': [
-        'crash_report_sender.cc',
-        'crash_report_sender.h',
-      ],
-      'dependencies': [
-        '../breakpad_client.gyp:common'
-      ],
-    },
-  ],
-}
--- a/toolkit/crashreporter/breakpad-client/windows/sender/objs.mozbuild
+++ b/toolkit/crashreporter/breakpad-client/windows/sender/objs.mozbuild
@@ -3,12 +3,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 lobjs_sender = [
     'crash_report_sender.cc',
 ]
 
-subdir = 'toolkit/crashreporter/google-breakpad/src/client/windows/sender'
+subdir = 'toolkit/crashreporter/breakpad-client/windows/sender'
 objs_sender = [
     '/%s/%s' % (subdir, s) for s in lobjs_sender
 ]
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/abstract_class.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "client/windows/tests/crash_generation_app/abstract_class.h"
-
-namespace google_breakpad {
-
-Base::Base(Derived* derived)
-    : derived_(derived) {
-}
-
-Base::~Base() {
-  derived_->DoSomething();
-}
-
-#pragma warning(push)
-#pragma warning(disable:4355)
-// Disable warning C4355: 'this' : used in base member initializer list.
-Derived::Derived()
-    : Base(this) {  // C4355
-}
-#pragma warning(pop)
-
-void Derived::DoSomething() {
-}
-
-}  // namespace google_breakpad
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/abstract_class.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__
-#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_ABSTRACT_CLASS_H__
-
-namespace google_breakpad {
-
-// Dummy classes to help generate a pure call violation.
-
-class Derived;
-
-class Base {
- public:
-  Base(Derived* derived);
-  virtual ~Base();
-  virtual void DoSomething() = 0;
-
- private:
-  Derived* derived_;
-};
-
-class Derived : public Base {
- public:
-  Derived();
-  virtual void DoSomething();
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.cc
+++ /dev/null
@@ -1,522 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// crash_generation_app.cpp : Defines the entry point for the application.
-//
-
-#include "client/windows/tests/crash_generation_app/crash_generation_app.h"
-
-#include <windows.h>
-#include <tchar.h>
-
-#include "client/windows/crash_generation/client_info.h"
-#include "client/windows/crash_generation/crash_generation_server.h"
-#include "client/windows/handler/exception_handler.h"
-#include "client/windows/common/ipc_protocol.h"
-
-#include "client/windows/tests/crash_generation_app/abstract_class.h"
-
-namespace google_breakpad {
-
-const int kMaxLoadString = 100;
-const wchar_t kPipeName[] = L"\\\\.\\pipe\\BreakpadCrashServices\\TestServer";
-
-const DWORD kEditBoxStyles = WS_CHILD |
-                             WS_VISIBLE |
-                             WS_VSCROLL |
-                             ES_LEFT |
-                             ES_MULTILINE |
-                             ES_AUTOVSCROLL |
-                             ES_READONLY;
-
-// Maximum length of a line in the edit box.
-const size_t kMaximumLineLength = 256;
-
-// CS to access edit control in a thread safe way.
-static CRITICAL_SECTION* cs_edit = NULL;
-
-// Edit control.
-static HWND client_status_edit_box;
-
-HINSTANCE current_instance;             // Current instance.
-TCHAR title[kMaxLoadString];            // Title bar text.
-TCHAR window_class[kMaxLoadString];     // Main window class name.
-
-ATOM MyRegisterClass(HINSTANCE instance);
-BOOL InitInstance(HINSTANCE, int);
-LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
-INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
-
-static size_t kCustomInfoCount = 2;
-static CustomInfoEntry kCustomInfoEntries[] = {
-    CustomInfoEntry(L"prod", L"CrashTestApp"),
-    CustomInfoEntry(L"ver", L"1.0"),
-};
-
-static ExceptionHandler* handler = NULL;
-static CrashGenerationServer* crash_server = NULL;
-
-// Registers the window class.
-//
-// This function and its usage are only necessary if you want this code
-// to be compatible with Win32 systems prior to the 'RegisterClassEx'
-// function that was added to Windows 95. It is important to call this
-// function so that the application will get 'well formed' small icons
-// associated with it.
-ATOM MyRegisterClass(HINSTANCE instance) {
-  WNDCLASSEX wcex;
-  wcex.cbSize = sizeof(WNDCLASSEX);
-  wcex.style = CS_HREDRAW | CS_VREDRAW;
-  wcex.lpfnWndProc = WndProc;
-  wcex.cbClsExtra = 0;
-  wcex.cbWndExtra = 0;
-  wcex.hInstance = instance;
-  wcex.hIcon = LoadIcon(instance,
-                        MAKEINTRESOURCE(IDI_CRASHGENERATIONAPP));
-  wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
-  wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
-  wcex.lpszMenuName = MAKEINTRESOURCE(IDC_CRASHGENERATIONAPP);
-  wcex.lpszClassName = window_class;
-  wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
-
-  return RegisterClassEx(&wcex);
-}
-
-// Saves instance handle and creates main window
-//
-// In this function, we save the instance handle in a global variable and
-//   create and display the main program window.
-BOOL InitInstance(HINSTANCE instance, int command_show) {
-  current_instance = instance;
-  HWND wnd = CreateWindow(window_class,
-                          title,
-                          WS_OVERLAPPEDWINDOW,
-                          CW_USEDEFAULT,
-                          0,
-                          CW_USEDEFAULT,
-                          0,
-                          NULL,
-                          NULL,
-                          instance,
-                          NULL);
-
-  if (!wnd) {
-    return FALSE;
-  }
-
-  ShowWindow(wnd, command_show);
-  UpdateWindow(wnd);
-
-  return TRUE;
-}
-
-static void AppendTextToEditBox(TCHAR* text) {
-  EnterCriticalSection(cs_edit);
-  SYSTEMTIME current_time;
-  GetLocalTime(&current_time);
-  TCHAR line[kMaximumLineLength];
-  int result = swprintf_s(line,
-                          kMaximumLineLength,
-                          L"[%.2d-%.2d-%.4d %.2d:%.2d:%.2d] %s",
-                          current_time.wMonth,
-                          current_time.wDay,
-                          current_time.wYear,
-                          current_time.wHour,
-                          current_time.wMinute,
-                          current_time.wSecond,
-                          text);
-
-  if (result == -1) {
-    return;
-  }
-
-  int length = GetWindowTextLength(client_status_edit_box);
-  SendMessage(client_status_edit_box,
-              EM_SETSEL,
-              (WPARAM)length,
-              (LPARAM)length);
-  SendMessage(client_status_edit_box,
-              EM_REPLACESEL,
-              (WPARAM)FALSE,
-              (LPARAM)line);
-  LeaveCriticalSection(cs_edit);
-}
-
-static DWORD WINAPI AppendTextWorker(void* context) {
-  TCHAR* text = reinterpret_cast<TCHAR*>(context);
-
-  AppendTextToEditBox(text);
-  delete[] text;
-
-  return 0;
-}
-
-bool ShowDumpResults(const wchar_t* dump_path,
-                     const wchar_t* minidump_id,
-                     void* context,
-                     EXCEPTION_POINTERS* exinfo,
-                     MDRawAssertionInfo* assertion,
-                     bool succeeded) {
-  TCHAR* text = new TCHAR[kMaximumLineLength];
-  text[0] = _T('\0');
-  int result = swprintf_s(text,
-                          kMaximumLineLength,
-                          TEXT("Dump generation request %s\r\n"),
-                          succeeded ? TEXT("succeeded") : TEXT("failed"));
-  if (result == -1) {
-    delete [] text;
-  }
-
-  QueueUserWorkItem(AppendTextWorker, text, WT_EXECUTEDEFAULT);
-  return succeeded;
-}
-
-static void ShowClientConnected(void* context,
-                                const ClientInfo* client_info) {
-  TCHAR* line = new TCHAR[kMaximumLineLength];
-  line[0] = _T('\0');
-  int result = swprintf_s(line,
-                          kMaximumLineLength,
-                          L"Client connected:\t\t%d\r\n",
-                          client_info->pid());
-
-  if (result == -1) {
-    delete[] line;
-    return;
-  }
-
-  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
-}
-
-static void ShowClientCrashed(void* context,
-                              const ClientInfo* client_info,
-                              const wstring* dump_path) {
-  TCHAR* line = new TCHAR[kMaximumLineLength];
-  line[0] = _T('\0');
-  int result = swprintf_s(line,
-                          kMaximumLineLength,
-                          TEXT("Client requested dump:\t%d\r\n"),
-                          client_info->pid());
-
-  if (result == -1) {
-    delete[] line;
-    return;
-  }
-
-  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
-
-  CustomClientInfo custom_info = client_info->GetCustomInfo();
-  if (custom_info.count <= 0) {
-    return;
-  }
-
-  wstring str_line;
-  for (size_t i = 0; i < custom_info.count; ++i) {
-    if (i > 0) {
-      str_line += L", ";
-    }
-    str_line += custom_info.entries[i].name;
-    str_line += L": ";
-    str_line += custom_info.entries[i].value;
-  }
-
-  line = new TCHAR[kMaximumLineLength];
-  line[0] = _T('\0');
-  result = swprintf_s(line,
-                      kMaximumLineLength,
-                      L"%s\n",
-                      str_line.c_str());
-  if (result == -1) {
-    delete[] line;
-    return;
-  }
-  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
-}
-
-static void ShowClientExited(void* context,
-                             const ClientInfo* client_info) {
-  TCHAR* line = new TCHAR[kMaximumLineLength];
-  line[0] = _T('\0');
-  int result = swprintf_s(line,
-                          kMaximumLineLength,
-                          TEXT("Client exited:\t\t%d\r\n"),
-                          client_info->pid());
-
-  if (result == -1) {
-    delete[] line;
-    return;
-  }
-
-  QueueUserWorkItem(AppendTextWorker, line, WT_EXECUTEDEFAULT);
-}
-
-void CrashServerStart() {
-  // Do not create another instance of the server.
-  if (crash_server) {
-    return;
-  }
-
-  std::wstring dump_path = L"C:\\Dumps\\";
-
-  if (_wmkdir(dump_path.c_str()) && (errno != EEXIST)) {
-    MessageBoxW(NULL, L"Unable to create dump directory", L"Dumper", MB_OK);
-    return;
-  }
-
-  crash_server = new CrashGenerationServer(kPipeName,
-                                           NULL,
-                                           ShowClientConnected,
-                                           NULL,
-                                           ShowClientCrashed,
-                                           NULL,
-                                           ShowClientExited,
-                                           NULL,
-                                           NULL,
-                                           NULL,
-                                           true,
-                                           &dump_path);
-
-  if (!crash_server->Start()) {
-    MessageBoxW(NULL, L"Unable to start server", L"Dumper", MB_OK);
-    delete crash_server;
-    crash_server = NULL;
-  }
-}
-
-void CrashServerStop() {
-  delete crash_server;
-  crash_server = NULL;
-}
-
-void DerefZeroCrash() {
-  int* x = 0;
-  *x = 1;
-}
-
-void InvalidParamCrash() {
-  printf(NULL);
-}
-
-void PureCallCrash() {
-  Derived derived;
-}
-
-void RequestDump() {
-  if (!handler->WriteMinidump()) {
-    MessageBoxW(NULL, L"Dump request failed", L"Dumper", MB_OK);
-  }
-  kCustomInfoEntries[1].set_value(L"1.1");
-}
-
-void CleanUp() {
-  if (cs_edit) {
-    DeleteCriticalSection(cs_edit);
-    delete cs_edit;
-  }
-
-  if (handler) {
-    delete handler;
-  }
-
-  if (crash_server) {
-    delete crash_server;
-  }
-}
-
-// Processes messages for the main window.
-//
-// WM_COMMAND - process the application menu.
-// WM_PAINT   - Paint the main window.
-// WM_DESTROY - post a quit message and return.
-LRESULT CALLBACK WndProc(HWND wnd,
-                         UINT message,
-                         WPARAM w_param,
-                         LPARAM l_param) {
-  int message_id;
-  int message_event;
-  PAINTSTRUCT ps;
-  HDC hdc;
-
-  HINSTANCE instance = (HINSTANCE)GetWindowLongPtr(wnd, GWLP_HINSTANCE);
-
-  switch (message) {
-    case WM_COMMAND:
-      // Parse the menu selections.
-      message_id = LOWORD(w_param);
-      message_event = HIWORD(w_param);
-      switch (message_id) {
-        case IDM_ABOUT:
-          DialogBox(current_instance,
-                    MAKEINTRESOURCE(IDD_ABOUTBOX),
-                    wnd,
-                    About);
-          break;
-        case IDM_EXIT:
-          DestroyWindow(wnd);
-          break;
-        case ID_SERVER_START:
-          CrashServerStart();
-          break;
-        case ID_SERVER_STOP:
-          CrashServerStop();
-          break;
-        case ID_CLIENT_DEREFZERO:
-          DerefZeroCrash();
-          break;
-        case ID_CLIENT_INVALIDPARAM:
-          InvalidParamCrash();
-          break;
-        case ID_CLIENT_PURECALL:
-          PureCallCrash();
-          break;
-        case ID_CLIENT_REQUESTEXPLICITDUMP:
-          RequestDump();
-          break;
-        default:
-          return DefWindowProc(wnd, message, w_param, l_param);
-      }
-      break;
-    case WM_CREATE:
-      client_status_edit_box = CreateWindow(TEXT("EDIT"),
-                                            NULL,
-                                            kEditBoxStyles,
-                                            0,
-                                            0,
-                                            0,
-                                            0,
-                                            wnd,
-                                            NULL,
-                                            instance,
-                                            NULL);
-      break;
-    case WM_SIZE:
-      // Make the edit control the size of the window's client area.
-      MoveWindow(client_status_edit_box,
-                 0,
-                 0,
-                 LOWORD(l_param),        // width of client area.
-                 HIWORD(l_param),        // height of client area.
-                 TRUE);                  // repaint window.
-      break;
-    case WM_SETFOCUS:
-      SetFocus(client_status_edit_box);
-      break;
-    case WM_PAINT:
-      hdc = BeginPaint(wnd, &ps);
-      EndPaint(wnd, &ps);
-      break;
-    case WM_DESTROY:
-      CleanUp();
-      PostQuitMessage(0);
-      break;
-    default:
-      return DefWindowProc(wnd, message, w_param, l_param);
-  }
-
-  return 0;
-}
-
-// Message handler for about box.
-INT_PTR CALLBACK About(HWND dlg,
-                       UINT message,
-                       WPARAM w_param,
-                       LPARAM l_param) {
-  UNREFERENCED_PARAMETER(l_param);
-  switch (message) {
-    case WM_INITDIALOG:
-      return (INT_PTR)TRUE;
-
-    case WM_COMMAND:
-      if (LOWORD(w_param) == IDOK || LOWORD(w_param) == IDCANCEL) {
-        EndDialog(dlg, LOWORD(w_param));
-        return (INT_PTR)TRUE;
-      }
-      break;
-  }
-
-  return (INT_PTR)FALSE;
-}
-
-}  // namespace google_breakpad
-
-int APIENTRY _tWinMain(HINSTANCE instance,
-                       HINSTANCE previous_instance,
-                       LPTSTR command_line,
-                       int command_show) {
-  using namespace google_breakpad;
-
-  UNREFERENCED_PARAMETER(previous_instance);
-  UNREFERENCED_PARAMETER(command_line);
-
-  cs_edit = new CRITICAL_SECTION();
-  InitializeCriticalSection(cs_edit);
-
-  CustomClientInfo custom_info = {kCustomInfoEntries, kCustomInfoCount};
-
-  CrashServerStart();
-  // This is needed for CRT to not show dialog for invalid param
-  // failures and instead let the code handle it.
-  _CrtSetReportMode(_CRT_ASSERT, 0);
-  handler = new ExceptionHandler(L"C:\\dumps\\",
-                                 NULL,
-                                 google_breakpad::ShowDumpResults,
-                                 NULL,
-                                 ExceptionHandler::HANDLER_ALL,
-                                 MiniDumpNormal,
-                                 kPipeName,
-                                 &custom_info);
-
-  // Initialize global strings.
-  LoadString(instance, IDS_APP_TITLE, title, kMaxLoadString);
-  LoadString(instance,
-             IDC_CRASHGENERATIONAPP,
-             window_class,
-             kMaxLoadString);
-  MyRegisterClass(instance);
-
-  // Perform application initialization.
-  if (!InitInstance(instance, command_show)) {
-    return FALSE;
-  }
-
-  HACCEL accel_table = LoadAccelerators(
-      instance,
-      MAKEINTRESOURCE(IDC_CRASHGENERATIONAPP));
-
-  // Main message loop.
-  MSG msg;
-  while (GetMessage(&msg, NULL, 0, 0)) {
-    if (!TranslateAccelerator(msg.hwnd, accel_table, &msg)) {
-      TranslateMessage(&msg);
-      DispatchMessage(&msg);
-    }
-  }
-
-  return static_cast<int>(msg.wParam);
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.gyp
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'crash_generation_app',
-      'type': 'executable',
-      'sources': [
-        'abstract_class.cc',
-        'abstract_class.h',
-        'crash_generation_app.cc',
-        'crash_generation_app.h',
-        'crash_generation_app.ico',
-        'crash_generation_app.rc',
-        'resource.h',
-        'small.ico',
-      ],
-      'libraries': [
-        'user32.lib',
-      ],
-      'dependencies': [
-        '../../breakpad_client.gyp:common',
-        '../../crash_generation/crash_generation.gyp:crash_generation_server',
-        '../../crash_generation/crash_generation.gyp:crash_generation_client',
-        '../../handler/exception_handler.gyp:exception_handler',
-      ],
-      'msvs_settings': {
-        'VCLinkerTool': {
-          'SubSystem': '2',  # Windows Subsystem as opposed to a console app
-        },
-      },
-    }
-  ]
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
-#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
-
-#include "resource.h"
-
-#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_CRASH_GENERATION_APP_H__
deleted file mode 100644
index d551aa3aaf80adf9b7760e2eb8de95a5c3e53df6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/crash_generation_app.rc
+++ /dev/null
@@ -1,144 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-#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_CRASHGENERATIONAPP  ICON                    "crash_generation_app.ico"
-IDI_SMALL               ICON                    "small.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_CRASHGENERATIONAPP MENU 
-BEGIN
-    POPUP "&File"
-    BEGIN
-        MENUITEM "E&xit",                       IDM_EXIT
-    END
-    POPUP "&Server"
-    BEGIN
-        MENUITEM "&Start",                      ID_SERVER_START
-        MENUITEM "S&top",                       ID_SERVER_STOP
-    END
-    POPUP "&Client"
-    BEGIN
-        MENUITEM "&Deref Zero",                 ID_CLIENT_DEREFZERO
-        MENUITEM "&Invalid Param",              ID_CLIENT_INVALIDPARAM
-        MENUITEM "&Pure Call",                  ID_CLIENT_PURECALL
-        MENUITEM "&Request Dump",               ID_CLIENT_REQUESTEXPLICITDUMP
-    END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_CRASHGENERATIONAPP ACCELERATORS 
-BEGIN
-    "?",            IDM_ABOUT,              ASCII,  ALT
-    "/",            IDM_ABOUT,              ASCII,  ALT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUTBOX DIALOG  22, 17, 230, 75
-STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "System"
-BEGIN
-    ICON            IDI_CRASHGENERATIONAPP,IDC_MYICON,14,9,16,16
-    LTEXT           "CrashGenerationApp Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX
-    LTEXT           "Copyright (C) 2008",IDC_STATIC,49,20,119,8
-    DEFPUSHBUTTON   "OK",IDOK,195,6,30,11,WS_GROUP
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
-    "#include ""windows.h""\r\n"
-    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE 
-BEGIN
-    IDS_APP_TITLE           "CrashGenerationApp"
-    IDC_CRASHGENERATIONAPP  "CRASHGENERATIONAPP"
-END
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/tests/crash_generation_app/resource.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// PreCompile.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#ifndef CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
-#define CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
-
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by crash_generation_app.rc
-//
-#define IDC_MYICON                      2
-#define IDD_CRASHGENERATIONAPP_DIALOG   102
-#define IDS_APP_TITLE                   103
-#define IDD_ABOUTBOX                    103
-#define IDM_ABOUT                       104
-#define IDM_EXIT                        105
-#define IDI_CRASHGENERATIONAPP          107
-#define IDI_SMALL                       108
-#define IDC_CRASHGENERATIONAPP          109
-#define IDR_MAINFRAME                   128
-#define ID_SERVER_START                 32771
-#define ID_SERVER_STOP                  32772
-#define ID_CLIENT_INVALIDPARAM          32773
-#define ID_CLIENT_ASSERTFAILURE         32774
-#define ID_CLIENT_DEREFZERO             32775
-#define ID_CLIENT_PURECALL              32777
-#define ID_CLIENT_REQUESTEXPLICITDUMP   32778
-#define IDC_STATIC                      -1
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NO_MFC                     1
-#define _APS_NEXT_RESOURCE_VALUE        129
-#define _APS_NEXT_COMMAND_VALUE         32780
-#define _APS_NEXT_CONTROL_VALUE         1000
-#define _APS_NEXT_SYMED_VALUE           110
-#endif
-#endif
-
-#endif  // CLIENT_WINDOWS_TESTS_CRASH_GENERATION_APP_RESOURCE_H__
deleted file mode 100644
index d551aa3aaf80adf9b7760e2eb8de95a5c3e53df6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/unittests/client_tests.gyp
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../build/common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'client_tests',
-      'type': 'executable',
-      'sources': [
-        'exception_handler_test.h',
-        'exception_handler_test.cc',
-        'exception_handler_death_test.cc',
-        'exception_handler_nesting_test.cc',
-        'minidump_test.cc',
-        'dump_analysis.cc',
-        'dump_analysis.h',
-        'crash_generation_server_test.cc'
-      ],
-      'dependencies': [
-        'testing.gyp:gtest',
-        'testing.gyp:gmock',
-        '../breakpad_client.gyp:common',
-        '../crash_generation/crash_generation.gyp:crash_generation_server',
-        '../crash_generation/crash_generation.gyp:crash_generation_client',
-        '../handler/exception_handler.gyp:exception_handler',
-	'processor_bits',
-      ]
-    },
-    {
-      'target_name': 'processor_bits',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(DEPTH)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(DEPTH)',
-        ]
-      },
-      'sources': [
-        '<(DEPTH)/common/string_conversion.cc',
-        '<(DEPTH)/processor/basic_code_modules.cc',
-        '<(DEPTH)/processor/dump_context.cc',
-        '<(DEPTH)/processor/dump_object.cc',
-        '<(DEPTH)/processor/logging.cc',
-        '<(DEPTH)/processor/minidump.cc',
-        '<(DEPTH)/processor/pathname_stripper.cc',
-        '<(DEPTH)/processor/proc_maps_linux.cc',
-      ]
-    }
-  ],
-}
deleted file mode 100644
--- a/toolkit/crashreporter/breakpad-client/windows/unittests/testing.gyp
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 2010 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': [
-    '../../../build/common.gypi',
-  ],
-  'target_defaults': {
-  },
-  'targets': [
-    {
-      'target_name': 'gtest',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(DEPTH)/testing/include',
-        '<(DEPTH)/testing/gtest',
-        '<(DEPTH)/testing/gtest/include',
-      ],
-      'sources': [
-        '<(DEPTH)/testing/gtest/src/gtest-all.cc',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(DEPTH)/testing/include',
-          '<(DEPTH)/testing/gtest/include',
-        ],
-        # Visual C++ implements variadic templates strangely, and
-        # VC++2012 broke Google Test by lowering this value. See
-        # http://stackoverflow.com/questions/12558327/google-test-in-visual-studio-2012
-        'defines': ['_VARIADIC_MAX=10'],
-      },
-      'defines': ['_VARIADIC_MAX=10'],
-    },
-    {
-      'target_name': 'gmock',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(DEPTH)/testing/include',
-        '<(DEPTH)/testing/',
-        '<(DEPTH)/testing/gtest',
-        '<(DEPTH)/testing/gtest/include',
-      ],
-      'sources': [
-        '<(DEPTH)/testing/src/gmock-all.cc',
-        '<(DEPTH)/testing/src/gmock_main.cc',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(DEPTH)/testing/include',
-          '<(DEPTH)/testing/gtest/include',
-        ],
-        'defines': ['_VARIADIC_MAX=10'],
-      },
-      'defines': ['_VARIADIC_MAX=10'],
-    },
-
-  ],
-}