<?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>201565</bug_id>
          
          <creation_ts>2019-09-06 16:15:38 -0700</creation_ts>
          <short_desc>SVG &lt;animateMotion&gt; does not reset the element to its first animation frame if its fill is &quot;remove&quot;</short_desc>
          <delta_ts>2019-09-17 12:25:32 -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>SVG</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>
          
          <blocked>200143</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1568755</commentid>
    <comment_count>0</comment_count>
      <attachid>378249</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-06 16:15:38 -0700</bug_when>
    <thetext>Created attachment 378249
test case

Open the attached test case.

Result: The green rectangle should animate for 2 seconds then it stays in its last animated position.
Expected: After the green rectangle finishes animation, it should move back to its original position.


This is an SVG test case. It has a &lt;rect&gt; element which has an &lt;animateMotion&gt; element as a child. The &lt;animateMotion&gt; has an attribute fill=&quot;remove&quot;. The expected behavior is resetting the rectangle back to its original position once the animation finishes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568759</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-06 16:20:27 -0700</bug_when>
    <thetext>Related WPT tests:

https://wpt.fyi/results/svg/animations/animateMotion-still.html?label=master&amp;label=experimental&amp;aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569397</commentid>
    <comment_count>2</comment_count>
      <attachid>378427</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-09 18:43:47 -0700</bug_when>
    <thetext>Created attachment 378427
animateMotion + animate

This test case shows the difference between using the &lt;animateMotion&gt; and &lt;animate&gt; elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570188</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-12 00:46:36 -0700</bug_when>
    <thetext>I am working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570334</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-12 12:37:09 -0700</bug_when>
    <thetext>This WPT is also affected by this bug:

https://wpt.fyi/results/svg/animations/animateMotion-fill-remove.html?label=master&amp;label=experimental&amp;aligned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570567</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-13 06:17:48 -0700</bug_when>
    <thetext>I have a testcase for svg/animations that samples the animation for both &lt;animate&gt; / &lt;animateMotion&gt;: before-the-animation / middle-of-animation / before-end-of-animation / past-end-of-animation, and is currently not passing.

I found the origin of the bug and will prepare a patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570668</commentid>
    <comment_count>6</comment_count>
      <attachid>378743</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-13 12:13:36 -0700</bug_when>
    <thetext>Created attachment 378743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571028</commentid>
    <comment_count>7</comment_count>
      <attachid>378743</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-15 23:32:06 -0700</bug_when>
    <thetext>Comment on attachment 378743
Patch

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

&gt; Source/WebCore/svg/SVGAnimateMotionElement.cpp:160
&gt; +    if (RenderObject* targetRenderer = targetElement-&gt;renderer())
&gt; +        targetRenderer-&gt;setNeedsTransformUpdate();

I think setNeedsTransformUpdate() should be moved to applyResultsToTarget() before calling markForLayoutAndParentResourceInvalidation():

    if (RenderElement* renderer = targetElement-&gt;renderer()) {
        renderer-&gt;setNeedsTransformUpdate();
        RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
    }

I think it makes more sense when setNeedsTransformUpdate() is paired with markForLayoutAndParentResourceInvalidation(). And this is what we do for the other &lt;use&gt; instances in applyResultsToTarget().

&gt; LayoutTests/svg/animations/resources/fill-remove-support.svg:10
&gt; +    &lt;rect id=&quot;animateRect&quot; x=&quot;10&quot; y=&quot;120&quot; width=&quot;100&quot; height=&quot;100&quot; fill=&quot;green&quot;&gt;
&gt; +        &lt;animate id=&quot;animate&quot; attributeType=&quot;XML&quot; attributeName=&quot;x&quot; from=&quot;20&quot; to=&quot;210&quot; begin=&quot;0.5s&quot; dur=&quot;2s&quot; fill=&quot;remove&quot; /&gt;
&gt; +    &lt;/rect&gt;

Why do we need to test the &lt;animate&gt; element with this patch? The code change does not affect it. I think we should the following cases instead:

1. An SVG element with &lt;animateMotion fill=&quot;freeze&quot;&gt;
2. A &lt;use&gt; element which references the animated SVG element, e.g. &lt;use href=&quot;animateMotionRect&quot;/&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571029</commentid>
    <comment_count>8</comment_count>
      <attachid>378847</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-15 23:34:28 -0700</bug_when>
    <thetext>Created attachment 378847
animateMotion-remove-freeze-use</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571046</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-16 01:19:16 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #7)
&gt; I think it makes more sense when setNeedsTransformUpdate() is paired with
&gt; markForLayoutAndParentResourceInvalidation(). And this is what we do for the
&gt; other &lt;use&gt; instances in applyResultsToTarget().

I thought about it and there are even more compelling reasons why it should be paired, and why calling setNeedsTransformUpdate() in calculateAnimatedValue() (what we are doing at the moment) is flawed:

To assure that the implementation is symmetric between &lt;animate&gt; and &lt;animateMotion&gt;
in terms of updating the underlying value, updating the renderers &quot;dirty state&quot; etc, I decided
to compare the current call paths that lead to visual updates:

Let&apos;s examine animating &quot;x&quot; of a &lt;rect&gt; using &lt;animate&gt;:

1. An animation frame update is triggered by the timer in SMILTimeContainer.
2. The following call chain is triggered:

-&gt; SMILTimeContainer::timerFired
   -&gt; SMILTimeContainer::updateAnimations
      |--&gt; SVGSMILElement::progress
      |  |--&gt; SVGAnimationElement::updateAnimation
      |     |--&gt; SVGAnimateElementBase::calculateAnimatedValue
      |        |--&gt; SVGAnimatedLengthAnimator::animate
      |             Modifies m_x of SVGRectElement, does NOT modify the target elements renderer.
      |
      |--&gt; SVGAnimateElementBase::applyResultsToTarget
         |--&gt; SVGAnimatedPropertyAnimator&lt;SVGAnimatedValueProperty&lt;SVGLength&gt;, SVGAnimationLengthFunction&gt;::apply
            |--&gt; SVGAttributeAnimator::applyAnimatedPropertyChange
               |--&gt; SVGAttributeAnimator::applyAnimatedPropertyChange
                  |--&gt; SVGRectElement::svgAttributeChanged
                     | Updates of the attribute changes are propagated to the instances (&lt;use&gt;), by utilizing InstanceInvalidationGuard.
                     |
                     |--&gt; SVGElement::invalidateSVGPresentationAttributeStyle
                        |--&gt; Element::invalidateStyle
                             Since xAttr is part of the presentation attribute style, setNeedsLayout() is called
                             on the RenderSVGRect, and thus the &lt;rect&gt; is relayouted during the next layout phase.
                             RenderSVGRect::updateShapeFromElement() rebuilds the geometry and/or creates a path if necessary.

Now let&apos;s examine moving a rect along x direction using &lt;animateMotion&gt;:

1. An animation frame update is triggered by the timer in SMILTimeContainer.
2. The following call chain is triggered:

-&gt; SMILTimeContainer::timerFired
   -&gt; SMILTimeContainer::updateAnimations
      |--&gt; SVGSMILElement::progress
      |  |--&gt; SVGAnimationElement::updateAnimation
      |     |--&gt; SVGAnimateMotionElement::calculateAnimatedValue
      |        |  Prepares a new supplementalTransform - resets the existing one.
      |        |
      |        |--&gt; RenderObject::setNeedsTransformUpdate
      |        |    Explicitely sets the target elements renderer dirty: needs transform update.
      |        |
      |        |--&gt; SVGAnimateMotionElement::buildTransformForProgress
      |        |    Calculates the new supplemental transform.
      |
      |--&gt; SVGAnimateMotionElement::applyResultsToTarget
         |--&gt; RenderSVGResource::markForLayoutAndParentResourceInvalidation
              Explicitely marks the target elements renderer for layout.
              Propagates the supplementalTransform changes to all instances of the target element (&lt;use&gt;) and marks all instance renders for layout. 


