<?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>97606</bug_id>
          
          <creation_ts>2012-09-25 14:24:50 -0700</creation_ts>
          <short_desc>flexbox assert fails with auto-sized item with padding</short_desc>
          <delta_ts>2012-09-28 10:14:21 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</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>
          
          <blocked>62048</blocked>
    
    <blocked>96960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Barton">dbarton</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727969</commentid>
    <comment_count>0</comment_count>
      <attachid>165674</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-25 14:24:50 -0700</bug_when>
    <thetext>Created attachment 165674
web page that makes totalWeightedFlexShrink &lt; 0

The attached flex-shrink-neg.html causes an assertion failure in chromium on snowleopard.

I&apos;ll also attach some debugging output, from these lines (sorry it&apos;s a bit of a mess - I could clarify):

RenderFlexibleBox.cpp:625:         fprintf(stderr, &quot;%g + %g, %g\n&quot;, (float) preferredMainAxisExtent, (float) availableFreeSpace, (float) minMaxAppliedMainAxisExtent);//@@@
RenderFlexibleBox.cpp:630:             fprintf(stderr, &quot; %g avail, %g shrink\n&quot;, (float) availableFreeSpace, totalWeightedFlexShrink);//@@@
RenderFlexibleBox.cpp:846:         fprintf(stderr, &quot;   %d: %g after -= %g * %g\n&quot;, (int) i, totalWeightedFlexShrink, child-&gt;style()-&gt;flexShrink(), (float) preferredChildSize);//@@@
RenderFlexibleBox.cpp:870:             fprintf(stderr, &quot;  preferredChildSize = %g, avail %g\n&quot;, (float) preferredChildSize, (float) availableFreeSpace);//@@@
RenderFlexibleBox.cpp:881:             fprintf(stderr, &quot;  adjusted %g - childSize %g\n&quot;, (float) adjustedChildSize, (float) childSize);//@@@</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727972</commentid>
    <comment_count>1</comment_count>
      <attachid>165675</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-25 14:27:29 -0700</bug_when>
    <thetext>Created attachment 165675
crash log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727987</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-25 14:47:18 -0700</bug_when>
    <thetext>Thanks! I&apos;m pretty sure the bug is in RenderFlexibleBox::preferredMainAxisContentExtentForChild. Fix should be super-easy.

LayoutUnit RenderFlexibleBox::preferredMainAxisContentExtentForChild(RenderBox* child)
{
    Length flexBasis = flexBasisForChild(child);
    if (flexBasis.isAuto()) {
        LayoutUnit mainAxisExtent = hasOrthogonalFlow(child) ? child-&gt;logicalHeight() : child-&gt;maxPreferredLogicalWidth();
        return mainAxisExtent - mainAxisBorderAndPaddingExtentForChild(child);
    }
    return std::max(LayoutUnit(0), computeMainAxisExtentForChild(child, MainOrPreferredSize, flexBasis));
}


In the first return statement we need to clamp to 0 the same way we do in the second one. If mainAxisExtent &lt; mainAxisBorderAndPaddingExtentForChild, then we are incorrectly returning a negative value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728916</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-26 13:25:21 -0700</bug_when>
    <thetext>I will have a look at this one tomorrow morning, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728970</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-26 14:15:02 -0700</bug_when>
    <thetext>Note the attached test only fails if subpixel layout is enabled, i.e. in chromium. It&apos;s fine in safari.

See bug 96960, comment 13: [this test] causes totalWeightedFlexShrink in RenderFlexibleBox::layoutFlexItems to go negative due to roundoff error, at least for chromium mac snowleopard [...]. I think the main issue is that MathML [or this test case] uses flexboxes but without any flex, so every child in RenderFlexibleBox::resolveFlexibleLengths becomes a violation [in a case where availableFreeSpace &lt; 0]. Then RenderFlexibleBox::freezeViolations subtracts each preferredChildSize from totalWeightedFlexShrink [child-&gt;style()-&gt;flexShrink() is always 1], and the roundoff error brings totalWeightedFlexShrink slightly below 0.

The attached debugging output in the crash log shows all this.

Ojan&apos;s suggestion in comment 2 may be good, but it&apos;s a different problem I think. (Maybe you all know that now?) A LayoutUnit is stored exactly, as an int not float, so subtracting them can&apos;t cause roundoff error.

I think it is true that in RenderFlexibleBox::layoutFlexItems, preferredMainAxisExtent incorrectly doesn&apos;t include the padding, so availableFreeSpace is incorrectly made negative. But once this happens, RenderFlexibleBox::resolveFlexibleLengths marks every child as a violation, so RenderFlexibleBox::freezeViolations subtracts everything from totalWeightedFlexShrink, with roundoff error to make it slightly &lt; 0 at the end.

I agree that you could probably cause the same problem with some floating-point value for flex-shrink, without needing subpixel layout.

Maybe you guys already knew all this. Anyway, I hope these comments help, or at least clarify my debugging output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729427</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-27 04:48:05 -0700</bug_when>
    <thetext>I cannot reproduce this issue with EFL, neither when enabling SUBPIXEL_LAYOUT and SATURATED_LAYOUT_ARITHMETIC.

The test breaks in older version of Chrome and the text overlaps horizontally, but it seems to work in Canary. The problem only happens when -webkit-line-box-contain: glyphs; is used.

Maybe this is another bug which was fixed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729462</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-27 06:11:16 -0700</bug_when>
    <thetext>
&gt; Ojan&apos;s suggestion in comment 2 may be good, but it&apos;s a different problem I think. (Maybe you all know that now?) A LayoutUnit is stored exactly, as an int not float, so subtracting them can&apos;t cause roundoff error.

Not if you use SUBPIXEL_LAYOUT right.

&gt; I think it is true that in RenderFlexibleBox::layoutFlexItems, preferredMainAxisExtent incorrectly doesn&apos;t include the padding, so availableFreeSpace is incorrectly made negative. 

With the test cases that I made it includes padding alright.

I had overlapping fonts as older version of Chrome apparently calculated glyphs as (0,0)px sized.

I guess in your test you wanted to add padding-bottom: 0.35em; to .mfrac &gt; * and not .math &gt; * ?

&gt; I agree that you could probably cause the same problem with some floating-point value for flex-shrink, without needing subpixel layout.

How? it is just a multiplier for the main size property (when auto; or the flex-basic value) which is being used when distributing negative space. RenderFlexibleBox::adjustChildSizeForMinAndMax will make sure that items are never negative sized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729732</commentid>
    <comment_count>7</comment_count>
      <attachid>166036</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 11:31:39 -0700</bug_when>
    <thetext>Created attachment 166036
test case without -webkit-line-box-contain

Here&apos;s a version of my test case that produces basically the same debugging output as I had before, but without -webkit-line-box-contain. Can you reproduce the assertion failure with this test case, with a current debug build of chromium?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729746</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 11:49:00 -0700</bug_when>
    <thetext>The new test case works fine in Chrome Canary on my Mac. Apparently the only problem is the ASSERT(... &amp;&amp; totalWeightedFlexShrink &gt;= 0); on line 629 in RenderFlexibleBox::layoutFlexItems, in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729749</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-27 11:51:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The new test case works fine in Chrome Canary on my Mac. Apparently the only problem is the ASSERT(... &amp;&amp; totalWeightedFlexShrink &gt;= 0); on line 629 in RenderFlexibleBox::layoutFlexItems, in debug builds.

I am not running Chrome, but I am using SUBPIXEL layout etc. I had modified the test myself but I still couldn&apos;t reproduct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729763</commentid>
    <comment_count>10</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 12:17:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; I think it is true that in RenderFlexibleBox::layoutFlexItems, preferredMainAxisExtent incorrectly doesn&apos;t include the padding, so availableFreeSpace is incorrectly made negative. 
&gt; 
&gt; With the test cases that I made it includes padding alright.

