<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e718571a6737a7ca5bb933f8be5d7214bbbeb416">https://github.com/macports/macports-ports/commit/e718571a6737a7ca5bb933f8be5d7214bbbeb416</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit e718571a6737a7ca5bb933f8be5d7214bbbeb416
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Sat May 4 11:16:13 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    py-pyobjc6: fix the build of core library
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/69728
</span>---
 python/py-pyobjc6/Portfile                         |   35 +-
 .../files/0001-Fix-obsolete-Python-API.patch       | 3884 ++++++++++++++++++++
 .../0002-module.m-no-AssociatedObject-on-ppc.patch |   40 +
 ...m-disable-test-that-fails-to-compile-with.patch |   31 +
 .../0004-struct-wrapper-fix-for-python-3.10.patch  |   22 +
 5 files changed, 4010 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyobjc6/Portfile b/python/py-pyobjc6/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 384109168af..8f370ea4b44 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-pyobjc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyobjc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,7 @@ PortGroup           python 1.0
</span> # Pegged version for old systems.
 # https://github.com/ronaldoussoren/pyobjc/issues/587
 github.setup        ronaldoussoren pyobjc 6.2.2 v
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> 
 checksums           rmd160  7387bc8c6ec744ca2cf6328036dde9826bcb2763 \
                     sha256  0730edcdc5ca0bbc1e10983d3a7ef143ea80dfec9db8b02eb81d64e4fc18635f \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,8 +30,16 @@ long_description    The PyObjC project aims to provide a bridge between \
