<?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>89261</bug_id>
          
          <creation_ts>2012-06-15 18:08:09 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Floats should respect shape-inside on exclusions</short_desc>
          <delta_ts>2012-12-17 13:14:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>105207</dependson>
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bem Jones-Bey">bjonesbe</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>giles_joplin</cc>
    
    <cc>hyatt</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>650665</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-06-15 18:08:09 -0700</bug_when>
    <thetext>Floats should respect the content bounds defined by shape-inside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772209</commentid>
    <comment_count>1</comment_count>
      <attachid>175288</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-20 15:16:54 -0800</bug_when>
    <thetext>Created attachment 175288
Initial Patch

Make floats respect shape-inside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772237</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-20 15:48:48 -0800</bug_when>
    <thetext>The ChangeLog says &quot;No new tests&quot; .  You might explain that shape-inside-floats-simple has been revised to cover the new functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772242</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-20 15:51:52 -0800</bug_when>
    <thetext>I think the conventional WebKit FIXME syntax is FIXME: A complete sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772254</commentid>
    <comment_count>4</comment_count>
      <attachid>175288</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-20 16:06:44 -0800</bug_when>
    <thetext>Comment on attachment 175288
Initial Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests (OOPS!).

Make sure to document the tests you&apos;ve changed here.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3868
&gt; +    ExclusionShapeInsideInfo* shapeInsideInfo = exclusionShapeInsideInfo();

This will only work when the shape-inside is directly set on this block. For example:
&lt;div style=&apos;shape-inside:rectangle(0, 0, 100px, 100px)&apos;&gt;
 &lt;div&gt;
  &lt;div style=&apos;float:left&apos;&gt;&lt;/div&gt;
  Some inline content...
 &lt;/div&gt;
&lt;/div&gt;
Should still have the float respect the shape inside.
You may wish to file a separate bug for this.
Check out RenderBlockLineLayout.cpp::layoutExclusionShapeInsideInfo.
You may also need to confirm that you are at the correct logical height offset.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3870
&gt; +    // FIXME Take into account the height of the content. The offset should be
&gt; +    // equal to the maximum segment length: https://bugs.webkit.org/show_bug.cgi?id=102846

As a nit, I&apos;ve generally seen these as
// FIXME Bug 102846: Comments
Really tiny thing, but it&apos;ll avoid having to include the whole link

&gt; Source/WebCore/rendering/RenderBlock.cpp:3873
&gt; +        logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - availableLogicalWidth();
&gt; +        logicalLeftOffset += shapeInsideInfo-&gt;segments()[0].logicalLeft;

You&apos;ll need to add a fixme &amp; file a bug for dealing with multiple segments.
computeInlineDirectionPositionsForLine just replaces logicalLeft &amp; logicalRight offsets, rather than adding them to the existing offsets. Which method is correct?
And, given the differences, is it worth it to add tests with margin/padding/content offsets and shape-inside?

&gt; LayoutTests/fast/exclusions/resources/shape-inside-floats-simple.js:1
&gt; +if (window.internals)

Is this script more generic than just for floats?
Also, if it works for you, you may consider using simple-rectangle.js, which I was going to eventually convert these tests to.
The shape-inside-multiple-blocks and shape-inside-subsequent-blocks use the script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773039</commentid>
    <comment_count>5</comment_count>
      <attachid>175288</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-21 09:38:54 -0800</bug_when>
    <thetext>Comment on attachment 175288
Initial Patch

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

Removing review flag, since I&apos;m definitely going to need to push a new patch.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3868
&gt;&gt; +    ExclusionShapeInsideInfo* shapeInsideInfo = exclusionShapeInsideInfo();
&gt; 
&gt; This will only work when the shape-inside is directly set on this block. For example:
&gt; &lt;div style=&apos;shape-inside:rectangle(0, 0, 100px, 100px)&apos;&gt;
&gt;  &lt;div&gt;
&gt;   &lt;div style=&apos;float:left&apos;&gt;&lt;/div&gt;
&gt;   Some inline content...
&gt;  &lt;/div&gt;
&gt; &lt;/div&gt;
&gt; Should still have the float respect the shape inside.
&gt; You may wish to file a separate bug for this.
&gt; Check out RenderBlockLineLayout.cpp::layoutExclusionShapeInsideInfo.
&gt; You may also need to confirm that you are at the correct logical height offset.

Filed Bug 102948 for this.

You have a point about the logical height offset,  this convinces me more that it may be best to move the calculation of the shape-inside offsets to logicalLeftOffsetForLine and logicalRightOffsetForLine (as I mention below).

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3870
&gt;&gt; +    // equal to the maximum segment length: https://bugs.webkit.org/show_bug.cgi?id=102846
&gt; 
&gt; As a nit, I&apos;ve generally seen these as
&gt; // FIXME Bug 102846: Comments
&gt; Really tiny thing, but it&apos;ll avoid having to include the whole link

Ok.

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3873
&gt;&gt; +        logicalLeftOffset += shapeInsideInfo-&gt;segments()[0].logicalLeft;
&gt; 
&gt; You&apos;ll need to add a fixme &amp; file a bug for dealing with multiple segments.
&gt; computeInlineDirectionPositionsForLine just replaces logicalLeft &amp; logicalRight offsets, rather than adding them to the existing offsets. Which method is correct?
&gt; And, given the differences, is it worth it to add tests with margin/padding/content offsets and shape-inside?

I&apos;ve filed Bug 102949 for multiple segments.

I believe that what computeInlineDirectionPositionsForLine is doing is incorrect. That&apos;s probably the root of Bug 102715, since the offset has the padding and border included already. I wonder if we should remove this code from both computeInlineDirectionPositionsForLine and computeLogicalLocationForFloat and move it into logicalLeftOffsetForLine instead. Do you see any issues with that? I believe that would fix both this bug and Bug 102715.

And once that would be fixed, then I would be happy to add tests with margins/padding/etc, since the only reason I&apos;ve omitted them so far is because it the layout for the text doesn&apos;t work with it right now.

&gt;&gt; LayoutTests/fast/exclusions/resources/shape-inside-floats-simple.js:1
&gt;&gt; +if (window.internals)
&gt; 
&gt; Is this script more generic than just for floats?
&gt; Also, if it works for you, you may consider using simple-rectangle.js, which I was going to eventually convert these tests to.
&gt; The shape-inside-multiple-blocks and shape-inside-subsequent-blocks use the script.

It&apos;s specific to floats for now. But I&apos;ll rewrite the test to use simple-rectangle.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773083</commentid>
    <comment_count>6</comment_count>
      <attachid>175288</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-21 10:19:23 -0800</bug_when>
    <thetext>Comment on attachment 175288
Initial Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:3873
&gt;&gt;&gt; +        logicalLeftOffset += shapeInsideInfo-&gt;segments()[0].logicalLeft;
&gt;&gt; 
&gt;&gt; You&apos;ll need to add a fixme &amp; file a bug for dealing with multiple segments.
&gt;&gt; computeInlineDirectionPositionsForLine just replaces logicalLeft &amp; logicalRight offsets, rather than adding them to the existing offsets. Which method is correct?
&gt;&gt; And, given the differences, is it worth it to add tests with margin/padding/content offsets and shape-inside?
&gt; 
&gt; I&apos;ve filed Bug 102949 for multiple segments.
&gt; 
&gt; I believe that what computeInlineDirectionPositionsForLine is doing is incorrect. That&apos;s probably the root of Bug 102715, since the offset has the padding and border included already. I wonder if we should remove this code from both computeInlineDirectionPositionsForLine and computeLogicalLocationForFloat and move it into logicalLeftOffsetForLine instead. Do you see any issues with that? I believe that would fix both this bug and Bug 102715.
&gt; 
&gt; And once that would be fixed, then I would be happy to add tests with margins/padding/etc, since the only reason I&apos;ve omitted them so far is because it the layout for the text doesn&apos;t work with it right now.

Moving this into the offset code sounds like a good idea. My only concern is that we&apos;re still going to have to deal with individual segment offsets on multi-segment lines, and I don&apos;t know if it will make as much sense in that case. So I would propose waiting until after bug 91878 has landed before making the refactor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775713</commentid>
    <comment_count>7</comment_count>
      <attachid>176040</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-26 11:33:09 -0800</bug_when>
    <thetext>Created attachment 176040
Updated Patch

Make floats respect shape-inside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785305</commentid>
    <comment_count>8</comment_count>
      <attachid>176040</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-12-06 14:49:50 -0800</bug_when>
    <thetext>Comment on attachment 176040
Updated Patch

It feels weird to me to patch this spot. We already have functions that tell you the left and right offsets for content at a given block offset.... why would you not just patch them?

Basically I&apos;m wondering why you didn&apos;t patch at a lower level, e.g., logicalLeftOffsetForContent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785317</commentid>
    <comment_count>9</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-12-06 14:57:29 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 176040 [details])
&gt; It feels weird to me to patch this spot. We already have functions that tell you the left and right offsets for content at a given block offset.... why would you not just patch them?
&gt; 
&gt; Basically I&apos;m wondering why you didn&apos;t patch at a lower level, e.g., logicalLeftOffsetForContent.

