<?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>87707</bug_id>
          
          <creation_ts>2012-05-29 01:12:43 -0700</creation_ts>
          <short_desc>&lt;iframe seamless&gt; using display: inline or float, (shrink-wrapping) are too tall</short_desc>
          <delta_ts>2013-02-07 23:37:29 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45950</blocked>
    
    <blocked>90836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mkwst</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>635697</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-29 01:12:43 -0700</bug_when>
    <thetext>&lt;iframe seamless&gt; using display: inline or float, (shrink-wrapping) are too tall

This is causing two layout test failures:
http://trac.webkit.org/browser/trunk/LayoutTests/fast/frames/seamless/seamless-float-expected.txt#L3
http://trac.webkit.org/browser/trunk/LayoutTests/fast/frames/seamless/seamless-inline-expected.txt#L5

This is due to this code:
http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderIFrame.cpp#L166

We set the height to 0, and then ask the child document to layout.  This confuses FrameView, which expects to be at its final size when doing scrollbar negotiation, so it adds a vertical scrollbar during layout, when we ask it then what it&apos;s content height is, that height is assuming there is a vertical scrollbar.

RenderBlock has no problem with this.  scrollbars are handled separately in the RenderLayer layout logic:
http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderLayer.cpp#L2508

However, FrameView (which is a Widget, not a RenderObject, and holds the RenderView -- a RenderBlock subclass and root of the rendering tree) has its own scrollbar logic.

Ideally we&apos;d find a way to skip over the scrollbar logic in FrameView, and have it use RenderBlock&apos;s logic instead.  I&apos;m not exactly sure how that would look though.

Currently seamless piggy-backs on the frame-flattening code which causes the child FrameView to abort layout, and instead lays out from the root:
http://trac.webkit.org/browser/trunk/Source/WebCore/page/FrameView.cpp#L929
http://trac.webkit.org/browser/trunk/Source/WebCore/page/FrameView.cpp#L2926
http://trac.webkit.org/browser/trunk/Source/WebCore/page/FrameView.cpp#L2948

Flattening gets around this by always disabling scrollbars.

However seamless does not (and should not) disable scrollbars, so they will affect layout:
http://trac.webkit.org/browser/trunk/Source/WebCore/page/FrameView.cpp#L1039

I welcome any suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801094</commentid>
    <comment_count>1</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-06 13:00:34 -0800</bug_when>
    <thetext>Grabbing this. I&apos;ll spend some time reading through the relevant code tomorrow, Eric, then I&apos;ll ping you with hopefully intelligent questions. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801096</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-06 13:17:59 -0800</bug_when>
    <thetext>One of the ways we might solve this is by moving away from RenderIframe to a separate renderer, which was just a RenderReplaced and didn&apos;t have any of the Frame/Widget overhead.

It would be tricky, as you&apos;d have to re-invent some of that for this new renderer, and I&apos;m not sure it&apos;s the right soluiton.

But Widgets are really a drag, and a big source of bugs for us.  seamless iframes don&apos;t ever want their OS-provided view abstractions (which is the point of the Widget tree), they always want to be seamlessly part of the document.

I guess one question si what happens when you put a plugin in a seamless iframe.  Since there you would need an OS-provided HWND, etc. to hand to the plugin.

It&apos;s very possible that we can make FrameView smarter here for the seamless case, and let seamless do the scrollbar negotation instead of FrameView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802225</commentid>
    <comment_count>3</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-08 05:48:01 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; It&apos;s very possible that we can make FrameView smarter here for the seamless case, and let seamless do the scrollbar negotation instead of FrameView.

This is the route I&apos;d like to try first. The major distinction between scrollbar negotiation in RenderBlock and FrameView/ScrollView is the first pass. RenderBlock waits until an initial pass of layout is finished before applying scrollbars to the content. FrameView sets vertical scrollbars to AlwaysOn in the first pass. One approach would be to simply special-case this first pass to avoid auto-application of scrollbars if the document that&apos;s being laid out is a) seamless, and b) has 0 height.

I have a patch which implements these checks that I&apos;ll upload in a moment, but I&apos;ll honestly be shocked if it&apos;s acceptable. :)

Eric, Ojan: I&apos;ll poke at one of you next time I see you on IRC to talk about where we go from here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802228</commentid>
    <comment_count>4</comment_count>
      <attachid>181687</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-08 06:19:12 -0800</bug_when>
    <thetext>Created attachment 181687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802249</commentid>
    <comment_count>5</comment_count>
      <attachid>181687</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-08 08:03:22 -0800</bug_when>
    <thetext>Comment on attachment 181687
Patch

Attachment 181687 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15771061

New failing tests:
fast/frames/seamless/seamless-inline.html
fast/frames/seamless/seamless-float.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802285</commentid>
    <comment_count>6</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-08 08:56:50 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 181687 [details])
&gt; Attachment 181687 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/15771061
&gt; 
&gt; New failing tests:
&gt; fast/frames/seamless/seamless-inline.html
&gt; fast/frames/seamless/seamless-float.html

