<?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>172461</bug_id>
          
          <creation_ts>2017-05-22 12:09:16 -0700</creation_ts>
          <short_desc>A big animated image can be decoded as a large static image before receiving all the data</short_desc>
          <delta_ts>2017-05-22 18:51: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>Images</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1311480</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-22 12:09:16 -0700</bug_when>
    <thetext>This case happened while testing a page with 11 large animated images and it happened only with an image with size = 75MB and 377 frames. So getting a layout test for this scenario will not be easy.

This scenario leads to assertions in BitmapImage::imageFrameAvailableAtIndex() and BitmapImage::draw() since these function expects the decoding of an animated image is completely separate from the beginning and from the beginning. We need to handle the case of decoding the first frame for the first repetition different from decoding the other frames and from the other repetitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311482</commentid>
    <comment_count>1</comment_count>
      <attachid>310897</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-22 12:10:58 -0700</bug_when>
    <thetext>Created attachment 310897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311512</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-22 13:08:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/32332901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311513</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-22 13:08:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/32332897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311522</commentid>
    <comment_count>4</comment_count>
      <attachid>310897</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-22 13:24:04 -0700</bug_when>
    <thetext>Comment on attachment 310897
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        A big animated image can be decoded as a large static image before receiving all the data

I don&apos;t understand this title. Is it that we fail to animate the image?

&gt; Source/WebCore/ChangeLog:10
&gt; +        A big animated image can be recognized as a large static image. Then the
&gt; +        real frameCount() is fetched once more data is received and the animation
&gt; +        may start even before finishing the decoding of the first frame.

Don&apos;t we get the metadata before the first frame, though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311607</commentid>
    <comment_count>5</comment_count>
      <attachid>310897</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-22 15:13:09 -0700</bug_when>
    <thetext>Comment on attachment 310897
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        A big animated image can be decoded as a large static image before receiving all the data
&gt; 
&gt; I don&apos;t understand this title. Is it that we fail to animate the image?

I meant the image can be recognized as a static large image because its frameCount() is 1 so we request decoding it as a static large image. Then when more data is received, the value of frameCount becomes &gt; 1 so it begins to animate. When the first frame finishes decoding, BitmapImage::imageFrameAvailableAtIndex() gets called. This function expects to receive the nextFrame not the currentFrame for animated images.

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        may start even before finishing the decoding of the first frame.
&gt; 
&gt; Don&apos;t we get the metadata before the first frame, though?

Yes we do. But some of the metadata can change when more data is received. One of these metadata is the frameCount(). See ImageFrameCache::clearMetadata().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311621</commentid>
    <comment_count>6</comment_count>
      <attachid>310897</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-22 15:27:55 -0700</bug_when>
    <thetext>Comment on attachment 310897
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt;&gt; +        A big animated image can be decoded as a large static image before receiving all the data
&gt;&gt; 
&gt;&gt; I don&apos;t understand this title. Is it that we fail to animate the image?
&gt; 
&gt; I meant the image can be recognized as a static large image because its frameCount() is 1 so we request decoding it as a static large image. Then when more data is received, the value of frameCount becomes &gt; 1 so it begins to animate. When the first frame finishes decoding, BitmapImage::imageFrameAvailableAtIndex() gets called. This function expects to receive the nextFrame not the currentFrame for animated images.

It seems like the better title would be &quot;Avoid moving to the second frame of an animated image before the first frame has finished decoding&quot;.

This stuff about &quot;recognizing&quot; that an image is animated is confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311681</commentid>
    <comment_count>7</comment_count>
      <attachid>310960</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-22 17:16:34 -0700</bug_when>
    <thetext>Created attachment 310960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311715</commentid>
    <comment_count>8</comment_count>
      <attachid>310960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 18:51:07 -0700</bug_when>
    <thetext>Comment on attachment 310960
Patch

Clearing flags on attachment: 310960

Committed r217262: &lt;http://trac.webkit.org/changeset/217262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311716</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 18:51:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310897</attachid>
            <date>2017-05-22 12:10:58 -0700</date>
            <delta_ts>2017-05-22 17:16:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172461-20170522121122.patch</filename>
            <type>text/plain</type>
            <size>4869</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzIzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA1LTIyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQSBiaWcgYW5p
