<?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>218011</bug_id>
          
          <creation_ts>2020-10-21 02:06:20 -0700</creation_ts>
          <short_desc>REGRESSION (r263729): transform transition doesn&apos;t restart</short_desc>
          <delta_ts>2020-10-21 11:11:00 -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>Animations</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1700111</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:06:20 -0700</bug_when>
    <thetext>In the attached test case clicking on the button animates the black rectangle using a transitions. When the transition completes, the transition style is removed. However, clicking the button again will fail to animate again, the transition doesn&apos;t start again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700112</commentid>
    <comment_count>1</comment_count>
      <attachid>411966</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:06:46 -0700</bug_when>
    <thetext>Created attachment 411966
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700113</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:07:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/70035130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700114</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:18:46 -0700</bug_when>
    <thetext>The problem is that the second time we attempt to start a transition, under AnimationTimeline::updateCSSTransitionsForStyleableAndProperty(), we should be taking the first code branch but the third clause is failing:

        // 1. If all of the following are true:
        //   - the element does not have a running transition for the property,
        //   - the before-change style is different from and can be interpolated with the after-change style for that property,
        //   - the element does not have a completed transition for the property or the end value of the completed transition is different from the after-change style for the property,
        //   - there is a matching transition-property value, and
        //   - the combined duration is greater than 0s,

Specifically, this is this code:

        propertyInStyleMatchesValueForTransitionInMap(property, afterChangeStyle, styleable.ensureCompletedTransitionsByProperty())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700115</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:26:39 -0700</bug_when>
    <thetext>Under the call to getAnimations(), we take this code branch:

    // A CSS Transition might have completed since the last time animations were updated so we must
    // update the running and completed transitions membership in that case.
    if (is&lt;CSSTransition&gt;(animation) &amp;&amp; matchingBackingAnimation &amp;&amp; styleable.hasRunningTransitionsForProperty(property) &amp;&amp; animation-&gt;playState() == WebAnimation::PlayState::Finished) {
        styleable.ensureCompletedTransitionsByProperty().set(property, styleable.ensureRunningTransitionsByProperty().take(property));
        animation = nullptr;
    }

After this, styleable.hasRunningTransitionsForProperty(property) is false and styleable.hasCompletedTransitionsForProperty(property) is true.

Then, upon style recalc due to resetting the transition and transform styles on the target, we take this code branch:

    else if (styleable.hasCompletedTransitionsForProperty(property) &amp;&amp; !propertyInStyleMatchesValueForTransitionInMap(property, afterChangeStyle, styleable.ensureCompletedTransitionsByProperty())) {
        // 2. Otherwise, if the element has a completed transition for the property and the end value of the completed transition is different from
        //    the after-change style for the property, then implementations must remove the completed transition from the set of completed transitions.
        styleable.ensureCompletedTransitionsByProperty().remove(property);
    }

After this, styleable.hasRunningTransitionsForProperty(property) and styleable.hasCompletedTransitionsForProperty(property) are both false.

However, the next time we enter AnimationTimeline::updateCSSTransitionsForStyleableAndProperty() upon attempting to restart a transition, styleable.hasRunningTransitionsForProperty(property) is false but styleable.hasCompletedTransitionsForProperty(property) is back to being true. That&apos;s the problem, there should not be a completed running transition for this property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700128</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 02:56:48 -0700</bug_when>
    <thetext>This is because we set the completed transition again in DocumentTimeline::transitionDidComplete() under DocumentTimelinesController::updateAnimationsAndSendEvents() in a later update. There is a disconnect between the animation&apos;s running state as set during the updateAnimationsAndSendEvents() routine and the running/completed transitions recorded on Styleable.

We most likely need to ensure the animation is actually in the finished running state when moving to the completed list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700143</commentid>
    <comment_count>6</comment_count>
      <attachid>411973</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 05:15:37 -0700</bug_when>
    <thetext>Created attachment 411973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700284</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-21 11:11:00 -0700</bug_when>
    <thetext>Committed r268809: &lt;https://trac.webkit.org/changeset/268809&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411966</attachid>
            <date>2020-10-21 02:06:46 -0700</date>
            <delta_ts>2020-10-21 02:06:46 -0700</delta_ts>
            <desc>Test</desc>
            <filename>bug-218011.html</filename>
            <type>text/html</type>
            <size>879</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgoKZGl2IHsKICAgIHdpZHRoOiAx