Mac apparently doesn&apos;t use updateScrollbars, branching into platformSetScrollbarModes instead[1]. Not sure if I can do anything there... :(

[1]: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/ScrollView.cpp?rev=139063#L154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802365</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-08 10:45:49 -0800</bug_when>
    <thetext>Hyatt would be the person to ask.  You might try to catch him on #webkit.  Both for review, and suggestion as to what one might do on Mac.  This patch seems reasonable to me, but again, Hyatt is the only person I&apos;ve seen in the scrollbar code in years. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803239</commentid>
    <comment_count>8</comment_count>
      <attachid>181899</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-09 05:02:24 -0800</bug_when>
    <thetext>Created attachment 181899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803243</commentid>
    <comment_count>9</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-09 05:08:51 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hyatt would be the person to ask.  You might try to catch him on #webkit.  Both for review, and suggestion as to what one might do on Mac.  This patch seems reasonable to me, but again, Hyatt is the only person I&apos;ve seen in the scrollbar code in years. :(

I didn&apos;t see Hyatt on IRC last night, but I didn&apos;t stay up very late. I&apos;ll try again tonight.

In the meantime, I&apos;ve expanded the patch slightly, adding a similar check to ScrollView::setContentsSize in order to bypass the platform-specific scrollbar-setting code completely on the first layout pass for seamless documents.

This feels even hackier than the initial patch, but it works locally, which is a step in the right direction. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803528</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-09 11:34:22 -0800</bug_when>
    <thetext>Hyatt is in central time and tends to be on in the early afternoon PST.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803531</commentid>
    <comment_count>11</comment_count>
      <attachid>181899</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-09 11:35:52 -0800</bug_when>
    <thetext>Comment on attachment 181899
Patch

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

&gt; Source/WebCore/platform/ScrollView.cpp:310
&gt; +    if (isSeamlessDocument() &amp;&amp; !fullVisibleSize.height())
&gt; +        return;

Do we know if any badness can happen if we early-return here?  I don&apos;t know what those later calls do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803538</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-09 11:39:57 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 181899 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181899&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollView.cpp:310
&gt; &gt; +    if (isSeamlessDocument() &amp;&amp; !fullVisibleSize.height())
&gt; &gt; +        return;
&gt; 
&gt; Do we know if any badness can happen if we early-return here?  I don&apos;t know what those later calls do.

We do not! I&apos;m fairly confident that nothing terrible happens (I mean, otherwise a test would break, right? :P ), but I wouldn&apos;t be at all surprised to find that there are subtleties here that I&apos;m completely missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803546</commentid>
    <comment_count>13</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-09 11:48:39 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 181899 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181899&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ScrollView.cpp:310
&gt; &gt; &gt; +    if (isSeamlessDocument() &amp;&amp; !fullVisibleSize.height())
&gt; &gt; &gt; +        return;
&gt; &gt; 
&gt; &gt; Do we know if any badness can happen if we early-return here?  I don&apos;t know what those later calls do.
&gt; 
&gt; We do not! I&apos;m fairly confident that nothing terrible happens (I mean, otherwise a test would break, right? :P ), but I wouldn&apos;t be at all surprised to find that there are subtleties here that I&apos;m completely missing.

Also note that not knowing what that platform-specific call does is why I&apos;m skipping the branch entirely. Otherwise I&apos;d have dug in a bit deeper to find a smaller fix, similar to what this patch contains for ScrollView::updateScrollbars. The scrollbar code, so far as I can tell, is just headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806480</commentid>
    <comment_count>14</comment_count>
      <attachid>181899</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-01-14 11:12:59 -0800</bug_when>
    <thetext>Comment on attachment 181899
Patch

I would take a different approach here and just turn the vertical scrollbar off if you&apos;re seamless (as though scrolling=no was set on the frame).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806491</commentid>
    <comment_count>15</comment_count>
      <attachid>181899</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-01-14 11:42:27 -0800</bug_when>
    <thetext>Comment on attachment 181899
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:1169
&gt; -                    if (vMode == ScrollbarAuto)
&gt; +                    if (vMode == ScrollbarAuto &amp;&amp; !isSeamlessDocument())
&gt;                          setVerticalScrollbarMode(ScrollbarAlwaysOn); // This causes a vertical scrollbar to appear.

To clarify, I would do the opposite here:

if (vMode == ScrollbarAuto)
    setVerticalScrollbarMode(!isSeamlessDocument() ? ScrollbarAlwaysOn : ScrollbarAlwaysOff);

Basically we should default to assuming that a scrollbar is not desired from a seamless document.

Not convinced any of the ScrollView changes will be necessary if you turn the scrollbar off on first layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814175</commentid>
    <comment_count>16</comment_count>
      <attachid>184225</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-23 07:17:26 -0800</bug_when>
    <thetext>Created attachment 184225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814179</commentid>
    <comment_count>17</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-23 07:21:44 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 181899 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181899&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:1169
&gt; &gt; -                    if (vMode == ScrollbarAuto)
&gt; &gt; +                    if (vMode == ScrollbarAuto &amp;&amp; !isSeamlessDocument())
&gt; &gt;                          setVerticalScrollbarMode(ScrollbarAlwaysOn); // This causes a vertical scrollbar to appear.
&gt; 
&gt; To clarify, I would do the opposite here:
&gt; 
&gt; if (vMode == ScrollbarAuto)
&gt;     setVerticalScrollbarMode(!isSeamlessDocument() ? ScrollbarAlwaysOn : ScrollbarAlwaysOff);
&gt; 
&gt; Basically we should default to assuming that a scrollbar is not desired from a seamless document.
&gt; 
&gt; Not convinced any of the ScrollView changes will be necessary if you turn the scrollbar off on first layout.

Thanks for the feedback.

This wasn&apos;t enough on its own; in fact, it looks like the first pass of layout is irrelevant. The height doesn&apos;t change until the second pass. I&apos;d love to tell you that I understand exactly why: I don&apos;t.

The current patch addresses the problem by moving the special-casing into FrameView::calculateScrollbarModesForLayout. If that method would set the vertical mode to ScrollbarAuto, it now checks whether the document is a) seamless, and b) has a full visible height of 0. In that case, it sets the vertical mode to ScrollbarAlwaysOff.

This takes care of the initial passes of layout where the height is 0, and seems to do the right thing in later passes, once the height has been set to the contentHeight of the framed document.

Assuming that the bots are happy, would you mind taking another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817627</commentid>
    <comment_count>18</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 02:06:56 -0800</bug_when>
    <thetext>*** Bug 90836 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822409</commentid>
    <comment_count>19</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-01 00:05:03 -0800</bug_when>
    <thetext>Friendly ping, dhyatt. Would you mind taking a look at this patch?

(In reply to comment #17)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 181899 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=181899&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/FrameView.cpp:1169
&gt; &gt; &gt; -                    if (vMode == ScrollbarAuto)
&gt; &gt; &gt; +                    if (vMode == ScrollbarAuto &amp;&amp; !isSeamlessDocument())
&gt; &gt; &gt;                          setVerticalScrollbarMode(ScrollbarAlwaysOn); // This causes a vertical scrollbar to appear.
&gt; &gt; 
&gt; &gt; To clarify, I would do the opposite here:
&gt; &gt; 
&gt; &gt; if (vMode == ScrollbarAuto)
&gt; &gt;     setVerticalScrollbarMode(!isSeamlessDocument() ? ScrollbarAlwaysOn : ScrollbarAlwaysOff);
&gt; &gt; 
&gt; &gt; Basically we should default to assuming that a scrollbar is not desired from a seamless document.
&gt; &gt; 
&gt; &gt; Not convinced any of the ScrollView changes will be necessary if you turn the scrollbar off on first layout.
&gt; 
&gt; Thanks for the feedback.
&gt; 
&gt; This wasn&apos;t enough on its own; in fact, it looks like the first pass of layout is irrelevant. The height doesn&apos;t change until the second pass. I&apos;d love to tell you that I understand exactly why: I don&apos;t.
&gt; 
&gt; The current patch addresses the problem by moving the special-casing into FrameView::calculateScrollbarModesForLayout. If that method would set the vertical mode to ScrollbarAuto, it now checks whether the document is a) seamless, and b) has a full visible height of 0. In that case, it sets the vertical mode to ScrollbarAlwaysOff.
&gt; 
&gt; This takes care of the initial passes of layout where the height is 0, and seems to do the right thing in later passes, once the height has been set to the contentHeight of the framed document.
&gt; 
&gt; Assuming that the bots are happy, would you mind taking another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828217</commentid>
    <comment_count>20</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-07 23:07:13 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Friendly ping, dhyatt. Would you mind taking a look at this patch?

Looks like dhyatt is pretty busy. Eric, Ojan, would you mind taking a stab at reviewing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828219</commentid>
    <comment_count>21</comment_count>
      <attachid>184225</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-07 23:08:44 -0800</bug_when>
    <thetext>Comment on attachment 184225
Patch

This looks totally reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828233</commentid>
    <comment_count>22</comment_count>
      <attachid>184225</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 23:37:24 -0800</bug_when>
    <thetext>Comment on attachment 184225
Patch

Clearing flags on attachment: 184225

Committed r142236: &lt;http://trac.webkit.org/changeset/142236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828234</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 23:37:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181687</attachid>
            <date>2013-01-08 06:19:12 -0800</date>
            <delta_ts>2013-01-09 05:02:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87707-20130108151616.patch</filename>
            <type>text/plain</type>
            <size>8346</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNhZWI1YzU2NDEzM2Rk