bWF0ZWQgaW1hZ2UgY2FuIGJlIGRlY29kZWQgYXMgYSBsYXJnZSBzdGF0aWMgaW1hZ2UgYmVmb3Jl
IHJlY2VpdmluZyBhbGwgdGhlIGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MjQ2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEEgYmlnIGFuaW1hdGVkIGltYWdlIGNhbiBiZSByZWNvZ25pemVkIGFz
IGEgbGFyZ2Ugc3RhdGljIGltYWdlLiBUaGVuIHRoZQorICAgICAgICByZWFsIGZyYW1lQ291bnQo
KSBpcyBmZXRjaGVkIG9uY2UgbW9yZSBkYXRhIGlzIHJlY2VpdmVkIGFuZCB0aGUgYW5pbWF0aW9u
CisgICAgICAgIG1heSBzdGFydCBldmVuIGJlZm9yZSBmaW5pc2hpbmcgdGhlIGRlY29kaW5nIG9m
IHRoZSBmaXJzdCBmcmFtZS4KKworICAgICAgICBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBv
ZiBkZWNvZGluZyB0aGUgZmlyc3QgZnJhbWUgZm9yIHRoZSBmaXJzdCByZXBldGl0aW9uCisgICAg
ICAgIGRpZmZlcmVudCBmcm9tIGRlY29kaW5nIHRoZSBvdGhlciBmcmFtZXMgYW5kIGZyb20gdGhl
IG90aGVyIHJlcGV0aXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmltYWdlRnJhbWVBdmFpbGFibGVBdEluZGV4KToKKwog
MjAxNy0wNS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3Jhc2ggaW4gV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWVzOjpmaW5kS2V5ZnJhbWVJbmRleApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAkocmV2aXNpb24gMjE3MTMxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9p
ZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIAogICAgICAgICBMT0coSW1hZ2Vz
LCAiQml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6ICVzIFthIGRlY29kZWQgaW1hZ2UgZnJhbWUg
aXMgYXZhaWxhYmxlIGZvciBkcmF3aW5nXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNlVVJM
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RhcnRB
bmltYXRpb25TdGF0dXMgc3RhdHVzID0gaW50ZXJuYWxTdGFydEFuaW1hdGlvbigpOwotICAgICAg
ICBBU1NFUlRfSU1QTElFUyhzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5n
QWN0aXZlLCBmcmFtZUhhc0Z1bGxTaXplTmF0aXZlSW1hZ2VBdEluZGV4KG1fY3VycmVudEZyYW1l
LCBtX2N1cnJlbnRTdWJzYW1wbGluZ0xldmVsKSk7CisgICAgICAgIEFTU0VSVF9JTVBMSUVTKHN0
YXR1cyA9PSBTdGFydEFuaW1hdGlvblN0YXR1czo6RGVjb2RpbmdBY3RpdmUsICghbV9jdXJyZW50
RnJhbWUgJiYgIW1fcmVwZXRpdGlvbnNDb21wbGV0ZSkgfHwgZnJhbWVIYXNGdWxsU2l6ZU5hdGl2
ZUltYWdlQXRJbmRleChtX2N1cnJlbnRGcmFtZSwgbV9jdXJyZW50U3Vic2FtcGxpbmdMZXZlbCkp
OwogCiAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhcnRBbmltYXRpb25TdGF0dXM6OkRlY29kaW5n
QWN0aXZlICYmIG1fc2hvd0RlYnVnQmFja2dyb3VuZCkgewogICAgICAgICAgICAgZmlsbFdpdGhT
b2xpZENvbG9yKGNvbnRleHQsIGRlc3RSZWN0LCBDb2xvcihDb2xvcjo6eWVsbG93KS5jb2xvcldp
dGhBbHBoYSgwLjUpLCBvcCk7CkBAIC00NjksMjYgKzQ2OSwzMiBAQCB2b2lkIEJpdG1hcEltYWdl
OjpyZXNldEFuaW1hdGlvbigpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmltYWdlRnJhbWVBdmFpbGFi
bGVBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAgICBVTlVTRURfUEFSQU0oaW5kZXgpOwogICAg
IExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6JXMgLSAlcCAtIHVybDogJXMgW3JlcXVlc3RlZCBm
cmFtZSAlbGQgaXMgbm93IGF2YWlsYWJsZV0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVS
TCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGluZGV4KTsKIAogICAgIGlmIChjYW5BbmltYXRl
KCkpIHsKLSAgICAgICAgQVNTRVJUKGluZGV4ID09IChtX2N1cnJlbnRGcmFtZSArIDEpICUgZnJh
bWVDb3VudCgpKTsKLSAgICAgICAgCi0gICAgICAgIC8vIERvbid0IGFkdmFuY2UgdG8gbmV4dEZy
YW1lIHVubGVzcyB0aGUgdGltZXIgd2FzIGZpcmVkIGJlZm9yZSBpdHMgZGVjb2RpbmcgZmluaXNo
ZXMuCi0gICAgICAgIGlmIChjYW5BbmltYXRlKCkgJiYgIW1fZnJhbWVUaW1lcikKLSAgICAgICAg
ICAgIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtlYXJseUZyYW1l
Q291bnQgPSAlbGQgbmV4dEZyYW1lID0gJWxkXSIsIF9fRlVOQ1RJT05fXywgdGhpcywgc291cmNl
VVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgKyttX2Vhcmx5RnJhbWVDb3VudCwgaW5kZXgp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChpbmRleCA9PSBtX2N1cnJlbnRGcmFtZSAm
JiAhbV9jdXJyZW50RnJhbWUpOwotICAgICAgICBpZiAobV9zb3VyY2UuaXNBc3luY0RlY29kaW5n
UXVldWVJZGxlKCkpCi0gICAgICAgICAgICBtX3NvdXJjZS5zdG9wQXN5bmNEZWNvZGluZ1F1ZXVl
KCk7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID09IEltYWdlRnJh
bWU6OkRlY29kaW5nU3RhdHVzOjpEZWNvZGluZykKLSAgICAgICAgICAgIG1fY3VycmVudEZyYW1l
RGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFt
ZSk7Ci0gICAgICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCi0gICAgICAgICAgICBpbWFnZU9ic2Vy
dmVyKCktPmltYWdlRnJhbWVBdmFpbGFibGUoKnRoaXMsIEltYWdlQW5pbWF0aW5nU3RhdGU6Ok5v
KTsKKyAgICAgICAgaWYgKGluZGV4ID09IChtX2N1cnJlbnRGcmFtZSArIDEpICUgZnJhbWVDb3Vu
dCgpKSB7CisgICAgICAgICAgICAvLyBEb24ndCBhZHZhbmNlIHRvIG5leHRGcmFtZSB1bmxlc3Mg
dGhlIHRpbWVyIHdhcyBmaXJlZCBiZWZvcmUgaXRzIGRlY29kaW5nIGZpbmlzaGVzLgorICAgICAg
ICAgICAgaWYgKCFtX2ZyYW1lVGltZXIpCisgICAgICAgICAgICAgICAgaW50ZXJuYWxBZHZhbmNl
QW5pbWF0aW9uKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgTE9HKEltYWdl
cywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbZWFybHlGcmFtZUNvdW50ID0gJWxk
IG5leHRGcmFtZSA9ICVsZF0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksICsrbV9lYXJseUZyYW1lQ291bnQsIGluZGV4KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEEgYmlnIGFuaW1hdGVkIGltYWdl
IGNhbiBiZSByZWNvZ25pemVkIGFzIGEgbGFyZ2Ugc3RhdGljIGltYWdlLiBUaGVuIHRoZSByZWFs
IGZyYW1lQ291bnQoKQorICAgICAgICAvLyBpcyBmZXRjaGVkIG9uY2UgbW9yZSBkYXRhIGlzIHJl
Y2VpdmVkIGFuZCB0aGUgYW5pbWF0aW9uIG1heSBzdGFydCBldmVuIGJlZm9yZSBmaW5pc2hpbmcg
dGhlCisgICAgICAgIC8vIGRlY29kaW5nIG9mIHRoZSBmaXJzdCBmcmFtZS4KKyAgICAgICAgQVNT
RVJUKCFtX3JlcGV0aXRpb25zQ29tcGxldGUpOworICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFw
SW1hZ2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtNb3JlIGRhdGEgbWFrZXMgZnJhbWVDb3VudCgpID4g
MV0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIH0KKworICAgIEFTU0VSVChpbmRleCA9PSBtX2N1cnJlbnRGcmFtZSAmJiAhbV9j
dXJyZW50RnJhbWUpOworICAgIGlmIChtX3NvdXJjZS5pc0FzeW5jRGVjb2RpbmdRdWV1ZUlkbGUo
KSkKKyAgICAgICAgbV9zb3VyY2Uuc3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSgpOworICAgIGlmICht
X2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVzID09IEltYWdlRnJhbWU6OkRlY29kaW5nU3RhdHVz
OjpEZWNvZGluZykKKyAgICAgICAgbV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9IGZyYW1l
RGVjb2RpbmdTdGF0dXNBdEluZGV4KG1fY3VycmVudEZyYW1lKTsKKyAgICBpZiAoaW1hZ2VPYnNl
cnZlcigpKQorICAgICAgICBpbWFnZU9ic2VydmVyKCktPmltYWdlRnJhbWVBdmFpbGFibGUoKnRo
aXMsIEltYWdlQW5pbWF0aW5nU3RhdGU6Ok5vKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6ZHVt
cChUZXh0U3RyZWFtJiB0cykgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310960</attachid>
            <date>2017-05-22 17:16:34 -0700</date>
            <delta_ts>2017-05-22 18:51:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172461-20170522171659.patch</filename>
            <type>text/plain</type>
            <size>5473</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzIzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTIyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgbW92
