<?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>207361</bug_id>
          
          <creation_ts>2020-02-06 15:02:21 -0800</creation_ts>
          <short_desc>There&apos;s an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA</short_desc>
          <delta_ts>2020-02-10 09:24:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=207364</see_also>
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1615857</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-06 15:02:21 -0800</bug_when>
    <thetext>For the rendering update where an animation finishes, Document::updateAnimationsAndSendEvents() runs and animation-&gt;tick() changes the state to Finished. isRelevant() is set to false.

However. at:
  if (!animation-&gt;isRelevant() &amp;&amp; !animation-&gt;needsTick())

needsTick() is still true, so we don&apos;t add the animation to animationsToRemove.

That results in one frame where timeline-&gt;isRunningAcceleratedAnimationOnRenderer(renderer(), CSSPropertyTransform) returns false, but we haven&apos;t yet removed the animation from the GraphicsLayer, so GraphicsLayer::isRunningTransformAnimation() returns true. In this same frame, RenderLayerBacking::updateGeometry() has cleared the animation extent, so we&apos;re left with a GraphicsLayer that always keeps its backing store attached because it thinks it&apos;s running a transform animation with unknown extent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615898</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-06 15:42:47 -0800</bug_when>
    <thetext>The event keeping needsTick() true is the transitionend event; see bug 207364.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616030</commentid>
    <comment_count>2</comment_count>
      <attachid>390050</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-06 19:54:38 -0800</bug_when>
    <thetext>Created attachment 390050
Simple hover transition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616142</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-07 07:59:00 -0800</bug_when>
    <thetext>What the code you refer to does is keeping the animation in m_animations which is correct, this is where we keep animations that are still relevant for the next update so that events and promises may be resolved.

The removal of any accelerated animation, as well as the blending of non-accelerated animations, is enqueued under KeyframeEffect::apply() which is called by WebAnimation::resolve(), which typically happens during style resolution under TreeResolver::createAnimatedElementUpdate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616143</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-07 08:02:37 -0800</bug_when>
    <thetext>That said maybe we ought to enqueue accelerated actions under Animation::tick() somewhere since this is the soonest we know that an animation&apos;s time has changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616144</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-07 08:05:54 -0800</bug_when>
    <thetext>WebAnimation::tick() is also where we call WebAnimation::invalidateEffect(). Maybe we should just move the calls to KeyframeEffect::updateAcceleratedActions() under KeyframeEffect::invalidate(). We could then move m_phaseAtLastApplication there too and use this under KeyframeEffect::apply() so that we don&apos;t re-compute the timing properties. However, they could have been changed in the meantime, I&apos;m not sure whether this is a problem just by looking at the code. What&apos;s absolutely required though is that the progress used to blend animations via style and the progress used to enqueue accelerated actions are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616188</commentid>
    <comment_count>6</comment_count>
      <attachid>390089</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-07 09:34:53 -0800</bug_when>
    <thetext>Created attachment 390089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616488</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-07 17:46:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/59280370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616698</commentid>
    <comment_count>8</comment_count>
      <attachid>390089</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-02-09 13:31:47 -0800</bug_when>
    <thetext>Comment on attachment 390089
Patch

This wasn&apos;t flagged for review, but seems fine. (windows failure seems unrelated)  Is it possible to make a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616824</commentid>
    <comment_count>9</comment_count>
      <attachid>390242</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-10 03:48:17 -0800</bug_when>
    <thetext>Created attachment 390242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616825</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-10 03:50:44 -0800</bug_when>
    <thetext>Filed an improved patch which only updated accelerated actions under WebAnimation::tick() and WebAnimation::play(), Simon&apos;s previous patch would do it on each effect invalidation which happens much more frequently.

I&apos;ll let the bots chew first to see if there are any regressions, an initial local test pass of known animation tests didn&apos;t show any issue. If that&apos;s successful, I think I can make a test by adding some new testing functionality to query an effect&apos;s accelerated actions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616835</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-10 05:50:07 -0800</bug_when>
    <thetext>Looks good, filing a new patch with a modification to an existing test to lower the number of frames to wait before checking an accelerated animation was removed from the graphics layer, thus demonstrating that accelerated animations are enqueued and applied during the &quot;update animations and send events&quot; procedure. This modification would have failed prior to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616836</commentid>
    <comment_count>12</comment_count>
      <attachid>390247</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-10 05:50:26 -0800</bug_when>
    <thetext>Created attachment 390247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616896</commentid>
    <comment_count>13</comment_count>
      <attachid>390247</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-10 09:24:55 -0800</bug_when>
    <thetext>Comment on attachment 390247
Patch

Clearing flags on attachment: 390247