ZDJmMWFiOTc5NmNhNTliYzc0ZmNjMGI3Ny4uOTdiZGUwOWY3M2IyMDE2OThjM2UxNjk5NTY1Njhk
NTAwZGVjYjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAxLTA4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGlmcmFtZSBzZWFtbGVzcz4g
dXNpbmcgZGlzcGxheTogaW5saW5lIG9yIGZsb2F0LCAoc2hyaW5rLXdyYXBwaW5nKSBhcmUgdG9v
IHRhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3
NzA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Vh
bWxlc3MgZG9jdW1lbnRzIGN1cnJlbnRseSByZW5kZXIgaW5jb3JyZWN0bHkgd2hlbiB0aGVpciBj
b250ZW50IGZpbGxzCisgICAgICAgIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIGludG8gd2hp
Y2ggdGhleSdyZSBwbGFjZWQuIEJlY2F1c2UgRnJhbWVWaWV3CisgICAgICAgIGFzc3VtZXMgdGhh
dCB0aGUgY29udGFpbmVyJ3Mgc2l6ZSBpcyBwcm9wZXJseSBzZXQgYmVmb3JlIHRoZSBmaXJzdCBw
YXNzCisgICAgICAgIG9mIGxheW91dCwgdmVydGljYWwgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0
bHkgZm9yY2VkIG9udG8gc2VhbWxlc3MKKyAgICAgICAgY29udGVudCwgYmVjYXVzZSBzZWFtbGVz
cyBzZXRzIHRoZSBjb250YWluZXIncyBoZWlnaHQgdG8gMCBiZWZvcmUKKyAgICAgICAgaGFuZGlu
ZyBpdCBvZmYgdG8gRnJhbWVWaWV3IGZvciBsYXlvdXQuIFRoZSBzY3JvbGxiYXJzIG1ha2UgdGhl
CisgICAgICAgIGF2YWlsYWJsZSB3aWR0aCBmb3IgdGhlIHNlYW1sZXNzIGRvY3VtZW50IH4xNXB4
IHNtYWxsZXIgdGhhbiBpdCBzaG91bGQKKyAgICAgICAgYmUsIHJlc3VsdGluZyBpbiBjb250ZW50
IGdldHRpbmcgYnVtcGVkIHRvIHRoZSBuZXh0IGxpbmUuCisKKyAgICAgICAgVGhlIHJlbGV2YW50
IGRpc3RpbmN0aW9uIGJldHdlZW4gc2Nyb2xsYmFyIG5lZ290aWF0aW9uIGluIFJlbmRlckJsb2Nr
CisgICAgICAgIGFuZCBGcmFtZVZpZXcvU2Nyb2xsVmlldyBpcyB0aGF0IFJlbmRlckJsb2NrIHdh
aXRzIHVudGlsIGFmdGVyIHRoZSBmaXJzdAorICAgICAgICBwYXNzIG9mIGxheW91dCBiZWZvcmUg
YXBwbHlpbmcgc2Nyb2xsYmFycyB0byB0aGUgY29udGVudC4gVGhpcyBwYXRjaAorICAgICAgICBz
cGVjaWFsLWNhc2VzIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMgdG8gZG8gbW9yZSBvciBs
ZXNzIHRoZSBzYW1lLAorICAgICAgICBhdm9pZGluZyB0aGUgZm9yY2VkIHNjcm9sbGJhcnMgb24g
dGhlIGZpcnN0IHBhc3Mgb2YgbGF5b3V0IHdoZW4gdGhlCisgICAgICAgIGRvY3VtZW50IGJlaW5n
IHJlbmRlcmVkIGlzIGEpIHNlYW1sZXNzLCBhbmQgYikgaGFzIGEgZnVsbCB2aXNpYmxlIGhlaWdo
dAorICAgICAgICBvZiAwLgorCisgICAgICAgIFRoZSBjaGFuZ2Ugc2hvdWxkIGJlIGNvdmVyZWQg
YnkgcmViYXNlbGluZXMgZm9yIHRoZSBuZXdseS1wYXNzaW5nCisgICAgICAgIHJlc3VsdHMgaW4g
ZmFzdC9mcmFtZS9zZWFtbGVzcy17ZmxvYXQsaW5saW5lfS5odG1sCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmlzU2VhbWxlc3NE
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorICAgICAgICAoRnJhbWVWaWV3KToKKyAgICAgICAgICAgIE92ZXJyaWRlcyBTY3JvbGxWaWV3
J3MgbmV3IGlzU2VhbWxlc3NEb2N1bWVudCBtZXRob2QgdG8gZXhwb3NlIHRoZQorICAgICAgICAg
ICAgZnJhbWUncyBkb2N1bWVudCdzIHNlYW1sZXNzIHN0YXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyk6CisgICAgICAgICAgICBJZiB3ZSdyZSByZW5kZXJpbmcgYSBzZWFtbGVzcyBkb2N1
bWVudCwgYW5kIHRoZSBmdWxsIHZpc2libGUgaGVpZ2h0CisgICAgICAgICAgICBpcyAwLCB0aGVu
IGRvbid0IGZvcmNlIGEgdmVydGljYWwgc2Nyb2xsYmFyLgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDoKKyAgICAgICAgKFNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6aXNTZWFtbGVzc0RvY3VtZW50KToKKyAgICAgICAgICAgIEEgbmV3IG1ldGhvZCwg
b3ZlcnJpZGRlbiBieSBGcmFtZVZpZXcgaW4gb3JkZXIgdG8gYWxsb3cgdXMgdG8gbWFrZQorICAg
ICAgICAgICAgcmVhc29uYWJsZSBkZWNpc2lvbnMgaW4gU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xs
YmFycy4KKwogMjAxMy0wMS0wOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxMzkwMzYpOiAnV2ViQ29yZTo6RGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudDo6aXNJblJhbmdlJyBoaWRlcyBvdmVybG9hZGVkIHZpcnR1YWwgZnVu
Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBhMjcyODMzNTI2YTU2YjViYWZi
YzM5NzhiMTUyNzk4NDUwMjM4ZmYwLi5lNzRmNWI4YzVhYTE4NzE3NGZlYmQ3YjJkNDIwMGNiMTI2
M2E0Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zODExLDYgKzM4MTEsMTMg
QEAgYm9vbCBGcmFtZVZpZXc6OmlzRmxpcHBlZERvY3VtZW50KCkgY29uc3QKICAgICByZXR1cm4g
cm9vdC0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKTsKIH0KIAorYm9vbCBG
cmFtZVZpZXc6OmlzU2VhbWxlc3NEb2N1bWVudCgpIGNvbnN0Cit7CisgICAgaWYgKGZyYW1lKCkg
JiYgZnJhbWUoKS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lKCktPmRvY3VtZW50
KCktPnNob3VsZERpc3BsYXlTZWFtbGVzc2x5V2l0aFBhcmVudCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogdm9pZCBGcmFtZVZpZXc6Om5vdGlmeVdpZGdldHNJbkFsbEZyYW1lcyhXaWRnZXRO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9m
cmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KG1f
ZnJhbWUuZ2V0KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjYWZjZGJiYTI5OWU3
ODZhYzFkZTA3OTdlYmE4OTdiMjdlZjM3ODJhLi4xY2YxNmFjNmY3ZmNjZGFlODY2MzcyYTNmNTBi
YjAzYWM5OGU2MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTM4Nyw2ICszODcsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWZXJ0aWNhbERvY3VtZW50KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGlzRmxpcHBlZERvY3VtZW50KCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzU2VhbWxlc3NEb2N1bWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEZyYW1lVmlldyhGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAppbmRleCA4MmEwZGFiNGIzNzhhZWY4ZjlkZjc4YzBhMTU2MGY0Zjg3NDg3N2E5Li5iMzI1
ZjBlMGI4YWY5MjIwZmJhZWYzMGFjNjBkODcxNDZiOGIxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTExLDYgKzUxMSwxMCBAQCB2b2lkIFNjcm9sbFZpZXc6
OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgSW50U2l6ZSYgZGVzaXJlZE9mZnNldCkKICAgICAgICAg
ICAgIG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gZG9jU2l6ZS5oZWlnaHQoKSA+IHZpc2libGVI
ZWlnaHQoKTsKICAgICAgICAgICAgIGlmIChuZXdIYXNWZXJ0aWNhbFNjcm9sbGJhciAmJiAhbV91
cGRhdGVTY3JvbGxiYXJzUGFzcyAmJiBkb2NTaXplLndpZHRoKCkgPD0gZnVsbFZpc2libGVTaXpl
LndpZHRoKCkgJiYgZG9jU2l6ZS5oZWlnaHQoKSA8PSBmdWxsVmlzaWJsZVNpemUuaGVpZ2h0KCkp
CiAgICAgICAgICAgICAgICAgbmV3SGFzVmVydGljYWxTY3JvbGxiYXIgPSBmYWxzZTsKKyAgICAg
ICAgICAgIC8vIFNlYW1sZXNzIGRvY3VtZW50cyBiZWdpbiB3aXRoIGEgaGVpZ2h0cyBvZiAwOyB3
ZSBzcGVjaWFsIGNhc2UgdGhhdCBoZXJlIGluIG9yZGVyIHRvCisgICAgICAgICAgICAvLyBjb3Jy
ZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0IGFjdHVhbGx5IG5lZWQgc2Nyb2xsYmFy
cy4KKyAgICAgICAgICAgIGlmIChuZXdIYXNWZXJ0aWNhbFNjcm9sbGJhciAmJiBpc1NlYW1sZXNz
RG9jdW1lbnQoKSAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgpKQorICAgICAgICAgICAgICAg
IG5ld0hhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBJZiB3ZSBldmVyIHR1cm4gb25lIHNjcm9sbGJhciBvZmYsIGFsd2F5cyB0dXJuIHRoZSBvdGhl
ciBvbmUgb2ZmIHRvby4gIE5ldmVyIGV2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aAppbmRleCA1ZGRiNjhiMTE1NWQzNTRjNWZlMzg5ZGNiNGM5MDA3MGM0MTgzNDYwLi5jMDU4YmVm
ZGUxNWZjYTkyNzY0ZGRkYzEyZDUyODI5ZTc0OTgwODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCkBAIC0zMTMsNiArMzEzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzRmxpcHBlZERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAor
ICAgIC8vIFN1YmNsYXNzZWQgYnkgRnJhbWVWaWV3IHRvIGNoZWNrIHRoZSBzZWFtbGVzc25lc3Mg
b2YgdGhlIGRvY3VtZW50LgorICAgIHZpcnR1YWwgYm9vbCBpc1NlYW1sZXNzRG9jdW1lbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgLy8gQ2FsbGVkIHRvIHVwZGF0ZSB0aGUgc2Ny
b2xsYmFycyB0byBhY2N1cmF0ZWx5IHJlZmxlY3QgdGhlIHN0YXRlIG9mIHRoZSB2aWV3LgogICAg
IHZvaWQgdXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDZjZGNhMjRiNjZmMGNjYjlkNGQ0M2ZjZDAzZDFmNWUwMDc1MDIwMzUuLmVmZmQ5ZGQ4
NmFkNWNjZjU3YjA2NGQyY2VmOWVlMWQwOGRlNzY2MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMy0wMS0wOCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxp
ZnJhbWUgc2VhbWxlc3M+IHVzaW5nIGRpc3BsYXk6IGlubGluZSBvciBmbG9hdCwgKHNocmluay13
cmFwcGluZykgYXJlIHRvbyB0YWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NzcwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZmxvYXQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWlubGluZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICAgICBSZWJhc2VsaW5lIHRoZSBub3ctcGFzc2luZyBiaXRz
IG9mIHRoZXNlIHRlc3RzLgorCiAyMDEzLTAxLTA4ICBZdWtpIFNla2lndWNoaSAgPHl1a2kuc2Vr
aWd1Y2hpQGFjY2Vzcy1jb21wYW55LmNvbT4KIAogICAgICAgICBGbG9hdCBibG9jaydzIGxvZ2lj
YWwgdG9wIG1hcmdpbiBpcyBpbGxlZ2FsIGluIHZlcnRpY2FsIHdyaXRpbmcgbW9kZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWZsb2F0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWZs
b2F0LWV4cGVjdGVkLnR4dAppbmRleCA0MzgxZTNiMDQ2NDgwODBjNGQzNjk4YmIxZWQxYTE5NDRl
ODAxZjEzLi5kNzg4NWJkNzc5N2RhZTQ1ODQ5ZGViNjdkZjUyMjc2MzZlYmY3YWVlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1mbG9hdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3Mt
ZmxvYXQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGVzdCB0aGF0IGZsb2F0ZWQgc2Vh
bWxlc3MgaWZyYW1lcyAnc2hyaW5rLXdyYXAnIHRoZWlyIGNvbnRlbnRzLCBhcyBmbG9hdGVkIGRp
dnMgd291bGQuCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTEpLndpZHRoIGlz
ICIxNTBweCIKLUZBSUwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMSkuaGVpZ2h0IHNo
b3VsZCBiZSA1MHB4LiBXYXMgMTAwcHguCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlm
cmFtZTEpLmhlaWdodCBpcyAiNTBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZy
YW1lMikud2lkdGggaXMgIjEwMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJh
bWUyKS5oZWlnaHQgaXMgIjEwMHB4IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA2
OTBmYmVkNTlkNTc1NzVjZjBmYTZjYzNmYWJjZWVkZDk2MDI4NmZkLi5jNzZlOGU1MzBmMzczMmQz
ZGU5MDRmN2UzMmQwMTBhMmEwMGZhY2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWlubGluZS1leHBlY3RlZC50eHQKQEAg
LTIsOCArMiw4IEBAIFRlc3QgdGhhdCBpbmxpbmUgc2VhbWxlc3MgaWZyYW1lcyAnc2hyaW5rLXdy
YXAnIHRoZWlyIGNvbnRlbnRzIGxpa2UgaW5saW5lLWJsb2NrCiBQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGlmcmFtZTEpLmRpc3BsYXkgaXMgImlubGluZS1ibG9jayIKIFBBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMikuZGlzcGxheSBpcyAiaW5saW5lLWJsb2NrIgogUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUxKS53aWR0aCBpcyAiMTUwcHgiCi1GQUlM
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTEpLmhlaWdodCBzaG91bGQgYmUgNTBweC4g
V2FzIDEwMHB4LgotRkFJTCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQxKS5oZWlnaHQg
c2hvdWxkIGJlIDUwcHguIFdhcyAxMDBweC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
aWZyYW1lMSkuaGVpZ2h0IGlzICI1MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShw
YXJlbnQxKS5oZWlnaHQgaXMgIjUwcHgiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlm
cmFtZTIpLndpZHRoIGlzICIxMDBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZy
YW1lMikuaGVpZ2h0IGlzICIxMDBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFy
ZW50MikuaGVpZ2h0IGlzICIxNTBweCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181899</attachid>
            <date>2013-01-09 05:02:24 -0800</date>
            <delta_ts>2013-01-23 07:17:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87707-20130109135926.patch</filename>
            <type>text/plain</type>
            <size>10272</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU2MDAxNmVmZTU5Nzg4
