<?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>158985</bug_id>
          
          <creation_ts>2016-06-21 06:34:22 -0700</creation_ts>
          <short_desc>WebRTC: Add support for the negotiationneeded event in MediaEndpointPeerConnection</short_desc>
          <delta_ts>2016-06-22 11:15:55 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1204121</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-21 06:34:22 -0700</bug_when>
    <thetext>The negotiationneeded event [1] helps the developer to know when an SDP negotiation is needed to reflect local changes to the other peer.

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#session-negotiation-model</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204123</commentid>
    <comment_count>1</comment_count>
      <attachid>281737</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-21 06:48:31 -0700</bug_when>
    <thetext>Created attachment 281737
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204150</commentid>
    <comment_count>2</comment_count>
      <attachid>281737</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-06-21 08:16:21 -0700</bug_when>
    <thetext>Comment on attachment 281737
Proposed patch

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

&gt; LayoutTests/ChangeLog:15
&gt; +        * fast/mediastream/RTCPeerConnection-more-media-to-negotiate-expected.txt: Added.
&gt; +        * fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html: Added.
&gt; +        Verify that a negotiationneeded event is fired when not all local media can be included in
&gt; +        an answer. (The answerer cannot reply with more m-lines than the offer had to begin with.)
&gt; +        * fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt:
&gt; +        * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:

Don&apos;t we also need a test for a stream track entering an ended state? A bug for adding that test is fine if you don&apos;t want to do it in this patch.

Are there any other operations that should generate a &apos;negotiationneeded&apos; event?

&gt; LayoutTests/fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html:10
&gt; +            description(&quot;Test that a negotiationneeded event is fired when all local media can&apos;t be included in an answer&quot;);

Nit: &quot;when all local media can&apos;t be included&quot; -&gt; &quot;when not all local media can be included&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204425</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-21 22:19:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 281737 [details]
&gt; Proposed patch

Thanks for reviewing

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281737&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:15
&gt; &gt; +        * fast/mediastream/RTCPeerConnection-more-media-to-negotiate-expected.txt: Added.
&gt; &gt; +        * fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html: Added.
&gt; &gt; +        Verify that a negotiationneeded event is fired when not all local media can be included in
&gt; &gt; +        an answer. (The answerer cannot reply with more m-lines than the offer had to begin with.)
&gt; &gt; +        * fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt:
&gt; &gt; +        * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
&gt; 
&gt; Don&apos;t we also need a test for a stream track entering an ended state? A bug
&gt; for adding that test is fine if you don&apos;t want to do it in this patch.

We should also test that case. I remember that we&apos;ve talked about an internal test API to emulate events originating from the browser; something like &quot;stopSourceOfTrack(track)&quot;. That would be useful here. About a bug, see next comment.

&gt; Are there any other operations that should generate a &apos;negotiationneeded&apos;
&gt; event?

There&apos;s an issue [1] filed on the WebRTC 1.0 github repo about putting together a table will all cases that must set the &apos;negotiation needed flag&apos;. I&apos;ve also referenced this issue in a new bug about adding more tests [2].

[1] https://github.com/w3c/webrtc-pc/issues/661
[2] http://webkit.org/b/159016


&gt; &gt; LayoutTests/fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html:10
&gt; &gt; +            description(&quot;Test that a negotiationneeded event is fired when all local media can&apos;t be included in an answer&quot;);
&gt; 
&gt; Nit: &quot;when all local media can&apos;t be included&quot; -&gt; &quot;when not all local media
&gt; can be included&quot;

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204426</commentid>
    <comment_count>4</comment_count>
      <attachid>281816</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-06-21 22:32:06 -0700</bug_when>
    <thetext>Created attachment 281816
Updated patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204588</commentid>
    <comment_count>5</comment_count>
      <attachid>281816</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-22 11:15:51 -0700</bug_when>
    <thetext>Comment on attachment 281816
Updated patch for landing

Clearing flags on attachment: 281816

Committed r202339: &lt;http://trac.webkit.org/changeset/202339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204589</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-22 11:15:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281737</attachid>
            <date>2016-06-21 06:48:31 -0700</date>
            <delta_ts>2016-06-21 22:32:06 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>negotiation-needed_0.patch</filename>
            <type>text/plain</type>
            <size>16504</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OTFmMGU2Li44OTI4YjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDYt
MjEgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBuZWdvdGlhdGlvbm5lZWRlZCBldmVudCBp
biBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODk4NQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgdGhl
IFJUQ1BlZXJDb25uZWN0aW9uIG5lZ290aWF0aW9ubmVlZGVkIGV2ZW50LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1tb3JlLW1lZGlhLXRvLW5lZ290aWF0ZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbW9yZS1t
ZWRpYS10by1uZWdvdGlhdGUuaHRtbDogQWRkZWQuCisgICAgICAgIFZlcmlmeSB0aGF0IGEgbmVn
b3RpYXRpb25uZWVkZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBub3QgYWxsIGxvY2FsIG1lZGlhIGNh
biBiZSBpbmNsdWRlZCBpbgorICAgICAgICBhbiBhbnN3ZXIuIChUaGUgYW5zd2VyZXIgY2Fubm90
IHJlcGx5IHdpdGggbW9yZSBtLWxpbmVzIHRoYW4gdGhlIG9mZmVyIGhhZCB0byBiZWdpbiB3aXRo
LikKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3Rp
YXRpb25uZWVkZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sOgorICAgICAgICBWZXJpZnkg
dGhhdCBhIG5lZ290aWF0aW9ubmVlZGVkIGV2ZW50IGlzIGZpcmVkIHdoZW4gdHJhY2tzIGFyZSBh
ZGRlZCBhbmQgcmVtb3ZlZCBmcm9tIGFuCisgICAgICAgIFJUQ1BlZXJDb25uZWN0aW9uLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFRoZSBt
YWMgcG9ydCBkb2VzIG5vdCBidWlsZCB3aXRoIFdFQl9SVEMgZW5hYmxlZCB5ZXQuCisKIDIwMTYt
MDYtMTcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IDppbmRldGVybWluYXRlIHBzZXVkby1jbGFzcyBzaG91bGQgbWF0Y2ggcmFkaW9zIHdob3NlIGdy
b3VwIGhhcyBubyBjaGVja2VkIHJhZGlvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
bW9yZS1tZWRpYS10by1uZWdvdGlhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJjOTNlMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoYXQgYSBuZWdvdGlhdGlvbm5l
ZWRlZCBldmVudCBpcyBmaXJlZCB3aGVuIGFsbCBsb2NhbCBtZWRpYSBjYW4ndCBiZSBpbmNsdWRl
ZCBpbiBhbiBhbnN3ZXIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMu
c2lnbmFsaW5nU3RhdGUgaXMgJ3N0YWJsZScKK0FkZCBsb2NhbCBhdWRpbyBhbmQgdmlkZW8gdHJh
Y2tzIHRvIHBjCitwYy5hZGRUcmFjayhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgc3RyZWFt
KQorcGMuYWRkVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbSkKK1BBU1Mg
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoIGlzIDIKK1BBU1MgbmVnb3RpYXRpb25uZWVkZWRl
dmVudCBmaXJlZDogVGhlcmUgaXMgbG9jYWwgbWVkaWEgYWRkZWQgd2l0aCBhZGRUcmFjaworCitS
ZWdpc3RlciBhIG5ldyBoYW5kbGVyIGZvciB0aGUgbmVnb3RpYXRpb25uZWVkZWRldmVudAorUEFT
UyByZW1vdGVQYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGggaXMgMQorQ3JlYXRlIGEgcmVtb3Rl
IG9mZmVyIHdpdGggYXVkaW8gb25seQorU2V0IHJlbW90ZSBvZmZlciBhcyByZW1vdGUgZGVzY3Jp
cHRpb24KK1BBU1MgUmVtb3RlIG9mZmVyIHNldAorUEFTUyBwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGggaXMgMgorQ3JlYXRlIGFuIGFuc3dlciBmb3IgdGhlIGF1ZGlvIG9ubHkgb2ZmZXIKK1Nl
dCBhbnN3ZXIgYXMgbG9jYWwgZGVzY3JpcHRpb24KK1BBU1MgbmVnb3RpYXRpb25uZWVkZWRldmVu
dCBmaXJlZDogVGhlcmUgaXMgbG9jYWwgbWVkaWEgbm90IG5lZ290aWF0ZWQgdGhhdCBuZWVkcyB0
byBiZSBuZWdvdGlhdGVkIGluIGEgZm9sbG93LXVwIG9mZmVyCitQQVNTIEFuc3dlciBzZXQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUt
bWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI4ZWZiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbW9yZS1tZWRpYS10by1u
ZWdvdGlhdGUuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBsZXQgc3RyZWFtOworCisgICAgICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IGEgbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBhbGwgbG9j
YWwgbWVkaWEgY2FuJ3QgYmUgaW5jbHVkZWQgaW4gYW4gYW5zd2VyIik7CisKKyAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5u
ZXIiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgY29uc3QgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNl
cnZlcnM6W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKKyAgICAgICAgICAgIGNvbnN0IHJlbW90
ZVBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsczonc3R1
bjpmb28uY29tJ31dfSk7CisKKyAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHsgImF1ZGlvIjogdHJ1ZSwgInZpZGVvIjogdHJ1ZSB9KQorICAgICAgICAgICAg
LnRoZW4oZnVuY3Rpb24gKHMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOworCisgICAg
ICAgICAgICAgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9ICgpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgibmVnb3RpYXRpb25uZWVkZWRldmVudCBmaXJlZDogVGhlcmUg
aXMgbG9jYWwgbWVkaWEgYWRkZWQgd2l0aCBhZGRUcmFjayIpOworICAgICAgICAgICAgICAgICAg
ICBzdGFydFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInBjLnNpZ25hbGluZ1N0YXRlIiwgIidzdGFibGUnIik7CisgICAgICAgICAgICAgICAg
ZGVidWcoIkFkZCBsb2NhbCBhdWRpbyBhbmQgdmlkZW8gdHJhY2tzIHRvIHBjIik7CisgICAgICAg
ICAgICAgICAgZXZhbEFuZExvZygicGMuYWRkVHJhY2soc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClb
MF0sIHN0cmVhbSkiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJwYy5hZGRUcmFjayhz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtKSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgiLCAiMiIpOworICAgICAgICAgICAg
fSkKKyAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJFcnJvciBpbiBwcm9taXNlIGNoYWluOiAiICsgZXJyb3IpOworICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPlJlZ2lz
dGVyIGEgbmV3IGhhbmRsZXIgZm9yIHRoZSBuZWdvdGlhdGlvbm5lZWRlZGV2ZW50Iik7CisgICAg
ICAgICAgICAgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9ICgpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgibmVnb3RpYXRpb25uZWVkZWRldmVudCBmaXJlZDogVGhlcmUg
aXMgbG9jYWwgbWVkaWEgbm90IG5lZ290aWF0ZWQgdGhhdCBuZWVkcyB0byBiZSBuZWdvdGlhdGVk
IGluIGEgZm9sbG93LXVwIG9mZmVyIik7CisgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAg
ICAgICAgIHJlbW90ZVBjLmFkZFRyYWNrKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJl
YW0pOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZW1vdGVQYy5nZXRUcmFuc2NlaXZlcnMo
KS5sZW5ndGgiLCAiMSIpOworCisgICAgICAgICAgICAgICAgZGVidWcoIkNyZWF0ZSBhIHJlbW90
ZSBvZmZlciB3aXRoIGF1ZGlvIG9ubHkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3Rl
UGMuY3JlYXRlT2ZmZXIoKS50aGVuKGZ1bmN0aW9uIChvZmZlcikgeworICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZygiU2V0IHJlbW90ZSBvZmZlciBhcyByZW1vdGUgZGVzY3JpcHRpb24iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsK
KyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUmVtb3RlIG9mZmVyIHNldCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoIiwg
IjIiKTsKKworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiQ3JlYXRlIGFuIGFuc3dlciBmb3Ig
dGhlIGF1ZGlvIG9ubHkgb2ZmZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBjLmNy
ZWF0ZUFuc3dlcigpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4o
ZnVuY3Rpb24gKGFuc3dlcikgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiU2V0IGFuc3dl
ciBhcyBsb2NhbCBkZXNjcmlwdGlvbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAg
ICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKCJBbnN3ZXIgc2V0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVy
cm9yKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkVycm9yIGluIHByb21pc2Ug
Y2hhaW46ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IGU5ODI4ODYuLjllM2Q3ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtNCwxMyArNCw5IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBHb3QgYSBzdHJlYW0uCi1QQVNTIG9u
TmVnb3RpYXRpb25OZWVkZWQgd2FzIGNhbGxlZC4KLVBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIGlzIDEKLVBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDAK
LVBBU1Mgb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkIHdoZW4gdHJhY2sgd2FzIHJlbW92
ZWQuCi1QQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAwCi1QQVNTIHN0cmVh
bS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCi1QQVNTIG9uTmVnb3RpYXRpb25OZWVkZWQg
d2FzIGNhbGxlZCB3aGVuIHRyYWNrIHdhcyBhZGRlZC4KK1BBU1Mgb25OZWdvdGlhdGlvbk5lZWRl
ZCB3YXMgY2FsbGVkIHdoZW4gYSB0cmFjayB3YXMgYWRkZWQuCitQQVNTIG9uTmVnb3RpYXRpb25O
ZWVkZWQyIHdhcyBjYWxsZWQgd2hlbiBhIHRyYWNrIHdhcyByZW1vdmVkLgorUEFTUyBvbk5lZ290
aWF0aW9uTmVlZGVkMyB3YXMgY2FsbGVkIHdoZW4gYSB0cmFjayB3YXMgYWRkZWQuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlv
bm5lZWRlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKaW5kZXggNDQwMzRjMC4uYjlmMjlkOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1v
bm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KQEAgLTcsOSArNyw5IEBACiAg
ICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNv
bm5lY3Rpb24gb25uZWdvdGlhdGlvbm5lZWRlZC4iKTsKIAotICAgICAgICAgICAgdmFyIHN0cmVh
bSA9IG51bGw7Ci0gICAgICAgICAgICB2YXIgcGMgPSBudWxsOwotICAgICAgICAgICAgdmFyIHRy
YWNrID0gbnVsbDsKKyAgICAgICAgICAgIGxldCBzdHJlYW07CisgICAgICAgICAgICBsZXQgcGM7
CisgICAgICAgICAgICBsZXQgYXVkaW9TZW5kZXI7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGVy
cm9yKCkKICAgICAgICAgICAgIHsKQEAgLTE3LDMxICsxNywyMSBAQAogICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBn
ZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2spCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVz
ZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3IpOwotICAgICAgICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNl
ck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOwotICAgICAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAg
ICAgIGZ1bmN0aW9uIG9uTmVnb3RpYXRpb25OZWVkZWQoZXZlbnQpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVk
LicpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ29uTmVnb3RpYXRpb25OZWVkZWQgd2Fz
IGNhbGxlZCB3aGVuIGEgdHJhY2sgd2FzIGFkZGVkLicpOwogICAgICAgICAgICAgICAgIHJlbW92
ZVRyYWNrKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG9uTmVnb3Rp
YXRpb25OZWVkZWQyKGV2ZW50KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoJ29uTmVnb3RpYXRpb25OZWVkZWQgd2FzIGNhbGxlZCB3aGVuIHRyYWNrIHdhcyByZW1v
dmVkLicpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ29uTmVnb3RpYXRpb25OZWVkZWQy
IHdhcyBjYWxsZWQgd2hlbiBhIHRyYWNrIHdhcyByZW1vdmVkLicpOwogICAgICAgICAgICAgICAg
IGFkZFRyYWNrKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG9uTmVn
b3RpYXRpb25OZWVkZWQzKGV2ZW50KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoJ29uTmVnb3RpYXRpb25OZWVkZWQgd2FzIGNhbGxlZCB3aGVuIHRyYWNrIHdhcyBh
ZGRlZC4nKTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdvbk5lZ290aWF0aW9uTmVlZGVk
MyB3YXMgY2FsbGVkIHdoZW4gYSB0cmFjayB3YXMgYWRkZWQuJyk7CiAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKQEAgLTUzLDI3ICs0MywyOSBAQAogICAg
ICAgICAgICAgICAgIHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJz
Olt7dXJsczonc3R1bjpmb28uY29tJ31dfSk7CiAgICAgICAgICAgICAgICAgcGMub25uZWdvdGlh
dGlvbm5lZWRlZCA9IG9uTmVnb3RpYXRpb25OZWVkZWQ7CiAKLSAgICAgICAgICAgICAgICBwYy5h
ZGRTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgICAgICAgICBhdWRpb1NlbmRlciA9IHBjLmFkZFRy
YWNrKHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJlYW0pOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBmdW5jdGlvbiByZW1vdmVUcmFjaygpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IG9uTmVnb3RpYXRpb25OZWVkZWQy
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5n
dGgnLCAnMScpOwotICAgICAgICAgICAgICAgIHRyYWNrID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KClbMF07Ci0gICAgICAgICAgICAgICAgc3RyZWFtLnJlbW92ZVRyYWNrKHRyYWNrKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAn
KTsKKyAgICAgICAgICAgICAgICBwYy5yZW1vdmVUcmFjayhhdWRpb1NlbmRlcik7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZFRyYWNrKCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gb25OZWdvdGlhdGlvbk5l
ZWRlZDM7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCcsICcwJyk7Ci0gICAgICAgICAgICAgICAgc3RyZWFtLmFkZFRyYWNrKHRyYWNrKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
JywgJzEnKTsKKyAgICAgICAgICAgICAgICBwYy5hZGRUcmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXSwgc3RyZWFtKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVy
bWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGRlYnVn
KCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lciIpOworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pOworICAg
ICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUs
IHZpZGVvOnRydWV9KS50aGVuKGdvdFN0cmVhbSkuY2F0Y2goZXJyb3IpOwogCiAgICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgICAgICB3aW5kb3cuc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggY2FiOWU4Yi4uN2M1OTVjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0OSw3ICszNDksNiBAQCB3ZWJraXQub3JnL2IvNzkyMDMg
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1oYXZlLXJlbW90ZS1vZmZlci5odG1s
IFsgUwogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24taGF2ZS1yZW1vdGUtcHJhbnN3ZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWxvY2Fs
RGVzY3JpcHRpb24uaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1y
ZW1vdGVEZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGFibGUuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tc3RhdHMuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAxNWNmNjhlLi5hZjE5NmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTg5LDYgKzE4OSw4IEBAIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tanMtYnVpbHQtaW5zLWNoZWNrLXRoaXMuaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1pbnNwZWN0LW9mZmVyLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tYWRkLXJlbW92ZVRyYWNrLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tYWRkVHJhY2stcmV1c2Utc2VuZGVyLmh0bWwKK2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCitmYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwKIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY2xvc2VkLXN0YXRlLmh0bWwKIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb3ZlcmxvYWRlZC1vcGVyYXRpb25zLXBhcmFtcy5o
dG1sCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW92ZXJsb2FkZWQtb3BlcmF0
aW9ucy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ2ZDZlYi4uMjg2OTYyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDE2LTA2LTIxICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0
QGVyaWNzc29uLmNvbT4KKworICAgICAgICBXZWJSVEM6IEFkZCBzdXBwb3J0IGZvciB0aGUgbmVn
b3RpYXRpb25uZWVkZWQgZXZlbnQgaW4gTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg5ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uJ3MgaXNOZWdvdGlhdGlvbk5lZWRlZCwgbWFya0FzTmVl
ZGluZ05lZ290aWF0aW9uIGFuZAorICAgICAgICBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUg
ZnVuY3Rpb25zLiBUaGUgY2FsbHMgdG8gdGhlc2UgZnVuY3Rpb25zIGFyZSBhbHJlYWR5IHVwLXRv
LWRhdGUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1tb3JlLW1lZGlhLXRvLW5lZ290aWF0ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246Om1hcmtBc05lZWRpbmdOZWdvdGlhdGlvbik6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzY2hlZHVsZU5lZ290aWF0
aW9uTmVlZGVkRXZlbnQpOgorCiAyMDE2LTA2LTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNWJhYjU4Zi4uYjg5ODU0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtNzIxLDcgKzcyMSwxMyBAQCB2b2lk
IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAKIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjptYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKG1fbmVnb3RpYXRpb25OZWVkZWQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fbmVnb3RpYXRpb25OZWVkZWQgPSB0cnVlOworCisgICAgaWYgKG1fY2xpZW50
LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZSkKKyAg
ICAgICAgbV9jbGllbnQtPnNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOwogfQogCiBi
b29sIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvblR5cGVWYWxp
ZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSB0eXBlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggY2Y3NmI1Zi4uYTJjMDlkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC03OCw5ICs3OCw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc05lZ290aWF0aW9uTmVlZGVk
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH07Ci0gICAgdm9pZCBtYXJrQXNOZWVk
aW5nTmVnb3RpYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyTmVnb3RpYXRpb25OZWVk
ZWRTdGF0ZSgpIG92ZXJyaWRlIHsgbm90SW1wbGVtZW50ZWQoKTsgfTsKKyAgICBib29sIGlzTmVn
b3RpYXRpb25OZWVkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX25lZ290aWF0aW9uTmVl
ZGVkOyB9OworICAgIHZvaWQgbWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCk7CisgICAgdm9pZCBj
bGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUoKSBvdmVycmlkZSB7IG1fbmVnb3RpYXRpb25OZWVk
ZWQgPSBmYWxzZTsgfTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRhc2soTm9uY29weWFibGVG
dW5jdGlvbjx2b2lkICgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggM2M1Mjk3MS4uOTcxN2Uw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ4NCw4ICs0ODQsOCBAQCB2b2lkIFJUQ1BlZXJDb25u
ZWN0aW9uOjpzY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKQogewogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soWz1dKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
CiAgICAgICAgIGlmIChtX2JhY2tlbmQtPmlzTmVnb3RpYXRpb25OZWVkZWQoKSkgewotICAgICAg
ICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5uZWdvdGlhdGlv
bm5lZWRlZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICAgICAgICAgIG1fYmFja2VuZC0+Y2xl
YXJOZWdvdGlhdGlvbk5lZWRlZFN0YXRlKCk7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5lZ290aWF0aW9ubmVlZGVkRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOwogICAgICAgICB9CiAgICAgfSk7CiB9Cg==
</data>
<flag name="review"
          id="305562"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281816</attachid>
            <date>2016-06-21 22:32:06 -0700</date>
            <delta_ts>2016-06-22 11:15:51 -0700</delta_ts>
            <desc>Updated patch for landing</desc>
            <filename>negotiation-needed_1.patch</filename>
            <type>text/plain</type>
            <size>16504</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OTFmMGU2Li41ZmY1M2RmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDYt
MjEgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBuZWdvdGlhdGlvbm5lZWRlZCBldmVudCBp
biBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODk4NQorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgdGhl
IFJUQ1BlZXJDb25uZWN0aW9uIG5lZ290aWF0aW9ubmVlZGVkIGV2ZW50LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tbW9yZS1tZWRpYS10by1uZWdvdGlhdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUtbWVk
aWEtdG8tbmVnb3RpYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICBWZXJpZnkgdGhhdCBhIG5lZ290
aWF0aW9ubmVlZGVkIGV2ZW50IGlzIGZpcmVkIHdoZW4gbm90IGFsbCBsb2NhbCBtZWRpYSBjYW4g
YmUgaW5jbHVkZWQgaW4KKyAgICAgICAgYW4gYW5zd2VyLiAoVGhlIGFuc3dlcmVyIGNhbm5vdCBy
ZXBseSB3aXRoIG1vcmUgbS1saW5lcyB0aGFuIHRoZSBvZmZlciBoYWQgdG8gYmVnaW4gd2l0aC4p
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0
aW9ubmVlZGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbDoKKyAgICAgICAgVmVyaWZ5IHRo
YXQgYSBuZWdvdGlhdGlvbm5lZWRlZCBldmVudCBpcyBmaXJlZCB3aGVuIHRyYWNrcyBhcmUgYWRk
ZWQgYW5kIHJlbW92ZWQgZnJvbSBhbgorICAgICAgICBSVENQZWVyQ29ubmVjdGlvbi4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgVW5za2lwIGZhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBUaGUgbWFj
IHBvcnQgZG9lcyBub3QgYnVpbGQgd2l0aCBXRUJfUlRDIGVuYWJsZWQgeWV0LgorCiAyMDE2LTA2
LTE3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICA6
aW5kZXRlcm1pbmF0ZSBwc2V1ZG8tY2xhc3Mgc2hvdWxkIG1hdGNoIHJhZGlvcyB3aG9zZSBncm91
cCBoYXMgbm8gY2hlY2tlZCByYWRpbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tb3JlLW1lZGlhLXRvLW5lZ290aWF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1v
cmUtbWVkaWEtdG8tbmVnb3RpYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kOGU4Yzg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tb3JlLW1lZGlhLXRvLW5lZ290aWF0ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAorVGVzdCB0aGF0IGEgbmVnb3RpYXRpb25uZWVk
ZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBub3QgYWxsIGxvY2FsIG1lZGlhIGNhbiBiZSBpbmNsdWRl
ZCBpbiBhbiBhbnN3ZXIKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMu
c2lnbmFsaW5nU3RhdGUgaXMgJ3N0YWJsZScKK0FkZCBsb2NhbCBhdWRpbyBhbmQgdmlkZW8gdHJh
Y2tzIHRvIHBjCitwYy5hZGRUcmFjayhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgc3RyZWFt
KQorcGMuYWRkVHJhY2soc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbSkKK1BBU1Mg
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoIGlzIDIKK1BBU1MgbmVnb3RpYXRpb25uZWVkZWRl
dmVudCBmaXJlZDogVGhlcmUgaXMgbG9jYWwgbWVkaWEgYWRkZWQgd2l0aCBhZGRUcmFjaworCitS
ZWdpc3RlciBhIG5ldyBoYW5kbGVyIGZvciB0aGUgbmVnb3RpYXRpb25uZWVkZWRldmVudAorUEFT
UyByZW1vdGVQYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGggaXMgMQorQ3JlYXRlIGEgcmVtb3Rl
IG9mZmVyIHdpdGggYXVkaW8gb25seQorU2V0IHJlbW90ZSBvZmZlciBhcyByZW1vdGUgZGVzY3Jp
cHRpb24KK1BBU1MgUmVtb3RlIG9mZmVyIHNldAorUEFTUyBwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGggaXMgMgorQ3JlYXRlIGFuIGFuc3dlciBmb3IgdGhlIGF1ZGlvIG9ubHkgb2ZmZXIKK1Nl
dCBhbnN3ZXIgYXMgbG9jYWwgZGVzY3JpcHRpb24KK1BBU1MgbmVnb3RpYXRpb25uZWVkZWRldmVu
dCBmaXJlZDogVGhlcmUgaXMgbG9jYWwgbWVkaWEgbm90IG5lZ290aWF0ZWQgdGhhdCBuZWVkcyB0
byBiZSBuZWdvdGlhdGVkIGluIGEgZm9sbG93LXVwIG9mZmVyCitQQVNTIEFuc3dlciBzZXQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1vcmUt
bWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLW1vcmUtbWVkaWEtdG8tbmVnb3RpYXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1M2U4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbW9yZS1tZWRpYS10by1u
ZWdvdGlhdGUuaHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQ+CisgICAgICAgICAgICBsZXQgc3RyZWFtOworCisgICAgICAgICAgICBkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IGEgbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiBub3QgYWxs
IGxvY2FsIG1lZGlhIGNhbiBiZSBpbmNsdWRlZCBpbiBhbiBhbnN3ZXIiKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1
bm5lciIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBjb25zdCBwYyA9IG5ldyB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbih7aWNl
U2VydmVyczpbe3VybHM6J3N0dW46Zm9vLmNvbSd9XX0pOworICAgICAgICAgICAgY29uc3QgcmVt
b3RlUGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6W3t1cmxzOidz
dHVuOmZvby5jb20nfV19KTsKKworICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoeyAiYXVkaW8iOiB0cnVlLCAidmlkZW8iOiB0cnVlIH0pCisgICAgICAgICAg
ICAudGhlbihmdW5jdGlvbiAocykgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisKKyAg
ICAgICAgICAgICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gKCkgPT4geworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJuZWdvdGlhdGlvbm5lZWRlZGV2ZW50IGZpcmVkOiBUaGVy
ZSBpcyBsb2NhbCBtZWRpYSBhZGRlZCB3aXRoIGFkZFRyYWNrIik7CisgICAgICAgICAgICAgICAg
ICAgIHN0YXJ0VGVzdCgpOworICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicGMuc2lnbmFsaW5nU3RhdGUiLCAiJ3N0YWJsZSciKTsKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiQWRkIGxvY2FsIGF1ZGlvIGFuZCB2aWRlbyB0cmFja3MgdG8gcGMiKTsKKyAgICAg
ICAgICAgICAgICBldmFsQW5kTG9nKCJwYy5hZGRUcmFjayhzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXSwgc3RyZWFtKSIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInBjLmFkZFRyYWNr
KHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBzdHJlYW0pIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCIsICIyIik7CisgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkVycm9yIGluIHByb21pc2UgY2hhaW46ICIgKyBlcnJvcik7CisgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+UmVn
aXN0ZXIgYSBuZXcgaGFuZGxlciBmb3IgdGhlIG5lZ290aWF0aW9ubmVlZGVkZXZlbnQiKTsKKyAg
ICAgICAgICAgICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gKCkgPT4geworICAgICAgICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJuZWdvdGlhdGlvbm5lZWRlZGV2ZW50IGZpcmVkOiBUaGVy
ZSBpcyBsb2NhbCBtZWRpYSBub3QgbmVnb3RpYXRlZCB0aGF0IG5lZWRzIHRvIGJlIG5lZ290aWF0
ZWQgaW4gYSBmb2xsb3ctdXAgb2ZmZXIiKTsKKyAgICAgICAgICAgICAgICB9OworCisgICAgICAg
ICAgICAgICAgcmVtb3RlUGMuYWRkVHJhY2soc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0
cmVhbSk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlbW90ZVBjLmdldFRyYW5zY2VpdmVy
cygpLmxlbmd0aCIsICIxIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiQ3JlYXRlIGEgcmVt
b3RlIG9mZmVyIHdpdGggYXVkaW8gb25seSIpOworICAgICAgICAgICAgICAgIHJldHVybiByZW1v
dGVQYy5jcmVhdGVPZmZlcigpLnRoZW4oZnVuY3Rpb24gKG9mZmVyKSB7CisgICAgICAgICAgICAg
ICAgICAgIGRlYnVnKCJTZXQgcmVtb3RlIG9mZmVyIGFzIHJlbW90ZSBkZXNjcmlwdGlvbiIpOwor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
OworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJSZW1vdGUgb2ZmZXIgc2V0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgi
LCAiMiIpOworCisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJDcmVhdGUgYW4gYW5zd2VyIGZv
ciB0aGUgYXVkaW8gb25seSBvZmZlciIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGMu
Y3JlYXRlQW5zd2VyKCk7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAudGhl
bihmdW5jdGlvbiAoYW5zd2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJTZXQgYW5z
d2VyIGFzIGxvY2FsIGRlc2NyaXB0aW9uIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBw
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkFuc3dlciBzZXQiKTsKKworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAo
ZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgaW4gcHJvbWlz
ZSBjaGFpbjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworCisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC1l
eHBlY3RlZC50eHQKaW5kZXggZTk4Mjg4Ni4uOWUzZDdkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC00LDEzICs0LDkg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIEdvdCBhIHN0cmVhbS4KLVBBU1Mg
b25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkLgotUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKS5sZW5ndGggaXMgMQotUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMg
MAotUEFTUyBvbk5lZ290aWF0aW9uTmVlZGVkIHdhcyBjYWxsZWQgd2hlbiB0cmFjayB3YXMgcmVt
b3ZlZC4KLVBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDAKLVBBU1Mgc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDEKLVBBU1Mgb25OZWdvdGlhdGlvbk5lZWRl
ZCB3YXMgY2FsbGVkIHdoZW4gdHJhY2sgd2FzIGFkZGVkLgorUEFTUyBvbk5lZ290aWF0aW9uTmVl
ZGVkIHdhcyBjYWxsZWQgd2hlbiBhIHRyYWNrIHdhcyBhZGRlZC4KK1BBU1Mgb25OZWdvdGlhdGlv
bk5lZWRlZDIgd2FzIGNhbGxlZCB3aGVuIGEgdHJhY2sgd2FzIHJlbW92ZWQuCitQQVNTIG9uTmVn
b3RpYXRpb25OZWVkZWQzIHdhcyBjYWxsZWQgd2hlbiBhIHRyYWNrIHdhcyBhZGRlZC4KIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0
aW9ubmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbAppbmRleCA0NDAzNGMwLi5iOWYyOWQ4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiAgICAgPGhlYWQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgpAQCAtNyw5ICs3LDkgQEAK
ICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBSVENQZWVy
Q29ubmVjdGlvbiBvbm5lZ290aWF0aW9ubmVlZGVkLiIpOwogCi0gICAgICAgICAgICB2YXIgc3Ry
ZWFtID0gbnVsbDsKLSAgICAgICAgICAgIHZhciBwYyA9IG51bGw7Ci0gICAgICAgICAgICB2YXIg
dHJhY2sgPSBudWxsOworICAgICAgICAgICAgbGV0IHN0cmVhbTsKKyAgICAgICAgICAgIGxldCBw
YzsKKyAgICAgICAgICAgIGxldCBhdWRpb1NlbmRlcjsKIAogICAgICAgICAgICAgZnVuY3Rpb24g
ZXJyb3IoKQogICAgICAgICAgICAgewpAQCAtMTcsMzEgKzE3LDIxIEBACiAgICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0
VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJvcik7Ci0gICAgICAgICAgICAgICAg
fSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRV
c2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Ci0gICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQogICAgICAg
ICAgICAgZnVuY3Rpb24gb25OZWdvdGlhdGlvbk5lZWRlZChldmVudCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdvbk5lZ290aWF0aW9uTmVlZGVkIHdhcyBjYWxs
ZWQuJyk7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3
YXMgY2FsbGVkIHdoZW4gYSB0cmFjayB3YXMgYWRkZWQuJyk7CiAgICAgICAgICAgICAgICAgcmVt
b3ZlVHJhY2soKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gb25OZWdv
dGlhdGlvbk5lZWRlZDIoZXZlbnQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkIHdoZW4gdHJhY2sgd2FzIHJl
bW92ZWQuJyk7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRl
ZDIgd2FzIGNhbGxlZCB3aGVuIGEgdHJhY2sgd2FzIHJlbW92ZWQuJyk7CiAgICAgICAgICAgICAg
ICAgYWRkVHJhY2soKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gb25O
ZWdvdGlhdGlvbk5lZWRlZDMoZXZlbnQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgnb25OZWdvdGlhdGlvbk5lZWRlZCB3YXMgY2FsbGVkIHdoZW4gdHJhY2sgd2Fz
IGFkZGVkLicpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ29uTmVnb3RpYXRpb25OZWVk
ZWQzIHdhcyBjYWxsZWQgd2hlbiBhIHRyYWNrIHdhcyBhZGRlZC4nKTsKICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KIApAQCAtNTMsMjcgKzQzLDI5IEBACiAg
ICAgICAgICAgICAgICAgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZl
cnM6W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKICAgICAgICAgICAgICAgICBwYy5vbm5lZ290
aWF0aW9ubmVlZGVkID0gb25OZWdvdGlhdGlvbk5lZWRlZDsKIAotICAgICAgICAgICAgICAgIHBj
LmFkZFN0cmVhbShzdHJlYW0pOworICAgICAgICAgICAgICAgIGF1ZGlvU2VuZGVyID0gcGMuYWRk
VHJhY2soc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbSk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZVRyYWNrKCkKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gb25OZWdvdGlhdGlvbk5lZWRl
ZDI7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxl
bmd0aCcsICcxJyk7Ci0gICAgICAgICAgICAgICAgdHJhY2sgPSBzdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKVswXTsKLSAgICAgICAgICAgICAgICBzdHJlYW0ucmVtb3ZlVHJhY2sodHJhY2spOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAn
MCcpOworICAgICAgICAgICAgICAgIHBjLnJlbW92ZVRyYWNrKGF1ZGlvU2VuZGVyKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gYWRkVHJhY2soKQogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSBvbk5lZ290aWF0aW9u
TmVlZGVkMzsKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoJywgJzAnKTsKLSAgICAgICAgICAgICAgICBzdHJlYW0uYWRkVHJhY2sodHJhY2sp
OwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5n
dGgnLCAnMScpOworICAgICAgICAgICAgICAgIHBjLmFkZFRyYWNrKHN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpWzBdLCBzdHJlYW0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZGVi
dWcoIlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyIik7Cisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbSk7Cisg
ICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1
ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oZ290U3RyZWFtKS5jYXRjaChlcnJvcik7CiAKICAgICAgICAg
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgICAgIHdpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjYWI5ZThiLi43YzU5NWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzQ5LDcgKzM0OSw2IEBAIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWhhdmUtcmVtb3RlLW9mZmVyLmh0
bWwgWyBTCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi1oYXZlLXJlbW90ZS1wcmFuc3dlci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzky
MDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2UuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbG9j
YWxEZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXJlbW90ZURlc2NyaXB0aW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXN0YWJsZS5odG1sIFsgU2tpcCBdCiB3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1zdGF0cy5o
dG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDE1Y2Y2OGUuLmFmMTk2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xODksNiArMTg5LDggQEAgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1qcy1idWlsdC1pbnMtY2hlY2stdGhpcy5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWluc3BlY3Qtb2ZmZXIuaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGQtcmVtb3ZlVHJhY2suaHRtbAogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRUcmFjay1yZXVzZS1zZW5kZXIuaHRtbAorZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKK2Zhc3QvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbW9yZS1tZWRpYS10by1uZWdvdGlhdGUuaHRtbAogZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jbG9zZWQtc3RhdGUuaHRtbAogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1vdmVybG9hZGVkLW9wZXJhdGlvbnMtcGFyYW1z
Lmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tb3ZlcmxvYWRlZC1vcGVy
YXRpb25zLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNDZkNmViLi43MzRhODExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTYtMDYtMjEgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zp
c3RAZXJpY3Nzb24uY29tPgorCisgICAgICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBu
ZWdvdGlhdGlvbm5lZWRlZCBldmVudCBpbiBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODk4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbXBsZW1lbnQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uJ3MgaXNOZWdvdGlhdGlvbk5lZWRlZCwgbWFya0FzTmVl
ZGluZ05lZ290aWF0aW9uIGFuZAorICAgICAgICBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUg
ZnVuY3Rpb25zLiBUaGUgY2FsbHMgdG8gdGhlc2UgZnVuY3Rpb25zIGFyZSBhbHJlYWR5IHVwLXRv
LWRhdGUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1tb3JlLW1lZGlhLXRvLW5lZ290aWF0ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246Om1hcmtBc05lZWRpbmdOZWdvdGlhdGlvbik6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzY2hlZHVsZU5lZ290aWF0
aW9uTmVlZGVkRXZlbnQpOgorCiAyMDE2LTA2LTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBVc2UgdGltZSBsaXRlcmFscyBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNWJhYjU4Zi4uYjg5ODU0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcApAQCAtNzIxLDcgKzcyMSwxMyBAQCB2b2lk
IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiAKIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjptYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgaWYgKG1fbmVnb3RpYXRpb25OZWVkZWQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fbmVnb3RpYXRpb25OZWVkZWQgPSB0cnVlOworCisgICAgaWYgKG1fY2xpZW50
LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkgPT0gU2lnbmFsaW5nU3RhdGU6OlN0YWJsZSkKKyAg
ICAgICAgbV9jbGllbnQtPnNjaGVkdWxlTmVnb3RpYXRpb25OZWVkZWRFdmVudCgpOwogfQogCiBi
b29sIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvblR5cGVWYWxp
ZEZvclN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSB0eXBlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggY2Y3NmI1Zi4uYTJjMDlkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC03OCw5ICs3OCw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc05lZ290aWF0aW9uTmVlZGVk
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH07Ci0gICAgdm9pZCBtYXJrQXNOZWVk
aW5nTmVnb3RpYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIGNsZWFyTmVnb3RpYXRpb25OZWVk
ZWRTdGF0ZSgpIG92ZXJyaWRlIHsgbm90SW1wbGVtZW50ZWQoKTsgfTsKKyAgICBib29sIGlzTmVn
b3RpYXRpb25OZWVkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX25lZ290aWF0aW9uTmVl
ZGVkOyB9OworICAgIHZvaWQgbWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCk7CisgICAgdm9pZCBj
bGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUoKSBvdmVycmlkZSB7IG1fbmVnb3RpYXRpb25OZWVk
ZWQgPSBmYWxzZTsgfTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRhc2soTm9uY29weWFibGVG
dW5jdGlvbjx2b2lkICgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggM2M1Mjk3MS4uOTcxN2Uw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQ4NCw4ICs0ODQsOCBAQCB2b2lkIFJUQ1BlZXJDb25u
ZWN0aW9uOjpzY2hlZHVsZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKQogewogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soWz1dKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
CiAgICAgICAgIGlmIChtX2JhY2tlbmQtPmlzTmVnb3RpYXRpb25OZWVkZWQoKSkgewotICAgICAg
ICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5uZWdvdGlhdGlv
bm5lZWRlZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICAgICAgICAgIG1fYmFja2VuZC0+Y2xl
YXJOZWdvdGlhdGlvbk5lZWRlZFN0YXRlKCk7CisgICAgICAgICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm5lZ290aWF0aW9ubmVlZGVkRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOwogICAgICAgICB9CiAgICAgfSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>