Its obvious that &lt;animateMotion&gt; is different than &lt;animate&gt;: The updates of the supplementalTransform() and the modification of
the render tree are done at the same time. These phases should be decoupled, as you implicitly suggested with your comment.


&gt; &gt; LayoutTests/svg/animations/resources/fill-remove-support.svg:10
&gt; &gt; +    &lt;rect id=&quot;animateRect&quot; x=&quot;10&quot; y=&quot;120&quot; width=&quot;100&quot; height=&quot;100&quot; fill=&quot;green&quot;&gt;
&gt; &gt; +        &lt;animate id=&quot;animate&quot; attributeType=&quot;XML&quot; attributeName=&quot;x&quot; from=&quot;20&quot; to=&quot;210&quot; begin=&quot;0.5s&quot; dur=&quot;2s&quot; fill=&quot;remove&quot; /&gt;
&gt; &gt; +    &lt;/rect&gt;
&gt; 
&gt; Why do we need to test the &lt;animate&gt; element with this patch? The code
&gt; change does not affect it. I think we should the following cases instead:
I wanted to document the different behavior of &lt;animate&gt; and &lt;animateMotion&gt;, that&apos;s why I decided to test both in the same testcase. Not ok?

&gt; 1. An SVG element with &lt;animateMotion fill=&quot;freeze&quot;&gt;
&gt; 2. A &lt;use&gt; element which references the animated SVG element, e.g. &lt;use
&gt; href=&quot;animateMotionRect&quot;/&gt;.

I agree, these two testcases will be helpful.
I will adapt my patch and come back to you :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571486</commentid>
    <comment_count>10</comment_count>
      <attachid>378951</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-17 02:10:30 -0700</bug_when>
    <thetext>Created attachment 378951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571575</commentid>
    <comment_count>11</comment_count>
      <attachid>378951</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-17 10:03:17 -0700</bug_when>
    <thetext>Comment on attachment 378951
Patch

This looks great. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571619</commentid>
    <comment_count>12</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-17 12:24:05 -0700</bug_when>
    <thetext>Committed r249974: &lt;https://trac.webkit.org/changeset/249974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571620</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-17 12:25:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/55448916&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>378249</attachid>
            <date>2019-09-06 16:15:38 -0700</date>
            <delta_ts>2019-09-06 16:15:38 -0700</delta_ts>
            <desc>test case</desc>
            <filename>animateMotion-fill-remove.svg</filename>
            <type>image/svg+xml</type>
            <size>292</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggaWQ9InBh
dGgiIGQ9Ik0wLDAgTDEwMCwwIiBmaWxsPSJub25lIi8+CiAgICA8cmVjdCB4PSIxMCIgeT0iMTAi
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CiAgICAgICAgPGFuaW1hdGVN
b3Rpb24gYmVnaW49IjAuMnMiIGR1cj0iMnMiIGZpbGw9InJlbW92ZSI+CiAgICAgICAgICAgIDxt
cGF0aCBocmVmPSIjcGF0aCIvPgogICAgICAgIDwvYW5pbWF0ZU1vdGlvbj4KICAgIDwvcmVjdD4K
PC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>378427</attachid>
            <date>2019-09-09 18:43:47 -0700</date>
            <delta_ts>2019-09-09 18:43:47 -0700</delta_ts>
            <desc>animateMotion + animate</desc>
            <filename>animateMotion-fill-remove.svg</filename>
            <type>image/svg+xml</type>
            <size>524</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggaWQ9InBh
dGgiIGQ9Ik0wLDAgTDIwMCwwIiBmaWxsPSJub25lIi8+CiAgICA8cmVjdCB4PSIxMCIgeT0iMTAi
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CiAgICAgICAgPGFuaW1hdGVN
b3Rpb24gYmVnaW49IjAuMnMiIGR1cj0iMnMiIGZpbGw9InJlbW92ZSI+CiAgICAgICAgICAgIDxt
cGF0aCBocmVmPSIjcGF0aCIvPgogICAgICAgIDwvYW5pbWF0ZU1vdGlvbj4KICAgIDwvcmVjdD4K
ICAgIDxyZWN0IHg9IjEwIiB5PSIxMjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJn
cmVlbiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlVHlwZT0iWE1MIgogICAgICAgICAgICAg
YXR0cmlidXRlTmFtZT0ieCIKICAgICAgICAgICAgIGZyb209IjEwIiB0bz0iMjEwIiBiZWdpbj0i
MC4ycyIgZHVyPSIycyIKICAgICAgICAgICAgIGZpbGw9InJlbW92ZSIgLz4KICAgIDwvcmVjdD4g
ICAgCjwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378743</attachid>
            <date>2019-09-13 12:13:36 -0700</date>
            <delta_ts>2019-09-17 02:10:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201565-20190913211334.patch</filename>
            <type>text/plain</type>
            <size>10924</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNhOGY5YjA5Mjg1OTU0
