<?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>114807</bug_id>
          
          <creation_ts>2013-04-18 04:16:55 -0700</creation_ts>
          <short_desc>Division by zero in CSSGradientValue::addStops()</short_desc>
          <delta_ts>2013-04-21 23:53:24 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>anilsson</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mlattanzio</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tabatkins</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>877811</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 04:16:55 -0700</bug_when>
    <thetext>This causes an assertion when running fast/forms/type-after-focus-rule-shrink-width.html in BlackBerry port. The test contains the following:

input { width: 200px; background: -webkit-linear-gradient(left, white 110px, green 100px); }
input:focus { width: 100px; }

when the input is focused, the first offset of the gradient is outside the input. These offsest are normalized as 1.078431 and 0.980392 in CSSGradientValue::addStops(). But then there&apos;s a loop that checks if there are color stop with a position that is less than others specified in the list and setting them to the largest one. In our case we end up with two color stops at the same position 1.078431. At the end of the method, positions are normalized to the 0..1 scale in case of being out of the scale. Since both color stops are at the same position, its current scale is 0, so every offset is computed as a value divided by zero.

So platform gradients are filled with two color stops at &apos;nan&apos; position. The BlackBerry port requires that the first color stop is at position 0 and the last one at position 1, there&apos;s code to ensure that, but it checks whether offset[0] &gt; 0 which is the case, and in platform code there&apos;s an ASSERT that checks offset[0] == 0 and it crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877812</commentid>
    <comment_count>1</comment_count>
      <attachid>198718</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 04:21:56 -0700</bug_when>
    <thetext>Created attachment 198718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877976</commentid>
    <comment_count>2</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2013-04-18 10:53:42 -0700</bug_when>
    <thetext>Looks good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878075</commentid>
    <comment_count>3</comment_count>
      <attachid>198718</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-18 14:07:43 -0700</bug_when>
    <thetext>Comment on attachment 198718
Patch

This is common code, not blackberry code.
How can this be tested? A division by zero should be reproducible on any platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878225</commentid>
    <comment_count>4</comment_count>
      <attachid>198718</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-04-18 22:06:43 -0700</bug_when>
    <thetext>Comment on attachment 198718
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Fixes a crash in BlackBerry port running
&gt; +        fast/forms/type-after-focus-rule-shrink-width.html.

As Ben said, this isn&apos;t Blackberry code even if that&apos;s where it was crashing. The test you mention does have a linear gradient, but you should make one that is specific to this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878264</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 23:45:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 198718 [details])
&gt; This is common code, not blackberry code.
&gt; How can this be tested? A division by zero should be reproducible on any platform.

The problem is that for some reason the division by zero doesn&apos;t fail, but the offset is set to a &apos;nan&apos; value. I don&apos;t know why, maybe it depends on the compiler. The thing is that platform gradients receive color stops at invalid positions. The fact that this crashes in the BlackBerry port is just coincidence, because it requires that gradients have a color stop at positions 0 and 1 and the platform code has an assert to check it. The code that ensures gradients are correctly passed to the platform doesn&apos;t deal correctly with those &apos;nan&apos; values. I&apos;ve checked that the same happens in cairo backend, but those values are passed directly to cairo that internally handles them.

In any case, I&apos;ll see how we can test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878324</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-19 02:15:51 -0700</bug_when>
    <thetext>hmm, I&apos;ve been checking what other browsers do, and maybe we should match what others do, see

http://plexode.com/eval3/#s=aekVQXANJVQMbAwEBHXgfPU+alQEPQ1BZAVycnZV5GwFKT02rRg5DTVBETBylpoOpEhERUVm2T6aVgqkUvL7AwgGGur2/t52Eur4BhwGxQrTJwosOU0ZRRkJVqU9Q3uDiVduVXpq3D61P4lMSo9CV3UpOQkhGVIOLBGIZMJRVBzyegOJBTIRFJRGJ5VBJ/BoBLBJgxGAITXa+i0MI0RjjHLIKdidfT8f0AJxQLcIVxCKcLhsPiMTisXjJVjcdZ0gb8jCclk74AMqfr/AIOJxUmLzmc1h0QiUUi0YjUcjxZoMiYNEZ1GYKddybsiVeMyKYTe9olIOfdKgECgkGqEKhlUnFXndaClcr0jY1ilD5uMrpdNl94qV6m9WnVZnoBwFAAMhwdFw1IxFzplOxs0x9VnNYnkby0fzFCYOEX1jU1mUwdCCYaDQDpyAJ3Dw9AcJmb2UBZ34f2pyTNv3W833Atdt4nG5HKAYNAZQJJLSQDCIDLwAA