In the attached test cases, this debugging line produces this output:

RenderFlexibleBox.cpp:625:         fprintf(stderr, &quot;%g + %g, %g\n&quot;, (float) preferredMainAxisExtent, (float) availableFreeSpace, (float) minMaxAppliedMainAxisExtent);//@@@

STDERR: 76.6 + -5.6, 76.6

&gt; I guess in your test you wanted to add padding-bottom: 0.35em; to .mfrac &gt; * and not .math &gt; * ?

No, I wanted the test case as is.

&gt; &gt; I agree that you could probably cause the same problem with some floating-point value for flex-shrink, without needing subpixel layout.
&gt; 
&gt; How? it is just a multiplier for the main size property (when auto; or the flex-basic value) which is being used when distributing negative space. RenderFlexibleBox::adjustChildSizeForMinAndMax will make sure that items are never negative sized.

The items aren&apos;t negatively sized, the final value of totalWeightedFlexShrink is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729764</commentid>
    <comment_count>11</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 12:21:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; The new test case works fine in Chrome Canary on my Mac. Apparently the only problem is the ASSERT(... &amp;&amp; totalWeightedFlexShrink &gt;= 0); on line 629 in RenderFlexibleBox::layoutFlexItems, in debug builds.
&gt; 
&gt; I am not running Chrome, but I am using SUBPIXEL layout etc. I had modified the test myself but I still couldn&apos;t reproduct.

Can anyone (maybe Ojan or Tony ?) reproduce this assertion failure, using the second attached test case &amp; SUBPIXEL layout on (e.g. in chromium), in a debug build? If not, can someone try that on a Mac?

Sorry, my explanations and debugging output don&apos;t seem to be communicating what I&apos;m seeing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729893</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 14:59:08 -0700</bug_when>
    <thetext>I tried both test cases and I&apos;m not seeing the ASSERT triggered.  I am using a debug build of Chromium Linux&apos;s DumpRenderTree.

The printf produces the following output for me:
70.9062 + -5.59375, 76.5

I&apos;m still digging . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729939</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 15:42:01 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; 70.9062 + -5.59375, 76.5

Thanks!! I am really confused. In FractionalLayoutUnit.h we have:

#if ENABLE(SUBPIXEL_LAYOUT)
static const int kFixedPointDenominator = 60;
...

but the numbers you&apos;re showing for preferredMainAxisExtent and availableFreeSpace aren&apos;t even integer multiples of 1/60. (They are multiples of 1/160.) Shouldn&apos;t they be multiples of 1/60?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729945</commentid>
    <comment_count>14</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 15:46:51 -0700</bug_when>
    <thetext>Wow. kFixedPointDenominator has been recently changed from 60 to 64. This explains a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729947</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 15:47:43 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Wow. kFixedPointDenominator has been recently changed from 60 to 64. This explains a lot.

Yeah, 30 hours ago: http://trac.webkit.org/changeset/129656

Let me try the tests with it changed back to 60.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729957</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 15:58:03 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Wow. kFixedPointDenominator has been recently changed from 60 to 64. This explains a lot.
&gt; 
&gt; Yeah, 30 hours ago: http://trac.webkit.org/changeset/129656
&gt; 
&gt; Let me try the tests with it changed back to 60.

I&apos;m able to repro now.  I have a couple ideas on how to fix.

1) We could switch totalFlexGrow and totalWeightedFlexShrink to doubles.  Should be safe.  It&apos;ll use a tiny bit more memory and be a tiny bit slower.

2) Rework the code to compute the flex-grow and weight flex-shrink value during each iteration of resolveFlexibleLengths.  I think the rounding problem is because we assume that adding and subtracting the same value will produce the same value.

3) Just check in the test case and hope that the denominator stays at 64 which causes no loss of precision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729961</commentid>
    <comment_count>17</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-27 16:00:05 -0700</bug_when>
    <thetext>I&apos;m ok with 1 or 3. If we do 3, we should checkin the testcase with a clear description of what it&apos;s testing so that it&apos;ll hit an assert if we change back to 60.

I&apos;m not a huge fan of 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729965</commentid>
    <comment_count>18</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-27 16:01:24 -0700</bug_when>
    <thetext>Filed bug 97827 for the preferredMainAxisContentExtentForChild issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730010</commentid>
    <comment_count>19</comment_count>
      <attachid>166096</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 16:51:03 -0700</bug_when>
    <thetext>Created attachment 166096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730012</commentid>
    <comment_count>20</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-27 16:51:56 -0700</bug_when>
    <thetext>Sorry, I&apos;m stealing this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730029</commentid>
    <comment_count>21</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-09-27 17:05:37 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; 1) We could switch totalFlexGrow and totalWeightedFlexShrink to doubles.  Should be safe.  It&apos;ll use a tiny bit more memory and be a tiny bit slower.
&gt; 
&gt; 2) Rework the code to compute the flex-grow and weight flex-shrink value during each iteration of resolveFlexibleLengths.  I think the rounding problem is because we assume that adding and subtracting the same value will produce the same value.
&gt; 
&gt; 3) Just check in the test case and hope that the denominator stays at 64 which causes no loss of precision.