Only because I was waiting for bug 91878 to land before refactoring at a lower level, since it would probably require touching some things that are affected by bug 91878. However at this point, that argument is moot since bug 91878 has landed. I&apos;ll update the patch to do it&apos;s thing at a lower level. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786260</commentid>
    <comment_count>10</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-12-07 15:58:59 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 176040 [details] [details])
&gt; &gt; It feels weird to me to patch this spot. We already have functions that tell you the left and right offsets for content at a given block offset.... why would you not just patch them?
&gt; &gt; 
&gt; &gt; Basically I&apos;m wondering why you didn&apos;t patch at a lower level, e.g., logicalLeftOffsetForContent.
&gt; 
&gt; Only because I was waiting for bug 91878 to land before refactoring at a lower level, since it would probably require touching some things that are affected by bug 91878. However at this point, that argument is moot since bug 91878 has landed. I&apos;ll update the patch to do it&apos;s thing at a lower level. Thanks.

After spending some time going the workings of multiple segments, I don&apos;t see a way that this could be moved into a lower level like logicalLeftOffsetForContent and still be able to properly implement positioning floats in the case layout out floats in multi-segment polygons (Bug 102949). I could add something like logicalLeftOffesetForContentInSegment, and put the code there, if you like that better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790914</commentid>
    <comment_count>11</comment_count>
      <attachid>176040</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-12-13 14:12:01 -0800</bug_when>
    <thetext>Comment on attachment 176040
Updated Patch

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

Ok we can go with the original patch. Here is my feedback on it.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3866
&gt;      LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(logicalTopOffset); // Constant part of left offset.

Add the following line:

LayoutUnit floatLogicalWidth = logicalRightOffset - logicalLeftOffset;

&gt; Source/WebCore/rendering/RenderBlock.cpp:3874
&gt; +        logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - availableLogicalWidth();

This is incorrect with variable width regions. You need to be using the available logical width in the specific region. You have this available by subtracting the logicalLeft and logicalRight offsets. I haven&apos;t looked at whether or not you do segment calculation correctly across variable width regions (probably not), but we should at least have this code be prepared for it.

Basically change the above line to:

logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - floatLogicalWidth;

&gt; Source/WebCore/rendering/RenderBlock.cpp:3878
&gt;      LayoutUnit floatLogicalWidth = min(logicalWidthForFloat(floatingObject), logicalRightOffset - logicalLeftOffset); // The width we look for.

Now patch this line of code to read:

floatLogicalWidth = min(logicalWidthForFloat(floatingObject), floatLogicalWidth);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790917</commentid>
    <comment_count>12</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-12-13 14:17:01 -0800</bug_when>
    <thetext>Thinking about this further I think this can be simplified:

logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - floatLogicalWidth;

That is equivalent to:

logicalRightOffset = logicalRightOffset + shapeInsideInfo-&gt;segments()[0].logicalRight - (logicalRightOffset - logicalLeftOffset);

which turns into:

logicalRightOffset = logicalLeftOffset + shapeInsideInfo-&gt;segments()[0].logicalRight;

I find this kind of confusing. Do segments not have positions that include border and padding of the enclosing box? Is this really correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790981</commentid>
    <comment_count>13</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-12-13 15:03:11 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Thinking about this further I think this can be simplified:
&gt; 
&gt; logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - floatLogicalWidth;
&gt; 
&gt; That is equivalent to:
&gt; 
&gt; logicalRightOffset = logicalRightOffset + shapeInsideInfo-&gt;segments()[0].logicalRight - (logicalRightOffset - logicalLeftOffset);
&gt; 
&gt; which turns into:
&gt; 
&gt; logicalRightOffset = logicalLeftOffset + shapeInsideInfo-&gt;segments()[0].logicalRight;
&gt; 
&gt; I find this kind of confusing. Do segments not have positions that include border and padding of the enclosing box? Is this really correct?