In this example, both ff and ie10 render the second box with no background, so they ignore color stops outside the scale. The result in webkit depends on every port, since we are passing nan values to the platform it depends on how every platform deals with those values. With cairo backend I get a solid #80c080 background while with BlackBerry I get a solid green background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878365</commentid>
    <comment_count>7</comment_count>
      <attachid>198841</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-19 04:17:45 -0700</bug_when>
    <thetext>Created attachment 198841
Updated patch

It includes a ref test now and the behaviour matches what other browsers do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878622</commentid>
    <comment_count>8</comment_count>
    <who name="Tab Atkins">tabatkins</who>
    <bug_when>2013-04-19 13:03:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; hmm, I&apos;ve been checking what other browsers do, and maybe we should match what others do, see
&gt; 
&gt; http://plexode.com/eval3/#s=aekVQXANJVQMbAwEBHXgfPU+alQEPQ1BZAVycnZV5GwFKT02rRg5DTVBETBylpoOpEhERUVm2T6aVgqkUvL7AwgGGur2/t52Eur4BhwGxQrTJwosOU0ZRRkJVqU9Q3uDiVduVXpq3D61P4lMSo9CV3UpOQkhGVIOLBGIZMJRVBzyegOJBTIRFJRGJ5VBJ/BoBLBJgxGAITXa+i0MI0RjjHLIKdidfT8f0AJxQLcIVxCKcLhsPiMTisXjJVjcdZ0gb8jCclk74AMqfr/AIOJxUmLzmc1h0QiUUi0YjUcjxZoMiYNEZ1GYKddybsiVeMyKYTe9olIOfdKgECgkGqEKhlUnFXndaClcr0jY1ilD5uMrpdNl94qV6m9WnVZnoBwFAAMhwdFw1IxFzplOxs0x9VnNYnkby0fzFCYOEX1jU1mUwdCCYaDQDpyAJ3Dw9AcJmb2UBZ34f2pyTNv3W833Atdt4nG5HKAYNAZQJJLSQDCIDLwAA
&gt; 
&gt; In this example, both ff and ie10 render the second box with no background, so they ignore color stops outside the scale. The result in webkit depends on every port, since we are passing nan values to the platform it depends on how every platform deals with those values. With cairo backend I get a solid #80c080 background while with BlackBerry I get a solid green background.

FF and IE aren&apos;t rendering with no background, they&apos;re correctly handling the color-stops (correcting the second one&apos;s position to 310px), and then rendering the resulting gradient.  It just so happens that, with the specific gradient you&apos;ve constructed, the visible area is completely white.