I don&apos;t think (3) is enough. If the user has decimal flex-grow or flex-shrink values, then adding &amp; subtracting such floats in different orders may not cancel exactly to 0. It does seem like (1) would cure this problem, at least if the LayoutUnit denominator stays at 64. Maybe it would be safer to also change the ASSERT to totalWeightedFlexShrink &gt;= -1e-8 and later totalWeightedFlexShrink &gt; 0 comparison to totalWeightedFlexShrink &gt; 1e-8, or something like that? It seems like you can allow for negligibly small totalWeightedFlexShrink values, and just treat them as 0. (I haven&apos;t thought this through completely, and don&apos;t really know your flexbox code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730059</commentid>
    <comment_count>22</comment_count>
      <attachid>166096</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 17:32:23 -0700</bug_when>
    <thetext>Comment on attachment 166096
Patch

Rejecting attachment 166096 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 9
Updating OpenSource
From http://git.chromium.org/external/Webkit
   82bc0a1..8e72d08  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 129817 = 875c689a27a358ee4b1b720bf25d701e2eb82525
last_rev is higher!: 129817 &gt;= 129802 at /usr/lib/git-core/git-svn line 1523

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/14062050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730769</commentid>
    <comment_count>23</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-28 10:14:21 -0700</bug_when>
    <thetext>Committed r129914: &lt;http://trac.webkit.org/changeset/129914&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165674</attachid>
            <date>2012-09-25 14:24:50 -0700</date>
            <delta_ts>2012-09-25 14:24:50 -0700</delta_ts>
            <desc>web page that makes totalWeightedFlexShrink &lt; 0</desc>
            <filename>flex-shrink-neg.html</filename>
            <type>text/html</type>
            <size>580</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8c3R5bGU+Ci5tYXRoIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtaW5s
aW5lLWZsZXg7CiAgICAtd2Via2l0LWxpbmUtYm94LWNvbnRhaW46IGdseXBoczsKfQoubWF0aCA+
ICogewogICAgcGFkZGluZy1ib3R0b206IDAuMzVlbTsKfQoubWZyYWMgewogICAgZGlzcGxheTog
LXdlYmtpdC1pbmxpbmUtZmxleDsKICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsK
fQoubWZyYWMgPiA6Zmlyc3QtY2hpbGQgewogICAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6IDAuMmVt
Owp9Ci5tZnJhYyA+IDpsYXN0LWNoaWxkIHsKICAgIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMC4y
ZW07Cn0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9bWF0aD4KCTxkaXYgY2xhc3M9bWZyYWM+CgkJPGRp
diBjbGFzcz1tZnJhYz4KCQkJPGRpdj54PC9kaXY+CgkJCTxkaXY+eTwvZGl2PgoJCTwvZGl2PgoJ
CTxkaXYgY2xhc3M9bWZyYWM+CgkJCTxkaXYgY2xhc3M9bWZyYWM+CgkJCQk8ZGl2Png8L2Rpdj4K
CQkJCTxkaXY+eTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdj56PC9kaXY+CgkJPC9kaXY+Cgk8L2Rp
dj4KPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165675</attachid>
            <date>2012-09-25 14:27:29 -0700</date>
            <delta_ts>2012-09-25 14:27:29 -0700</delta_ts>
            <desc>crash log</desc>
            <filename>flex-shrink-neg-crash-log.txt</filename>
            <type>text/plain</type>
            <size>13432</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">Y3Jhc2ggbG9nIGZvciBEdW1wUmVuZGVyVHJlZSAocGlkIDYxOTA0KToKU1RET1VUOiA8ZW1wdHk+
ClNUREVSUjogOCArIDAsIDgKU1RERVJSOiAgIHByZWZlcnJlZENoaWxkU2l6ZSA9IDgsIGF2YWls
IDAKU1RERVJSOiAgIGFkanVzdGVkIDggLSBjaGlsZFNpemUgOApTVERFUlI6IDI3LjQgKyAwLCAy
Ny40ClNUREVSUjogICBwcmVmZXJyZWRDaGlsZFNpemUgPSA5LCBhdmFpbCAwClNUREVSUjogICBh
ZGp1c3RlZCA5IC0gY2hpbGRTaXplIDkKU1RERVJSOiAgIHByZWZlcnJlZENoaWxkU2l6ZSA9IDEy
LCBhdmFpbCAwClNUREVSUjogICBhZGp1c3RlZCAxMiAtIGNoaWxkU2l6ZSAxMgpTVERFUlI6IDI3
LjQgKyAwLCAyNy40ClNUREVSUjogICBwcmVmZXJyZWRDaGlsZFNpemUgPSA5LCBhdmFpbCAwClNU
REVSUjogICBhZGp1c3RlZCA5IC0gY2hpbGRTaXplIDkKU1RERVJSOiAgIHByZWZlcnJlZENoaWxk
U2l6ZSA9IDEyLCBhdmFpbCAwClNUREVSUjogICBhZGp1c3RlZCAxMiAtIGNoaWxkU2l6ZSAxMgpT
VERFUlI6IDQyLjggKyAwLCA0Mi44ClNUREVSUjogICBwcmVmZXJyZWRDaGlsZFNpemUgPSAyNy40
LCBhdmFpbCAwClNUREVSUjogICBhZGp1c3RlZCAyNy40IC0gY2hpbGRTaXplIDI3LjQKU1RERVJS
OiAgIHByZWZlcnJlZENoaWxkU2l6ZSA9IDksIGF2YWlsIDAKU1RERVJSOiAgIGFkanVzdGVkIDkg
LSBjaGlsZFNpemUgOQpTVERFUlI6IDI3LjQgKyAwLCAyNy40ClNUREVSUjogICBwcmVmZXJyZWRD
aGlsZFNpemUgPSA5LCBhdmFpbCAwClNUREVSUjogICBhZGp1c3RlZCA5IC0gY2hpbGRTaXplIDkK
U1RERVJSOiAgIHByZWZlcnJlZENoaWxkU2l6ZSA9IDEyLCBhdmFpbCAwClNUREVSUjogICBhZGp1
c3RlZCAxMiAtIGNoaWxkU2l6ZSAxMgpTVERFUlI6IDc2LjYgKyAtNS42LCA3Ni42ClNUREVSUjog
ICBwcmVmZXJyZWRDaGlsZFNpemUgPSAyNy40LCBhdmFpbCAtNS42ClNUREVSUjogICBhZGp1c3Rl
ZCAyNy40IC0gY2hpbGRTaXplIDI1LjIxNjcKU1RERVJSOiAgIHByZWZlcnJlZENoaWxkU2l6ZSA9
IDQyLjgsIGF2YWlsIC01LjYKU1RERVJSOiAgIGFkanVzdGVkIDQyLjggLSBjaGlsZFNpemUgMzku
MzgzMwpTVERFUlI6ICAgIDA6IDQyLjggYWZ0ZXIgLT0gMSAqIDI3LjQKU1RERVJSOiAgICAxOiAt
My44MTQ3ZS0wNiBhZnRlciAtPSAxICogNDIuOApTVERFUlI6ICAtNS42IGF2YWlsLCAtMy44MTQ3
ZS0wNiBzaHJpbmsKU1RERVJSOiBBU1NFUlRJT04gRkFJTEVEOiB0b3RhbEZsZXhHcm93ID49IDAg
JiYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmsgPj0gMApTVERFUlI6IC9Vc2Vycy9kcmIvZGV2ZWwv
V2ViS2l0L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwLy4uL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAoNjMxKSA6IHZvaWQgV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91
dEZsZXhJdGVtcyhXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6T3JkZXJJdGVyYXRvciAmLCBX
VEY6OlZlY3RvcjxMaW5lQ29udGV4dD4gJikKU1RERVJSOiAxICAgMHg0NTg1ZGQwYSBXZWJDb3Jl
OjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKFdlYkNvcmU6OlJlbmRlckZsZXhp
YmxlQm94OjpPcmRlckl0ZXJhdG9yJiwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6UmVuZGVyRmxleGli
bGVCb3g6OkxpbmVDb250ZXh0LCAwdWw+JikKU1RERVJSOiAyICAgMHg0NTg1ZDJjMSBXZWJDb3Jl
OjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCwgV2ViQ29yZTo6RnJhY3Rpb25h
bExheW91dFVuaXQpClNUREVSUjogMyAgIDB4NDU3NDI1NzUgV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmxheW91dCgpClNUREVSUjogNCAgIDB4NDU5NWY3ZTkgV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojps
YXlvdXRJZk5lZWRlZCgpClNUREVSUjogNSAgIDB4NDU4NjI0YWUgV2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4oV2ViQ29yZTo6RnJhY3Rpb25hbExheW91
dFVuaXQmLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpSZW5kZXJCb3gqLCAwdWw+IGNvbnN0JiwgV1RG
OjpWZWN0b3I8V2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQsIDB1bD4gY29uc3QmLCBXZWJD
b3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OkxpbmVDb250ZXh0LCAwdWw+JikKU1RERVJSOiA2ICAgMHg0NTg1ZGRlYyBXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKFdlYkNvcmU6OlJlbmRlckZs
ZXhpYmxlQm94OjpPcmRlckl0ZXJhdG9yJiwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OkxpbmVDb250ZXh0LCAwdWw+JikKU1RERVJSOiA3ICAgMHg0NTg1ZDJjMSBXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCwgV2ViQ29yZTo6RnJhY3Rp
b25hbExheW91dFVuaXQpClNUREVSUjogOCAgIDB4NDU3NDI1NzUgV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmxheW91dCgpClNUREVSUjogOSAgIDB4NDU5NWY3ZTkgV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpsYXlvdXRJZk5lZWRlZCgpClNUREVSUjogMTAgIDB4NDU3YzM5NGUgV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGJvb2wsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlv
dXRVbml0JiwgV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQmKQpTVERFUlI6IDExICAweDQ1
NzQzOTRiIFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sLCBXZWJDb3JlOjpG
cmFjdGlvbmFsTGF5b3V0VW5pdCkKU1RERVJSOiAxMiAgMHg0NTc0MjU3NSBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0KCkKU1RERVJSOiAxMyAgMHg0NTc1MDE1ZCBXZWJDb3JlOjpSZW5kZXJC
bG9jazo6bGF5b3V0QmxvY2tDaGlsZChXZWJDb3JlOjpSZW5kZXJCb3gqLCBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6TWFyZ2luSW5mbyYsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0JiwgV2Vi
Q29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQmKQpTVERFUlI6IDE0ICAweDQ1NzQ2MzdiIFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkcmVuKGJvb2wsIFdlYkNvcmU6OkZyYWN0
aW9uYWxMYXlvdXRVbml0JikKU1RERVJSOiAxNSAgMHg0NTc0Mzk3NSBXZWJDb3JlOjpSZW5kZXJC
bG9jazo6bGF5b3V0QmxvY2soYm9vbCwgV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQpClNU
REVSUjogMTYgIDB4NDU3NDI1NzUgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dCgpClNUREVS
UjogMTcgIDB4NDU3NTAxNWQgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrQ2hpbGQo
V2ViQ29yZTo6UmVuZGVyQm94KiwgV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdpbkluZm8mLCBX
ZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCYsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRV
bml0JikKU1RERVJSOiAxOCAgMHg0NTc0NjM3YiBXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0
QmxvY2tDaGlsZHJlbihib29sLCBXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCYpClNUREVS
UjogMTkgIDB4NDU3NDM5NzUgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2ws
IFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0KQpTVERFUlI6IDIwICAweDQ1NzQyNTc1IFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQoKQpTVERFUlI6IDIxICAweDQ1YTExMjg2IFdlYkNv
cmU6OlJlbmRlclZpZXc6OmxheW91dCgpClNUREVSUjogMjIgIDB4NDU1NjQzMmQgV2ViQ29yZTo6
RnJhbWVWaWV3OjpsYXlvdXQoYm9vbCkKU1RERVJSOiAyMyAgMHg0MmIwNzg5ZiBXZWJDb3JlOjpE
b2N1bWVudDo6aW1wbGljaXRDbG9zZSgpClNUREVSUjogMjQgIDB4NDUzZjY4ZDIgV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKQpTVERFUlI6IDI1ICAweDQ1M2Y2
NDRlIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpClNUREVSUjogMjYgIDB4
NDUzZjRmMTMgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmZpbmlzaGVkUGFyc2luZygpClNUREVSUjog
MjcgIDB4NDJiMTZhNmIgV2ViQ29yZTo6RG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpClNUREVS
UjogMjggIDB4NDQ1OWI1NjkgV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpmaW5pc2hlZCgpClNU
REVSUjogMjkgIDB4NDQ1NjE3N2IgV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjplbmQoKQpT
VERFUlI6IDMwICAweDQ0NTYwNTU5IFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6YXR0ZW1w
dFRvUnVuRGVmZXJyZWRTY3JpcHRzQW5kRW5kKCkKU1RERVJSOiAzMSAgMHg0NDU2MDI5OCBXZWJD
b3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnByZXBhcmVUb1N0b3BQYXJzaW5nKCkKU1RERVJSOiBb
NjE5MDQ6LTE1OTczMTU3NzY6MTI5NzAxNTY3ODMwNDA3OTpFUlJPUjpwcm9jZXNzX3V0aWxfcG9z
aXguY2MoMTQzKV0gUmVjZWl2ZWQgc2lnbmFsIDExClNUREVSUjogCTAgICBEdW1wUmVuZGVyVHJl
ZSAgICAgICAgICAgICAgICAgICAgICAweDQyZDM0MWFmIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNl
OjpTdGFja1RyYWNlKCkgKyA2MwpTVERFUlI6IAkxICAgRHVtcFJlbmRlclRyZWUgICAgICAgICAg
ICAgICAgICAgICAgMHg0MmQzNDE0YiBiYXNlOjpkZWJ1Zzo6U3RhY2tUcmFjZTo6U3RhY2tUcmFj
ZSgpICsgNDMKU1RERVJSOiAJMiAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAg
IDB4NDJkZWUwZDcgYmFzZTo6KGFub255bW91cyBuYW1lc3BhY2UpOjpTdGFja0R1bXBTaWduYWxI
YW5kbGVyKGludCwgX19zaWdpbmZvKiwgX19kYXJ3aW5fdWNvbnRleHQqKSArIDI5NQpTVERFUlI6
IAkzICAgbGliU3lzdGVtLkIuZHlsaWIgICAgICAgICAgICAgICAgICAgMHg5YThkODA1YiBfc2ln
dHJhbXAgKyA0MwpTVERFUlI6IAk0ICAgPz8/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHhmZmZmZmZmZiAweDAgKyA0Mjk0OTY3Mjk1ClNUREVSUjogCTUgICBEdW1wUmVuZGVyVHJl
ZSAgICAgICAgICAgICAgICAgICAgICAweDQ1ODVkMmMxIFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayhib29sLCBXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCkgKyAx
MDA5ClNUREVSUjogCTYgICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQ1
NzQyNTc1IFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQoKSArIDE0OQpTVERFUlI6IAk3ICAg
RHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NTk1ZjdlOSBXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmxheW91dElmTmVlZGVkKCkgKyA3MwpTVERFUlI6IAk4ICAgRHVtcFJlbmRl
clRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NTg2MjRhZSBXZWJDb3JlOjpSZW5kZXJGbGV4
aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0
VW5pdCYsIFdURjo6VmVjdG9yPFdlYkNvcmU6OlJlbmRlckJveCosIDB1bD4gY29uc3QmLCBXVEY6
OlZlY3RvcjxXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCwgMHVsPiBjb25zdCYsIFdlYkNv
cmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0LCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpSZW5kZXJGbGV4
aWJsZUJveDo6TGluZUNvbnRleHQsIDB1bD4mKSArIDEyNjIKU1RERVJSOiAJOSAgIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDU4NWRkZWMgV2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6T3Jk
ZXJJdGVyYXRvciYsIFdURjo6VmVjdG9yPFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpMaW5l
Q29udGV4dCwgMHVsPiYpICsgMTE0OApTVERFUlI6IAkxMCAgRHVtcFJlbmRlclRyZWUgICAgICAg
ICAgICAgICAgICAgICAgMHg0NTg1ZDJjMSBXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5
b3V0QmxvY2soYm9vbCwgV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQpICsgMTAwOQpTVERF
UlI6IAkxMSAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NTc0MjU3NSBX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0KCkgKyAxNDkKU1RERVJSOiAJMTIgIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDU5NWY3ZTkgV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpsYXlvdXRJZk5lZWRlZCgpICsgNzMKU1RERVJSOiAJMTMgIER1bXBSZW5kZXJUcmVlICAg
ICAgICAgICAgICAgICAgICAgIDB4NDU3YzM5NGUgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91
dElubGluZUNoaWxkcmVuKGJvb2wsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0JiwgV2Vi
Q29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQmKSArIDE3NDIKU1RERVJSOiAJMTQgIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDU3NDM5NGIgV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmxheW91dEJsb2NrKGJvb2wsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0KSArIDE3
MDcKU1RERVJSOiAJMTUgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDU3
NDI1NzUgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dCgpICsgMTQ5ClNUREVSUjogCTE2ICBE
dW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQ1NzUwMTVkIFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsYXlvdXRCbG9ja0NoaWxkKFdlYkNvcmU6OlJlbmRlckJveCosIFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvJiwgV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQm
LCBXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCYpICsgMTExNwpTVERFUlI6IAkxNyAgRHVt
cFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NTc0NjM3YiBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sLCBXZWJDb3JlOjpGcmFjdGlvbmFsTGF5
b3V0VW5pdCYpICsgMTQ5OQpTVERFUlI6IAkxOCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAg
ICAgICAgICAgMHg0NTc0Mzk3NSBXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9v
bCwgV2ViQ29yZTo6RnJhY3Rpb25hbExheW91dFVuaXQpICsgMTc0OQpTVERFUlI6IAkxOSAgRHVt
cFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NTc0MjU3NSBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0KCkgKyAxNDkKU1RERVJSOiAJMjAgIER1bXBSZW5kZXJUcmVlICAgICAg
ICAgICAgICAgICAgICAgIDB4NDU3NTAxNWQgV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJs
b2NrQ2hpbGQoV2ViQ29yZTo6UmVuZGVyQm94KiwgV2ViQ29yZTo6UmVuZGVyQmxvY2s6Ok1hcmdp
bkluZm8mLCBXZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0VW5pdCYsIFdlYkNvcmU6OkZyYWN0aW9u
YWxMYXlvdXRVbml0JikgKyAxMTE3ClNUREVSUjogCTIxICBEdW1wUmVuZGVyVHJlZSAgICAgICAg
ICAgICAgICAgICAgICAweDQ1NzQ2MzdiIFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9j
a0NoaWxkcmVuKGJvb2wsIFdlYkNvcmU6OkZyYWN0aW9uYWxMYXlvdXRVbml0JikgKyAxNDk5ClNU
REVSUjogCTIyICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQ1NzQzOTc1
IFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sLCBXZWJDb3JlOjpGcmFjdGlv
bmFsTGF5b3V0VW5pdCkgKyAxNzQ5ClNUREVSUjogCTIzICBEdW1wUmVuZGVyVHJlZSAgICAgICAg
ICAgICAgICAgICAgICAweDQ1NzQyNTc1IFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQoKSAr
IDE0OQpTVERFUlI6IAkyNCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0
NWExMTI4NiBXZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQoKSArIDEyMDYKU1RERVJSOiAJMjUg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDU1NjQzMmQgV2ViQ29yZTo6
RnJhbWVWaWV3OjpsYXlvdXQoYm9vbCkgKyAzNjYxClNUREVSUjogCTI2ICBEdW1wUmVuZGVyVHJl
ZSAgICAgICAgICAgICAgICAgICAgICAweDQyYjA3ODlmIFdlYkNvcmU6OkRvY3VtZW50OjppbXBs
aWNpdENsb3NlKCkgKyAxMDcxClNUREVSUjogCTI3ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAg
ICAgICAgICAgICAweDQ1M2Y2OGQyIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NhbGxJbXBs
aWNpdENsb3NlKCkgKyAxNzgKU1RERVJSOiAJMjggIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAg
ICAgICAgICAgIDB4NDUzZjY0NGUgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29tcGxldGVk
KCkgKyAzNjYKU1RERVJSOiAJMjkgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAg
IDB4NDUzZjRmMTMgV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmZpbmlzaGVkUGFyc2luZygpICsgMTk1
ClNUREVSUjogCTMwICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQyYjE2
YTZiIFdlYkNvcmU6OkRvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmcoKSArIDY1MQpTVERFUlI6IAkz
MSAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NDU5YjU2OSBXZWJDb3Jl
OjpIVE1MVHJlZUJ1aWxkZXI6OmZpbmlzaGVkKCkgKyAxODUKU1RERVJSOiAJMzIgIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDQ1NjE3N2IgV2ViQ29yZTo6SFRNTERvY3Vt
ZW50UGFyc2VyOjplbmQoKSArIDI4MwpTVERFUlI6IAkzMyAgRHVtcFJlbmRlclRyZWUgICAgICAg
ICAgICAgICAgICAgICAgMHg0NDU2MDU1OSBXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmF0
dGVtcHRUb1J1bkRlZmVycmVkU2NyaXB0c0FuZEVuZCgpICsgMzI5ClNUREVSUjogCTM0ICBEdW1w
UmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQ0NTYwMjk4IFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6cHJlcGFyZVRvU3RvcFBhcnNpbmcoKSArIDMxMgpTVERFUlI6IAkzNSAg
RHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0NDU2MTdmNSBXZWJDb3JlOjpI
VE1MRG9jdW1lbnRQYXJzZXI6OmF0dGVtcHRUb0VuZCgpICsgODUKU1RERVJSOiAJMzYgIER1bXBS
ZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDQ1NjE4NzkgV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpmaW5pc2goKSArIDg5ClNUREVSUjogCTM3ICBEdW1wUmVuZGVyVHJlZSAg
ICAgICAgICAgICAgICAgICAgICAweDQ1M2RmYWZkIFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyOjpl
bmQoKSArIDQyOQpTVERFUlI6IAkzOCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAg
ICAgMHg0NTNjMDNlYyBXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZmluaXNoZWRMb2FkaW5nKCkg
KyAyMzYKU1RERVJSOiAJMzkgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4
NDU0MjNkN2IgV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRv
dWJsZSkgKyAzMTUKU1RERVJSOiAJNDAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAg
ICAgIDB4NDU0NDgyZmYgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmco
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpICsgNzkKU1RERVJSOiAJNDEgIER1bXBS
ZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDQ4YWE2MGEgV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGluZyhXZWJLaXQ6OldlYlVSTExvYWRlcios
IGRvdWJsZSkgKyAyODIKU1RERVJSOiAJNDIgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAg
ICAgICAgIDB4NDY3NTg2NGUgd2Via2l0X2dsdWU6OldlYlVSTExvYWRlckltcGw6OkNvbnRleHQ6
Ok9uQ29tcGxldGVkUmVxdWVzdChpbnQsIGJvb2wsIHN0ZDo6c3RyaW5nIGNvbnN0JiwgYmFzZTo6
VGltZVRpY2tzIGNvbnN0JikgKyAxMTM0ClNUREVSUjogCTQzICBEdW1wUmVuZGVyVHJlZSAgICAg
ICAgICAgICAgICAgICAgICAweDQ2YWU4YzBkIChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6UmVxdWVz
dFByb3h5OjpOb3RpZnlDb21wbGV0ZWRSZXF1ZXN0KGludCwgc3RkOjpzdHJpbmcgY29uc3QmLCBi
YXNlOjpUaW1lVGlja3MgY29uc3QmKSArIDEyNQpTVERFUlI6IAk0NCAgRHVtcFJlbmRlclRyZWUg
ICAgICAgICAgICAgICAgICAgICAgMHg0NmFlOTQyNyBiYXNlOjppbnRlcm5hbDo6UnVubmFibGVB
ZGFwdGVyPHZvaWQgKChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6UmVxdWVzdFByb3h5OjoqKShpbnQs
IHN0ZDo6c3RyaW5nIGNvbnN0JiwgYmFzZTo6VGltZVRpY2tzIGNvbnN0Jik+OjpSdW4oKGFub255
bW91cyBuYW1lc3BhY2UpOjpSZXF1ZXN0UHJveHkqLCBpbnQgY29uc3QmLCBzdGQ6OnN0cmluZyBj
b25zdCYsIGJhc2U6OlRpbWVUaWNrcyBjb25zdCYpICsgMjE1ClNUREVSUjogCTQ1ICBEdW1wUmVu
ZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQ2YWU5MzI2IGJhc2U6OmludGVybmFsOjpJ
bnZva2VIZWxwZXI8ZmFsc2UsIHZvaWQsIGJhc2U6OmludGVybmFsOjpSdW5uYWJsZUFkYXB0ZXI8
dm9pZCAoKGFub255bW91cyBuYW1lc3BhY2UpOjpSZXF1ZXN0UHJveHk6OiopKGludCwgc3RkOjpz
dHJpbmcgY29uc3QmLCBiYXNlOjpUaW1lVGlja3MgY29uc3QmKT4sIHZvaWQgKCkoKGFub255bW91
cyBuYW1lc3BhY2UpOjpSZXF1ZXN0UHJveHkqIGNvbnN0JiwgaW50IGNvbnN0Jiwgc3RkOjpzdHJp
bmcgY29uc3QmLCBiYXNlOjpUaW1lVGlja3MgY29uc3QmKT46Ok1ha2VJdFNvKGJhc2U6OmludGVy
bmFsOjpSdW5uYWJsZUFkYXB0ZXI8dm9pZCAoKGFub255bW91cyBuYW1lc3BhY2UpOjpSZXF1ZXN0
UHJveHk6OiopKGludCwgc3RkOjpzdHJpbmcgY29uc3QmLCBiYXNlOjpUaW1lVGlja3MgY29uc3Qm
KT4sIChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6UmVxdWVzdFByb3h5KiBjb25zdCYsIGludCBjb25z
dCYsIHN0ZDo6c3RyaW5nIGNvbnN0JiwgYmFzZTo6VGltZVRpY2tzIGNvbnN0JikgKyAxNTAKU1RE
RVJSOiAJNDYgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4NDZhZTkyNjUg
YmFzZTo6aW50ZXJuYWw6Okludm9rZXI8NCwgYmFzZTo6aW50ZXJuYWw6OkJpbmRTdGF0ZTxiYXNl
OjppbnRlcm5hbDo6UnVubmFibGVBZGFwdGVyPHZvaWQgKChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6
UmVxdWVzdFByb3h5OjoqKShpbnQsIHN0ZDo6c3RyaW5nIGNvbnN0JiwgYmFzZTo6VGltZVRpY2tz
IGNvbnN0Jik+LCB2b2lkICgpKChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6UmVxdWVzdFByb3h5Kiwg
aW50LCBzdGQ6OnN0cmluZyBjb25zdCYsIGJhc2U6OlRpbWVUaWNrcyBjb25zdCYpLCB2b2lkICgp
KChhbm9ueW1vdXMgbmFtZXNwYWNlKTo6UmVxdWVzdFByb3h5KiwgaW50LCBzdGQ6OnN0cmluZywg
YmFzZTo6VGltZVRpY2tzKT4sIHZvaWQgKCkoKGFub255bW91cyBuYW1lc3BhY2UpOjpSZXF1ZXN0
UHJveHkqLCBpbnQsIHN0ZDo6c3RyaW5nIGNvbnN0JiwgYmFzZTo6VGltZVRpY2tzIGNvbnN0Jik+
OjpSdW4oYmFzZTo6aW50ZXJuYWw6OkJpbmRTdGF0ZUJhc2UqKSArIDIyOQpTVERFUlI6IAk0NyAg
RHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHg0MmQ5Zjg1YiBiYXNlOjpDYWxs
YmFjazx2b2lkICgpKCk+OjpSdW4oKSBjb25zdCArIDc1ClNUREVSUjogCTQ4ICBEdW1wUmVuZGVy
VHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQyZDljZGI3IE1lc3NhZ2VMb29wOjpSdW5UYXNr
KGJhc2U6OlBlbmRpbmdUYXNrIGNvbnN0JikgKyAxMTU5ClNUREVSUjogCTQ5ICBEdW1wUmVuZGVy
VHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQyZDlkMmIyIE1lc3NhZ2VMb29wOjpEZWZlck9y
UnVuUGVuZGluZ1Rhc2soYmFzZTo6UGVuZGluZ1Rhc2sgY29uc3QmKSArIDk4ClNUREVSUjogCTUw
ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDQyZDlkNGIyIE1lc3NhZ2VM
b29wOjpEb1dvcmsoKSArIDMyMgpTVERFUlI6IAk1MSAgRHVtcFJlbmRlclRyZWUgICAgICAgICAg
ICAgICAgICAgICAgMHg0MmQwYTBiYiBiYXNlOjpNZXNzYWdlUHVtcENGUnVuTG9vcEJhc2U6OlJ1
bldvcmsoKSArIDEwNwpTVERFUlI6IAk1MiAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAg
ICAgICAgMHg0MmQwOTg3MiBiYXNlOjpNZXNzYWdlUHVtcENGUnVuTG9vcEJhc2U6OlJ1bldvcmtT
b3VyY2Uodm9pZCopICsgNTAKU1RERVJSOiAJNTMgIENvcmVGb3VuZGF0aW9uICAgICAgICAgICAg
ICAgICAgICAgIDB4OTQ4ZTA0MmIgX19DRlJ1bkxvb3BEb1NvdXJjZXMwICsgMTU2MwpTVERFUlI6
IAk1NCAgQ29yZUZvdW5kYXRpb24gICAgICAgICAgICAgICAgICAgICAgMHg5NDhkZGVlZiBfX0NG
UnVuTG9vcFJ1biArIDEwNzEKU1RERVJSOiAJNTUgIENvcmVGb3VuZGF0aW9uICAgICAgICAgICAg
ICAgICAgICAgIDB4OTQ4ZGQzYzQgQ0ZSdW5Mb29wUnVuU3BlY2lmaWMgKyA0NTIKU1RERVJSOiAJ
NTYgIENvcmVGb3VuZGF0aW9uICAgICAgICAgICAgICAgICAgICAgIDB4OTQ4ZGQxZjEgQ0ZSdW5M
b29wUnVuSW5Nb2RlICsgOTcKU1RERVJSOiAJNTcgIEhJVG9vbGJveCAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDB4OTg5YWZlMDQgUnVuQ3VycmVudEV2ZW50TG9vcEluTW9kZSArIDM5MgpTVERF
UlI6IAk1OCAgSElUb29sYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg5ODlhZmJiOSBS
ZWNlaXZlTmV4dEV2ZW50Q29tbW9uICsgMzU0ClNUREVSUjogCTU5ICBISVRvb2xib3ggICAgICAg
ICAgICAgICAgICAgICAgICAgICAweDk4OWFmYTNlIEJsb2NrVW50aWxOZXh0RXZlbnRNYXRjaGlu
Z0xpc3RJbk1vZGUgKyA4MQpTVERFUlI6IAk2MCAgQXBwS2l0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHg5MDlmMTU5NSBfRFBTTmV4dEV2ZW50ICsgODQ3ClNUREVSUjogCTYxICBBcHBL
aXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDkwOWYwZGQ2IC1bTlNBcHBsaWNhdGlv
biBuZXh0RXZlbnRNYXRjaGluZ01hc2s6dW50aWxEYXRlOmluTW9kZTpkZXF1ZXVlOl0gKyAxNTYK
U1RERVJSOiBheDogYmJhZGJlZWYsIGJ4OiBiZmZmYWQxMCwgY3g6IDRlNTA4ZWM0LCBkeDogNGU1
MDhlYzQKU1RERVJSOiBkaTogNDZmZTZjZTcsIHNpOiA0NmZlNmM2ZCwgYnA6IGJmZmZhZGI4LCBz
cDogYmZmZmFjOTAsIHNzOiAxZiwgZmxhZ3M6IDEwMjg2ClNUREVSUjogaXA6IDQ1ODVkZDE0LCBj
czogMTcsIGRzOiAxZiwgZXM6IDFmLCBmczogMCwgZ3M6IDM3Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>166036</attachid>
            <date>2012-09-27 11:31:39 -0700</date>
            <delta_ts>2012-09-27 11:31:39 -0700</delta_ts>
            <desc>test case without -webkit-line-box-contain</desc>
            <filename>flex-shrink-neg.html</filename>
            <type>text/html</type>
            <size>679</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8c3R5bGU+Ci5tYXRoIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtaW5s
aW5lLWZsZXg7CiAgICAvKiAtd2Via2l0LWxpbmUtYm94LWNvbnRhaW46IGdseXBoczsgKi8KfQou
bWF0aCA+ICogewogICAgcGFkZGluZy1ib3R0b206IDAuMzVlbTsKfQoubWZyYWMgewogICAgZGlz
cGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDsKICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNv
bHVtbjsKfQoubWZyYWMgPiA6Zmlyc3QtY2hpbGQgewogICAgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI6
IDAuMmVtOwp9Ci5tZnJhYyA+IDpsYXN0LWNoaWxkIHsKICAgIC13ZWJraXQtbWFyZ2luLWJlZm9y
ZTogMC4yZW07Cn0KLnggewoJbGluZS1oZWlnaHQ6IDlweDsKfQoueSB7CglsaW5lLWhlaWdodDog
MTJweDsKfQo8L3N0eWxlPgoKPGRpdiBjbGFzcz1tYXRoPgoJPGRpdiBjbGFzcz1tZnJhYz4KCQk8
ZGl2IGNsYXNzPW1mcmFjPgoJCQk8ZGl2IGNsYXNzPXg+eDwvZGl2PgoJCQk8ZGl2IGNsYXNzPXk+
eTwvZGl2PgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9bWZyYWM+CgkJCTxkaXYgY2xhc3M9bWZyYWM+
CgkJCQk8ZGl2IGNsYXNzPXg+eDwvZGl2PgoJCQkJPGRpdiBjbGFzcz15Pnk8L2Rpdj4KCQkJPC9k
aXY+CgkJCTxkaXYgY2xhc3M9eD56PC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166096</attachid>
            <date>2012-09-27 16:51:03 -0700</date>
            <delta_ts>2012-09-27 17:32:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97606-20120927165021.patch</filename>
            <type>text/plain</type>
            <size>8828</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMzZmI4MDQ4ZDUxZWIz
MWY2ZTQwMDZkNzE2Y2FjZjcwODliYWY1Ni4uYzEyZWNlMjQ4NGI1ODg2NzU3M2UyNzlmMTczYThj
ODY0ZDJjY2Y0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTI3ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgZmxleGJveCBhc3NlcnQgZmFp
bHMgd2l0aCBhdXRvLXNpemVkIGl0ZW0gd2l0aCBwYWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzYwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlcGVuZGluZyBvbiB0aGUgZGVub21pbmF0b3Ig
b2YgRnJhY3Rpb25hbExheW91dFVuaXQsIHdlIGNhbiBsb3NlIHByZWNpc2lvbiB3aGVuCisgICAg
ICAgIGNvbnZlcnRpbmcgdG8gYSBmbG9hdC4gIFRoaXMgd291bGQgY2F1c2UgYSByb3VuZGluZyBl
cnJvciBpbiBmbGV4LXNocmluayB0byB0cmlnZ2VyIGFuIEFTU0VSVC4KKyAgICAgICAgVG8gYXZv
aWQgdGhpcyBwcm9ibGVtIGluIHRoZSBmdXR1cmUsIHN3aXRjaCB0byB1c2luZyBkb3VibGVzIGZv
ciBmbGV4LXNocmluayBhbmQgZmxleC1ncm93CisgICAgICAgIGF0IGxheW91dCB0aW1lLiAgVGhl
IENTUyB2YWx1ZXMgdGhlbXNlbHZlcyBhcmUgc3RpbGwgZmxvYXRzLgorCisgICAgICAgIFRlc3Q6
IGNzczMvZmxleGJveC9uZWdhdGl2ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6IFVzZSBkb3VibGVzIGZvciBsb2Nh
bCB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0
ZU5leHRGbGV4TGluZSk6IFBhc3MgaW4gZG91Ymxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsZXhpYmxlQm94OjpmcmVlemVWaW9sYXRpb25zKTogUGFzcyBpbiBkb3VibGVzLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnJlc29sdmVGbGV4aWJsZUxlbmd0aHMpOiBQ
YXNzIGluIGRvdWJsZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6
CisKIDIwMTItMDktMjcgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjEyOTE4Nik6IFByZXNzaW5nIGVudGVyIGF0IHRoZSBlbmQgb2Yg
YSBsaW5lIGRlbGV0ZXMgdGhlIGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGFiYzczZGQ4MzBjMDM4N2U5MWVhZjUxZTg0NDZlMTAw
YjA0MjZiMzAuLmI1MzBiM2EwYWI0NzhhYzk4NDUwZDgxOWEzYjAwM2MxN2I1ZDZkYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtNjE1
LDggKzYxNSw4IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhPcmRl
ckl0ZXJhdG9yJiBpdGVyYXRvciwgV1RGOjpWZWN0b3I8TGluCiB7CiAgICAgT3JkZXJlZEZsZXhJ
dGVtTGlzdCBvcmRlcmVkQ2hpbGRyZW47CiAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhp
c0V4dGVudDsKLSAgICBmbG9hdCB0b3RhbEZsZXhHcm93OwotICAgIGZsb2F0IHRvdGFsV2VpZ2h0
ZWRGbGV4U2hyaW5rOworICAgIGRvdWJsZSB0b3RhbEZsZXhHcm93OworICAgIGRvdWJsZSB0b3Rh
bFdlaWdodGVkRmxleFNocmluazsKICAgICBMYXlvdXRVbml0IG1pbk1heEFwcGxpZWRNYWluQXhp
c0V4dGVudDsKIAogICAgIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0ID0gZmxvd0F3YXJlQm9y
ZGVyQmVmb3JlKCkgKyBmbG93QXdhcmVQYWRkaW5nQmVmb3JlKCk7CkBAIC03OTcsNyArNzk3LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5k
TWF4KFJlbmRlckJveCogY2hpbGQsIExheW8KICAgICByZXR1cm4gc3RkOjptYXgoY2hpbGRTaXpl
LCBtaW5FeHRlbnQpOwogfQogCi1ib29sIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTmV4dEZs
ZXhMaW5lKE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBPcmRlcmVkRmxleEl0ZW1MaXN0JiBvcmRl
cmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCBmbG9hdCYg
dG90YWxGbGV4R3JvdywgZmxvYXQmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBMYXlvdXRVbml0
JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpCitib29sIFJlbmRlckZsZXhpYmxlQm94Ojpj
b21wdXRlTmV4dEZsZXhMaW5lKE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBPcmRlcmVkRmxleEl0
ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1haW5BeGlzRXh0
ZW50LCBkb3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJp
bmssIExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCkKIHsKICAgICBvcmRl
cmVkQ2hpbGRyZW4uY2xlYXIoKTsKICAgICBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCA9IDA7CkBA
IC04MzIsNyArODMyLDcgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4
TGluZShPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgT3JkZXJlZEZsZXgKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6ZnJlZXplVmlvbGF0aW9ucyhjb25zdCBX
VEY6OlZlY3RvcjxWaW9sYXRpb24+JiB2aW9sYXRpb25zLCBMYXlvdXRVbml0JiBhdmFpbGFibGVG
cmVlU3BhY2UsIGZsb2F0JiB0b3RhbEZsZXhHcm93LCBmbG9hdCYgdG90YWxXZWlnaHRlZEZsZXhT
aHJpbmssIEluZmxleGlibGVGbGV4SXRlbVNpemUmIGluZmxleGlibGVJdGVtcykKK3ZvaWQgUmVu
ZGVyRmxleGlibGVCb3g6OmZyZWV6ZVZpb2xhdGlvbnMoY29uc3QgV1RGOjpWZWN0b3I8VmlvbGF0
aW9uPiYgdmlvbGF0aW9ucywgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBkb3VibGUm
IHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmssIEluZmxleGli
bGVGbGV4SXRlbVNpemUmIGluZmxleGlibGVJdGVtcykKIHsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHZpb2xhdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgUmVuZGVyQm94KiBjaGls
ZCA9IHZpb2xhdGlvbnNbaV0uY2hpbGQ7CkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6ZnJlZXplVmlvbGF0aW9ucyhjb25zdCBXVEY6OlZlY3RvcjxWaW9sYXRpb24+
JiB2aW9sYXRpb24KIH0KIAogLy8gUmV0dXJucyB0cnVlIGlmIHdlIHN1Y2Nlc3NmdWxseSByYW4g
dGhlIGFsZ29yaXRobSBhbmQgc2l6ZWQgdGhlIGZsZXggaXRlbXMuCi1ib29sIFJlbmRlckZsZXhp
YmxlQm94OjpyZXNvbHZlRmxleGlibGVMZW5ndGhzKEZsZXhTaWduIGZsZXhTaWduLCBjb25zdCBP
cmRlcmVkRmxleEl0ZW1MaXN0JiBjaGlsZHJlbiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNw
YWNlLCBmbG9hdCYgdG90YWxGbGV4R3JvdywgZmxvYXQmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5r
LCBJbmZsZXhpYmxlRmxleEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMsIFdURjo6VmVjdG9yPExh
eW91dFVuaXQ+JiBjaGlsZFNpemVzKQorYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZs
ZXhpYmxlTGVuZ3RocyhGbGV4U2lnbiBmbGV4U2lnbiwgY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlz
dCYgY2hpbGRyZW4sIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZG91YmxlJiB0b3Rh
bEZsZXhHcm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBJbmZsZXhpYmxlRmxl
eEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMsIFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGls
ZFNpemVzKQogewogICAgIGNoaWxkU2l6ZXMuY2xlYXIoKTsKICAgICBMYXlvdXRVbml0IHRvdGFs
VmlvbGF0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmgKaW5kZXggZmFmYThiZTUxZjRjY2M3M2JiNWZmYTQwYzU1MmIwOGM4ZjU4YmYxNS4uMmFj
ZTNjNDRlNmEyYjgxYjdhYjM2NmJmYmMyZjcwZGM5OTM2YjU4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTEyMywxMCArMTIzLDEwIEBAIHBy
aXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ2hpbGRNYXJnaW5WYWx1ZShMZW5ndGggbWFy
Z2luLCBSZW5kZXJWaWV3Kik7CiAgICAgdm9pZCBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXpl
cyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIE9yZGVySGFzaFNldCYpOwogICAgIExheW91dFVuaXQg
YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCosIExheW91dFVuaXQgY2hpbGRT
aXplKTsKLSAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoT3JkZXJJdGVyYXRvciYsIE9yZGVy
ZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcHJlZmVycmVkTWFp
bkF4aXNFeHRlbnQsIGZsb2F0JiB0b3RhbEZsZXhHcm93LCBmbG9hdCYgdG90YWxXZWlnaHRlZEZs
ZXhTaHJpbmssIExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCk7CisgICAg
Ym9vbCBjb21wdXRlTmV4dEZsZXhMaW5lKE9yZGVySXRlcmF0b3ImLCBPcmRlcmVkRmxleEl0ZW1M
aXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50
LCBkb3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmss
IExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCk7CiAKLSAgICBib29sIHJl
c29sdmVGbGV4aWJsZUxlbmd0aHMoRmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3Qm
LCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbEZsZXhHcm93LCBm
bG9hdCYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmssIEluZmxleGlibGVGbGV4SXRlbVNpemUmLCBX
VEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcyk7Ci0gICAgdm9pZCBmcmVlemVWaW9s
YXRpb25zKGNvbnN0IFdURjo6VmVjdG9yPFZpb2xhdGlvbj4mLCBMYXlvdXRVbml0JiBhdmFpbGFi
bGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbEZsZXhHcm93LCBmbG9hdCYgdG90YWxXZWlnaHRlZEZs
ZXhTaHJpbmssIEluZmxleGlibGVGbGV4SXRlbVNpemUmKTsKKyAgICBib29sIHJlc29sdmVGbGV4
aWJsZUxlbmd0aHMoRmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3QmLCBMYXlvdXRV
bml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4R3JvdywgZG91YmxlJiB0
b3RhbFdlaWdodGVkRmxleFNocmluaywgSW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSYsIFdURjo6VmVj
dG9yPExheW91dFVuaXQ+JiBjaGlsZFNpemVzKTsKKyAgICB2b2lkIGZyZWV6ZVZpb2xhdGlvbnMo
Y29uc3QgV1RGOjpWZWN0b3I8VmlvbGF0aW9uPiYsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVT
cGFjZSwgZG91YmxlJiB0b3RhbEZsZXhHcm93LCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hy
aW5rLCBJbmZsZXhpYmxlRmxleEl0ZW1TaXplJik7CiAKICAgICB2b2lkIHNldExvZ2ljYWxPdmVy
cmlkZVNpemUoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBjaGlsZFByZWZlcnJlZFNpemUp
OwogICAgIHZvaWQgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dChSZW5kZXJCb3gqIGNo
aWxkLCBMYXlvdXRVbml0IG1haW5BeGlzT2Zmc2V0LCBMYXlvdXRVbml0IGNyb3NzQXhpc09mZnNl
dCwgUG9zaXRpb25lZExheW91dE1vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY0MzdkOGNhZDY3M2FiYThlODlhM2Vj
N2RmNTc4M2NjMDZjOTM4MGYuLmI5OWY0NjljMzE1NjMxZGRmODZjNGM0YmUyNThlYjQyODYyMThj
MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0yNyAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIGZsZXhib3ggYXNzZXJ0IGZhaWxzIHdpdGggYXV0by1z
aXplZCBpdGVtIHdpdGggcGFkZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTc2MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgaGl0cyBhbiBBU1NFUlQgd2hlbiBGcmFjdGlv
bmFsTGF5b3V0VW5pdCBkZW5vbWluYXRvciBpcyA2MC4KKworICAgICAgICAqIGNzczMvZmxleGJv
eC9uZWdhdGl2ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvZmxleGJveC9uZWdhdGl2ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wOS0yNyAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEluZGV4ZWREQjogU3BsaXQgdXAgc2V0VmVyc2lvbiBhbmQgZGVsZXRlRGF0YWJh
c2Ugc2VxdWVuY2luZyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L25lZ2F0aXZlLWZsZXgtcm91bmRpbmctYXNzZXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZmxleGJveC9uZWdhdGl2ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjFhM2RmNWM5NjBkNTE2MDY5NGYwNzcyZjZiN2Y4ZWQ4NjEwMGEzOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9uZWdhdGl2ZS1mbGV4LXJv
dW5kaW5nLWFzc2VydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUaGlzIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgorCit4Cit5Cit4Cit5Cit6CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvZmxleGJveC9uZWdhdGl2ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L25lZ2F0aXZlLWZsZXgtcm91bmRpbmctYXNz
ZXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM5MWRjMDc3NjBkMzAzMTY5NzAyNzdhYzIxYjYzN2E2MWZk
ZGI4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9uZWdhdGl2
ZS1mbGV4LXJvdW5kaW5nLWFzc2VydC5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8c3R5bGU+CisubWF0aCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1pbmxp
bmUtZmxleDsKK30KKy5tYXRoID4gKiB7CisgICAgcGFkZGluZy1ib3R0b206IDAuMzVlbTsKK30K
Ky5tZnJhYyB7CisgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDsKKyAgICAtd2Via2l0
LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cit9CisubWZyYWMgPiA6Zmlyc3QtY2hpbGQgeworICAg
IC13ZWJraXQtbWFyZ2luLWFmdGVyOiAwLjJlbTsKK30KKy5tZnJhYyA+IDpsYXN0LWNoaWxkIHsK
KyAgICAtd2Via2l0LW1hcmdpbi1iZWZvcmU6IDAuMmVtOworfQorLnggeworICAgIGxpbmUtaGVp
Z2h0OiA5cHg7Cit9CisueSB7CisgICAgbGluZS1oZWlnaHQ6IDEycHg7Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKzwvc2NyaXB0PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFz
aC48L3A+Cis8ZGl2IGNsYXNzPW1hdGg+CisgICAgPGRpdiBjbGFzcz1tZnJhYz4KKyAgICAgICAg
PGRpdiBjbGFzcz1tZnJhYz4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9eD54PC9kaXY+CisgICAg
ICAgICAgICA8ZGl2IGNsYXNzPXk+eTwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz1tZnJhYz4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9bWZyYWM+CisgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz14Png8L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPXk+
eTwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPXg+ejwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="178318"
          type_id="1"
          status="+"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="178319"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>