Committed r256181: &lt;https://trac.webkit.org/changeset/256181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616897</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-10 09:24:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>390050</attachid>
            <date>2020-02-06 19:54:38 -0800</date>
            <delta_ts>2020-02-06 19:54:38 -0800</delta_ts>
            <desc>Simple hover transition</desc>
            <filename>flip-transition.html</filename>
            <type>text/html</type>
            <size>457</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KPGhlYWQ+CiAgICA8c3R5bGU+CiAgICAgICAgLmJveCB7
CiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAg
ICAgICAgICAgbWFyZ2luOiAyMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIuNXM7CiAgICAgICAgICAgIHRy
YW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZykKICAgICAgICB9CiAgICAgICAgCiAgICAg
ICAgLmJveDpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwg
LTE4MGRlZyk7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIAogICAg
PGRpdiBjbGFzcz0iYm94Ij4KICAgICAgICBib3gKICAgIDwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390089</attachid>
            <date>2020-02-07 09:34:53 -0800</date>
            <delta_ts>2020-02-10 03:48:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207361-20200207093452.patch</filename>
            <type>text/plain</type>
            <size>1810</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwYzRkYTViMTMxZGJj
OTJlNzc4MDQ0OTNiOThiMjJhZmM2NmIyOC4uNDM1NjdlNzU2M2M1YzA2NTJmOTA4Mzg1MDc0NjQ1
ZDE2NWU5NzU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAyLTA3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFRoZXJlJ3MgYW4g
ZXZlbnQgbG9vcCBjeWNsZSBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBmaW5pc2hpbmcsIGFuZCBpdCBi
ZWluZyByZW1vdmVkIGZyb20gR3JhcGhpY3NMYXllckNBCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDczNjEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbmltYXRpb25zIHNob3VsZCBiZSByZW1vdmVkIGZy
b20gR3JhcGhpY3NMYXllcnNDQXMgaW4gdGhlIHNhbWUgcmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNo
YW5nZXMgdGhlIHBsYXlTdGF0ZSBvZiB0aGUgCisgICAgICAgIGFuaW1hdGlvbiB0byAiZmluaXNo
ZWQiLCB0byBhdm9pZCBsYXllciBmbHVzaCB3aGVyZSBhIEdyYXBoaWNzTGF5ZXJzQ0FzIGhhcyBu
byBleHRlbnQgc2V0LCBidXQgdGhpbmtzIHRoZXJlIGlzCisgICAgICAgIGFuIGFjdGl2ZSB0cmFu
c2Zvcm0gYW5pbWF0aW9uLgorICAgICAgICAKKyAgICAgICAgRW5zdXJlIHRoYXQgYnkgaGF2aW5n
IEtleWZyYW1lRWZmZWN0OjppbnZhbGlkYXRlKCkgY2FsbCB1cGRhdGVBY2NlbGVyYXRlZEFjdGlv
bnMoKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6aW52YWxpZGF0ZSk6CisKIDIwMjAtMDItMDcgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI1NTk1Myk6IFsgaU9TIE1hYyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL3RpbWVsaW5lcy91cGRhdGUtYW5kLXNlbmQtZXZlbnRz
Lmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwCmluZGV4IDE5NGZkYzJjYThhYmU5Y2MwNjNiOGMzZDUzNzljMDQ3ZDQzNjAyODguLjhj
YzUwM2FlNjZmODU5ZDNjZmE0YjBlMTg5OWU5MjVlMTA5NDAwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtMTExNSw2ICsxMTE1LDcgQEAgYm9v
bCBLZXlmcmFtZUVmZmVjdDo6aXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25Gb3JQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIHByb3AKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmludmFsaWRhdGUoKQog
ewogICAgIGludmFsaWRhdGVFbGVtZW50KG1fdGFyZ2V0LmdldCgpKTsKKyAgICB1cGRhdGVBY2Nl
bGVyYXRlZEFjdGlvbnMoZ2V0Q29tcHV0ZWRUaW1pbmcoKSk7CiB9CiAKIHZvaWQgS2V5ZnJhbWVF
ZmZlY3Q6OmNvbXB1dGVBY2NlbGVyYXRlZFByb3BlcnRpZXNTdGF0ZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390242</attachid>
            <date>2020-02-10 03:48:17 -0800</date>
            <delta_ts>2020-02-10 05:50:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207361-20200210124815.patch</filename>
            <type>text/plain</type>
            <size>6284</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGExMDNiNjU1OGE1NmU4