MzVhNDIyNDJmZGE2MzBlNTM2NjQ5NmJiNS4uZmQ5ODIwMTlhMTE2NGQxNDhiMWQ5NzRiZTE4OGEz
ZDFhMjNkZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTA5LTEzICBOaWtv
bGFzIFppbW1lcm1hbm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgICAgICAgU1ZHIDxhbmlt
YXRlTW90aW9uPiBkb2VzIG5vdCByZXNldCB0aGUgZWxlbWVudCB0byBpdHMgZmlyc3QgYW5pbWF0
aW9uIGZyYW1lIGlmIGl0cyBmaWxsIGlzICJyZW1vdmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZmlsbD0icmVtb3ZlIiBzdXBwb3J0IGZvciA8
YW5pbWF0ZU1vdGlvbj46IHByb3Blcmx5IHRyaWdnZXIgdmlzdWFsIHVwZGF0ZXMuCisgICAgICAg
IE1vdGlvbiBhbmltYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBieSBwcm92ZGluZyBhbiBhZGRpdGlv
bmFsIHRyYW5zZm9ybWF0aW9uIG9uCisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudHM6IHRoZSBz
dXBwbGVtZW50YWxUcmFuc2Zvcm0oKS4KKworICAgICAgICBXaGVuIGFuIDxhbmltYXRlTW90aW9u
PiBlbGVtZW50IHNwZWNpZmllcyBmaWxsPSJyZW1vdmUiIHRoZSBzdXBwbGVtZW50YWwgdHJhbnNm
b3JtIGlzCisgICAgICAgIGNvcnJlY3RseSByZXNldCwgd2hlbiB0aGUgYW5pbWF0aW9uIGlzIGZp
bmlzaGVkLiBIb3dldmVyLCBub2JvZHkgaXMgbm90aWZpZWQgYWJvdXQgdGhlCisgICAgICAgIGNo
YW5nZSBvZiB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguIEZpeCBieSBtYXJraW5nIHRoZSB0YXJnZXQg
ZWxlbWVudHMgcmVuZGVyZXIgYXMKKyAgICAgICAgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSBh
bmQgY2FsbCBtYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKS4KKwor
ICAgICAgICA8YW5pbWF0ZT4gZWxlbWVudHMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGUgYnVnOgor
ICAgICAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNsZWFyQW5pbWF0ZWRUeXBlKCkKKyAgICAg
ICAgIC0+IGludm9rZXMgU1ZHQXR0cmlidXRlQW5pbWF0b3I6OnN0b3AoKQorICAgICAgICAgICAg
LT4gaW52b2tlcyBhcHBseUFuaW1hdGVkUHJvcGVydHlDaGFuZ2UoKSBbdmlhIFNWR0FuaW1hdGVk
UHJvcGVydHlBbmltYXRvcl0KKyAgICAgICAgICAgIC0+IGludm9rZXMgU1ZHWFhYRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCgpLgorCisgICAgICAgIFdoZW4gYW5pbWF0aW5nIGUuZy4gdGhl
ICd0cmFuc2Zvcm0nIGF0dHJpYnV0ZSBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoKQorICAgICAgICB3aWxsIHVzZSBleGFjdGx5IHRoZSBzYW1lIG1lY2hhbmlzbSB0byB0
cmlnZ2VyIHZpc3VsIHVwZGF0ZXM6IGZpcnN0IGNhbGwKKyAgICAgICAgc2V0TmVlZHNUUmFuc2Zv
cm1VcGRhdGUoKSBvbiB0aGUgYXNzb2NpYXRlZCByZW5kZXJlciwgZm9sbG93ZCBieSBhIGNhbGwg
dG8KKyAgICAgICAgbWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCku
CisKKyAgICAgICAgLS0+IEJvdGggY29kZSBwYXRocyBhcmUgbm93IGNvbnNpc3RlbnQuCisgICAg
ICAgIEFsc28gZml4ZXMgaHR0cDovL3dlYi1wbGF0Zm9ybS10ZXN0cy5saXZlL3N2Zy9hbmltYXRp
b25zL2FuaW1hdGVNb3Rpb24tZmlsbC1yZW1vdmUuaHRtbC4KKworICAgICAgICBUZXN0OiBzdmcv
YW5pbWF0aW9ucy9maWxsLXJlbW92ZS1zdXBwb3J0Lmh0bWwKKworICAgICAgICAqIHN2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6Y2xlYXJBbmltYXRlZFR5cGUpOgorCiAyMDE5LTA5LTEzICBOaWtvbGFzIFpp
bW1lcm1hbm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgU01JTCBhbmltYXRpb25z
IG9mIFNWRyA8dmlldz4gZWxlbWVudCBoYXZlIG5vIGVmZmVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5kZXggMWRhYzY2MDA1MGZhMjZmZmU5
YzhiM2Q2YzhjNjc5ZTI1MDYyYzQ5ZC4uYWMzNzA1MDNjOTkxM2Q0YjE2YmM0NDg1NTA1NThiMjA2
MTUxN2FjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCkBAIC0xNTYsNiArMTU2LDkgQEAgdm9pZCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6
Y2xlYXJBbmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIGlmIChBZmZpbmVUcmFuc2Zvcm0qIHRyYW5zZm9ybSA9IHRhcmdldEVsZW1lbnQt
PnN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpKQogICAgICAgICB0cmFuc2Zvcm0tPm1ha2VJZGVudGl0
eSgpOworICAgIGlmIChSZW5kZXJPYmplY3QqIHRhcmdldFJlbmRlcmVyID0gdGFyZ2V0RWxlbWVu
dC0+cmVuZGVyZXIoKSkKKyAgICAgICAgdGFyZ2V0UmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3Jt
VXBkYXRlKCk7CisgICAgYXBwbHlSZXN1bHRzVG9UYXJnZXQoKTsKIH0KIAogYm9vbCBTVkdBbmlt
YXRlTW90aW9uRWxlbWVudDo6Y2FsY3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBT
dHJpbmcmIHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFhNTBmZDc5NmZiNDAzOTk4
NWZiZTNhMWRlNDQzMWY3MjYwOWM5MmEuLjk1NjIyMzVlMzc3NDc4M2Y5ZjgzZjIwYmFiMDJkNjUz
MDRjYzIxZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOS0xMyAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8emltbWVybWFubkBrZGUub3JnPgorCisgICAgICAgIFNWRyA8YW5pbWF0ZU1vdGlv
bj4gZG9lcyBub3QgcmVzZXQgdGhlIGVsZW1lbnQgdG8gaXRzIGZpcnN0IGFuaW1hdGlvbiBmcmFt
ZSBpZiBpdHMgZmlsbCBpcyAicmVtb3ZlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyaW5nIGZpbGw9InJlbW92ZSIg
c3VwcG9ydCB3b3JrcyBhcyBleHBlY3RlZCBmb3IgPGFuaW1hdGVNb3Rpb24+LgorCisgICAgICAg
ICogc3ZnL2FuaW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2ZpbGwtcmVtb3ZlLXN1cHBvcnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2VzL2ZpbGwtcmVtb3ZlLXN1cHBv
cnQuc3ZnOiBBZGRlZC4KKwogMjAxOS0wOS0xMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emltbWVy
bWFubkBrZGUub3JnPgogCiAgICAgICAgIFNNSUwgYW5pbWF0aW9ucyBvZiBTVkcgPHZpZXc+IGVs
ZW1lbnQgaGF2ZSBubyBlZmZlY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL2ZpbGwtcmVtb3ZlLXN1cHBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ2
ZjQ1MjFlM2ZlNzFmZWI1NzJhNjU0ZTVjZDVhNmFmZTA5YzgxYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2ZpbGwtcmVtb3ZlLXN1cHBvcnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNjAgQEAKK1NWRyAxLjEgZHluYW1pYyBhbmltYXRpb24gdGVzdHMKKwor
CitUaGlzIHRlc3RzIGZpbGw9cmVtb3ZlIGZvciBhbmltYXRlIGFuZCBhbmltYXRlTW90aW9uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0NoZWNrIHN0YXRlIGJlZm9yZS9hZnRl
ciBhbmltYXRpb24KK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkueCBpcyAxMAorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5nZXRCQm94KCkueCBpcyAxMAorUEFT
UyBhbmltYXRlUmVjdC5nZXRCQm94KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LnguYW5pbVZhbC52YWx1
ZSBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC54LmJhc2VWYWwudmFsdWUgaXMgMTAKKworQ2hlY2sg
c3RhdGUgcmlnaHQgYWZ0ZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgYW5pbWF0aW9uCitQQVNTIGFu
aW1hdGVNb3Rpb25SZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggaXMgMjAKK1BBU1MgYW5p
bWF0ZU1vdGlvblJlY3QuZ2V0QkJveCgpLnggaXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QuZ2V0QkJv
eCgpLnggaXMgMjAKK1BBU1MgYW5pbWF0ZVJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCBp
cyAyMAorUEFTUyBhbmltYXRlUmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMjAKK1BBU1MgYW5pbWF0
ZVJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIDEwCisKK0NoZWNrIHN0YXRlIGluIHRoZSBtaWRkbGUg
b2YgdGhlIGFuaW1hdGlvbgorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS54IGlzIDExNQorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5nZXRCQm94KCkueCBpcyAx
MAorUEFTUyBhbmltYXRlUmVjdC5nZXRCQm94KCkueCBpcyAxMTUKK1BBU1MgYW5pbWF0ZVJlY3Qu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAxMTUKK1BBU1MgYW5pbWF0ZVJlY3QueC5hbmlt
VmFsLnZhbHVlIGlzIDExNQorUEFTUyBhbmltYXRlUmVjdC54LmJhc2VWYWwudmFsdWUgaXMgMTAK
KworQ2hlY2sgc3RhdGUganVzdCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uCitQQVNT
IGFuaW1hdGVNb3Rpb25SZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggaXMgMjEwCitQQVNT
IGFuaW1hdGVNb3Rpb25SZWN0LmdldEJCb3goKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0Lmdl
dEJCb3goKS54IGlzIDIxMAorUEFTUyBhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS54IGlzIDIxMAorUEFTUyBhbmltYXRlUmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMjEwCitQQVNT
IGFuaW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSBpcyAxMAorCitDaGVjayBzdGF0ZSBiZWZvcmUv
YWZ0ZXIgYW5pbWF0aW9uCitQQVNTIGFuaW1hdGVNb3Rpb25SZWN0LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLnggaXMgMTAKK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3QuZ2V0QkJveCgpLnggaXMgMTAK
K1BBU1MgYW5pbWF0ZVJlY3QuZ2V0QkJveCgpLnggaXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC54LmFuaW1WYWwu
dmFsdWUgaXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QueC5iYXNlVmFsLnZhbHVlIGlzIDEwCisKK0No
ZWNrIHN0YXRlIGJlZm9yZS9hZnRlciBhbmltYXRpb24KK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3Qu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAxMAorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5n
ZXRCQm94KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC5nZXRCQm94KCkueCBpcyAxMAorUEFT
UyBhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IGlzIDEwCitQQVNTIGFuaW1h
dGVSZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC54LmJhc2VWYWwu
dmFsdWUgaXMgMTAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9maWxsLXJlbW92
ZS1zdXBwb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9maWxsLXJlbW92ZS1z
dXBwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc4YjQyMGZjN2E4MDQ5NDEwOGFiZDI1N2U1ZDU5Mzdk
YmZlZDFkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2Zp
bGwtcmVtb3ZlLXN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vZHluYW1pYy11cGRhdGVzL3Jlc291cmNlcy9TVkdUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1NWR0FuaW1hdGlvblRlc3RDYXNlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuU01JTFRlc3QoKSI+Cis8aDE+U1ZHIDEuMSBk
eW5hbWljIGFuaW1hdGlvbiB0ZXN0czwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IGZpbGw9cmVtb3ZlIGZvciBhbmltYXRlIGFuZCBhbmltYXRlTW90aW9uIik7CitlbWJlZFNWR1Rl
c3RDYXNlKCJyZXNvdXJjZXMvZmlsbC1yZW1vdmUtc3VwcG9ydC5zdmciKTsKKworLy8gU2V0dXAg
YW5pbWF0aW9uIHRlc3QKK2Z1bmN0aW9uIHNhbXBsZUFuaW1hdGVCZWZvcmVPckFmdGVyKCkgewor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiQ2hlY2sgc3RhdGUgYmVmb3JlL2FmdGVyIGFuaW1h
dGlvbiIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVNb3Rpb25SZWN0LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLngiLCAiMTAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJh
bmltYXRlTW90aW9uUmVjdC5nZXRCQm94KCkueCIsICIxMCIpOworICAgIHNob3VsZEJlQ2xvc2VF
bm91Z2goImFuaW1hdGVSZWN0LmdldEJCb3goKS54IiwgIjEwIik7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgiYW5pbWF0ZVJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCIsICIxMCIpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVSZWN0LnguYW5pbVZhbC52YWx1ZSIsICIx
MCIpOworICAgIHNob3VsZEJlKCJhbmltYXRlUmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMTAiKTsK
K30KKworZnVuY3Rpb24gc2FtcGxlQW5pbWF0ZUJlZ2luKCkgeworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiQ2hlY2sgc3RhdGUgcmlnaHQgYWZ0ZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgYW5p
bWF0aW9uIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZU1vdGlvblJlY3QuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkueCIsICIyMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
ImFuaW1hdGVNb3Rpb25SZWN0LmdldEJCb3goKS54IiwgIjEwIik7CisgICAgc2hvdWxkQmVDbG9z
ZUVub3VnaCgiYW5pbWF0ZVJlY3QuZ2V0QkJveCgpLngiLCAiMjAiKTsKKyAgICBzaG91bGRCZUNs
b3NlRW5vdWdoKCJhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IiwgIjIwIik7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZVJlY3QueC5hbmltVmFsLnZhbHVlIiwg
IjIwIik7CisgICAgc2hvdWxkQmUoImFuaW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSIsICIxMCIp
OworfQorCitmdW5jdGlvbiBzYW1wbGVBbmltYXRlTWlkZGxlKCkgeworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiQ2hlY2sgc3RhdGUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYW5pbWF0aW9uIik7
CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZU1vdGlvblJlY3QuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkueCIsICIxMTUiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJhbmltYXRl
TW90aW9uUmVjdC5nZXRCQm94KCkueCIsICIxMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2go
ImFuaW1hdGVSZWN0LmdldEJCb3goKS54IiwgIjExNSIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91
Z2goImFuaW1hdGVSZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngiLCAiMTE1Iik7CisgICAg
c2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZVJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjExNSIp
OworICAgIHNob3VsZEJlKCJhbmltYXRlUmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMTAiKTsKK30K
KworZnVuY3Rpb24gc2FtcGxlQW5pbWF0ZUVuZCgpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoIkNoZWNrIHN0YXRlIGp1c3QgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbiIpOwor
ICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVNb3Rpb25SZWN0LmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLngiLCAiMjEwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZU1v
dGlvblJlY3QuZ2V0QkJveCgpLngiLCAiMTAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJh
bmltYXRlUmVjdC5nZXRCQm94KCkueCIsICIyMTAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IiwgIjIxMCIpOworICAgIHNo
b3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVSZWN0LnguYW5pbVZhbC52YWx1ZSIsICIyMTAiKTsK
KyAgICBzaG91bGRCZSgiYW5pbWF0ZVJlY3QueC5iYXNlVmFsLnZhbHVlIiwgIjEwIik7Cit9CisK
K2Z1bmN0aW9uIGV4ZWN1dGVUZXN0KCkgeworICAgIGFuaW1hdGVNb3Rpb25SZWN0ID0gcm9vdFNW
R0VsZW1lbnQub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5pbWF0ZU1vdGlvblJlY3Qi
KTsKKyAgICBhbmltYXRlUmVjdCA9IHJvb3RTVkdFbGVtZW50Lm93bmVyRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFuaW1hdGVSZWN0Iik7CisKKyAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsK
KyAgICAgICAgLy8gW2FuaW1hdGlvbklkLCB0aW1lLCBzYW1wbGVDYWxsYmFja10KKyAgICAgICAg
WyAiYW5pbWF0ZSIsIC0wLjUsICAgIHNhbXBsZUFuaW1hdGVCZWZvcmVPckFmdGVyIF0sCisgICAg
ICAgIFsgImFuaW1hdGUiLCAgMC4wLCAgICBzYW1wbGVBbmltYXRlQmVnaW4gICAgICAgICBdLAor
ICAgICAgICBbICJhbmltYXRlIiwgIDEuMCwgICAgc2FtcGxlQW5pbWF0ZU1pZGRsZSAgICAgICAg
XSwKKyAgICAgICAgWyAiYW5pbWF0ZSIsICAxLjk5OTksIHNhbXBsZUFuaW1hdGVFbmQgICAgICAg
ICAgIF0sCisgICAgICAgIFsgImFuaW1hdGUiLCAgMi4wLCAgICBzYW1wbGVBbmltYXRlQmVmb3Jl
T3JBZnRlciBdLAorICAgICAgICBbICJhbmltYXRlIiwgIDMuMCwgICAgc2FtcGxlQW5pbWF0ZUJl
Zm9yZU9yQWZ0ZXIgXQorICAgIF07CisKKyAgICBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVkVmFs
dWVzKTsKK30KKword2luZG93LmFuaW1hdGlvblN0YXJ0c0ltbWVkaWF0ZWx5ID0gdHJ1ZTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMvZmlsbC1y
ZW1vdmUtc3VwcG9ydC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMv
ZmlsbC1yZW1vdmUtc3VwcG9ydC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJjMzVjZTRkNDUyZjExZGU1ZDli
Mjg2ODM0Mjk3ZjAxY2JmYjBjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9h
bmltYXRpb25zL3Jlc291cmNlcy9maWxsLXJlbW92ZS1zdXBwb3J0LnN2ZwpAQCAtMCwwICsxLDEx
IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgICAgPHBhdGgg
aWQ9InBhdGgiIGQ9Ik0xMCwwIEwyMDAsMCIgZmlsbD0ibm9uZSIvPgorICAgIDxyZWN0IGlkPSJh
bmltYXRlTW90aW9uUmVjdCIgeD0iMTAiIHk9IjEwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIg
ZmlsbD0iZ3JlZW4iPgorICAgICAgICA8YW5pbWF0ZU1vdGlvbiBiZWdpbj0iMC41cyIgZHVyPSIy
cyIgZmlsbD0icmVtb3ZlIj4KKyAgICAgICAgICAgIDxtcGF0aCBocmVmPSIjcGF0aCIvPgorICAg
ICAgICA8L2FuaW1hdGVNb3Rpb24+CisgICAgPC9yZWN0PgorICAgIDxyZWN0IGlkPSJhbmltYXRl
UmVjdCIgeD0iMTAiIHk9IjEyMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVu
Ij4KKyAgICAgICAgPGFuaW1hdGUgaWQ9ImFuaW1hdGUiIGF0dHJpYnV0ZVR5cGU9IlhNTCIgYXR0
cmlidXRlTmFtZT0ieCIgZnJvbT0iMjAiIHRvPSIyMTAiIGJlZ2luPSIwLjVzIiBkdXI9IjJzIiBm
aWxsPSJyZW1vdmUiIC8+CisgICAgPC9yZWN0PgorPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>378847</attachid>
            <date>2019-09-15 23:34:28 -0700</date>
            <delta_ts>2019-09-15 23:34:28 -0700</delta_ts>
            <desc>animateMotion-remove-freeze-use</desc>
            <filename>animateMotion-fill-remove-freeze-use.svg</filename>
            <type>image/svg+xml</type>
            <size>600</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggaWQ9InBh
