<?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>199471</bug_id>
          
          <creation_ts>2019-07-03 15:35:10 -0700</creation_ts>
          <short_desc>HTMLMediaElement can hold onto display sleep assertion while process is suspended.</short_desc>
          <delta_ts>2019-07-03 17:08:09 -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>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>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1550045</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-03 15:35:10 -0700</bug_when>
    <thetext>HTMLMediaElement can hold onto display sleep assertion while process is suspended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550046</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-03 15:35:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/52124320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550050</commentid>
    <comment_count>2</comment_count>
      <attachid>373424</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-03 15:39:24 -0700</bug_when>
    <thetext>Created attachment 373424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550058</commentid>
    <comment_count>3</comment_count>
      <attachid>373424</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-07-03 15:48:51 -0700</bug_when>
    <thetext>Comment on attachment 373424
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6927
&gt; +    if (PlatformMediaSessionManager::sharedManager().processIsSuspended())
&gt; +        return SleepType::None;

Is this correct even for audio? You can’t hear audio when the process is suspended?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550059</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-03 15:51:07 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 373424 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=373424&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:6927
&gt; &gt; +    if (PlatformMediaSessionManager::sharedManager().processIsSuspended())
&gt; &gt; +        return SleepType::None;
&gt; 
&gt; Is this correct even for audio? You can’t hear audio when the process is
&gt; suspended?

The danger is that, if the process is suspended, it will never get a chance to release it&apos;s process assertion, and so even if audio playback ends in mediaserverd (like when it reaches the end of the file), we&apos;ll keep the system from sleeping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550062</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-07-03 15:52:53 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #4)
&gt; The danger is that, if the process is suspended, it will never get a chance
&gt; to release it&apos;s process assertion, and so even if audio playback ends in
&gt; mediaserverd (like when it reaches the end of the file), we&apos;ll keep the
&gt; system from sleeping.

OK, so we’re losing the feature where you can listen to a whole podcast without the system sleeping? And need to find some other way to implement that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550063</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-07-03 16:02:38 -0700</bug_when>
    <thetext>No. (In reply to Darin Adler from comment #5)
&gt; (In reply to Jer Noble from comment #4)
&gt; &gt; The danger is that, if the process is suspended, it will never get a chance
&gt; &gt; to release it&apos;s process assertion, and so even if audio playback ends in
&gt; &gt; mediaserverd (like when it reaches the end of the file), we&apos;ll keep the
&gt; &gt; system from sleeping.
&gt; 
&gt; OK, so we’re losing the feature where you can listen to a whole podcast
&gt; without the system sleeping? And need to find some other way to implement
&gt; that?

No, for two reasons: 1) on iOS, mediaserverd will keep the system from sleeping while audio is being generated and 2) WebKit in the UIProcess will take out a process assertion on the WebContent when it is generating audio. So 1) makes having our own system sleep assertion a “belt and suspenders” thing, and 2) should ensure the WebCintent process is never suspended in the first place during the “podcast playback” scenario. 

But because the WebContent process could get suspended the next turn of the run loop after the processWillSuspend() call turns, we may not ever receive the mediaPlayerRateDidChange() callback before suspending. This patch just protects against the situation where a suspend breaks our ability to release our system sleep assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550099</commentid>
    <comment_count>7</comment_count>
      <attachid>373424</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-03 17:08:08 -0700</bug_when>
    <thetext>Comment on attachment 373424
Patch

Clearing flags on attachment: 373424

Committed r247118: &lt;https://trac.webkit.org/changeset/247118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1550100</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-03 17:08:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373424</attachid>
            <date>2019-07-03 15:39:24 -0700</date>
            <delta_ts>2019-07-03 17:08:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199471-20190703153923.patch</filename>
            <type>text/plain</type>
            <size>6312</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk2YjZkMDJhYWY0MTk3
