<?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>156633</bug_id>
          
          <creation_ts>2016-04-15 12:08:28 -0700</creation_ts>
          <short_desc>[Mac][EME] Protected content over HLS is not notified when a HDCP violation occurs.</short_desc>
          <delta_ts>2016-04-18 09:14:24 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184156</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 12:08:28 -0700</bug_when>
    <thetext>[Mac][EME] Protected content over HLS is not notified when a HDCP violation occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184159</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-04-15 12:14:35 -0700</bug_when>
    <thetext>rdar://problem/24328552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184162</commentid>
    <comment_count>2</comment_count>
      <attachid>276492</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 12:18:38 -0700</bug_when>
    <thetext>Created attachment 276492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184165</commentid>
    <comment_count>3</comment_count>
      <attachid>276492</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-04-15 12:25:16 -0700</bug_when>
    <thetext>Comment on attachment 276492
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:62
&gt; +        return nullptr;

Nit: nil

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:66
&gt; +    [player addObserver:self forKeyPath:@&quot;outputObscuredDueToInsufficientExternalProtection&quot; options:NSKeyValueObservingOptionNew context:nullptr];

Ditto

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:89
&gt; +                strongSelf-&gt;_parent-&gt;playerDidReceiveError(error.get());

_parent is a raw pointer, should probably NULL-check it

&gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:100
&gt; +    : m_parent(parent-&gt;createWeakPtr())

Why is this change necessary, it doesn&apos;t seem to be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184235</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 14:49:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 276492 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276492&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:62
&gt; &gt; +        return nullptr;
&gt; 
&gt; Nit: nil

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:66
&gt; &gt; +    [player addObserver:self forKeyPath:@&quot;outputObscuredDueToInsufficientExternalProtection&quot; options:NSKeyValueObservingOptionNew context:nullptr];
&gt; 
&gt; Ditto

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:89
&gt; &gt; +                strongSelf-&gt;_parent-&gt;playerDidReceiveError(error.get());
&gt; 
&gt; _parent is a raw pointer, should probably NULL-check it

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:100
&gt; &gt; +    : m_parent(parent-&gt;createWeakPtr())
&gt; 
&gt; Why is this change necessary, it doesn&apos;t seem to be used.

It actually is used in a lot of places, everywhere that currently uses m_parent will be impacted by this change.  But if the CDM outlives its associated MediaPlayer (which can happen), it needs to be notified and disconnect it&apos;s back reference.  The easiest way to do this is with a weak pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184237</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-15 14:55:44 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 276492 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=276492&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:62
&gt; &gt; &gt; +        return nullptr;
&gt; &gt; 
&gt; &gt; Nit: nil
&gt; 
&gt; Ok.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:66
&gt; &gt; &gt; +    [player addObserver:self forKeyPath:@&quot;outputObscuredDueToInsufficientExternalProtection&quot; options:NSKeyValueObservingOptionNew context:nullptr];
&gt; &gt; 
&gt; &gt; Ditto
&gt; 
&gt; Ok.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:89
&gt; &gt; &gt; +                strongSelf-&gt;_parent-&gt;playerDidReceiveError(error.get());
&gt; &gt; 
&gt; &gt; _parent is a raw pointer, should probably NULL-check it
&gt; 
&gt; Ok.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:100
&gt; &gt; &gt; +    : m_parent(parent-&gt;createWeakPtr())
&gt; &gt; 
&gt; &gt; Why is this change necessary, it doesn&apos;t seem to be used.
&gt; 
&gt; It actually is used in a lot of places, everywhere that currently uses
&gt; m_parent will be impacted by this change.  But if the CDM outlives its
&gt; associated MediaPlayer (which can happen), it needs to be notified and
&gt; disconnect it&apos;s back reference.  The easiest way to do this is with a weak
&gt; pointer.

Actually, when I say &quot;lots of places&quot; I mean &quot;that one place I added a null check in generateKeyRequest()&quot;.  But it _is_ used. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184695</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-04-18 09:14:24 -0700</bug_when>
    <thetext>Committed r199672: &lt;http://trac.webkit.org/changeset/199672&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276492</attachid>
            <date>2016-04-15 12:18:38 -0700</date>
            <delta_ts>2016-04-15 12:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156633-20160415121852.patch</filename>
            <type>text/plain</type>
            <size>8138</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5NjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUyZmQzZmNiNzk2NmIw
ZGExMzUwMTFlNzVjNjhiNDIxYmFkNjJjYS4uY2U2ZmI1MjJkNTY0Zjc5MTgyMWFmYTY2MTVkODlh
OGVkYWQwMWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE2LTA0LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdW0VNRV0gUHJvdGVj
dGVkIGNvbnRlbnQgb3ZlciBITFMgaXMgbm90IG5vdGlmaWVkIHdoZW4gYSBIRENQIHZpb2xhdGlv
biBvY2N1cnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTY2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQYXNzIHRocm91Z2ggdGhlIGV4aXN0aW5nICJvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNp
ZW50RXh0ZXJuYWxQcm90ZWN0aW9uIiBzdGF0dXMgYXMgYW4KKyAgICAgICAgZXJyb3IsIHNpbWls
YXJseSB0byB3aGF0IHdlIGRvIGZvciBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDOjp+Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTKToKKyAgICAgICAgKC1bV2ViQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbk9iakNMaXN0ZW5lciBpbml0V2l0aFBhcmVudDpwbGF5ZXI6XSk6
CisgICAgICAgICgtW1dlYkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDTGlzdGVuZXIgaW52YWxp
ZGF0ZV0pOgorICAgICAgICAoLVtXZWJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQ0xpc3RlbmVy
IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Q0RNU2Vzc2lvbkFWRm91
bmRhdGlvbk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9i
akM6On5DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpwbGF5ZXJEaWRSZWNlaXZlRXJyb3Ip
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmF2UGxheWVyKToKKworMjAxNi0wNC0xNSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwogICAgICAgICBBdWRpbyBlbGVtZW50cyBz
aG91bGQgYmUgYWJsZSB0byBoYXZlIGEgY29udHJvbHMgbWFuYWdlci4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjYzMAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAppbmRleCA3MmU5
YmY3ZDIwNjViODRlNjlmYzMwNzViNTlhODc1YmI2YzJmYTZkLi4xYmUwNTA1MTM5MDEzZGFmNGVh
ZDAzYzZjMzcwYjdiNDUwYzBhZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaW5j
bHVkZSAiQ0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKIAogT0JK
Q19DTEFTUyBBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdDsKK09CSkNfQ0xBU1MgV2ViQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbk9iakNMaXN0ZW5lcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00MCw3ICs0Miw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM7CiBjbGFzcyBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyA6IHB1YmxpYyBDRE1TZXNzaW9u
IHsKIHB1YmxpYzoKICAgICBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDKiBwYXJlbnQsIENETVNlc3Npb25DbGllbnQqKTsKLSAgICB2
aXJ0dWFsIH5DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQygpIHsgfQorICAgIHZpcnR1YWwgfkNE
TVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKCk7CiAKICAgICBDRE1TZXNzaW9uVHlwZSB0eXBlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVBVkZvdW5kYXRpb25PYmpDOyB9CiAgICAg
dm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xp
ZW50ID0gY2xpZW50OyB9CkBAIC00OSwxMSArNTEsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVs
ZWFzZUtleXMoKSBvdmVycmlkZTsKICAgICBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVmUHRy
PFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdWlu
dDMyX3QmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogCisgICAgdm9pZCBwbGF5ZXJEaWRSZWNlaXZl
RXJyb3IoTlNFcnJvciAqKTsKKwogcHJvdGVjdGVkOgotICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMqIG1fcGFyZW50OworICAgIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQz4gbV9wYXJlbnQ7CiAgICAgQ0RNU2Vzc2lvbkNsaWVudCogbV9jbGll
bnQ7CiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkOwogICAgIFJldGFpblB0cjxBVkFzc2V0UmVzb3Vy
Y2VMb2FkaW5nUmVxdWVzdD4gbV9yZXF1ZXN0OworICAgIFJldGFpblB0cjxXZWJDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQ0xpc3RlbmVyPiBtX2xpc3RlbmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRl
eCAwODEwODdiNTYxMTI0NTZlOTMyYTQyOGVjNTM3ZjgxOTc3YzhlMmZkLi4zNGMwNGZiOWMwZjlh
Yzc1YjEwNDYxYTUyY2I1NDIxYTU5MTM1NjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzgsNiArMzgsNyBAQAog
I2ltcG9ydCAiV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VkZvdW5kYXRpb24uaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CisjaW1wb3J0IDx3
dGYvTWFpblRocmVhZC5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRh
dGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCkBAIC00NSwx
OSArNDYsNzggQEAgU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZBc3NldFJlc291cmNl
TG9hZGluZ1JlcXVlc3QpCiAjZGVmaW5lIEFWVVJMQXNzZXQgZ2V0QVZVUkxBc3NldENsYXNzKCkK
ICNkZWZpbmUgQVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3QgZ2V0QVZBc3NldFJlc291cmNl
TG9hZGluZ1JlcXVlc3QoKQogCitAaW50ZXJmYWNlIFdlYkNETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDTGlzdGVuZXIgOiBOU09iamVjdCB7CisgICAgV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWRm91bmRh
dGlvbk9iakMqIF9wYXJlbnQ7CisgICAgUmV0YWluUHRyPEFWUGxheWVyPiBfcGxheWVyOworfQor
LSAoaWQpaW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpD
KilwYXJlbnQgcGxheWVyOihBVlBsYXllciAqKXBsYXllcjsKKy0gKHZvaWQpaW52YWxpZGF0ZTsK
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDTGlz
dGVuZXIKKy0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpDRE1TZXNzaW9uQVZGb3VuZGF0
aW9uT2JqQyopcGFyZW50IHBsYXllcjooQVZQbGF5ZXIgKilwbGF5ZXIKK3sKKyAgICBzZWxmID0g
W3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBfcGFyZW50ID0gcGFyZW50OworICAgIF9wbGF5ZXIgPSBwbGF5ZXI7CisgICAgW3BsYXll
ciBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZm
aWNpZW50RXh0ZXJuYWxQcm90ZWN0aW9uIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRp
b25OZXcgY29udGV4dDpudWxscHRyXTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lk
KWludmFsaWRhdGUKK3sKKyAgICBfcGFyZW50ID0gbnVsbHB0cjsKKyAgICBbX3BsYXllciByZW1v
dmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNp
ZW50RXh0ZXJuYWxQcm90ZWN0aW9uIl07CisgICAgX3BsYXllciA9IG51bGxwdHI7Cit9CisKKy0g
KHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0
OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAq
KWNvbnRleHQKK3sKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFN
KG9iamVjdCk7CisgICAgQVNTRVJUKF9wYXJlbnQpOworCisgICAgaWYgKFtrZXlQYXRoIGlzRXF1
YWxUbzpAIm91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb24i
XSkgeworICAgICAgICBpZiAoW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5l
d0tleV0gaW50VmFsdWVdID09IDEpIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0Vycm9yPiBl
cnJvciA9IFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAImNvbS5hcHBsZS5XZWJLaXQiIGNvZGU6
J0hEQ1AnIHVzZXJJbmZvOm5pbF07CisgICAgICAgICAgICBSZXRhaW5QdHI8V2ViQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakNMaXN0ZW5lcj4gc3Ryb25nU2VsZiA9IHsgc2VsZiB9OworICAgICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwgZXJyb3JdIHsKKyAgICAgICAgICAg
ICAgICBzdHJvbmdTZWxmLT5fcGFyZW50LT5wbGF5ZXJEaWRSZWNlaXZlRXJyb3IoZXJyb3IuZ2V0
KCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMqIHBhcmVudCwgQ0RNU2Vzc2lvbkNsaWVudCog
Y2xpZW50KQotICAgIDogbV9wYXJlbnQocGFyZW50KQorICAgIDogbV9wYXJlbnQocGFyZW50LT5j
cmVhdGVXZWFrUHRyKCkpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3Nlc3Npb25J
ZChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCisgICAgLCBtX2xpc3RlbmVyKGFkb3B0TlMo
W1tXZWJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQ0xpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBh
cmVudDp0aGlzIHBsYXllcjpwYXJlbnQtPmF2UGxheWVyKCldKSkKK3sKK30KKworQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakM6On5DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQygpCiB7CisgICAg
W21fbGlzdGVuZXIgaW52YWxpZGF0ZV07CiB9CiAKIFJlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNz
aW9uQVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1aW50MzJfdCYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVT
RURfUEFSQU0obWltZVR5cGUpOwogCisgICAgaWYgKCFtX3BhcmVudCkgeworICAgICAgICBlcnJv
ckNvZGUgPSBDRE06OlVua25vd25FcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCiAgICAgU3RyaW5nIGtleVVSSTsKICAgICBTdHJpbmcga2V5SUQ7CiAgICAgUmVmUHRyPFVp
bnQ4QXJyYXk+IGNlcnRpZmljYXRlOwpAQCAtMTA4LDYgKzE2OCwxNSBAQCBib29sIENETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDOjp1cGRhdGUoVWludDhBcnJheSoga2V5LCBSZWZQdHI8VWludDhB
cnJheT4mIG5leAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIENETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDOjpwbGF5ZXJEaWRSZWNlaXZlRXJyb3IoTlNFcnJvciAqZXJyb3IpCit7CisgICAg
aWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5zaWduZWQgbG9uZyBjb2Rl
ID0gbWVkaWFLZXlFcnJvclN5c3RlbUNvZGUoZXJyb3IpOworICAgIG1fY2xpZW50LT5zZW5kRXJy
b3IoQ0RNU2Vzc2lvbkNsaWVudDo6TWVkaWFLZXlFcnJvckRvbWFpbiwgY29kZSk7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMGU1Y2YxMWJjZmRjMDkyNTczOWZi
YjdiNmI2Y2VkZGUzNzI4YmFjMi4uNWFkNWQwOGMxMjA0ODE3ZGQ3M2NhZGYxMjYwMzU0ZGNlMjcz
ZGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwcm9jZXNzQ3VlKE5TQXJyYXkgKiwgTlNBcnJheSAqLCBjb25zdCBNZWRpYVRpbWUm
KTsKICAgICB2b2lkIGZsdXNoQ3VlcygpOwogI2VuZGlmCisgICAgQVZQbGF5ZXIgKmF2UGxheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9hdlBsYXllci5nZXQoKTsgfQogICAgIAogI2lmIEhBVkUoQVZG
T1VOREFUSU9OX0xPQURFUl9ERUxFR0FURSkKICAgICBib29sIHNob3VsZFdhaXRGb3JMb2FkaW5n
T2ZSZXNvdXJjZShBVkFzc2V0UmVzb3VyY2VMb2FkaW5nUmVxdWVzdCopOwo=
</data>
<flag name="review"
          id="300787"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>