</span> homepage            https://pyobjc.readthedocs.io
 
 # It fails to build with Python 3.11+
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Extension error (examples): Handler <function build_examples at 0x4e29168>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for event 'builder-inited' threw an exception (exception: invalid mode: 'rU')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# hello <sphinx.application.Sphinx object at 0x4420870>
</span> python.versions     38 39 310
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/69728
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.pep517       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# FIXME: optional modules do not build at the moment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${name} ne ${subport}} {
     depends_lib-append \
                     port:libffi \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -45,6 +53,26 @@ if {${name} ne ${subport}} {
</span>                     patch-docs-conf.py.diff \
                     patch-install.py.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Backport newer code from upstream:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0001-Fix-obsolete-Python-API.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    platform darwin powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Exclude this for ppc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0002-module.m-no-AssociatedObject-on-ppc.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0003-properties.m-disable-test-that-fails-to-compile-with.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${python.version} > 39} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    0004-struct-wrapper-fix-for-python-3.10.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     post-patch {
         reinplace "s|use-system-libffi = 0|\\
 use-system-libffi = 1\\
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,6 +104,8 @@ deployment-target = ${macosx_deployment_target}\\
</span>     # in fact, doing so breaks the build...
     destroot.cmd "${python.bin} install.py"
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.destdir    --prefix=${prefix}/lib/${subport} --root=${destroot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     post-destroot {
         xinstall -m 644 -W ${worksrcpath}/pyobjc-core HISTORIC.txt Install.txt \
             License.txt README.txt \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -83,5 +113,6 @@ deployment-target = ${macosx_deployment_target}\\
</span>         copy ${worksrcpath}/docs/_build/html ${destroot}${prefix}/share/doc/${subport}/html
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    livecheck.type  none
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      none
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyobjc6/files/0001-Fix-obsolete-Python-API.patch b/python/py-pyobjc6/files/0001-Fix-obsolete-Python-API.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7614e8429a5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyobjc6/files/0001-Fix-obsolete-Python-API.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,3884 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From a0ac312f52d9af26214c5d9c712bdbc07b15deaf Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 16 Apr 2024 15:06:27 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Fix obsolete Python API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/Lib/PyObjCTools/TestSupport.py    | 12 ++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/Tools/pyobjc_setup.py             | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/setup.py                          | 25 ++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-AVFoundation/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-AVKit/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Accounts/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-AdSupport/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-AddressBook/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Automator/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-BusinessChat/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CFNetwork/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CloudKit/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Cocoa/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-ColorSync/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Contacts/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-ContactsUI/pyobjc_setup.py   | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreAudio/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreAudioKit/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreData/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreHaptics/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreLocation/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreML/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreMedia/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreMediaIO/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreMotion/pyobjc_setup.py   | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreServices/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreText/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-CoreWLAN/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-DVDPlayback/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-DeviceCheck/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-EventKit/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-FSEvents/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-FileProvider/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-FinderSync/pyobjc_setup.py   | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-GameCenter/pyobjc_setup.py   | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-GameKit/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-GameplayKit/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-IOSurface/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Intents/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-MapKit/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-MediaLibrary/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-MediaPlayer/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-MediaToolbox/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Message/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Metal/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-MetalKit/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-ModelIO/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-NetFS/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Network/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-OSAKit/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-OSLog/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-PencilKit/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Photos/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-PhotosUI/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-PubSub/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-PushKit/pyobjc_setup.py      | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-QTKit/pyobjc_setup.py        | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Quartz/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-SceneKit/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-ScreenSaver/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-SearchKit/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Security/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Social/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Speech/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-SpriteKit/pyobjc_setup.py    | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-StoreKit/pyobjc_setup.py     | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-SyncServices/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-VideoToolbox/pyobjc_setup.py | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-Vision/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-WebKit/pyobjc_setup.py       | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../pyobjc_setup.py                           | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-framework-libdispatch/pyobjc_setup.py  | 12 ++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 121 files changed, 1095 insertions(+), 370 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/Lib/PyObjCTools/TestSupport.py pyobjc-core/Lib/PyObjCTools/TestSupport.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5699e3576..5a946861e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/Lib/PyObjCTools/TestSupport.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/Lib/PyObjCTools/TestSupport.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,13 +175,11 @@ def os_release():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if _os_release is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return _os_release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if hasattr(_pl, "load"):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        with open("/System/Library/CoreServices/SystemVersion.plist", "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = _pl.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        pl = _pl.readPlist("/System/Library/CoreServices/SystemVersion.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    v = pl["ProductVersion"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return ".".join(v.split("."))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _os_release = (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _subprocess.check_output(["sw_vers", "-productVersion"]).decode().strip()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return _os_release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def is32Bit():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/Tools/pyobjc_setup.py pyobjc-core/Tools/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/Tools/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/Tools/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/setup.py pyobjc-core/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 95730a2b8..e0e50e1ed 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,8 @@ if sys.version_info < MIN_PYTHON:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def get_os_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    pl = plistlib.readPlist("/System/Library/CoreServices/SystemVersion.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    with open("/System/Library/CoreServices/SystemVersion.plist", "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     v = pl["ProductVersion"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ".".join(v.split(".")[:2])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,11 +48,23 @@ def get_sdk_level(sdk):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sdk = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    assert sdk.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    assert sdk.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sdk = sdk[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CFLAGS for the objc._objc extension:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AVFoundation/pyobjc_setup.py pyobjc-framework-AVFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AVFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AVFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AVKit/pyobjc_setup.py pyobjc-framework-AVKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AVKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AVKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Accounts/pyobjc_setup.py pyobjc-framework-Accounts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Accounts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Accounts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AdSupport/pyobjc_setup.py pyobjc-framework-AdSupport/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AdSupport/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AdSupport/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AddressBook/pyobjc_setup.py pyobjc-framework-AddressBook/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AddressBook/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AddressBook/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AppleScriptKit/pyobjc_setup.py pyobjc-framework-AppleScriptKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AppleScriptKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AppleScriptKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AppleScriptObjC/pyobjc_setup.py pyobjc-framework-AppleScriptObjC/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AppleScriptObjC/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AppleScriptObjC/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ApplicationServices/pyobjc_setup.py pyobjc-framework-ApplicationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ApplicationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ApplicationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AuthenticationServices/pyobjc_setup.py pyobjc-framework-AuthenticationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AuthenticationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AuthenticationServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-AutomaticAssessmentConfiguration/pyobjc_setup.py pyobjc-framework-AutomaticAssessmentConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-AutomaticAssessmentConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-AutomaticAssessmentConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Automator/pyobjc_setup.py pyobjc-framework-Automator/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Automator/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Automator/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-BusinessChat/pyobjc_setup.py pyobjc-framework-BusinessChat/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-BusinessChat/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-BusinessChat/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CFNetwork/pyobjc_setup.py pyobjc-framework-CFNetwork/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CFNetwork/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CFNetwork/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CalendarStore/pyobjc_setup.py pyobjc-framework-CalendarStore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CalendarStore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CalendarStore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CloudKit/pyobjc_setup.py pyobjc-framework-CloudKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CloudKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CloudKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Cocoa/pyobjc_setup.py pyobjc-framework-Cocoa/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Cocoa/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Cocoa/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Collaboration/pyobjc_setup.py pyobjc-framework-Collaboration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Collaboration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Collaboration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ColorSync/pyobjc_setup.py pyobjc-framework-ColorSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ColorSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ColorSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Contacts/pyobjc_setup.py pyobjc-framework-Contacts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Contacts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Contacts/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ContactsUI/pyobjc_setup.py pyobjc-framework-ContactsUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ContactsUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ContactsUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreAudio/pyobjc_setup.py pyobjc-framework-CoreAudio/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreAudio/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreAudio/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreAudioKit/pyobjc_setup.py pyobjc-framework-CoreAudioKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreAudioKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreAudioKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreBluetooth/pyobjc_setup.py pyobjc-framework-CoreBluetooth/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreBluetooth/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreBluetooth/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreData/pyobjc_setup.py pyobjc-framework-CoreData/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreData/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreData/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreHaptics/pyobjc_setup.py pyobjc-framework-CoreHaptics/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreHaptics/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreHaptics/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreLocation/pyobjc_setup.py pyobjc-framework-CoreLocation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreLocation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreLocation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreML/pyobjc_setup.py pyobjc-framework-CoreML/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreML/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreML/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreMedia/pyobjc_setup.py pyobjc-framework-CoreMedia/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreMedia/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreMedia/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreMediaIO/pyobjc_setup.py pyobjc-framework-CoreMediaIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreMediaIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreMediaIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreMotion/pyobjc_setup.py pyobjc-framework-CoreMotion/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreMotion/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreMotion/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreServices/pyobjc_setup.py pyobjc-framework-CoreServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreSpotlight/pyobjc_setup.py pyobjc-framework-CoreSpotlight/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreSpotlight/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreSpotlight/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreText/pyobjc_setup.py pyobjc-framework-CoreText/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreText/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreText/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CoreWLAN/pyobjc_setup.py pyobjc-framework-CoreWLAN/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CoreWLAN/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CoreWLAN/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-CryptoTokenKit/pyobjc_setup.py pyobjc-framework-CryptoTokenKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-CryptoTokenKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-CryptoTokenKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DVDPlayback/pyobjc_setup.py pyobjc-framework-DVDPlayback/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DVDPlayback/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DVDPlayback/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DeviceCheck/pyobjc_setup.py pyobjc-framework-DeviceCheck/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DeviceCheck/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DeviceCheck/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DictionaryServices/pyobjc_setup.py pyobjc-framework-DictionaryServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DictionaryServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DictionaryServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DiscRecording/pyobjc_setup.py pyobjc-framework-DiscRecording/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DiscRecording/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DiscRecording/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DiscRecordingUI/pyobjc_setup.py pyobjc-framework-DiscRecordingUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DiscRecordingUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DiscRecordingUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-DiskArbitration/pyobjc_setup.py pyobjc-framework-DiskArbitration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-DiskArbitration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-DiskArbitration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-EventKit/pyobjc_setup.py pyobjc-framework-EventKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-EventKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-EventKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ExceptionHandling/pyobjc_setup.py pyobjc-framework-ExceptionHandling/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ExceptionHandling/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ExceptionHandling/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ExecutionPolicy/pyobjc_setup.py pyobjc-framework-ExecutionPolicy/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ExecutionPolicy/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ExecutionPolicy/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ExternalAccessory/pyobjc_setup.py pyobjc-framework-ExternalAccessory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ExternalAccessory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ExternalAccessory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-FSEvents/pyobjc_setup.py pyobjc-framework-FSEvents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-FSEvents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-FSEvents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-FileProvider/pyobjc_setup.py pyobjc-framework-FileProvider/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-FileProvider/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-FileProvider/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-FileProviderUI/pyobjc_setup.py pyobjc-framework-FileProviderUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-FileProviderUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-FileProviderUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-FinderSync/pyobjc_setup.py pyobjc-framework-FinderSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-FinderSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-FinderSync/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-GameCenter/pyobjc_setup.py pyobjc-framework-GameCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-GameCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-GameCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-GameController/pyobjc_setup.py pyobjc-framework-GameController/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-GameController/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-GameController/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-GameKit/pyobjc_setup.py pyobjc-framework-GameKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-GameKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-GameKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-GameplayKit/pyobjc_setup.py pyobjc-framework-GameplayKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-GameplayKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-GameplayKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-IMServicePlugIn/pyobjc_setup.py pyobjc-framework-IMServicePlugIn/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-IMServicePlugIn/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-IMServicePlugIn/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-IOSurface/pyobjc_setup.py pyobjc-framework-IOSurface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-IOSurface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-IOSurface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ImageCaptureCore/pyobjc_setup.py pyobjc-framework-ImageCaptureCore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ImageCaptureCore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ImageCaptureCore/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-InputMethodKit/pyobjc_setup.py pyobjc-framework-InputMethodKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-InputMethodKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-InputMethodKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-InstallerPlugins/pyobjc_setup.py pyobjc-framework-InstallerPlugins/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-InstallerPlugins/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-InstallerPlugins/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-InstantMessage/pyobjc_setup.py pyobjc-framework-InstantMessage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-InstantMessage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-InstantMessage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Intents/pyobjc_setup.py pyobjc-framework-Intents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Intents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Intents/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-InterfaceBuilderKit/pyobjc_setup.py pyobjc-framework-InterfaceBuilderKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-InterfaceBuilderKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-InterfaceBuilderKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-LatentSemanticMapping/pyobjc_setup.py pyobjc-framework-LatentSemanticMapping/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-LatentSemanticMapping/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-LatentSemanticMapping/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-LaunchServices/pyobjc_setup.py pyobjc-framework-LaunchServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-LaunchServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-LaunchServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-LinkPresentation/pyobjc_setup.py pyobjc-framework-LinkPresentation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-LinkPresentation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-LinkPresentation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-LocalAuthentication/pyobjc_setup.py pyobjc-framework-LocalAuthentication/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-LocalAuthentication/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-LocalAuthentication/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MapKit/pyobjc_setup.py pyobjc-framework-MapKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MapKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MapKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MediaAccessibility/pyobjc_setup.py pyobjc-framework-MediaAccessibility/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MediaAccessibility/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MediaAccessibility/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MediaLibrary/pyobjc_setup.py pyobjc-framework-MediaLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MediaLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MediaLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MediaPlayer/pyobjc_setup.py pyobjc-framework-MediaPlayer/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MediaPlayer/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MediaPlayer/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MediaToolbox/pyobjc_setup.py pyobjc-framework-MediaToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MediaToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MediaToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Message/pyobjc_setup.py pyobjc-framework-Message/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Message/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Message/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Metal/pyobjc_setup.py pyobjc-framework-Metal/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Metal/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Metal/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MetalKit/pyobjc_setup.py pyobjc-framework-MetalKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MetalKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MetalKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ModelIO/pyobjc_setup.py pyobjc-framework-ModelIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ModelIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ModelIO/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-MultipeerConnectivity/pyobjc_setup.py pyobjc-framework-MultipeerConnectivity/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-MultipeerConnectivity/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-MultipeerConnectivity/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-NaturalLanguage/pyobjc_setup.py pyobjc-framework-NaturalLanguage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-NaturalLanguage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-NaturalLanguage/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-NetFS/pyobjc_setup.py pyobjc-framework-NetFS/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-NetFS/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-NetFS/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Network/pyobjc_setup.py pyobjc-framework-Network/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Network/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Network/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-NetworkExtension/pyobjc_setup.py pyobjc-framework-NetworkExtension/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-NetworkExtension/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-NetworkExtension/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-NotificationCenter/pyobjc_setup.py pyobjc-framework-NotificationCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-NotificationCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-NotificationCenter/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-OSAKit/pyobjc_setup.py pyobjc-framework-OSAKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-OSAKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-OSAKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-OSLog/pyobjc_setup.py pyobjc-framework-OSLog/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-OSLog/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-OSLog/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-OpenDirectory/pyobjc_setup.py pyobjc-framework-OpenDirectory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-OpenDirectory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-OpenDirectory/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-PencilKit/pyobjc_setup.py pyobjc-framework-PencilKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-PencilKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-PencilKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Photos/pyobjc_setup.py pyobjc-framework-Photos/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Photos/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Photos/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-PhotosUI/pyobjc_setup.py pyobjc-framework-PhotosUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-PhotosUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-PhotosUI/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-PreferencePanes/pyobjc_setup.py pyobjc-framework-PreferencePanes/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-PreferencePanes/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-PreferencePanes/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-PubSub/pyobjc_setup.py pyobjc-framework-PubSub/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-PubSub/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-PubSub/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-PushKit/pyobjc_setup.py pyobjc-framework-PushKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-PushKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-PushKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-QTKit/pyobjc_setup.py pyobjc-framework-QTKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-QTKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-QTKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Quartz/pyobjc_setup.py pyobjc-framework-Quartz/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Quartz/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Quartz/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-QuickLookThumbnailing/pyobjc_setup.py pyobjc-framework-QuickLookThumbnailing/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-QuickLookThumbnailing/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-QuickLookThumbnailing/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SafariServices/pyobjc_setup.py pyobjc-framework-SafariServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SafariServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SafariServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SceneKit/pyobjc_setup.py pyobjc-framework-SceneKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SceneKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SceneKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ScreenSaver/pyobjc_setup.py pyobjc-framework-ScreenSaver/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ScreenSaver/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ScreenSaver/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ScriptingBridge/pyobjc_setup.py pyobjc-framework-ScriptingBridge/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ScriptingBridge/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ScriptingBridge/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SearchKit/pyobjc_setup.py pyobjc-framework-SearchKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SearchKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SearchKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Security/pyobjc_setup.py pyobjc-framework-Security/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Security/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Security/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SecurityFoundation/pyobjc_setup.py pyobjc-framework-SecurityFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SecurityFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SecurityFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SecurityInterface/pyobjc_setup.py pyobjc-framework-SecurityInterface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SecurityInterface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SecurityInterface/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ServerNotification/pyobjc_setup.py pyobjc-framework-ServerNotification/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ServerNotification/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ServerNotification/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-ServiceManagement/pyobjc_setup.py pyobjc-framework-ServiceManagement/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-ServiceManagement/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-ServiceManagement/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Social/pyobjc_setup.py pyobjc-framework-Social/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Social/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Social/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SoundAnalysis/pyobjc_setup.py pyobjc-framework-SoundAnalysis/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SoundAnalysis/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SoundAnalysis/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Speech/pyobjc_setup.py pyobjc-framework-Speech/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Speech/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Speech/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SpriteKit/pyobjc_setup.py pyobjc-framework-SpriteKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SpriteKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SpriteKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-StoreKit/pyobjc_setup.py pyobjc-framework-StoreKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-StoreKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-StoreKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SyncServices/pyobjc_setup.py pyobjc-framework-SyncServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SyncServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SyncServices/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SystemConfiguration/pyobjc_setup.py pyobjc-framework-SystemConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SystemConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SystemConfiguration/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-SystemExtensions/pyobjc_setup.py pyobjc-framework-SystemExtensions/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-SystemExtensions/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-SystemExtensions/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-UserNotifications/pyobjc_setup.py pyobjc-framework-UserNotifications/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-UserNotifications/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-UserNotifications/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-VideoSubscriberAccount/pyobjc_setup.py pyobjc-framework-VideoSubscriberAccount/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-VideoSubscriberAccount/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-VideoSubscriberAccount/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-VideoToolbox/pyobjc_setup.py pyobjc-framework-VideoToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-VideoToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-VideoToolbox/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-Vision/pyobjc_setup.py pyobjc-framework-Vision/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-Vision/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-Vision/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-WebKit/pyobjc_setup.py pyobjc-framework-WebKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-WebKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-WebKit/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-XgridFoundation/pyobjc_setup.py pyobjc-framework-XgridFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-XgridFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-XgridFoundation/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-iTunesLibrary/pyobjc_setup.py pyobjc-framework-iTunesLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-iTunesLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-iTunesLibrary/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-framework-libdispatch/pyobjc_setup.py pyobjc-framework-libdispatch/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ddc8c2c48..9e019cd14 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-framework-libdispatch/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-framework-libdispatch/pyobjc_setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -229,17 +229,23 @@ def get_sdk_level():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if sdk == "/":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return get_os_level()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sdk = sdk.rstrip("/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sdkname = os.path.basename(sdk)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.startswith("MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     assert sdkname.endswith(".sdk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sdkname == "MacOSX.sdk":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    settings_path = os.path.join(sdk, "SDKSettings.plist")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if os.path.exists(settings_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            pl = plistlib.readPlist(os.path.join(sdk, "SDKSettings.plist"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            with open(os.path.join(sdk, "SDKSettings.plist"), "rb") as fp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                pl = plistlib.load(fp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return pl["Version"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         except Exception:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("Cannot determine SDK version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        version_part = sdkname[6:-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        assert version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return version_part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class pyobjc_install_lib(install_lib.install_lib):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyobjc6/files/0002-module.m-no-AssociatedObject-on-ppc.patch b/python/py-pyobjc6/files/0002-module.m-no-AssociatedObject-on-ppc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c8c1ffa6b46
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyobjc6/files/0002-module.m-no-AssociatedObject-on-ppc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 34c7bf187f8a33ce3d240cc9da79d91fb51cc1a7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 14 Apr 2024 06:37:53 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] module.m: no AssociatedObject on ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/Modules/objc/module.m | 6 +++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/Modules/objc/module.m pyobjc-core/Modules/objc/module.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ba50e4b46..b1f0e96fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/Modules/objc/module.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/Modules/objc/module.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1499,7 +1499,7 @@ typestr2typestr(PyObject* args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if PyObjC_BUILD_RELEASE >= 1006
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if PyObjC_BUILD_RELEASE >= 1006 && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Associated Object support. Functionality is available on OSX 10.6 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1943,7 +1943,7 @@ static PyMethodDef mod_methods[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      .ml_doc   = "_typestr2typestr(value)\n" CLINIC_SEP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "\nReturns the standard Objective-C version for a PyObjC typestr"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if PyObjC_BUILD_RELEASE >= 1006
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if PyObjC_BUILD_RELEASE >= 1006 && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {.ml_name  = "setAssociatedObject",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      .ml_meth  = (PyCFunction)PyObjC_setAssociatedObject,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2345,7 +2345,7 @@ PyObject* __attribute__((__visibility__("default"))) PyInit__objc(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PyObjCPointerWrapper_Init();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if PyObjC_BUILD_RELEASE >= 1006
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if PyObjC_BUILD_RELEASE >= 1006 && !defined(__ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (objc_setAssociatedObject != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyobjc6/files/0003-properties.m-disable-test-that-fails-to-compile-with.patch b/python/py-pyobjc6/files/0003-properties.m-disable-test-that-fails-to-compile-with.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ae28d4fc880
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyobjc6/files/0003-properties.m-disable-test-that-fails-to-compile-with.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4fa8f8d3de77e56dc7aa00b30717725ed4f3695c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 16 Apr 2024 17:37:13 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] properties.m: disable test that fails to compile with gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/Modules/objc/test/properties.m | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/Modules/objc/test/properties.m pyobjc-core/Modules/objc/test/properties.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b585db986..f05a46597 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/Modules/objc/test/properties.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/Modules/objc/test/properties.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,7 +25,7 @@ typedef NSObject<NSObject> ObjectClass;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     id       _prop12;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if (PyObjC_BUILD_RELEASE >= 1005)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (PyObjC_BUILD_RELEASE >= 1007)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma clang diagnostic push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma clang diagnostic ignored "-Wobjc-property-no-attribute"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@ typedef NSObject<NSObject> ObjectClass;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @implementation OCPropertyDefinitions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if (PyObjC_BUILD_RELEASE >= 1005)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if (PyObjC_BUILD_RELEASE >= 1007)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @synthesize prop1  = _prop1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @synthesize prop2  = _prop2;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-pyobjc6/files/0004-struct-wrapper-fix-for-python-3.10.patch b/python/py-pyobjc6/files/0004-struct-wrapper-fix-for-python-3.10.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..1f3f082c821
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-pyobjc6/files/0004-struct-wrapper-fix-for-python-3.10.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From ee4df05e90d1fb374dcfebbb6887480f41cc073e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 16 Apr 2024 18:06:48 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] struct-wrapper: fix for python 3.10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pyobjc-core/Modules/objc/struct-wrapper.m | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git pyobjc-core/Modules/objc/struct-wrapper.m pyobjc-core/Modules/objc/struct-wrapper.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dd753e43a..d601cf266 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pyobjc-core/Modules/objc/struct-wrapper.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pyobjc-core/Modules/objc/struct-wrapper.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1289,7 +1289,7 @@ PyObjC_MakeStructType(const char* name, const char* doc, initproc tpinit,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Py_REFCNT(result)         = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Py_REFCNT(result) == 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     result->base.tp_members   = members;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     result->base.tp_basicsize = sizeof(PyObject) + (numFields * sizeof(PyObject*));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (PyDict_SetItemString(result->base.tp_dict, "_fields", fields) == -1) {
</span></pre><pre style='margin:0'>

</pre>