ZWZkMTJmOTI4MDYxMjU5ZjE5NTc1ODA1MS4uMjEyMjJhNzJiOWIxMDhjZDRjMTU1Mzc2YWU3Yjlk
NTMwNTEzZjdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA3LTAzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQg
Y2FuIGhvbGQgb250byBkaXNwbGF5IHNsZWVwIGFzc2VydGlvbiB3aGlsZSBwcm9jZXNzIGlzIHN1
c3BlbmRlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5OTQ3MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTIxMjQzMjA+CisKKyAgICAgICAgSWYg
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBzdXNwZW5kZWQgYmVmb3JlIEhUTUxNZWRpYUVsZW1l
bnQgZ2V0cyBhIGNhbGxiYWNrIHRlbGxpbmcgaXQKKyAgICAgICAgdGhhdCB0aGUgTWVkaWFQbGF5
ZXIgaGFzIHN0b3BwZWQgcGxheWluZywgdGhlIFNsZWVwRGlzYWJsZXIgbWF5IHN0YXkgc2V0IChh
bmQgaG9sZCBhIGRpc3BsYXkKKyAgICAgICAgb3Igc3lzdGVtIHNsZWVwIGFzc2VydGlvbikgZm9y
IHRoZSBlbnRpcmUgZHVyYXRpb24gdGhlIHByb2Nlc3MgaXMgc3VzcGVuZGVkLCBjYXVzaW5nIGV4
Y2VzcworICAgICAgICBwb3dlciBkcmFpbi4KKworICAgICAgICBBZGQgYSBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbkNsaWVudCBtZXRob2QgKGFuZCBhbiBpbXBsZW1lbnRhdGlvbiBpbiBIVE1MTWVkaWFF
bGVtZW50KSB3aGljaCB3aWxsCisgICAgICAgIGJlIGNhbGxlZCBkdXJpbmcgdGhlIHByZXBlcmF0
aW9uIGZvciBwcm9jZXNzIHN1c3BlbnNpb24sIGFuZCBpbiB0aGlzIGNhbGxiYWNrLCBjbGVhciB0
aGUKKyAgICAgICAgU2xlZXBEaXNhYmxlciB0b2tlbi4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZXAgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc0lzU3VzcGVu
ZGVkQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50Ojpwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2Vk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9j
ZXNzV2lsbFN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6cHJvY2Vzc0lzU3VzcGVuZGVkIGNvbnN0KToKKwogMjAxOS0wNy0w
MyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExT
TF0gV0hMU0w6OkFTVDo6Tm9kZSBpcyB1c2VsZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCAyNGM2ODdlNWIyMWM3NWFjNGNiMGEzYjc3MmExOGM3MmRlZGMy
MmExLi45OTE2YTNhMjA2NDMxMTk4MTFhN2U0NWUxMzAyMjg3MzY4YmYxZTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTY5MjMsNiArNjkyMyw5IEBAIEhU
TUxNZWRpYUVsZW1lbnQ6OlNsZWVwVHlwZSBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxl
U2xlZXAoKSBjb25zdAogICAgICAgICByZXR1cm4gU2xlZXBUeXBlOjpTeXN0ZW07CiAjZW5kaWYK
IAorICAgIGlmIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5w
cm9jZXNzSXNTdXNwZW5kZWQoKSkKKyAgICAgICAgcmV0dXJuIFNsZWVwVHlwZTo6Tm9uZTsKKwog
ICAgIGJvb2wgc2hvdWxkQmVBYmxlVG9TbGVlcCA9ICFoYXNWaWRlbygpIHx8ICFoYXNBdWRpbygp
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLy8gUmVtb3RlIG1lZGlhIHN0cmVhbSB2
aWRlbyB0cmFja3MgbWF5IGhhdmUgdGhlaXIgY29ycmVzcG9uZGluZyBhdWRpbyB0cmFja3MgYmVp
bmcgcGxheWVkIG91dHNpZGUgb2YgdGhlIG1lZGlhIGVsZW1lbnQuIExldCdzIGVuc3VyZSB0byBu
b3QgSURMRSB0aGUgc2NyZWVuIGluIHRoYXQgY2FzZS4KQEAgLTc3NDIsNiArNzc0NSwxMiBAQCBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29u
c3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRp
YSgpOwogfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByb2Nlc3NJc1N1c3BlbmRlZENoYW5n
ZWQoKQoreworICAgIHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7Cit9CisKICNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxl
VXBkYXRlTWVkaWFTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmlu
ZGV4IDJmNzA0N2VmYTM4NzQ0NjcwNDFhYzg5ODA2MDkwNDE3ZjE3ODFiNGEuLjY4MmUyMjMzMmQz
ZDNkZmVmNTgzODM2NWQ5NzRiNGM3NWFjYzY4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCkBAIC04OTQsNiArODk0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblBy
b2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
Rm9yTWVkaWEoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc01lZGlhU3RyZWFtU291cmNlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBwcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCkgZmluYWw7
CiAKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
CmluZGV4IDljMzUxMTc2NWFkMDlhYjI1MmMxNmE5Y2YzMzk1YWY3ZWQ3YTE0YzMuLjFkMDQxODdm
MWI1YTI1MmRiOGFkMjFjZjkzNWMzOWY4NWM1N2E3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjU5LDYgKzI1
OSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNNZWRpYVN0cmVhbVNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0lzU3Vz
cGVuZGVkQ2hhbmdlZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+UGxhdGZvcm1N
ZWRpYVNlc3Npb25DbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5j
cHAKaW5kZXggYjQyYzIxNDhiOGQzMTdhMWI3YjkzOGY5NTdjMTU0NTE2N2JkNWI0Yi4uNmY5OTY5
NTM2ZTU0ZGEzNzA3NzY3MTA5MGVhNGQzYWViM2ZhNjM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuY3BwCkBAIC0zNjgsNiArMzY4LDEwIEBAIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpwcm9jZXNzV2lsbFN1c3BlbmQoKQogICAgICAgICByZXR1cm47CiAgICAgbV9wcm9jZXNz
SXNTdXNwZW5kZWQgPSB0cnVlOwogCisgICAgZm9yRWFjaFNlc3Npb24oWyZdIChhdXRvJiBzZXNz
aW9uKSB7CisgICAgICAgIHNlc3Npb24uY2xpZW50KCkucHJvY2Vzc0lzU3VzcGVuZGVkQ2hhbmdl
ZCgpOworICAgIH0pOworCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgaWYgKG1fYmVjYW1l
QWN0aXZlICYmIHNob3VsZERlYWN0aXZhdGVBdWRpb1Nlc3Npb24oKSkgewogICAgICAgICBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZShmYWxzZSk7CkBAIC0zODMs
NiArMzg3LDEwIEBAIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpwcm9jZXNzRGlk
UmVzdW1lKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fcHJvY2Vzc0lzU3VzcGVuZGVkID0gZmFs
c2U7CiAKKyAgICBmb3JFYWNoU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAg
c2Vzc2lvbi5jbGllbnQoKS5wcm9jZXNzSXNTdXNwZW5kZWRDaGFuZ2VkKCk7CisgICAgfSk7CisK
ICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBpZiAoIW1fYmVjYW1lQWN0aXZlICYmIGFjdGl2
ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCkpIHsKICAgICAgICAgbV9iZWNhbWVBY3RpdmUgPSBBdWRp
b1Nlc3Npb246OnNoYXJlZFNlc3Npb24oKS50cnlUb1NldEFjdGl2ZSh0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmgKaW5kZXggYjkxMTllMDlmNTJhYzhkZTY0NjI3NGJiYmUxZTgzOGQ1NWFhZjcx
Yi4uYzMyNzM5NzkxMjE2ZGE5YWI1ZmUxYzA2NDEwZTMyZTBkMjM0NDQ1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvckVh
Y2hNYXRjaGluZ1Nlc3Npb24oY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpPiYgcHJlZGljYXRlLCBjb25zdCBGdW5jdGlvbjx2b2lkKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJik+JiBtYXRjaGluZ0NhbGxiYWNrKTsKIAorICAgIGJvb2wgcHJvY2Vzc0lzU3VzcGVu
ZGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzSXNTdXNwZW5kZWQ7IH0KKwogcHJvdGVjdGVk
OgogICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjsKICAgICBleHBsaWNpdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIoKTsKQEAgLTE0Nyw4ICsxNDksNiBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBBdWRpb0hhcmR3YXJlTGlzdGVuZXIqIGF1ZGlvSGFyZHdhcmVMaXN0ZW5lcigp
IHsgcmV0dXJuIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyLmdldCgpOyB9CiAKLSAgICBib29sIHBy
b2Nlc3NJc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc0lzU3VzcGVuZGVkOyB9
Ci0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CiAgICAgY29uc3Qgdm9pZCogbG9nSWRl
bnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>