MDBhZmY0N2U4MmYyZDNlZDc4YWEyMjljNy4uNGNmODAwMGZhMGE0ODczMzk2OWViNzE3ODhlNDIw
YTMwYTczMzRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTEwICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFRoZXJlJ3MgYW4gZXZl
bnQgbG9vcCBjeWNsZSBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBmaW5pc2hpbmcsIGFuZCBpdCBiZWlu
ZyByZW1vdmVkIGZyb20gR3JhcGhpY3NMYXllckNBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDczNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbmltYXRpb25zIHNob3VsZCBiZSByZW1vdmVkIGZyb20g
R3JhcGhpY3NMYXllcnNDQXMgaW4gdGhlIHNhbWUgcmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNoYW5n
ZXMgdGhlIHBsYXlTdGF0ZSBvZiB0aGUgCisgICAgICAgIGFuaW1hdGlvbiB0byAiZmluaXNoZWQi
LCB0byBhdm9pZCBsYXllciBmbHVzaCB3aGVyZSBhIEdyYXBoaWNzTGF5ZXJzQ0FzIGhhcyBubyBl
eHRlbnQgc2V0LCBidXQgdGhpbmtzIHRoZXJlIGlzCisgICAgICAgIGFuIGFjdGl2ZSB0cmFuc2Zv
cm0gYW5pbWF0aW9uLgorCisgICAgICAgIFRvIGRvIHRoaXMsIGluc3RlYWQgb2YgZW5xdWV1aW5n
IGFjY2VsZXJhdGVkIGFjdGlvbnMgd2hlbiByZXNvbHZpbmcgYW5pbWF0aW9ucyBkdXJpbmcgc3R5
bGUgcmVzb2x1dGlvbiwgaW4KKyAgICAgICAgS2V5ZnJhbWVBbmltYXRpb246OmFwcGx5KCksIHdl
IGVucXVldWUgdGhlbSBhcyBzb29uIGFzIGFuIGFuaW1hdGlvbidzIGN1cnJlbnQgdGltZSBtYXkg
aGF2ZSBjaGFuZ2VkOiBpbgorICAgICAgICBXZWJBbmltYXRpb246OnRpY2soKSBhbmQgV2ViQW5p
bWF0aW9uOjpwbGF5KCkgd2l0aCBzdXBwb3J0aW5nIGZ1bmN0aW9ucyBuZXdseSBleHBvc2VkIG9u
IEFuaW1hdGlvbkVmZmVjdC4KKworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3Qu
aDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0Ojp1cGRhdGVBY2NlbGVyYXRlZEFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6S2V5
ZnJhbWVFZmZlY3Q6OmFuaW1hdGlvbkRpZFRpY2spOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVFZmZlY3Q6OmFuaW1hdGlvbkRpZFBsYXkpOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5oOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkFu
aW1hdGlvbjo6dGljayk6CisKIDIwMjAtMDItMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbTEZDXVtCRkNdIFJlcGxhY2UgImVzdGltYXRlZCIgdGVybSB3aXRo
ICJwcmVjb21wdXRlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3Qu
aAppbmRleCA4ZWJiNDRjMzMyNDhkNmVjODY4NWExNzNjNzkzY2UxNzI4MzY2YWI0Li44ZDAyYWQw
NzZkMjgzODY5MmNkN2YzYTM5ZGJiNmE1OTNhZWFiYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBhcHBseShSZW5kZXJTdHlsZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uRGlkVGljaygpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uRGlkUGxheSgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgYW5pbWF0aW9uRGlkU2VlaygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9u
V2FzQ2FuY2VsZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN1c3BlbnNpb25T
dGF0ZURpZENoYW5nZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmNwcAppbmRleCA5MmU5OGZkZGI4YmI3OGFkYzZkNzg4OTJlZjU2NjM5MTUxZTY4
M2NkLi5iMzFjZWY2MGFjMTdhNzRlZjQ1NWQ5ZjllMDU1ZGNlNmJiOTc1OWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTEwODYsOCArMTA4Niw2
IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFwcGx5KFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkK
ICAgICBhdXRvIGNvbXB1dGVkVGltaW5nID0gZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKICAgICBtX3Bo
YXNlQXRMYXN0QXBwbGljYXRpb24gPSBjb21wdXRlZFRpbWluZy5waGFzZTsKIAotICAgIHVwZGF0
ZUFjY2VsZXJhdGVkQWN0aW9ucyhjb21wdXRlZFRpbWluZyk7Ci0KICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxBcHBseUtleWZyYW1lRWZmZWN0KCptX3RhcmdldCwgKnRoaXMsIGNv
bXB1dGVkVGltaW5nKTsKIAogICAgIGlmICghY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MpCkBAIC0x
MzM0LDExICsxMzMyLDEzIEBAIFRpbWluZ0Z1bmN0aW9uKiBLZXlmcmFtZUVmZmVjdDo6dGltaW5n
RnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIEtleWZyYW1lRWZmZWN0Ojp1cGRhdGVBY2NlbGVyYXRlZEFjdGlvbnMo
Q29tcHV0ZWRFZmZlY3RUaW1pbmcgY29tcHV0ZWRUaW1pbmcpCit2b2lkIEtleWZyYW1lRWZmZWN0
Ojp1cGRhdGVBY2NlbGVyYXRlZEFjdGlvbnMoKQogewogICAgIGlmIChtX2FjY2VsZXJhdGVkUHJv
cGVydGllc1N0YXRlID09IEFjY2VsZXJhdGVkUHJvcGVydGllczo6Tm9uZSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgYXV0byBjb21wdXRlZFRpbWluZyA9IGdldENvbXB1dGVkVGltaW5nKCk7CisK
ICAgICAvLyBJZiB3ZSdyZSBub3QgYWxyZWFkeSBydW5uaW5nIGFjY2VsZXJhdGVkLCB0aGUgb25s
eSB0aGluZyB3ZSdyZSBpbnRlcmVzdGVkIGluIGlzIHdoZXRoZXIgd2UgbmVlZCB0byBzdGFydCB0
aGUgYW5pbWF0aW9uCiAgICAgLy8gd2hpY2ggd2UgbmVlZCB0byBkbyBvbmNlIHdlJ3JlIGluIHRo
ZSBhY3RpdmUgcGhhc2UuIE90aGVyd2lzZSwgdGhlcmUncyBubyBjaGFuZ2UgaW4gYWNjZWxlcmF0
ZWQgc3RhdGUgdG8gY29uc2lkZXIuCiAgICAgYm9vbCBpc0FjdGl2ZSA9IGNvbXB1dGVkVGltaW5n
LnBoYXNlID09IEFuaW1hdGlvbkVmZmVjdFBoYXNlOjpBY3RpdmU7CkBAIC0xMzgxLDYgKzEzODEs
MTggQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6YWRkUGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uKEFj
Y2VsZXJhdGVkQWN0aW9uIGFjdGlvbikKICAgICBhbmltYXRpb24oKS0+YWNjZWxlcmF0ZWRTdGF0
ZURpZENoYW5nZSgpOwogfQogCit2b2lkIEtleWZyYW1lRWZmZWN0OjphbmltYXRpb25EaWRUaWNr
KCkKK3sKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgdXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKCk7
Cit9CisKK3ZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFuaW1hdGlvbkRpZFBsYXkoKQoreworICAgIGlm
IChtX2FjY2VsZXJhdGVkUHJvcGVydGllc1N0YXRlICE9IEFjY2VsZXJhdGVkUHJvcGVydGllczo6
Tm9uZSkKKyAgICAgICAgYWRkUGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uKEFjY2VsZXJhdGVkQWN0
aW9uOjpQbGF5KTsKK30KKwogdm9pZCBLZXlmcmFtZUVmZmVjdDo6YW5pbWF0aW9uRGlkU2Vlaygp
CiB7CiAgICAgLy8gVGhlcmUgaXMgbm8gbmVlZCB0byBzZWVrIGlmIHdlJ3JlIG5vdCBwbGF5aW5n
IGFuIGFuaW1hdGlvbiBhbHJlYWR5LiBJZiBzZWVraW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IDRmZDAwNmQzYjJiOTZkMGI2YjBlYTQ1YjJmZjNjOTE4
ZGU1ZTRkZDEuLmU4OGQyMjU1NmQyNjNiYmI1NDMyYThlYzA2ZGEwYjgyMjY3NWYxMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xMTUsNiArMTE1LDgg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0QW5pbWF0ZWRTdHlsZShzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKTsKICAgICB2b2lkIGFwcGx5KFJlbmRlclN0eWxlJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhbmlt
YXRpb25EaWRUaWNrKCkgZmluYWw7CisgICAgdm9pZCBhbmltYXRpb25EaWRQbGF5KCkgZmluYWw7
CiAgICAgdm9pZCBhbmltYXRpb25EaWRTZWVrKCkgZmluYWw7CiAgICAgdm9pZCBhbmltYXRpb25X
YXNDYW5jZWxlZCgpIGZpbmFsOwogICAgIHZvaWQgYW5pbWF0aW9uU3VzcGVuc2lvblN0YXRlRGlk
Q2hhbmdlKGJvb2wpIGZpbmFsOwpAQCAtMTYzLDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjb3B5UHJvcGVydGllc0Zyb21Tb3VyY2UoUmVmPEtleWZyYW1lRWZmZWN0PiYmKTsKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBwcm9jZXNzS2V5ZnJhbWVzKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmKTsKICAgICB2b2lkIGFkZFBlbmRpbmdBY2NlbGVy
YXRlZEFjdGlvbihBY2NlbGVyYXRlZEFjdGlvbik7Ci0gICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRl
ZEFjdGlvbnMoQ29tcHV0ZWRFZmZlY3RUaW1pbmcpOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0
ZWRBY3Rpb25zKCk7CiAgICAgdm9pZCBzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRl
clN0eWxlJiwgZG91YmxlKTsKICAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb25Gb3JL
ZXlmcmFtZUF0SW5kZXgoc2l6ZV90KTsKICAgICBSZWY8Y29uc3QgQW5pbWF0aW9uPiBiYWNraW5n
QW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJlbmRlcmVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IDFjNTMwZTA1Mjc1ZTNmOGI4YTdhYWNiOWQx
M2Q5YTEyYWNmZTliNjcuLmQ0MjExY2M1ZWM1NGY2MDU4NmVkMTQ0Nzc0NGFjZTk4NDAxYjg3MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC05ODYsNiAr
OTg2LDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViQW5pbWF0aW9uOjpwbGF5KEF1dG9SZXdpbmQg
YXV0b1Jld2luZCkKIAogICAgIGludmFsaWRhdGVFZmZlY3QoKTsKIAorICAgIGlmIChtX2VmZmVj
dCkKKyAgICAgICAgbV9lZmZlY3QtPmFuaW1hdGlvbkRpZFBsYXkoKTsKKwogICAgIHJldHVybiB7
IH07CiB9CiAKQEAgLTEyMDksNyArMTIxMiw4IEBAIHZvaWQgV2ViQW5pbWF0aW9uOjp0aWNrKCkK
ICAgICBpZiAoaGFzUGVuZGluZ1BsYXlUYXNrKCkpCiAgICAgICAgIHJ1blBlbmRpbmdQbGF5VGFz
aygpOwogCi0gICAgaW52YWxpZGF0ZUVmZmVjdCgpOworICAgIGlmICghaXNFZmZlY3RJbnZhbGlk
YXRpb25TdXNwZW5kZWQoKSAmJiBtX2VmZmVjdCkKKyAgICAgICAgbV9lZmZlY3QtPmFuaW1hdGlv
bkRpZFRpY2soKTsKIH0KIAogdm9pZCBXZWJBbmltYXRpb246OnJlc29sdmUoUmVuZGVyU3R5bGUm
IHRhcmdldFN0eWxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390247</attachid>
            <date>2020-02-10 05:50:26 -0800</date>
            <delta_ts>2020-02-10 09:24:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207361-20200210145025.patch</filename>
            <type>text/plain</type>
            <size>8429</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGExMDNiNjU1OGE1NmU4
