<?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>172897</bug_id>
          
          <creation_ts>2017-06-03 11:12:55 -0700</creation_ts>
          <short_desc>[MediaStream] Page capture state not reported correctly</short_desc>
          <delta_ts>2022-10-05 16:24:30 -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>Media</component>
          <version>Other</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1315448</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-03 11:12:55 -0700</bug_when>
    <thetext>Page capture state is not reported correctly when only audio or video is muted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315452</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-03 11:15:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/32493318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315454</commentid>
    <comment_count>2</comment_count>
      <attachid>311935</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-03 11:22:11 -0700</bug_when>
    <thetext>Created attachment 311935
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315515</commentid>
    <comment_count>3</comment_count>
      <attachid>311935</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-03 22:04:00 -0700</bug_when>
    <thetext>Comment on attachment 311935
Proposed patch.

Looks like an improvement.
Would we have an issue if the capturing track is no longer part of the media stream using removeTrack?
Maybe that calls for a more direct access to the capturing sources of the document or maybe better of the WebProcess.

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

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:348
&gt; +        if (track-&gt;kind() == &quot;audio&quot;) {

Probably more efficient to use track-&gt;source().type()

&gt; LayoutTests/fast/mediastream/media-stream-track-muted.html:5
&gt; +    &lt;title&gt;Mute video and audio tracks independently, make sure page state updates correctly.&lt;/title&gt;

Cool test!

&gt; LayoutTests/fast/mediastream/media-stream-track-muted.html:41
&gt; +            assert_false(internals.pageMediaState().includes(&apos;HasMutedAudioCaptureDevice&apos;));

Might want to reject if window.internals is undefined.

&gt; LayoutTests/fast/mediastream/media-stream-track-muted.html:77
&gt; +            testTrack(stream.getAudioTracks()[0], resolve, reject);

You could probably create the promise_test inside testTrack function and then have:
testTrack(stream.getVideoTracks()[0],  &quot;Mute video track only&quot;)
testTrack(stream.getAudioTracks()[0],  &quot;Mute audio track only&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315584</commentid>
    <comment_count>4</comment_count>
      <attachid>311935</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-04 13:18:09 -0700</bug_when>
    <thetext>Comment on attachment 311935
Proposed patch.

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

&gt;&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:348
&gt;&gt; +        if (track-&gt;kind() == &quot;audio&quot;) {
&gt; 
&gt; Probably more efficient to use track-&gt;source().type()

Fixed.

&gt;&gt; LayoutTests/fast/mediastream/media-stream-track-muted.html:41
&gt;&gt; +            assert_false(internals.pageMediaState().includes(&apos;HasMutedAudioCaptureDevice&apos;));
&gt; 
&gt; Might want to reject if window.internals is undefined.

I have written it this way because it is so ridiculously difficult to debug these w3c-style tests. Even though the test can&apos;t really run in Safari, this allows me to open it in Safari and find and fix syntax errors.

&gt;&gt; LayoutTests/fast/mediastream/media-stream-track-muted.html:77
&gt;&gt; +            testTrack(stream.getAudioTracks()[0], resolve, reject);
&gt; 
&gt; You could probably create the promise_test inside testTrack function and then have:
&gt; testTrack(stream.getVideoTracks()[0],  &quot;Mute video track only&quot;)
&gt; testTrack(stream.getAudioTracks()[0],  &quot;Mute audio track only&quot;)

Good idea, that also let me get rid of the global variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315585</commentid>
    <comment_count>5</comment_count>
      <attachid>311969</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-04 13:18:43 -0700</bug_when>
    <thetext>Created attachment 311969
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315592</commentid>
    <comment_count>6</comment_count>
      <attachid>311969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-04 13:57:02 -0700</bug_when>
    <thetext>Comment on attachment 311969
Patch for landing.

Clearing flags on attachment: 311969

Committed r217775: &lt;http://trac.webkit.org/changeset/217775&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903590</commentid>
    <comment_count>7</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-05 16:24:30 -0700</bug_when>
    <thetext>Checked on Webkit GitHub with BugID and seems to have landed and not backed out:

https://github.com/WebKit/WebKit/commit/d04d046fcb16fe79974831443f8aa4495552eff6

Marking this as &quot;RESOLVED FIXED&quot;. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311935</attachid>
            <date>2017-06-03 11:22:11 -0700</date>
            <delta_ts>2017-06-03 22:04:00 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>track_muted_state_patch_2.txt</filename>
            <type>text/plain</type>
            <size>10191</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzc2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA2LTAzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UGFnZSBjYXB0dXJlIHN0YXRlIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjg5NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzI0OTMzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2stbXV0
ZWQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6bWVkaWFTdGF0ZSk6IFRlc3QgZm9yIGF1
ZGlvIGFuZCB2aWRlbyBtdXRlIG9uIHRoZSB0cmFja3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbTo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IENhbGwgc3RhdHVzRGlkQ2hhbmdlIHdo
ZW4gbV9tZWRpYVN0YXRlCisgICAgICAgIGNoYW5nZXMgaW5zdGVhZCBvZiBtX211dGVkLCBzbyB0
aGUgcGFnZSBpcyBpbmZvcm1lZCB3aGVuIGp1c3QgYXVkaW8gb3IgdmlkZW8gbXV0ZSBzdGF0ZQor
ICAgICAgICBjaGFuZ2VzLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0TWVkaWFTdHJlYW1UcmFja011dGVkKTogTmV3LgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDE3LTA2LTAzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2xlYW51cCBhcmd1bWVudHMgdG8gcHJlcGFyZVBsYXRmb3JtRm9udCgpIGFuZCBm
b250V2l0aEZhbWlseSgpIGluIEZvbnRDYWNoZUNvcmVUZXh0LmNwcApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlz
aW9uIDIxNzcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDEsMjAgKzM0MSwxNyBAQCBNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgTWVkaWFTdHJlCiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAg
ICAgICByZXR1cm4gc3RhdGU7CiAKLSAgICBpZiAobV9wcml2YXRlLT5oYXNBdWRpbygpKSB7Ci0g
ICAgICAgIHN0YXRlIHw9IEhhc0F1ZGlvT3JWaWRlbzsKLSAgICAgICAgaWYgKG1fcHJpdmF0ZS0+
aGFzQ2FwdHVyZUF1ZGlvU291cmNlKCkpIHsKLSAgICAgICAgICAgIGlmIChtX3ByaXZhdGUtPm11
dGVkKCkpCisgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkp
IHsKKyAgICAgICAgaWYgKCF0cmFjay0+aXNDYXB0dXJlVHJhY2soKSB8fCB0cmFjay0+ZW5kZWQo
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICh0cmFjay0+a2luZCgpID09
ICJhdWRpbyIpIHsKKyAgICAgICAgICAgIGlmICh0cmFjay0+bXV0ZWQoKSkKICAgICAgICAgICAg
ICAgICBzdGF0ZSB8PSBIYXNNdXRlZEF1ZGlvQ2FwdHVyZURldmljZTsKICAgICAgICAgICAgIGVs
c2UgaWYgKG1faXNQcm9kdWNpbmdEYXRhICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkp
CiAgICAgICAgICAgICAgICAgc3RhdGUgfD0gSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKG1fcHJpdmF0ZS0+aGFzVmlkZW8oKSkgewotICAg
ICAgICBzdGF0ZSB8PSBIYXNBdWRpb09yVmlkZW87Ci0gICAgICAgIGlmIChtX3ByaXZhdGUtPmhh
c0NhcHR1cmVWaWRlb1NvdXJjZSgpKSB7Ci0gICAgICAgICAgICBpZiAobV9wcml2YXRlLT5tdXRl
ZCgpKQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHRyYWNrLT5tdXRlZCgpKQog
ICAgICAgICAgICAgICAgIHN0YXRlIHw9IEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAg
ICAgICAgICAgZWxzZSBpZiAobV9pc1Byb2R1Y2luZ0RhdGEgJiYgbV9wcml2YXRlLT5pc1Byb2R1
Y2luZ0RhdGEoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVWaWRlb0NhcHR1
cmVEZXZpY2U7CkBAIC0zNzcsOSArMzc0LDkgQEAgdm9pZCBNZWRpYVN0cmVhbTo6c3RhdHVzRGlk
Q2hhbmdlKCkKIAogdm9pZCBNZWRpYVN0cmVhbTo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCiB7
Ci0gICAgYm9vbCBtdXRlZCA9IG1fcHJpdmF0ZS0+bXV0ZWQoKTsKLSAgICBpZiAobV9pc011dGVk
ICE9IG11dGVkKSB7Ci0gICAgICAgIG1faXNNdXRlZCA9IG11dGVkOworICAgIE1lZGlhU3RhdGVG
bGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUoKTsKKyAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgewor
ICAgICAgICBtX3N0YXRlID0gc3RhdGU7CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwogICAg
IH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgJKHJldmlzaW9uIDIxNzcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBjbG9uZSgpOwogCiAgICAgYm9vbCBh
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZlOyB9Ci0gICAgYm9vbCBtdXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNNdXRlZDsgfQorICAgIGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByaXZhdGUtPm11dGVkKCk7IH0KIAogICAgIE1lZGlhU3RyZWFtUHJpdmF0ZSYgcHJpdmF0
ZVN0cmVhbSgpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsgfQogCkBAIC0xNzUsOCArMTc1LDkg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogCisgICAg
TWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGUgeyBJc05vdFBsYXlpbmcgfTsKKwogICAgIGJvb2wgbV9p
c0FjdGl2ZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzTXV0ZWQgeyB0cnVlIH07CiAgICAgYm9v
bCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzV2FpdGluZ1VudGls
TWVkaWFDYW5TdGFydCB7IGZhbHNlIH07CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAkocmV2aXNpb24gMjE3NzI1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYgKzQwODgsMTEgQEAgdm9pZCBJ
bnRlcm5hbHM6OmRlbGF5TWVkaWFTdHJlYW1UcmFja1NhbQogICAgIHRyYWNrLnNvdXJjZSgpLmRl
bGF5U2FtcGxlcyhkZWxheSk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVRy
YWNrTXV0ZWQoTWVkaWFTdHJlYW1UcmFjayYgdHJhY2ssIGJvb2wgbXV0ZWQpCit7CisgICAgdHJh
Y2suc291cmNlKCkuc2V0TXV0ZWQobXV0ZWQpOworfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAy
MTc3MjUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01ODIsNiArNTgyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFRyYWNrRnJhbWVQcm9t
aXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxJbWFnZURhdGE+PjsKICAgICB2
b2lkIGdyYWJOZXh0TWVkaWFTdHJlYW1UcmFja0ZyYW1lKFRyYWNrRnJhbWVQcm9taXNlJiYpOwog
ICAgIHZvaWQgZGVsYXlNZWRpYVN0cmVhbVRyYWNrU2FtcGxlcyhNZWRpYVN0cmVhbVRyYWNrJiwg
ZmxvYXQpOworICAgIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja011dGVkKE1lZGlhU3RyZWFtVHJh
Y2smLCBib29sKTsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAkocmV2aXNpb24gMjE3NzI1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01NDMsNCArNTQzLDUgQEAgZW51bSBF
dmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0g
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdHJhY2tWaWRlb1NhbXBsZUNvdW50Owog
ICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHNl
dE1lZGlhRGV2aWNlU3RhdGUoRE9NU3RyaW5nIGRldmljZUlELCBET01TdHJpbmcgcHJvcGVydHks
IGJvb2xlYW4gdmFsdWUpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgZGVs
YXlNZWRpYVN0cmVhbVRyYWNrU2FtcGxlcyhNZWRpYVN0cmVhbVRyYWNrIHRyYWNrLCBmbG9hdCBk
ZWxheSk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NUUkVBTV0gdm9pZCBzZXRNZWRpYVN0cmVh
bVRyYWNrTXV0ZWQoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgYm9vbGVhbiBtdXRlZCk7CiB9OwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjE3NzI1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDYtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBQYWdlIGNhcHR1
cmUgc3RhdGUgbm90IHJlcG9ydGVkIGNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyODk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MjQ5MzMxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11dGVkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2st
bXV0ZWQuaHRtbDogQWRkZWQuCisKIDIwMTctMDYtMDIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRkIGEgInN1cHBvcnRlZENvdW50cmllcyIgcHJv
cGVydHkgdG8gQXBwbGVQYXlQYXltZW50UmVxdWVzdApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2stbXV0ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11
dGVkLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1tdXRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgQ3JlYXRlIHN0cmVhbSAKK1BBU1MgTXV0ZSB2aWRl
byB0cmFjayBvbmx5IAorUEFTUyBNdXRlIGF1ZGlvIHRyYWNrIG9ubHkgCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11dGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJh
Y2stbXV0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL21lZGlhLXN0cmVhbS10cmFjay1tdXRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsODUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11dGUgdmlkZW8gYW5kIGF1ZGlvIHRyYWNrcyBpbmRl
cGVuZGVudGx5LCBtYWtlIHN1cmUgcGFnZSBzdGF0ZSB1cGRhdGVzIGNvcnJlY3RseS48L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIGRldmljZXMgPSBbXTsKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOworCisgICAgbGV0IHN0cmVhbTsKKyAgICBwcm9taXNlX3Rlc3QoKHRl
c3QpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHsgdmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlfSkKKyAgICAgICAgICAgIC50aGVuKChzKSA9
PiB7IHN0cmVhbSA9IHM7IH0pOworICAgIH0sICJDcmVhdGUgc3RyZWFtIik7CisKKyAgICBmdW5j
dGlvbiB3YWl0Rm9yUGFnZVN0YXRlQ2hhbmdlKG51bWJlck9mVHJpZXMsIG9yaWdpbmFsU3RhdGUs
IHJlc29sdmUsIHJlamVjdCkKKyAgICB7CisgICAgICAgIGxldCBuZXdTdGF0ZSA9IGludGVybmFs
cy5wYWdlTWVkaWFTdGF0ZSgpOworICAgICAgICBpZiAobmV3U3RhdGUgIT0gb3JpZ2luYWxTdGF0
ZSkgeworICAgICAgICAgICAgcmVzb2x2ZShuZXdTdGF0ZSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAobnVtYmVyT2ZUcmllcyA8PSAwKSB7CisgICAgICAg
ICAgICByZWplY3QoJ1BhZ2Ugc3RhdGUgZGlkIG5vdCBjaGFuZ2UgaW4gdGltZS4nKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB3
YWl0Rm9yUGFnZVN0YXRlQ2hhbmdlKC0tbnVtYmVyT2ZUcmllcywgb3JpZ2luYWxTdGF0ZSwgcmVz
b2x2ZSwgcmVqZWN0KTsgfSwgMTApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RUcmFjayh0
cmFjaywgcmVzb2x2ZSwgcmVqZWN0KQorICAgIHsKKyAgICAgICAgbGV0IGlzVmlkZW8gPSB0cmFj
ay5raW5kID09ICJ2aWRlbyI7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCkuaW5jbHVkZXMo
J0hhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlJykpOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KGludGVybmFscy5wYWdlTWVkaWFTdGF0ZSgpLmluY2x1ZGVzKCdIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZScpKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyYWNrLm9udW5tdXRlID0gKCkgPT4g
cmVqZWN0KCJHb3QgJ3VubXV0ZScgZXZlbnQgdW5leHBlY3RlZGx5ISIpOworICAgICAgICB0cmFj
ay5vbm11dGUgPSAoKSA9PiB7CisgICAgICAgICAgICBuZXcgUHJvbWlzZSgoaW5uZXJSZXNvbHZl
LCBpbm5lclJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIHdhaXRGb3JQYWdlU3RhdGVDaGFu
Z2UoMTAsIGludGVybmFscy5wYWdlTWVkaWFTdGF0ZSgpLCBpbm5lclJlc29sdmUsIGlubmVyUmVq
ZWN0KQorICAgICAgICAgICAgfSkudGhlbigocGFnZU1lZGlhU3RhdGUpID0+IHsKKworICAgICAg
ICAgICAgICAgIHRyYWNrLm9udW5tdXRlID0gKGV2dCkgPT4geworICAgICAgICAgICAgICAgICAg
ICB3YWl0Rm9yUGFnZVN0YXRlQ2hhbmdlKDEwLCBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKSwg
cmVzb2x2ZSwgcmVqZWN0KQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBh
Z2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAnSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZp
Y2UnIDogJ0hhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlJykpOworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UocGFnZU1lZGlhU3RhdGUuaW5jbHVkZXMoaXNWaWRlbyA/ICdIYXNNdXRl
ZEF1ZGlvQ2FwdHVyZURldmljZScgOiAnSGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UnKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlz
VmlkZW8gPyAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdIYXNBY3RpdmVWaWRlb0Nh
cHR1cmVEZXZpY2UnKSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShwYWdlTWVk
aWFTdGF0ZS5pbmNsdWRlcyhpc1ZpZGVvID8gJ0hhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZScg
OiAnSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlJykpOworICAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1UcmFja011dGVkKHRyYWNrLCBmYWxzZSkKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9KQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1UcmFja011
dGVkKHRyYWNrLCB0cnVlKTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIk11dGVk
IHN0YXRlIGRpZCBub3QgY2hhbmdlIGluIC41IHNlY29uZCIpLCA1MDApOworICAgIH0KKworICAg
IHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgdGVzdFRyYWNrKHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdLCByZXNvbHZlLCByZWplY3QpOworICAgICAgICB9KTsKKyAgICB9LCAiTXV0
ZSB2aWRlbyB0cmFjayBvbmx5Iik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgIHRlc3RUcmFjayhzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgcmVzb2x2ZSwgcmVqZWN0
KTsKKyAgICAgICAgfSk7CisgICAgfSwgIk11dGUgYXVkaW8gdHJhY2sgb25seSIpOworCisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="332875"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311969</attachid>
            <date>2017-06-04 13:18:43 -0700</date>
            <delta_ts>2017-06-04 13:57:02 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>track_muted_state_patch_3.txt</filename>
            <type>text/plain</type>
            <size>11028</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzc2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA2LTAzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
UGFnZSBjYXB0dXJlIHN0YXRlIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjg5NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzI0OTMzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL21lZGlhLXN0cmVhbS10cmFjay1tdXRl
ZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjptZWRpYVN0YXRlKTogVGVzdCBmb3IgYXVk
aW8gYW5kIHZpZGVvIG11dGUgb24gdGhlIHRyYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKTogQ2FsbCBzdGF0dXNEaWRDaGFuZ2Ugd2hl
biBtX21lZGlhU3RhdGUKKyAgICAgICAgY2hhbmdlcyBpbnN0ZWFkIG9mIG1fbXV0ZWQsIHNvIHRo
ZSBwYWdlIGlzIGluZm9ybWVkIHdoZW4ganVzdCBhdWRpbyBvciB2aWRlbyBtdXRlIHN0YXRlCisg
ICAgICAgIGNoYW5nZXMuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5oOgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpzZXRNZWRpYVN0cmVhbVRyYWNrTXV0ZWQpOiBOZXcuCisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisK
IDIwMTctMDYtMDMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDbGVhbnVwIGFyZ3VtZW50cyB0byBwcmVwYXJlUGxhdGZvcm1Gb250KCkgYW5kIGZv
bnRXaXRoRmFtaWx5KCkgaW4gRm9udENhY2hlQ29yZVRleHQuY3BwCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkocmV2aXNp
b24gMjE3NzI1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MSwyMCArMzQxLDE3IEBAIE1lZGlhUHJvZHVj
ZXI6Ok1lZGlhU3RhdGVGbGFncyBNZWRpYVN0cmUKICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAg
ICAgIHJldHVybiBzdGF0ZTsKIAotICAgIGlmIChtX3ByaXZhdGUtPmhhc0F1ZGlvKCkpIHsKLSAg
ICAgICAgc3RhdGUgfD0gSGFzQXVkaW9PclZpZGVvOwotICAgICAgICBpZiAobV9wcml2YXRlLT5o
YXNDYXB0dXJlQXVkaW9Tb3VyY2UoKSkgewotICAgICAgICAgICAgaWYgKG1fcHJpdmF0ZS0+bXV0
ZWQoKSkKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkg
eworICAgICAgICBpZiAoIXRyYWNrLT5pc0NhcHR1cmVUcmFjaygpIHx8IHRyYWNrLT5lbmRlZCgp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2UoKS50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKKyAgICAgICAgICAg
IGlmICh0cmFjay0+bXV0ZWQoKSkKICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBIYXNNdXRlZEF1
ZGlvQ2FwdHVyZURldmljZTsKICAgICAgICAgICAgIGVsc2UgaWYgKG1faXNQcm9kdWNpbmdEYXRh
ICYmIG1fcHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCiAgICAgICAgICAgICAgICAgc3RhdGUg
fD0gSGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
aWYgKG1fcHJpdmF0ZS0+aGFzVmlkZW8oKSkgewotICAgICAgICBzdGF0ZSB8PSBIYXNBdWRpb09y
VmlkZW87Ci0gICAgICAgIGlmIChtX3ByaXZhdGUtPmhhc0NhcHR1cmVWaWRlb1NvdXJjZSgpKSB7
Ci0gICAgICAgICAgICBpZiAobV9wcml2YXRlLT5tdXRlZCgpKQorICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaWYgKHRyYWNrLT5tdXRlZCgpKQogICAgICAgICAgICAgICAgIHN0YXRlIHw9
IEhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlOwogICAgICAgICAgICAgZWxzZSBpZiAobV9pc1By
b2R1Y2luZ0RhdGEgJiYgbV9wcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKICAgICAgICAgICAg
ICAgICBzdGF0ZSB8PSBIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7CkBAIC0zNzcsOSArMzc0
LDkgQEAgdm9pZCBNZWRpYVN0cmVhbTo6c3RhdHVzRGlkQ2hhbmdlKCkKIAogdm9pZCBNZWRpYVN0
cmVhbTo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCiB7Ci0gICAgYm9vbCBtdXRlZCA9IG1fcHJp
dmF0ZS0+bXV0ZWQoKTsKLSAgICBpZiAobV9pc011dGVkICE9IG11dGVkKSB7Ci0gICAgICAgIG1f
aXNNdXRlZCA9IG11dGVkOworICAgIE1lZGlhU3RhdGVGbGFncyBzdGF0ZSA9IG1lZGlhU3RhdGUo
KTsKKyAgICBpZiAobV9zdGF0ZSAhPSBzdGF0ZSkgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7
CiAgICAgICAgIHN0YXR1c0RpZENoYW5nZSgpOwogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlzaW9uIDIx
NzcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
aAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPE1l
ZGlhU3RyZWFtPiBjbG9uZSgpOwogCiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBt
X2lzQWN0aXZlOyB9Ci0gICAgYm9vbCBtdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNNdXRlZDsg
fQorICAgIGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUtPm11dGVkKCk7IH0K
IAogICAgIE1lZGlhU3RyZWFtUHJpdmF0ZSYgcHJpdmF0ZVN0cmVhbSgpIHsgcmV0dXJuIG1fcHJp
dmF0ZS5nZXQoKTsgfQogCkBAIC0xNzUsOCArMTc1LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8
T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwogCisgICAgTWVkaWFTdGF0ZUZsYWdzIG1fc3RhdGUg
eyBJc05vdFBsYXlpbmcgfTsKKwogICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2lzTXV0ZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzUHJvZHVjaW5nRGF0YSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCB7IGZhbHNlIH07
CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCShyZXZpc2lvbiAyMTc3MjUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDcgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OmFkZFRyYWNrKFJlZlB0cgogICAgIH0KIAogICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKG5vdGlmeUNs
aWVudE9wdGlvbik7CisgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRy
YWNrLCBOb3RpZnlDbGllbnRPcHRpb24gbm90aWZ5Q2xpZW50T3B0aW9uKQpAQCAtMTUyLDYgKzE1
Myw3IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayhNZWQKICAgICB9CiAK
ICAgICB1cGRhdGVBY3RpdmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CisgICAg
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
c3RhcnRQcm9kdWNpbmdEYXRhKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAJKHJldmlzaW9uIDIxNzcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA4OCw2ICs0MDg4LDExIEBAIHZvaWQgSW50ZXJuYWxz
OjpkZWxheU1lZGlhU3RyZWFtVHJhY2tTYW0KICAgICB0cmFjay5zb3VyY2UoKS5kZWxheVNhbXBs
ZXMoZGVsYXkpOwogfQogCit2b2lkIEludGVybmFsczo6c2V0TWVkaWFTdHJlYW1UcmFja011dGVk
KE1lZGlhU3RyZWFtVHJhY2smIHRyYWNrLCBib29sIG11dGVkKQoreworICAgIHRyYWNrLnNvdXJj
ZSgpLnNldE11dGVkKG11dGVkKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjE3NzI1KQor
KysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAt
NTgyLDYgKzU4Miw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBUcmFja0ZyYW1lUHJvbWlzZSA9IERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8SW1hZ2VEYXRhPj47CiAgICAgdm9pZCBncmFi
TmV4dE1lZGlhU3RyZWFtVHJhY2tGcmFtZShUcmFja0ZyYW1lUHJvbWlzZSYmKTsKICAgICB2b2lk
IGRlbGF5TWVkaWFTdHJlYW1UcmFja1NhbXBsZXMoTWVkaWFTdHJlYW1UcmFjayYsIGZsb2F0KTsK
KyAgICB2b2lkIHNldE1lZGlhU3RyZWFtVHJhY2tNdXRlZChNZWRpYVN0cmVhbVRyYWNrJiwgYm9v
bCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwJKHJldmlzaW9uIDIxNzcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTQzLDQgKzU0Myw1IEBAIGVudW0gRXZlbnRUaHJv
dHRsaW5nQmVoYXZpb3IgewogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRNZWRpYURl
dmljZVN0YXRlKERPTVN0cmluZyBkZXZpY2VJRCwgRE9NU3RyaW5nIHByb3BlcnR5LCBib29sZWFu
IHZhbHVlKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB2b2lkIGRlbGF5TWVkaWFT
dHJlYW1UcmFja1NhbXBsZXMoTWVkaWFTdHJlYW1UcmFjayB0cmFjaywgZmxvYXQgZGVsYXkpOwor
ICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgc2V0TWVkaWFTdHJlYW1UcmFja011
dGVkKE1lZGlhU3RyZWFtVHJhY2sgdHJhY2ssIGJvb2xlYW4gbXV0ZWQpOwogfTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIxNzcyNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA2LTAzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUGFnZSBjYXB0dXJlIHN0YXRl
IG5vdCByZXBvcnRlZCBjb3JyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3Mjg5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0OTMzMTg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11dGVkLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2stbXV0ZWQuaHRt
bDogQWRkZWQuCisKIDIwMTctMDYtMDIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gQWRkIGEgInN1cHBvcnRlZENvdW50cmllcyIgcHJvcGVydHkgdG8g
QXBwbGVQYXlQYXltZW50UmVxdWVzdApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9tZWRpYS1zdHJlYW0tdHJhY2stbXV0ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11dGVkLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21l
ZGlhLXN0cmVhbS10cmFjay1tdXRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1IEBACisKK1BBU1MgQ3JlYXRlIHN0cmVhbSAKK1BBU1MgTXV0ZSB2aWRlbyB0cmFjayBv
bmx5IAorUEFTUyBNdXRlIGF1ZGlvIHRyYWNrIG9ubHkgCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vbWVkaWEtc3RyZWFtLXRyYWNrLW11dGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9tZWRpYS1zdHJlYW0tdHJhY2stbXV0ZWQu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL21lZGlh
LXN0cmVhbS10cmFjay1tdXRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPk11dGUgdmlkZW8gYW5kIGF1ZGlvIHRyYWNrcyBpbmRlcGVuZGVudGx5
LCBtYWtlIHN1cmUgcGFnZSBzdGF0ZSB1cGRhdGVzIGNvcnJlY3RseS48L3RpdGxlPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKworICAgIGZ1bmN0aW9u
IHdhaXRGb3JQYWdlU3RhdGVDaGFuZ2UobnVtYmVyT2ZUcmllcywgb3JpZ2luYWxTdGF0ZSwgcmVz
b2x2ZSwgcmVqZWN0KQorICAgIHsKKyAgICAgICAgbGV0IG5ld1N0YXRlID0gaW50ZXJuYWxzLnBh
Z2VNZWRpYVN0YXRlKCk7CisgICAgICAgIGlmIChuZXdTdGF0ZSAhPSBvcmlnaW5hbFN0YXRlKSB7
CisgICAgICAgICAgICByZXNvbHZlKG5ld1N0YXRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChudW1iZXJPZlRyaWVzIDw9IDApIHsKKyAgICAgICAgICAg
IHJlamVjdCgnUGFnZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSBpbiB0aW1lLicpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHdhaXRG
b3JQYWdlU3RhdGVDaGFuZ2UoLS1udW1iZXJPZlRyaWVzLCBvcmlnaW5hbFN0YXRlLCByZXNvbHZl
LCByZWplY3QpOyB9LCAxMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdFRyYWNrKHRyYWNr
LCB0aXRsZSkKKyAgICB7CisgICAgICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgICAgICBsZXQgaXNWaWRlbyA9IHRyYWNrLmtpbmQgPT0gInZpZGVvIjsKKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UoaW50ZXJuYWxzLnBhZ2VNZWRpYVN0YXRlKCkuaW5jbHVkZXMoJ0hhc011dGVkVmlkZW9D
YXB0dXJlRGV2aWNlJykpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZmFsc2UoaW50ZXJu
YWxzLnBhZ2VNZWRpYVN0YXRlKCkuaW5jbHVkZXMoJ0hhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
JykpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRyYWNrLm9udW5tdXRl
ID0gKCkgPT4gcmVqZWN0KCJHb3QgJ3VubXV0ZScgZXZlbnQgdW5leHBlY3RlZGx5ISIpOworICAg
ICAgICAgICAgICAgIHRyYWNrLm9ubXV0ZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
bmV3IFByb21pc2UoKGlubmVyUmVzb2x2ZSwgaW5uZXJSZWplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdhaXRGb3JQYWdlU3RhdGVDaGFuZ2UoMTAsIGludGVybmFscy5wYWdlTWVk
aWFTdGF0ZSgpLCBpbm5lclJlc29sdmUsIGlubmVyUmVqZWN0KQorICAgICAgICAgICAgICAgICAg
ICB9KS50aGVuKChwYWdlTWVkaWFTdGF0ZSkgPT4geworCisgICAgICAgICAgICAgICAgICAgICAg
ICB0cmFjay5vbnVubXV0ZSA9IChldnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3YWl0Rm9yUGFnZVN0YXRlQ2hhbmdlKDEwLCBpbnRlcm5hbHMucGFnZU1lZGlhU3RhdGUoKSwg
cmVzb2x2ZSwgcmVqZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF90cnVlKHBhZ2VNZWRpYVN0YXRlLmluY2x1ZGVzKGlzVmlkZW8gPyAn
SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UnIDogJ0hhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNl
JykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShwYWdlTWVkaWFT
dGF0ZS5pbmNsdWRlcyhpc1ZpZGVvID8gJ0hhc011dGVkQXVkaW9DYXB0dXJlRGV2aWNlJyA6ICdI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZScpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShwYWdlTWVkaWFTdGF0ZS5pbmNsdWRlcyhpc1ZpZGVvID8gJ0hhc0FjdGl2
ZUF1ZGlvQ2FwdHVyZURldmljZScgOiAnSGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlJykpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9mYWxzZShwYWdlTWVkaWFTdGF0ZS5p
bmNsdWRlcyhpc1ZpZGVvID8gJ0hhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZScgOiAnSGFzQWN0
aXZlQXVkaW9DYXB0dXJlRGV2aWNlJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dGVybmFscy5zZXRNZWRpYVN0cmVhbVRyYWNrTXV0ZWQodHJhY2ssIGZhbHNlKQorICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
ICAgICAgICBpbnRlcm5hbHMuc2V0TWVkaWFTdHJlYW1UcmFja011dGVkKHRyYWNrLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiTXV0ZWQgc3RhdGUgZGlk
IG5vdCBjaGFuZ2UgaW4gLjUgc2Vjb25kIiksIDUwMCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSwgdGl0bGUpOworICAgIH0KKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAg
ICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzog
dHJ1ZSwgYXVkaW86IHRydWV9KQorICAgICAgICAgICAgLnRoZW4oKHN0cmVhbSkgPT4geworICAg
ICAgICAgICAgICAgIHRlc3RUcmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgIk11dGUg
dmlkZW8gdHJhY2sgb25seSIpOworICAgICAgICAgICAgICAgIHRlc3RUcmFjayhzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKVswXSwgIk11dGUgYXVkaW8gdHJhY2sgb25seSIpOworICAgICAgICAgICAg
fSk7CisgICAgfSwgIkNyZWF0ZSBzdHJlYW0iKTsKKworCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>