If you changed it to use a non-white color as the first color-stop, you&apos;d see that they definitely do render things correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878730</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-20 00:32:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; hmm, I&apos;ve been checking what other browsers do, and maybe we should match what others do, see
&gt; &gt; 
&gt; &gt; http://plexode.com/eval3/#s=aekVQXANJVQMbAwEBHXgfPU+alQEPQ1BZAVycnZV5GwFKT02rRg5DTVBETBylpoOpEhERUVm2T6aVgqkUvL7AwgGGur2/t52Eur4BhwGxQrTJwosOU0ZRRkJVqU9Q3uDiVduVXpq3D61P4lMSo9CV3UpOQkhGVIOLBGIZMJRVBzyegOJBTIRFJRGJ5VBJ/BoBLBJgxGAITXa+i0MI0RjjHLIKdidfT8f0AJxQLcIVxCKcLhsPiMTisXjJVjcdZ0gb8jCclk74AMqfr/AIOJxUmLzmc1h0QiUUi0YjUcjxZoMiYNEZ1GYKddybsiVeMyKYTe9olIOfdKgECgkGqEKhlUnFXndaClcr0jY1ilD5uMrpdNl94qV6m9WnVZnoBwFAAMhwdFw1IxFzplOxs0x9VnNYnkby0fzFCYOEX1jU1mUwdCCYaDQDpyAJ3Dw9AcJmb2UBZ34f2pyTNv3W833Atdt4nG5HKAYNAZQJJLSQDCIDLwAA
&gt; &gt; 
&gt; &gt; In this example, both ff and ie10 render the second box with no background, so they ignore color stops outside the scale. The result in webkit depends on every port, since we are passing nan values to the platform it depends on how every platform deals with those values. With cairo backend I get a solid #80c080 background while with BlackBerry I get a solid green background.
&gt; 
&gt; FF and IE aren&apos;t rendering with no background, they&apos;re correctly handling the color-stops (correcting the second one&apos;s position to 310px), and then rendering the resulting gradient.  It just so happens that, with the specific gradient you&apos;ve constructed, the visible area is completely white.
&gt; 
&gt; If you changed it to use a non-white color as the first color-stop, you&apos;d see that they definitely do render things correctly.

Yes, this is exactly with my patch does, with the patch applied, changing the color to red instead of white makes the second gradient to be rendered solid red, at least with cairo backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878799</commentid>
    <comment_count>10</comment_count>
      <attachid>198841</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-04-20 14:07:31 -0700</bug_when>
    <thetext>Comment on attachment 198841
Updated patch

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

&gt; Source/WebCore/css/CSSGradientValue.cpp:347
&gt; -            for (size_t i = 0; i &lt; numStops; ++i)
&gt; -                stops[i].offset = (stops[i].offset - firstOffset) / scale;
&gt; +                for (size_t i = 0; i &lt; numStops; ++i)
&gt; +                    stops[i].offset = (stops[i].offset - firstOffset) / scale;

I&apos;m seeing darker green in the diff here. Are they tab characters? Maybe it&apos;s just highlighting the extra indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878984</commentid>
    <comment_count>11</comment_count>
      <attachid>198841</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-21 23:24:43 -0700</bug_when>
    <thetext>Comment on attachment 198841
Updated patch

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

Thanks for the review.

&gt;&gt; Source/WebCore/css/CSSGradientValue.cpp:347
&gt;&gt; +                    stops[i].offset = (stops[i].offset - firstOffset) / scale;
&gt; 
&gt; I&apos;m seeing darker green in the diff here. Are they tab characters? Maybe it&apos;s just highlighting the extra indentation.

I don&apos;t know what it means, but there are not tabs there, I&apos;ve just checked it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878986</commentid>
    <comment_count>12</comment_count>
      <attachid>198841</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-21 23:53:21 -0700</bug_when>
    <thetext>Comment on attachment 198841
Updated patch

Clearing flags on attachment: 198841

Committed r148859: &lt;http://trac.webkit.org/changeset/148859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878987</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-21 23:53:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198718</attachid>
            <date>2013-04-18 04:21:56 -0700</date>
            <delta_ts>2013-04-19 04:17:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>css-gradient-normalization.diff</filename>
            <type>text/plain</type>
            <size>1728</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMzVjODhmLi45MmI2NmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMDQtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIERpdmlzaW9uIGJ5IHplcm8gaW4gQ1NTR3JhZGllbnRWYWx1ZTo6YWRkU3Rv
cHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0
ODA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IG5vcm1hbGl6YXRpb24gb2YgdGhlIGNvbG9yIHN0b3AgcG9zaXRpb25zIG9mIGEgbGluZWFyIGdy
YWRpZW50CisgICAgICAgIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgZmlyc3Qg
YW5kIGxhc3QgcG9zaXRpb24gY2FuIGJlCisgICAgICAgIHRoZSBzYW1lLiBJbiBzdWNoIGNhc2Ug
dGhlIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgZGl2aWRpbmcgYnkgMC4KKworICAgICAgICBGaXhl
cyBhIGNyYXNoIGluIEJsYWNrQmVycnkgcG9ydCBydW5uaW5nCisgICAgICAgIGZhc3QvZm9ybXMv
dHlwZS1hZnRlci1mb2N1cy1ydWxlLXNocmluay13aWR0aC5odG1sLgorCisgICAgICAgICogY3Nz
L0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1
ZTo6YWRkU3RvcHMpOiBDbGFtcCB0aGUgcG9zaXRpb24gdG8gMCBpZgorICAgICAgICB0aGUgc2Nh
bGUgaXMgMCB3aGVuIG5vcm1hbGl6aW5nIHRoZSBjb2xvciBzdG9wIHBvc2l0aW9ucy4KKwogMjAx
My0wNC0xNyAgSm9obiBHcmlnZ3MgIDxqZ3JpZ2dzQGJsYWNrYmVycnkuY29tPgogCiAgICAgICAg
IFtCbGFja0JlcnJ5XSBBZGQgc3VwcG9ydCBmb3IgZmlsZXN5c3RlbTogVVJMcyB0byBCbGFja0Jl
cnJ5IE1lZGlhIFBsYXllci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFk
aWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApp
bmRleCA4ZjE2OGFiLi42YTM1ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBDU1NHcmFkaWVudFZhbHVlOjphZGRTdG9w
cyhHcmFkaWVudCogZ3JhZGllbnQsIFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFJlbmQKICAgICAg
ICAgICAgIGZsb2F0IHNjYWxlID0gbGFzdE9mZnNldCAtIGZpcnN0T2Zmc2V0OwogCiAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVN0b3BzOyArK2kpCi0gICAgICAgICAgICAg
ICAgc3RvcHNbaV0ub2Zmc2V0ID0gKHN0b3BzW2ldLm9mZnNldCAtIGZpcnN0T2Zmc2V0KSAvIHNj
YWxlOworICAgICAgICAgICAgICAgIHN0b3BzW2ldLm9mZnNldCA9IHNjYWxlID4gMCA/IChzdG9w
c1tpXS5vZmZzZXQgLSBmaXJzdE9mZnNldCkgLyBzY2FsZSA6IDA7CiAKICAgICAgICAgICAgIEZs
b2F0UG9pbnQgcDAgPSBncmFkaWVudC0+cDAoKTsKICAgICAgICAgICAgIEZsb2F0UG9pbnQgcDEg
PSBncmFkaWVudC0+cDEoKTsK
</data>
<flag name="review"
          id="220388"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198841</attachid>
            <date>2013-04-19 04:17:45 -0700</date>
            <delta_ts>2013-04-21 23:53:21 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>css-gradient-stop-invalid.diff</filename>
            <type>text/plain</type>
            <size>5175</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYjI2MzgxLi43OWZmODNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDQt
MTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IERpdmlzaW9uIGJ5IHplcm8gaW4gQ1NTR3JhZGllbnRWYWx1ZTo6YWRkU3RvcHMoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0ODA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2dyYWRpZW50
cy9jc3MzLWNvbG9yLXN0b3AtaW52YWxpZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2dyYWRpZW50cy9jc3MzLWNvbG9yLXN0b3AtaW52YWxpZC5odG1sOiBBZGRlZC4KKwog
MjAxMy0wNC0xOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gZmFzdC9jYW52YXMvRHJhd0ltYWdlU2luZ2xlUGl4ZWxTdHJldGNoLmh0bWwg
ZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiNmY2ZTJhLi5hMmUxMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTMtMDQtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIERpdmlzaW9uIGJ5IHplcm8gaW4gQ1NTR3JhZGllbnRWYWx1ZTo6
YWRkU3RvcHMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE0ODA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIG5vcm1hbGl6YXRpb24gb2YgdGhlIGNvbG9yIHN0b3AgcG9zaXRpb25zIG9mIGEgbGlu
ZWFyIGdyYWRpZW50CisgICAgICAgIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUg
Zmlyc3QgYW5kIGxhc3QgcG9zaXRpb24gY2FuIGJlCisgICAgICAgIHRoZSBzYW1lLiBJbiBzdWNo
IGNhc2UgdGhlIHBvc2l0aW9ucyBhcmUgY29tcHV0ZWQgZGl2aWRpbmcgYnkgMC4KKyAgICAgICAg
Q2xhbXAgdGhlIHBvc2l0aW9ucyB0byAxIHdpdGhvdXQgbW92aW5nIHRoZSBlbmQgcG9pbnRzIGlu
IHN1Y2gKKyAgICAgICAgY2FzZSB0byBtYXRjaCB3aGF0IG90aGVyIGJyb3dzZXJzIGRvLiBUaGlz
IGVuc3VyZXMgdGhhdCBwb3NpdGlvbnMKKyAgICAgICAgcGFzc2VkIHRvIHRoZSBwbGF0Zm9ybSBn
cmFkaWVudCBhcmUgaW4gdGhlIDAtMSByYW5nZSB3aGljaCBmaXhlcyBhCisgICAgICAgIGNyYXNo
IGR1ZSB0byBhbiBhc3NlcnQgaW4gQmxhY2tCZXJyeSBwb3J0IHJ1bm5pbmcgdGVzdAorICAgICAg
ICBmYXN0L2Zvcm1zL3R5cGUtYWZ0ZXItZm9jdXMtcnVsZS1zaHJpbmstd2lkdGguaHRtbC4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2dyYWRpZW50cy9jc3MzLWNvbG9yLXN0b3AtaW52YWxpZC5odG1s
CisKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NHcmFkaWVudFZhbHVlOjphZGRTdG9wcyk6CisKIDIwMTMtMDQtMTcgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ugc3RvcmFnZSBmYWN0
b3J5IGZ1bmN0aW9ucyB0byB0YWtlIGEgUGFnZUdyb3VwIGFuZCBQYWdlIHJlc3BlY3RpdmVseQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ncmFkaWVudHMvY3NzMy1jb2xvci1zdG9wLWlu
dmFsaWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZ3JhZGllbnRzL2NzczMtY29s
b3Itc3RvcC1pbnZhbGlkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjM0NmE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZ3Jh
ZGllbnRzL2NzczMtY29sb3Itc3RvcC1pbnZhbGlkLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwx
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisuYm94IHsKKyAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgbWFy
Z2luOiAxMHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIGJhY2tncm91bmQt
cmVwZWF0OiBuby1yZXBlYXQ7Cit9Cis8L3N0eWxlPgorPGgyPlRoaXMgc2hvdWxkIGJlIGFuIGVt
cHR5IGJveDwvaDI+Cis8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2dyYWRpZW50cy9jc3MzLWNvbG9yLXN0b3AtaW52YWxpZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ncmFkaWVudHMvY3NzMy1jb2xvci1zdG9wLWludmFsaWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjZkN2I4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ncmFkaWVudHMvY3NzMy1jb2xvci1zdG9wLWludmFsaWQuaHRt
bApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKy5ib3ggeworICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIHdpZHRoOiAz
MDBweDsKKyAgICBtYXJnaW46IDEwcHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKK30KKworLmxpbmVhciB7CisgICAgYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgd2hpdGUgMzEwcHgs
IGdyZWVuIDMwMHB4KTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVu
dChsZWZ0LCB3aGl0ZSAzMTBweCwgZ3JlZW4gMzAwcHgpOworfQorPC9zdHlsZT4KKzxoMj5UaGlz
IHNob3VsZCBiZSBhbiBlbXB0eSBib3g8L2gyPgorPGRpdiBjbGFzcz0ibGluZWFyIGJveCI+PC9k
aXY+CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCA4ZjE2OGFi
Li4yNTdlYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCkBAIC0z
NDAsMTUgKzM0MCwyMSBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6OmFkZFN0b3BzKEdyYWRpZW50
KiBncmFkaWVudCwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZAogICAgICAgICBpZiAoaXNM
aW5lYXJHcmFkaWVudCgpKSB7CiAgICAgICAgICAgICBmbG9hdCBmaXJzdE9mZnNldCA9IHN0b3Bz
WzBdLm9mZnNldDsKICAgICAgICAgICAgIGZsb2F0IGxhc3RPZmZzZXQgPSBzdG9wc1tudW1TdG9w
cyAtIDFdLm9mZnNldDsKLSAgICAgICAgICAgIGZsb2F0IHNjYWxlID0gbGFzdE9mZnNldCAtIGZp
cnN0T2Zmc2V0OworICAgICAgICAgICAgaWYgKGZpcnN0T2Zmc2V0ICE9IGxhc3RPZmZzZXQpIHsK
KyAgICAgICAgICAgICAgICBmbG9hdCBzY2FsZSA9IGxhc3RPZmZzZXQgLSBmaXJzdE9mZnNldDsK
IAotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1TdG9wczsgKytpKQotICAg
ICAgICAgICAgICAgIHN0b3BzW2ldLm9mZnNldCA9IChzdG9wc1tpXS5vZmZzZXQgLSBmaXJzdE9m
ZnNldCkgLyBzY2FsZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51
bVN0b3BzOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHN0b3BzW2ldLm9mZnNldCA9IChzdG9w
c1tpXS5vZmZzZXQgLSBmaXJzdE9mZnNldCkgLyBzY2FsZTsKIAotICAgICAgICAgICAgRmxvYXRQ
b2ludCBwMCA9IGdyYWRpZW50LT5wMCgpOwotICAgICAgICAgICAgRmxvYXRQb2ludCBwMSA9IGdy
YWRpZW50LT5wMSgpOwotICAgICAgICAgICAgZ3JhZGllbnQtPnNldFAwKEZsb2F0UG9pbnQocDAu
eCgpICsgZmlyc3RPZmZzZXQgKiAocDEueCgpIC0gcDAueCgpKSwgcDAueSgpICsgZmlyc3RPZmZz
ZXQgKiAocDEueSgpIC0gcDAueSgpKSkpOwotICAgICAgICAgICAgZ3JhZGllbnQtPnNldFAxKEZs
b2F0UG9pbnQocDEueCgpICsgKGxhc3RPZmZzZXQgLSAxKSAqIChwMS54KCkgLSBwMC54KCkpLCBw
MS55KCkgKyAobGFzdE9mZnNldCAtIDEpICogKHAxLnkoKSAtIHAwLnkoKSkpKTsKKyAgICAgICAg
ICAgICAgICBGbG9hdFBvaW50IHAwID0gZ3JhZGllbnQtPnAwKCk7CisgICAgICAgICAgICAgICAg
RmxvYXRQb2ludCBwMSA9IGdyYWRpZW50LT5wMSgpOworICAgICAgICAgICAgICAgIGdyYWRpZW50
LT5zZXRQMChGbG9hdFBvaW50KHAwLngoKSArIGZpcnN0T2Zmc2V0ICogKHAxLngoKSAtIHAwLngo
KSksIHAwLnkoKSArIGZpcnN0T2Zmc2V0ICogKHAxLnkoKSAtIHAwLnkoKSkpKTsKKyAgICAgICAg
ICAgICAgICBncmFkaWVudC0+c2V0UDEoRmxvYXRQb2ludChwMS54KCkgKyAobGFzdE9mZnNldCAt
IDEpICogKHAxLngoKSAtIHAwLngoKSksIHAxLnkoKSArIChsYXN0T2Zmc2V0IC0gMSkgKiAocDEu
eSgpIC0gcDAueSgpKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBUaGVyZSdzIGEgc2luZ2xlIHBvc2l0aW9uIHRoYXQgaXMgb3V0c2lkZSB0aGUgc2NhbGUsIGNs
YW1wIHRoZSBwb3NpdGlvbnMgdG8gMS4KKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVN0b3BzOyArK2kpCisgICAgICAgICAgICAgICAgICAgIHN0b3BzW2ldLm9mZnNl
dCA9IDE7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoaXNSYWRpYWxHcmFkaWVu
dCgpKSB7CiAgICAgICAgICAgICAvLyBSYXRoZXIgdGhhbiBzY2FsaW5nIHRoZSBwb2ludHMgPCAw
LCB3ZSB0cnVuY2F0ZSB0aGVtLCBzbyBvbmx5IHNjYWxlIGFjY29yZGluZyB0byB0aGUgbGFyZ2Vz
dCBwb2ludC4KICAgICAgICAgICAgIGZsb2F0IGZpcnN0T2Zmc2V0ID0gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>