NzdhMmM4NGQwNDZjNmZmZGQzZTZkZGNhOC4uYTg0NDY2Yzk5OTZjYmIyNjNkMTM0MGE0YWNiZjIw
OTRiOGM1Nzg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEzLTAxLTA4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGlmcmFtZSBzZWFtbGVzcz4g
dXNpbmcgZGlzcGxheTogaW5saW5lIG9yIGZsb2F0LCAoc2hyaW5rLXdyYXBwaW5nKSBhcmUgdG9v
IHRhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3
NzA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Vh
bWxlc3MgZG9jdW1lbnRzIGN1cnJlbnRseSByZW5kZXIgaW5jb3JyZWN0bHkgd2hlbiB0aGVpciBj
b250ZW50IGZpbGxzCisgICAgICAgIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIGludG8gd2hp
Y2ggdGhleSdyZSBwbGFjZWQuIEJlY2F1c2UgRnJhbWVWaWV3CisgICAgICAgIGFzc3VtZXMgdGhh
dCB0aGUgY29udGFpbmVyJ3Mgc2l6ZSBpcyBwcm9wZXJseSBzZXQgYmVmb3JlIHRoZSBmaXJzdCBw
YXNzCisgICAgICAgIG9mIGxheW91dCwgdmVydGljYWwgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0
bHkgZm9yY2VkIG9udG8gc2VhbWxlc3MKKyAgICAgICAgY29udGVudCwgYmVjYXVzZSBzZWFtbGVz
cyBzZXRzIHRoZSBjb250YWluZXIncyBoZWlnaHQgdG8gMCBiZWZvcmUKKyAgICAgICAgaGFuZGlu
ZyBpdCBvZmYgdG8gRnJhbWVWaWV3IGZvciBsYXlvdXQuIFRoZSBzY3JvbGxiYXJzIG1ha2UgdGhl
CisgICAgICAgIGF2YWlsYWJsZSB3aWR0aCBmb3IgdGhlIHNlYW1sZXNzIGRvY3VtZW50IH4xNXB4
IHNtYWxsZXIgdGhhbiBpdCBzaG91bGQKKyAgICAgICAgYmUsIHJlc3VsdGluZyBpbiBjb250ZW50
IGdldHRpbmcgYnVtcGVkIHRvIHRoZSBuZXh0IGxpbmUuCisKKyAgICAgICAgVGhlIHJlbGV2YW50
IGRpc3RpbmN0aW9uIGJldHdlZW4gc2Nyb2xsYmFyIG5lZ290aWF0aW9uIGluIFJlbmRlckJsb2Nr
CisgICAgICAgIGFuZCBGcmFtZVZpZXcvU2Nyb2xsVmlldyBpcyB0aGF0IFJlbmRlckJsb2NrIHdh
aXRzIHVudGlsIGFmdGVyIHRoZSBmaXJzdAorICAgICAgICBwYXNzIG9mIGxheW91dCBiZWZvcmUg
YXBwbHlpbmcgc2Nyb2xsYmFycyB0byB0aGUgY29udGVudC4gVGhpcyBwYXRjaAorICAgICAgICBz
cGVjaWFsLWNhc2VzIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMgdG8gZG8gbW9yZSBvciBs
ZXNzIHRoZSBzYW1lLAorICAgICAgICBhdm9pZGluZyB0aGUgZm9yY2VkIHNjcm9sbGJhcnMgb24g
dGhlIGZpcnN0IHBhc3Mgb2YgbGF5b3V0IHdoZW4gdGhlCisgICAgICAgIGRvY3VtZW50IGJlaW5n
IHJlbmRlcmVkIGlzIGEpIHNlYW1sZXNzLCBhbmQgYikgaGFzIGEgZnVsbCB2aXNpYmxlIGhlaWdo
dAorICAgICAgICBvZiAwLgorCisgICAgICAgIFRoZSBjaGFuZ2Ugc2hvdWxkIGJlIGNvdmVyZWQg
YnkgcmViYXNlbGluZXMgZm9yIHRoZSBuZXdseS1wYXNzaW5nCisgICAgICAgIHJlc3VsdHMgaW4g
ZmFzdC9mcmFtZS9zZWFtbGVzcy17ZmxvYXQsaW5saW5lfS5odG1sCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheW91dCk6Cisg
ICAgICAgICAgICBJZiB3ZSdyZSByZW5kZXJpbmcgYSBzZWFtbGVzcyBkb2N1bWVudCwgZG9uJ3Qg
Zm9yY2UgdmVydGljYWwKKyAgICAgICAgICAgIHNjcm9sbGJhcnMgb24gdGhlIGluaXRpYWwgbGF5
b3V0LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppc1NlYW1sZXNzRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAg
KEZyYW1lVmlldyk6CisgICAgICAgICAgICBPdmVycmlkZXMgU2Nyb2xsVmlldydzIG5ldyBpc1Nl
YW1sZXNzRG9jdW1lbnQgbWV0aG9kIHRvIGV4cG9zZSB0aGUKKyAgICAgICAgICAgIGZyYW1lJ3Mg
ZG9jdW1lbnQncyBzZWFtbGVzcyBzdGF0ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgor
ICAgICAgICAgICAgSWYgd2UncmUgcmVuZGVyaW5nIGEgc2VhbWxlc3MgZG9jdW1lbnQsIGFuZCB0
aGUgZnVsbCB2aXNpYmxlIGhlaWdodAorICAgICAgICAgICAgaXMgMCwgdGhlbiBkb24ndCBmb3Jj
ZSBhIHZlcnRpY2FsIHNjcm9sbGJhci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNl
dENvbnRlbnRzU2l6ZSk6CisgICAgICAgICAgICBJZiB3ZSdyZSByZW5kZXJpbmcgYSBzZWFtbGVz
cyBkb2N1bWVudCwgYW5kIHRoZSBmdWxsIHZpc2libGUgaGVpZ2h0CisgICAgICAgICAgICBpcyAw
LCB0aGVuIGRvbid0IGNhbGwgb3V0IHRvIHVwZGF0ZSBzY3JvbGxiYXJzLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKFNjcm9sbFZpZXcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6aXNTZWFtbGVzc0RvY3VtZW50KToKKyAgICAgICAgICAgIEEgbmV3
IG1ldGhvZCwgb3ZlcnJpZGRlbiBieSBGcmFtZVZpZXcgaW4gb3JkZXIgdG8gYWxsb3cgdXMgdG8g
bWFrZQorICAgICAgICAgICAgcmVhc29uYWJsZSBkZWNpc2lvbnMgaW4gU2Nyb2xsVmlldzo6dXBk
YXRlU2Nyb2xsYmFycy4KKwogMjAxMy0wMS0wOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hA
YXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBuYXRpdmUgcG9wdXAgYnV0dG9ucyBzaG91bGQgbm90
IHVzZSB0ZXh0VW5kZXJFbGVtZW50IGZvciB0aGVpciB0aXRsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCmluZGV4IGEyNzI4MzM1MjZhNTZiNWJhZmJjMzk3OGIxNTI3OTg0NTAyMzhmZjAuLjBh
NjU2NzY0YjIzYWU3NzFhZGU2NGZmMzlhMDhlMDNiZGE4ZTYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTU1Niw3ICs1NTYsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVu
dHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICBTY3JvbGxWaWV3OjpzZXRDb250ZW50
c1NpemUoc2l6ZSk7CiAgICAgU2Nyb2xsVmlldzo6Y29udGVudHNSZXNpemVkKCk7Ci0gICAgCisK
ICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm47CkBAIC0xMTY1LDEyICsxMTY1LDExIEBAIHZvaWQgRnJh
bWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAgICAgICAgIG1f
bGFzdFpvb21GYWN0b3IgPSByb290LT5zdHlsZSgpLT56b29tKCk7CiAKICAgICAgICAgICAgICAg
ICAgICAgLy8gU2V0IHRoZSBpbml0aWFsIHZNb2RlIHRvIEFsd2F5c09uIGlmIHdlJ3JlIGF1dG8u
Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2TW9kZSA9PSBTY3JvbGxiYXJBdXRvKQorICAgICAg
ICAgICAgICAgICAgICBpZiAodk1vZGUgPT0gU2Nyb2xsYmFyQXV0byAmJiAhaXNTZWFtbGVzc0Rv
Y3VtZW50KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWZXJ0aWNhbFNjcm9sbGJhck1v
ZGUoU2Nyb2xsYmFyQWx3YXlzT24pOyAvLyBUaGlzIGNhdXNlcyBhIHZlcnRpY2FsIHNjcm9sbGJh
ciB0byBhcHBlYXIuCiAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgaW5pdGlhbCBoTW9k
ZSB0byBBbHdheXNPZmYgaWYgd2UncmUgYXV0by4KICAgICAgICAgICAgICAgICAgICAgaWYgKGhN
b2RlID09IFNjcm9sbGJhckF1dG8pCiAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIb3Jpem9u
dGFsU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJBbHdheXNPZmYpOyAvLyBUaGlzIGNhdXNlcyBhIGhv
cml6b250YWwgc2Nyb2xsYmFyIHRvIGRpc2FwcGVhci4KLQogICAgICAgICAgICAgICAgICAgICBz
ZXRTY3JvbGxiYXJNb2RlcyhoTW9kZSwgdk1vZGUpOwogICAgICAgICAgICAgICAgICAgICBzZXRT
Y3JvbGxiYXJzU3VwcHJlc3NlZChmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfSBlbHNl
CkBAIC0zODExLDYgKzM4MTAsMTMgQEAgYm9vbCBGcmFtZVZpZXc6OmlzRmxpcHBlZERvY3VtZW50
KCkgY29uc3QKICAgICByZXR1cm4gcm9vdC0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGlu
Z01vZGUoKTsKIH0KIAorYm9vbCBGcmFtZVZpZXc6OmlzU2VhbWxlc3NEb2N1bWVudCgpIGNvbnN0
Cit7CisgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZyYW1lKCktPmRvY3VtZW50KCktPnNob3VsZERpc3BsYXlTZWFtbGVzc2x5V2l0aFBhcmVu
dCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBGcmFtZVZpZXc6Om5vdGlmeVdpZGdl
dHNJbkFsbEZyYW1lcyhXaWRnZXROb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gbV9mcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS0+dHJhdmVyc2VOZXh0KG1fZnJhbWUuZ2V0KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCBjYWZjZGJiYTI5OWU3ODZhYzFkZTA3OTdlYmE4OTdiMjdlZjM3ODJhLi4xY2YxNmFj
NmY3ZmNjZGFlODY2MzcyYTNmNTBiYjAzYWM5OGU2MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTM4Nyw2ICszODcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNW
ZXJ0aWNhbERvY3VtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRmxpcHBlZERvY3Vt
ZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2VhbWxlc3NEb2N1bWVudCgpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEZyYW1lVmlldyhGcmFtZSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA4MmEwZGFiNGIzNzhhZWY4ZjlkZjc4YzBh
MTU2MGY0Zjg3NDg3N2E5Li5iYjA4MjllMGE5Y2FkMjU1NDRlMGZjMzRiMWVjYjk5NTIyZmU5OWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtMzAyLDYgKzMwMiwx
MyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBuZXdT
aXplKQogICAgIGlmIChjb250ZW50c1NpemUoKSA9PSBuZXdTaXplKQogICAgICAgICByZXR1cm47
CiAgICAgbV9jb250ZW50c1NpemUgPSBuZXdTaXplOworCisgICAgLy8gU2VhbWxlc3MgZG9jdW1l
bnRzIGJlZ2luIHdpdGggYSBoZWlnaHRzIG9mIDA7IHdlIHNwZWNpYWwgY2FzZSB0aGF0IGhlcmUg
aW4gb3JkZXIgdG8KKyAgICAvLyBjb3JyZWN0bHkgcmVuZGVyIGRvY3VtZW50cyB0aGF0IGRvbid0
IGFjdHVhbGx5IG5lZWQgc2Nyb2xsYmFycy4KKyAgICBJbnRTaXplIGZ1bGxWaXNpYmxlU2l6ZSA9
IHZpc2libGVDb250ZW50UmVjdCh0cnVlIC8qaW5jbHVkZVNjcm9sbGJhcnMqLykuc2l6ZSgpOwor
ICAgIGlmIChpc1NlYW1sZXNzRG9jdW1lbnQoKSAmJiAhZnVsbFZpc2libGVTaXplLmhlaWdodCgp
KQorICAgICAgICByZXR1cm47CisKICAgICBpZiAocGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAg
cGxhdGZvcm1TZXRDb250ZW50c1NpemUoKTsKICAgICBlbHNlCkBAIC01MTEsNiArNTE4LDEwIEBA
IHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVk
T2Zmc2V0KQogICAgICAgICAgICAgbmV3SGFzVmVydGljYWxTY3JvbGxiYXIgPSBkb2NTaXplLmhl
aWdodCgpID4gdmlzaWJsZUhlaWdodCgpOwogICAgICAgICAgICAgaWYgKG5ld0hhc1ZlcnRpY2Fs
U2Nyb2xsYmFyICYmICFtX3VwZGF0ZVNjcm9sbGJhcnNQYXNzICYmIGRvY1NpemUud2lkdGgoKSA8
PSBmdWxsVmlzaWJsZVNpemUud2lkdGgoKSAmJiBkb2NTaXplLmhlaWdodCgpIDw9IGZ1bGxWaXNp
YmxlU2l6ZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBuZXdIYXNWZXJ0aWNhbFNjcm9sbGJh
ciA9IGZhbHNlOworICAgICAgICAgICAgLy8gU2VhbWxlc3MgZG9jdW1lbnRzIGJlZ2luIHdpdGgg
YSBoZWlnaHRzIG9mIDA7IHdlIHNwZWNpYWwgY2FzZSB0aGF0IGhlcmUgaW4gb3JkZXIgdG8KKyAg
ICAgICAgICAgIC8vIGNvcnJlY3RseSByZW5kZXIgZG9jdW1lbnRzIHRoYXQgZG9uJ3QgYWN0dWFs
bHkgbmVlZCBzY3JvbGxiYXJzLgorICAgICAgICAgICAgaWYgKG5ld0hhc1ZlcnRpY2FsU2Nyb2xs
YmFyICYmIGlzU2VhbWxlc3NEb2N1bWVudCgpICYmICFmdWxsVmlzaWJsZVNpemUuaGVpZ2h0KCkp
CisgICAgICAgICAgICAgICAgbmV3SGFzVmVydGljYWxTY3JvbGxiYXIgPSBmYWxzZTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIElmIHdlIGV2ZXIgdHVybiBvbmUgc2Nyb2xsYmFyIG9mZiwgYWx3
YXlzIHR1cm4gdGhlIG90aGVyIG9uZSBvZmYgdG9vLiAgTmV2ZXIgZXZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IGUwNDNmNmU5Zjc0ODNkYzQxYzQ4NWJjMWQ1ZjFhMDU0
MDg2NGM3NDYuLmFjZjlhZTVhMzY2YjE5OTE5NTI1NzhhYTRkNDBkZTk1ZjgxNTU5MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTMxMyw2ICszMTMsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzVmVydGljYWxEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGbGlwcGVkRG9jdW1lbnQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgLy8gU3ViY2xhc3NlZCBieSBGcmFtZVZpZXcgdG8gY2hlY2sg
dGhlIHNlYW1sZXNzbmVzcyBvZiB0aGUgZG9jdW1lbnQuCisgICAgdmlydHVhbCBib29sIGlzU2Vh
bWxlc3NEb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICAvLyBDYWxsZWQg
dG8gdXBkYXRlIHRoZSBzY3JvbGxiYXJzIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB0aGUgc3RhdGUg
b2YgdGhlIHZpZXcuCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRl
c2lyZWRPZmZzZXQpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIwZTVlYTU4MWIyMDMwZTU5NTk3ZjY4MTUzODJmODZi
NTQxMGY0ZS4uMTM3ZTRkZTcxMDc5ZDEzYWQ3OWQwZTc3ZWEzOTQwN2RkODk0YTlmMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTA4ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgPGlmcmFtZSBzZWFtbGVzcz4gdXNpbmcgZGlzcGxheTogaW5saW5lIG9y
IGZsb2F0LCAoc2hyaW5rLXdyYXBwaW5nKSBhcmUgdG9vIHRhbGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzA3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFt
bGVzcy1mbG9hdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mv
c2VhbWxlc3MtaW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgICAgIFJlYmFzZWxpbmUgdGhl
IG5vdy1wYXNzaW5nIGJpdHMgb2YgdGhlc2UgdGVzdHMuCisKIDIwMTMtMDEtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGEgY3Jhc2hpbmcgdGVzdCBl
eHBlY3RhdGlvbiB0byBhIHRlc3QgYWRkZWQgaW4gcjEzOTAyOS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWZsb2F0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWZsb2F0LWV4cGVjdGVk
LnR4dAppbmRleCA0MzgxZTNiMDQ2NDgwODBjNGQzNjk4YmIxZWQxYTE5NDRlODAxZjEzLi5kNzg4
NWJkNzc5N2RhZTQ1ODQ5ZGViNjdkZjUyMjc2MzZlYmY3YWVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1mbG9hdC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZmxvYXQtZXhwZWN0
ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogVGVzdCB0aGF0IGZsb2F0ZWQgc2VhbWxlc3MgaWZyYW1l
cyAnc2hyaW5rLXdyYXAnIHRoZWlyIGNvbnRlbnRzLCBhcyBmbG9hdGVkIGRpdnMgd291bGQuCiBQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTEpLndpZHRoIGlzICIxNTBweCIKLUZB
SUwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMSkuaGVpZ2h0IHNob3VsZCBiZSA1MHB4
LiBXYXMgMTAwcHguCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTEpLmhlaWdo
dCBpcyAiNTBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMikud2lkdGgg
aXMgIjEwMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUyKS5oZWlnaHQg
aXMgIjEwMHB4IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVz
cy9zZWFtbGVzcy1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
c2VhbWxlc3Mvc2VhbWxlc3MtaW5saW5lLWV4cGVjdGVkLnR4dAppbmRleCA2OTBmYmVkNTlkNTc1
NzVjZjBmYTZjYzNmYWJjZWVkZDk2MDI4NmZkLi5jNzZlOGU1MzBmMzczMmQzZGU5MDRmN2UzMmQw
MTBhMmEwMGZhY2Q1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVz
cy9zZWFtbGVzcy1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NlYW1sZXNzL3NlYW1sZXNzLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw4IEBA
IFRlc3QgdGhhdCBpbmxpbmUgc2VhbWxlc3MgaWZyYW1lcyAnc2hyaW5rLXdyYXAnIHRoZWlyIGNv
bnRlbnRzIGxpa2UgaW5saW5lLWJsb2NrCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlm
cmFtZTEpLmRpc3BsYXkgaXMgImlubGluZS1ibG9jayIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoaWZyYW1lMikuZGlzcGxheSBpcyAiaW5saW5lLWJsb2NrIgogUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShpZnJhbWUxKS53aWR0aCBpcyAiMTUwcHgiCi1GQUlMIHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGlmcmFtZTEpLmhlaWdodCBzaG91bGQgYmUgNTBweC4gV2FzIDEwMHB4Lgot
RkFJTCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQxKS5oZWlnaHQgc2hvdWxkIGJlIDUw
cHguIFdhcyAxMDBweC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMSkuaGVp
Z2h0IGlzICI1MHB4IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQxKS5oZWln
aHQgaXMgIjUwcHgiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTIpLndpZHRo
IGlzICIxMDBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMikuaGVpZ2h0
IGlzICIxMDBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50MikuaGVpZ2h0
IGlzICIxNTBweCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184225</attachid>
            <date>2013-01-23 07:17:26 -0800</date>
            <delta_ts>2013-02-07 23:37:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87707-20130123161419.patch</filename>
            <type>text/plain</type>
            <size>5714</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTEwOThmZWZlMTFmMmVj
NjFiOWVjMzQxNTIzMzlhMDRhM2MyNjRhNy4uOWJjMTBlMjZjMWE0MjAwN2UyMTMwNDk1OTFmNzk5
NzQ4MGE5MTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAxLTIzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGlmcmFtZSBzZWFtbGVzcz4g
c2hvdWxkIGF2b2lkIHZlcnRpY2FsIHNjcm9sbGJhcnMgZHVyaW5nIHRoZSBpbml0aWFsIGxheW91
dCBwYXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzcwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNlYW1sZXNzIGRvY3VtZW50cyBjdXJyZW50bHkgcmVuZGVyIGluY29ycmVjdGx5IHdoZW4gdGhl
aXIgY29udGVudCBmaWxscworICAgICAgICB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbnRv
IHdoaWNoIHRoZXkncmUgcGxhY2VkLiBCZWNhdXNlIEZyYW1lVmlldworICAgICAgICBhc3N1bWVz
IHRoYXQgdGhlIGNvbnRhaW5lcidzIHNpemUgaXMgcHJvcGVybHkgc2V0IGJlZm9yZSB0aGUgZmly
c3QgcGFzcworICAgICAgICBvZiBsYXlvdXQsIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXJlIGluY29y
cmVjdGx5IGZvcmNlZCBvbnRvIHNlYW1sZXNzCisgICAgICAgIGNvbnRlbnQsIGJlY2F1c2Ugc2Vh
bWxlc3Mgc2V0cyB0aGUgY29udGFpbmVyJ3MgaGVpZ2h0IHRvIDAgYmVmb3JlCisgICAgICAgIGhh
bmRpbmcgaXQgb2ZmIHRvIEZyYW1lVmlldyBmb3IgbGF5b3V0LiBUaGUgc2Nyb2xsYmFycyBtYWtl
IHRoZQorICAgICAgICBhdmFpbGFibGUgd2lkdGggZm9yIHRoZSBzZWFtbGVzcyBkb2N1bWVudCB+
MTVweCBzbWFsbGVyIHRoYW4gaXQgc2hvdWxkCisgICAgICAgIGJlLCByZXN1bHRpbmcgaW4gY29u
dGVudCBnZXR0aW5nIGJ1bXBlZCB0byB0aGUgbmV4dCBsaW5lLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggc3BlY2lhbC1jYXNlcyBGcmFtZVZpZXc6OmNhbGN1bGF0ZVNjcm9sbGJhck1vZGVzRm9yTGF5
b3V0IGluCisgICAgICAgIG9yZGVyIHRvIGZvcmNlIHNjcm9sbGJhcnMgb2ZmIGZvciBzZWFtbGVz
cyBkb2N1bWVudHMgd2l0aCBhIGZ1bGwgdmlzaWJsZQorICAgICAgICBoZWlnaHQgb2YgMHB4LiBP
bmNlIHRoZSBsYXlvdXQgcGFzcyBoYXMgZ3JhYmJlZCB0aGUgY29udGVudCBoZWlnaHQgYW5kCisg
ICAgICAgIGFwcGxpZWQgaXQgdG8gdGhlIHZpc2libGUgaGVpZ2h0LCBzY3JvbGxiYXJzIHdpbGwg
YWdhaW4gYmUgYXBwbGljYWJsZS4KKworICAgICAgICBUaGUgY2hhbmdlIHNob3VsZCBiZSBjb3Zl
cmVkIGJ5IHJlYmFzZWxpbmVzIGZvciB0aGUgbmV3bHktcGFzc2luZworICAgICAgICByZXN1bHRz
IGluIGZhc3QvZnJhbWUvc2VhbWxlc3Mte2Zsb2F0LGlubGluZX0uaHRtbAorCisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpjYWxjdWxh
dGVTY3JvbGxiYXJNb2Rlc0ZvckxheW91dCk6CisgICAgICAgICAgICBJZiB3ZSdyZSByZW5kZXJp
bmcgYSBzZWFtbGVzcyBkb2N1bWVudCwgYW5kIHRoZSBmdWxsIHZpc2libGUgaGVpZ2h0CisgICAg
ICAgICAgICBpcyAwLCBhbmQgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciB3b3VsZCBvdGhlcndpc2Ug
YmUgU2Nyb2xsYmFyQXV0bywKKyAgICAgICAgICAgIHRoZW4gZm9yY2UgU2Nyb2xsYmFyQWx3YXlz
T2ZmLgorCiAyMDEzLTAxLTIzICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBbUmVmYWN0b3JpbmddIFJlbW92ZSBlbGVtZW50UGFyZW50U3R5bGUgZnJvbSBT
ZWxlY3RvckNoZWNrZXJDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDE4
OWZmMTE1MTEyOGIxMGY2ZjVhMzk3N2Q4ZGUwNzBkYzBjY2JlNy4uNmIyOTM2ZTdjOTVmMmNiYWJh
YzVlMGJkOGFhMDAzYjY1YzFmNDcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NjkxLDcgKzY5MSwxMSBAQCB2b2lkIEZyYW1lVmlldzo6Y2FsY3VsYXRlU2Nyb2xsYmFyTW9kZXNG
b3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9sbGJhcgogICAgIAogICAgIGlmICht
X2NhbkhhdmVTY3JvbGxiYXJzIHx8IHN0cmF0ZWd5ID09IFJ1bGVzRnJvbVdlYkNvbnRlbnRPbmx5
KSB7CiAgICAgICAgIGhNb2RlID0gU2Nyb2xsYmFyQXV0bzsKLSAgICAgICAgdk1vZGUgPSBTY3Jv
bGxiYXJBdXRvOworICAgICAgICAvLyBTZWFtbGVzcyBkb2N1bWVudHMgYmVnaW4gd2l0aCBoZWln
aHRzIG9mIDA7IHdlIHNwZWNpYWwgY2FzZSB0aGF0IGhlcmUKKyAgICAgICAgLy8gdG8gY29ycmVj
dGx5IHJlbmRlciBkb2N1bWVudHMgdGhhdCBkb24ndCBuZWVkIHNjcm9sbGJhcnMuCisgICAgICAg
IEludFNpemUgZnVsbFZpc2libGVTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyppbmNs
dWRlU2Nyb2xsYmFycyovKS5zaXplKCk7CisgICAgICAgIGJvb2wgaXNTZWFtbGVzc0RvY3VtZW50
ID0gZnJhbWUoKSAmJiBmcmFtZSgpLT5kb2N1bWVudCgpICYmIGZyYW1lKCktPmRvY3VtZW50KCkt
PnNob3VsZERpc3BsYXlTZWFtbGVzc2x5V2l0aFBhcmVudCgpOworICAgICAgICB2TW9kZSA9IChp
c1NlYW1sZXNzRG9jdW1lbnQgJiYgIWZ1bGxWaXNpYmxlU2l6ZS5oZWlnaHQoKSkgPyBTY3JvbGxi
YXJBbHdheXNPZmYgOiBTY3JvbGxiYXJBdXRvOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGhNb2Rl
ID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOwogICAgICAgICB2TW9kZSA9IFNjcm9sbGJhckFsd2F5c09m
ZjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxOGU3MWFkZTBmMjExMGZkYTAzNjhjNWYxMWU4YzViOWFmMzJiMjlkLi5hOTll
NjMyOWYxMjBkZDJlZmI0NTI0ZjIwMmEwYTQyNjliYzIyMjA3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDEtMjMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAg
ICA8aWZyYW1lIHNlYW1sZXNzPiBzaG91bGQgYXZvaWQgdmVydGljYWwgc2Nyb2xsYmFycyBkdXJp
bmcgdGhlIGluaXRpYWwgbGF5b3V0IHBhc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NzA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1mbG9h
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3Mt
aW5saW5lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgICAgIFJlYmFzZWxpbmUgdGhlIG5vdy1wYXNz
aW5nIGJpdHMgb2YgdGhlc2UgdGVzdHMuCisKIDIwMTMtMDEtMjMgIFlvc2hpZnVtaSBJbm91ZSAg
PHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxMzkwNDQpOiBQYW4g
aWNvbiByZW1haW5zIG9uIHNjcmVlbiBvbiBDaHJvbWl1bS1XaW5YUApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZmxvYXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtZmxvYXQtZXhwZWN0
ZWQudHh0CmluZGV4IDQzODFlM2IwNDY0ODA4MGM0ZDM2OThiYjFlZDFhMTk0NGU4MDFmMTMuLmQ3
ODg1YmQ3Nzk3ZGFlNDU4NDlkZWI2N2RmNTIyNzYzNmViZjdhZWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1sZXNzL3NlYW1sZXNzLWZsb2F0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zZWFtbGVzcy9zZWFtbGVzcy1mbG9hdC1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiBUZXN0IHRoYXQgZmxvYXRlZCBzZWFtbGVzcyBpZnJh
bWVzICdzaHJpbmstd3JhcCcgdGhlaXIgY29udGVudHMsIGFzIGZsb2F0ZWQgZGl2cyB3b3VsZC4K
IFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMSkud2lkdGggaXMgIjE1MHB4Igot
RkFJTCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUxKS5oZWlnaHQgc2hvdWxkIGJlIDUw
cHguIFdhcyAxMDBweC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMSkuaGVp
Z2h0IGlzICI1MHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUyKS53aWR0
aCBpcyAiMTAwcHgiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGlmcmFtZTIpLmhlaWdo
dCBpcyAiMTAwcHgiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1s
ZXNzL3NlYW1sZXNzLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9zZWFtbGVzcy9zZWFtbGVzcy1pbmxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDY5MGZiZWQ1OWQ1
NzU3NWNmMGZhNmNjM2ZhYmNlZWRkOTYwMjg2ZmQuLmM3NmU4ZTUzMGYzNzMyZDNkZTkwNGY3ZTMy
ZDAxMGEyYTAwZmFjZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NlYW1s
ZXNzL3NlYW1sZXNzLWlubGluZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvc2VhbWxlc3Mvc2VhbWxlc3MtaW5saW5lLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDgg
QEAgVGVzdCB0aGF0IGlubGluZSBzZWFtbGVzcyBpZnJhbWVzICdzaHJpbmstd3JhcCcgdGhlaXIg
Y29udGVudHMgbGlrZSBpbmxpbmUtYmxvY2sKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
aWZyYW1lMSkuZGlzcGxheSBpcyAiaW5saW5lLWJsb2NrIgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShpZnJhbWUyKS5kaXNwbGF5IGlzICJpbmxpbmUtYmxvY2siCiBQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGlmcmFtZTEpLndpZHRoIGlzICIxNTBweCIKLUZBSUwgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoaWZyYW1lMSkuaGVpZ2h0IHNob3VsZCBiZSA1MHB4LiBXYXMgMTAwcHgu
Ci1GQUlMIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudDEpLmhlaWdodCBzaG91bGQgYmUg
NTBweC4gV2FzIDEwMHB4LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUxKS5o
ZWlnaHQgaXMgIjUwcHgiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudDEpLmhl
aWdodCBpcyAiNTBweCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lMikud2lk
dGggaXMgIjEwMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpZnJhbWUyKS5oZWln
aHQgaXMgIjEwMHB4IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQyKS5oZWln
aHQgaXMgIjE1MHB4Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>