aW5nIHRvIHRoZSBzZWNvbmQgZnJhbWUgb2YgYW4gYW5pbWF0ZWQgaW1hZ2UgYmVmb3JlIHRoZSBm
aXJzdCBmcmFtZSBoYXMgZmluaXNoZWQgZGVjb2RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjQ2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWV0aW1lcyB0aGUgZnJhbWVDb3VudCBvZiBhbiBh
bmltYXRlZCBpbWFnZSBnZXRzIGNoYW5nZWQgd2hlbiBtb3JlIGRhdGEKKyAgICAgICAgaXMgcmVj
ZWl2ZWQuIFRoZSBwcm9ibGVtIGlzIHdlIG1heSBzdGFydCBkZWNvZGluZyB0aGUgaW1hZ2UgYXMg
aWYgaXQgd2VyZQorICAgICAgICBhIHN0YXRpYyBsYXJnZSBpbWFnZSBhbmQgdGhlIGRlY29kaW5n
IG9mIHRoaXMgZmlyc3QgZnJhbWUgZmluaXNoZXMgYWZ0ZXIgCisgICAgICAgIHRoZSBpbWFnZSBz
dGFydHMgYW5pbWF0aW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmltYWdlRnJhbWVBdmFpbGFibGVBdEluZGV4KToKKwogMjAx
Ny0wNS0yMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jh
c2ggaW4gV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWVzOjpmaW5kS2V5ZnJhbWVJbmRleApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAkocmV2aXNpb24gMjE3MTMxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQmIAogCiAgICAgRmxvYXRTaXplIHNjYWxl
RmFjdG9yRm9yRHJhd2luZyA9IGNvbnRleHQuc2NhbGVGYWN0b3JGb3JEcmF3aW5nKGRlc3RSZWN0
LCBzcmNSZWN0KTsKICAgICBJbnRTaXplIHNpemVGb3JEcmF3aW5nID0gZXhwYW5kZWRJbnRTaXpl
KHNpemUoKSAqIHNjYWxlRmFjdG9yRm9yRHJhd2luZyk7Ci0gICAgCisKICAgICBtX2N1cnJlbnRT
dWJzYW1wbGluZ0xldmVsID0gbV9hbGxvd1N1YnNhbXBsaW5nID8gbV9zb3VyY2Uuc3Vic2FtcGxp
bmdMZXZlbEZvclNjYWxlRmFjdG9yKGNvbnRleHQsIHNjYWxlRmFjdG9yRm9yRHJhd2luZykgOiBT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0OwogICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZTo6
JXMgLSAlcCAtIHVybDogJXMgW3N1YnNhbXBsaW5nTGV2ZWwgPSAlZCBzY2FsZUZhY3RvckZvckRy
YXdpbmcgPSAoJS40ZiwgJS40ZildIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KG1fY3VycmVudFN1YnNhbXBs
aW5nTGV2ZWwpLCBzY2FsZUZhY3RvckZvckRyYXdpbmcud2lkdGgoKSwgc2NhbGVGYWN0b3JGb3JE
cmF3aW5nLmhlaWdodCgpKTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6
OmRyYXcoR3JhcGhpY3NDb250ZXh0JiAKICAgICAgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdl
OjolcyAtICVwIC0gdXJsOiAlcyBbYSBkZWNvZGVkIGltYWdlIGZyYW1lIGlzIGF2YWlsYWJsZSBm
b3IgZHJhd2luZ10iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0YXJ0QW5pbWF0aW9uU3RhdHVz
IHN0YXR1cyA9IGludGVybmFsU3RhcnRBbmltYXRpb24oKTsKLSAgICAgICAgQVNTRVJUX0lNUExJ
RVMoc3RhdHVzID09IFN0YXJ0QW5pbWF0aW9uU3RhdHVzOjpEZWNvZGluZ0FjdGl2ZSwgZnJhbWVI
YXNGdWxsU2l6ZU5hdGl2ZUltYWdlQXRJbmRleChtX2N1cnJlbnRGcmFtZSwgbV9jdXJyZW50U3Vi
c2FtcGxpbmdMZXZlbCkpOworICAgICAgICBBU1NFUlRfSU1QTElFUyhzdGF0dXMgPT0gU3RhcnRB
bmltYXRpb25TdGF0dXM6OkRlY29kaW5nQWN0aXZlLCAoIW1fY3VycmVudEZyYW1lICYmICFtX3Jl
cGV0aXRpb25zQ29tcGxldGUpIHx8IGZyYW1lSGFzRnVsbFNpemVOYXRpdmVJbWFnZUF0SW5kZXgo
bV9jdXJyZW50RnJhbWUsIG1fY3VycmVudFN1YnNhbXBsaW5nTGV2ZWwpKTsKIAogICAgICAgICBp
ZiAoc3RhdHVzID09IFN0YXJ0QW5pbWF0aW9uU3RhdHVzOjpEZWNvZGluZ0FjdGl2ZSAmJiBtX3No
b3dEZWJ1Z0JhY2tncm91bmQpIHsKICAgICAgICAgICAgIGZpbGxXaXRoU29saWRDb2xvcihjb250
ZXh0LCBkZXN0UmVjdCwgQ29sb3IoQ29sb3I6OnllbGxvdykuY29sb3JXaXRoQWxwaGEoMC41KSwg
b3ApOwpAQCAtNDY5LDI2ICs0NjksMzIgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVzZXRBbmltYXRp
b24oKQogCiB2b2lkIEJpdG1hcEltYWdlOjppbWFnZUZyYW1lQXZhaWxhYmxlQXRJbmRleChzaXpl
X3QgaW5kZXgpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGluZGV4KTsKICAgICBMT0coSW1hZ2VzLCAi
Qml0bWFwSW1hZ2U6OiVzIC0gJXAgLSB1cmw6ICVzIFtyZXF1ZXN0ZWQgZnJhbWUgJWxkIGlzIG5v
dyBhdmFpbGFibGVdIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBpbmRleCk7CiAKICAgICBpZiAoY2FuQW5pbWF0ZSgpKSB7Ci0gICAgICAg
IEFTU0VSVChpbmRleCA9PSAobV9jdXJyZW50RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKSk7Ci0g
ICAgICAgIAotICAgICAgICAvLyBEb24ndCBhZHZhbmNlIHRvIG5leHRGcmFtZSB1bmxlc3MgdGhl
IHRpbWVyIHdhcyBmaXJlZCBiZWZvcmUgaXRzIGRlY29kaW5nIGZpbmlzaGVzLgotICAgICAgICBp
ZiAoY2FuQW5pbWF0ZSgpICYmICFtX2ZyYW1lVGltZXIpCi0gICAgICAgICAgICBpbnRlcm5hbEFk
dmFuY2VBbmltYXRpb24oKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgTE9HKEltYWdlcywg
IkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAlcyBbZWFybHlGcmFtZUNvdW50ID0gJWxkIG5l
eHRGcmFtZSA9ICVsZF0iLCBfX0ZVTkNUSU9OX18sIHRoaXMsIHNvdXJjZVVSTCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksICsrbV9lYXJseUZyYW1lQ291bnQsIGluZGV4KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlQoaW5kZXggPT0gbV9jdXJyZW50RnJhbWUgJiYgIW1fY3VycmVudEZy
YW1lKTsKLSAgICAgICAgaWYgKG1fc291cmNlLmlzQXN5bmNEZWNvZGluZ1F1ZXVlSWRsZSgpKQot
ICAgICAgICAgICAgbV9zb3VyY2Uuc3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSgpOwotICAgICAgICBp
ZiAobV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0YXR1cyA9PSBJbWFnZUZyYW1lOjpEZWNvZGluZ1N0
YXR1czo6RGVjb2RpbmcpCi0gICAgICAgICAgICBtX2N1cnJlbnRGcmFtZURlY29kaW5nU3RhdHVz
ID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwotICAgICAgICBp
ZiAoaW1hZ2VPYnNlcnZlcigpKQotICAgICAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5pbWFnZUZy
YW1lQXZhaWxhYmxlKCp0aGlzLCBJbWFnZUFuaW1hdGluZ1N0YXRlOjpObyk7CisgICAgICAgIGlm
IChpbmRleCA9PSAobV9jdXJyZW50RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKSkgeworICAgICAg
ICAgICAgLy8gRG9uJ3QgYWR2YW5jZSB0byBuZXh0RnJhbWUgdW5sZXNzIHRoZSB0aW1lciB3YXMg
ZmlyZWQgYmVmb3JlIGl0cyBkZWNvZGluZyBmaW5pc2hlcy4KKyAgICAgICAgICAgIGlmICghbV9m
cmFtZVRpbWVyKQorICAgICAgICAgICAgICAgIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIExPRyhJbWFnZXMsICJCaXRtYXBJbWFn
ZTo6JXMgLSAlcCAtIHVybDogJXMgW2Vhcmx5RnJhbWVDb3VudCA9ICVsZCBuZXh0RnJhbWUgPSAl
bGRdIiwgX19GVU5DVElPTl9fLCB0aGlzLCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCArK21fZWFybHlGcmFtZUNvdW50LCBpbmRleCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBCZWNhdXNlIG9mIGltYWdlIHBhcnRpYWwgbG9hZGluZywg
YW4gaW1hZ2UgbWF5IHN0YXJ0IGRlY29kaW5nIGFzIGEgbGFyZ2Ugc3RhdGljIGltYWdlLiBCdXQK
KyAgICAgICAgLy8gd2hlbiBtb3JlIGRhdGEgaXMgcmVjZWl2ZWQsIGZyYW1lQ291bnQoKSBjaGFu
Z2VzIHRvIGJlID4gMSBzbyB0aGUgaW1hZ2Ugc3RhcnRzIGFuaW1hdGluZy4KKyAgICAgICAgLy8g
VGhlIGFuaW1hdGlvbiBtYXkgZXZlbiBzdGFydCBiZWZvcmUgZmluaXNoaW5nIHRoZSBkZWNvZGlu
ZyBvZiB0aGUgZmlyc3QgZnJhbWUuCisgICAgICAgIEFTU0VSVCghbV9yZXBldGl0aW9uc0NvbXBs
ZXRlKTsKKyAgICAgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlOjolcyAtICVwIC0gdXJsOiAl
cyBbTW9yZSBkYXRhIG1ha2VzIGZyYW1lQ291bnQoKSA+IDFdIiwgX19GVU5DVElPTl9fLCB0aGlz
LCBzb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CisKKyAgICBBU1NF
UlQoaW5kZXggPT0gbV9jdXJyZW50RnJhbWUgJiYgIW1fY3VycmVudEZyYW1lKTsKKyAgICBpZiAo
bV9zb3VyY2UuaXNBc3luY0RlY29kaW5nUXVldWVJZGxlKCkpCisgICAgICAgIG1fc291cmNlLnN0
b3BBc3luY0RlY29kaW5nUXVldWUoKTsKKyAgICBpZiAobV9jdXJyZW50RnJhbWVEZWNvZGluZ1N0
YXR1cyA9PSBJbWFnZUZyYW1lOjpEZWNvZGluZ1N0YXR1czo6RGVjb2RpbmcpCisgICAgICAgIG1f
Y3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBmcmFtZURlY29kaW5nU3RhdHVzQXRJbmRleCht
X2N1cnJlbnRGcmFtZSk7CisgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKKyAgICAgICAgaW1hZ2VP
YnNlcnZlcigpLT5pbWFnZUZyYW1lQXZhaWxhYmxlKCp0aGlzLCBJbWFnZUFuaW1hdGluZ1N0YXRl
OjpObyk7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>