MDBhZmY0N2U4MmYyZDNlZDc4YWEyMjljNy4uYWRlOWFhNzliOWY2MzhkZGIyYjY2ZTE4ODczNWVm
NzE4N2QyNjdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAyLTEwICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFRoZXJlJ3MgYW4gZXZl
bnQgbG9vcCBjeWNsZSBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBmaW5pc2hpbmcsIGFuZCBpdCBiZWlu
ZyByZW1vdmVkIGZyb20gR3JhcGhpY3NMYXllckNBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDczNjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5
MjgwMzcwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFuaW1hdGlvbnMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBHcmFwaGljc0xheWVyc0NBcyBpbiB0
aGUgc2FtZSByZW5kZXJpbmcgdXBkYXRlIHRoYXQgY2hhbmdlcyB0aGUgcGxheVN0YXRlIG9mIHRo
ZSAKKyAgICAgICAgYW5pbWF0aW9uIHRvICJmaW5pc2hlZCIsIHRvIGF2b2lkIGxheWVyIGZsdXNo
IHdoZXJlIGEgR3JhcGhpY3NMYXllcnNDQXMgaGFzIG5vIGV4dGVudCBzZXQsIGJ1dCB0aGlua3Mg
dGhlcmUgaXMKKyAgICAgICAgYW4gYWN0aXZlIHRyYW5zZm9ybSBhbmltYXRpb24uCisKKyAgICAg
ICAgVG8gZG8gdGhpcywgaW5zdGVhZCBvZiBlbnF1ZXVpbmcgYWNjZWxlcmF0ZWQgYWN0aW9ucyB3
aGVuIHJlc29sdmluZyBhbmltYXRpb25zIGR1cmluZyBzdHlsZSByZXNvbHV0aW9uLCBpbgorICAg
ICAgICBLZXlmcmFtZUFuaW1hdGlvbjo6YXBwbHkoKSwgd2UgZW5xdWV1ZSB0aGVtIGFzIHNvb24g
YXMgYW4gYW5pbWF0aW9uJ3MgY3VycmVudCB0aW1lIG1heSBoYXZlIGNoYW5nZWQ6IGluCisgICAg
ICAgIFdlYkFuaW1hdGlvbjo6dGljaygpIGFuZCBXZWJBbmltYXRpb246OnBsYXkoKSB3aXRoIHN1
cHBvcnRpbmcgZnVuY3Rpb25zIG5ld2x5IGV4cG9zZWQgb24gQW5pbWF0aW9uRWZmZWN0LgorCisg
ICAgICAgIE5vdywgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucyBhcmUgZW5xdWV1ZWQgYW5kIGFwcGxp
ZWQgZHVyaW5nIHRoZSAidXBkYXRlIGFuaW1hdGlvbnMgYW5kIHNlbmQgZXZlbnRzIiBwcm9jZWR1
cmUuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0Lmg6CisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6dXBkYXRl
QWNjZWxlcmF0ZWRBY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojph
bmltYXRpb25EaWRUaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojphbmlt
YXRpb25EaWRQbGF5KToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAg
ICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkFuaW1hdGlvbjo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnRpY2sp
OgorCiAyMDIwLTAyLTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bQkZDXSBSZXBsYWNlICJlc3RpbWF0ZWQiIHRlcm0gd2l0aCAicHJlY29tcHV0ZWQi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmgKaW5kZXggOGViYjQ0
YzMzMjQ4ZDZlYzg2ODVhMTczYzc5M2NlMTcyODM2NmFiNC4uOGQwMmFkMDc2ZDI4Mzg2OTJjZDdm
M2EzOWRiYjZhNTkzYWVhYmIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0FuaW1hdGlvbkVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
YXBwbHkoUmVuZGVyU3R5bGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbkRpZFRpY2soKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGFuaW1hdGlvbkRpZFBsYXkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlv
bkRpZFNlZWsoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvbldhc0NhbmNlbGVkKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25TdXNwZW5zaW9uU3RhdGVEaWRDaGFuZ2Uo
Ym9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAK
aW5kZXggOTJlOThmZGRiOGJiNzhhZGM2ZDc4ODkyZWY1NjYzOTE1MWU2ODNjZC4uYjMxY2VmNjBh
YzE3YTc0ZWY0NTVkOWY5ZTA1NWRjZTZiYjk3NTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0xMDg2LDggKzEwODYsNiBAQCB2b2lkIEtleWZy
YW1lRWZmZWN0OjphcHBseShSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUpCiAgICAgYXV0byBjb21w
dXRlZFRpbWluZyA9IGdldENvbXB1dGVkVGltaW5nKCk7CiAgICAgbV9waGFzZUF0TGFzdEFwcGxp
Y2F0aW9uID0gY29tcHV0ZWRUaW1pbmcucGhhc2U7CiAKLSAgICB1cGRhdGVBY2NlbGVyYXRlZEFj
dGlvbnMoY29tcHV0ZWRUaW1pbmcpOwotCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsQXBwbHlLZXlmcmFtZUVmZmVjdCgqbV90YXJnZXQsICp0aGlzLCBjb21wdXRlZFRpbWluZyk7
CiAKICAgICBpZiAoIWNvbXB1dGVkVGltaW5nLnByb2dyZXNzKQpAQCAtMTMzNCwxMSArMTMzMiwx
MyBAQCBUaW1pbmdGdW5jdGlvbiogS2V5ZnJhbWVFZmZlY3Q6OnRpbWluZ0Z1bmN0aW9uRm9yS2V5
ZnJhbWVBdEluZGV4KHNpemVfdCBpbmRleCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9p
ZCBLZXlmcmFtZUVmZmVjdDo6dXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKENvbXB1dGVkRWZmZWN0
VGltaW5nIGNvbXB1dGVkVGltaW5nKQordm9pZCBLZXlmcmFtZUVmZmVjdDo6dXBkYXRlQWNjZWxl
cmF0ZWRBY3Rpb25zKCkKIHsKICAgICBpZiAobV9hY2NlbGVyYXRlZFByb3BlcnRpZXNTdGF0ZSA9
PSBBY2NlbGVyYXRlZFByb3BlcnRpZXM6Ok5vbmUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGF1
dG8gY29tcHV0ZWRUaW1pbmcgPSBnZXRDb21wdXRlZFRpbWluZygpOworCiAgICAgLy8gSWYgd2Un
cmUgbm90IGFscmVhZHkgcnVubmluZyBhY2NlbGVyYXRlZCwgdGhlIG9ubHkgdGhpbmcgd2UncmUg
aW50ZXJlc3RlZCBpbiBpcyB3aGV0aGVyIHdlIG5lZWQgdG8gc3RhcnQgdGhlIGFuaW1hdGlvbgog
ICAgIC8vIHdoaWNoIHdlIG5lZWQgdG8gZG8gb25jZSB3ZSdyZSBpbiB0aGUgYWN0aXZlIHBoYXNl
LiBPdGhlcndpc2UsIHRoZXJlJ3Mgbm8gY2hhbmdlIGluIGFjY2VsZXJhdGVkIHN0YXRlIHRvIGNv
bnNpZGVyLgogICAgIGJvb2wgaXNBY3RpdmUgPSBjb21wdXRlZFRpbWluZy5waGFzZSA9PSBBbmlt
YXRpb25FZmZlY3RQaGFzZTo6QWN0aXZlOwpAQCAtMTM4MSw2ICsxMzgxLDE4IEBAIHZvaWQgS2V5
ZnJhbWVFZmZlY3Q6OmFkZFBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbihBY2NlbGVyYXRlZEFjdGlv
biBhY3Rpb24pCiAgICAgYW5pbWF0aW9uKCktPmFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2UoKTsK
IH0KIAordm9pZCBLZXlmcmFtZUVmZmVjdDo6YW5pbWF0aW9uRGlkVGljaygpCit7CisgICAgaW52
YWxpZGF0ZSgpOworICAgIHVwZGF0ZUFjY2VsZXJhdGVkQWN0aW9ucygpOworfQorCit2b2lkIEtl
eWZyYW1lRWZmZWN0OjphbmltYXRpb25EaWRQbGF5KCkKK3sKKyAgICBpZiAobV9hY2NlbGVyYXRl
ZFByb3BlcnRpZXNTdGF0ZSAhPSBBY2NlbGVyYXRlZFByb3BlcnRpZXM6Ok5vbmUpCisgICAgICAg
IGFkZFBlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbihBY2NlbGVyYXRlZEFjdGlvbjo6UGxheSk7Cit9
CisKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmFuaW1hdGlvbkRpZFNlZWsoKQogewogICAgIC8vIFRo
ZXJlIGlzIG5vIG5lZWQgdG8gc2VlayBpZiB3ZSdyZSBub3QgcGxheWluZyBhbiBhbmltYXRpb24g
YWxyZWFkeS4gSWYgc2Vla2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuaAppbmRleCA0ZmQwMDZkM2IyYjk2ZDBiNmIwZWE0NWIyZmYzYzkxOGRlNWU0ZGQxLi5lODhk
MjI1NTZkMjYzYmJiNTQzMmE4ZWMwNmRhMGI4MjI2NzVmMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaApAQCAtMTE1LDYgKzExNSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdldEFuaW1hdGVkU3R5bGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiYgYW5p
bWF0ZWRTdHlsZSk7CiAgICAgdm9pZCBhcHBseShSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAg
IHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgYW5pbWF0aW9uRGlkVGljaygp
IGZpbmFsOworICAgIHZvaWQgYW5pbWF0aW9uRGlkUGxheSgpIGZpbmFsOwogICAgIHZvaWQgYW5p
bWF0aW9uRGlkU2VlaygpIGZpbmFsOwogICAgIHZvaWQgYW5pbWF0aW9uV2FzQ2FuY2VsZWQoKSBm
aW5hbDsKICAgICB2b2lkIGFuaW1hdGlvblN1c3BlbnNpb25TdGF0ZURpZENoYW5nZShib29sKSBm
aW5hbDsKQEAgLTE2Myw3ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29weVByb3BlcnRp
ZXNGcm9tU291cmNlKFJlZjxLZXlmcmFtZUVmZmVjdD4mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcHJvY2Vzc0tleWZyYW1lcyhKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpTdHJvbmc8SlND
OjpKU09iamVjdD4mJik7CiAgICAgdm9pZCBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNj
ZWxlcmF0ZWRBY3Rpb24pOwotICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKENvbXB1
dGVkRWZmZWN0VGltaW5nKTsKKyAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQWN0aW9ucygpOwog
ICAgIHZvaWQgc2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYsIGRvdWJs
ZSk7CiAgICAgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4
KHNpemVfdCk7CiAgICAgUmVmPGNvbnN0IEFuaW1hdGlvbj4gYmFja2luZ0FuaW1hdGlvbkZvckNv
bXBvc2l0ZWRSZW5kZXJlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmNwcAppbmRleCAxYzUzMGUwNTI3NWUzZjhiOGE3YWFjYjlkMTNkOWExMmFjZmU5YjY3
Li5kNDIxMWNjNWVjNTRmNjA1ODZlZDE0NDc3NDRhY2U5ODQwMWI4NzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAtOTg2LDYgKzk4Niw5IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdlYkFuaW1hdGlvbjo6cGxheShBdXRvUmV3aW5kIGF1dG9SZXdpbmQpCiAK
ICAgICBpbnZhbGlkYXRlRWZmZWN0KCk7CiAKKyAgICBpZiAobV9lZmZlY3QpCisgICAgICAgIG1f
ZWZmZWN0LT5hbmltYXRpb25EaWRQbGF5KCk7CisKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0x
MjA5LDcgKzEyMTIsOCBAQCB2b2lkIFdlYkFuaW1hdGlvbjo6dGljaygpCiAgICAgaWYgKGhhc1Bl
bmRpbmdQbGF5VGFzaygpKQogICAgICAgICBydW5QZW5kaW5nUGxheVRhc2soKTsKIAotICAgIGlu
dmFsaWRhdGVFZmZlY3QoKTsKKyAgICBpZiAoIWlzRWZmZWN0SW52YWxpZGF0aW9uU3VzcGVuZGVk
KCkgJiYgbV9lZmZlY3QpCisgICAgICAgIG1fZWZmZWN0LT5hbmltYXRpb25EaWRUaWNrKCk7CiB9
CiAKIHZvaWQgV2ViQW5pbWF0aW9uOjpyZXNvbHZlKFJlbmRlclN0eWxlJiB0YXJnZXRTdHlsZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMzdiZGNkZjBmODMzNmFjYjRlZmQ4MjJhOGJjMDVlMTA4OTg4M2UzLi40YzdmNThi
ZTdiNmY4YjJhNzA4MTFmYmQ5YWJkY2RmNzQ5OWEwZTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDItMTAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgVGhlcmUncyBhbiBldmVudCBsb29wIGN5Y2xlIGJldHdlZW4gYW4gYW5pbWF0aW9uIGZpbmlz
aGluZywgYW5kIGl0IGJlaW5nIHJlbW92ZWQgZnJvbSBHcmFwaGljc0xheWVyQ0EKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzM2MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTkyODAzNzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTG93ZXIgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8gd2FpdCBhZnRl
ciBhbiBhbmltYXRpb24gY29tcGxldGVzIGJ5IG9uZSB0byBjaGVjayB0aGF0IHRoZSBhY2NlbGVy
YXRlZCBhbmltYXRpb24gaGFzIGJlZW4gcmVtb3ZlZAorICAgICAgICB0byBzaG93IHRoYXQgd2Ug
ZW5xdWV1ZSBhY2NlbGVyYXRlZCBhY3Rpb25zIGFzIHBhcnQgb2YgdGhlICJ1cGRhdGUgYW5pbWF0
aW9ucyBhbmQgc2VuZCBldmVudHMiIHByb2NlZHVyZS4KKworICAgICAgICAqIHdlYmFuaW1hdGlv
bnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXJlbW92YWwtdXBvbi10cmFuc2l0aW9uLWNvbXBsZXRp
b24uaHRtbDogQWRkZWQuCisKIDIwMjAtMDItMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRXh0ZW50IG9mIGEgY29tcG9zaXRlZCBhbmltYXRpb24g
c2hvdWxkIG5vdCBpbmNsdWRlIHRoZSB1bnRyYW5zZm9ybWVkIHBvc2l0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVkLWFuaW1hdGlvbi1yZW1vdmFs
LXVwb24tdHJhbnNpdGlvbi1jb21wbGV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRp
b25zL2FjY2VsZXJhdGVkLWFuaW1hdGlvbi1yZW1vdmFsLXVwb24tdHJhbnNpdGlvbi1jb21wbGV0
aW9uLmh0bWwKaW5kZXggYmY2MDczZTg4MDAzZTY2YjIxNTczZDc5NGMxODk5ODM1M2IxN2ZmMS4u
YjM3NjY4MTdjZjQwZTNkOWRhZTY1ZTQzOWNhMmRmZjNjNjllNWJiNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9hY2NlbGVyYXRlZC1hbmltYXRpb24tcmVtb3ZhbC11cG9u
LXRyYW5zaXRpb24tY29tcGxldGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlv
bnMvYWNjZWxlcmF0ZWQtYW5pbWF0aW9uLXJlbW92YWwtdXBvbi10cmFuc2l0aW9uLWNvbXBsZXRp
b24uaHRtbApAQCAtMzUsNyArMzUsNyBAQCBhc3luY190ZXN0KHQgPT4gewogICAgICAgICBjb25z
dCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgICAgIHRh
cmdldC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlM2QoMTAwcHgsIDAsIDApIjsKICAgICAg
ICAgdGFyZ2V0LmdldEFuaW1hdGlvbnMoKVswXS5maW5pc2hlZC50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIHdhaXRORnJhbWVzKDMsICgpID0+IHsKKyAgICAgICAgICAgIHdhaXRORnJhbWVzKDIs
ICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy5hY2NlbGVy
YXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KHRhcmdldCkubGVuZ3RoLCAwLCAiVGhlcmUgc2hvdWxk
IGJlIG5vIGFjY2VsZXJhdGVkIGFuaW1hdGlvbiBhZnRlciB0aGUgYW5pbWF0aW9uIGNvbXBsZXRl
ZC4iKTsKICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKICAgICAgICAgICAgIH0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>