MDBweDsKICAgIGhlaWdodDogMTAwcHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKfQoK
ZGl2LmFuaW1hdGVkIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7CiAgICB0cmFu
c2l0aW9uOiB0cmFuc2Zvcm0gMXMgbGluZWFyOwp9Cgo8L3N0eWxlPgo8c2NyaXB0PgoKd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCAoKSA9PiB7CiAgICBjb25zdCB0
YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKTsKCiAgICB0YXJnZXQuYWRkRXZl
bnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIGV2ZW50ID0+IHsKICAgICAgICAvLyBBZnRlciBy
MjYzNzI5LCBmb3JjaW5nIGEgc3R5bGUgcmVjYWxjIGhlcmUgcHJldmVudHMgdGhlIHRyYW5zaXRp
b24KICAgICAgICAvLyBmcm9tIHJlc3RhcnRpbmcuIE1vdmluZyB0aGUgZm9yY2VkIHN0eWxlIHJl
Y2FsYyBfYWZ0ZXJfIHJlbW92aW5nIHRoZQogICAgICAgIC8vIGFuaW1hdGVkIGNsYXNzIHdpbGwg
bm90IHJlcHJvZHVjZSB0aGUgaXNzdWUuCiAgICAgICAgdGFyZ2V0LmdldEFuaW1hdGlvbnMoKTsK
ICAgICAgICB0YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgiYW5pbWF0ZWQiKTsKICAgIH0pOwoKICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgZXZlbnQgPT4gdGFyZ2V0LmNsYXNzTGlzdC5hZGQoImFuaW1hdGVkIikpOwp9KTsKCjwvc2Ny
aXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDxidXR0b24+QW5pbWF0ZTwvYnV0dG9uPgogICAgPGRp
dj48L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411973</attachid>
            <date>2020-10-21 05:15:37 -0700</date>
            <delta_ts>2020-10-21 10:55:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218011-20201021141536.patch</filename>
            <type>text/plain</type>
            <size>7785</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY1YzJmNTY3YjllOWVm