(In reply to comment #12)
&gt; Thinking about this further I think this can be simplified:
&gt; 
&gt; logicalRightOffset += shapeInsideInfo-&gt;segments()[0].logicalRight - floatLogicalWidth;
&gt; 
&gt; That is equivalent to:
&gt; 
&gt; logicalRightOffset = logicalRightOffset + shapeInsideInfo-&gt;segments()[0].logicalRight - (logicalRightOffset - logicalLeftOffset);
&gt; 
&gt; which turns into:
&gt; 
&gt; logicalRightOffset = logicalLeftOffset + shapeInsideInfo-&gt;segments()[0].logicalRight;
&gt; 
&gt; I find this kind of confusing. Do segments not have positions that include border and padding of the enclosing box? Is this really correct?

Segment positions are relative to the content box, so they don&apos;t include border and padding. So I believe that is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791009</commentid>
    <comment_count>14</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-12-13 15:26:08 -0800</bug_when>
    <thetext>*** Bug 91906 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791019</commentid>
    <comment_count>15</comment_count>
      <attachid>179355</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-12-13 15:36:13 -0800</bug_when>
    <thetext>Created attachment 179355
Updated Patch

Update for review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792808</commentid>
    <comment_count>16</comment_count>
      <attachid>179355</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-12-17 09:55:10 -0800</bug_when>
    <thetext>Comment on attachment 179355
Updated Patch

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

r=me

&gt; Source/WebCore/rendering/RenderBlock.cpp:3824
&gt; +        // The segment offsets are relative to the content box.

It&apos;s good this comment is here, but I do question why segments are using content box coordinates. This is not something we do anywhere else in the code. All other constructs, from positioned elements, to line boxes, to floats, etc. are in border box coordinates, so why have we made segments different? I strongly believe you should express segment positions using border box coordinates instead (and shapes too if they are what led segments to be in content box coordinates).

I&apos;m not going to r- over this issue, but I think it&apos;s something you should consider. Having exclusions be different than every other layout construct doesn&apos;t seem ideal as far as other people coming into the code and trying to understand it. You&apos;ll be putting clarifying comments like the one above all over the place as you patch more spots in the code and find you have to do border&lt;-&gt;content conversion math in those spots also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792820</commentid>
    <comment_count>17</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-12-17 10:19:38 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 179355 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179355&amp;action=review
&gt; 
&gt; r=me

Thanks!

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3824
&gt; &gt; +        // The segment offsets are relative to the content box.
&gt; 
&gt; It&apos;s good this comment is here, but I do question why segments are using content box coordinates. This is not something we do anywhere else in the code. All other constructs, from positioned elements, to line boxes, to floats, etc. are in border box coordinates, so why have we made segments different? I strongly believe you should express segment positions using border box coordinates instead (and shapes too if they are what led segments to be in content box coordinates).
&gt; 
&gt; I&apos;m not going to r- over this issue, but I think it&apos;s something you should consider. Having exclusions be different than every other layout construct doesn&apos;t seem ideal as far as other people coming into the code and trying to understand it. You&apos;ll be putting clarifying comments like the one above all over the place as you patch more spots in the code and find you have to do border&lt;-&gt;content conversion math in those spots also.

The coordinate problems will be addressed as part of fixing the generat border/padding issues with shape-inside in bug 102715.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792826</commentid>
    <comment_count>18</comment_count>
      <attachid>179355</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 10:28:34 -0800</bug_when>
    <thetext>Comment on attachment 179355
Updated Patch

Clearing flags on attachment: 179355

Committed r137920: &lt;http://trac.webkit.org/changeset/137920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792828</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 10:28:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175288</attachid>
            <date>2012-11-20 15:16:54 -0800</date>
            <delta_ts>2012-11-26 11:33:06 -0800</delta_ts>
            <desc>Initial Patch</desc>
            <filename>bug-89261-20121120151446.patch</filename>
            <type>text/plain</type>
            <size>9647</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGUwODFjNzI5YWQ0ODYw
OTJmYTAxNTAyZDE3YjA5OTcxMWYxY2RkYy4uNmM5MDQ0NGU3NWRhYTYwMWM0YWZlODZkN2QyNzdl
ZDUzYWFkZjE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTIwICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gRmxvYXRzIHNob3VsZCByZXNwZWN0IHNoYXBlLWluc2lkZSBvbiBleGNsdXNpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTI2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgb2Zmc2V0
IGFkZGVkIGJ5IHRoZSBzaGFwZSBpbnNpZGUgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0IG9mZnNldHMK
KyAgICAgICAgdXNlZCBmb3IgZmxvYXQgcG9zaXRpb25pbmcuIFRoaXMgbWFrZXMgaXQgc28gdGhh
dCB0aGUgZmxvYXQgd2lsbCBiZQorICAgICAgICBwb3NpdGlvbmVkIGluc2lkZSB0aGUgc2hhcGUg
aW5zdGVhZCBvZiB0aGUgY29udGVudCBib3guCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9hdCk6CisKIDIw
MTItMTEtMjAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtXaW5DYWlyb10gQnVpbGQgZml4IGFmdGVyIHIxMzUzMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDg0ZjdiM2M2MWJjOTJiNTdlNjY1YTNhZjQ3YzQyZWZi
NzNkZjQ1NDYuLmQ3YjE4YzE0MTI4OGM1OTI3YWU0MTQ4YTVlZDVkMzhiNTg0ODg2NmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMzg2NCw2ICszODY0LDE1
IEBAIExheW91dFBvaW50IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxv
YXQoY29uc3QgRmxvYXRpbmdPYmplY3QqIGZsCiAgICAgUmVuZGVyQm94KiBjaGlsZEJveCA9IGZs
b2F0aW5nT2JqZWN0LT5yZW5kZXJlcigpOwogICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zm
c2V0ID0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChsb2dpY2FsVG9wT2Zmc2V0KTsgLy8g
Q29uc3RhbnQgcGFydCBvZiByaWdodCBvZmZzZXQuCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVm
dE9mZnNldCA9IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChsb2dpY2FsVG9wT2Zmc2V0KTsg
Ly8gQ29uc3RhbnQgcGFydCBvZiBsZWZ0IG9mZnNldC4KKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBleGNs
dXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICAvLyBGSVhNRSBUYWtlIGludG8gYWNjb3VudCB0
aGUgaGVpZ2h0IG9mIHRoZSBjb250ZW50LiBUaGUgb2Zmc2V0IHNob3VsZCBiZQorICAgIC8vIGVx
dWFsIHRvIHRoZSBtYXhpbXVtIHNlZ21lbnQgbGVuZ3RoOiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAyODQ2CisgICAgaWYgKHNoYXBlSW5zaWRlSW5mbyAmJiBzaGFw
ZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKKyAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0
ICs9IHNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmlnaHQgLSBhdmFpbGFi
bGVMb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gc2hhcGVJbnNp
ZGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxMZWZ0OworICAgIH0KKyNlbmRpZgogICAgIExh
eW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGggPSBtaW4obG9naWNhbFdpZHRoRm9yRmxvYXQoZmxv
YXRpbmdPYmplY3QpLCBsb2dpY2FsUmlnaHRPZmZzZXQgLSBsb2dpY2FsTGVmdE9mZnNldCk7IC8v
IFRoZSB3aWR0aCB3ZSBsb29rIGZvci4KIAogICAgIExheW91dFVuaXQgZmxvYXRMb2dpY2FsTGVm
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiNDI1ZDhlZTkwNmM4NDA4ZjJkMzc5NjRiNDlkOWVjYTBiNDE1MGJiLi5jOTdl
ZmM1NDY0MTY5MDFkZDBhMGU2ZTcxMjMyNzY3NTU0NDA3Yzk5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMTEtMjAgIEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTUyBFeGNsdXNpb25zXSBGbG9hdHMgc2hvdWxkIHJlc3BlY3Qgc2hhcGUtaW5zaWRl
IG9uIGV4Y2x1c2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg5MjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXBkYXRlIHRlc3RzIHRvIGFjdHVhbGx5IHRlc3QgdGhlIGludGVyYWN0aW9uIG9mIHNo
YXBlLWluc2lkZSBhbmQKKyAgICAgICAgZXhjbHVzaW9ucy4KKworICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9yZXNvdXJjZXMvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUuanM6IEFkZGVkLgor
ICAgICAgICAod2luZG93Lm9ubG9hZCk6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1w
bGUuaHRtbDoKKwogMjAxMi0xMS0yMCAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+
CiAKICAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBTdXBwb3J0IG91dHNpZGUtc2hhcGUgdmFsdWUg
b24gc2hhcGUtaW5zaWRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
cmVzb3VyY2VzL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3Jlc291cmNlcy9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNWFkY2Y0YjkwZGUyNzk1MTU4ODE5NjU0MDZhYTZkYzM4ODliY2QzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3Jlc291cmNlcy9zaGFwZS1p
bnNpZGUtZmxvYXRzLXNpbXBsZS5qcwpAQCAtMCwwICsxLDEzIEBACitpZiAod2luZG93LmludGVy
bmFscykKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKHRydWUpOworCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgIHZhciBiYXNl
VGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiYXNlJyk7CisgICAgdmFyIGNsb25lcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2NvcHknKTsKKyAgICBBcnJheS5wcm90
b3R5cGUuZm9yRWFjaC5jYWxsKGNsb25lcywgZnVuY3Rpb24gKGNsb25lKSB7CisgICAgICAgIHZh
ciBjbG9uZWRUZXN0ID0gYmFzZVRlc3QuY2xvbmVOb2RlKHRydWUpOworICAgICAgICBjbG9uZWRU
ZXN0LnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTsKKyAgICAgICAgY2xvbmVkVGVzdC5zZXRBdHRyaWJ1
dGUoJ2NsYXNzJywgY2xvbmVkVGVzdC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgKyAnIHNoYXBlLWlu
c2lkZS12ZXJ0aWNhbCcpOworICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjbG9uZWRUZXN0KTsK
KyAgICB9KTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMt
c2ltcGxlLWV4cGVjdGVkLmh0bWwKaW5kZXggZjAzZWJlYzM0NDgxNmNjYzE4OTExMDFhMzZiOTBi
MTc2YjRiNWIyYy4uYmEwMzJlNzUxMmNlZGYwZmY5N2M0YTdjNDZhMjczMGNmMTAzYzZlNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtZmxvYXRzLXNpbXBsZS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUtZXhwZWN0
ZWQuaHRtbApAQCAtMSwzNiArMSw2MiBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5q
cyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci0gICAgZGl2IHsKLSAgICAgICAgd2lkdGg6IDIwMHB4Owot
ICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgIC5jb250YWluZXIgeworICAgICAgICBmb250OiAx
MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgICBo
ZWlnaHQ6IDE1MHB4OwogICAgIH0KLSAgICAjc2hhcGUtaW5zaWRlIHsKLSAgICAgICAgcGFkZGlu
ZzogMTBweDsKLSAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIC5zaGFwZS1pbnNpZGUg
eworICAgICAgICBwYWRkaW5nLXRvcDogMHB4OworICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7
CisgICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7CisgICAgICAgIHBhZGRpbmctYm90dG9tOiA1
MHB4OwogICAgIH0KLSAgICAjYm9yZGVyIHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwot
ICAgICAgICB0b3A6IDhweDsKLSAgICAgICAgbGVmdDogOHB4OwotICAgICAgICBib3JkZXI6IDJw
eCBzb2xpZCBibHVlOworICAgIC5zaGFwZS1pbnNpZGUtdmVydGljYWwgeworICAgICAgICBwYWRk
aW5nLXRvcDogMjVweDsKKyAgICAgICAgcGFkZGluZy1ib3R0b206IDI1cHg7CisgICAgICAgIHBh
ZGRpbmctcmlnaHQ6IDUwcHg7CisgICAgICAgIHBhZGRpbmctbGVmdDogMHB4OwogICAgIH0KICAg
ICAuc3BhY2VyIHsKLSAgICAgICAgd2lkdGg6IDczcHg7Ci0gICAgICAgIGhlaWdodDogNzNweDsK
LSAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CisgICAgICAgIHdpZHRoOiA1MHB4Owor
ICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
ICAgIH0KKyAgICAudmVydGljYWwtbHIgeworICAgICAgICAtd2Via2l0LXdyaXRpbmctbW9kZTog
dmVydGljYWwtbHI7CisgICAgfQorICAgIC52ZXJ0aWNhbC1ybCB7CisgICAgICAgIC13ZWJraXQt
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsKICAgICB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJv
ZHk+Ci0gICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgPGRpdiBpZD0iYm9yZGVy
Ij48L2Rpdj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0iZmxvYXQ6bGVmdCI+
PC9kaXY+CisgICAgPGgxPlRoZSBmb2xsb3dpbmcgdGVzdHMgc2hvdWxkIGFsbCBiZSBsYXJnZSBi
bGFjayBzcXVhcmVzIHRoYXQgY29udGFpbiB0d28gc21hbGxlciBncmVlbiBzcXVhcmVzIG9uIHRo
ZSBzYW1lIGxpbmUuPC9oMT4KKyAgICA8aDI+U3RhbmRhcmQgbGVmdCByaWdodCB3cml0aW5nIG1v
ZGU8L2gyPgorICAgIDxkaXYgaWQ9ImJhc2UiIGNsYXNzPSJjb250YWluZXIgc2hhcGUtaW5zaWRl
Ij4KKyAgICAgICAgWFhYWFhYWFhYWFhYWFhYCisgICAgICAgIFhYWFhYWFhYWFhYWFhYWAorICAg
ICAgICBYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0i
ZmxvYXQ6cmlnaHQiPjwvZGl2PgotICAgICAgICBUaGUgYmx1ZSBib3ggc2hvdWxkIGNvbnRhaW4g
YSBncmVlbiBzcXVhcmUgaW4gYm90aCB0aGUgdXBwZXIgbGVmdAotICAgICAgICBhbmQgdXBwZXIg
cmlnaHQgY29ybmVycy4gVGhpcyB0ZXh0IHNob3VsZCBmbG93IGFyb3VuZCB0aGUgZ3JlZW4gc3F1
YXJlcywKLSAgICAgICAgYnV0IHdpdGhpbiB0aGUgYmx1ZSBvdXRsaW5lLgorICAgICAgICA8ZGl2
IGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJmbG9hdDpsZWZ0Ij48L2Rpdj4KKyAgICAgICAgWFhYWFgK
KyAgICAgICAgWFhYWFgKKyAgICAgICAgWFhYWFgKKyAgICAgICAgWFhYWFgKKyAgICAgICAgWFhY
WFgKKyAgICAgICAgWFhYWFhYWFhYWFhYWFhYCisgICAgICAgIFhYWFhYWFhYWFhYWFhYWAorICAg
ICAgICBYWFhYWFhYWFhYWFhYWFgKKyAgICAgICAgWFhYWFhYWFhYWFhYWFhYCisgICAgICAgIFhY
WFhYWFhYWFhYWFhYWAorICAgICAgICBYWFhYWFhYWFhYWFhYWFgKICAgICA8L2Rpdj4KKyAgICA8
aDI+VmVydGljYWwgUmlnaHQgTGVmdCB3cml0aW5nIG1vZGU8L2gyPgorICAgIDxkaXYgY2xhc3M9
ImNvcHkgdmVydGljYWwtcmwiPjwvZGl2PgorICAgIDxoMj5WZXJ0aWNhbCBMZWZ0IFJpZ2h0IHdy
aXRpbmcgbW9kZTwvaDI+CisgICAgPGRpdiBjbGFzcz0iY29weSB2ZXJ0aWNhbC1sciI+PC9kaXY+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2lt
cGxlLmh0bWwKaW5kZXggMzQ2OGIzYjBiZDAyZmRkNWVhY2E4NmExYzY4NWQ3OTAyY2MxZTc3Ny4u
YjExZmIzNTk5NWUzNDgzOTIyMzdkY2M0ZDgxMTA3MTQwOWZiN2RkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRz
LXNpbXBsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUuaHRtbApAQCAtMSw0MSArMSw1NiBAQAogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNp
b25zRW5hYmxlZCh0cnVlKTsKLTwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
aGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5qcyI+PC9zY3JpcHQ+CiA8c3R5bGU+Ci0gICAgZGl2
IHsKKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgZm9udDogMTBweC8xIEFoZW0sIHNhbnMtc2Vy
aWY7CiAgICAgICAgIHdpZHRoOiAyMDBweDsKICAgICAgICAgaGVpZ2h0OiAyMDBweDsKICAgICB9
Ci0gICAgI3NoYXBlLWluc2lkZSB7Ci0gICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3Rhbmds
ZSgwLCAwLCAyMDBweCwgMjAwcHgpOworICAgIC5zaGFwZS1pbnNpZGUgeworICAgICAgICAtd2Vi
a2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDI1cHgsIDAsIDE1MHB4LCAxNTBweCk7CiAgICAg
fQotICAgICNib3JkZXIgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRv
cDogOHB4OwotICAgICAgICBsZWZ0OiA4cHg7Ci0gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJs
dWU7CisgICAgLnNoYXBlLWluc2lkZS12ZXJ0aWNhbCB7CisgICAgICAgIC13ZWJraXQtc2hhcGUt
aW5zaWRlOiByZWN0YW5nbGUoMCwgMjVweCwgMTUwcHgsIDE1MHB4KTsKICAgICB9CiAgICAgLnNw
YWNlciB7Ci0gICAgICAgIHdpZHRoOiA3M3B4OwotICAgICAgICBoZWlnaHQ6IDczcHg7Ci0gICAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAg
ICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9
CisgICAgLnZlcnRpY2FsLWxyIHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRp
Y2FsLWxyOworICAgIH0KKyAgICAudmVydGljYWwtcmwgeworICAgICAgICAtd2Via2l0LXdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7CiAgICAgfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5Pgot
ICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+Ci0gICAgICAgIDxkaXYgaWQ9ImJvcmRlciI+PC9k
aXY+Ci0gICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OmxlZnQiPjwvZGl2
PgorICAgIDxoMT5UaGUgZm9sbG93aW5nIHRlc3RzIHNob3VsZCBhbGwgYmUgbGFyZ2UgYmxhY2sg
c3F1YXJlcyB0aGF0IGNvbnRhaW4gdHdvIHNtYWxsZXIgZ3JlZW4gc3F1YXJlcyBvbiB0aGUgc2Ft
ZSBsaW5lLjwvaDE+CisgICAgPGgyPlN0YW5kYXJkIGxlZnQgcmlnaHQgd3JpdGluZyBtb2RlPC9o
Mj4KKyAgICA8ZGl2IGlkPSJiYXNlIiBjbGFzcz0iY29udGFpbmVyIHNoYXBlLWluc2lkZSI+Cisg
ICAgICAgIFhYWFhYWFhYWFhYWFhYWAorICAgICAgICBYWFhYWFhYWFhYWFhYWFgKKyAgICAgICAg
WFhYWFhYWFhYWFhYWFhYCiAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0
OnJpZ2h0Ij48L2Rpdj4KLSAgICAgICAgVGhlIGJsdWUgYm94IHNob3VsZCBjb250YWluIGEgZ3Jl
ZW4gc3F1YXJlIGluIGJvdGggdGhlIHVwcGVyIGxlZnQKLSAgICAgICAgYW5kIHVwcGVyIHJpZ2h0
IGNvcm5lcnMuIFRoaXMgdGV4dCBzaG91bGQgZmxvdyBhcm91bmQgdGhlIGdyZWVuIHNxdWFyZXMs
Ci0gICAgICAgIGJ1dCB3aXRoaW4gdGhlIGJsdWUgb3V0bGluZS4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic3BhY2VyIiBzdHlsZT0iZmxvYXQ6bGVmdCI+PC9kaXY+CisgICAgICAgIFhYWFhYCisgICAg
ICAgIFhYWFhYCisgICAgICAgIFhYWFhYCisgICAgICAgIFhYWFhYCisgICAgICAgIFhYWFhYCisg
ICAgICAgIFhYWFhYWFhYWFhYWFhYWAorICAgICAgICBYWFhYWFhYWFhYWFhYWFgKKyAgICAgICAg
WFhYWFhYWFhYWFhYWFhYCisgICAgICAgIFhYWFhYWFhYWFhYWFhYWAorICAgICAgICBYWFhYWFhY
WFhYWFhYWFgKKyAgICAgICAgWFhYWFhYWFhYWFhYWFhYCiAgICAgPC9kaXY+CisgICAgPGgyPlZl
cnRpY2FsIFJpZ2h0IExlZnQgd3JpdGluZyBtb2RlPC9oMj4KKyAgICA8ZGl2IGNsYXNzPSJjb3B5
IHZlcnRpY2FsLXJsIj48L2Rpdj4KKyAgICA8aDI+VmVydGljYWwgTGVmdCBSaWdodCB3cml0aW5n
IG1vZGU8L2gyPgorICAgIDxkaXYgY2xhc3M9ImNvcHkgdmVydGljYWwtbHIiPjwvZGl2PgogPC9i
b2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176040</attachid>
            <date>2012-11-26 11:33:09 -0800</date>
            <delta_ts>2012-12-13 15:36:09 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>bug-89261-20121126113047.patch</filename>
            <type>text/plain</type>
            <size>9354</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZiYWEzZjhjNmM4NTdi
ODA1OTM1MjYyZTY3NmY0OGMxN2E0NWMzOC4uZGU0MDIzZDdiZjQzMWYxMThlNjM1ZjkxMjRlOWM5
MWEyOTk3OWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTI2ICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gRmxvYXRzIHNob3VsZCByZXNwZWN0IHNoYXBlLWluc2lkZSBvbiBleGNsdXNpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTI2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgb2Zmc2V0
IGFkZGVkIGJ5IHRoZSBzaGFwZSBpbnNpZGUgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0IG9mZnNldHMK
KyAgICAgICAgdXNlZCBmb3IgZmxvYXQgcG9zaXRpb25pbmcuIFRoaXMgbWFrZXMgaXQgc28gdGhh
dCB0aGUgZmxvYXQgd2lsbCBiZQorICAgICAgICBwb3NpdGlvbmVkIGluc2lkZSB0aGUgc2hhcGUg
aW5zdGVhZCBvZiB0aGUgY29udGVudCBib3guCisKKyAgICAgICAgVXBkYXRlZCBhbiBleGlzdGlu
ZyB0ZXN0IGNhc2UgdG8gdGVzdCBmb3IgdGhpcy4KKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmNvbXB1dGVMb2dpY2FsTG9jYXRpb25Gb3JGbG9hdCk6CisKIDIwMTItMTEtMjYgIFJh
ZmFlbCBCcmFuZGFvICA8cmFmYWVsLmxvYm9Ab3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbQ2Fp
cm9dIFN1cmZhY2Ugc2hvdWxkIG5vdCBiZSBkZXN0cm95ZWQgYmVmb3JlIGl0cyB1c2FnZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDUzY2Q1NjM3NTQ3MzU3
Y2ZjOGI1NTg2Y2ZjY2NlM2UyNGViN2JkOS4uNmNmYzhlYTAzMWVmYjI3NDVkMTE4ZDRjYjg5NGY4
ZDVkYTJjN2MwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBA
IC0zODY0LDYgKzM4NjQsMTcgQEAgTGF5b3V0UG9pbnQgUmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dp
Y2FsTG9jYXRpb25Gb3JGbG9hdChjb25zdCBGbG9hdGluZ09iamVjdCogZmwKICAgICBSZW5kZXJC
b3gqIGNoaWxkQm94ID0gZmxvYXRpbmdPYmplY3QtPnJlbmRlcmVyKCk7CiAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsUmlnaHRPZmZzZXQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KGxvZ2lj
YWxUb3BPZmZzZXQpOyAvLyBDb25zdGFudCBwYXJ0IG9mIHJpZ2h0IG9mZnNldC4KICAgICBMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0ID0gbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KGxv
Z2ljYWxUb3BPZmZzZXQpOyAvLyBDb25zdGFudCBwYXJ0IG9mIGxlZnQgb2Zmc2V0LgorI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAvLyBGSVhNRSBCdWcgMTAyOTQ4OiBUaGlzIG9ubHkg
d29ya3MgZm9yIHNoYXBlIG91dHNpZGUgZGlyZWN0bHkgc2V0IG9uIHRoaXMgYmxvY2suCisgICAg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSBleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8oKTsKKyAgICAvLyBGSVhNRSBCdWcgMTAyODQ2OiBUYWtlIGludG8gYWNjb3Vu
dCB0aGUgaGVpZ2h0IG9mIHRoZSBjb250ZW50LiBUaGUgb2Zmc2V0IHNob3VsZCBiZQorICAgIC8v
IGVxdWFsIHRvIHRoZSBtYXhpbXVtIHNlZ21lbnQgbGVuZ3RoLgorICAgIGlmIChzaGFwZUluc2lk
ZUluZm8gJiYgc2hhcGVJbnNpZGVJbmZvLT5oYXNTZWdtZW50cygpKSB7CisgICAgICAgIC8vIEZJ
WE1FIEJ1ZyAxMDI5NDk6IEFkZCBzdXBwb3J0IGZvciBzaGFwZXMgd2l0aCBtdWx0aXBlIHNlZ21l
bnRzLgorICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gc2hhcGVJbnNpZGVJbmZvLT5zZWdt
ZW50cygpWzBdLmxvZ2ljYWxSaWdodCAtIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpOworICAgICAg
ICBsb2dpY2FsTGVmdE9mZnNldCArPSBzaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbExlZnQ7CisgICAgfQorI2VuZGlmCiAgICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0
aCA9IG1pbihsb2dpY2FsV2lkdGhGb3JGbG9hdChmbG9hdGluZ09iamVjdCksIGxvZ2ljYWxSaWdo
dE9mZnNldCAtIGxvZ2ljYWxMZWZ0T2Zmc2V0KTsgLy8gVGhlIHdpZHRoIHdlIGxvb2sgZm9yLgog
CiAgICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxMZWZ0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA3OGNmMjEwODM1YTY4
MDcxZTkyZGZmYTNjZjViNDYyMWMzNGNjY2QuLjc4ZDA3MWZmNzllYjNmMTUyOGFhMzljZWI5YjRi
MzI0ODk4MTc5OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yNiAgQmVtIEpvbmVz
LUJleSAgPGJqb25lc2JlQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEZs
b2F0cyBzaG91bGQgcmVzcGVjdCBzaGFwZS1pbnNpZGUgb24gZXhjbHVzaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkyNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCB0byBwcm9w
ZXJseSB0ZXN0IGZsb2F0cyB3aXRoIHNoYXBlLWluc2lkZS4KKworICAgICAgICAqIGZhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUtZXhwZWN0ZWQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1mbG9hdHMtc2ltcGxlLmh0bWw6CisKIDIwMTItMTEtMjYgIEp1bGllbiBDaGFmZnJhaXggIDxq
Y2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuZGVyQm94Ojpjb21wdXRlUGVyY2Vu
dGFnZUxvZ2ljYWxIZWlnaHQgc2hvdWxkIHVzZSBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JDb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2lt
cGxlLWV4cGVjdGVkLmh0bWwKaW5kZXggZjAzZWJlYzM0NDgxNmNjYzE4OTExMDFhMzZiOTBiMTc2
YjRiNWIyYy4uYjQ3OGEyZjU0NDMxNmVkMTMwMTYxNWRkMjNhMzc1N2ZhNDg5ZDdjMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtZmxvYXRzLXNpbXBsZS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUtZXhwZWN0ZWQu
aHRtbApAQCAtMSwzNiArMSw0MCBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgot
PHN0eWxlPgotICAgIGRpdiB7Ci0gICAgICAgIHdpZHRoOiAyMDBweDsKLSAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXJlY3RhbmdsZS5qcyI+
PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgIC5jb250YWluZXIgeworICAg
ICAgICBmb250OiAxMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKICAgICB9Ci0gICAgI3NoYXBlLWlu
c2lkZSB7Ci0gICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICAuc3BhY2VyIHsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDog
NTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CiAgICAgfQotICAgICNib3Jk
ZXIgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgIHRvcDogOHB4OwotICAg
ICAgICBsZWZ0OiA4cHg7Ci0gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgLnZl
cnRpY2FsLWxyIHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOwog
ICAgIH0KLSAgICAuc3BhY2VyIHsKLSAgICAgICAgd2lkdGg6IDczcHg7Ci0gICAgICAgIGhlaWdo
dDogNzNweDsKLSAgICAgICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CisgICAgLnZlcnRpY2Fs
LXJsIHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwogICAgIH0K
IDwvc3R5bGU+Cis8c2NyaXB0PgorICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHZhciBjb250ZW50ID0gJ1hYWFhYWFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5Y
WFhYWFhYWFhYWFhYWFhcbjxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48
L2Rpdj5cbjxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OmxlZnQiPjwvZGl2PlxuWFhY
WFhcblhYWFhYXG5YWFhYWFxuWFhYWFhcblhYWFhYXG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhY
WFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhY
WFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhYWFhYWFgnOworICAgICAgICBjcmVhdGVSZWN0
YW5nbGVUZXN0UmVzdWx0KCdiYXNlJywgJ3N0eWxlc2hlZXQnLCB7IGhlaWdodDogMjAwLCB3aWR0
aDogMjAwIH0sIHsgeDogMjUsIHk6IDAsIHdpZHRoOiAxNTAsIGhlaWdodDogMTUwIH0sICdweCcs
IGNvbnRlbnQpOworICAgICAgICBjcmVhdGVSZWN0YW5nbGVUZXN0UmVzdWx0KCdybCcsICdzdHls
ZXNoZWV0JywgeyBoZWlnaHQ6IDIwMCwgd2lkdGg6IDIwMCB9LCB7IHg6IDAsIHk6IDI1LCB3aWR0
aDogMTUwLCBoZWlnaHQ6IDE1MCB9LCAncHgnLCBjb250ZW50KTsKKyAgICAgICAgY3JlYXRlUmVj
dGFuZ2xlVGVzdFJlc3VsdCgnbHInLCAnc3R5bGVzaGVldCcsIHsgaGVpZ2h0OiAyMDAsIHdpZHRo
OiAyMDAgfSwgeyB4OiAwLCB5OiAyNSwgd2lkdGg6IDE1MCwgaGVpZ2h0OiAxNTAgfSwgJ3B4Jywg
Y29udGVudCk7CisgICAgfTsKKzwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci0gICAgPGRpdiBp
ZD0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rpdj4KLSAgICAg
ICAgPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0iZmxvYXQ6bGVmdCI+PC9kaXY+Ci0gICAgICAg
IDxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48L2Rpdj4KLSAgICAgICAg
VGhlIGJsdWUgYm94IHNob3VsZCBjb250YWluIGEgZ3JlZW4gc3F1YXJlIGluIGJvdGggdGhlIHVw
cGVyIGxlZnQKLSAgICAgICAgYW5kIHVwcGVyIHJpZ2h0IGNvcm5lcnMuIFRoaXMgdGV4dCBzaG91
bGQgZmxvdyBhcm91bmQgdGhlIGdyZWVuIHNxdWFyZXMsCi0gICAgICAgIGJ1dCB3aXRoaW4gdGhl
IGJsdWUgb3V0bGluZS4KKyAgICA8aDE+VGhlIGZvbGxvd2luZyB0ZXN0cyBzaG91bGQgYWxsIGJl
IGxhcmdlIGJsYWNrIHNxdWFyZXMgdGhhdCBjb250YWluIHR3byBzbWFsbGVyIGdyZWVuIHNxdWFy
ZXMgb24gdGhlIHNhbWUgbGluZS48L2gxPgorICAgIDxoMj5TdGFuZGFyZCBsZWZ0IHJpZ2h0IHdy
aXRpbmcgbW9kZTwvaDI+CisgICAgPGRpdiBpZD0iYmFzZSIgY2xhc3M9ImNvbnRhaW5lciI+CiAg
ICAgPC9kaXY+CisgICAgPGgyPlZlcnRpY2FsIFJpZ2h0IExlZnQgd3JpdGluZyBtb2RlPC9oMj4K
KyAgICA8ZGl2IGlkPSJybCIgY2xhc3M9ImNvbnRhaW5lciB2ZXJ0aWNhbC1ybCI+PC9kaXY+Cisg
ICAgPGgyPlZlcnRpY2FsIExlZnQgUmlnaHQgd3JpdGluZyBtb2RlPC9oMj4KKyAgICA8ZGl2IGlk
PSJsciIgY2xhc3M9ImNvbnRhaW5lciB2ZXJ0aWNhbC1sciI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLmh0bWwKaW5kZXgg
MzQ2OGIzYjBiZDAyZmRkNWVhY2E4NmExYzY4NWQ3OTAyY2MxZTc3Ny4uMzRmNWExM2I1ZDllNmU4
Mjc1NGEyY2Q3MzVkMWU1ODA3NjFkZDMzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LWZsb2F0cy1zaW1wbGUuaHRtbApAQCAtMSw0MSArMSw0MCBAQAogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxoZWFkPgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVl
KTsKLTwvc2NyaXB0PgotPHN0eWxlPgotICAgIGRpdiB7Ci0gICAgICAgIHdpZHRoOiAyMDBweDsK
LSAgICAgICAgaGVpZ2h0OiAyMDBweDsKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxl
LXJlY3RhbmdsZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgIC5j
b250YWluZXIgeworICAgICAgICBmb250OiAxMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKICAgICB9
Ci0gICAgI3NoYXBlLWluc2lkZSB7Ci0gICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKLSAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3Rhbmds
ZSgwLCAwLCAyMDBweCwgMjAwcHgpOworICAgIC5zcGFjZXIgeworICAgICAgICB3aWR0aDogNTBw
eDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKICAgICB9Ci0gICAgI2JvcmRlciB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAg
ICAgICAgdG9wOiA4cHg7Ci0gICAgICAgIGxlZnQ6IDhweDsKLSAgICAgICAgYm9yZGVyOiAycHgg
c29saWQgYmx1ZTsKKyAgICAudmVydGljYWwtbHIgeworICAgICAgICAtd2Via2l0LXdyaXRpbmct
bW9kZTogdmVydGljYWwtbHI7CiAgICAgfQotICAgIC5zcGFjZXIgewotICAgICAgICB3aWR0aDog
NzNweDsKLSAgICAgICAgaGVpZ2h0OiA3M3B4OwotICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBn
cmVlbjsKKyAgICAudmVydGljYWwtcmwgeworICAgICAgICAtd2Via2l0LXdyaXRpbmctbW9kZTog
dmVydGljYWwtcmw7CiAgICAgfQogPC9zdHlsZT4KKzxzY3JpcHQ+CisgICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGNvbnRlbnQgPSAnWFhYWFhYWFhYWFhYWFhY
XG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWFxuPGRpdiBjbGFzcz0ic3BhY2VyIiBz
dHlsZT0iZmxvYXQ6cmlnaHQiPjwvZGl2PlxuPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0iZmxv
YXQ6bGVmdCI+PC9kaXY+XG5YWFhYWFxuWFhYWFhcblhYWFhYXG5YWFhYWFxuWFhYWFhcblhYWFhY
WFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhY
WFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWCc7
CisgICAgICAgIGNyZWF0ZVJlY3RhbmdsZVRlc3QoJ2Jhc2UnLCAnc3R5bGVzaGVldCcsIHsgaGVp
Z2h0OiAyMDAsIHdpZHRoOiAyMDAgfSwgeyB4OiAyNSwgeTogMCwgd2lkdGg6IDE1MCwgaGVpZ2h0
OiAxNTAgfSwgJ3B4JywgY29udGVudCk7CisgICAgICAgIGNyZWF0ZVJlY3RhbmdsZVRlc3QoJ3Js
JywgJ3N0eWxlc2hlZXQnLCB7IGhlaWdodDogMjAwLCB3aWR0aDogMjAwIH0sIHsgeDogMCwgeTog
MjUsIHdpZHRoOiAxNTAsIGhlaWdodDogMTUwIH0sICdweCcsIGNvbnRlbnQpOworICAgICAgICBj
cmVhdGVSZWN0YW5nbGVUZXN0KCdscicsICdzdHlsZXNoZWV0JywgeyBoZWlnaHQ6IDIwMCwgd2lk
dGg6IDIwMCB9LCB7IHg6IDAsIHk6IDI1LCB3aWR0aDogMTUwLCBoZWlnaHQ6IDE1MCB9LCAncHgn
LCBjb250ZW50KTsKKyAgICB9OworPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLSAgICA8ZGl2
IGlkPSJzaGFwZS1pbnNpZGUiPgotICAgICAgICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgotICAg
ICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJmbG9hdDpsZWZ0Ij48L2Rpdj4KLSAgICAg
ICAgPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0iZmxvYXQ6cmlnaHQiPjwvZGl2PgotICAgICAg
ICBUaGUgYmx1ZSBib3ggc2hvdWxkIGNvbnRhaW4gYSBncmVlbiBzcXVhcmUgaW4gYm90aCB0aGUg
dXBwZXIgbGVmdAotICAgICAgICBhbmQgdXBwZXIgcmlnaHQgY29ybmVycy4gVGhpcyB0ZXh0IHNo
b3VsZCBmbG93IGFyb3VuZCB0aGUgZ3JlZW4gc3F1YXJlcywKLSAgICAgICAgYnV0IHdpdGhpbiB0
aGUgYmx1ZSBvdXRsaW5lLgorICAgIDxoMT5UaGUgZm9sbG93aW5nIHRlc3RzIHNob3VsZCBhbGwg
YmUgbGFyZ2UgYmxhY2sgc3F1YXJlcyB0aGF0IGNvbnRhaW4gdHdvIHNtYWxsZXIgZ3JlZW4gc3F1
YXJlcyBvbiB0aGUgc2FtZSBsaW5lLjwvaDE+CisgICAgPGgyPlN0YW5kYXJkIGxlZnQgcmlnaHQg
d3JpdGluZyBtb2RlPC9oMj4KKyAgICA8ZGl2IGlkPSJiYXNlIiBjbGFzcz0iY29udGFpbmVyIj4K
ICAgICA8L2Rpdj4KKyAgICA8aDI+VmVydGljYWwgUmlnaHQgTGVmdCB3cml0aW5nIG1vZGU8L2gy
PgorICAgIDxkaXYgaWQ9InJsIiBjbGFzcz0iY29udGFpbmVyIHZlcnRpY2FsLXJsIj48L2Rpdj4K
KyAgICA8aDI+VmVydGljYWwgTGVmdCBSaWdodCB3cml0aW5nIG1vZGU8L2gyPgorICAgIDxkaXYg
aWQ9ImxyIiBjbGFzcz0iY29udGFpbmVyIHZlcnRpY2FsLWxyIj48L2Rpdj4KIDwvYm9keT4KIDwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179355</attachid>
            <date>2012-12-13 15:36:13 -0800</date>
            <delta_ts>2012-12-17 10:28:34 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>bug-89261-20121213153333.patch</filename>
            <type>text/plain</type>
            <size>9874</size>
            <attacher name="Bem Jones-Bey">bjonesbe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ1MWViMjJkNTA3YmJm
NTcxZTZjYTkwOTIxYzRmMzQwNWI2ZGY4Yy4uYjg1YmY5NGMwYTNjZTY1YWY0NjI4NzkzNWFmN2Jl
YzE4NWMyYTdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTEzICBCZW0g
Sm9uZXMtQmV5ICA8YmpvbmVzYmVAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVzaW9u
c10gRmxvYXRzIHNob3VsZCByZXNwZWN0IHNoYXBlLWluc2lkZSBvbiBleGNsdXNpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTI2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvc2l0aW9uIGZsb2F0
cyBwcm9wZXJseSB3aXRoIHJlc3BlY3QgdG8gYW4gZXhjbHVzaW9uIHNoYXBlLiBOb3RlIHRoYXQK
KyAgICAgICAgdGhpcyB3aWxsIG5vdCBhdHRlbXB0IHRvIHBvc2l0aW9uIGZsb2F0cyBpbiBhIHBv
bHlnb24gdGhhdCBoYXMKKyAgICAgICAgbXVsdGlwbGUgc2VnbWVudHMuIEluIHRoZSBtdWx0aXBs
ZSBzZWdtZW50IGNhc2UsIHRoZSBmbG9hdHMgd2lsbCBiZQorICAgICAgICBwb3NpdGlvbmVkIGFz
IGlmIHRoZSBleGNsdXNpb24gZGlkIG5vdCBleGlzdC4KKworICAgICAgICBVcGRhdGVkIGFuIGV4
aXN0aW5nIHRlc3QgY2FzZSB0byB0ZXN0IGZvciB0aGlzLgorICAgICAgICBUZXN0OiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLmh0bWwKKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6Y29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0KTogQWRqdXN0IHRoZQor
ICAgICAgICByaWdodCBhbmQgbGVmdCBvZmZzZXRzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBy
aWdodCBhbmQgbGVmdCBvZmZzZXQKKyAgICAgICAgY29udHJpYnV0ZWQgYnkgdGhlIGV4Y2x1c2lv
biBzaGFwZS4KKwogMjAxMi0xMi0xMyAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbW92ZSBkZXByZWNhdGVkIEFQSSB1c2FnZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYjRkZDk2OWIwYjc3ZDgy
YjdiN2Q3NmViMjlkOWUyNzkzNDM2ZTA5My4uOTY0ZGY5MGEwYWFiMzExMDg2NzA0ZWEwMjBmZGE4
NTBhOGUwNDk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBA
IC0zODExLDggKzM4MTEsMjMgQEAgdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlRmxvYXRpbmdPYmpl
Y3RzQmVsb3coRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdCwgaW50IGxvZ2kKIExheW91dFBvaW50
IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQoY29uc3QgRmxvYXRp
bmdPYmplY3QqIGZsb2F0aW5nT2JqZWN0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3BPZmZzZXQpIGNv
bnN0CiB7CiAgICAgUmVuZGVyQm94KiBjaGlsZEJveCA9IGZsb2F0aW5nT2JqZWN0LT5yZW5kZXJl
cigpOwotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0ID0gbG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yQ29udGVudChsb2dpY2FsVG9wT2Zmc2V0KTsgLy8gQ29uc3RhbnQgcGFydCBvZiByaWdo
dCBvZmZzZXQuCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldCA9IGxvZ2ljYWxMZWZ0
T2Zmc2V0Rm9yQ29udGVudChsb2dpY2FsVG9wT2Zmc2V0KTsgLy8gQ29uc3RhbnQgcGFydCBvZiBs
ZWZ0IG9mZnNldC4KKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodE9mZnNldDsgLy8gQ29uc3Rh
bnQgcGFydCBvZiByaWdodCBvZmZzZXQuCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAg
IC8vIEZJWE1FIEJ1ZyAxMDI5NDg6IFRoaXMgb25seSB3b3JrcyBmb3Igc2hhcGUgb3V0c2lkZSBk
aXJlY3RseSBzZXQgb24gdGhpcyBibG9jay4KKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IHNoYXBlSW5zaWRlSW5mbyA9IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAgIC8vIEZJ
WE1FIEJ1ZyAxMDI4NDY6IFRha2UgaW50byBhY2NvdW50IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRl
bnQuIFRoZSBvZmZzZXQgc2hvdWxkIGJlCisgICAgLy8gZXF1YWwgdG8gdGhlIG1heGltdW0gc2Vn
bWVudCBsZW5ndGguCisgICAgaWYgKHNoYXBlSW5zaWRlSW5mbyAmJiBzaGFwZUluc2lkZUluZm8t
Pmhhc1NlZ21lbnRzKCkgJiYgc2hhcGVJbnNpZGVJbmZvLT5zZWdtZW50cygpLnNpemUoKSA9PSAx
KSB7CisgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDI5NDk6IEFkZCBzdXBwb3J0IGZvciBzaGFwZXMg
d2l0aCBtdWx0aXBlIHNlZ21lbnRzLgorCisgICAgICAgIC8vIFRoZSBzZWdtZW50IG9mZnNldHMg
YXJlIHJlbGF0aXZlIHRvIHRoZSBjb250ZW50IGJveC4KKyAgICAgICAgbG9naWNhbFJpZ2h0T2Zm
c2V0ID0gbG9naWNhbExlZnRPZmZzZXQgKyBzaGFwZUluc2lkZUluZm8tPnNlZ21lbnRzKClbMF0u
bG9naWNhbFJpZ2h0OworICAgICAgICBsb2dpY2FsTGVmdE9mZnNldCArPSBzaGFwZUluc2lkZUlu
Zm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbExlZnQ7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICAg
ICAgbG9naWNhbFJpZ2h0T2Zmc2V0ID0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChsb2dp
Y2FsVG9wT2Zmc2V0KTsKKwogICAgIExheW91dFVuaXQgZmxvYXRMb2dpY2FsV2lkdGggPSBtaW4o
bG9naWNhbFdpZHRoRm9yRmxvYXQoZmxvYXRpbmdPYmplY3QpLCBsb2dpY2FsUmlnaHRPZmZzZXQg
LSBsb2dpY2FsTGVmdE9mZnNldCk7IC8vIFRoZSB3aWR0aCB3ZSBsb29rIGZvci4KIAogICAgIExh
eW91dFVuaXQgZmxvYXRMb2dpY2FsTGVmdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZmU1ZTY0MTk2NjIwZmUzMmUyOTVm
YzFlZWZjZWRiNTVmOWVhYzVhLi4xNWFiMDE4ODY1ZjJjYzFhYzNlYmEwNDI0MmU2Mzc0MTYzNWE2
NmQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMTMgIEJlbSBKb25lcy1CZXkgIDxi
am9uZXNiZUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBGbG9hdHMgc2hv
dWxkIHJlc3BlY3Qgc2hhcGUtaW5zaWRlIG9uIGV4Y2x1c2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MjYxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3QgdG8gcHJvcGVybHkgdGVz
dCBmbG9hdHMgd2l0aCBzaGFwZS1pbnNpZGUuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLWV4cGVjdGVkLmh0bWw6Cisg
ICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRz
LXNpbXBsZS5odG1sOgorCiAyMDEyLTEyLTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBFeHBvc2UgQVJJQSByb2xlcyBmb3IgdGFiLCB0YWJw
YW5lbCBhbmQgdGFibGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxv
YXRzLXNpbXBsZS1leHBlY3RlZC5odG1sCmluZGV4IGYwM2ViZWMzNDQ4MTZjY2MxODkxMTAxYTM2
YjkwYjE3NmI0YjViMmMuLmI0NzhhMmY1NDQzMTZlZDEzMDE2MTVkZDIzYTM3NTdmYTQ4OWQ3YzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1mbG9hdHMtc2ltcGxlLWV4
cGVjdGVkLmh0bWwKQEAgLTEsMzYgKzEsNDAgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
aGVhZD4KLTxzdHlsZT4KLSAgICBkaXYgewotICAgICAgICB3aWR0aDogMjAwcHg7Ci0gICAgICAg
IGhlaWdodDogMjAwcHg7Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1yZWN0YW5n
bGUuanMiPjwvc2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICAuY29udGFpbmVy
IHsKKyAgICAgICAgZm9udDogMTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CiAgICAgfQotICAgICNz
aGFwZS1pbnNpZGUgewotICAgICAgICBwYWRkaW5nOiAxMHB4OwotICAgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgLnNwYWNlciB7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwogICAgIH0KLSAg
ICAjYm9yZGVyIHsKLSAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAgICB0b3A6IDhw
eDsKLSAgICAgICAgbGVmdDogOHB4OwotICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOwor
ICAgIC52ZXJ0aWNhbC1sciB7CisgICAgICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNh
bC1scjsKICAgICB9Ci0gICAgLnNwYWNlciB7Ci0gICAgICAgIHdpZHRoOiA3M3B4OwotICAgICAg
ICBoZWlnaHQ6IDczcHg7Ci0gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworICAgIC52
ZXJ0aWNhbC1ybCB7CisgICAgICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsK
ICAgICB9CiA8L3N0eWxlPgorPHNjcmlwdD4KKyAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24g
KCkgeworICAgICAgICB2YXIgY29udGVudCA9ICdYWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhY
WFhYWFxuWFhYWFhYWFhYWFhYWFhYXG48ZGl2IGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJmbG9hdDpy
aWdodCI+PC9kaXY+XG48ZGl2IGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJmbG9hdDpsZWZ0Ij48L2Rp
dj5cblhYWFhYXG5YWFhYWFxuWFhYWFhcblhYWFhYXG5YWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5Y
WFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhY
WFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYJzsKKyAgICAgICAgY3Jl
YXRlUmVjdGFuZ2xlVGVzdFJlc3VsdCgnYmFzZScsICdzdHlsZXNoZWV0JywgeyBoZWlnaHQ6IDIw
MCwgd2lkdGg6IDIwMCB9LCB7IHg6IDI1LCB5OiAwLCB3aWR0aDogMTUwLCBoZWlnaHQ6IDE1MCB9
LCAncHgnLCBjb250ZW50KTsKKyAgICAgICAgY3JlYXRlUmVjdGFuZ2xlVGVzdFJlc3VsdCgncmwn
LCAnc3R5bGVzaGVldCcsIHsgaGVpZ2h0OiAyMDAsIHdpZHRoOiAyMDAgfSwgeyB4OiAwLCB5OiAy
NSwgd2lkdGg6IDE1MCwgaGVpZ2h0OiAxNTAgfSwgJ3B4JywgY29udGVudCk7CisgICAgICAgIGNy
ZWF0ZVJlY3RhbmdsZVRlc3RSZXN1bHQoJ2xyJywgJ3N0eWxlc2hlZXQnLCB7IGhlaWdodDogMjAw
LCB3aWR0aDogMjAwIH0sIHsgeDogMCwgeTogMjUsIHdpZHRoOiAxNTAsIGhlaWdodDogMTUwIH0s
ICdweCcsIGNvbnRlbnQpOworICAgIH07Cis8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotICAg
IDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+Ci0gICAgICAgIDxkaXYgaWQ9ImJvcmRlciI+PC9kaXY+
Ci0gICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OmxlZnQiPjwvZGl2Pgot
ICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZXIiIHN0eWxlPSJmbG9hdDpyaWdodCI+PC9kaXY+Ci0g
ICAgICAgIFRoZSBibHVlIGJveCBzaG91bGQgY29udGFpbiBhIGdyZWVuIHNxdWFyZSBpbiBib3Ro
IHRoZSB1cHBlciBsZWZ0Ci0gICAgICAgIGFuZCB1cHBlciByaWdodCBjb3JuZXJzLiBUaGlzIHRl
eHQgc2hvdWxkIGZsb3cgYXJvdW5kIHRoZSBncmVlbiBzcXVhcmVzLAotICAgICAgICBidXQgd2l0
aGluIHRoZSBibHVlIG91dGxpbmUuCisgICAgPGgxPlRoZSBmb2xsb3dpbmcgdGVzdHMgc2hvdWxk
IGFsbCBiZSBsYXJnZSBibGFjayBzcXVhcmVzIHRoYXQgY29udGFpbiB0d28gc21hbGxlciBncmVl
biBzcXVhcmVzIG9uIHRoZSBzYW1lIGxpbmUuPC9oMT4KKyAgICA8aDI+U3RhbmRhcmQgbGVmdCBy
aWdodCB3cml0aW5nIG1vZGU8L2gyPgorICAgIDxkaXYgaWQ9ImJhc2UiIGNsYXNzPSJjb250YWlu
ZXIiPgogICAgIDwvZGl2PgorICAgIDxoMj5WZXJ0aWNhbCBSaWdodCBMZWZ0IHdyaXRpbmcgbW9k
ZTwvaDI+CisgICAgPGRpdiBpZD0icmwiIGNsYXNzPSJjb250YWluZXIgdmVydGljYWwtcmwiPjwv
ZGl2PgorICAgIDxoMj5WZXJ0aWNhbCBMZWZ0IFJpZ2h0IHdyaXRpbmcgbW9kZTwvaDI+CisgICAg
PGRpdiBpZD0ibHIiIGNsYXNzPSJjb250YWluZXIgdmVydGljYWwtbHIiPjwvZGl2PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZmxvYXRzLXNpbXBsZS5odG1s
CmluZGV4IDM0NjhiM2IwYmQwMmZkZDVlYWNhODZhMWM2ODVkNzkwMmNjMWU3NzcuLjM0ZjVhMTNi
NWQ5ZTZlODI3NTRhMmNkNzM1ZDFlNTgwNzYxZGQzMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWZsb2F0cy1zaW1wbGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1mbG9hdHMtc2ltcGxlLmh0bWwKQEAgLTEsNDEgKzEsNDAgQEAKIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJs
ZWQodHJ1ZSk7Ci08L3NjcmlwdD4KLTxzdHlsZT4KLSAgICBkaXYgewotICAgICAgICB3aWR0aDog
MjAwcHg7Ci0gICAgICAgIGhlaWdodDogMjAwcHg7Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3NpbXBsZS1yZWN0YW5nbGUuanMiPjwvc2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4K
KyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgZm9udDogMTBweC8xIEFoZW0sIHNhbnMtc2VyaWY7
CiAgICAgfQotICAgICNzaGFwZS1pbnNpZGUgewotICAgICAgICBwYWRkaW5nOiAxMHB4OwotICAg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBy
ZWN0YW5nbGUoMCwgMCwgMjAwcHgsIDIwMHB4KTsKKyAgICAuc3BhY2VyIHsKKyAgICAgICAgd2lk
dGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogZ3JlZW47CiAgICAgfQotICAgICNib3JkZXIgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgICAgIHRvcDogOHB4OwotICAgICAgICBsZWZ0OiA4cHg7Ci0gICAgICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsdWU7CisgICAgLnZlcnRpY2FsLWxyIHsKKyAgICAgICAgLXdlYmtpdC13
cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOwogICAgIH0KLSAgICAuc3BhY2VyIHsKLSAgICAgICAg
d2lkdGg6IDczcHg7Ci0gICAgICAgIGhlaWdodDogNzNweDsKLSAgICAgICAgYm9yZGVyOiAxcHgg
c29saWQgZ3JlZW47CisgICAgLnZlcnRpY2FsLXJsIHsKKyAgICAgICAgLXdlYmtpdC13cml0aW5n
LW1vZGU6IHZlcnRpY2FsLXJsOwogICAgIH0KIDwvc3R5bGU+Cis8c2NyaXB0PgorICAgIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBjb250ZW50ID0gJ1hYWFhYWFhY
WFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhYWFhYWFhcbjxkaXYgY2xhc3M9InNw
YWNlciIgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48L2Rpdj5cbjxkaXYgY2xhc3M9InNwYWNlciIgc3R5
bGU9ImZsb2F0OmxlZnQiPjwvZGl2PlxuWFhYWFhcblhYWFhYXG5YWFhYWFxuWFhYWFhcblhYWFhY
XG5YWFhYWFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhY
WFhYWFhYWFhYWFhcblhYWFhYWFhYWFhYWFhYWFxuWFhYWFhYWFhYWFhYWFhYXG5YWFhYWFhYWFhY
WFhYWFgnOworICAgICAgICBjcmVhdGVSZWN0YW5nbGVUZXN0KCdiYXNlJywgJ3N0eWxlc2hlZXQn
LCB7IGhlaWdodDogMjAwLCB3aWR0aDogMjAwIH0sIHsgeDogMjUsIHk6IDAsIHdpZHRoOiAxNTAs
IGhlaWdodDogMTUwIH0sICdweCcsIGNvbnRlbnQpOworICAgICAgICBjcmVhdGVSZWN0YW5nbGVU
ZXN0KCdybCcsICdzdHlsZXNoZWV0JywgeyBoZWlnaHQ6IDIwMCwgd2lkdGg6IDIwMCB9LCB7IHg6
IDAsIHk6IDI1LCB3aWR0aDogMTUwLCBoZWlnaHQ6IDE1MCB9LCAncHgnLCBjb250ZW50KTsKKyAg
ICAgICAgY3JlYXRlUmVjdGFuZ2xlVGVzdCgnbHInLCAnc3R5bGVzaGVldCcsIHsgaGVpZ2h0OiAy
MDAsIHdpZHRoOiAyMDAgfSwgeyB4OiAwLCB5OiAyNSwgd2lkdGg6IDE1MCwgaGVpZ2h0OiAxNTAg
fSwgJ3B4JywgY29udGVudCk7CisgICAgfTsKKzwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci0g
ICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KLSAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rp
dj4KLSAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2VyIiBzdHlsZT0iZmxvYXQ6bGVmdCI+PC9kaXY+
Ci0gICAgICAgIDxkaXYgY2xhc3M9InNwYWNlciIgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48L2Rpdj4K
LSAgICAgICAgVGhlIGJsdWUgYm94IHNob3VsZCBjb250YWluIGEgZ3JlZW4gc3F1YXJlIGluIGJv
dGggdGhlIHVwcGVyIGxlZnQKLSAgICAgICAgYW5kIHVwcGVyIHJpZ2h0IGNvcm5lcnMuIFRoaXMg
dGV4dCBzaG91bGQgZmxvdyBhcm91bmQgdGhlIGdyZWVuIHNxdWFyZXMsCi0gICAgICAgIGJ1dCB3
aXRoaW4gdGhlIGJsdWUgb3V0bGluZS4KKyAgICA8aDE+VGhlIGZvbGxvd2luZyB0ZXN0cyBzaG91
bGQgYWxsIGJlIGxhcmdlIGJsYWNrIHNxdWFyZXMgdGhhdCBjb250YWluIHR3byBzbWFsbGVyIGdy
ZWVuIHNxdWFyZXMgb24gdGhlIHNhbWUgbGluZS48L2gxPgorICAgIDxoMj5TdGFuZGFyZCBsZWZ0
IHJpZ2h0IHdyaXRpbmcgbW9kZTwvaDI+CisgICAgPGRpdiBpZD0iYmFzZSIgY2xhc3M9ImNvbnRh
aW5lciI+CiAgICAgPC9kaXY+CisgICAgPGgyPlZlcnRpY2FsIFJpZ2h0IExlZnQgd3JpdGluZyBt
b2RlPC9oMj4KKyAgICA8ZGl2IGlkPSJybCIgY2xhc3M9ImNvbnRhaW5lciB2ZXJ0aWNhbC1ybCI+
PC9kaXY+CisgICAgPGgyPlZlcnRpY2FsIExlZnQgUmlnaHQgd3JpdGluZyBtb2RlPC9oMj4KKyAg
ICA8ZGl2IGlkPSJsciIgY2xhc3M9ImNvbnRhaW5lciB2ZXJ0aWNhbC1sciI+PC9kaXY+CiA8L2Jv
ZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>