dGgiIGQ9Ik0xMCwwIEwyMDAsMCIgZmlsbD0ibm9uZSIvPgogICAgPHJlY3QgaWQ9InJlY3QtcmVt
b3ZlIiB4PSIxMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+
CiAgICAgICAgPGFuaW1hdGVNb3Rpb24gYmVnaW49IjAuNXMiIGR1cj0iMnMiIGZpbGw9InJlbW92
ZSI+CiAgICAgICAgICAgIDxtcGF0aCBocmVmPSIjcGF0aCIvPgogICAgICAgIDwvYW5pbWF0ZU1v
dGlvbj4KICAgIDwvcmVjdD4KICAgIDxyZWN0IGlkPSJyZWN0LWZyZWV6ZSIgeD0iMTAiIHk9IjEy
MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIj4KICAgICAgICA8YW5pbWF0
ZU1vdGlvbiBiZWdpbj0iMC41cyIgZHVyPSIycyIgZmlsbD0iZnJlZXplIj4KICAgICAgICAgICAg
PG1wYXRoIGhyZWY9IiNwYXRoIi8+CiAgICAgICAgPC9hbmltYXRlTW90aW9uPgogICAgPC9yZWN0
PgogICAgPHVzZSBocmVmPSIjcmVjdC1yZW1vdmUiIHk9IjIyMCIvPgogICAgPHVzZSBocmVmPSIj
cmVjdC1mcmVlemUiIHk9IjIyMCIvPgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378951</attachid>
            <date>2019-09-17 02:10:30 -0700</date>
            <delta_ts>2019-09-17 10:03:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201565-20190917111029.patch</filename>
            <type>text/plain</type>
            <size>14724</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZmIxZmU3MjA4NTZk
