<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>189270</bug_id>
          
          <creation_ts>2018-09-04 13:01:37 -0700</creation_ts>
          <short_desc>Make LibWebRTCRtpSenderBackend own its libwebrtc RTP sender backend</short_desc>
          <delta_ts>2018-09-04 17:06:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1456424</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-04 13:01:37 -0700</bug_when>
    <thetext>Make LibWebRTCRtpSenderBackend own its libwebrtc RTP sender backend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456480</commentid>
    <comment_count>1</comment_count>
      <attachid>348857</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-04 15:31:10 -0700</bug_when>
    <thetext>Created attachment 348857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456502</commentid>
    <comment_count>2</comment_count>
      <attachid>348857</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-04 16:21:00 -0700</bug_when>
    <thetext>Comment on attachment 348857
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=348857&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        Previously, the libwebrtc sender were owned in LibWebRTCMediaEndpoint.

Nit: sender -&gt; senders

&gt; Source/WebCore/ChangeLog:9
&gt; +        This patch makes them owned by LibWebRTCRtpSenderBackend.

Nit: makes them owned by -&gt; makes them be owned by

&gt; Source/WebCore/ChangeLog:11
&gt; +        This will help simplifying the implementation of RTCRtpSender::replaceTrack.

Nit: simplifying -&gt; simplify

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:258
&gt; +        if (m_peerConnectionBackend.shouldOfferAllowToReceive(&quot;audio&quot;))

Nit: &quot;audio&quot; -&gt; &quot;audio&quot;_s

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:260
&gt; +        if (m_peerConnectionBackend.shouldOfferAllowToReceive(&quot;video&quot;))

Nit: &quot;video&quot; -&gt; &quot;video&quot;_s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456512</commentid>
    <comment_count>3</comment_count>
      <attachid>348870</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-04 16:31:51 -0700</bug_when>
    <thetext>Created attachment 348870
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456538</commentid>
    <comment_count>4</comment_count>
      <attachid>348870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-04 17:04:07 -0700</bug_when>
    <thetext>Comment on attachment 348870
Patch for landing

Clearing flags on attachment: 348870

Committed r235649: &lt;https://trac.webkit.org/changeset/235649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456539</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-04 17:04:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456541</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-04 17:06:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/44118910&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348857</attachid>
            <date>2018-09-04 15:31:10 -0700</date>
            <delta_ts>2018-09-04 16:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189270-20180904153109.patch</filename>
            <type>text/plain</type>
            <size>21805</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJlMDUzYzI0ZWNiODI2