ZjY3YjUwYjZmYzk0MDUwYzQ5OGIzZmJkNC4uZjM2YmQ4ZDQ2MTFmMzZlMGQ4ZmIwMjk1OWJkZDQx
OGM4MmExZmFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTIxICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIy
NjM3MjkpOiB0cmFuc2Zvcm0gdHJhbnNpdGlvbiBkb2Vzbid0IHJlc3RhcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODAxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAwMzUx
MzA+CisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucywgc3R5
bGUgZm9yIHRoZSB0YXJnZXRlZCBlbGVtZW50IGlzIG5vdCB1cGRhdGVkIHdoaWxlIHRoZSBhbmlt
YXRpb24gaXMKKyAgICAgICAgaW4gZmxpZ2h0IHNpbmNlIHRoZSBhbmltYXRpb24gaXMgcGVyZm9y
bWVkIGJ5IENvcmUgQW5pbWF0aW9uLiBUaGlzIG1lYW5zIHRoYXQgYnkgdGhlIHRpbWUgdGhlICJ0
cmFuc2l0aW9uZW5kIgorICAgICAgICBldmVudCBpcyBmaXJlZCwgYSB0cmFuc2l0aW9uIGhhcyBu
b3QgeWV0IHBlcmZvcm1lZCBzdHlsZSB1cGRhdGVzIGZvciB0aGUgZWxlbWVudCB0aGF0IHdvdWxk
IGhhdmUgYWxyZWFkeSBiZWVuCisgICAgICAgIHBlcmZvcm1lZCBmb3IgYSBzb2Z0d2FyZSBhbmlt
YXRpb25zIGFuZCB0aHVzIHRoZSB1cGRhdGVzIHRvIHRoZSBjb21wbGV0ZWQgYW5kIHJ1bm5pbmcg
dHJhbnNpdGlvbiBtYXBzIHBlcmZvcm1lZAorICAgICAgICB1bmRlciBBbmltYXRpb25UaW1lbGlu
ZTo6dXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JTdHlsZWFibGVBbmRQcm9wZXJ0eSgpIG1heSBiZSBv
dXQgb2Ygc3luYyB3aXRoIHRoZSBhc3N1bXB0aW9ucworICAgICAgICBtYWRlIGluIERvY3VtZW50
VGltZWxpbmVzQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKSB0aGF0
IGEgdHJhbnNpdGlvbiBuZXdseSBtYXJrZWQgYXMgZmluaXNoZWQKKyAgICAgICAgc2hvdWxkIGJl
IGFkZGVkIHRvIHRoZSBsaXN0IG9mIGNvbXBsZXRlZCB0cmFuc2l0aW9ucy4KKyAgICAgICAgCisg
ICAgICAgIEluZGVlZCwgaW4gdGhlIG5ld2x5LWFkZGVkIHRlc3QsIGlmIGEgc3R5bGUgdXBkYXRl
IGlzIGZvcmNlZCBkdXJpbmcgdGhlICJ0cmFuc2l0aW9uZW5kIiBldmVudCBsaXN0ZW5lciBiZWZv
cmUgYWxzbworICAgICAgICBjbGVhcmluZyB0aGUgdHJhbnNpdGlvbiBzdHlsZXMsIHR3byBzdHls
ZSB1cGRhdGVzLCBhbmQgdGh1cyB0d28gY2FsbHMgdG8gdXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JT
dHlsZWFibGVBbmRQcm9wZXJ0eSgpLAorICAgICAgICB3aWxsIGhhdmUgYmVlbiBwZXJmb3JtZWQg
YnkgdGhlIHRpbWUgdXBkYXRlQW5pbWF0aW9uc0FuZFNlbmRFdmVudHMoKSBydW5zIGFnYWluIGFu
ZCBjb2xsZWN0cyBjb21wbGV0ZWQgdHJhbnNpdGlvbnMsCisgICAgICAgIGR1cmluZyB3aGljaCB0
aW1lIHRoZSB0cmFuc2l0aW9uIGluIHF1ZXN0aW9uIHdpbGwgaGF2ZSBiZWVuIHJlbW92ZWQgZnJv
bSB0aGUgbGlzdCBvZiBydW5uaW5nIHRyYW5zaXRpb25zIGFuZCBhZGRlZAorICAgICAgICB0byB0
aGUgbGlzdCBvZiBjb21wbGV0ZWQgdHJhbnNpdGlvbnMgKGZpcnN0IHVwZGF0ZSkgYW5kIHN1YnNl
cXVlbnRseSByZW1vdmVkIGZyb20gdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRyYW5zaXRpb25zCisg
ICAgICAgIChzZWNvbmQgdXBkYXRlKS4gQXQgdGhpcyBwb2ludCwgc2V0dGluZyBzdHlsZXMgdGhh
dCB3b3VsZCBzdGFydCBhIG5ldyB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3BlcnR5IHdpbGwgbm90
IHlpZWxkIGEKKyAgICAgICAgdHJhbnNpdGlvbiBzaW5jZSB3ZSB3b24ndCBiZSBhYmxlIHRvIHNh
dGlzZnkgdGhlIHJlcXVpcmVtZW50IHRoYXQgdGhlIG5ldyB0YXJnZXQgdmFsdWUgZG9lcyBub3Qg
bWF0Y2ggdGhhdCBvZiB0aGUKKyAgICAgICAgY29tcGxldGVkIHRyYW5zaXRpb24uCisKKyAgICAg
ICAgSW4gdGhpcyBjaGFuZ2Ugd2Ugc3RvcCBhc3N1bWluZyB0aGF0IGp1c3QgYmVjYXVzZSB1cGRh
dGVBbmltYXRpb25zQW5kU2VuZEV2ZW50cygpIHNlZXMgYSB0cmFuc2l0aW9uIGFzIGZpbmlzaGVk
IGZvcgorICAgICAgICB0aGUgZmlyc3QgdGltZSBpdCBpbXBsaWVzIHRoYXQgdGhlIHRyYW5zaXRp
b24gaXMgc3RpbGwgY29uc2lkZXJlZCBhIHJ1bm5pbmcgdHJhbnNpdGlvbi4gQXMgc3VjaCB3ZSBv
bmx5IGFkZCBhIHRyYW5zaXRpb24KKyAgICAgICAgdG8gdGhlIGxpc3Qgb2YgY29tcGxldGVkIHRy
YW5zaXRpb25zIHNob3VsZCBpdCBiZSBpbiB0aGUgbGlzdCBvZiBydW5uaW5nIHRyYW5zaXRpb25z
LgorCisgICAgICAgIFRlc3Q6IHdlYmFuaW1hdGlvbnMvdHJhbnNpdGlvbi1yZXN0YXJ0LWFmdGVy
LXN0eWxlLXJlY2FsYy1kdXJpbmctdHJhbnNpdGlvbmVuZC5odG1sCisKKyAgICAgICAgKiBhbmlt
YXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRp
bWVsaW5lOjp0cmFuc2l0aW9uRGlkQ29tcGxldGUpOgorCiAyMDIwLTEwLTIwICBKdWxpYW4gR29u
emFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVsZWFzZSBh
c3NlcnQgaW4gfk5vZGUgZHVlIHRvIHJlbmRlciBlbGVtZW50IG9mIHBzZXVkbyBlbGVtZW50IG5v
dCBnZXR0aW5nIHJlbW92ZWQgaW4gdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuY3BwCmluZGV4IDk2YjQ5NjcyZDVmYmQyMWU1ZTkwMjNkODhmODk4NGNk
MzhlYzM4NDIuLjFhYWQ5NWZmNmM1OTliYWUwNGZmOTJhNzkwMjJiMmQyMTRmNDM0MTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTI5Nyw4
ICsyOTcsMTEgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp0cmFuc2l0aW9uRGlkQ29tcGxldGUo
UmVmUHRyPENTU1RyYW5zaXRpb24+IHRyYW5zaXRpb24pCiAgICAgQVNTRVJUKHRyYW5zaXRpb24p
OwogICAgIHJlbW92ZUFuaW1hdGlvbigqdHJhbnNpdGlvbik7CiAgICAgaWYgKGlzPEtleWZyYW1l
RWZmZWN0Pih0cmFuc2l0aW9uLT5lZmZlY3QoKSkpIHsKLSAgICAgICAgaWYgKGF1dG8gc3R5bGVh
YmxlID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3Q+KHRyYW5zaXRpb24tPmVmZmVjdCgpKS0+dGFy
Z2V0U3R5bGVhYmxlKCkpCi0gICAgICAgICAgICBzdHlsZWFibGUtPmVuc3VyZUNvbXBsZXRlZFRy
YW5zaXRpb25zQnlQcm9wZXJ0eSgpLnNldCh0cmFuc2l0aW9uLT5wcm9wZXJ0eSgpLCB0cmFuc2l0
aW9uKTsKKyAgICAgICAgaWYgKGF1dG8gc3R5bGVhYmxlID0gZG93bmNhc3Q8S2V5ZnJhbWVFZmZl
Y3Q+KHRyYW5zaXRpb24tPmVmZmVjdCgpKS0+dGFyZ2V0U3R5bGVhYmxlKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gcHJvcGVydHkgPSB0cmFuc2l0aW9uLT5wcm9wZXJ0eSgpOworICAgICAgICAgICAg
aWYgKHN0eWxlYWJsZS0+aGFzUnVubmluZ1RyYW5zaXRpb25zRm9yUHJvcGVydHkocHJvcGVydHkp
KQorICAgICAgICAgICAgICAgIHN0eWxlYWJsZS0+ZW5zdXJlQ29tcGxldGVkVHJhbnNpdGlvbnNC
eVByb3BlcnR5KCkuc2V0KHByb3BlcnR5LCB0cmFuc2l0aW9uKTsKKyAgICAgICAgfQogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDBmZjcwMDU0MzY3OGE1Yzg3MThlNWMzNGIyYWEzMWY5YzcxMTUxNDIuLmU4
NjYzOTE1N2M1OGI3NDZmMDVjZmE4NDYzNTUwYTJkY2ExZTQxY2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAyMC0xMC0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSRUdSRVNTSU9OIChyMjYzNzI5KTogdHJhbnNmb3JtIHRyYW5zaXRpb24gZG9lc24n
dCByZXN0YXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTgwMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMDM1MTMwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRoYXQg
Y2hlY2tzIHRoYXQgZm9yY2luZyBhIHN0eWxlIHVwZGF0ZSBkdXJpbmcgZGlzcGF0Y2ggb2YgdGhl
ICJ0cmFuc2l0aW9uZW5kIiBldmVudAorICAgICAgICBkb2VzIG5vdCBwcmV2ZW50IHRoZSBjb21w
bGV0ZWQgdHJhbnNpdGlvbiBmcm9tIHN0YXJ0aW5nIGFnYWluIGlmIHJlc2V0LgorCisgICAgICAg
ICogd2ViYW5pbWF0aW9ucy90cmFuc2l0aW9uLXJlc3RhcnQtYWZ0ZXItc3R5bGUtcmVjYWxjLWR1
cmluZy10cmFuc2l0aW9uZW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYW5p
bWF0aW9ucy90cmFuc2l0aW9uLXJlc3RhcnQtYWZ0ZXItc3R5bGUtcmVjYWxjLWR1cmluZy10cmFu
c2l0aW9uZW5kLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEwLTIwICBEaWVnbyBQaW5vIEdhcmNpYSAg
PGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdW0dUS10gVW5yZXZpZXd3ZWQgdGVz
dCBnYXJkZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvdHJhbnNpdGlvbi1yZXN0YXJ0LWFmdGVyLXN0eWxlLXJlY2Fs
Yy1kdXJpbmctdHJhbnNpdGlvbmVuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmlt
YXRpb25zL3RyYW5zaXRpb24tcmVzdGFydC1hZnRlci1zdHlsZS1yZWNhbGMtZHVyaW5nLXRyYW5z
aXRpb25lbmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3NzQzYWQ4YjA0ZmY2NjJkZTIxNTA2
MDRkNTliZWI5NmM2NDBjNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmlt
YXRpb25zL3RyYW5zaXRpb24tcmVzdGFydC1hZnRlci1zdHlsZS1yZWNhbGMtZHVyaW5nLXRyYW5z
aXRpb25lbmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEZvcmNpbmcgYSBz
dHlsZSB1cGRhdGUgaW4gYSB0cmFuc2l0aW9uZW5kIGV2ZW50IGZvciBhbiBhY2NlbGVyYXRlZCBh
bmltYXRpb24gc2hvdWxkIG5vdCBwcmV2ZW50IGFub3RoZXIgdHJhbnNpdGlvbiBmb3IgdGhlIHNh
bWUgcHJvcGVydHkgZnJvbSBydW5uaW5nIGxhdGVyLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhbmltYXRpb25zL3RyYW5zaXRpb24tcmVzdGFydC1hZnRlci1zdHlsZS1yZWNhbGMtZHVy
aW5nLXRyYW5zaXRpb25lbmQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvdHJhbnNp
dGlvbi1yZXN0YXJ0LWFmdGVyLXN0eWxlLXJlY2FsYy1kdXJpbmctdHJhbnNpdGlvbmVuZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMyYjYwNjMzOGVkMzc1NzNkN2EwODJiZGY0YTk4NmEzMDIwOGY1ZDIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3RyYW5zaXRpb24tcmVz
dGFydC1hZnRlci1zdHlsZS1yZWNhbGMtZHVyaW5nLXRyYW5zaXRpb25lbmQuaHRtbApAQCAtMCww
ICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5Gb3JjaW5nIGEgc3R5bGUgdXBkYXRlIGluIGEgdHJhbnNpdGlvbmVuZCBldmVudCBmb3IgYW4g
YWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHNob3VsZCBub3QgcHJldmVudCBhbm90aGVyIHRyYW5zaXRp
b24gZm9yIHRoZSBzYW1lIHByb3BlcnR5IGZyb20gcnVubmluZyBsYXRlcjwvdGl0bGU+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBj
b25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpKTsKKyAgICBjb25zdCBhbmltYXRlZFN0eWxlID0gInRyYW5zaXRpb246IHRy
YW5zZm9ybSAxbXMgbGluZWFyOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpIjsKKworICAg
IC8vIFN0YXJ0IGEgdHJhbnNmb3JtIHRyYW5zaXRpb24uCisgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpLnRyYW5zZm9ybTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGFuaW1h
dGVkU3R5bGUpOworCisgICAgLy8gV2FpdCB1bnRpbCBpdCBjb21wbGV0ZXMsIGFuZCBpbiB0aGUg
InRyYW5zaXRpb25lbmQiIGV2ZW50IGhhbmRsZXIsIGZvcmNlIGEgc3R5bGUgcmVjYWxjCisgICAg
Ly8gYmVmb3JlIHJlbW92aW5nIHRoZSB0cmFuc2l0aW9uIHN0eWxlLgorICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4geworICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidHJh
bnNpdGlvbmVuZCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIHRhcmdldC5nZXRBbmltYXRpb25z
KCk7CisgICAgICAgICAgICB0YXJnZXQucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpOworICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisgICAgfSk7CisK
KyAgICAvLyBXYWl0IHVudGlsIHRoZSBhY2NlbGVyYXRlZCBhbmltYXRpb24gaGFzIGNvbXBsZXRl
ZC4KKyAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKworICAg
IC8vIFN0YXJ0IGFub3RoZXIgdHJhbnNmb3JtIHRyYW5zaXRpb24uCisgICAgZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLnRyYW5zZm9ybTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIs
IGFuaW1hdGVkU3R5bGUpOworCisgICAgLy8gQ2hlY2sgdGhhdCBpdCBzdGFydHMgYW5kIGVuZHMu
CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5l
cigidHJhbnNpdGlvbmVuZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7Cit9LCAiRm9yY2lu
ZyBhIHN0eWxlIHVwZGF0ZSBpbiBhIHRyYW5zaXRpb25lbmQgZXZlbnQgZm9yIGFuIGFjY2VsZXJh
dGVkIGFuaW1hdGlvbiBzaG91bGQgbm90IHByZXZlbnQgYW5vdGhlciB0cmFuc2l0aW9uIGZvciB0
aGUgc2FtZSBwcm9wZXJ0eSBmcm9tIHJ1bm5pbmcgbGF0ZXIuIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="428315"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>