MmQzMTAzZDc0NDcwZDdjMDdiOTVkMDg3Zi4uNzU2NTc1YTIxYTNlMTRkYWJmMGQyMzU2YzFiNmM3
Yjk1OThhYjk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA5LTE3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisKKyAgICAgICAgU1ZHIDxhbmlt
YXRlTW90aW9uPiBkb2VzIG5vdCByZXNldCB0aGUgZWxlbWVudCB0byBpdHMgZmlyc3QgYW5pbWF0
aW9uIGZyYW1lIGlmIGl0cyBmaWxsIGlzICJyZW1vdmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZmlsbD0icmVtb3ZlIiBzdXBwb3J0IGZvciA8
YW5pbWF0ZU1vdGlvbj46IHByb3Blcmx5IHRyaWdnZXIgdmlzdWFsIHVwZGF0ZXMuCisgICAgICAg
IE1vdGlvbiBhbmltYXRpb25zIGFyZSBpbXBsZW1lbnRlZCBieSBwcm92ZGluZyBhbiBhZGRpdGlv
bmFsIHRyYW5zZm9ybWF0aW9uIG9uCisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudHM6IHRoZSBz
dXBwbGVtZW50YWxUcmFuc2Zvcm0oKS4KKworICAgICAgICBXaGVuIGFuIDxhbmltYXRlTW90aW9u
PiBlbGVtZW50IHNwZWNpZmllcyBmaWxsPSJyZW1vdmUiIHRoZSBzdXBwbGVtZW50YWwgdHJhbnNm
b3JtIGlzCisgICAgICAgIGNvcnJlY3RseSByZXNldCwgd2hlbiB0aGUgYW5pbWF0aW9uIGlzIGZp
bmlzaGVkLiBIb3dldmVyLCBub2JvZHkgaXMgbm90aWZpZWQgYWJvdXQgdGhlCisgICAgICAgIGNo
YW5nZSBvZiB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguIEZpeCBieSBtYXJraW5nIHRoZSB0YXJnZXQg
ZWxlbWVudHMgcmVuZGVyZXIgYXMKKyAgICAgICAgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSBh
bmQgY2FsbCBtYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKS4KKwor
ICAgICAgICA8YW5pbWF0ZT4gZWxlbWVudHMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGUgYnVnOgor
ICAgICAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmNsZWFyQW5pbWF0ZWRUeXBlKCkKKyAgICAg
ICAgIC0+IGludm9rZXMgU1ZHQXR0cmlidXRlQW5pbWF0b3I6OnN0b3AoKQorICAgICAgICAgICAg
LT4gaW52b2tlcyBhcHBseUFuaW1hdGVkUHJvcGVydHlDaGFuZ2UoKSBbdmlhIFNWR0FuaW1hdGVk
UHJvcGVydHlBbmltYXRvcl0KKyAgICAgICAgICAgIC0+IGludm9rZXMgU1ZHWFhYRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCgpLgorCisgICAgICAgIFdoZW4gYW5pbWF0aW5nIGUuZy4gdGhl
ICd0cmFuc2Zvcm0nIGF0dHJpYnV0ZSBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoKQorICAgICAgICB3aWxsIHVzZSBleGFjdGx5IHRoZSBzYW1lIG1lY2hhbmlzbSB0byB0
cmlnZ2VyIHZpc3VsIHVwZGF0ZXM6IGZpcnN0IGNhbGwKKyAgICAgICAgc2V0TmVlZHNUcmFuc2Zv
cm1VcGRhdGUoKSBvbiB0aGUgYXNzb2NpYXRlZCByZW5kZXJlciwgZm9sbG93ZCBieSBhIGNhbGwg
dG8KKyAgICAgICAgbWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCku
CisKKyAgICAgICAgLS0+IEJvdGggY29kZSBwYXRocyBhcmUgbm93IGNvbnNpc3RlbnQuCisgICAg
ICAgIEFsc28gZml4ZXMgaHR0cDovL3dlYi1wbGF0Zm9ybS10ZXN0cy5saXZlL3N2Zy9hbmltYXRp
b25zL2FuaW1hdGVNb3Rpb24tZmlsbC1yZW1vdmUuaHRtbC4KKworICAgICAgICBUZXN0czogc3Zn
L2FuaW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC5odG1sCisgICAgICAgICAgICAgICBzdmcv
YW5pbWF0aW9ucy9hbmltYXRlTW90aW9uLXJlbW92ZS1mcmVlemUtdXNlLnN2ZworCisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjbGVhckFuaW1hdGVkVHlwZSk6IENhbGwgYXBwbHlSZXN1
bHRzVG9UYXJnZXQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50
OjpjYWxjdWxhdGVBbmltYXRlZFZhbHVlKTogU3RvcCBjYWxsaW5nCisgICAgICAgIHNldE5lZWRz
VHJhbnNmb3JtVXBkYXRlKCkgb24gdGhlIHRhcmdldCBlbGVtZW50cyByZW5kZXJlciwgc2luY2Ug
YXBwbHlSZXN1bHRzVG9UYXJnZXQoKQorICAgICAgICBpcyByZXNwb25zaWJsZSBmb3IgbW9kaWZp
Y2F0aW9ucyBvZiB0aGUgcmVuZGVyZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmlt
YXRlTW90aW9uRWxlbWVudDo6YXBwbHlSZXN1bHRzVG9UYXJnZXQpOiBBbHdheXMgbWFyayB0aGUg
cmVuZGVyZXIKKyAgICAgICAgYXMgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB3aGVuIGFwcGx5
aW5nIHRoZSByZXN1bHRzLCBiZWZvcmUgdGhlIGNhbGwgdG8KKyAgICAgICAgUmVuZGVyU1ZHUmVz
b3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigpLiBUaGlz
IGlzIG1vcmUgY29uc2lzdGVudAorICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvZGUgcGF0
aCB0aGF0IHVwZGF0ZXMgdGhlIFNWR0VsZW1lbnRzIGluc3RhbmNlcyAoPHVzZT4gc3VwcG9ydCku
CisKIDIwMTktMDktMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJJRExdIERlcml2ZWQgZGljdGlvbmFyaWVzIHNob3VsZCBpbmhlcml0IHRoZWlyIGluaGVy
aXRlZCBkaWN0aW9uYXJpZXMnIHBhcnRpYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCAxZGFjNjYwMDUwZmEyNmZmZTljOGIzZDZjOGM2
NzllMjUwNjJjNDlkLi4yZjJiZWI4NTJiMjdhMGE0MmJhMWNlN2U0MmY5ZTIxOGYxYjFiODhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAg
LTE1Niw2ICsxNTYsNyBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpjbGVhckFuaW1h
dGVkVHlwZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKEFmZmluZVRyYW5zZm9ybSogdHJhbnNmb3JtID0gdGFyZ2V0RWxlbWVudC0+c3VwcGxlbWVu
dGFsVHJhbnNmb3JtKCkpCiAgICAgICAgIHRyYW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7CisgICAg
YXBwbHlSZXN1bHRzVG9UYXJnZXQoKTsKIH0KIAogYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVu
dDo6Y2FsY3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBTdHJpbmcmIHRvQXRFbmRP
ZkR1cmF0aW9uU3RyaW5nKQpAQCAtMjEyLDEzICsyMTMsMTEgQEAgdm9pZCBTVkdBbmltYXRlTW90
aW9uRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNp
Z25lZAogICAgIGF1dG8gdGFyZ2V0RWxlbWVudCA9IG1ha2VSZWZQdHIodGhpcy0+dGFyZ2V0RWxl
bWVudCgpKTsKICAgICBpZiAoIXRhcmdldEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKKwogICAg
IEFmZmluZVRyYW5zZm9ybSogdHJhbnNmb3JtID0gdGFyZ2V0RWxlbWVudC0+c3VwcGxlbWVudGFs
VHJhbnNmb3JtKCk7CiAgICAgaWYgKCF0cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChSZW5kZXJPYmplY3QqIHRhcmdldFJlbmRlcmVyID0gdGFyZ2V0RWxlbWVudC0+cmVuZGVy
ZXIoKSkKLSAgICAgICAgdGFyZ2V0UmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCk7
Ci0KICAgICBpZiAoIWlzQWRkaXRpdmUoKSkKICAgICAgICAgdHJhbnNmb3JtLT5tYWtlSWRlbnRp
dHkoKTsKIApAQCAtMjUzLDggKzI1MiwxMCBAQCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50
OjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiAgICAgaWYgKCF0YXJnZXRFbGVtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSB0YXJnZXRFbGVt
ZW50LT5yZW5kZXJlcigpKQorICAgIGlmIChSZW5kZXJFbGVtZW50KiByZW5kZXJlciA9IHRhcmdl
dEVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzVHJhbnNm
b3JtVXBkYXRlKCk7CiAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5k
UGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKKyAgICB9CiAKICAgICBBZmZp
bmVUcmFuc2Zvcm0qIHRhcmdldFN1cHBsZW1lbnRhbFRyYW5zZm9ybSA9IHRhcmdldEVsZW1lbnQt
PnN1cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwogICAgIGlmICghdGFyZ2V0U3VwcGxlbWVudGFsVHJh
bnNmb3JtKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDU5ZDU0M2EzYTUxYTIwYTg2NDczMmUxZDYwZTVjYTM2NzUxYmI4ODMu
LjRkYmM1NTFiMzViODQxMzE3NTMxNmZiOTZmYTAxMWZkMWFiZTM5ZjggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxOS0wOS0xNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emltbWVybWFubkBrZGUu
b3JnPgorCisgICAgICAgIFNWRyA8YW5pbWF0ZU1vdGlvbj4gZG9lcyBub3QgcmVzZXQgdGhlIGVs
ZW1lbnQgdG8gaXRzIGZpcnN0IGFuaW1hdGlvbiBmcmFtZSBpZiBpdHMgZmlsbCBpcyAicmVtb3Zl
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNTY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
bGF5b3V0IHRlc3QgY292ZXJpbmcgZmlsbD0icmVtb3ZlIiBzdXBwb3J0IDxhbmltYXRlPiBhbmQg
PGFuaW1hdGVNb3Rpb24+LgorICAgICAgICBBZGQgYW5vdGhlciBsYXlvdXQgdGVzdCBjb3Zlcmlu
ZyBib3RoIGZpbGw9InJlbW92ZSIgYW5kIGZpbGw9ImZyZWV6ZSIgZm9yCisgICAgICAgIDxhbmlt
YXRlTW90aW9uPiBvbiBTVkcgZWxlbWVudHMgYW5kIHRoZWlyIGluc3RhbmNlcyAoPHVzZT4pLgor
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZU1vdGlvbi1yZW1vdmUtZnJlZXplLXVz
ZS1leHBlY3RlZC5zdmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2FuaW1hdGVN
b3Rpb24tcmVtb3ZlLWZyZWV6ZS11c2Uuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0
aW9ucy9maWxsLXJlbW92ZS1zdXBwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2FuaW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9yZXNvdXJjZXMvZmlsbC1yZW1vdmUtc3VwcG9ydC5zdmc6IEFkZGVk
LgorCiAyMDE5LTA5LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmUtc3luYyBIVE1MIHdlYi1wbGF0Zm9ybS10ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlTW90aW9uLXJlbW92ZS1mcmVl
emUtdXNlLWV4cGVjdGVkLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVN
b3Rpb24tcmVtb3ZlLWZyZWV6ZS11c2UtZXhwZWN0ZWQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0OThkNmNj
YTg5NWY5MTlhZTBhMTRkNGJiMWU1ZWQ2ZjhiNjRlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRlTW90aW9uLXJlbW92ZS1mcmVlemUtdXNlLWV4
cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDYgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIj4KKyAgICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIiBmaWxsPSJncmVlbiIvPgorICAgIDxyZWN0IHg9IjIxMCIgeT0iMTIwIiB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgICA8cmVjdCB4PSIxMCIgeT0iMjMwIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iLz4KKyAgICA8cmVjdCB4PSIyMTAi
IHk9IjM0MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+Cis8L3N2Zz4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGVNb3Rpb24tcmVt
b3ZlLWZyZWV6ZS11c2Uuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZU1v
dGlvbi1yZW1vdmUtZnJlZXplLXVzZS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZkZWEwMDg4YTlmYjNkMjY5
ZGRlNDQ0MDFiNDMwMmZjOGU5ZGUxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2FuaW1hdGVNb3Rpb24tcmVtb3ZlLWZyZWV6ZS11c2Uuc3ZnCkBAIC0wLDAg
KzEsMjUgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBvbmxvYWQ9
ImxvYWRlZCgpIj4KKyAgICA8cGF0aCBpZD0icGF0aCIgZD0iTTEwLDAgTDIwMCwwIiBmaWxsPSJu
b25lIi8+CisgICAgPHJlY3QgaWQ9InJlY3QtcmVtb3ZlIiB4PSIxMCIgeT0iMTAiIHdpZHRoPSIx
MDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CisgICAgICAgIDxhbmltYXRlTW90aW9uIGJl
Z2luPSIwLjVzIiBkdXI9IjJzIiBmaWxsPSJyZW1vdmUiPgorICAgICAgICAgICAgPG1wYXRoIGhy
ZWY9IiNwYXRoIi8+CisgICAgICAgIDwvYW5pbWF0ZU1vdGlvbj4KKyAgICA8L3JlY3Q+CisgICAg
PHJlY3QgaWQ9InJlY3QtZnJlZXplIiB4PSIxMCIgeT0iMTIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0iZ3JlZW4iPgorICAgICAgICA8YW5pbWF0ZU1vdGlvbiBiZWdpbj0iMC41cyIg
ZHVyPSIycyIgZmlsbD0iZnJlZXplIj4KKyAgICAgICAgICAgIDxtcGF0aCBocmVmPSIjcGF0aCIv
PgorICAgICAgICA8L2FuaW1hdGVNb3Rpb24+CisgICAgPC9yZWN0PgorICAgIDx1c2UgaHJlZj0i
I3JlY3QtcmVtb3ZlIiB5PSIyMjAiLz4KKyAgICA8dXNlIGhyZWY9IiNyZWN0LWZyZWV6ZSIgeT0i
MjIwIi8+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LnNldEN1cnJlbnRUaW1lKDUpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvc3Zn
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvZmlsbC1yZW1vdmUtc3Vw
cG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9maWxsLXJlbW92
ZS1zdXBwb3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDZmNDUyMWUzZmU3MWZlYjU3MmE2
NTRlNWNkNWE2YWZlMDljODFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Fu
aW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MCBA
QAorU1ZHIDEuMSBkeW5hbWljIGFuaW1hdGlvbiB0ZXN0cworCisKK1RoaXMgdGVzdHMgZmlsbD1y
ZW1vdmUgZm9yIGFuaW1hdGUgYW5kIGFuaW1hdGVNb3Rpb24KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKworQ2hlY2sgc3RhdGUgYmVmb3JlL2FmdGVyIGFuaW1hdGlvbgorUEFTUyBh
bmltYXRlTW90aW9uUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IGlzIDEwCitQQVNTIGFu
aW1hdGVNb3Rpb25SZWN0LmdldEJCb3goKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LmdldEJC
b3goKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngg
aXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QueC5hbmltVmFsLnZhbHVlIGlzIDEwCitQQVNTIGFuaW1h
dGVSZWN0LnguYmFzZVZhbC52YWx1ZSBpcyAxMAorCitDaGVjayBzdGF0ZSByaWdodCBhZnRlciB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBhbmltYXRpb24KK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3QuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAyMAorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5nZXRC
Qm94KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC5nZXRCQm94KCkueCBpcyAyMAorUEFTUyBh
bmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IGlzIDIwCitQQVNTIGFuaW1hdGVS
ZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAyMAorUEFTUyBhbmltYXRlUmVjdC54LmJhc2VWYWwudmFs
dWUgaXMgMTAKKworQ2hlY2sgc3RhdGUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYW5pbWF0aW9uCitQ
QVNTIGFuaW1hdGVNb3Rpb25SZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggaXMgMTE1CitQ
QVNTIGFuaW1hdGVNb3Rpb25SZWN0LmdldEJCb3goKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0
LmdldEJCb3goKS54IGlzIDExNQorUEFTUyBhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS54IGlzIDExNQorUEFTUyBhbmltYXRlUmVjdC54LmFuaW1WYWwudmFsdWUgaXMgMTE1CitQ
QVNTIGFuaW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSBpcyAxMAorCitDaGVjayBzdGF0ZSBqdXN0
IGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24KK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3Qu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAyMTAKK1BBU1MgYW5pbWF0ZU1vdGlvblJlY3Qu
Z2V0QkJveCgpLnggaXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QuZ2V0QkJveCgpLnggaXMgMjEwCitQ
QVNTIGFuaW1hdGVSZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggaXMgMjEwCitQQVNTIGFu
aW1hdGVSZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAyMTAKK1BBU1MgYW5pbWF0ZVJlY3QueC5iYXNl
VmFsLnZhbHVlIGlzIDEwCisKK0NoZWNrIHN0YXRlIGJlZm9yZS9hZnRlciBhbmltYXRpb24KK1BB
U1MgYW5pbWF0ZU1vdGlvblJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCBpcyAxMAorUEFT
UyBhbmltYXRlTW90aW9uUmVjdC5nZXRCQm94KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC5n
ZXRCQm94KCkueCBpcyAxMAorUEFTUyBhbmltYXRlUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LnguYW5pbVZhbC52YWx1ZSBpcyAxMAorUEFTUyBh
bmltYXRlUmVjdC54LmJhc2VWYWwudmFsdWUgaXMgMTAKKworQ2hlY2sgc3RhdGUgYmVmb3JlL2Fm
dGVyIGFuaW1hdGlvbgorUEFTUyBhbmltYXRlTW90aW9uUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS54IGlzIDEwCitQQVNTIGFuaW1hdGVNb3Rpb25SZWN0LmdldEJCb3goKS54IGlzIDEwCitQ
QVNTIGFuaW1hdGVSZWN0LmdldEJCb3goKS54IGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLnggaXMgMTAKK1BBU1MgYW5pbWF0ZVJlY3QueC5hbmltVmFsLnZh
bHVlIGlzIDEwCitQQVNTIGFuaW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSBpcyAxMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2ZpbGwtcmVtb3ZlLXN1cHBvcnQuaHRtbCBiL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2ZpbGwtcmVtb3ZlLXN1cHBvcnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NzhiNDIwZmM3YTgwNDk0MTA4YWJkMjU3ZTVkNTkzN2RiZmVkMWQzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvZmlsbC1yZW1vdmUtc3VwcG9ydC5o
dG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9keW5hbWljLXVwZGF0
ZXMvcmVzb3VyY2VzL1NWR1Rlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvU1ZHQW5pbWF0aW9uVGVzdENhc2UuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5TTUlMVGVzdCgpIj4KKzxoMT5TVkcgMS4xIGR5bmFtaWMgYW5pbWF0aW9uIHRl
c3RzPC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgZmlsbD1yZW1vdmUgZm9yIGFu
aW1hdGUgYW5kIGFuaW1hdGVNb3Rpb24iKTsKK2VtYmVkU1ZHVGVzdENhc2UoInJlc291cmNlcy9m
aWxsLXJlbW92ZS1zdXBwb3J0LnN2ZyIpOworCisvLyBTZXR1cCBhbmltYXRpb24gdGVzdAorZnVu
Y3Rpb24gc2FtcGxlQW5pbWF0ZUJlZm9yZU9yQWZ0ZXIoKSB7CisgICAgZGVidWcoIiIpOworICAg
IGRlYnVnKCJDaGVjayBzdGF0ZSBiZWZvcmUvYWZ0ZXIgYW5pbWF0aW9uIik7CisgICAgc2hvdWxk
QmVDbG9zZUVub3VnaCgiYW5pbWF0ZU1vdGlvblJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
eCIsICIxMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVNb3Rpb25SZWN0Lmdl
dEJCb3goKS54IiwgIjEwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZVJlY3Qu
Z2V0QkJveCgpLngiLCAiMTAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJhbmltYXRlUmVj
dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IiwgIjEwIik7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgiYW5pbWF0ZVJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjEwIik7CisgICAgc2hvdWxkQmUo
ImFuaW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSIsICIxMCIpOworfQorCitmdW5jdGlvbiBzYW1w
bGVBbmltYXRlQmVnaW4oKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJDaGVjayBzdGF0
ZSByaWdodCBhZnRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhbmltYXRpb24iKTsKKyAgICBzaG91
bGRCZUNsb3NlRW5vdWdoKCJhbmltYXRlTW90aW9uUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS54IiwgIjIwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZU1vdGlvblJlY3Qu
Z2V0QkJveCgpLngiLCAiMTAiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJhbmltYXRlUmVj
dC5nZXRCQm94KCkueCIsICIyMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVS
ZWN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLngiLCAiMjAiKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJhbmltYXRlUmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMjAiKTsKKyAgICBzaG91bGRC
ZSgiYW5pbWF0ZVJlY3QueC5iYXNlVmFsLnZhbHVlIiwgIjEwIik7Cit9CisKK2Z1bmN0aW9uIHNh
bXBsZUFuaW1hdGVNaWRkbGUoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJDaGVjayBz
dGF0ZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhbmltYXRpb24iKTsKKyAgICBzaG91bGRCZUNsb3Nl
RW5vdWdoKCJhbmltYXRlTW90aW9uUmVjdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IiwgIjEx
NSIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVNb3Rpb25SZWN0LmdldEJCb3go
KS54IiwgIjEwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZVJlY3QuZ2V0QkJv
eCgpLngiLCAiMTE1Iik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgiYW5pbWF0ZVJlY3QuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkueCIsICIxMTUiKTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdo
KCJhbmltYXRlUmVjdC54LmFuaW1WYWwudmFsdWUiLCAiMTE1Iik7CisgICAgc2hvdWxkQmUoImFu
aW1hdGVSZWN0LnguYmFzZVZhbC52YWx1ZSIsICIxMCIpOworfQorCitmdW5jdGlvbiBzYW1wbGVB
bmltYXRlRW5kKCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiQ2hlY2sgc3RhdGUganVz
dCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uIik7CisgICAgc2hvdWxkQmVDbG9zZUVu
b3VnaCgiYW5pbWF0ZU1vdGlvblJlY3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCIsICIyMTAi
KTsKKyAgICBzaG91bGRCZUNsb3NlRW5vdWdoKCJhbmltYXRlTW90aW9uUmVjdC5nZXRCQm94KCku
eCIsICIxMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVSZWN0LmdldEJCb3go
KS54IiwgIjIxMCIpOworICAgIHNob3VsZEJlQ2xvc2VFbm91Z2goImFuaW1hdGVSZWN0LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLngiLCAiMjEwIik7CisgICAgc2hvdWxkQmVDbG9zZUVub3VnaCgi
YW5pbWF0ZVJlY3QueC5hbmltVmFsLnZhbHVlIiwgIjIxMCIpOworICAgIHNob3VsZEJlKCJhbmlt
YXRlUmVjdC54LmJhc2VWYWwudmFsdWUiLCAiMTAiKTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRl
c3QoKSB7CisgICAgYW5pbWF0ZU1vdGlvblJlY3QgPSByb290U1ZHRWxlbWVudC5vd25lckRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhbmltYXRlTW90aW9uUmVjdCIpOworICAgIGFuaW1hdGVSZWN0
ID0gcm9vdFNWR0VsZW1lbnQub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5pbWF0ZVJl
Y3QiKTsKKworICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAvLyBbYW5pbWF0
aW9uSWQsIHRpbWUsIHNhbXBsZUNhbGxiYWNrXQorICAgICAgICBbICJhbmltYXRlIiwgLTAuNSwg
ICAgc2FtcGxlQW5pbWF0ZUJlZm9yZU9yQWZ0ZXIgXSwKKyAgICAgICAgWyAiYW5pbWF0ZSIsICAw
LjAsICAgIHNhbXBsZUFuaW1hdGVCZWdpbiAgICAgICAgIF0sCisgICAgICAgIFsgImFuaW1hdGUi
LCAgMS4wLCAgICBzYW1wbGVBbmltYXRlTWlkZGxlICAgICAgICBdLAorICAgICAgICBbICJhbmlt
YXRlIiwgIDEuOTk5OSwgc2FtcGxlQW5pbWF0ZUVuZCAgICAgICAgICAgXSwKKyAgICAgICAgWyAi
YW5pbWF0ZSIsICAyLjAsICAgIHNhbXBsZUFuaW1hdGVCZWZvcmVPckFmdGVyIF0sCisgICAgICAg
IFsgImFuaW1hdGUiLCAgMy4wLCAgICBzYW1wbGVBbmltYXRlQmVmb3JlT3JBZnRlciBdCisgICAg
XTsKKworICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1ZXMpOworfQorCit3aW5kb3cu
YW5pbWF0aW9uU3RhcnRzSW1tZWRpYXRlbHkgPSB0cnVlOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9maWxsLXJlbW92ZS1zdXBwb3J0LnN2ZyBi
L0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL3Jlc291cmNlcy9maWxsLXJlbW92ZS1zdXBwb3J0
LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmMzNWNlNGQ0NTJmMTFkZTVkOWIyODY4MzQyOTdmMDFjYmZiMGNm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvcmVzb3VyY2Vz
L2ZpbGwtcmVtb3ZlLXN1cHBvcnQuc3ZnCkBAIC0wLDAgKzEsMTEgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICA8cGF0aCBpZD0icGF0aCIgZD0iTTEwLDAg
TDIwMCwwIiBmaWxsPSJub25lIi8+CisgICAgPHJlY3QgaWQ9ImFuaW1hdGVNb3Rpb25SZWN0IiB4
PSIxMCIgeT0iMTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiI+CisgICAg
ICAgIDxhbmltYXRlTW90aW9uIGJlZ2luPSIwLjVzIiBkdXI9IjJzIiBmaWxsPSJyZW1vdmUiPgor
ICAgICAgICAgICAgPG1wYXRoIGhyZWY9IiNwYXRoIi8+CisgICAgICAgIDwvYW5pbWF0ZU1vdGlv
bj4KKyAgICA8L3JlY3Q+CisgICAgPHJlY3QgaWQ9ImFuaW1hdGVSZWN0IiB4PSIxMCIgeT0iMTIw
IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iZ3JlZW4iPgorICAgICAgICA8YW5pbWF0
ZSBpZD0iYW5pbWF0ZSIgYXR0cmlidXRlVHlwZT0iWE1MIiBhdHRyaWJ1dGVOYW1lPSJ4IiBmcm9t
PSIyMCIgdG89IjIxMCIgYmVnaW49IjAuNXMiIGR1cj0iMnMiIGZpbGw9InJlbW92ZSIgLz4KKyAg
ICA8L3JlY3Q+Cis8L3N2Zz4K
</data>
<flag name="review"
          id="394616"
          type_id="1"
          status="+"
          setter="sabouhallawa"
    />
          </attachment>
      

    </bug>

</bugzilla>