The Swift Package Index logo.Swift Package Index

Build Information

Successful build of PLCrashReporter, reference 1.12.2 (0254f9), with Swift 6.4 for macOS (SPM) on 23 Sep 2026 09:55:00 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/microsoft/plcrashreporter.git
Reference: 1.12.2
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/microsoft/plcrashreporter
 * tag               1.12.2     -> FETCH_HEAD
HEAD is now at 0254f94 Merge pull request #353 from microsoft/release/1.12.2
Cloned https://github.com/microsoft/plcrashreporter.git
Revision (git rev-parse @):
0254f941c646b1ed17b243654723d0f071e990d0
SUCCESS checkout https://github.com/microsoft/plcrashreporter.git at 1.12.2
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/microsoft/plcrashreporter.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 96]
[Planning deferred tasks]
[33 / 144] PLCrashReporter_CrashReporter
[35 / 144]
[46 / 144] CrashReporter
[47 / 157] CrashReporter
[54 / 183]
[57 / 190]
[67 / 190]
[110 / 191] CrashReporter
[122 / 198]
[128 / 198] CrashReporter
[128 / 198]
[144 / 198]
[155 / 198]
[161 / 198]
[164 / 198]
[167 / 198]
[168 / 198]
[187 / 198] CrashReporter
[197 / 198] CrashReporter
Build complete! (5.38 sec)
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:449:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  449 |                 return rv + uint32_size(len) + len;
      |                             ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:453:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  453 |                 return rv + uint32_size(len) + len;
      |                             ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:458:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  458 |                 return rv + uint32_size(subrv) + subrv;
      |                             ~~~~~~~~~~~ ^~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:666:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  666 |                         rv += uint32_size(len) + len;
      |                               ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:672:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  672 |                         rv += uint32_size(len) + len;
      |                               ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:679:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  679 |                         rv += uint32_size(len) + len;
      |                               ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:685:30: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
  685 |                 header_size += uint32_size(rv);
      |                                ~~~~~~~~~~~ ^~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1003:27: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1003 |                 size_t rv = uint32_pack(len, out);
      |                             ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1024:26: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1024 |         size_t rv = uint32_pack(len, out);
      |                     ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1048:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1048 |                 uint32_t rv_packed_size = uint32_size(rv);
      |                          ~~~~~~~~~~~~~~   ^~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1048:41: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1048 |                 uint32_t rv_packed_size = uint32_size(rv);
      |                                           ~~~~~~~~~~~ ^~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1051:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1051 |                 return uint32_pack(rv, out) + rv;
      |                        ~~~~~~~~~~~ ^~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1374:16: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1374 |                 header_len = tag_pack(field->id, out);
      |                            ~ ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1377:47: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1377 |                 min_length = get_type_min_size(field->type) * count;
      |                            ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1378:21: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1378 |                 length_size_min = uint32_size(min_length);
      |                                 ~ ^~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1386:48: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1386 |                         copy_to_little_endian_32(payload_at, array, count);
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~                    ^~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1392:48: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1392 |                         copy_to_little_endian_64(payload_at, array, count);
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~                    ^~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1437:28: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
 1437 |                 payload_len = payload_at - (out + header_len);
      |                             ~ ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1438:24: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1438 |                 actual_length_size = uint32_size(payload_len);
      |                                    ~ ^~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1451:18: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1451 |                 unsigned siz = sizeof_elt_in_repeated_array(field->type);
      |                          ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1607:21: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1607 |                 rv += uint32_pack(sublen, scratch + rv);
      |                       ~~~~~~~~~~~ ^~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1618:21: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1618 |                 rv += uint32_pack(sublen, scratch + rv);
      |                       ~~~~~~~~~~~ ^~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1633:22: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1633 |                         rv += uint32_pack(sublen, scratch + rv);
      |                               ~~~~~~~~~~~ ^~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1854:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1854 |                         unsigned len = int32_pack(((int32_t *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1861:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1861 |                         unsigned len = sint32_pack(((int32_t *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1868:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1868 |                         unsigned len = uint32_pack(((uint32_t *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1875:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1875 |                         unsigned len = sint64_pack(((int64_t *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1883:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1883 |                         unsigned len = uint64_pack(((uint64_t *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1890:19: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1890 |                         unsigned len = boolean_pack(((protobuf_c_boolean *) array)[i], scratch);
      |                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:1923:21: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') [-Wshorten-64-to-32]
 1923 |                 rv += uint32_pack(payload_len, scratch + rv);
      |                       ~~~~~~~~~~~ ^~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2001:5: warning: implicit conversion loses integer precision: 'const size_t' (aka 'const unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 1999 |                         rv += repeated_field_pack_to_buffer(
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2000 |                                 field,
 2001 |                                 *(const size_t *) qmember,
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2069:34: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2069 |         unsigned max_rv = len > 5 ? 5 : len;
      |                  ~~~~~~                 ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2114:31: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2114 |         unsigned hdr_max = len < 5 ? len : 5;
      |                  ~~~~~~~             ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2502:33: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2502 |         unsigned len = scanned_member->len;
      |                  ~~~   ~~~~~~~~~~~~~~~~^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2787:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2787 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2799:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2799 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2811:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2811 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2824:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2824 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2837:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2837 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:2849:29: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 2849 |                         unsigned s = scan_varint(rem, at);
      |                                      ~~~~~~~~~~~ ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:3135:34: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 3135 |                         unsigned max_len = rem < 10 ? rem : 10;
      |                                  ~~~~~~~              ^~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:3239:18: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
 3239 |                                 unsigned n = *n_ptr;
      |                                          ~   ^~~~~~
/Users/admin/builder/spi-builder-workspace/Dependencies/protobuf-c/protobuf-c/protobuf-c.c:3281:25: warning: implicit conversion loses integer precision: 'unsigned long' to 'unsigned int' [-Wshorten-64-to-32]
 3280 |                 unsigned max = (i_slab == which_slab) ?
      |                          ~~~
 3281 |                         in_slab_index : (1UL << (i_slab + 4));
      |                                          ~~~~^~~~~~~~~~~~~~~
43 warnings generated.
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "PLCrashReporter",
  "name" : "PLCrashReporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.10"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "CrashReporter",
      "targets" : [
        "CrashReporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CrashReporter",
      "module_type" : "ClangTarget",
      "name" : "CrashReporter",
      "path" : ".",
      "product_memberships" : [
        "CrashReporter"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Dependencies/protobuf-c/protobuf-c/protobuf-c.c",
        "Source/CrashReporter.m",
        "Source/CrashReporterFramework.m",
        "Source/PLCrashAsync.c",
        "Source/PLCrashAsyncCompactUnwindEncoding.c",
        "Source/PLCrashAsyncDwarfCFAState.cpp",
        "Source/PLCrashAsyncDwarfCFAStateEvaluation.cpp",
        "Source/PLCrashAsyncDwarfCIE.cpp",
        "Source/PLCrashAsyncDwarfEncoding.cpp",
        "Source/PLCrashAsyncDwarfExpression.cpp",
        "Source/PLCrashAsyncDwarfFDE.cpp",
        "Source/PLCrashAsyncDwarfPrimitives.cpp",
        "Source/PLCrashAsyncImageList.cpp",
        "Source/PLCrashAsyncMObject.c",
        "Source/PLCrashAsyncMachExceptionInfo.c",
        "Source/PLCrashAsyncMachOImage.c",
        "Source/PLCrashAsyncMachOString.c",
        "Source/PLCrashAsyncObjCSection.mm",
        "Source/PLCrashAsyncSignalInfo.c",
        "Source/PLCrashAsyncSymbolication.c",
        "Source/PLCrashAsyncThread.c",
        "Source/PLCrashAsyncThread_arm.c",
        "Source/PLCrashAsyncThread_current.S",
        "Source/PLCrashAsyncThread_current.c",
        "Source/PLCrashAsyncThread_x86.c",
        "Source/PLCrashFrameCompactUnwind.c",
        "Source/PLCrashFrameDWARFUnwind.cpp",
        "Source/PLCrashFrameStackUnwind.c",
        "Source/PLCrashFrameWalker.c",
        "Source/PLCrashHostInfo.m",
        "Source/PLCrashLogWriter.m",
        "Source/PLCrashLogWriterEncoding.c",
        "Source/PLCrashMachExceptionPort.m",
        "Source/PLCrashMachExceptionPortSet.m",
        "Source/PLCrashMachExceptionServer.m",
        "Source/PLCrashProcessInfo.m",
        "Source/PLCrashReport.m",
        "Source/PLCrashReport.pb-c.c",
        "Source/PLCrashReportApplicationInfo.m",
        "Source/PLCrashReportBinaryImageInfo.m",
        "Source/PLCrashReportExceptionInfo.m",
        "Source/PLCrashReportMachExceptionInfo.m",
        "Source/PLCrashReportMachineInfo.m",
        "Source/PLCrashReportProcessInfo.m",
        "Source/PLCrashReportProcessorInfo.m",
        "Source/PLCrashReportRegisterInfo.m",
        "Source/PLCrashReportSignalInfo.m",
        "Source/PLCrashReportStackFrameInfo.m",
        "Source/PLCrashReportSymbolInfo.m",
        "Source/PLCrashReportSystemInfo.m",
        "Source/PLCrashReportTextFormatter.m",
        "Source/PLCrashReportThreadInfo.m",
        "Source/PLCrashReporter.m",
        "Source/PLCrashReporterConfig.m",
        "Source/PLCrashReporterNSError.m",
        "Source/PLCrashSignalHandler.mm",
        "Source/PLCrashSysctl.c",
        "Source/PLCrashUncaughtExceptionHandler.m",
        "Source/dwarf_opstream.cpp"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.