ZGNlM2U2Y2U3MDQ1N2EyZTM2ZDMzMTI1My4uN2ZiYjBhMTk5NDFmZGNjMGMwODZlN2ZiNzdkZWY0
NmM3NGJhZmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA5LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIExpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQgb3duIGl0cyBsaWJ3ZWJydGMgUlRQIHNlbmRlciBiYWNrZW5kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkyNzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB0
aGUgbGlid2VicnRjIHNlbmRlciB3ZXJlIG93bmVkIGluIExpYldlYlJUQ01lZGlhRW5kcG9pbnQu
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlbSBvd25lZCBieSBMaWJXZWJSVENSdHBTZW5k
ZXJCYWNrZW5kLgorICAgICAgICBUaGlzIHNpbXBsaWZpZXMgdGhlIGltcGxlbWVudGF0aW9uIG9m
IFJUQ1J0cFNlbmRlcjo6Z2V0UGFyYW1ldGVycy4KKyAgICAgICAgVGhpcyB3aWxsIGhlbHAgc2lt
cGxpZnlpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIFJUQ1J0cFNlbmRlcjo6cmVwbGFjZVRyYWNr
LgorCisgICAgICAgIHJlbW92ZVRyYWNrIGlzIGFsc28gcmVmYWN0b3JlZCBzbyB0aGF0IExpYldl
YlJUQ01lZGlhRW5kcG9pbnQgZGlyZWN0bHkgdXNlcyBsaWJ3ZWJydGMgY29uc3RydWN0cyBhbmQg
bm90IFdlYkNvcmUgbGlid2VicnRjLWFnbm9zdGljIG9uZXMuCisKKyAgICAgICAgTm8gY2hhbmdl
IG9mIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVj
dGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6
cmVtb3ZlVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpu
b3RpZnlSZW1vdmVkVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5l
Y3Rpb246OnJlbW92ZVRyYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNlbmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXI6OmdldFBhcmFtZXRl
cnMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXI6OmJhY2tlbmQpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6cmVtb3ZlVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVBdWRpbyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50
OjpzaG91bGRPZmZlckFsbG93VG9SZWNlaXZlVmlkZW8gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Z2V0UlRDUnRwU2VuZGVyUGFyYW1l
dGVycyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpiYWNrZW5kRnJvbVJUUFNlbmRlcik6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZW1vdmVUcmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNob3VsZE9m
ZmVyQWxsb3dUb1JlY2VpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpub3RpZnlSZW1vdmVkVHJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpnZXRQYXJhbWV0ZXJz
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ6OmdldFBhcmFtZXRlcnMgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQuaDoKKwogMjAxOC0wOS0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBXZWJSVEMgdW5pZmllZCBwbGFuIHJ1bnRpbWUg
ZmxhZyBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCA5NWUwZjk5MzJjYWUwZTVh
ZjRmN2IyOTRlMzhkZDQxOTUwNjRmYzgyLi42MjkyZGU4NjEzYWNlM2MwNWI1OGI1YWJmOWI2NTEw
MjcxNzg1N2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIoY29u
c3QgU3RyaW5nJiB0cmFuc2NlaXZlck1pZCwgY29uc3QgU3RyaW5nJiB0cmFja0tpbmQsIGNvbnN0
IFN0cmluZyYgdHJhY2tJZCkgPSAwOwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0
cFNlbmRlcj4+IGFkZFRyYWNrKFJUQ1J0cFNlbmRlciosIE1lZGlhU3RyZWFtVHJhY2smLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZW1vdmVkVHJhY2so
UlRDUnRwU2VuZGVyJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRyYWNrKFJUQ1J0cFNl
bmRlciYpIHsgfQogCiAgICAgdmlydHVhbCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2
ZXI+PiBhZGRUcmFuc2NlaXZlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENSdHBUcmFuc2NlaXZl
ckluaXQmKTsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+
IGFkZFRyYW5zY2VpdmVyKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBjb25zdCBSVENSdHBUcmFu
c2NlaXZlckluaXQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMzFlNjllMjE2YjQ5ZTQ0NDQzZDIy
YjJiNGM0MWNhMThhZWNlZWJlOC4uMmE1YTEzZTBhMDg4Njg4YmRiMmVjZDNhNGQ4MDJiNjk3MTgw
MGU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTE1Nyw5ICsxNTcsOCBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIp
CiAgICAgaWYgKHNob3VsZEFib3J0KQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgbV9iYWNr
ZW5kLT5yZW1vdmVUcmFjayhzZW5kZXIpOwogICAgIHNlbmRlci5zdG9wKCk7Ci0KLSAgICBtX2Jh
Y2tlbmQtPm5vdGlmeVJlbW92ZWRUcmFjayhzZW5kZXIpOwogICAgIHJldHVybiB7IH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVy
LmNwcAppbmRleCA2YTNkMWJjZDkwODg2ZTAzM2Q1MTI0ZGM5ZDRlYjRiNmRmZGZiNzRjLi41YWNk
ZDQ2NmY0OTM0MDQ5YzNiNDk3ZjAzZmNjZDc5NjY2NDdiZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwCkBAIC05Niw3ICs5
Niw3IEBAIFJUQ1J0cFBhcmFtZXRlcnMgUlRDUnRwU2VuZGVyOjpnZXRQYXJhbWV0ZXJzKCkKIHsK
ICAgICBpZiAoaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIG1f
YmFja2VuZC0+Z2V0UGFyYW1ldGVycygqdGhpcyk7CisgICAgcmV0dXJuIG1fYmFja2VuZC0+Z2V0
UGFyYW1ldGVycygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaAppbmRleCA0ZTFlNGI1
ZTNhN2ZhNWY3ZDE3YzBkZjczNDk2ZjZlYWQyMGVmMWVmLi5hNWQzMDkyNGUzYTAzYmE3NDFlZWY4
OTg1ZTBlNzUwM2JiYmQ5YTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2VuZGVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVwbGFjZVRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CiAKICAgICBSVENSdHBQYXJhbWV0ZXJzIGdldFBhcmFtZXRlcnMoKTsK
KyAgICBSVENSdHBTZW5kZXJCYWNrZW5kKiBiYWNrZW5kKCkgeyByZXR1cm4gbV9iYWNrZW5kLmdl
dCgpOyB9CiAKIHByaXZhdGU6CiAgICAgUlRDUnRwU2VuZGVyKFN0cmluZyYmIHRyYWNrS2luZCwg
VmVjdG9yPFN0cmluZz4mJiBtZWRpYVN0cmVhbUlkcywgc3RkOjp1bmlxdWVfcHRyPFJUQ1J0cFNl
bmRlckJhY2tlbmQ+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTZW5kZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNlbmRlckJhY2tlbmQuaAppbmRleCA1ZDI1OGE0YzNlOWNmNDkxNTM4
MjY0ODY4MTY2MTcyZmZjNDBhNGQ1Li40NzY1NDNjOThjNmZhNmNhNDY1MDE1YzFiYzU4ZmNlZTdh
OTdhNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNlbmRlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNlbmRlckJhY2tlbmQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBSVENSdHBT
ZW5kZXI7CiBjbGFzcyBSVENSdHBTZW5kZXJCYWNrZW5kIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgPSAwOwotICAgIHZpcnR1YWwgUlRDUnRw
UGFyYW1ldGVycyBnZXRQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRlciYpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFJUQ1J0cFBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVycygpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIH5SVENSdHBTZW5kZXJCYWNrZW5kKCkgPSBkZWZhdWx0OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCBiNWViYjdkMzU2YzgyOTQ1
ZWU4MjQxOTFjMTU3YTRjOTZlYzEwZGVlLi42MjY0OTdlYzBiZjRhOWU5YjBiMGZmNmFkNzE2MjM2
NWU1NDAwYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNw
cApAQCAtMTk0LDkgKzE5NCwxMCBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvU2V0
UmVtb3RlRGVzY3JpcHRpb24oUlRDU2Vzc2lvbkRlc2NyaXB0aW9uJiBkZXNjcgogICAgIHN0YXJ0
TG9nZ2luZ1N0YXRzKCk7CiB9CiAKLWJvb2wgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkVHJh
Y2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgbWVkaWFTdHJlYW1JZHMpCitib29sIExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6OmFkZFRyYWNrKExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQmIHNlbmRlciwgTWVkaWFTdHJl
YW1UcmFjayYgdHJhY2ssIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVN0cmVhbUlkcykKIHsK
ICAgICBBU1NFUlQobV9iYWNrZW5kKTsKKyAgICBBU1NFUlQoIXNlbmRlci5ydGNTZW5kZXIoKSk7
CiAKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
UlRDVW5pZmllZFBsYW5FbmFibGVkKCkpIHsKICAgICAgICAgU3RyaW5nIG1lZGlhU3RyZWFtSWQg
PSBtZWRpYVN0cmVhbUlkcy5pc0VtcHR5KCkgPyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkg
OiBtZWRpYVN0cmVhbUlkc1swXTsKQEAgLTIxNywxOCArMjE4LDIwIEBAIGJvb2wgTGliV2ViUlRD
TWVkaWFFbmRwb2ludDo6YWRkVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlhU3RyZWFt
VHJhY2smIHRyCiAgICAgICAgIGF1dG8gYXVkaW9UcmFjayA9IG1fcGVlckNvbm5lY3Rpb25GYWN0
b3J5LkNyZWF0ZUF1ZGlvVHJhY2sodHJhY2suaWQoKS51dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJj
ZS5wdHIoKSk7CiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmFkZEF1ZGlvU291cmNl
KFdURk1vdmUodHJhY2tTb3VyY2UpKTsKICAgICAgICAgYXV0byBydHBTZW5kZXIgPSBtX2JhY2tl
bmQtPkFkZFRyYWNrKGF1ZGlvVHJhY2suZ2V0KCksIFdURk1vdmUoaWRzKSk7Ci0gICAgICAgIGlm
IChydHBTZW5kZXIub2soKSkKLSAgICAgICAgICAgIG1fc2VuZGVycy5hZGQoJnNlbmRlciwgcnRw
U2VuZGVyLk1vdmVWYWx1ZSgpKTsKLSAgICAgICAgcmV0dXJuIHJ0cFNlbmRlci5vaygpOworICAg
ICAgICBpZiAoIXJ0cFNlbmRlci5vaygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBzZW5kZXIuc2V0UlRDU2VuZGVyKHJ0cFNlbmRlci5Nb3ZlVmFsdWUoKSk7CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvOiB7CiAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OmNyZWF0ZSh0cmFjay5wcml2YXRlVHJhY2soKSk7CiAgICAgICAgIGF1dG8gdmlk
ZW9UcmFjayA9IG1fcGVlckNvbm5lY3Rpb25GYWN0b3J5LkNyZWF0ZVZpZGVvVHJhY2sodHJhY2su
aWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7CiAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLmFkZFZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKTsKICAg
ICAgICAgYXV0byBydHBTZW5kZXIgPSBtX2JhY2tlbmQtPkFkZFRyYWNrKHZpZGVvVHJhY2suZ2V0
KCksIFdURk1vdmUoaWRzKSk7Ci0gICAgICAgIGlmIChydHBTZW5kZXIub2soKSkKLSAgICAgICAg
ICAgIG1fc2VuZGVycy5hZGQoJnNlbmRlciwgcnRwU2VuZGVyLk1vdmVWYWx1ZSgpKTsKLSAgICAg
ICAgcmV0dXJuIHJ0cFNlbmRlci5vaygpOworICAgICAgICBpZiAoIXJ0cFNlbmRlci5vaygpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBzZW5kZXIuc2V0UlRDU2VuZGVyKHJ0
cFNlbmRlci5Nb3ZlVmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBj
YXNlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMjM2LDQ2ICsyMzksMTAgQEAgYm9vbCBMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjphZGRUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlciwgTWVkaWFTdHJlYW1UcmFjayYgdHIK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6cmVt
b3ZlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIpCit2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6OnJlbW92ZVRyYWNrKExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQmIHNlbmRlcikKIHsKICAg
ICBBU1NFUlQobV9iYWNrZW5kKTsKLQotICAgIGF1dG8gcnRjU2VuZGVyID0gbV9zZW5kZXJzLmdl
dCgmc2VuZGVyKTsKLSAgICBpZiAoIXJ0Y1NlbmRlcikKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
YmFja2VuZC0+UmVtb3ZlVHJhY2socnRjU2VuZGVyLmdldCgpKTsKLX0KLQotYm9vbCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjpzaG91bGRPZmZlckFsbG93VG9SZWNlaXZlQXVkaW8oKSBjb25zdAot
ewotICAgIEFTU0VSVCghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53
ZWJSVENVbmlmaWVkUGxhbkVuYWJsZWQoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiB0cmFuc2Nl
aXZlciA6IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5nZXRUcmFuc2NlaXZl
cnMoKSkgewotICAgICAgICBpZiAodHJhbnNjZWl2ZXItPnNlbmRlcigpLnRyYWNrS2luZCgpICE9
ICJhdWRpbyIpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAodHJhbnNjZWl2
ZXItPmRpcmVjdGlvbigpID09IFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uOjpSZWN2b25seSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIGlmICh0cmFuc2NlaXZlci0+ZGly
ZWN0aW9uKCkgPT0gUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb246OlNlbmRyZWN2ICYmICFtX3Nl
bmRlcnMuY29udGFpbnMoJnRyYW5zY2VpdmVyLT5zZW5kZXIoKSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIExpYldlYlJUQ01l
ZGlhRW5kcG9pbnQ6OnNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVWaWRlbygpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJU
Q1VuaWZpZWRQbGFuRW5hYmxlZCgpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYW5zY2VpdmVy
IDogbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpLmdldFRyYW5zY2VpdmVycygp
KSB7Ci0gICAgICAgIGlmICh0cmFuc2NlaXZlci0+c2VuZGVyKCkudHJhY2tLaW5kKCkgIT0gInZp
ZGVvIikKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICh0cmFuc2NlaXZlci0+
ZGlyZWN0aW9uKCkgPT0gUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb246OlJlY3Zvbmx5KQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKHRyYW5zY2VpdmVyLT5kaXJlY3Rp
b24oKSA9PSBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbjo6U2VuZHJlY3YgJiYgIW1fc2VuZGVy
cy5jb250YWlucygmdHJhbnNjZWl2ZXItPnNlbmRlcigpKSkKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgbV9iYWNrZW5kLT5SZW1vdmVUcmFj
ayhzZW5kZXIucnRjU2VuZGVyKCkpOwogfQogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OmRvQ3JlYXRlT2ZmZXIoY29uc3QgUlRDT2ZmZXJPcHRpb25zJiBvcHRpb25zKQpAQCAtMjg4LDkg
KzI1NSw5IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmZlcihjb25z
dCBSVENPZmZlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcnRjT3B0aW9ucy52b2ljZV9hY3Rpdml0
eV9kZXRlY3Rpb24gPSBvcHRpb25zLnZvaWNlQWN0aXZpdHlEZXRlY3Rpb247CiAKICAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDVW5pZmllZFBs
YW5FbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVBdWRp
bygpKQorICAgICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuc2hvdWxkT2ZmZXJBbGxv
d1RvUmVjZWl2ZSgiYXVkaW8iKSkKICAgICAgICAgICAgIHJ0Y09wdGlvbnMub2ZmZXJfdG9fcmVj
ZWl2ZV9hdWRpbyA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ09mZmVyQW5z
d2VyT3B0aW9uczo6a09mZmVyVG9SZWNlaXZlTWVkaWFUcnVlOwotICAgICAgICBpZiAoc2hvdWxk
T2ZmZXJBbGxvd1RvUmVjZWl2ZVZpZGVvKCkpCisgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC5zaG91bGRPZmZlckFsbG93VG9SZWNlaXZlKCJ2aWRlbyIpKQogICAgICAgICAgICAg
cnRjT3B0aW9ucy5vZmZlcl90b19yZWNlaXZlX3ZpZGVvID0gd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6UlRDT2ZmZXJBbnN3ZXJPcHRpb25zOjprT2ZmZXJUb1JlY2VpdmVNZWRpYVRy
dWU7CiAgICAgfQogICAgIG1fYmFja2VuZC0+Q3JlYXRlT2ZmZXIoJm1fY3JlYXRlU2Vzc2lvbkRl
c2NyaXB0aW9uT2JzZXJ2ZXIsIHJ0Y09wdGlvbnMpOwpAQCAtNDcwLDcgKzQzNyw2IEBAIHZvaWQg
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6c3RvcCgpCiAgICAgbV9iYWNrZW5kLT5DbG9zZSgpOwog
ICAgIG1fYmFja2VuZCA9IG51bGxwdHI7CiAgICAgbV9zdHJlYW1zLmNsZWFyKCk7Ci0gICAgbV9z
ZW5kZXJzLmNsZWFyKCk7CiB9CiAKIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6T25SZW5l
Z290aWF0aW9uTmVlZGVkKCkKQEAgLTYxNCwxNCArNTgwLDYgQEAgdm9pZCBMaWJXZWJSVENNZWRp
YUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25GYWlsZWQoY29uc3Qgc3RkOjpz
dHJpbmcKICAgICB9KTsKIH0KIAotUlRDUnRwUGFyYW1ldGVycyBMaWJXZWJSVENNZWRpYUVuZHBv
aW50OjpnZXRSVENSdHBTZW5kZXJQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQotewot
ICAgIGF1dG8gcnRjU2VuZGVyID0gbV9zZW5kZXJzLmdldCgmc2VuZGVyKTsKLSAgICBpZiAoIXJ0
Y1NlbmRlcikKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gZmlsbFJ0cFBhcmFtZXRl
cnMocnRjU2VuZGVyLT5HZXRQYXJhbWV0ZXJzKCkpOwotfQotCiB2b2lkIExpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6OmdhdGhlclN0YXRzRm9yTG9nZ2luZygpCiB7CiAgICAgTGliV2ViUlRDUHJvdmlk
ZXI6OmNhbGxPbldlYlJUQ1NpZ25hbGluZ1RocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXgg
YjcxNzQ5NWYxOGM1Y2IzYzc4YzIyYmZhYjllYWRlZWU0ZWFmNzNkOC4uZjJiYTZiYzUyNWEzMmVm
NDJjNDQ4MjA4ZjEzNmMwNjc0M2UwYWJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuaApAQCAtNjEsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIExpYldlYlJUQ1Byb3ZpZGVyOwogY2xhc3MgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOworY2xhc3MgTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZDsKIGNsYXNzIE1lZGlhU3RyZWFt
VHJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiAKQEAgLTk3LDkgKzk4LDggQEAg
cHVibGljOgogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHBlbmRpbmdMb2NhbERl
c2NyaXB0aW9uKCkgY29uc3Q7CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7CiAKLSAgICBib29sIGFkZFRyYWNrKFJUQ1J0
cFNlbmRlciYsIE1lZGlhU3RyZWFtVHJhY2smLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAg
IHZvaWQgcmVtb3ZlVHJhY2soUlRDUnRwU2VuZGVyJik7Ci0gICAgUlRDUnRwUGFyYW1ldGVycyBn
ZXRSVENSdHBTZW5kZXJQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRlciYpOworICAgIGJvb2wgYWRkVHJh
Y2soTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCYsIE1lZGlhU3RyZWFtVHJhY2smLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpOworICAgIHZvaWQgcmVtb3ZlVHJhY2soTGliV2ViUlRDUnRwU2VuZGVy
QmFja2VuZCYpOwogCiBwcml2YXRlOgogICAgIExpYldlYlJUQ01lZGlhRW5kcG9pbnQoTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kJiwgTGliV2ViUlRDUHJvdmlkZXImKTsKQEAgLTE0Miw5
ICsxNDIsNiBAQCBwcml2YXRlOgogICAgICAgICA6IHJ0Yzo6UmVmQ291bnRSZWxlYXNlU3RhdHVz
OjprRHJvcHBlZExhc3RSZWY7CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRPZmZlckFsbG93VG9S
ZWNlaXZlQXVkaW8oKSBjb25zdDsKLSAgICBib29sIHNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVW
aWRlbygpIGNvbnN0OwotCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ2dlci5nZXQoKTsgfQogICAg
IGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lk
ZW50aWZpZXI7IH0KQEAgLTE2Nyw3ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIFNldFJlbW90ZVNl
c3Npb25EZXNjcmlwdGlvbk9ic2VydmVyPExpYldlYlJUQ01lZGlhRW5kcG9pbnQ+IG1fc2V0UmVt
b3RlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI7CiAKICAgICBIYXNoTWFwPHdlYnJ0Yzo6TWVk
aWFTdHJlYW1JbnRlcmZhY2UqLCBSZWZQdHI8TWVkaWFTdHJlYW0+PiBtX3N0cmVhbXM7Ci0gICAg
SGFzaE1hcDxSVENSdHBTZW5kZXIqLCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBTZW5k
ZXJJbnRlcmZhY2U+PiBtX3NlbmRlcnM7CiAKICAgICBib29sIG1faXNJbml0aWF0b3IgeyBmYWxz
ZSB9OwogICAgIFRpbWVyIG1fc3RhdHNMb2dUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGM3YzA2NDRiNzQ3YzY1
N2Q0NGNhMzBjZDgwNzUyZWM1OGM3YTBkZDYuLjQ2MWViNWFkMmI0NmYzODdjMzhjODFkMThlMjQw
NDk4OWE1MzVmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5oIgogI2luY2x1ZGUgIlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIgorI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zMzEsNiArMzMyLDExIEBAIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVtb3RlRGVzY3JpcHRpb24oCiAgICAgcmV0dXJuIG1f
ZW5kcG9pbnQtPnJlbW90ZURlc2NyaXB0aW9uKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgTGliV2Vi
UlRDUnRwU2VuZGVyQmFja2VuZCYgYmFja2VuZEZyb21SVFBTZW5kZXIoUlRDUnRwU2VuZGVyJiBz
ZW5kZXIpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PExpYldlYlJUQ1J0cFNlbmRlckJhY2tl
bmQmPigqc2VuZGVyLmJhY2tlbmQoKSk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTZW5k
ZXI+PiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZFRyYWNrKFJUQ1J0cFNlbmRl
ciogc2VuZGVyLCBNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgY29uc3QgVmVjdG9yPFN0cmluZz4m
IG1lZGlhU3RyZWFtSWRzKQogewogICAgIGlmICghc2VuZGVyKSB7CkBAIC0zNTEsNyArMzU3LDcg
QEAgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFNlbmRlcj4+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6YWRkVHJhY2soUlRDUnRwU2UKICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJ
bnRlcm5hbFRyYW5zY2VpdmVyKFdURk1vdmUodHJhbnNjZWl2ZXIpKTsKICAgICB9CiAKLSAgICBp
ZiAoIW1fZW5kcG9pbnQtPmFkZFRyYWNrKCpzZW5kZXIsIHRyYWNrLCBtZWRpYVN0cmVhbUlkcykp
CisgICAgaWYgKCFtX2VuZHBvaW50LT5hZGRUcmFjayhiYWNrZW5kRnJvbVJUUFNlbmRlcigqc2Vu
ZGVyKSwgdHJhY2ssIG1lZGlhU3RyZWFtSWRzKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIlVuYWJsZSB0byBhZGQgdHJhY2siX3MgfTsKIAogICAgIHJldHVybiBtYWtl
UmVmKCpzZW5kZXIpOwpAQCAtMzY3LDggKzM3Myw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBU
cmFuc2NlaXZlcj4+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2
CiBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmFkZFRyYW5zY2VpdmVyKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNr
LCBjb25zdCBSVENSdHBUcmFuc2NlaXZlckluaXQmIGluaXQpCiB7CiAgICAgYXV0byBzZW5kZXJC
YWNrZW5kID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kPigqdGhp
cywgbnVsbHB0cik7CisgICAgYXV0byYgYmFja2VuZCA9ICpzZW5kZXJCYWNrZW5kOwogICAgIGF1
dG8gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUodHJhY2suY29weVJlZigpLCBWZWN0b3I8
U3RyaW5nPigpLCBXVEZNb3ZlKHNlbmRlckJhY2tlbmQpKTsKLSAgICBpZiAoIW1fZW5kcG9pbnQt
PmFkZFRyYWNrKHNlbmRlci5nZXQoKSwgdHJhY2ssIFZlY3RvcjxTdHJpbmc+IHsgfSkpCisgICAg
aWYgKCFtX2VuZHBvaW50LT5hZGRUcmFjayhiYWNrZW5kLCB0cmFjaywgVmVjdG9yPFN0cmluZz4g
eyB9KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlVu
YWJsZSB0byBhZGQgdHJhY2siX3MgfTsKIAogICAgIHJldHVybiBjb21wbGV0ZUFkZFRyYW5zY2Vp
dmVyKFdURk1vdmUoc2VuZGVyKSwgaW5pdCwgdHJhY2stPmlkKCksIHRyYWNrLT5raW5kKCkpOwpA
QCAtMzg2LDkgKzM5Myw5IEBAIFJlZjxSVENSdHBUcmFuc2NlaXZlcj4gTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpjb21wbGV0ZUFkZFRyYW5zY2VpdmVyKFJlCiAgICAgcmV0dXJuIHRy
YW5zY2VpdmVyOwogfQogCi12b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6bm90
aWZ5UmVtb3ZlZFRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQordm9pZCBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OnJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQogewot
ICAgIG1fZW5kcG9pbnQtPnJlbW92ZVRyYWNrKHNlbmRlcik7CisgICAgbV9lbmRwb2ludC0+cmVt
b3ZlVHJhY2soYmFja2VuZEZyb21SVFBTZW5kZXIoc2VuZGVyKSk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFNvdXJjZT4KQEAgLTQ0NCwxNyArNDUxLDMyIEBAIHZvaWQgTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIFJlZlB0
cjxNCiAgICAgfQogfQogCi1SVENSdHBQYXJhbWV0ZXJzIExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6Z2V0UGFyYW1ldGVycyhSVENSdHBTZW5kZXImIHNlbmRlcikgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9lbmRwb2ludC0+Z2V0UlRDUnRwU2VuZGVyUGFyYW1ldGVycyhzZW5kZXIpOwot
fQotCiB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YXBwbHlSb3RhdGlvbkZv
ck91dGdvaW5nVmlkZW9Tb3VyY2VzKCkKIHsKICAgICBmb3IgKGF1dG8mIHNvdXJjZSA6IG1fdmlk
ZW9Tb3VyY2VzKQogICAgICAgICBzb3VyY2UtPnNldEFwcGx5Um90YXRpb24odHJ1ZSk7CiB9CiAK
K2Jvb2wgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzaG91bGRPZmZlckFsbG93VG9S
ZWNlaXZlKGNvbnN0IGNoYXIqIGtpbmQpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ1VuaWZpZWRQbGFuRW5hYmxlZCgp
KTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYW5zY2VpdmVyIDogbV9wZWVyQ29ubmVjdGlvbi5n
ZXRUcmFuc2NlaXZlcnMoKSkgeworICAgICAgICBpZiAodHJhbnNjZWl2ZXItPnNlbmRlcigpLnRy
YWNrS2luZCgpICE9IGtpbmQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAo
dHJhbnNjZWl2ZXItPmRpcmVjdGlvbigpID09IFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uOjpS
ZWN2b25seSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICh0cmFuc2Nl
aXZlci0+ZGlyZWN0aW9uKCkgIT0gUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb246OlNlbmRyZWN2
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byYgYmFja2VuZCA9IHN0YXRp
Y19jYXN0PExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQmPigqdHJhbnNjZWl2ZXItPnNlbmRlcigp
LmJhY2tlbmQoKSk7CisgICAgICAgIGlmICghYmFja2VuZC5ydGNTZW5kZXIoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCmluZGV4IGQxMGJiMWE2
NTQ1MDkzMzMwYmU5YjZmNzI0ZWI5YWY2MThkYzYyYzEuLmI1NWYwY2YyZDQ5Yjg1NTgxMWU4N2Y2
ODkzZDFjNTljZmQxNTA1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC01Niw3ICs1Niw4IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc1ZpZGVvU291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Tb3VyY2VzLnNpemUoKTsg
fQogCiAgICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2s+JiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICBSVENSdHBQYXJh
bWV0ZXJzIGdldFBhcmFtZXRlcnMoUlRDUnRwU2VuZGVyJikgY29uc3Q7CisKKyAgICBib29sIHNo
b3VsZE9mZmVyQWxsb3dUb1JlY2VpdmUoY29uc3QgY2hhciopIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZG9DcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJikgZmluYWw7CkBAIC05MCw3
ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTdGF0c1N1Y2NlZWRlZChjb25zdCBEZWZl
cnJlZFByb21pc2UmLCBSZWY8UlRDU3RhdHNSZXBvcnQ+JiYpOwogCiAgICAgRXhjZXB0aW9uT3I8
UmVmPFJUQ1J0cFNlbmRlcj4+IGFkZFRyYWNrKFJUQ1J0cFNlbmRlciosIE1lZGlhU3RyZWFtVHJh
Y2smLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5UmVtb3Zl
ZFRyYWNrKFJUQ1J0cFNlbmRlciYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVHJhY2soUlRDUnRw
U2VuZGVyJikgZmluYWw7CiAKICAgICBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+
PiBhZGRUcmFuc2NlaXZlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENSdHBUcmFuc2NlaXZlcklu
aXQmKSBmaW5hbDsKICAgICBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBhZGRU
cmFuc2NlaXZlcihSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2
ZXJJbml0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJh
Y2tlbmQuY3BwCmluZGV4IDM2ODYzYTk0MmM4ZWQzMzY5OWIwODEyNDZjZDY3ZDY4ODZjZmVjMWYu
LjJiMjczNWMyNzRiNjUyYjRiODgyOTU5ZmU3ZDFhMmRhMDc0YmEwZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNl
bmRlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwCkBAIC00OSwxNCArNDksMTEg
QEAgdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kOjpyZXBsYWNlVHJhY2soUlRDUnRwU2Vu
ZGVyJiBzZW5kZXIsIFJlZlB0cjxNZWRpYVMKICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC0+
cmVwbGFjZVRyYWNrKHNlbmRlciwgV1RGTW92ZSh0cmFjayksIFdURk1vdmUocHJvbWlzZSkpOwog
fQogCi1SVENSdHBQYXJhbWV0ZXJzIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ6OmdldFBhcmFt
ZXRlcnMoUlRDUnRwU2VuZGVyJiBzZW5kZXIpIGNvbnN0CitSVENSdHBQYXJhbWV0ZXJzIExpYldl
YlJUQ1J0cFNlbmRlckJhY2tlbmQ6OmdldFBhcmFtZXRlcnMoKSBjb25zdAogewotICAgIGlmICgh
bV9ydGNTZW5kZXIpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVlZCB0byBn
byB0aHJvdWdoIHRoZSBiYWNrZW5kIGFuZCBzaG91bGQgZGlyZWN0bHkgaGF2ZSBtX3J0Y1NlbmRl
ciBoZXJlLgotICAgICAgICBpZiAoIW1fcGVlckNvbm5lY3Rpb25CYWNrZW5kKQotICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgcmV0dXJuIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLT5n
ZXRQYXJhbWV0ZXJzKHNlbmRlcik7Ci0gICAgfQorICAgIGlmICghbV9ydGNTZW5kZXIpCisgICAg
ICAgIHJldHVybiB7IH07CisKICAgICByZXR1cm4gZmlsbFJ0cFBhcmFtZXRlcnMobV9ydGNTZW5k
ZXItPkdldFBhcmFtZXRlcnMoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQuaAppbmRleCAzZmQzMzFhODlhYmVkMmUxMzVmNTQwOTEwZDFhOTdmZDYw
YWZkNTgyLi4yNGIxYjFiYzdkNDY2NDgxZDgxZjc0NjY1ZDljNzc2MjUyMDE3MThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBTZW5kZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oCkBAIC01MCwxMCArNTAs
MTIgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLXByaXZhdGU6CiAgICAgdm9pZCBzZXRSVENT
ZW5kZXIocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiYmIHJ0
Y1NlbmRlcikgeyBtX3J0Y1NlbmRlciA9IFdURk1vdmUocnRjU2VuZGVyKTsgfQorICAgIHdlYnJ0
Yzo6UnRwU2VuZGVySW50ZXJmYWNlKiBydGNTZW5kZXIoKSB7IHJldHVybiBtX3J0Y1NlbmRlci5n
ZXQoKTsgfQorCitwcml2YXRlOgogICAgIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYs
IFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikg
ZmluYWw7Ci0gICAgUlRDUnRwUGFyYW1ldGVycyBnZXRQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRlciYp
IGNvbnN0IGZpbmFsOworICAgIFJUQ1J0cFBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVycygpIGNvbnN0
IGZpbmFsOwogCiAgICAgV2Vha1B0cjxMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ+IG1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kOwogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlJ0
cFNlbmRlckludGVyZmFjZT4gbV9ydGNTZW5kZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348870</attachid>
            <date>2018-09-04 16:31:51 -0700</date>
            <delta_ts>2018-09-04 17:04:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189270-20180904163151.patch</filename>
            <type>text/plain</type>
            <size>21828</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkzODIzMzhkOGM2MWY2
