<?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>145311</bug_id>
          
          <creation_ts>2015-05-22 11:17:13 -0700</creation_ts>
          <short_desc>[Mac] Device picker menu should be persistent</short_desc>
          <delta_ts>2015-05-22 12:16:11 -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>528+ (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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096894</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-05-22 11:17:13 -0700</bug_when>
    <thetext>Don&apos;t delete the device menu picker when the last client goes away because device selection should be persistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096895</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-22 11:17:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/21077978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096899</commentid>
    <comment_count>2</comment_count>
      <attachid>253596</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-05-22 11:29:26 -0700</bug_when>
    <thetext>Created attachment 253596
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096901</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-22 11:32:06 -0700</bug_when>
    <thetext>Attachment 253596 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096909</commentid>
    <comment_count>4</comment_count>
      <attachid>253596</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-05-22 11:53:10 -0700</bug_when>
    <thetext>Comment on attachment 253596
Proposed patch.

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:-173
&gt; -        [m_outputDeviceMenuController removeObserver:m_outputDeviceMenuControllerDelegate.get() forKeyPath:externalOutputDevicePickedKeyName];

How do these observers get removed when the target picker goes away? I guess the point of this patch is to keep this object alive for as long as WebKit is running?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096914</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-05-22 12:08:30 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 253596 [details]
&gt; Proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253596&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:-173
&gt; &gt; -        [m_outputDeviceMenuController removeObserver:m_outputDeviceMenuControllerDelegate.get() forKeyPath:externalOutputDevicePickedKeyName];
&gt; 
&gt; How do these observers get removed when the target picker goes away? I guess
&gt; the point of this patch is to keep this object alive for as long as WebKit
&gt; is running?

They don&apos;t. This technically isn&apos;t a problem because this is a singleton, but I will add that code to the destructor for completeness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096917</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-05-22 12:15:55 -0700</bug_when>
    <thetext>Committed r184788: https://trac.webkit.org/r184788</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253596</attachid>
            <date>2015-05-22 11:29:26 -0700</date>
            <delta_ts>2015-05-22 12:16:11 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>persistent_picker_patch_2.txt</filename>
            <type>text/plain</type>
            <size>13386</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDc3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE1LTA1LTIyICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIERldmljZSBw
aWNrZXIgbWVudSBzaG91bGQgYmUgcGVyc2lzdGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OmFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KTogQWRkIGxvZ2dpbmcuCisgICAgICAg
IChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVQbGF5YmFja1RhcmdldFBp
Y2tlckNsaWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6cmVtb3ZlQWxsUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6
OmNsaWVudFN0YXRlRGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y29uZmln
dXJlUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nKTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFTdGF0ZSk6IERvbid0IHNldCBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlkYXRlIHVu
bGVzcworICAgICAgICB0aGVyZSBpcyBhbiBldmVudCBsaXN0ZW5lci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
OjpjcmVhdGUpOiBBZGQgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWM6OnBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVEZXZpY2Vz
RGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6YWRkUGVu
ZGluZ0FjdGlvbik6IFN0YXJ0IHRoZSB0aW1lciBhZnRlcgorICAgICAgICBhIGJyaWVmIHBhdXNl
IHRvIGRlYm91bmNlIG11bHRpcGxlIGlkZW50aWNhbCBub3RpZmljYXRpb25zLiAKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmN1cnJlbnREZXZpY2VEaWRD
aGFuZ2UpOiBBZGQgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6IEFkZCBsb2dn
aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3Rv
cE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMpOiBEb24ndCByZWxlYXNlCisgICAgICAgIHRoZSBt
ZW51IGNvbnRyb2xsZXIgZGVsZWdhdGUuCisgICAgICAgICgtW1dlYkFWT3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXJIZWxwZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6
Y29udGV4dDpdKTogQWRkIGxvZ2dpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0
V2lyZWxlc3NQbGF5YmFja1RhcmdldCk6IFVwZGF0ZSBsb2dnaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hvdWxkUGxheVRvUGxh
eWJhY2tUYXJnZXQpOiBEaXR0by4KKwogMjAxNS0wNS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFza0ltYWdlT3BlcmF0aW9uIGNvZGUgZG9lcyBub3Qg
bWFuYWdlIENhY2hlZEltYWdlQ2xpZW50cyBjb3JyZWN0bHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODQ3MTUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYm
ICFQTEFURk9STShJT1MpCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oIgogI2luY2x1
ZGUgIldlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQuaCIKIApAQCAtNzYsNiArNzcsOCBAQCB1
aW50NjRfdCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjphZGRQbGF5CiAgICAgaWYgKGluZGV4ICE9
IG5vdEZvdW5kKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIExPRyhNZWRpYSwgIldlYk1lZGlh
U2Vzc2lvbk1hbmFnZXI6OmFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KCVwICsgJWxsdSki
LCAmY2xpZW50LCBjb250ZXh0SWQpOworCiAgICAgbV9jbGllbnRTdGF0ZS5hcHBlbmQoc3RkOjpt
YWtlX3VuaXF1ZTxDbGllbnRTdGF0ZT4oY2xpZW50LCBjb250ZXh0SWQpKTsKIAogICAgIGlmICht
X2V4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlIHx8IG1fcGxheWJhY2tUYXJnZXQpCkBAIC05
MSwxMiArOTQsMTYgQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpyZW1vdmVQbGF5Ygog
ICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgTE9HKE1l
ZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJD
bGllbnQoJXAgKyAlbGx1KSIsICZjbGllbnQsIGNvbnRleHRJZCk7CisKICAgICBtX2NsaWVudFN0
YXRlLnJlbW92ZShpbmRleCk7CiAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJnZXRNb25pdG9y
aW5nQ29uZmlndXJhdGlvblRhc2sgfCBUYXJnZXRDbGllbnRzQ29uZmlndXJhdGlvblRhc2spOwog
fQogCiB2b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZUFsbFBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50cyhXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCiB7Cisg
ICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnRzKCVwKSIsICZjbGllbnQpOworCiAgICAgZm9yIChzaXplX3QgaSA9
IG1fY2xpZW50U3RhdGUuc2l6ZSgpOyBpID4gMDsgLS1pKSB7CiAgICAgICAgIGlmICgmbV9jbGll
bnRTdGF0ZVtpIC0gMV0tPmNsaWVudCA9PSAmY2xpZW50KQogICAgICAgICAgICAgbV9jbGllbnRT
dGF0ZS5yZW1vdmUoaSAtIDEpOwpAQCAtMTE2LDYgKzEyMyw3IEBAIHZvaWQgV2ViTWVkaWFTZXNz
aW9uTWFuYWdlcjo6c2hvd1BsYXliYWMKICAgICAgICAgc3RhdGUtPnJlcXVlc3RlZFBpY2tlciA9
IHN0YXRlID09IGNsaWVudFJlcXVlc3RpbmdQaWNrZXI7CiAKICAgICBib29sIGhhc0FjdGl2ZVJv
dXRlID0gZmxhZ3NBcmVTZXQobV9jbGllbnRTdGF0ZVtpbmRleF0tPmZsYWdzLCBNZWRpYVByb2R1
Y2VyOjpJc1BsYXlpbmdUb0V4dGVybmFsRGV2aWNlKTsKKyAgICBMT0coTWVkaWEsICJXZWJNZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoJXAgKyAlbGx1KSAtIGhh
c0FjdGl2ZVJvdXRlID0gJWkiLCAmY2xpZW50LCBjb250ZXh0SWQsIChpbnQpaGFzQWN0aXZlUm91
dGUpOwogICAgIHRhcmdldFBpY2tlcigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihGbG9hdFJl
Y3QocmVjdCksIGhhc0FjdGl2ZVJvdXRlKTsKIH0KIApAQCAtMTI4LDYgKzEzNiw3IEBAIHZvaWQg
V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGUKIAogICAgIGF1dG8mIGNoYW5nZWRD
bGllbnRTdGF0ZSA9IG1fY2xpZW50U3RhdGVbaW5kZXhdOwogICAgIE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBvbGRGbGFncyA9IGNoYW5nZWRDbGllbnRTdGF0ZS0+ZmxhZ3M7CisgICAg
TE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6Y2xpZW50U3RhdGVEaWRDaGFuZ2Uo
JXAgKyAlbGx1KSAtIG5ldyBmbGFncyA9IDB4JXgsIG9sZCBmbGFncyA9IDB4JXgiLCAmY2xpZW50
LCBjb250ZXh0SWQsIG5ld0ZsYWdzLCBvbGRGbGFncyk7CiAgICAgaWYgKG5ld0ZsYWdzID09IG9s
ZEZsYWdzKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3NSw2ICsxODQsOCBAQCB2b2lkIFdlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFBsYXliYWNrCiAKIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFu
YWdlcjo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoYm9vbCBhdmFpbGFi
bGUpCiB7CisgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6ZXh0ZXJuYWxP
dXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UgLSBjbGllbnRzID0gJXp1LCBhdmFpbGFibGUg
PSAlaSIsIG1fY2xpZW50U3RhdGUuc2l6ZSgpLCAoaW50KWF2YWlsYWJsZSk7CisKICAgICBtX2V4
dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlID0gYXZhaWxhYmxlOwogICAgIGZvciAoYXV0byYg
c3RhdGUgOiBtX2NsaWVudFN0YXRlKQogICAgICAgICBzdGF0ZS0+Y2xpZW50LmV4dGVybmFsT3V0
cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKHN0YXRlLT5jb250ZXh0SWQsIGF2YWlsYWJsZSk7
CkBAIC0yNDYsNiArMjU3LDggQEAgdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjb25maWd1
cmVQbAogICAgICAgICB9CiAgICAgfQogCisgICAgTE9HKE1lZGlhLCAiV2ViTWVkaWFTZXNzaW9u
TWFuYWdlcjo6Y29uZmlndXJlUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nIC0gbW9uaXRvcmluZ1Jl
cXVpcmVkID0gJWkiLCAoaW50KW1vbml0b3JpbmdSZXF1aXJlZCk7CisKICAgICBpZiAobW9uaXRv
cmluZ1JlcXVpcmVkKQogICAgICAgICB0YXJnZXRQaWNrZXIoKS5zdGFydGluZ01vbml0b3JpbmdQ
bGF5YmFja1RhcmdldHMoKTsKICAgICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NDcxNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyODEsMTAgKzYyODEs
OCBAQCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgSFRNTE1lZGlhCiAgICAgaWYgKGlz
UGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpKQogICAgICAgICBzdGF0ZSB8PSBJc1Bs
YXlpbmdUb0V4dGVybmFsRGV2aWNlOwogCi0gICAgaWYgKCFtX21lZGlhU2Vzc2lvbi0+d2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICgobV9oYXNQbGF5
YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyB8fCBoYXNBY3RpdmVWaWRlbykgJiYgbV9w
bGF5ZXItPmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSkKLSAgICAgICAgICAgIHN0
YXRlIHw9IFJlcXVpcmVzUGxheWJhY2tUYXJnZXRNb25pdG9yaW5nOwotICAgIH0KKyAgICBpZiAo
IW1fbWVkaWFTZXNzaW9uLT53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgqdGhpcykgJiYg
bV9oYXNQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUxpc3RlbmVycyAmJiBtX3BsYXllci0+Y2Fu
UGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpKQorICAgICAgICBzdGF0ZSB8PSBSZXF1aXJl
c1BsYXliYWNrVGFyZ2V0TW9uaXRvcmluZzsKIAogICAgIGJvb2wgcmVxdWlyZVVzZXJHZXN0dXJl
ID0gbV9tZWRpYVNlc3Npb24tPmhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lv
bjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9BdXRvcGxheVRvRXh0ZXJuYWxEZXZpY2UpOwogICAgIGlm
IChoYXNBY3RpdmVWaWRlbyAmJiAoIXJlcXVpcmVVc2VyR2VzdHVyZSB8fCAoaGFzQXVkaW8gJiYg
IWxvb3AoKSkpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCShyZXZpc2lvbiAxODQ3MTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQogCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2ltcG9ydCA8V2ViQ29yZS9BVkZvdW5kYXRpb25TUEkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvQVZLaXRTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CkBAIC02Niw2ICs2Nyw4IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQp
a2V5UGEKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgZG91YmxlIHBlbmRp
bmdBY3Rpb25JbnRlcnZhbCA9IDEuMCAvIDEwLjA7CisKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyTWFjPiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpjcmVh
dGUoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjPihuZXcgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyhjbGllbnQpKTsKQEAgLTg3LDYgKzkwLDggQEAgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6fk1lZGlhUGxheQogCiB2b2lkIE1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWM6OnBlbmRpbmdBY3Rpb25UaW1lckZpcmVkKCkKIHsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpwZW5kaW5nQWN0aW9uVGltZXJG
aXJlZCAtIGZsYWdzID0gMHgleCIsIG1fcGVuZGluZ0FjdGlvbkZsYWdzKTsKKwogICAgIGlmICgh
bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlciB8fCAhbV9jbGllbnQpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMTA1LDYgKzExMCw4IEBAIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
Yzo6cGVuZGkKIAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjphdmFpbGFibGVE
ZXZpY2VzRGlkQ2hhbmdlKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjphdmFpbGFibGVEZXZpY2VzRGlkQ2hhbmdlIC0gYXZhaWxhYmxlID0gJWkiLCAo
aW50KWRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKTsKKwogICAg
IGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTIzLDYgKzEzMCw4IEBAIEFW
T3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUeXBlICpNZWRpYVAKICAgICAgICAgW21fb3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VB
dmFpbGFibGVLZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250
ZXh0Om51bGxwdHJdOwogICAgICAgICBbbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlci5nZXQo
KSBhZGRPYnNlcnZlcjptX291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCkg
Zm9yS2V5UGF0aDpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWUgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bnVsbHB0cl07CiAKKyAgICAgICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyIC0gYWxs
b2NhdGVkIG1lbnUgY29udHJvbGxlciAlcCIsIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIu
Z2V0KCkpOworCiAgICAgICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgp
LmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKQogICAgICAgICAgICAgYXZhaWxhYmxlRGV2
aWNlc0RpZENoYW5nZSgpOwogICAgIH0KQEAgLTEzNSw2ICsxNDQsOCBAQCB2b2lkIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQCiAgICAgaWYgKCFtX2NsaWVudCB8fCBtX3Nob3dp
bmdNZW51KQogICAgICAgICByZXR1cm47CiAKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIgLSBjaGVja0FjdGl2ZVJv
dXRlID0gJWkiLCAoaW50KWNoZWNrQWN0aXZlUm91dGUpOworCiAgICAgQVZPdXRwdXREZXZpY2VN
ZW51Q29udHJvbGxlclR5cGUgKnBpY2tlciA9IGRldmljZVBpY2tlcigpOwogICAgIGlmICghW3Bp
Y2tlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3dNZW51Rm9yUmVjdDphcHBlYXJh
bmNlTmFtZTphbGxvd1Jlc2VsZWN0aW9uT2ZTZWxlY3RlZE91dHB1dERldmljZTopXSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTUwLDExICsxNjEsMTMgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpzaG93UAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjphZGRQ
ZW5kaW5nQWN0aW9uKFBlbmRpbmdBY3Rpb25GbGFncyBhY3Rpb24pCiB7CiAgICAgbV9wZW5kaW5n
QWN0aW9uRmxhZ3MgfD0gYWN0aW9uOwotICAgIG1fcGVuZGluZ0FjdGlvblRpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKKyAgICBtX3BlbmRpbmdBY3Rpb25UaW1lci5zdGFydE9uZVNob3QocGVuZGluZ0Fj
dGlvbkludGVydmFsKTsKIH0KIAogdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpj
dXJyZW50RGV2aWNlRGlkQ2hhbmdlKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjOjpjdXJyZW50RGV2aWNlRGlkQ2hhbmdlIik7CisKICAgICBpZiAoIW1f
Y2xpZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTE2MywxNiArMTc2LDE2IEBAIHZvaWQgTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6Y3VycmUKIAogdm9pZCBNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTWFjOjpzdGFydGluZ01vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQogeworICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRv
cmluZ1BsYXliYWNrVGFyZ2V0cyIpOworCiAgICAgZGV2aWNlUGlja2VyKCk7CiB9CiAKIHZvaWQg
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3RvcE1vbml0b3JpbmdQbGF5YmFja1Rhcmdl
dHMoKQogewotICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyKSB7Ci0gICAgICAg
IFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2
aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07Ci0gICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250
cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0
ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV07Ci0g
ICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBudWxscHRyOwotICAgIH0KKyAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzdG9wTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cyIpOworCisgICAgLy8gRklYTUU6IHVwZGF0ZSBvbmNlIHJkYXI6Ly8y
MTA2MjUzNiBoYXMgYmVlbiBmaXhlZC4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpAQCAt
MjAyLDYgKzIxNSw4IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGEK
ICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIAorICAgIExPRyhNZWRpYSwg
Ik1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6Om9ic2VydmVWYWx1ZUZvcktleVBhdGggLSBr
ZXkgPSAlcyIsIFtrZXlQYXRoIFVURjhTdHJpbmddKTsKKwogICAgIGlmICghW2tleVBhdGggaXNF
cXVhbFRvU3RyaW5nOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV0gJiYgIVtr
ZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZVBpY2tlZEtleU5hbWVd
KQogICAgICAgICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkocmV2aXNp
b24gMTg0NzE1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjc4OSw3ICsyNzg5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOgogICAgIE1lZGlhUGxheWJhY2tUYXJnZXRNYWMqIG1hY1RhcmdldCA9IHRvTWVk
aWFQbGF5YmFja1RhcmdldE1hYygmdGFyZ2V0LmdldCgpKTsKIAogICAgIG1fb3V0cHV0Q29udGV4
dCA9IG1hY1RhcmdldC0+b3V0cHV0Q29udGV4dCgpOwotICAgIExPRyhNZWRpYSwgIk1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoJXAp
IC0gdGFyZ2V0ID0gJXAiLCB0aGlzLCBtX291dHB1dENvbnRleHQuZ2V0KCkpOworICAgIExPRyhN
ZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFdpcmVsZXNzUGxh
eWJhY2tUYXJnZXQoJXApIC0gdGFyZ2V0ID0gJXAsIGRldmljZSBuYW1lID0gJXMiLCB0aGlzLCBt
X291dHB1dENvbnRleHQuZ2V0KCksIFttX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFtZSBV
VEY4U3RyaW5nXSk7CiAKICAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCB8fCAhbV9vdXRwdXRDb250
ZXh0LmdldCgpLmRldmljZU5hbWUpCiAgICAgICAgIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFy
Z2V0KGZhbHNlKTsKQEAgLTI4MDQsMTQgKzI4MDQsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOgogCiAgICAgQVZPdXRwdXRDb250ZXh0ICpuZXdDb250ZXh0ID0g
c2hvdWxkUGxheSA/IG1fb3V0cHV0Q29udGV4dC5nZXQoKSA6IG5pbDsKICAgICBSZXRhaW5QdHI8
QVZPdXRwdXRDb250ZXh0PiBjdXJyZW50Q29udGV4dCA9IG1fYXZQbGF5ZXIuZ2V0KCkub3V0cHV0
Q29udGV4dDsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KCVwKSAtIHRhcmdldCA9ICVwLCBz
aG91bGRQbGF5ID0gJXMiLCB0aGlzLCBuZXdDb250ZXh0LCBib29sU3RyaW5nKHNob3VsZFBsYXkp
KTsKKwogICAgIGlmICgoIW5ld0NvbnRleHQgJiYgIWN1cnJlbnRDb250ZXh0LmdldCgpKSB8fCBb
Y3VycmVudENvbnRleHQuZ2V0KCkgaXNFcXVhbDpuZXdDb250ZXh0XSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7CiAgICAgbV9hdlBsYXllci5nZXQoKS5v
dXRwdXRDb250ZXh0ID0gbmV3Q29udGV4dDsKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7
Ci0KLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCglcCkgLSB0YXJnZXQgPSAlcCwgcGxheWluZyB0
byB0YXJnZXQgPSAlcyIsIHRoaXMsIG1fYXZQbGF5ZXIuZ2V0KCkub3V0cHV0Q29udGV4dCwgYm9v
bFN0cmluZyhzaG91bGRQbGF5KSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6aXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>