Y2M5YTY5MDQ3M2JiNzBlODFmOTliYmU0MS4uMmUyZGQzNDQxZWUyYzU4OTMyOWQ2ZTU5ODgyOGJl
ZTYwNTg1M2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA5LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIExpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQgb3duIGl0cyBsaWJ3ZWJydGMgUlRQIHNlbmRlciBiYWNrZW5kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkyNzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhl
IGxpYndlYnJ0YyBzZW5kZXJzIHdlcmUgb3duZWQgaW4gTGliV2ViUlRDTWVkaWFFbmRwb2ludC4K
KyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyB0aGVtIGJlIG93bmVkIGJ5IExpYldlYlJUQ1J0cFNl
bmRlckJhY2tlbmQuCisgICAgICAgIFRoaXMgc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24g
b2YgUlRDUnRwU2VuZGVyOjpnZXRQYXJhbWV0ZXJzLgorICAgICAgICBUaGlzIHdpbGwgaGVscCBz
aW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24gb2YgUlRDUnRwU2VuZGVyOjpyZXBsYWNlVHJhY2su
CisKKyAgICAgICAgcmVtb3ZlVHJhY2sgaXMgYWxzbyByZWZhY3RvcmVkIHNvIHRoYXQgTGliV2Vi
UlRDTWVkaWFFbmRwb2ludCBkaXJlY3RseSB1c2VzIGxpYndlYnJ0YyBjb25zdHJ1Y3RzIGFuZCBu
b3QgV2ViQ29yZSBsaWJ3ZWJydGMtYWdub3N0aWMgb25lcy4KKworICAgICAgICBObyBjaGFuZ2Ug
b2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpy
ZW1vdmVUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5v
dGlmeVJlbW92ZWRUcmFjayk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbjo6cmVtb3ZlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6Z2V0UGFyYW1ldGVy
cyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6YmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTZW5kZXJCYWNrZW5kLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZW1vdmVUcmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6c2hvdWxkT2ZmZXJBbGxvd1RvUmVjZWl2ZUF1ZGlvIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVWaWRlbyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpnZXRSVENSdHBTZW5kZXJQYXJhbWV0
ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmJhY2tlbmRGcm9tUlRQU2VuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRUcmFuc2NlaXZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnJlbW92ZVRyYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6c2hvdWxkT2Zm
ZXJBbGxvd1RvUmVjZWl2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6Om5vdGlmeVJlbW92ZWRUcmFjayk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmdldFBhcmFtZXRlcnMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZDo6Z2V0UGFyYW1ldGVycyBjb25z
dCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
U2VuZGVyQmFja2VuZC5oOgorCiAyMDE4LTA5LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENTUyByZWZlcmVuY2UgZmlsdGVyIHRoYXQgcmVmZXJl
bmNlcyBhIHRpbGVkIGZlVHVyYnVsZW5jZSBpcyBibGFuawpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5k
ZXggOTVlMGY5OTMyY2FlMGU1YWY0ZjdiMjk0ZTM4ZGQ0MTk1MDY0ZmM4Mi4uNjI5MmRlODYxM2Fj
ZTNjMDViNThiNWFiZjliNjUxMDI3MTc4NTdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBAIC0x
MDIsNyArMTAyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBSZWY8UlRDUnRwUmVjZWl2ZXI+
IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJhbnNjZWl2ZXJNaWQsIGNvbnN0IFN0cmlu
ZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNrSWQpID0gMDsKICAgICB2aXJ0dWFsIEV4
Y2VwdGlvbk9yPFJlZjxSVENSdHBTZW5kZXI+PiBhZGRUcmFjayhSVENSdHBTZW5kZXIqLCBNZWRp
YVN0cmVhbVRyYWNrJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5UmVtb3ZlZFRyYWNrKFJUQ1J0cFNlbmRlciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVUcmFjayhSVENSdHBTZW5kZXImKSB7IH0KIAogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8
UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gYWRkVHJhbnNjZWl2ZXIoY29uc3QgU3RyaW5nJiwgY29u
c3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jik7CiAgICAgdmlydHVhbCBFeGNlcHRpb25PcjxSZWY8
UlRDUnRwVHJhbnNjZWl2ZXI+PiBhZGRUcmFuc2NlaXZlcihSZWY8TWVkaWFTdHJlYW1UcmFjaz4m
JiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDMx
ZTY5ZTIxNmI0OWU0NDQ0M2QyMmIyYjRjNDFjYTE4YWVjZWViZTguLjJhNWExM2UwYTA4ODY4OGJk
YjJlY2QzYTRkODAyYjY5NzE4MDBlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xNTcsOSArMTU3
LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVRyYWNrKFJU
Q1J0cFNlbmRlciYgc2VuZGVyKQogICAgIGlmIChzaG91bGRBYm9ydCkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAorICAgIG1fYmFja2VuZC0+cmVtb3ZlVHJhY2soc2VuZGVyKTsKICAgICBzZW5kZXIu
c3RvcCgpOwotCi0gICAgbV9iYWNrZW5kLT5ub3RpZnlSZW1vdmVkVHJhY2soc2VuZGVyKTsKICAg
ICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKaW5kZXggNmEzZDFiY2Q5MDg4NmUwMzNkNTEyNGRjOWQ0
ZWI0YjZkZmRmYjc0Yy4uNWFjZGQ0NjZmNDkzNDA0OWMzYjQ5N2YwM2ZjY2Q3OTY2NjQ3YmZlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5k
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmNwcApAQCAtOTYsNyArOTYsNyBAQCBSVENSdHBQYXJhbWV0ZXJzIFJUQ1J0cFNlbmRlcjo6
Z2V0UGFyYW1ldGVycygpCiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1cm4g
eyB9OwotICAgIHJldHVybiBtX2JhY2tlbmQtPmdldFBhcmFtZXRlcnMoKnRoaXMpOworICAgIHJl
dHVybiBtX2JhY2tlbmQtPmdldFBhcmFtZXRlcnMoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Vu
ZGVyLmgKaW5kZXggNGUxZTRiNWUzYTdmYTVmN2QxN2MwZGY3MzQ5NmY2ZWFkMjBlZjFlZi4uYTVk
MzA5MjRlM2EwM2JhNzQxZWVmODk4NWUwZTc1MDNiYmJkOWE5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCkBAIC01Nyw2ICs1Nyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcGxhY2VUcmFjayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
az4mJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCiAgICAgUlRDUnRwUGFyYW1ldGVy
cyBnZXRQYXJhbWV0ZXJzKCk7CisgICAgUlRDUnRwU2VuZGVyQmFja2VuZCogYmFja2VuZCgpIHsg
cmV0dXJuIG1fYmFja2VuZC5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFJUQ1J0cFNlbmRlcihT
dHJpbmcmJiB0cmFja0tpbmQsIFZlY3RvcjxTdHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMsIHN0ZDo6
dW5pcXVlX3B0cjxSVENSdHBTZW5kZXJCYWNrZW5kPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyQmFja2VuZC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXJCYWNrZW5kLmgKaW5kZXgg
NWQyNThhNGMzZTljZjQ5MTUzODI2NDg2ODE2NjE3MmZmYzQwYTRkNS4uNDc2NTQzYzk4YzZmYTZj
YTQ2NTAxNWMxYmM1OGZjZWU3YTk3YTQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXJCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXJCYWNrZW5kLmgKQEAgLTM3LDcgKzM3
LDcgQEAgY2xhc3MgUlRDUnRwU2VuZGVyOwogY2xhc3MgUlRDUnRwU2VuZGVyQmFja2VuZCB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImLCBSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpID0gMDsK
LSAgICB2aXJ0dWFsIFJUQ1J0cFBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVycyhSVENSdHBTZW5kZXIm
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSVENSdHBQYXJhbWV0ZXJzIGdldFBhcmFtZXRlcnMo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB+UlRDUnRwU2VuZGVyQmFja2VuZCgpID0gZGVmYXVs
dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5k
ZXggYjVlYmI3ZDM1NmM4Mjk0NWVlODI0MTkxYzE1N2E0Yzk2ZWMxMGRlZS4uOThjYmVlNWM1YTM0
NTBmMjYwZDYyNjBlYjdlNDE5OWU0ODQ4YWY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5jcHAKQEAgLTE5NCw5ICsxOTQsMTAgQEAgdm9pZCBMaWJXZWJSVENN
ZWRpYUVuZHBvaW50Ojpkb1NldFJlbW90ZURlc2NyaXB0aW9uKFJUQ1Nlc3Npb25EZXNjcmlwdGlv
biYgZGVzY3IKICAgICBzdGFydExvZ2dpbmdTdGF0cygpOwogfQogCi1ib29sIExpYldlYlJUQ01l
ZGlhRW5kcG9pbnQ6OmFkZFRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBNZWRpYVN0cmVhbVRy
YWNrJiB0cmFjaywgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1lZGlhU3RyZWFtSWRzKQorYm9vbCBM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRUcmFjayhMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5k
JiBzZW5kZXIsIE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
bWVkaWFTdHJlYW1JZHMpCiB7CiAgICAgQVNTRVJUKG1fYmFja2VuZCk7CisgICAgQVNTRVJUKCFz
ZW5kZXIucnRjU2VuZGVyKCkpOwogCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYlJUQ1VuaWZpZWRQbGFuRW5hYmxlZCgpKSB7CiAgICAgICAgIFN0
cmluZyBtZWRpYVN0cmVhbUlkID0gbWVkaWFTdHJlYW1JZHMuaXNFbXB0eSgpID8gY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpIDogbWVkaWFTdHJlYW1JZHNbMF07CkBAIC0yMTcsMTggKzIxOCwy
MCBAQCBib29sIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmFkZFRyYWNrKFJUQ1J0cFNlbmRlciYg
c2VuZGVyLCBNZWRpYVN0cmVhbVRyYWNrJiB0cgogICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBt
X3BlZXJDb25uZWN0aW9uRmFjdG9yeS5DcmVhdGVBdWRpb1RyYWNrKHRyYWNrLmlkKCkudXRmOCgp
LmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOwogICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5hZGRBdWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAgIGF1dG8g
cnRwU2VuZGVyID0gbV9iYWNrZW5kLT5BZGRUcmFjayhhdWRpb1RyYWNrLmdldCgpLCBXVEZNb3Zl
KGlkcykpOwotICAgICAgICBpZiAocnRwU2VuZGVyLm9rKCkpCi0gICAgICAgICAgICBtX3NlbmRl
cnMuYWRkKCZzZW5kZXIsIHJ0cFNlbmRlci5Nb3ZlVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBy
dHBTZW5kZXIub2soKTsKKyAgICAgICAgaWYgKCFydHBTZW5kZXIub2soKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgc2VuZGVyLnNldFJUQ1NlbmRlcihydHBTZW5kZXIuTW92
ZVZhbHVlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzogewogICAgICAgICBhdXRvIHZpZGVvU291cmNlID0g
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpjcmVhdGUodHJhY2sucHJpdmF0ZVRyYWNrKCkp
OwogICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBtX3BlZXJDb25uZWN0aW9uRmFjdG9yeS5DcmVh
dGVWaWRlb1RyYWNrKHRyYWNrLmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkp
OwogICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3Zl
KHZpZGVvU291cmNlKSk7CiAgICAgICAgIGF1dG8gcnRwU2VuZGVyID0gbV9iYWNrZW5kLT5BZGRU
cmFjayh2aWRlb1RyYWNrLmdldCgpLCBXVEZNb3ZlKGlkcykpOwotICAgICAgICBpZiAocnRwU2Vu
ZGVyLm9rKCkpCi0gICAgICAgICAgICBtX3NlbmRlcnMuYWRkKCZzZW5kZXIsIHJ0cFNlbmRlci5N
b3ZlVmFsdWUoKSk7Ci0gICAgICAgIHJldHVybiBydHBTZW5kZXIub2soKTsKKyAgICAgICAgaWYg
KCFydHBTZW5kZXIub2soKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgc2Vu
ZGVyLnNldFJUQ1NlbmRlcihydHBTZW5kZXIuTW92ZVZhbHVlKCkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIzNiw0NiArMjM5LDEwIEBAIGJvb2wg
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRkVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1l
ZGlhU3RyZWFtVHJhY2smIHRyCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIExpYldlYlJU
Q01lZGlhRW5kcG9pbnQ6OnJlbW92ZVRyYWNrKFJUQ1J0cFNlbmRlciYgc2VuZGVyKQordm9pZCBM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZW1vdmVUcmFjayhMaWJXZWJSVENSdHBTZW5kZXJCYWNr
ZW5kJiBzZW5kZXIpCiB7CiAgICAgQVNTRVJUKG1fYmFja2VuZCk7Ci0KLSAgICBhdXRvIHJ0Y1Nl
bmRlciA9IG1fc2VuZGVycy5nZXQoJnNlbmRlcik7Ci0gICAgaWYgKCFydGNTZW5kZXIpCi0gICAg
ICAgIHJldHVybjsKLSAgICBtX2JhY2tlbmQtPlJlbW92ZVRyYWNrKHJ0Y1NlbmRlci5nZXQoKSk7
Ci19Ci0KLWJvb2wgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6c2hvdWxkT2ZmZXJBbGxvd1RvUmVj
ZWl2ZUF1ZGlvKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDVW5pZmllZFBsYW5FbmFibGVkKCkpOwotICAgIGZvciAo
Y29uc3QgYXV0byYgdHJhbnNjZWl2ZXIgOiBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0
aW9uKCkuZ2V0VHJhbnNjZWl2ZXJzKCkpIHsKLSAgICAgICAgaWYgKHRyYW5zY2VpdmVyLT5zZW5k
ZXIoKS50cmFja0tpbmQoKSAhPSAiYXVkaW8iKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAg
ICAgICAgaWYgKHRyYW5zY2VpdmVyLT5kaXJlY3Rpb24oKSA9PSBSVENSdHBUcmFuc2NlaXZlckRp
cmVjdGlvbjo6UmVjdm9ubHkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBp
ZiAodHJhbnNjZWl2ZXItPmRpcmVjdGlvbigpID09IFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9u
OjpTZW5kcmVjdiAmJiAhbV9zZW5kZXJzLmNvbnRhaW5zKCZ0cmFuc2NlaXZlci0+c2VuZGVyKCkp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotYm9vbCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzaG91bGRPZmZlckFsbG93VG9SZWNlaXZl
VmlkZW8oKSBjb25zdAotewotICAgIEFTU0VSVCghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS53ZWJSVENVbmlmaWVkUGxhbkVuYWJsZWQoKSk7Ci0gICAgZm9yIChjb25z
dCBhdXRvJiB0cmFuc2NlaXZlciA6IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24o
KS5nZXRUcmFuc2NlaXZlcnMoKSkgewotICAgICAgICBpZiAodHJhbnNjZWl2ZXItPnNlbmRlcigp
LnRyYWNrS2luZCgpICE9ICJ2aWRlbyIpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAg
ICBpZiAodHJhbnNjZWl2ZXItPmRpcmVjdGlvbigpID09IFJUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0
aW9uOjpSZWN2b25seSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIGlmICh0
cmFuc2NlaXZlci0+ZGlyZWN0aW9uKCkgPT0gUlRDUnRwVHJhbnNjZWl2ZXJEaXJlY3Rpb246OlNl
bmRyZWN2ICYmICFtX3NlbmRlcnMuY29udGFpbnMoJnRyYW5zY2VpdmVyLT5zZW5kZXIoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIG1f
YmFja2VuZC0+UmVtb3ZlVHJhY2soc2VuZGVyLnJ0Y1NlbmRlcigpKTsKIH0KIAogdm9pZCBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKGNvbnN0IFJUQ09mZmVyT3B0aW9ucyYg
b3B0aW9ucykKQEAgLTI4OCw5ICsyNTUsOSBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OmRvQ3JlYXRlT2ZmZXIoY29uc3QgUlRDT2ZmZXJPcHRpb25zJiBvcHRpb25zKQogICAgIHJ0Y09w
dGlvbnMudm9pY2VfYWN0aXZpdHlfZGV0ZWN0aW9uID0gb3B0aW9ucy52b2ljZUFjdGl2aXR5RGV0
ZWN0aW9uOwogCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLndlYlJUQ1VuaWZpZWRQbGFuRW5hYmxlZCgpKSB7Ci0gICAgICAgIGlmIChzaG91bGRPZmZl
ckFsbG93VG9SZWNlaXZlQXVkaW8oKSkKKyAgICAgICAgaWYgKG1fcGVlckNvbm5lY3Rpb25CYWNr
ZW5kLnNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmUoImF1ZGlvIl9zKSkKICAgICAgICAgICAgIHJ0
Y09wdGlvbnMub2ZmZXJfdG9fcmVjZWl2ZV9hdWRpbyA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OlJUQ09mZmVyQW5zd2VyT3B0aW9uczo6a09mZmVyVG9SZWNlaXZlTWVkaWFUcnVl
OwotICAgICAgICBpZiAoc2hvdWxkT2ZmZXJBbGxvd1RvUmVjZWl2ZVZpZGVvKCkpCisgICAgICAg
IGlmIChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5zaG91bGRPZmZlckFsbG93VG9SZWNlaXZlKCJ2
aWRlbyJfcykpCiAgICAgICAgICAgICBydGNPcHRpb25zLm9mZmVyX3RvX3JlY2VpdmVfdmlkZW8g
PSB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENPZmZlckFuc3dlck9wdGlvbnM6
OmtPZmZlclRvUmVjZWl2ZU1lZGlhVHJ1ZTsKICAgICB9CiAgICAgbV9iYWNrZW5kLT5DcmVhdGVP
ZmZlcigmbV9jcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlciwgcnRjT3B0aW9ucyk7CkBA
IC00NzAsNyArNDM3LDYgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzdG9wKCkKICAg
ICBtX2JhY2tlbmQtPkNsb3NlKCk7CiAgICAgbV9iYWNrZW5kID0gbnVsbHB0cjsKICAgICBtX3N0
cmVhbXMuY2xlYXIoKTsKLSAgICBtX3NlbmRlcnMuY2xlYXIoKTsKIH0KIAogdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjpPblJlbmVnb3RpYXRpb25OZWVkZWQoKQpAQCAtNjE0LDE0ICs1ODAs
NiBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnNldFJlbW90ZVNlc3Npb25EZXNjcmlw
dGlvbkZhaWxlZChjb25zdCBzdGQ6OnN0cmluZwogICAgIH0pOwogfQogCi1SVENSdHBQYXJhbWV0
ZXJzIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmdldFJUQ1J0cFNlbmRlclBhcmFtZXRlcnMoUlRD
UnRwU2VuZGVyJiBzZW5kZXIpCi17Ci0gICAgYXV0byBydGNTZW5kZXIgPSBtX3NlbmRlcnMuZ2V0
KCZzZW5kZXIpOwotICAgIGlmICghcnRjU2VuZGVyKQotICAgICAgICByZXR1cm4geyB9OwotICAg
IHJldHVybiBmaWxsUnRwUGFyYW1ldGVycyhydGNTZW5kZXItPkdldFBhcmFtZXRlcnMoKSk7Ci19
Ci0KIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Z2F0aGVyU3RhdHNGb3JMb2dnaW5nKCkK
IHsKICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuaAppbmRleCBiNzE3NDk1ZjE4YzVjYjNjNzhjMjJiZmFiOWVhZGVlZTRl
YWY3M2Q4Li5mMmJhNmJjNTI1YTMyZWY0MmM0NDgyMDhmMTM2YzA2NzQzZTBhYmM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENNZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCkBAIC02MSw2ICs2MSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CiBjbGFzcyBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CitjbGFzcyBMaWJXZWJSVENSdHBTZW5kZXJCYWNr
ZW5kOwogY2xhc3MgTWVkaWFTdHJlYW1UcmFjazsKIGNsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bjsKIApAQCAtOTcsOSArOTgsOCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKICAgICBSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdDsKIAot
ICAgIGJvb2wgYWRkVHJhY2soUlRDUnRwU2VuZGVyJiwgTWVkaWFTdHJlYW1UcmFjayYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAgdm9pZCByZW1vdmVUcmFjayhSVENSdHBTZW5kZXImKTsK
LSAgICBSVENSdHBQYXJhbWV0ZXJzIGdldFJUQ1J0cFNlbmRlclBhcmFtZXRlcnMoUlRDUnRwU2Vu
ZGVyJik7CisgICAgYm9vbCBhZGRUcmFjayhMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kJiwgTWVk
aWFTdHJlYW1UcmFjayYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgdm9pZCByZW1vdmVU
cmFjayhMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kJik7CiAKIHByaXZhdGU6CiAgICAgTGliV2Vi
UlRDTWVkaWFFbmRwb2ludChMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQmLCBMaWJXZWJS
VENQcm92aWRlciYpOwpAQCAtMTQyLDkgKzE0Miw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogcnRj
OjpSZWZDb3VudFJlbGVhc2VTdGF0dXM6OmtEcm9wcGVkTGFzdFJlZjsKICAgICB9CiAKLSAgICBi
b29sIHNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmVBdWRpbygpIGNvbnN0OwotICAgIGJvb2wgc2hv
dWxkT2ZmZXJBbGxvd1RvUmVjZWl2ZVZpZGVvKCkgY29uc3Q7Ci0KICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fbG9nZ2VyLmdldCgpOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQpAQCAtMTY3LDcgKzE2NCw2IEBAIHBy
aXZhdGU6CiAgICAgU2V0UmVtb3RlU2Vzc2lvbkRlc2NyaXB0aW9uT2JzZXJ2ZXI8TGliV2ViUlRD
TWVkaWFFbmRwb2ludD4gbV9zZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25PYnNlcnZlcjsKIAog
ICAgIEhhc2hNYXA8d2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZSosIFJlZlB0cjxNZWRpYVN0
cmVhbT4+IG1fc3RyZWFtczsKLSAgICBIYXNoTWFwPFJUQ1J0cFNlbmRlciosIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlJ0cFNlbmRlckludGVyZmFjZT4+IG1fc2VuZGVyczsKIAogICAgIGJv
b2wgbV9pc0luaXRpYXRvciB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9zdGF0c0xvZ1RpbWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5j
cHAKaW5kZXggYzdjMDY0NGI3NDdjNjU3ZDQ0Y2EzMGNkODA3NTJlYzU4YzdhMGRkNi4uNDYxZWI1
YWQyYjQ2ZjM4N2MzOGM4MWQxOGUyNDA0OTg5YTUzNWY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC00Myw2ICs0Myw3
IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzMSw2ICszMzIsMTEgQEAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZW1vdGVEZXNj
cmlwdGlvbigKICAgICByZXR1cm4gbV9lbmRwb2ludC0+cmVtb3RlRGVzY3JpcHRpb24oKTsKIH0K
IAorc3RhdGljIGlubGluZSBMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kJiBiYWNrZW5kRnJvbVJU
UFNlbmRlcihSVENSdHBTZW5kZXImIHNlbmRlcikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCY+KCpzZW5kZXIuYmFja2VuZCgpKTsKK30KKwogRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFNlbmRlcj4+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6YWRkVHJhY2soUlRDUnRwU2VuZGVyKiBzZW5kZXIsIE1lZGlhU3RyZWFtVHJhY2smIHRyYWNr
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFTdHJlYW1JZHMpCiB7CiAgICAgaWYgKCFzZW5k
ZXIpIHsKQEAgLTM1MSw3ICszNTcsNyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4g
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjphZGRUcmFjayhSVENSdHBTZQogICAgICAg
ICBtX3BlZXJDb25uZWN0aW9uLmFkZEludGVybmFsVHJhbnNjZWl2ZXIoV1RGTW92ZSh0cmFuc2Nl
aXZlcikpOwogICAgIH0KIAotICAgIGlmICghbV9lbmRwb2ludC0+YWRkVHJhY2soKnNlbmRlciwg
dHJhY2ssIG1lZGlhU3RyZWFtSWRzKSkKKyAgICBpZiAoIW1fZW5kcG9pbnQtPmFkZFRyYWNrKGJh
Y2tlbmRGcm9tUlRQU2VuZGVyKCpzZW5kZXIpLCB0cmFjaywgbWVkaWFTdHJlYW1JZHMpKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVW5hYmxlIHRvIGFkZCB0cmFjayJf
cyB9OwogCiAgICAgcmV0dXJuIG1ha2VSZWYoKnNlbmRlcik7CkBAIC0zNjcsOCArMzczLDkgQEAg
RXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjphZGRUcmFuc2NlaXYKIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBUcmFuc2NlaXZl
cj4+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1l
ZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIGNvbnN0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCYgaW5p
dCkKIHsKICAgICBhdXRvIHNlbmRlckJhY2tlbmQgPSBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJU
Q1J0cFNlbmRlckJhY2tlbmQ+KCp0aGlzLCBudWxscHRyKTsKKyAgICBhdXRvJiBiYWNrZW5kID0g
KnNlbmRlckJhY2tlbmQ7CiAgICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6OmNyZWF0ZSh0
cmFjay5jb3B5UmVmKCksIFZlY3RvcjxTdHJpbmc+KCksIFdURk1vdmUoc2VuZGVyQmFja2VuZCkp
OwotICAgIGlmICghbV9lbmRwb2ludC0+YWRkVHJhY2soc2VuZGVyLmdldCgpLCB0cmFjaywgVmVj
dG9yPFN0cmluZz4geyB9KSkKKyAgICBpZiAoIW1fZW5kcG9pbnQtPmFkZFRyYWNrKGJhY2tlbmQs
IHRyYWNrLCBWZWN0b3I8U3RyaW5nPiB7IH0pKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVW5hYmxlIHRvIGFkZCB0cmFjayJfcyB9OwogCiAgICAgcmV0
dXJuIGNvbXBsZXRlQWRkVHJhbnNjZWl2ZXIoV1RGTW92ZShzZW5kZXIpLCBpbml0LCB0cmFjay0+
aWQoKSwgdHJhY2stPmtpbmQoKSk7CkBAIC0zODYsOSArMzkzLDkgQEAgUmVmPFJUQ1J0cFRyYW5z
Y2VpdmVyPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNvbXBsZXRlQWRkVHJhbnNj
ZWl2ZXIoUmUKICAgICByZXR1cm4gdHJhbnNjZWl2ZXI7CiB9CiAKLXZvaWQgTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpub3RpZnlSZW1vdmVkVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5k
ZXIpCit2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6cmVtb3ZlVHJhY2soUlRD
UnRwU2VuZGVyJiBzZW5kZXIpCiB7Ci0gICAgbV9lbmRwb2ludC0+cmVtb3ZlVHJhY2soc2VuZGVy
KTsKKyAgICBtX2VuZHBvaW50LT5yZW1vdmVUcmFjayhiYWNrZW5kRnJvbVJUUFNlbmRlcihzZW5k
ZXIpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU291cmNlPgpAQCAtNDQ0LDE3ICs0NTEsMzIg
QEAgdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnJlcGxhY2VUcmFjayhSVENS
dHBTZW5kZXImIHNlbmRlciwgUmVmUHRyPE0KICAgICB9CiB9CiAKLVJUQ1J0cFBhcmFtZXRlcnMg
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpnZXRQYXJhbWV0ZXJzKFJUQ1J0cFNlbmRl
ciYgc2VuZGVyKSBjb25zdAotewotICAgIHJldHVybiBtX2VuZHBvaW50LT5nZXRSVENSdHBTZW5k
ZXJQYXJhbWV0ZXJzKHNlbmRlcik7Ci19Ci0KIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjphcHBseVJvdGF0aW9uRm9yT3V0Z29pbmdWaWRlb1NvdXJjZXMoKQogewogICAgIGZv
ciAoYXV0byYgc291cmNlIDogbV92aWRlb1NvdXJjZXMpCiAgICAgICAgIHNvdXJjZS0+c2V0QXBw
bHlSb3RhdGlvbih0cnVlKTsKIH0KIAorYm9vbCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OnNob3VsZE9mZmVyQWxsb3dUb1JlY2VpdmUoY29uc3QgY2hhcioga2luZCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
UlRDVW5pZmllZFBsYW5FbmFibGVkKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgdHJhbnNjZWl2
ZXIgOiBtX3BlZXJDb25uZWN0aW9uLmdldFRyYW5zY2VpdmVycygpKSB7CisgICAgICAgIGlmICh0
cmFuc2NlaXZlci0+c2VuZGVyKCkudHJhY2tLaW5kKCkgIT0ga2luZCkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIGlmICh0cmFuc2NlaXZlci0+ZGlyZWN0aW9uKCkgPT0gUlRDUnRw
VHJhbnNjZWl2ZXJEaXJlY3Rpb246OlJlY3Zvbmx5KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAgICAgaWYgKHRyYW5zY2VpdmVyLT5kaXJlY3Rpb24oKSAhPSBSVENSdHBUcmFuc2Nl
aXZlckRpcmVjdGlvbjo6U2VuZHJlY3YpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICBhdXRvJiBiYWNrZW5kID0gc3RhdGljX2Nhc3Q8TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCY+
KCp0cmFuc2NlaXZlci0+c2VuZGVyKCkuYmFja2VuZCgpKTsKKyAgICAgICAgaWYgKCFiYWNrZW5k
LnJ0Y1NlbmRlcigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJ
QldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmgKaW5kZXggZDEwYmIxYTY1NDUwOTMzMzBiZTliNmY3MjRlYjlhZjYxOGRjNjJjMS4u
YjU1ZjBjZjJkNDliODU1ODExZTg3ZjY4OTNkMWM1OWNmZDE1MDVmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTU2LDcgKzU2
LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzVmlkZW9Tb3VyY2VzKCkgY29uc3QgeyByZXR1cm4g
bV92aWRlb1NvdXJjZXMuc2l6ZSgpOyB9CiAKICAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENSdHBT
ZW5kZXImLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiwgRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwotICAgIFJUQ1J0cFBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVycyhSVENSdHBTZW5kZXIm
KSBjb25zdDsKKworICAgIGJvb2wgc2hvdWxkT2ZmZXJBbGxvd1RvUmVjZWl2ZShjb25zdCBjaGFy
KikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0
aW9ucyYmKSBmaW5hbDsKQEAgLTkwLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFN0
YXRzU3VjY2VlZGVkKGNvbnN0IERlZmVycmVkUHJvbWlzZSYsIFJlZjxSVENTdGF0c1JlcG9ydD4m
Jik7CiAKICAgICBFeGNlcHRpb25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gYWRkVHJhY2soUlRDUnRw
U2VuZGVyKiwgTWVkaWFTdHJlYW1UcmFjayYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7
Ci0gICAgdm9pZCBub3RpZnlSZW1vdmVkVHJhY2soUlRDUnRwU2VuZGVyJikgZmluYWw7CisgICAg
dm9pZCByZW1vdmVUcmFjayhSVENSdHBTZW5kZXImKSBmaW5hbDsKIAogICAgIEV4Y2VwdGlvbk9y
PFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+IGFkZFRyYW5zY2VpdmVyKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFJUQ1J0cFRyYW5zY2VpdmVySW5pdCYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxS
VENSdHBUcmFuc2NlaXZlcj4+IGFkZFRyYW5zY2VpdmVyKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYm
LCBjb25zdCBSVENSdHBUcmFuc2NlaXZlckluaXQmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRl
ckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5jcHAKaW5kZXggMzY4NjNhOTQyYzhlZDMzNjk5
YjA4MTI0NmNkNjdkNjg4NmNmZWMxZi4uMmIyNzM1YzI3NGI2NTJiNGI4ODI5NTlmZTdkMWEyZGEw
NzRiYTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2Vu
ZC5jcHAKQEAgLTQ5LDE0ICs0OSwxMSBAQCB2b2lkIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ6
OnJlcGxhY2VUcmFjayhSVENSdHBTZW5kZXImIHNlbmRlciwgUmVmUHRyPE1lZGlhUwogICAgIG1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLT5yZXBsYWNlVHJhY2soc2VuZGVyLCBXVEZNb3ZlKHRyYWNr
KSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLVJUQ1J0cFBhcmFtZXRlcnMgTGliV2ViUlRDUnRw
U2VuZGVyQmFja2VuZDo6Z2V0UGFyYW1ldGVycyhSVENSdHBTZW5kZXImIHNlbmRlcikgY29uc3QK
K1JUQ1J0cFBhcmFtZXRlcnMgTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZDo6Z2V0UGFyYW1ldGVy
cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3J0Y1NlbmRlcikgewotICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIG5vdCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGJhY2tlbmQgYW5kIHNob3VsZCBk
aXJlY3RseSBoYXZlIG1fcnRjU2VuZGVyIGhlcmUuCi0gICAgICAgIGlmICghbV9wZWVyQ29ubmVj
dGlvbkJhY2tlbmQpCi0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICByZXR1cm4gbV9w
ZWVyQ29ubmVjdGlvbkJhY2tlbmQtPmdldFBhcmFtZXRlcnMoc2VuZGVyKTsKLSAgICB9CisgICAg
aWYgKCFtX3J0Y1NlbmRlcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgIHJldHVybiBmaWxs
UnRwUGFyYW1ldGVycyhtX3J0Y1NlbmRlci0+R2V0UGFyYW1ldGVycygpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oCmluZGV4IDNmZDMzMWE4OWFi
ZWQyZTEzNWY1NDA5MTBkMWE5N2ZkNjBhZmQ1ODIuLjI0YjFiMWJjN2Q0NjY0ODFkODFmNzQ2NjVk
OWM3NzYyNTIwMTcxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJC
YWNrZW5kLmgKQEAgLTUwLDEwICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotcHJp
dmF0ZToKICAgICB2b2lkIHNldFJUQ1NlbmRlcihydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpS
dHBTZW5kZXJJbnRlcmZhY2U+JiYgcnRjU2VuZGVyKSB7IG1fcnRjU2VuZGVyID0gV1RGTW92ZShy
dGNTZW5kZXIpOyB9CisgICAgd2VicnRjOjpSdHBTZW5kZXJJbnRlcmZhY2UqIHJ0Y1NlbmRlcigp
IHsgcmV0dXJuIG1fcnRjU2VuZGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CiAgICAgdm9pZCByZXBs
YWNlVHJhY2soUlRDUnRwU2VuZGVyJiwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKLSAgICBSVENSdHBQYXJhbWV0ZXJzIGdldFBh
cmFtZXRlcnMoUlRDUnRwU2VuZGVyJikgY29uc3QgZmluYWw7CisgICAgUlRDUnRwUGFyYW1ldGVy
cyBnZXRQYXJhbWV0ZXJzKCkgY29uc3QgZmluYWw7CiAKICAgICBXZWFrUHRyPExpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZD4gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQ7CiAgICAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiBtX3J0Y1NlbmRlcjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>