<?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>82337</bug_id>
          
          <creation_ts>2012-03-27 07:29:59 -0700</creation_ts>
          <short_desc>[Qt] Add desktop zooming support for QQuickWebView</short_desc>
          <delta_ts>2012-04-23 07:56:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>abecsi</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>588864</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-27 07:29:59 -0700</bug_when>
    <thetext>Currently there is no way for zooming the view in desktop mode (for mobile there is pinch zoom).
It&apos;s a question for me whether we should implement this for mobile as well but desktop mode definitely needs an API for zoom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588882</commentid>
    <comment_count>1</comment_count>
      <attachid>134062</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-27 07:48:58 -0700</bug_when>
    <thetext>Created attachment 134062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588884</commentid>
    <comment_count>2</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-27 07:51:16 -0700</bug_when>
    <thetext>Only implemented for desktop mode. I&apos;m looking forward for comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589984</commentid>
    <comment_count>3</comment_count>
      <attachid>134302</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-28 08:25:44 -0700</bug_when>
    <thetext>Created attachment 134302
Patch

Removed the js file as a var property is enought.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589998</commentid>
    <comment_count>4</comment_count>
      <attachid>134302</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-28 08:57:18 -0700</bug_when>
    <thetext>Comment on attachment 134302
Patch

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

We might need to support this API for the mobile version as well, which we could hook up with the pinch zoom scaling inside QQuickWebPage. Not sure programmatical scaling makes sense in that case though.
The patch looks good, just a few comments.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:514
&gt; +void QQuickWebViewLegacyPrivate::setZoomFactor(qreal factor)
&gt; +{
&gt; +    Q_Q(QQuickWebView);

The q pointer looks like a left-over, and is not used in this function.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:973
&gt; +void QQuickWebViewExperimental::setZoomFactor(qreal zoomFactor)
&gt; +{
&gt; +    Q_Q(QQuickWebView);

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590993</commentid>
    <comment_count>5</comment_count>
      <attachid>134535</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 02:54:22 -0700</bug_when>
    <thetext>Created attachment 134535
Patch

Fixed review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591054</commentid>
    <comment_count>6</comment_count>
      <attachid>134535</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-29 05:03:12 -0700</bug_when>
    <thetext>Comment on attachment 134535
Patch

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

LGTM now.
Simon, Kenneth, could you review?

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Support zooming with for desktop mode.

Something is not right with the english here. This should probably be something line &quot;zooming in desktop mode&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591064</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 05:07:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 134535 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134535&amp;action=review
&gt; 
&gt; LGTM now.
&gt; Simon, Kenneth, could you review?
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Support zooming with for desktop mode.
&gt; 
&gt; Something is not right with the english here. This should probably be something line &quot;zooming in desktop mode&quot;.

Sure, I will fix it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591162</commentid>
    <comment_count>8</comment_count>
      <attachid>134535</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-03-29 07:23:49 -0700</bug_when>
    <thetext>Comment on attachment 134535
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:256
&gt; +    Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)

By making this part of &quot;experimental&quot; I wonder: How confident are we that this &quot;experiment&quot; is going to succeed, i.e. that we&apos;ll move this from experimental to public API?

Perhaps this should just remain private C++ API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591349</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 11:19:20 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 134535 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134535&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:256
&gt; &gt; +    Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)
&gt; 
&gt; By making this part of &quot;experimental&quot; I wonder: How confident are we that this &quot;experiment&quot; is going to succeed, i.e. that we&apos;ll move this from experimental to public API?
&gt; 
&gt; Perhaps this should just remain private C++ API?

Well, than everybody who wants a webview on desktop with zooming support have to use private C++ API? It&apos;s quite basic feature, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591350</commentid>
    <comment_count>10</comment_count>
      <attachid>134535</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 11:20:34 -0700</bug_when>
    <thetext>Comment on attachment 134535
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:974
&gt; +    d_ptr-&gt;setZoomFactor(zoomFactor);
&gt; +    emit zoomFactorChanged();
&gt; +}

Forgot to check if the value differs from the current, going to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591352</commentid>
    <comment_count>11</comment_count>
      <attachid>134622</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 11:22:14 -0700</bug_when>
    <thetext>Created attachment 134622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591354</commentid>
    <comment_count>12</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 11:24:14 -0700</bug_when>
    <thetext>The problem with this API is that it doesn&apos;t fit well with mobile. Even if we want to add a way for programatic zooming for mobile it won&apos;t be the same thing because the fixed layout only allows scaling which is not the traditional behavior of zoom. I&apos;m going to upload a WIP patch (based on the first) where I implemented it that way, so you can see how it looks like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591358</commentid>
    <comment_count>13</comment_count>
      <attachid>134624</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-03-29 11:26:02 -0700</bug_when>
    <thetext>Created attachment 134624
WIP patch - zoom in touch mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599101</commentid>
    <comment_count>14</comment_count>
      <attachid>134622</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-10 02:05:01 -0700</bug_when>
    <thetext>Comment on attachment 134622
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        Support zooming in desktop mode. The API has no effect
&gt; +        in touch mode.

There is no such thing as touch mode... though we have a preferred mode (non-legacy) which supports touch interaction

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:256
&gt; +    Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged)

Does changing this, modify the -webkit-pixel-ratio ? Should it? it probably should.

Keeping that in mind, it probably makes a lot more sense not to use this and instead just increase the pixel ratio. Then the zoom levels should be calculated from the actual device pixel ratio. This would work the exactly same way, and work with the viewport meta tag.

&gt; Tools/MiniBrowser/qt/qml/BrowserWindow.qml:300
&gt; +        function nextZoomLevel() {

weird method name, it doesnt return the next zoom level, but actually increases the zoom level value. Why not make it do what exactly it says?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599108</commentid>
    <comment_count>15</comment_count>
      <attachid>134622</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-10 02:27:27 -0700</bug_when>
    <thetext>Comment on attachment 134622
Patch

that&apos;s enough for an r- now. going to investigate in the device pixel ratio approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601142</commentid>
    <comment_count>16</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-12 06:01:34 -0700</bug_when>
    <thetext>I have tried to implement a consistent behavior on mobile but I was not really successful with that. I have problems with applying the zoom factor together with the scaling that comes from user interaction and with centering the view (sometimes an offset is applying to the view with an animation which mess up my logic). Definitely I would have to get a better understanding of these things before I could finish, but I&apos;m going to postpone it for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603961</commentid>
    <comment_count>17</comment_count>
      <attachid>137522</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-17 06:01:22 -0700</bug_when>
    <thetext>Created attachment 137522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603985</commentid>
    <comment_count>18</comment_count>
      <attachid>137522</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-04-17 06:42:15 -0700</bug_when>
    <thetext>Comment on attachment 137522
Patch

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

Much better. Some comments, before you update to ToT.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:575
&gt; +    // This is used by programatic zooming.
&gt; +    if (m_contentSizeUpdateDisabled)
&gt; +        return;
&gt; +

I think this is not needed, and if it is, this is definetely the wrong place for this, since if the user adds other items to the Flickable in QML (search bar), then he will bind the contentWidth and contentHeight to the summarized size of the page and the additional item in QML. In this case this here has no effect, since JavaScript will resize the content automatically.
I believe, this is not needed, since the resizing here has no effect on the position, if you guard your scaling properly in the interaction engine.

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:582
&gt; +    }
&gt; +
&gt; +    ensureContentWithinViewportBoundary(/* immediate */ true);

I think this could cause asserts in QtViewportInteractionEngine::ensureContentWithinViewportBoundary since you put the guard inside its own block.
ensureContentWithinViewportBoundary expects the content being suspended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604003</commentid>
    <comment_count>19</comment_count>
      <attachid>137532</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-17 07:22:02 -0700</bug_when>
    <thetext>Created attachment 137532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604006</commentid>
    <comment_count>20</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-17 07:26:45 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 137522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137522&amp;action=review
&gt; 
&gt; Much better. Some comments, before you update to ToT.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:575
&gt; &gt; +    // This is used by programatic zooming.
&gt; &gt; +    if (m_contentSizeUpdateDisabled)
&gt; &gt; +        return;
&gt; &gt; +
&gt; 
&gt; I think this is not needed, and if it is, this is definetely the wrong place for this, since if the user adds other items to the Flickable in QML (search bar), then he will bind the contentWidth and contentHeight to the summarized size of the page and the additional item in QML. In this case this here has no effect, since JavaScript will resize the content automatically.
&gt; I believe, this is not needed, since the resizing here has no effect on the position, if you guard your scaling properly in the interaction engine.

Right, seems like I don&apos;t need it. I guess I created this before I added a call to ensureContentWithinViewportBoundary but the latter solved my issues.
Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:582
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    ensureContentWithinViewportBoundary(/* immediate */ true);
&gt; 
&gt; I think this could cause asserts in QtViewportInteractionEngine::ensureContentWithinViewportBoundary since you put the guard inside its own block.
&gt; ensureContentWithinViewportBoundary expects the content being suspended.

Yep, it was a silly idea.
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604022</commentid>
    <comment_count>21</comment_count>
      <attachid>137532</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-04-17 08:09:10 -0700</bug_when>
    <thetext>Comment on attachment 137532
Patch

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

LGTM. Just a last nitpick I realized now:

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:581
&gt; +    QPointF oldContentCenter = m_content-&gt;boundingRect().center();
&gt; +    m_content-&gt;setContentsScale(itemScaleFromCSS(targetCSSScale));
&gt; +    QPointF newContentCenter = m_content-&gt;boundingRect().center();
&gt; +    m_viewport-&gt;setContentPos(m_viewport-&gt;contentPos() + (newContentCenter - oldContentCenter));

I think instead of this you could call scaleContent(m_viewport-&gt;mapToWebContent(m_viewport-&gt;boundingRect().center()), targetCSSScale), which has the same positioning logic as you duplicated here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604041</commentid>
    <comment_count>22</comment_count>
      <attachid>137542</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-17 08:34:20 -0700</bug_when>
    <thetext>Created attachment 137542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604042</commentid>
    <comment_count>23</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-17 08:34:42 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 137532 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137532&amp;action=review
&gt; 
&gt; LGTM. Just a last nitpick I realized now:
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:581
&gt; &gt; +    QPointF oldContentCenter = m_content-&gt;boundingRect().center();
&gt; &gt; +    m_content-&gt;setContentsScale(itemScaleFromCSS(targetCSSScale));
&gt; &gt; +    QPointF newContentCenter = m_content-&gt;boundingRect().center();
&gt; &gt; +    m_viewport-&gt;setContentPos(m_viewport-&gt;contentPos() + (newContentCenter - oldContentCenter));
&gt; 
&gt; I think instead of this you could call scaleContent(m_viewport-&gt;mapToWebContent(m_viewport-&gt;boundingRect().center()), targetCSSScale), which has the same positioning logic as you duplicated here.

Absolutely true. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604677</commentid>
    <comment_count>24</comment_count>
      <attachid>137542</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-04-18 04:34:16 -0700</bug_when>
    <thetext>Comment on attachment 137542
Patch

The patch looks good to me now.
Simon, could you take a look too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604976</commentid>
    <comment_count>25</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-18 12:05:30 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 137542 [details])
&gt; The patch looks good to me now.
&gt; Simon, could you take a look too?

Technically the patch is fine, but I don&apos;t see the use-case for the zoom factor on the public WebView API like that.

I do see a use-case for the &quot;traditional&quot; zoom factor that resembles the zooming you can see on Chrome or Safari on the desktop. I think such a property is essential in this context.

Until we have a clear public API for that I think it should be private C++ API that exposes the WebPageProxy&apos;s zoom factor to MiniBrowser and anyone who wants to develop a &quot;desktop&quot; style webview component.

The experimental QML component is for properties where we can be reasonably optimistic that the &quot;experiment will succeed&quot; and we can make it public in the future, but we need further testing. I don&apos;t see that for a zoom-in-center zoom factor property.

In terms of use-cases for the current WebView for zooming I could imagine things like this:

    (1) Load a particular web page
    (2) Send a CSS selector query to the web process
    (3) Retrieve back a list of geometries of the elements that match the provided selector
    (4) Pick a particular geometry and instruct the webview through public API to center &amp; zoom on a particular element.

Naturally this is an entirely different approach, but I mention it to illustrate that I don&apos;t think a zoom-on-center property is very powerful.

I&apos;d be happy to r+ a patch that makes the WebPageProxy properties available via private C++ Qt API and changes MiniBrowser to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607668</commentid>
    <comment_count>26</comment_count>
      <attachid>138343</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-23 07:43:51 -0700</bug_when>
    <thetext>Created attachment 138343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607683</commentid>
    <comment_count>27</comment_count>
      <attachid>138343</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-23 07:56:50 -0700</bug_when>
    <thetext>Comment on attachment 138343
Patch

Clearing flags on attachment: 138343

Committed r114900: &lt;http://trac.webkit.org/changeset/114900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607684</commentid>
    <comment_count>28</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-23 07:56:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134062</attachid>
            <date>2012-03-27 07:48:58 -0700</date>
            <delta_ts>2012-03-28 08:25:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120327164855.patch</filename>
            <type>text/plain</type>
            <size>10267</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2Q1NjFiZWQ2YzE3MjM1
YjFmZjIzZGM2NzgyNThhNDJhMzBjYzhkZS4uM2I3MjU0NWZhNjNmOTVmMjBjYTg4NjVlMGU2ZDUx
MGNiMmJkOWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTI3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB6b29taW5nIHdpdGggZm9yIGRlc2t0b3AgbW9k
ZS4KKyAgICAgICAgVGhlIEFQSSBpcyB1bmVmZmVjdGl2ZSBpbiB0b3VjaCBtb2RlLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdMZWdhY3lQcml2YXRlOjp6b29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbDo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9w
Lmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6em9vbUZhY3Rvcik6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tX
ZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSk6CisK
IDIwMTItMDMtMjMgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtRdF0gU2Nyb2xsaW5nIHdpdGggbW91c2Ugd2hlZWwgZG9lcyBub3Qgd29yayBpbiBNaW5p
QnJvd3NlciB3aXRoIC0tZGVza3RvcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNDA0NGVjM2VlMDAxZmQ2YzM1NGE3MjdkNDJh
MmExNmYyODdjZDI0NC4uMWY5ZDM3OWFhYmIwOGI5ZWNkODY2YjBkYTRhMDg5NGE2NDJhMmRhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwCkBAIC00ODgsNiArNDg4LDE3IEBAIHZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6
OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiAgICAgd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5z
ZXRWaXNpYmxlQ29udGVudHNSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgdmlld3BvcnRTaXplKSwg
MSwgRmxvYXRQb2ludCgpKTsKIH0KIAorcXJlYWwgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6
Onpvb21GYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiB3ZWJQYWdlUHJveHktPnBhZ2Vab29t
RmFjdG9yKCk7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OnNldFpvb21G
YWN0b3IocXJlYWwgZmFjdG9yKQoreworICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKyAgICB3ZWJQ
YWdlUHJveHktPnNldFBhZ2Vab29tRmFjdG9yKGZhY3Rvcik7Cit9CisKIFFRdWlja1dlYlZpZXdG
bGlja2FibGVQcml2YXRlOjpRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZShRUXVpY2tXZWJW
aWV3KiB2aWV3cG9ydCkKICAgICA6IFFRdWlja1dlYlZpZXdQcml2YXRlKHZpZXdwb3J0KQogICAg
ICwgcGFnZUlzU3VzcGVuZGVkKHRydWUpCkBAIC05MjIsNiArOTMzLDE4IEBAIHZvaWQgUVF1aWNr
V2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0VXNlckFnZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2Vu
dCkKICAgICBlbWl0IHVzZXJBZ2VudENoYW5nZWQoKTsKIH0KIAorcXJlYWwgUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6em9vbUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyLT56
b29tRmFjdG9yKCk7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0Wm9v
bUZhY3RvcihxcmVhbCB6b29tRmFjdG9yKQoreworICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKyAg
ICBkX3B0ci0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9yKTsKKyAgICBlbWl0IHpvb21GYWN0b3JD
aGFuZ2VkKCk7Cit9CisKIFFRdWlja1VybFNjaGVtZURlbGVnYXRlKiBRUXVpY2tXZWJWaWV3RXhw
ZXJpbWVudGFsOjpzY2hlbWVEZWxlZ2F0ZXNfQXQoUURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFR
dWlja1VybFNjaGVtZURlbGVnYXRlPiogcHJvcGVydHksIGludCBpbmRleCkKIHsKICAgICBjb25z
dCBRT2JqZWN0TGlzdCBjaGlsZHJlbiA9IHByb3BlcnR5LT5vYmplY3QtPmNoaWxkcmVuKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApp
bmRleCBkYWQyZDVmNmJmZDJhYTU3OGUxOGJkMzNjOWM0MjU3ZmM3ODk5MWNiLi4xNTk5MjhiZmYw
NTU0NDcyZmI4OGRlOThmYzZjNjZkMWQ0ZTk5ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI1Miw2ICsyNTIsNyBAQCBj
bGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFP
YmplY3QgewogICAgIFFfUFJPUEVSVFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJbmZvIFJF
QUQgdmlld3BvcnRJbmZvIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0
aXZlTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0
ZXMgUkVBRCBzY2hlbWVEZWxlZ2F0ZXMpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHVzZXJBZ2Vu
dCBSRUFEIHVzZXJBZ2VudCBXUklURSBzZXRVc2VyQWdlbnQgTk9USUZZIHVzZXJBZ2VudENoYW5n
ZWQpCisgICAgUV9QUk9QRVJUWShxcmVhbCB6b29tRmFjdG9yIFJFQUQgem9vbUZhY3RvciBXUklU
RSBzZXRab29tRmFjdG9yIE5PVElGWSB6b29tRmFjdG9yQ2hhbmdlZCkKICAgICBRX0VOVU1TKE5h
dmlnYXRpb25SZXF1ZXN0QWN0aW9uRXhwZXJpbWVudGFsKQogCiBwdWJsaWM6CkBAIC0yODAsNiAr
MjgxLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZVBpY2tlcihRRGVjbGFyYXRpdmVDb21w
b25lbnQqKTsKICAgICBRU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNl
ckFnZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CisgICAgcXJlYWwgem9vbUZhY3Rvcigp
IGNvbnN0OworICAgIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CiAKICAgICBRV2ViVmlld3Bv
cnRJbmZvKiB2aWV3cG9ydEluZm8oKTsKIApAQCAtMzM4LDYgKzM0MSw3IEBAIFFfU0lHTkFMUzoK
ICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2FnZSk7CiAg
ICAgdm9pZCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNl
ckFnZW50Q2hhbmdlZCgpOworICAgIHZvaWQgem9vbUZhY3RvckNoYW5nZWQoKTsKIAogcHJpdmF0
ZToKICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCA1YzZiNmI2M2FlNmFiMGNm
MDlkZGIzNzc1ZGVjNWZkYjc5OGY1YzllLi5jNTFkNGU1YmNjNDNiMzEwOGNlNGFlYTBmYTdiZTRj
MTg4NjQ4MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xMjAsNiArMTIwLDkgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXREaWFsb2dBY3RpdmUoYm9vbCBhY3RpdmUpIHsgbV9kaWFsb2dBY3RpdmUgPSBhY3RpdmU7
IH0KIAorICAgIHZpcnR1YWwgcXJlYWwgem9vbUZhY3RvcigpIGNvbnN0IHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKSB7IH0KKwogICAgIC8vIFBhZ2VDbGllbnQuCiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIGNvbnN0OwogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKQEAg
LTE3Niw2ICsxNzksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAw
KTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKKworICAgIHZpcnR1
YWwgcXJlYWwgem9vbUZhY3RvcigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRab29tRmFj
dG9yKHFyZWFsKTsKIH07CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlIDog
cHVibGljIFFRdWlja1dlYlZpZXdQcml2YXRlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMDI2MTNiM2NiM2RhMjZhZWNlOGQ1NjdmOGJlZjJk
NGM1NDllMTYzLi4wNWYwM2RlZDk3ZTg5N2IzMGRjYTg0YmM1MzJhZDM3MjlkOTgzYzUyIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTItMDMtMjcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgor
CisgICAgICAgIFtRdF0gQWRkIHpvb21pbmcgc3VwcG9ydCBmb3IgUVF1aWNrV2ViVmlldworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIzMzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgem9vbWluZyBz
dXBwb3J0IGZvciBNaW5pQnJvd3NlciB0bworICAgICAgICB0ZXN0IHRoZSBuZXcgQVBJLgorCisg
ICAgICAgICogTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJjOgorICAgICAgICAqIE1pbmlC
cm93c2VyL3F0L3FtbC9FbmdpbmUuanM6IEFkZGVkIGEganMgZmlsZQorICAgICAgICBmb3IgTWlu
aUJyb3dzZXIgdG8gYmUgYWJsZSB0byBob2xkIHNvbWUgc3RhdGUuCisgICAgICAgICogTWluaUJy
b3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sOgorCiAyMDEyLTAzLTIyICBBbGxhbiBTYW5k
ZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRW5h
YmxlIEZBU1RfTU9CSUxFX1NDUk9MTElORyB3aGVuIHNjcm9sbGluZyBpcyBkZWxlZ2F0ZWQuCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMgYi9Ub29scy9N
aW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMKaW5kZXggZTgxMTMyYWFmYTE0N2Y2M2NiNjgw
ZDMwYjYzZTkxOGQ0NDkwMTgyNy4uYzI2MzE0OTQxOGIwNzY4NmQyNGY3NzIwZTgyNGYzMjYxMTgy
ZmUyNyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJjCisr
KyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYwpAQCAtMjYsNSArMjYsNiBA
QAogICAgICAgICA8ZmlsZT5xbWwvUHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZy5xbWw8L2ZpbGU+
CiAgICAgICAgIDxmaWxlPnFtbC9TY3JvbGxJbmRpY2F0b3IucW1sPC9maWxlPgogICAgICAgICA8
ZmlsZT5xbWwvVmlld3BvcnRJbmZvSXRlbS5xbWw8L2ZpbGU+CisgICAgICAgIDxmaWxlPnFtbC9F
bmdpbmUuanM8L2ZpbGU+CiAgICAgPC9xcmVzb3VyY2U+CiA8L1JDQz4KZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93
c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCAxN2U5MDBiMmJjYmMyOTYwM2MzM2Zl
ODVlMTQ0MmI5NzJmMGJhZTU3Li5lNWRiZDBlMzRkNDA5YWFhZmY3M2VjM2I3MmFmODI0MDRmMzYx
M2E3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5x
bWwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0y
OSw2ICsyOSw3IEBACiBpbXBvcnQgUXRRdWljayAyLjAKIGltcG9ydCBRdFdlYktpdCAzLjAKIGlt
cG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgIkVuZ2luZS5qcyIgYXMgRW5n
aW5lCiAKIFJlY3RhbmdsZSB7CiAgICAgLy8gRG8gbm90IGRlZmluZSBhbmNob3JzIG9yIGFuIGlu
aXRpYWwgc2l6ZSBoZXJlISBUaGlzIHdvdWxkIG1lc3MgdXAgd2l0aCBRU0dWaWV3OjpTaXplUm9v
dE9iamVjdFRvVmlldy4KQEAgLTMxOCw2ICszMTksMzAgQEAgUmVjdGFuZ2xlIHsKICAgICAgICAg
U2Nyb2xsSW5kaWNhdG9yIHsKICAgICAgICAgICAgIGZsaWNrYWJsZUl0ZW06IHdlYlZpZXcuZXhw
ZXJpbWVudGFsLmZsaWNrYWJsZQogICAgICAgICB9CisKKyAgICAgICAgS2V5cy5vblByZXNzZWQ6
IHsKKyAgICAgICAgICAgIGlmIChldmVudC5tb2RpZmllcnMgJiBRdC5Db250cm9sTW9kaWZpZXIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09IFF0LktleV9QbHVzKSB7CisgICAg
ICAgICAgICAgICAgICAgIEVuZ2luZS56b29tSW4od2ViVmlldyk7CisgICAgICAgICAgICAgICAg
ICAgIGV2ZW50LmFjY2VwdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2
ZW50LmtleSA9PSBRdC5LZXlfTWludXMpIHsKKyAgICAgICAgICAgICAgICAgICAgRW5naW5lLnpv
b21PdXQod2ViVmlldyk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmFjY2VwdGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBNb3VzZUFyZWEgeworICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJlbnQKKyAgICAgICAg
ICAgIG9uV2hlZWw6IHsKKyAgICAgICAgICAgICAgICBpZiAod2hlZWwubW9kaWZpZXJzICYgUXQu
Q29udHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aGVlbC5hbmdsZURl
bHRhLnkgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgRW5naW5lLnpvb21Jbih3ZWJWaWV3
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgRW5n
aW5lLnpvb21PdXQod2ViVmlldyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfQogCiAgICAgVmlld3BvcnRJbmZvSXRlbSB7CmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9xdC9xbWwvRW5naW5lLmpzIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQv
cW1sL0VuZ2luZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBjZjcxNDgwNWY1NTZlNWI0OGY5ZWY3ODhmN2Mz
ZWZmMzVhNGYxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Vu
Z2luZS5qcwpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChD
KSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvLyBab29tIGxldmVscyBhcmUgY2hvc2VuIHRvIGJlIGxpa2UgaW4gTW96aWxsYSBG
aXJlZm94IDMuCit2YXIgem9vbUxldmVscyA9IFsgLjMsIC41LCAuNjcsIC44LCAuOSwgMSwgMS4x
LCAxLjIsIDEuMzMsIDEuNSwgMS43LCAyLCAyLjQsIDMgXTsKK3ZhciB6b29tTGV2ZWxJbmRleCA9
IHpvb21MZXZlbHMuaW5kZXhPZigxKTsKKworZnVuY3Rpb24gbmV4dFpvb21MZXZlbCgpCit7Cisg
ICAgaWYgKHpvb21MZXZlbEluZGV4ID09IHpvb21MZXZlbHMubGVuZ3RoIC0gMSkKKyAgICAgICAg
cmV0dXJuIHpvb21MZXZlbHNbem9vbUxldmVsSW5kZXhdOworICAgIHJldHVybiB6b29tTGV2ZWxz
Wysrem9vbUxldmVsSW5kZXhdOworfQorCitmdW5jdGlvbiBwcmV2aW91c1pvb21MZXZlbCgpCit7
CisgICAgaWYgKHpvb21MZXZlbEluZGV4ID09IDApCisgICAgICAgIHJldHVybiB6b29tTGV2ZWxz
WzBdOworICAgIHJldHVybiB6b29tTGV2ZWxzWy0tem9vbUxldmVsSW5kZXhdOworfQorCitmdW5j
dGlvbiB6b29tSW4od2ViVmlldykKK3sKKyAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29tRmFj
dG9yID0gbmV4dFpvb21MZXZlbCgpOworfQorCitmdW5jdGlvbiB6b29tT3V0KHdlYlZpZXcpCit7
CisgICAgd2ViVmlldy5leHBlcmltZW50YWwuem9vbUZhY3RvciA9IHByZXZpb3VzWm9vbUxldmVs
KCk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134302</attachid>
            <date>2012-03-28 08:25:44 -0700</date>
            <delta_ts>2012-03-29 02:54:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120328172541.patch</filename>
            <type>text/plain</type>
            <size>7754</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTVlZGNlN2IzOGIxOTVk
ODE2OTg0YTc4MWVmYzU1YzI3NmI2YzkwNC4uMTM0ODE2OGFiNTg1MjQ3MDQ4MDg0ZGUxNGZhNzll
MDcxZDY1ZjFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDEyLTAzLTI4ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAorICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB6b29taW5nIHdpdGggZm9yIGRlc2t0b3AgbW9k
ZS4KKyAgICAgICAgVGhlIEFQSSBpcyB1bmVmZmVjdGl2ZSBpbiB0b3VjaCBtb2RlLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdMZWdhY3lQcml2YXRlOjp6b29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbDo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9w
Lmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6em9vbUZhY3Rvcik6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tX
ZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSk6CisK
KzIwMTItMDMtMjggIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCiAgICAg
ICAgIFtRdF0gRml4IFFXQVJOIGluIHRlc3RfbG9hZElnbm9yZUVtcHR5VXJsIEFQSSB0ZXN0Lgog
CiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDdk
NWJkNTc3ZjBjZmQwNjE1NWU1NTQyNzU0OWRhYTVhNWFjYzY1MTguLjQ1YzliZjI0MDJiNzBhOGE3
NDgzNDFhN2E3MDk0NTk5NmM1M2Q1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNTA0LDYgKzUwNCwxNyBAQCB2b2lkIFFR
dWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpkaXNhYmxlTW91c2VFdmVudHMoKQogICAgIHEtPnNl
dEFjY2VwdEhvdmVyRXZlbnRzKGZhbHNlKTsKIH0KIAorcXJlYWwgUVF1aWNrV2ViVmlld0xlZ2Fj
eVByaXZhdGU6Onpvb21GYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiB3ZWJQYWdlUHJveHkt
PnBhZ2Vab29tRmFjdG9yKCk7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6
OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9yKQoreworICAgIFFfUShRUXVpY2tXZWJWaWV3KTsK
KyAgICB3ZWJQYWdlUHJveHktPnNldFBhZ2Vab29tRmFjdG9yKGZhY3Rvcik7Cit9CisKIFFRdWlj
a1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZShR
UXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICA6IFFRdWlja1dlYlZpZXdQcml2YXRlKHZpZXdw
b3J0KQogICAgICwgcGFnZUlzU3VzcGVuZGVkKHRydWUpCkBAIC05NTIsNiArOTYzLDE4IEBAIHZv
aWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0VXNlckFnZW50KGNvbnN0IFFTdHJpbmcm
IHVzZXJBZ2VudCkKICAgICBlbWl0IHVzZXJBZ2VudENoYW5nZWQoKTsKIH0KIAorcXJlYWwgUVF1
aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6em9vbUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRfcHRyLT56b29tRmFjdG9yKCk7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6c2V0Wm9vbUZhY3RvcihxcmVhbCB6b29tRmFjdG9yKQoreworICAgIFFfUShRUXVpY2tXZWJW
aWV3KTsKKyAgICBkX3B0ci0+c2V0Wm9vbUZhY3Rvcih6b29tRmFjdG9yKTsKKyAgICBlbWl0IHpv
b21GYWN0b3JDaGFuZ2VkKCk7Cit9CisKIFFRdWlja1VybFNjaGVtZURlbGVnYXRlKiBRUXVpY2tX
ZWJWaWV3RXhwZXJpbWVudGFsOjpzY2hlbWVEZWxlZ2F0ZXNfQXQoUURlY2xhcmF0aXZlTGlzdFBy
b3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiogcHJvcGVydHksIGludCBpbmRleCkKIHsK
ICAgICBjb25zdCBRT2JqZWN0TGlzdCBjaGlsZHJlbiA9IHByb3BlcnR5LT5vYmplY3QtPmNoaWxk
cmVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaAppbmRleCBjMjFiMmU5YjY2MGU2YjAxYzYyMzJlNGYwMjk3YmEwNTliYzNlOWQ5Li44
YmIzNjVmZjExYjk5NWRlOWM2YzQ3NGY1MzFkYTVkM2Q4MmMxZTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI1Myw2ICsy
NTMsNyBAQCBjbGFzcyBRV0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDog
cHVibGljIFFPYmplY3QgewogICAgIFFfUFJPUEVSVFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3Bv
cnRJbmZvIFJFQUQgdmlld3BvcnRJbmZvIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFko
UURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hl
bWVEZWxlZ2F0ZXMgUkVBRCBzY2hlbWVEZWxlZ2F0ZXMpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5n
IHVzZXJBZ2VudCBSRUFEIHVzZXJBZ2VudCBXUklURSBzZXRVc2VyQWdlbnQgTk9USUZZIHVzZXJB
Z2VudENoYW5nZWQpCisgICAgUV9QUk9QRVJUWShxcmVhbCB6b29tRmFjdG9yIFJFQUQgem9vbUZh
Y3RvciBXUklURSBzZXRab29tRmFjdG9yIE5PVElGWSB6b29tRmFjdG9yQ2hhbmdlZCkKICAgICBR
X0VOVU1TKE5hdmlnYXRpb25SZXF1ZXN0QWN0aW9uRXhwZXJpbWVudGFsKQogCiBwdWJsaWM6CkBA
IC0yODMsNiArMjg0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YURpYWxv
ZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKICAgICBRU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0
OwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CisgICAg
cXJlYWwgem9vbUZhY3RvcigpIGNvbnN0OworICAgIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7
CiAKICAgICBRV2ViVmlld3BvcnRJbmZvKiB2aWV3cG9ydEluZm8oKTsKIApAQCAtMzQyLDYgKzM0
NSw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFu
dE1hcCYgbWVzc2FnZSk7CiAgICAgdm9pZCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdl
ZCgpOwogICAgIHZvaWQgdXNlckFnZW50Q2hhbmdlZCgpOworICAgIHZvaWQgem9vbUZhY3RvckNo
YW5nZWQoKTsKIAogcHJpdmF0ZToKICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRl
eCBjYzQxZWU0OWE5ODczOTQxYTk3NmY4OGQwZjI0NjRhYTVmOGFjOGQ5Li44YTdkNTJlMjY1OGUx
NmI5NjA2ZGE5MGVmOGJhNzIwMTAyMzc0YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xMjEsNiArMTIxLDkgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXREaWFsb2dBY3RpdmUoYm9vbCBhY3RpdmUpIHsgbV9kaWFs
b2dBY3RpdmUgPSBhY3RpdmU7IH0KIAorICAgIHZpcnR1YWwgcXJlYWwgem9vbUZhY3RvcigpIGNv
bnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKSB7IH0KKwogICAg
IC8vIFBhZ2VDbGllbnQuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIGNvbnN0Owog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKQEAgLTE4MCw2ICsxODMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVNb3VzZUV2
ZW50cygpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTW91c2VFdmVudHMoKTsKKyAgICB2aXJ0
dWFsIHFyZWFsIHpvb21GYWN0b3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZh
Y3RvcihxcmVhbCk7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSA6
IHB1YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjUyODljYTNlNDFmZmUwYTBjMDY2OTJiMWMzODY1
MjJiNmRkMzJkOC4uYjEyZjIyZDIzYWU4NWQ5NjVmNDZjOWVmMTMwYWE3M2U5ZjY5NGVlNSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTAzLTI4ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4K
KworICAgICAgICBbUXRdIEFkZCB6b29taW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHpvb21pbmcg
c3VwcG9ydCBmb3IgTWluaUJyb3dzZXIgdG8KKyAgICAgICAgdGVzdCB0aGUgbmV3IEFQSS4KKwor
ICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbDoKKwogMjAxMi0w
My0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgdHJpdmlhbCB1cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCBzeXN0ZW0gY2Fs
bCBmaXguCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRv
dy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXgg
N2Q4YTkxZmRmZGU5MzE5NWQzYzk3ZDE3YmQwNDA3YjQ0MDIzMmQ1Mi4uOTc1NGFhZjc5ODFjODYz
NzQ2ZDU3Y2JmMjRmZDRiYmVjNWE2YWMwOCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
cXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9C
cm93c2VyV2luZG93LnFtbApAQCAtMjkyLDYgKzI5MiwyMiBAQCBSZWN0YW5nbGUgewogCiAgICAg
V2ViVmlldyB7CiAgICAgICAgIGlkOiB3ZWJWaWV3CisKKyAgICAgICAgcHJvcGVydHkgdmFyIHpv
b21MZXZlbHM6IFsgLjMsIC41LCAuNjcsIC44LCAuOSwgMSwgMS4xLCAxLjIsIDEuMzMsIDEuNSwg
MS43LCAyLCAyLjQsIDMgXQorICAgICAgICBwcm9wZXJ0eSBpbnQgem9vbUxldmVsSW5kZXg6IHpv
b21MZXZlbHMuaW5kZXhPZigxKQorCisgICAgICAgIGZ1bmN0aW9uIG5leHRab29tTGV2ZWwoKSB7
CisgICAgICAgICAgICBpZiAoem9vbUxldmVsSW5kZXggPT0gem9vbUxldmVscy5sZW5ndGggLSAx
KQorICAgICAgICAgICAgICAgIHJldHVybiB6b29tTGV2ZWxzW3pvb21MZXZlbEluZGV4XTsKKyAg
ICAgICAgICAgIHJldHVybiB6b29tTGV2ZWxzWysrem9vbUxldmVsSW5kZXhdOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcHJldmlvdXNab29tTGV2ZWwoKSB7CisgICAgICAgICAgICBp
ZiAoem9vbUxldmVsSW5kZXggPT0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gem9vbUxldmVs
c1swXTsKKyAgICAgICAgICAgIHJldHVybiB6b29tTGV2ZWxzWy0tem9vbUxldmVsSW5kZXhdOwor
ICAgICAgICB9CisKICAgICAgICAgYW5jaG9ycyB7CiAgICAgICAgICAgICB0b3A6IG5hdmlnYXRp
b25CYXIuYm90dG9tCiAgICAgICAgICAgICBsZWZ0OiBwYXJlbnQubGVmdApAQCAtMzI5LDYgKzM0
NSwzMSBAQCBSZWN0YW5nbGUgewogICAgICAgICBTY3JvbGxJbmRpY2F0b3IgewogICAgICAgICAg
ICAgZmxpY2thYmxlSXRlbTogd2ViVmlldy5leHBlcmltZW50YWwuZmxpY2thYmxlCiAgICAgICAg
IH0KKworICAgICAgICBLZXlzLm9uUHJlc3NlZDogeworICAgICAgICAgICAgaWYgKGV2ZW50Lm1v
ZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmllcikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5rZXkgPT0gUXQuS2V5X1BsdXMpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFs
Lnpvb21GYWN0b3IgPSBuZXh0Wm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50
LmFjY2VwdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9
PSBRdC5LZXlfTWludXMpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsLnpvb21G
YWN0b3IgPSBwcmV2aW91c1pvb21MZXZlbCgpOworICAgICAgICAgICAgICAgICAgICBldmVudC5h
Y2NlcHRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgTW91c2VBcmVhIHsKKyAgICAgICAgICAgIGFuY2hvcnMuZmlsbDogcGFy
ZW50CisgICAgICAgICAgICBvbldoZWVsOiB7CisgICAgICAgICAgICAgICAgaWYgKHdoZWVsLm1v
ZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmllcikgeworICAgICAgICAgICAgICAgICAgICB3aGVl
bC5hY2NlcHRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aGVlbC5hbmdsZURl
bHRhLnkgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwu
em9vbUZhY3RvciA9IHdlYlZpZXcubmV4dFpvb21MZXZlbCgpOworICAgICAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29t
RmFjdG9yID0gd2ViVmlldy5wcmV2aW91c1pvb21MZXZlbCgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIFZpZXdwb3J0SW5mb0l0ZW0g
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134535</attachid>
            <date>2012-03-29 02:54:22 -0700</date>
            <delta_ts>2012-03-29 11:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120329115419.patch</filename>
            <type>text/plain</type>
            <size>7744</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzI2ODIxZDA5NzQ1ZmI4
MzkwN2JiMTU0MGI2ZDljOTY5MTQ2ODMwMS4uYTgzYjNkYzI3OWVjZWM1ZmRhYjhmYzk1Nzc4MjRi
Nzc0NmFiOWIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTI5ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB6b29taW5nIHdpdGggZm9yIGRlc2t0b3AgbW9k
ZS4KKyAgICAgICAgVGhlIEFQSSBoYXMgbm8gZWZmZWN0IGluIHRvdWNoIG1vZGUgeWV0LgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjp6b29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVy
aW1lbnRhbDo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6em9vbUZhY3Rvcik6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSk6
CisKIDIwMTItMDMtMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYSBjcmFzaCBhbmQgYW4gYXNzZXJ0aW9uIHdoZW4gcmVjb3ZlcmluZyBmcm9t
IGEgd2ViIHByb2Nlc3MgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDdkNWJkNTc3ZjBjZmQwNjE1NWU1NTQyNzU0OWRh
YTVhNWFjYzY1MTguLmUwOThiOWEyZjRiODNjOTUxY2QwYmRhN2VlOWMxMzI1MzViZTQ1OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cApAQCAtNTA0LDYgKzUwNCwxNiBAQCB2b2lkIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpk
aXNhYmxlTW91c2VFdmVudHMoKQogICAgIHEtPnNldEFjY2VwdEhvdmVyRXZlbnRzKGZhbHNlKTsK
IH0KIAorcXJlYWwgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6Onpvb21GYWN0b3IoKSBjb25z
dAoreworICAgIHJldHVybiB3ZWJQYWdlUHJveHktPnBhZ2Vab29tRmFjdG9yKCk7Cit9CisKK3Zv
aWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9y
KQoreworICAgIHdlYlBhZ2VQcm94eS0+c2V0UGFnZVpvb21GYWN0b3IoZmFjdG9yKTsKK30KKwog
UVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OlFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgIDogUVF1aWNrV2ViVmlld1ByaXZhdGUo
dmlld3BvcnQpCiAgICAgLCBwYWdlSXNTdXNwZW5kZWQodHJ1ZSkKQEAgLTk1Miw2ICs5NjIsMTcg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRVc2VyQWdlbnQoY29uc3QgUVN0
cmluZyYgdXNlckFnZW50KQogICAgIGVtaXQgdXNlckFnZW50Q2hhbmdlZCgpOwogfQogCitxcmVh
bCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp6b29tRmFjdG9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZF9wdHItPnpvb21GYWN0b3IoKTsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsOjpzZXRab29tRmFjdG9yKHFyZWFsIHpvb21GYWN0b3IpCit7CisgICAgZF9wdHItPnNl
dFpvb21GYWN0b3Ioem9vbUZhY3Rvcik7CisgICAgZW1pdCB6b29tRmFjdG9yQ2hhbmdlZCgpOwor
fQorCiBRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZSogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6
c2NoZW1lRGVsZWdhdGVzX0F0KFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTxRUXVpY2tVcmxTY2hl
bWVEZWxlZ2F0ZT4qIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7CiAgICAgY29uc3QgUU9iamVjdExp
c3QgY2hpbGRyZW4gPSBwcm9wZXJ0eS0+b2JqZWN0LT5jaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYzIxYjJl
OWI2NjBlNmIwMWM2MjMyZTRmMDI5N2JhMDU5YmMzZTlkOS4uOGJiMzY1ZmYxMWI5OTVkZTljNmM0
NzRmNTMxZGE1ZDNkODJjMWUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0yNTMsNiArMjUzLDcgQEAgY2xhc3MgUVdFQktJ
VF9FWFBPUlQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKICAg
ICBRX1BST1BFUlRZKFFXZWJWaWV3cG9ydEluZm8qIHZpZXdwb3J0SW5mbyBSRUFEIHZpZXdwb3J0
SW5mbyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUxpc3RQcm9w
ZXJ0eTxRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZT4gdXJsU2NoZW1lRGVsZWdhdGVzIFJFQUQgc2No
ZW1lRGVsZWdhdGVzKQogICAgIFFfUFJPUEVSVFkoUVN0cmluZyB1c2VyQWdlbnQgUkVBRCB1c2Vy
QWdlbnQgV1JJVEUgc2V0VXNlckFnZW50IE5PVElGWSB1c2VyQWdlbnRDaGFuZ2VkKQorICAgIFFf
UFJPUEVSVFkocXJlYWwgem9vbUZhY3RvciBSRUFEIHpvb21GYWN0b3IgV1JJVEUgc2V0Wm9vbUZh
Y3RvciBOT1RJRlkgem9vbUZhY3RvckNoYW5nZWQpCiAgICAgUV9FTlVNUyhOYXZpZ2F0aW9uUmVx
dWVzdEFjdGlvbkV4cGVyaW1lbnRhbCkKIAogcHVibGljOgpAQCAtMjgzLDYgKzI4NCw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGFEaWFsb2coUURlY2xhcmF0aXZlQ29tcG9u
ZW50Kik7CiAgICAgUVN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJB
Z2VudChjb25zdCBRU3RyaW5nJiB1c2VyQWdlbnQpOworICAgIHFyZWFsIHpvb21GYWN0b3IoKSBj
b25zdDsKKyAgICB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwpOwogCiAgICAgUVdlYlZpZXdwb3J0
SW5mbyogdmlld3BvcnRJbmZvKCk7CiAKQEAgLTM0Miw2ICszNDUsNyBAQCBRX1NJR05BTFM6CiAg
ICAgdm9pZCBtZXNzYWdlUmVjZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3NhZ2UpOwogICAg
IHZvaWQgcHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHVzZXJB
Z2VudENoYW5nZWQoKTsKKyAgICB2b2lkIHpvb21GYWN0b3JDaGFuZ2VkKCk7CiAKIHByaXZhdGU6
CiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggY2M0MWVlNDlhOTg3Mzk0MWE5
NzZmODhkMGYyNDY0YWE1ZjhhYzhkOS4uOGE3ZDUyZTI2NThlMTZiOTYwNmRhOTBlZjhiYTcyMDEw
MjM3NGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0RGlhbG9nQWN0aXZlKGJvb2wgYWN0aXZlKSB7IG1fZGlhbG9nQWN0aXZlID0gYWN0aXZlOyB9
CiAKKyAgICB2aXJ0dWFsIHFyZWFsIHpvb21GYWN0b3IoKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCkgeyB9CisKICAgICAvLyBQYWdlQ2xpZW50LgogICAg
IFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBjb25zdDsKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlRnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC0x
ODAsNiArMTgzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNp
emUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91c2VFdmVudHMoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisgICAgdmlydHVhbCBxcmVhbCB6b29tRmFjdG9y
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwpOwogfTsKIAog
Y2xhc3MgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGUgOiBwdWJsaWMgUVF1aWNrV2ViVmll
d1ByaXZhdGUgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDA1OWRlY2E4OTZkZDg3NWQwYWI1YjMwZDdhYmU3MDgxODIzMDQ2NGYuLjk3Y2M3YWU3
MDM3MDQzNmMwNzg1NzYyNjVmNzg3ZWQwMWI0ZjI2Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0yOSAg
QmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1F0XSBBZGQg
em9vbWluZyBzdXBwb3J0IGZvciBRUXVpY2tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjMzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB6b29taW5nIHN1cHBvcnQgZm9yIE1pbmlCcm93
c2VyIHRvCisgICAgICAgIHRlc3QgdGhlIG5ldyBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWw6CisKIDIwMTItMDMtMjkgIFZpbmVldCBDaGF1ZGhh
cnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFJlbW92ZSBjdXN0b20gYmluZGlu
Z3MgZm9ybSBJbnRlcm5hbHMuaWRsIG9mIGF0dHJpYnV0ZSB0eXBlIEFycmF5LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sIGIvVG9vbHMvTWlu
aUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCmluZGV4IDdkOGE5MWZkZmRlOTMxOTVk
M2M5N2QxN2JkMDQwN2I0NDAyMzJkNTIuLjE4ZTlmZjAxMTFhYmY1ZWI1OTA4MGU3NDQyMTgzZDFm
ZWE3Njg1YTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2lu
ZG93LnFtbAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwK
QEAgLTI5Miw2ICsyOTIsMjMgQEAgUmVjdGFuZ2xlIHsKIAogICAgIFdlYlZpZXcgewogICAgICAg
ICBpZDogd2ViVmlldworCisgICAgICAgIC8vIFpvb20gdmFsdWVzIGNob3NlbiB0byBiZSBsaWtl
IGluIE1vemlsbGEgRmlyZWZveCAzLgorICAgICAgICBwcm9wZXJ0eSB2YXIgem9vbUxldmVsczog
WyAuMywgLjUsIC42NywgLjgsIC45LCAxLCAxLjEsIDEuMiwgMS4zMywgMS41LCAxLjcsIDIsIDIu
NCwgMyBdCisgICAgICAgIHByb3BlcnR5IGludCB6b29tTGV2ZWxJbmRleDogem9vbUxldmVscy5p
bmRleE9mKDEpCisKKyAgICAgICAgZnVuY3Rpb24gbmV4dFpvb21MZXZlbCgpIHsKKyAgICAgICAg
ICAgIGlmICh6b29tTGV2ZWxJbmRleCA9PSB6b29tTGV2ZWxzLmxlbmd0aCAtIDEpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHpvb21MZXZlbHNbem9vbUxldmVsSW5kZXhdOworICAgICAgICAgICAg
cmV0dXJuIHpvb21MZXZlbHNbKyt6b29tTGV2ZWxJbmRleF07CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBwcmV2aW91c1pvb21MZXZlbCgpIHsKKyAgICAgICAgICAgIGlmICh6b29tTGV2
ZWxJbmRleCA9PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiB6b29tTGV2ZWxzWzBdOworICAg
ICAgICAgICAgcmV0dXJuIHpvb21MZXZlbHNbLS16b29tTGV2ZWxJbmRleF07CisgICAgICAgIH0K
KwogICAgICAgICBhbmNob3JzIHsKICAgICAgICAgICAgIHRvcDogbmF2aWdhdGlvbkJhci5ib3R0
b20KICAgICAgICAgICAgIGxlZnQ6IHBhcmVudC5sZWZ0CkBAIC0zMjksNiArMzQ2LDMxIEBAIFJl
Y3RhbmdsZSB7CiAgICAgICAgIFNjcm9sbEluZGljYXRvciB7CiAgICAgICAgICAgICBmbGlja2Fi
bGVJdGVtOiB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5mbGlja2FibGUKICAgICAgICAgfQorCisgICAg
ICAgIEtleXMub25QcmVzc2VkOiB7CisgICAgICAgICAgICBpZiAoZXZlbnQubW9kaWZpZXJzICYg
UXQuQ29udHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PSBR
dC5LZXlfUGx1cykgeworICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWwuem9vbUZhY3Rv
ciA9IG5leHRab29tTGV2ZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQuYWNjZXB0ZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09IFF0LktleV9N
aW51cykgeworICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWwuem9vbUZhY3RvciA9IHBy
ZXZpb3VzWm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmFjY2VwdGVkID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBNb3VzZUFyZWEgeworICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJlbnQKKyAgICAg
ICAgICAgIG9uV2hlZWw6IHsKKyAgICAgICAgICAgICAgICBpZiAod2hlZWwubW9kaWZpZXJzICYg
UXQuQ29udHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgICAgIHdoZWVsLmFjY2VwdGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdoZWVsLmFuZ2xlRGVsdGEueSA+IDAp
CisgICAgICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29tRmFjdG9y
ID0gd2ViVmlldy5uZXh0Wm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnpvb21GYWN0b3IgPSB3
ZWJWaWV3LnByZXZpb3VzWm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgVmlld3BvcnRJbmZvSXRlbSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134622</attachid>
            <date>2012-03-29 11:22:14 -0700</date>
            <delta_ts>2012-04-17 06:00:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120329202211.patch</filename>
            <type>text/plain</type>
            <size>7795</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzI2ODIxZDA5NzQ1ZmI4
MzkwN2JiMTU0MGI2ZDljOTY5MTQ2ODMwMS4uZDZiODgzMmM0MjkyMDM0MWExMWU4YWQ0NmJiZjA1
YjdmYTYxMWNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTI5ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB6b29taW5nIGluIGRlc2t0b3AgbW9kZS4gVGhl
IEFQSSBoYXMgbm8gZWZmZWN0CisgICAgICAgIGluIHRvdWNoIG1vZGUuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmll
d0xlZ2FjeVByaXZhdGU6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0xlZ2Fj
eVByaXZhdGU6OnNldFpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbDo6em9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpz
ZXRab29tRmFjdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjp6b29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQ
cml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlKToKKwogMjAxMi0w
My0yOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBhIGNyYXNoIGFuZCBhbiBhc3NlcnRpb24gd2hlbiByZWNvdmVyaW5nIGZyb20gYSB3ZWIgcHJv
Y2VzcyBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKaW5kZXggN2Q1YmQ1NzdmMGNmZDA2MTU1ZTU1NDI3NTQ5ZGFhNWE1YWNjNjUx
OC4uYTVmMGZjNTcyM2M3NDI1NGJkOTY3NjQ1MDlhN2E2YjI5ZmEwNzRlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC01MDQs
NiArNTA0LDE2IEBAIHZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OmRpc2FibGVNb3Vz
ZUV2ZW50cygpCiAgICAgcS0+c2V0QWNjZXB0SG92ZXJFdmVudHMoZmFsc2UpOwogfQogCitxcmVh
bCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6em9vbUZhY3RvcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHdlYlBhZ2VQcm94eS0+cGFnZVpvb21GYWN0b3IoKTsKK30KKwordm9pZCBRUXVpY2tX
ZWJWaWV3TGVnYWN5UHJpdmF0ZTo6c2V0Wm9vbUZhY3RvcihxcmVhbCBmYWN0b3IpCit7CisgICAg
d2ViUGFnZVByb3h5LT5zZXRQYWdlWm9vbUZhY3RvcihmYWN0b3IpOworfQorCiBRUXVpY2tXZWJW
aWV3RmxpY2thYmxlUHJpdmF0ZTo6UVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGUoUVF1aWNr
V2ViVmlldyogdmlld3BvcnQpCiAgICAgOiBRUXVpY2tXZWJWaWV3UHJpdmF0ZSh2aWV3cG9ydCkK
ICAgICAsIHBhZ2VJc1N1c3BlbmRlZCh0cnVlKQpAQCAtOTUyLDYgKzk2MiwxOSBAQCB2b2lkIFFR
dWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFVzZXJBZ2VudChjb25zdCBRU3RyaW5nJiB1c2Vy
QWdlbnQpCiAgICAgZW1pdCB1c2VyQWdlbnRDaGFuZ2VkKCk7CiB9CiAKK3FyZWFsIFFRdWlja1dl
YlZpZXdFeHBlcmltZW50YWw6Onpvb21GYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBkX3B0
ci0+em9vbUZhY3RvcigpOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNl
dFpvb21GYWN0b3IocXJlYWwgem9vbUZhY3RvcikKK3sKKyAgICBpZiAoem9vbUZhY3RvciA9PSBk
X3B0ci0+em9vbUZhY3RvcigpKQorICAgICAgICByZXR1cm47CisgICAgZF9wdHItPnNldFpvb21G
YWN0b3Ioem9vbUZhY3Rvcik7CisgICAgZW1pdCB6b29tRmFjdG9yQ2hhbmdlZCgpOworfQorCiBR
UXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZSogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2NoZW1l
RGVsZWdhdGVzX0F0KFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTxRUXVpY2tVcmxTY2hlbWVEZWxl
Z2F0ZT4qIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7CiAgICAgY29uc3QgUU9iamVjdExpc3QgY2hp
bGRyZW4gPSBwcm9wZXJ0eS0+b2JqZWN0LT5jaGlsZHJlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggYzIxYjJlOWI2NjBl
NmIwMWM2MjMyZTRmMDI5N2JhMDU5YmMzZTlkOS4uOGJiMzY1ZmYxMWI5OTVkZTljNmM0NzRmNTMx
ZGE1ZDNkODJjMWUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0yNTMsNiArMjUzLDcgQEAgY2xhc3MgUVdFQktJVF9FWFBP
UlQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX1BS
T1BFUlRZKFFXZWJWaWV3cG9ydEluZm8qIHZpZXdwb3J0SW5mbyBSRUFEIHZpZXdwb3J0SW5mbyBD
T05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTxR
UXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZT4gdXJsU2NoZW1lRGVsZWdhdGVzIFJFQUQgc2NoZW1lRGVs
ZWdhdGVzKQogICAgIFFfUFJPUEVSVFkoUVN0cmluZyB1c2VyQWdlbnQgUkVBRCB1c2VyQWdlbnQg
V1JJVEUgc2V0VXNlckFnZW50IE5PVElGWSB1c2VyQWdlbnRDaGFuZ2VkKQorICAgIFFfUFJPUEVS
VFkocXJlYWwgem9vbUZhY3RvciBSRUFEIHpvb21GYWN0b3IgV1JJVEUgc2V0Wm9vbUZhY3RvciBO
T1RJRlkgem9vbUZhY3RvckNoYW5nZWQpCiAgICAgUV9FTlVNUyhOYXZpZ2F0aW9uUmVxdWVzdEFj
dGlvbkV4cGVyaW1lbnRhbCkKIAogcHVibGljOgpAQCAtMjgzLDYgKzI4NCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGFEaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7
CiAgICAgUVN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJBZ2VudChj
b25zdCBRU3RyaW5nJiB1c2VyQWdlbnQpOworICAgIHFyZWFsIHpvb21GYWN0b3IoKSBjb25zdDsK
KyAgICB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwpOwogCiAgICAgUVdlYlZpZXdwb3J0SW5mbyog
dmlld3BvcnRJbmZvKCk7CiAKQEAgLTM0Miw2ICszNDUsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9p
ZCBtZXNzYWdlUmVjZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3NhZ2UpOwogICAgIHZvaWQg
cHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHVzZXJBZ2VudENo
YW5nZWQoKTsKKyAgICB2b2lkIHpvb21GYWN0b3JDaGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAg
UVF1aWNrV2ViVmlldyogcV9wdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggY2M0MWVlNDlhOTg3Mzk0MWE5NzZmODhk
MGYyNDY0YWE1ZjhhYzhkOS4uOGE3ZDUyZTI2NThlMTZiOTYwNmRhOTBlZjhiYTcyMDEwMjM3NGM3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wX3AuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGlh
bG9nQWN0aXZlKGJvb2wgYWN0aXZlKSB7IG1fZGlhbG9nQWN0aXZlID0gYWN0aXZlOyB9CiAKKyAg
ICB2aXJ0dWFsIHFyZWFsIHpvb21GYWN0b3IoKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Wm9vbUZhY3RvcihxcmVhbCkgeyB9CisKICAgICAvLyBQYWdlQ2xpZW50LgogICAgIFdlYkNv
cmU6OkludFNpemUgdmlld1NpemUoKSBjb25zdDsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbU5hdmlnYXRvclF0T2JqZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC0xODAsNiAr
MTgzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91c2VFdmVudHMoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisgICAgdmlydHVhbCBxcmVhbCB6b29tRmFjdG9yKCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwpOwogfTsKIAogY2xhc3Mg
UVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGUgOiBwdWJsaWMgUVF1aWNrV2ViVmlld1ByaXZh
dGUgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDA1OWRlY2E4OTZkZDg3NWQwYWI1YjMwZDdhYmU3MDgxODIzMDQ2NGYuLjk3Y2M3YWU3MDM3MDQz
NmMwNzg1NzYyNjVmNzg3ZWQwMWI0ZjI2Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0yOSAgQmFsYXpz
IEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1F0XSBBZGQgem9vbWlu
ZyBzdXBwb3J0IGZvciBRUXVpY2tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MjMzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCB6b29taW5nIHN1cHBvcnQgZm9yIE1pbmlCcm93c2VyIHRv
CisgICAgICAgIHRlc3QgdGhlIG5ldyBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9x
bWwvQnJvd3NlcldpbmRvdy5xbWw6CisKIDIwMTItMDMtMjkgIFZpbmVldCBDaGF1ZGhhcnkgIDxy
Z2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFJlbW92ZSBjdXN0b20gYmluZGluZ3MgZm9y
bSBJbnRlcm5hbHMuaWRsIG9mIGF0dHJpYnV0ZSB0eXBlIEFycmF5LgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sIGIvVG9vbHMvTWluaUJyb3dz
ZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCmluZGV4IDdkOGE5MWZkZmRlOTMxOTVkM2M5N2Qx
N2JkMDQwN2I0NDAyMzJkNTIuLjE4ZTlmZjAxMTFhYmY1ZWI1OTA4MGU3NDQyMTgzZDFmZWE3Njg1
YTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFt
bAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKQEAgLTI5
Miw2ICsyOTIsMjMgQEAgUmVjdGFuZ2xlIHsKIAogICAgIFdlYlZpZXcgewogICAgICAgICBpZDog
d2ViVmlldworCisgICAgICAgIC8vIFpvb20gdmFsdWVzIGNob3NlbiB0byBiZSBsaWtlIGluIE1v
emlsbGEgRmlyZWZveCAzLgorICAgICAgICBwcm9wZXJ0eSB2YXIgem9vbUxldmVsczogWyAuMywg
LjUsIC42NywgLjgsIC45LCAxLCAxLjEsIDEuMiwgMS4zMywgMS41LCAxLjcsIDIsIDIuNCwgMyBd
CisgICAgICAgIHByb3BlcnR5IGludCB6b29tTGV2ZWxJbmRleDogem9vbUxldmVscy5pbmRleE9m
KDEpCisKKyAgICAgICAgZnVuY3Rpb24gbmV4dFpvb21MZXZlbCgpIHsKKyAgICAgICAgICAgIGlm
ICh6b29tTGV2ZWxJbmRleCA9PSB6b29tTGV2ZWxzLmxlbmd0aCAtIDEpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHpvb21MZXZlbHNbem9vbUxldmVsSW5kZXhdOworICAgICAgICAgICAgcmV0dXJu
IHpvb21MZXZlbHNbKyt6b29tTGV2ZWxJbmRleF07CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBwcmV2aW91c1pvb21MZXZlbCgpIHsKKyAgICAgICAgICAgIGlmICh6b29tTGV2ZWxJbmRl
eCA9PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiB6b29tTGV2ZWxzWzBdOworICAgICAgICAg
ICAgcmV0dXJuIHpvb21MZXZlbHNbLS16b29tTGV2ZWxJbmRleF07CisgICAgICAgIH0KKwogICAg
ICAgICBhbmNob3JzIHsKICAgICAgICAgICAgIHRvcDogbmF2aWdhdGlvbkJhci5ib3R0b20KICAg
ICAgICAgICAgIGxlZnQ6IHBhcmVudC5sZWZ0CkBAIC0zMjksNiArMzQ2LDMxIEBAIFJlY3Rhbmds
ZSB7CiAgICAgICAgIFNjcm9sbEluZGljYXRvciB7CiAgICAgICAgICAgICBmbGlja2FibGVJdGVt
OiB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5mbGlja2FibGUKICAgICAgICAgfQorCisgICAgICAgIEtl
eXMub25QcmVzc2VkOiB7CisgICAgICAgICAgICBpZiAoZXZlbnQubW9kaWZpZXJzICYgUXQuQ29u
dHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PSBRdC5LZXlf
UGx1cykgeworICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWwuem9vbUZhY3RvciA9IG5l
eHRab29tTGV2ZWwoKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQuYWNjZXB0ZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09IFF0LktleV9NaW51cykg
eworICAgICAgICAgICAgICAgICAgICBleHBlcmltZW50YWwuem9vbUZhY3RvciA9IHByZXZpb3Vz
Wm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmFjY2VwdGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBN
b3VzZUFyZWEgeworICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJlbnQKKyAgICAgICAgICAg
IG9uV2hlZWw6IHsKKyAgICAgICAgICAgICAgICBpZiAod2hlZWwubW9kaWZpZXJzICYgUXQuQ29u
dHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgICAgIHdoZWVsLmFjY2VwdGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdoZWVsLmFuZ2xlRGVsdGEueSA+IDApCisgICAg
ICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29tRmFjdG9yID0gd2Vi
Vmlldy5uZXh0Wm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnpvb21GYWN0b3IgPSB3ZWJWaWV3
LnByZXZpb3VzWm9vbUxldmVsKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfQogCiAgICAgVmlld3BvcnRJbmZvSXRlbSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134624</attachid>
            <date>2012-03-29 11:26:02 -0700</date>
            <delta_ts>2012-04-17 06:00:56 -0700</delta_ts>
            <desc>WIP patch - zoom in touch mode</desc>
            <filename>tmp.diff</filename>
            <type>text/plain</type>
            <size>3093</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CmluZGV4IGE1ZjBmYzUuLjY5ZGNmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNjIwLDYgKzYyMCwxNyBAQCB2b2lkIFFR
dWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6VgogICAgIGludGVyYWN0aW9uRW5naW5lLT5hcHBseUNvbnN0cmFpbnRz
KGNvbXB1dGVWaWV3cG9ydENvbnN0cmFpbnRzKCkpOwogfQogCitxcmVhbCBRUXVpY2tXZWJWaWV3
RmxpY2thYmxlUHJpdmF0ZTo6em9vbUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGludGVy
YWN0aW9uRW5naW5lID8gaW50ZXJhY3Rpb25FbmdpbmUtPnpvb21GYWN0b3IoKSA6IDE7Cit9CisK
K3ZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OnNldFpvb21GYWN0b3IocXJlYWwg
ZmFjdG9yKQoreworICAgIGlmIChpbnRlcmFjdGlvbkVuZ2luZSkKKyAgICAgICAgaW50ZXJhY3Rp
b25FbmdpbmUtPnNldFpvb21GYWN0b3IoZmFjdG9yKTsKK30KKwogdm9pZCBRUXVpY2tXZWJWaWV3
RmxpY2thYmxlUHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKCkKIHsKICAgICBRX1EoUVF1aWNr
V2ViVmlldyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKaW5kZXggOGE3ZDUyZS4uOTI5NDc3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtMjEyLDYg
KzIxMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwo
Y29uc3QgUVBvaW50JiBwb3MpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1Np
emUoY29uc3QgUVNpemUmIG5ld1NpemUpOwogCisgICAgdmlydHVhbCBxcmVhbCB6b29tRmFjdG9y
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwpOworCiAgICAg
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpDb25zdHJhaW50cyBjb21wdXRlVmlld3BvcnRD
b25zdHJhaW50cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAppbmRleCBlNDFm
ZTIwLi40NzhkYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRW
aWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcApAQCAtNjA1LDYgKzYwNSwyMSBA
QCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2NhbGVDb250ZW50KGNvbnN0IFFQ
b2ludEYmIGNlbnRlckluQ1NTQ29vcmRpbgogICAgIG1fZmxpY2tQcm92aWRlci0+c2V0Q29udGVu
dFBvcyhtX2ZsaWNrUHJvdmlkZXItPmNvbnRlbnRQb3MoKSArIChuZXdQaW5jaENlbnRlck9uVmll
d3BvcnQgLSBvbGRQaW5jaENlbnRlck9uVmlld3BvcnQpKTsKIH0KIAorcXJlYWwgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjp6b29tRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b250ZW50LT5jb250ZW50c1NjYWxlKCk7Cit9CisKK3ZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpzZXRab29tRmFjdG9yKHFyZWFsIGZhY3RvcikKK3sKKyAgICBpZiAobV9jb25zdHJh
aW50cy5taW5pbXVtU2NhbGUgPiBmYWN0b3IgfHwgbV9jb25zdHJhaW50cy5tYXhpbXVtU2NhbGUg
PCBmYWN0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIFFQb2ludEYgdmlld3BvcnRIb3RzcG90
ID0gbV92aWV3cG9ydC0+Ym91bmRpbmdSZWN0KCkuY2VudGVyKCk7CisgICAgc2NhbGVDb250ZW50
KG1fdmlld3BvcnQtPm1hcFRvV2ViQ29udGVudCh2aWV3cG9ydEhvdHNwb3QpLCBmYWN0b3IpOwor
ICAgIGVuc3VyZUNvbnRlbnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5KHRydWUpOworfQorCiAjaW5j
bHVkZSAibW9jX1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAiCiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25F
bmdpbmUuaAppbmRleCBmOWE5NWVkLi5mODU1MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC05
OSw2ICs5OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHpvb21Ub0FyZWFHZXN0dXJlRW5kZWQoY29u
c3QgUVBvaW50RiYgdG91Y2hQb2ludCwgY29uc3QgUVJlY3RGJiB0YXJnZXRBcmVhKTsKICAgICB2
b2lkIGZvY3VzRWRpdGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2FyZXRBcmVhLCBjb25zdCBRUmVj
dEYmIHRhcmdldEFyZWEpOwogCisgICAgcXJlYWwgem9vbUZhY3RvcigpIGNvbnN0OworICAgIHZv
aWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CisKICAgICBjb25zdCBDb25zdHJhaW50cyYgY29uc3Ry
YWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CiAgICAgcXJlYWwgY3VycmVu
dENTU1NjYWxlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137522</attachid>
            <date>2012-04-17 06:01:22 -0700</date>
            <delta_ts>2012-04-17 07:21:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120417150120.patch</filename>
            <type>text/plain</type>
            <size>12202</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTgxZDc0YWU2ZDZhZGJm
YWIxMTE5M2Y0MGVkYjhlY2U0YmJjZjgxMi4uMmZlNTM4YmE5N2YzMmY2ZTQyOGExYWM1NTk4N2Uz
MjU2MTEyNTZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTE3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IGZvciBwcm9ncmFtbWF0aWMgem9vbWluZy4g
VGhpcyBpcyBpbXBvcnRhbnQKKyAgICAgICAgbW9zdGx5IG9uIGRlc2t0b3Agd2hlcmUgd2UgZG9u
J3QgaGF2ZSBhbnkgd2F5IHRvIHpvb20KKyAgICAgICAgY3VycmVudGx5LiBGb3IgZGVza3RvcCBJ
IHVzZWQgV2ViUGFnZVByb3h5OjpzZXRQYWdlWm9vbUZhY3RvcgorICAgICAgICB3aGljaCBpbXBs
ZW1lbnRzIHRoZSBvbGQsIGNvbW1vbiBkZXNrdG9wIGJlaGF2aW91ci4KKyAgICAgICAgSSBhbHNv
IGFkZGVkIGEgbW9yZSBvciBsZXNzIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3QKKyAgICAgICAgYmVo
YXZpb3VyIGZvciBtb2JpbGUgd2hpY2ggaXMgYmFzaWNhbGx5IGEgY29udGVudCBzY2FsaW5nCisg
ICAgICAgIGZyb20gdGhlIGNvbnRlbnQncyBjZW50ZXIgcG9pbnQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1By
aXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlj
a2FibGVQcml2YXRlOjp1cGRhdGVDb250ZW50c1NpemUpOgorICAgICAgICAoUVF1aWNrV2ViVmll
dzo6ZGlzYWJsZUNvbnRlbnRTaXplVXBkYXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmVu
YWJsZUNvbnRlbnRTaXplVXBkYXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50
YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0
Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6c2V0Wm9v
bUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6c2V0Wm9v
bUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJp
dmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
OjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNz
L3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oOgorICAgICAgICAoUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lKToKKwogMjAxMi0wNC0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpz
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBBZGQgdGVzdCBzcGVjaWZpYyBwbGF0Zm9ybSBw
bHVnaW4gdG8gYWNoaWV2ZSB1bmlmaWVkIGxheW91dCB0ZXN0IHJlc3VsdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDZmOTE5
YTllZWMyMzEyOTIxN2NmYTI0YjZkMTVlYmE5MjJkMGUxZTkuLjA4Mjc5ZGY4ZmM3OWQ4ZTkwZmNh
NDAwNmM1MTFiNzVjZGM3MDg5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNzcsMTAgKzc3LDEyIEBAIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkK
ICAgICAsIGZpbGVQaWNrZXIoMCkKICAgICAsIGRhdGFiYXNlUXVvdGFEaWFsb2coMCkKICAgICAs
IG1fdXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZSh0cnVlKQorICAgICwgbV9jb250ZW50U2l6ZVVw
ZGF0ZURpc2FibGVkKGZhbHNlKQogICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVyKGZhbHNlKQogICAgICwgbV9sb2Fk
U3RhcnRlZFNpZ25hbFNlbnQoZmFsc2UpCiAgICAgLCBtX2RpYWxvZ0FjdGl2ZShmYWxzZSkKKyAg
ICAsIG1fem9vbUZhY3RvcigxKQogewogICAgIHZpZXdwb3J0LT5zZXRDbGlwKHRydWUpOwogICAg
IHZpZXdwb3J0LT5zZXRQaXhlbEFsaWduZWQodHJ1ZSk7CkBAIC01NjcsNiArNTY5LDEwIEBAIHZv
aWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OnVwZGF0ZUNvbnRlbnRzU2l6ZShjb25z
dCBRU2l6ZUYmIHNpemUpCiAgICAgaWYgKCFtX3VzZURlZmF1bHRDb250ZW50SXRlbVNpemUpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIC8vIFRoaXMgaXMgdXNlZCBieSBwcm9ncmFtYXRpYyB6b29t
aW5nLgorICAgIGlmIChtX2NvbnRlbnRTaXplVXBkYXRlRGlzYWJsZWQpCisgICAgICAgIHJldHVy
bjsKKwogICAgIHEtPnNldENvbnRlbnRXaWR0aChzaXplLndpZHRoKCkpOwogICAgIHEtPnNldENv
bnRlbnRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiB9CkBAIC0xNDM1LDQgKzE0NDEsNDMgQEAgdm9p
ZCBRUXVpY2tXZWJWaWV3Ojp1cGRhdGVDb250ZW50c1NpemUoY29uc3QgUVNpemVGJiBzaXplKQog
ICAgIGQtPnVwZGF0ZUNvbnRlbnRzU2l6ZShzaXplKTsKIH0KIAordm9pZCBRUXVpY2tXZWJWaWV3
OjpkaXNhYmxlQ29udGVudFNpemVVcGRhdGUoKQoreworICAgIFFfRChRUXVpY2tXZWJWaWV3KTsK
KyAgICBkLT5tX2NvbnRlbnRTaXplVXBkYXRlRGlzYWJsZWQgPSB0cnVlOworfQorCit2b2lkIFFR
dWlja1dlYlZpZXc6OmVuYWJsZUNvbnRlbnRTaXplVXBkYXRlKCkKK3sKKyAgICBRX0QoUVF1aWNr
V2ViVmlldyk7CisgICAgZC0+bV9jb250ZW50U2l6ZVVwZGF0ZURpc2FibGVkID0gZmFsc2U7Cit9
CisKK3FyZWFsIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6Onpvb21GYWN0b3IoKSBjb25zdAor
eworICAgIHJldHVybiBkX3B0ci0+bV96b29tRmFjdG9yOworfQorCit2b2lkIFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9yKQoreworICAgIGlmIChk
X3B0ci0+bV96b29tRmFjdG9yID09IGZhY3RvcikKKyAgICAgICAgcmV0dXJuOworICAgIGRfcHRy
LT5zZXRab29tRmFjdG9yKGZhY3Rvcik7CisgICAgZW1pdCB6b29tRmFjdG9yQ2hhbmdlZCgpOwor
fQorCit2b2lkIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFjdG9yKHFyZWFs
IGZhY3RvcikKK3sKKyAgICBtX3pvb21GYWN0b3IgPSBmYWN0b3I7CisgICAgd2ViUGFnZVByb3h5
LT5zZXRQYWdlWm9vbUZhY3RvcihmYWN0b3IpOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdGbGlj
a2FibGVQcml2YXRlOjpzZXRab29tRmFjdG9yKHFyZWFsIGZhY3RvcikKK3sKKyAgICBpZiAoIWlu
dGVyYWN0aW9uRW5naW5lKQorICAgICAgICByZXR1cm47CisgICAgbV96b29tRmFjdG9yID0gZmFj
dG9yOworICAgIGludGVyYWN0aW9uRW5naW5lLT5zZXRab29tRmFjdG9yKGZhY3Rvcik7Cit9CisK
ICNpbmNsdWRlICJtb2NfcXF1aWNrd2Vidmlld19wLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IGZjOGUzYjM3YmJhNzQ3
NzVjNDQ4NTU4MGJhNDZkYWQxZDQxNDlmMzUuLmFjNzQzMjlhZTRhN2U5MzcxZWFlNmZiNWM0Zjgy
ZTc0OWRjNTk1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaApAQCAtMTk1LDYgKzE5NSw5IEBAIHByaXZhdGU6CiAgICAgUVF1aWNr
V2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBwYXJlbnQg
PSAwKTsKICAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNvbnN0OwogCisgICAgdm9pZCBkaXNhYmxl
Q29udGVudFNpemVVcGRhdGUoKTsKKyAgICB2b2lkIGVuYWJsZUNvbnRlbnRTaXplVXBkYXRlKCk7
CisKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9zdXNwZW5kKCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX3Jlc3VtZSgpKTsKICAgICBRX1BSSVZB
VEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9jb250ZW50Vmlld3BvcnRDaGFuZ2VkKGNvbnN0IFFQ
b2ludEYmKSk7CkBAIC0yNTYsNiArMjU5LDcgQEAgY2xhc3MgUVdFQktJVF9FWFBPUlQgUVF1aWNr
V2ViVmlld0V4cGVyaW1lbnRhbCA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX1BST1BFUlRZKFFX
ZWJWaWV3cG9ydEluZm8qIHZpZXdwb3J0SW5mbyBSRUFEIHZpZXdwb3J0SW5mbyBDT05TVEFOVCBG
SU5BTCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTxRUXVpY2tVcmxT
Y2hlbWVEZWxlZ2F0ZT4gdXJsU2NoZW1lRGVsZWdhdGVzIFJFQUQgc2NoZW1lRGVsZWdhdGVzKQog
ICAgIFFfUFJPUEVSVFkoUVN0cmluZyB1c2VyQWdlbnQgUkVBRCB1c2VyQWdlbnQgV1JJVEUgc2V0
VXNlckFnZW50IE5PVElGWSB1c2VyQWdlbnRDaGFuZ2VkKQorICAgIFFfUFJPUEVSVFkocXJlYWwg
em9vbUZhY3RvciBSRUFEIHpvb21GYWN0b3IgV1JJVEUgc2V0Wm9vbUZhY3RvciBOT1RJRlkgem9v
bUZhY3RvckNoYW5nZWQpCiAgICAgUV9FTlVNUyhOYXZpZ2F0aW9uUmVxdWVzdEFjdGlvbkV4cGVy
aW1lbnRhbCkKIAogcHVibGljOgpAQCAtMjg2LDYgKzI5MCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldERhdGFiYXNlUXVvdGFEaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAgICAgUVN0
cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBRU3Ry
aW5nJiB1c2VyQWdlbnQpOworICAgIHFyZWFsIHpvb21GYWN0b3IoKSBjb25zdDsKKyAgICB2b2lk
IHNldFpvb21GYWN0b3IocXJlYWwpOwogCiAgICAgUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJ
bmZvKCk7CiAKQEAgLTMzMiw2ICszMzgsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBtZXNzYWdl
UmVjZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3NhZ2UpOwogICAgIHZvaWQgcHJveHlBdXRo
ZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIHVzZXJBZ2VudENoYW5nZWQoKTsK
KyAgICB2b2lkIHpvb21GYWN0b3JDaGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAgUVF1aWNrV2Vi
VmlldyogcV9wdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmgKaW5kZXggMjJjNTk5NjllNDY5N2E0NGE2OTRjZGE0MjJjOGI5ODFj
OTM4YWNkNy4uNDQ0MmY5OTgwZGMxMjMwNjI1ZWJhNjM1MWMxMTExZjNhODk5Mzc3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3Au
aApAQCAtMTMzLDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICBQYXNzT3duUHRyPERyYXdpbmdBcmVh
UHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKICAgICB2b2lkIGhhbmRsZURvd25sb2Fk
UmVxdWVzdChEb3dubG9hZFByb3h5Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZhY3Rv
cihxcmVhbCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1
aWNrV2ViVmlldyogdmlld3BvcnQpOwogICAgIFJlZlB0cjxRdFdlYkNvbnRleHQ+IGNvbnRleHQ7
CkBAIC0xNjEsMTIgKzE2MywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgUURlY2xhcmF0aXZlQ29tcG9u
ZW50KiBkYXRhYmFzZVF1b3RhRGlhbG9nOwogCiAgICAgYm9vbCBtX3VzZURlZmF1bHRDb250ZW50
SXRlbVNpemU7CisgICAgYm9vbCBtX2NvbnRlbnRTaXplVXBkYXRlRGlzYWJsZWQ7CiAgICAgYm9v
bCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsKICAgICBib29sIG1fcmVuZGVyVG9PZmZzY3Jl
ZW5CdWZmZXI7CiAgICAgYm9vbCBtX2xvYWRTdGFydGVkU2lnbmFsU2VudDsKICAgICBib29sIG1f
ZGlhbG9nQWN0aXZlOwogICAgIFFVcmwgbV9pY29uVVJMOwogICAgIFFVcmwgbV9kZWZlcmVkVXJs
VG9Mb2FkOworICAgIHFyZWFsIG1fem9vbUZhY3RvcjsKIH07CiAKIGNsYXNzIFFRdWlja1dlYlZp
ZXdMZWdhY3lQcml2YXRlIDogcHVibGljIFFRdWlja1dlYlZpZXdQcml2YXRlIHsKQEAgLTE3OCw2
ICsxODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZXdwb3J0U2l6ZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVNb3VzZUV2ZW50cygpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlTW91c2VFdmVudHMoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRab29tRmFjdG9y
KHFyZWFsKTsKIH07CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlIDogcHVi
bGljIFFRdWlja1dlYlZpZXdQcml2YXRlIHsKQEAgLTIwNSw2ICsyMTEsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFFQb2ludCYgcG9zKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFFTaXplJiBuZXdT
aXplKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKTsKKwogcHJpdmF0
ZToKICAgICBRU2NvcGVkUG9pbnRlcjxRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU+IGludGVy
YWN0aW9uRW5naW5lOwogICAgIGJvb2wgcGFnZUlzU3VzcGVuZGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
LmNwcAppbmRleCAxYjJjOTNhYzk4NDUzYzY3YjYzNDhmNzMxNzFjYzcwNjc3YzU4OTZmLi43ZTA1
YmVjMTM1NGRkZjAxZGEyZTYwMGQ4YTRiYjM4YjBlODhkN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
LmNwcApAQCAtMTI3LDYgKzEyNyw3IEBAIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRW
aWV3cG9ydEludGVyYWN0aW9uRW5naW5lKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0CiAgICAgLCBt
X2hhZFVzZXJJbnRlcmFjdGlvbihmYWxzZSkKICAgICAsIG1fc2NhbGVBbmltYXRpb24obmV3IFNj
YWxlQW5pbWF0aW9uKHRoaXMpKQogICAgICwgbV9waW5jaFN0YXJ0U2NhbGUoLTEpCisgICAgLCBt
X3pvb21GYWN0b3IoMSkKIHsKICAgICByZXNldCgpOwogCkBAIC01NTksNiArNTYwLDI4IEBAIHZv
aWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwaW5jaEdlc3R1cmVSZXF1ZXN0VXBkYXRl
KGNvbnN0IFFQb2ludEYmIHBpbmNoCiAgICAgbV92aWV3cG9ydC0+c2V0Q29udGVudFBvcyhtX3Zp
ZXdwb3J0LT5jb250ZW50UG9zKCkgLSBwb3NpdGlvbkRpZmYpOwogfQogCit2b2lkIFF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6c2V0Wm9vbUZhY3RvcihxcmVhbCBmYWN0b3IpCit7CisgICAg
eworICAgICAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVyIGd1YXJkKHRoaXMpOworCisgICAgICAg
IHFyZWFsIGNzc1NjYWxlID0gKGN1cnJlbnRDU1NTY2FsZSgpIC8gY3NzU2NhbGVGcm9tSXRlbSht
X3pvb21GYWN0b3IpKSAqIGNzc1NjYWxlRnJvbUl0ZW0oZmFjdG9yKTsKKyAgICAgICAgbV96b29t
RmFjdG9yID0gZmFjdG9yOworICAgICAgICBxcmVhbCB0YXJnZXRDU1NTY2FsZSA9IG91dGVyQm91
bmRlZENTU1NjYWxlKGNzc1NjYWxlKTsKKworICAgICAgICBRUG9pbnRGIG9sZENvbnRlbnRDZW50
ZXIgPSBtX2NvbnRlbnQtPmJvdW5kaW5nUmVjdCgpLmNlbnRlcigpOworCisgICAgICAgIG1fdmll
d3BvcnQtPmRpc2FibGVDb250ZW50U2l6ZVVwZGF0ZSgpOworICAgICAgICBtX2NvbnRlbnQtPnNl
dENvbnRlbnRzU2NhbGUoaXRlbVNjYWxlRnJvbUNTUyh0YXJnZXRDU1NTY2FsZSkpOworICAgICAg
ICBtX3ZpZXdwb3J0LT5lbmFibGVDb250ZW50U2l6ZVVwZGF0ZSgpOworCisgICAgICAgIFFQb2lu
dEYgbmV3Q29udGVudENlbnRlciA9IG1fY29udGVudC0+Ym91bmRpbmdSZWN0KCkuY2VudGVyKCk7
CisgICAgICAgIG1fdmlld3BvcnQtPnNldENvbnRlbnRQb3MobV92aWV3cG9ydC0+Y29udGVudFBv
cygpICsgKG5ld0NvbnRlbnRDZW50ZXIgLSBvbGRDb250ZW50Q2VudGVyKSk7CisgICAgfQorCisg
ICAgZW5zdXJlQ29udGVudFdpdGhpblZpZXdwb3J0Qm91bmRhcnkoLyogaW1tZWRpYXRlICovIHRy
dWUpOworfQorCiB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGluY2hHZXN0dXJl
RW5kZWQoKQogewogICAgIEFTU0VSVChtX3N1c3BlbmRDb3VudCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgK
aW5kZXggMTVjMzIxNmRkOWRlZTAxMWUyNTYyNGM4ODc4NzIzYmVkMWNkYWRmMi4uNmQ5NzRjMGM4
MDE1ZTRlMjZjYWIwYThjMWRmOWJkNmM0ODNmMzZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaApAQCAt
OTgsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB6b29tVG9BcmVhR2VzdHVyZUVuZGVkKGNv
bnN0IFFQb2ludEYmIHRvdWNoUG9pbnQsIGNvbnN0IFFSZWN0RiYgdGFyZ2V0QXJlYSk7CiAgICAg
dm9pZCBmb2N1c0VkaXRhYmxlQXJlYShjb25zdCBRUmVjdEYmIGNhcmV0QXJlYSwgY29uc3QgUVJl
Y3RGJiB0YXJnZXRBcmVhKTsKIAorICAgIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CisKICAg
ICBjb25zdCBDb25zdHJhaW50cyYgY29uc3RyYWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0
cmFpbnRzOyB9CiAgICAgcXJlYWwgY3VycmVudENTU1NjYWxlKCk7CiAKQEAgLTE2NCw2ICsxNjYs
NyBAQCBwcml2YXRlOgogICAgIFFQb2ludEYgbV9sYXN0UGluY2hDZW50ZXJJblZpZXdwb3J0Q29v
cmRpbmF0ZXM7CiAgICAgUVBvaW50RiBtX2xhc3RTY3JvbGxQb3NpdGlvbjsKICAgICBxcmVhbCBt
X3BpbmNoU3RhcnRTY2FsZTsKKyAgICBxcmVhbCBtX3pvb21GYWN0b3I7CiB9OwogCiBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6Q29uc3Ry
YWludHMmIGEsIGNvbnN0IFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6Q29uc3RyYWludHMm
IGIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YWFkMjhlNDlkYmZiMTRjODQ5N2VhODI0ZjQ3NGI2ZDYxZGU0YmUyNC4uOWQ5ODg4YjY0MWJhNmVj
ZmE0YTA0ZDIwN2ExMWE5MmM4ODBlYjAwNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTE3ICBCYWxhenMg
S2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29taW5n
IHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHpvb21pbmcgc3VwcG9ydCBmb3IgTWluaUJyb3dzZXIgdG8g
dGVzdCB0aGUgbmV3IEFQSS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2Vy
V2luZG93LnFtbDoKKwogMjAxMi0wNC0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1F0XSBBZGQgdGVzdCBzcGVjaWZpYyBwbGF0Zm9ybSBwbHVnaW4g
dG8gYWNoaWV2ZSB1bmlmaWVkIGxheW91dCB0ZXN0IHJlc3VsdHMKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93c2Vy
L3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCAzOGY2YWY5NTE3MGYwMWYwZmU3OWJiMjM1
Y2E4MmFiOWEwZGRjNWYyLi44YzFiY2QxODZlNDhkODZhMmQ3Y2ZiMTk2NjU1NTMwNjU2NjJlNjY0
IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0zMjYs
NiArMzI2LDMxIEBAIFJlY3RhbmdsZSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICB9CisKKyAgICAgICAgS2V5cy5vblByZXNzZWQ6IHsKKyAgICAgICAgICAgIGlm
IChldmVudC5tb2RpZmllcnMgJiBRdC5Db250cm9sTW9kaWZpZXIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoZXZlbnQua2V5ID09IFF0LktleV9QbHVzKSB7CisgICAgICAgICAgICAgICAgICAgIGV4
cGVyaW1lbnRhbC56b29tRmFjdG9yICo9IDEuMjU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50
LmFjY2VwdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9
PSBRdC5LZXlfTWludXMpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsLnpvb21G
YWN0b3IgLz0gMS4yNTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQuYWNjZXB0ZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IE1vdXNlQXJlYSB7CisgICAgICAgICAgICBhbmNob3JzLmZpbGw6IHBhcmVudAorICAgICAgICAg
ICAgb25XaGVlbDogeworICAgICAgICAgICAgICAgIGlmICh3aGVlbC5tb2RpZmllcnMgJiBRdC5D
b250cm9sTW9kaWZpZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hlZWwuYWNjZXB0ZWQgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICBpZiAod2hlZWwuYW5nbGVEZWx0YS55ID4gMCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLnpvb21GYWN0b3IgKj0g
MS4yNTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
d2ViVmlldy5leHBlcmltZW50YWwuem9vbUZhY3RvciAvPSAxLjI1OworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIFNjcm9sbEluZGljYXRv
ciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137532</attachid>
            <date>2012-04-17 07:22:02 -0700</date>
            <delta_ts>2012-04-17 08:34:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120417162200.patch</filename>
            <type>text/plain</type>
            <size>10316</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGE3NDFlODllNzRhZjRk
OWIxOGQ3ZWNhMDliYmFhNThlZTE4NTUxOS4uNTMwM2FlMWVlNjY2MGY5ZTFjZTRlMjk1ZGYzMDll
MTM1MWI1NDM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA0LTE3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IGZvciBwcm9ncmFtbWF0aWMgem9vbWluZy4g
VGhpcyBpcyBpbXBvcnRhbnQKKyAgICAgICAgbW9zdGx5IG9uIGRlc2t0b3Agd2hlcmUgd2UgZG9u
J3QgaGF2ZSBhbnkgd2F5IHRvIHpvb20KKyAgICAgICAgY3VycmVudGx5LiBGb3IgZGVza3RvcCBJ
IHVzZWQgV2ViUGFnZVByb3h5OjpzZXRQYWdlWm9vbUZhY3RvcgorICAgICAgICB3aGljaCBpbXBs
ZW1lbnRzIHRoZSBvbGQsIGNvbW1vbiBkZXNrdG9wIGJlaGF2aW91ci4KKyAgICAgICAgSSBhbHNv
IGFkZGVkIGEgbW9yZSBvciBsZXNzIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3QKKyAgICAgICAgYmVo
YXZpb3VyIGZvciBtb2JpbGUgd2hpY2ggaXMgYmFzaWNhbGx5IGEgY29udGVudCBzY2FsaW5nCisg
ICAgICAgIGZyb20gdGhlIGNvbnRlbnQncyBjZW50ZXIgcG9pbnQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1By
aXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBl
cmltZW50YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6
c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6
c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVn
YWN5UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oOgorICAgICAgICAoUXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lKToKKwogMjAxMi0wNC0xNyAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFpvb20gb3V0IG9u
IHNlY29uZCBkb3VibGUtdGFwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMmIwYzVmOTZiZGNmNGVmNzRkZTY5NDliNzgxMDI1
NThhZGJiZDViZS4uZWM0ODFlNmZjMjhmMDI2ZWE2YTBlNGI0MWNkZGFhNGNmOWEwMmU0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CkBAIC04MSw2ICs4MSw3IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJp
dmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5C
dWZmZXIoZmFsc2UpCiAgICAgLCBtX2xvYWRTdGFydGVkU2lnbmFsU2VudChmYWxzZSkKICAgICAs
IG1fZGlhbG9nQWN0aXZlKGZhbHNlKQorICAgICwgbV96b29tRmFjdG9yKDEpCiB7CiAgICAgdmll
d3BvcnQtPnNldENsaXAodHJ1ZSk7CiAgICAgdmlld3BvcnQtPnNldFBpeGVsQWxpZ25lZCh0cnVl
KTsKQEAgLTE0NDcsNCArMTQ0OCwzMSBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnVwZGF0ZUNvbnRl
bnRzU2l6ZShjb25zdCBRU2l6ZUYmIHNpemUpCiAgICAgZC0+dXBkYXRlQ29udGVudHNTaXplKHNp
emUpOwogfQogCitxcmVhbCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp6b29tRmFjdG9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZF9wdHItPm1fem9vbUZhY3RvcjsKK30KKwordm9pZCBRUXVp
Y2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRab29tRmFjdG9yKHFyZWFsIGZhY3RvcikKK3sKKyAg
ICBpZiAoZF9wdHItPm1fem9vbUZhY3RvciA9PSBmYWN0b3IpCisgICAgICAgIHJldHVybjsKKyAg
ICBkX3B0ci0+c2V0Wm9vbUZhY3RvcihmYWN0b3IpOworICAgIGVtaXQgem9vbUZhY3RvckNoYW5n
ZWQoKTsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6c2V0Wm9vbUZhY3Rv
cihxcmVhbCBmYWN0b3IpCit7CisgICAgbV96b29tRmFjdG9yID0gZmFjdG9yOworICAgIHdlYlBh
Z2VQcm94eS0+c2V0UGFnZVpvb21GYWN0b3IoZmFjdG9yKTsKK30KKwordm9pZCBRUXVpY2tXZWJW
aWV3RmxpY2thYmxlUHJpdmF0ZTo6c2V0Wm9vbUZhY3RvcihxcmVhbCBmYWN0b3IpCit7CisgICAg
aWYgKCFpbnRlcmFjdGlvbkVuZ2luZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fem9vbUZhY3Rv
ciA9IGZhY3RvcjsKKyAgICBpbnRlcmFjdGlvbkVuZ2luZS0+c2V0Wm9vbUZhY3RvcihmYWN0b3Ip
OworfQorCiAjaW5jbHVkZSAibW9jX3FxdWlja3dlYnZpZXdfcC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCBmYzhlM2Iz
N2JiYTc0Nzc1YzQ0ODU1ODBiYTQ2ZGFkMWQ0MTQ5ZjM1Li5hODdjNjYwNzZmYzU1Y2Y5Y2MxOTNh
ZWY3MDQ4MDM3NmI4ZmIzYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI1Niw2ICsyNTYsNyBAQCBjbGFzcyBRV0VCS0lU
X0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3QgewogICAg
IFFfUFJPUEVSVFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJbmZvIFJFQUQgdmlld3BvcnRJ
bmZvIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlTGlzdFByb3Bl
cnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0ZXMgUkVBRCBzY2hl
bWVEZWxlZ2F0ZXMpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHVzZXJBZ2VudCBSRUFEIHVzZXJB
Z2VudCBXUklURSBzZXRVc2VyQWdlbnQgTk9USUZZIHVzZXJBZ2VudENoYW5nZWQpCisgICAgUV9Q
Uk9QRVJUWShxcmVhbCB6b29tRmFjdG9yIFJFQUQgem9vbUZhY3RvciBXUklURSBzZXRab29tRmFj
dG9yIE5PVElGWSB6b29tRmFjdG9yQ2hhbmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1
ZXN0QWN0aW9uRXhwZXJpbWVudGFsKQogCiBwdWJsaWM6CkBAIC0yODYsNiArMjg3LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YURpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25l
bnQqKTsKICAgICBRU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlckFn
ZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CisgICAgcXJlYWwgem9vbUZhY3RvcigpIGNv
bnN0OworICAgIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CiAKICAgICBRV2ViVmlld3BvcnRJ
bmZvKiB2aWV3cG9ydEluZm8oKTsKIApAQCAtMzMyLDYgKzMzNSw3IEBAIFFfU0lHTkFMUzoKICAg
ICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2FnZSk7CiAgICAg
dm9pZCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlckFn
ZW50Q2hhbmdlZCgpOworICAgIHZvaWQgem9vbUZhY3RvckNoYW5nZWQoKTsKIAogcHJpdmF0ZToK
ICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBhZDdiMmQwMzk5OTRkNTBlNDY2
ZjNjMTRiNmZkNWQ4MzJmOGNiMjNmLi42MjBlNjA3M2ZjMjhiYmJjZGQxOTU0YzU3NzhiYTQ4NDJi
ZDM3ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCkBAIC0xMzQsNiArMTM0LDggQEAgcHVibGljOgogICAgIFBhc3NPd25Q
dHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOwogICAgIHZvaWQg
aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tRmFjdG9yKHFyZWFsKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICBRUXVpY2tXZWJW
aWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CiAgICAgUmVmUHRyPFF0V2ViQ29u
dGV4dD4gY29udGV4dDsKQEAgLTE3MCw2ICsxNzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X2RpYWxvZ0FjdGl2ZTsKICAgICBRVXJsIG1faWNvblVSTDsKICAgICBRVXJsIG1fZGVmZXJlZFVy
bFRvTG9hZDsKKyAgICBxcmVhbCBtX3pvb21GYWN0b3I7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJW
aWV3TGVnYWN5UHJpdmF0ZSA6IHB1YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CkBAIC0xODEs
NiArMTg0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91c2VFdmVudHMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZhY3Rv
cihxcmVhbCk7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSA6IHB1
YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CkBAIC0yMDgsNiArMjEzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBRUG9pbnQmIHBvcyk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSYgbmV3
U2l6ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CisKIHByaXZh
dGU6CiAgICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lPiBpbnRl
cmFjdGlvbkVuZ2luZTsKICAgICBib29sIHBhZ2VJc1N1c3BlbmRlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZS5jcHAKaW5kZXggMTc1ZDdlZTAwOWVlODNhZTc2Y2FlOWUwY2Y2N2RmMmY3N2E1M2RiOS4uNzVh
MDZmYTYyZGI2MjE5ZTc0N2M0N2VlOWY3NjY3YzQ3MWJiN2VmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZS5jcHAKQEAgLTEyOCw2ICsxMjgsNyBAQCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydAogICAgICwg
bV96b29tZWRUb0FyZWEoZmFsc2UpCiAgICAgLCBtX3NjYWxlQW5pbWF0aW9uKG5ldyBTY2FsZUFu
aW1hdGlvbih0aGlzKSkKICAgICAsIG1fcGluY2hTdGFydFNjYWxlKC0xKQorICAgICwgbV96b29t
RmFjdG9yKDEpCiB7CiAgICAgcmVzZXQoKTsKIApAQCAtNTY2LDYgKzU2NywyMiBAQCB2b2lkIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGluY2hHZXN0dXJlUmVxdWVzdFVwZGF0ZShjb25z
dCBRUG9pbnRGJiBwaW5jaAogICAgIG1fdmlld3BvcnQtPnNldENvbnRlbnRQb3MobV92aWV3cG9y
dC0+Y29udGVudFBvcygpIC0gcG9zaXRpb25EaWZmKTsKIH0KIAordm9pZCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9yKQoreworICAgIFZpZXdw
b3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQodGhpcyk7CisKKyAgICBxcmVhbCBjc3NTY2FsZSA9IChj
dXJyZW50Q1NTU2NhbGUoKSAvIGNzc1NjYWxlRnJvbUl0ZW0obV96b29tRmFjdG9yKSkgKiBjc3NT
Y2FsZUZyb21JdGVtKGZhY3Rvcik7CisgICAgbV96b29tRmFjdG9yID0gZmFjdG9yOworICAgIHFy
ZWFsIHRhcmdldENTU1NjYWxlID0gb3V0ZXJCb3VuZGVkQ1NTU2NhbGUoY3NzU2NhbGUpOworCisg
ICAgUVBvaW50RiBvbGRDb250ZW50Q2VudGVyID0gbV9jb250ZW50LT5ib3VuZGluZ1JlY3QoKS5j
ZW50ZXIoKTsKKyAgICBtX2NvbnRlbnQtPnNldENvbnRlbnRzU2NhbGUoaXRlbVNjYWxlRnJvbUNT
Uyh0YXJnZXRDU1NTY2FsZSkpOworICAgIFFQb2ludEYgbmV3Q29udGVudENlbnRlciA9IG1fY29u
dGVudC0+Ym91bmRpbmdSZWN0KCkuY2VudGVyKCk7CisgICAgbV92aWV3cG9ydC0+c2V0Q29udGVu
dFBvcyhtX3ZpZXdwb3J0LT5jb250ZW50UG9zKCkgKyAobmV3Q29udGVudENlbnRlciAtIG9sZENv
bnRlbnRDZW50ZXIpKTsKKworICAgIGVuc3VyZUNvbnRlbnRXaXRoaW5WaWV3cG9ydEJvdW5kYXJ5
KC8qIGltbWVkaWF0ZSAqLyB0cnVlKTsKK30KKwogdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25F
bmdpbmU6OnBpbmNoR2VzdHVyZUVuZGVkKCkKIHsKICAgICBBU1NFUlQobV9zdXNwZW5kQ291bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJ
bnRlcmFjdGlvbkVuZ2luZS5oCmluZGV4IGUyM2QzYTVjNWE5ZGY2NGEyNDZkN2M5NTg0NWRjMzZk
YWQ4M2I0ZDQuLjczNDg2MTkzMmJkN2UwZjIxYjI1MjNkNGE5M2JmYWU5NDM2MjhlNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25F
bmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lLmgKQEAgLTkxLDYgKzkxLDggQEAgcHVibGljOgogICAgIHZvaWQgem9vbVRv
QXJlYUdlc3R1cmVFbmRlZChjb25zdCBRUG9pbnRGJiB0b3VjaFBvaW50LCBjb25zdCBRUmVjdEYm
IHRhcmdldEFyZWEpOwogICAgIHZvaWQgZm9jdXNFZGl0YWJsZUFyZWEoY29uc3QgUVJlY3RGJiBj
YXJldEFyZWEsIGNvbnN0IFFSZWN0RiYgdGFyZ2V0QXJlYSk7CiAKKyAgICB2b2lkIHNldFpvb21G
YWN0b3IocXJlYWwpOworCiBRX1NJR05BTFM6CiAgICAgdm9pZCBjb250ZW50U3VzcGVuZFJlcXVl
c3RlZCgpOwogICAgIHZvaWQgY29udGVudFJlc3VtZVJlcXVlc3RlZCgpOwpAQCAtMTYwLDYgKzE2
Miw3IEBAIHByaXZhdGU6CiAgICAgUVBvaW50RiBtX2xhc3RQaW5jaENlbnRlckluVmlld3BvcnRD
b29yZGluYXRlczsKICAgICBRUG9pbnRGIG1fbGFzdFNjcm9sbFBvc2l0aW9uOwogICAgIHFyZWFs
IG1fcGluY2hTdGFydFNjYWxlOworICAgIHFyZWFsIG1fem9vbUZhY3RvcjsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOWI3ODc5
MWUxMDVkODFjYWQ4MTJiMzgzNzk4NzFlOThhNjYwMDdlLi4wOTFkNDhhMWExNDE3ZTg3Mzg5ZTk1
YmQwODZhYWE0N2JiOGRlZTJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMTcgIEJhbGF6cyBLZWxlbWVu
ICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0gQWRkIHpvb21pbmcgc3VwcG9y
dCBmb3IgUVF1aWNrV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODIzMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgem9vbWluZyBzdXBwb3J0IGZvciBNaW5pQnJvd3NlciB0byB0ZXN0IHRo
ZSBuZXcgQVBJLgorCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cu
cW1sOgorCiAyMDEyLTA0LTE3ICBNaWNoYWVsIEJyw7xuaW5nICA8bWljaGFlbC5icnVuaW5nQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBidWlsZHMgd2l0aCBmb3JjZV9zdGF0aWNfbGli
c19hc19zaGFyZWQgZm9yIG5vbi1saW51eCBidWlsZHMuCmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9x
bWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXggMzhmNmFmOTUxNzBmMDFmMGZlNzliYjIzNWNhODJh
YjlhMGRkYzVmMi4uOGMxYmNkMTg2ZTQ4ZDg2YTJkN2NmYjE5NjY1NTUzMDY1NjYyZTY2NCAxMDA2
NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbApAQCAtMzI2LDYgKzMy
NiwzMSBAQCBSZWN0YW5nbGUgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfQorCisgICAgICAgIEtleXMub25QcmVzc2VkOiB7CisgICAgICAgICAgICBpZiAoZXZl
bnQubW9kaWZpZXJzICYgUXQuQ29udHJvbE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgaWYg
KGV2ZW50LmtleSA9PSBRdC5LZXlfUGx1cykgeworICAgICAgICAgICAgICAgICAgICBleHBlcmlt
ZW50YWwuem9vbUZhY3RvciAqPSAxLjI1OworICAgICAgICAgICAgICAgICAgICBldmVudC5hY2Nl
cHRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT0gUXQu
S2V5X01pbnVzKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbC56b29tRmFjdG9y
IC89IDEuMjU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmFjY2VwdGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBNb3Vz
ZUFyZWEgeworICAgICAgICAgICAgYW5jaG9ycy5maWxsOiBwYXJlbnQKKyAgICAgICAgICAgIG9u
V2hlZWw6IHsKKyAgICAgICAgICAgICAgICBpZiAod2hlZWwubW9kaWZpZXJzICYgUXQuQ29udHJv
bE1vZGlmaWVyKSB7CisgICAgICAgICAgICAgICAgICAgIHdoZWVsLmFjY2VwdGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHdoZWVsLmFuZ2xlRGVsdGEueSA+IDApCisgICAgICAg
ICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29tRmFjdG9yICo9IDEuMjU7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHdlYlZp
ZXcuZXhwZXJpbWVudGFsLnpvb21GYWN0b3IgLz0gMS4yNTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBTY3JvbGxJbmRpY2F0b3Igewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137542</attachid>
            <date>2012-04-17 08:34:20 -0700</date>
            <delta_ts>2012-04-23 07:43:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120417173418.patch</filename>
            <type>text/plain</type>
            <size>10113</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGE3NDFlODllNzRhZjRk
OWIxOGQ3ZWNhMDliYmFhNThlZTE4NTUxOS4uNTMwM2FlMWVlNjY2MGY5ZTFjZTRlMjk1ZGYzMDll
MTM1MWI1NDM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA0LTE3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCB6b29t
aW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IGZvciBwcm9ncmFtbWF0aWMgem9vbWluZy4g
VGhpcyBpcyBpbXBvcnRhbnQKKyAgICAgICAgbW9zdGx5IG9uIGRlc2t0b3Agd2hlcmUgd2UgZG9u
J3QgaGF2ZSBhbnkgd2F5IHRvIHpvb20KKyAgICAgICAgY3VycmVudGx5LiBGb3IgZGVza3RvcCBJ
IHVzZWQgV2ViUGFnZVByb3h5OjpzZXRQYWdlWm9vbUZhY3RvcgorICAgICAgICB3aGljaCBpbXBs
ZW1lbnRzIHRoZSBvbGQsIGNvbW1vbiBkZXNrdG9wIGJlaGF2aW91ci4KKyAgICAgICAgSSBhbHNv
IGFkZGVkIGEgbW9yZSBvciBsZXNzIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3QKKyAgICAgICAgYmVo
YXZpb3VyIGZvciBtb2JpbGUgd2hpY2ggaXMgYmFzaWNhbGx5IGEgY29udGVudCBzY2FsaW5nCisg
ICAgICAgIGZyb20gdGhlIGNvbnRlbnQncyBjZW50ZXIgcG9pbnQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1By
aXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBl
cmltZW50YWw6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRh
bDo6c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6
c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6
c2V0Wm9vbUZhY3Rvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3AuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVn
YWN5UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oOgorICAgICAgICAoUXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lKToKKwogMjAxMi0wNC0xNyAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFpvb20gb3V0IG9u
IHNlY29uZCBkb3VibGUtdGFwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMmIwYzVmOTZiZGNmNGVmNzRkZTY5NDliNzgxMDI1
NThhZGJiZDViZS4uZWM0ODFlNmZjMjhmMDI2ZWE2YTBlNGI0MWNkZGFhNGNmOWEwMmU0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CkBAIC04MSw2ICs4MSw3IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJp
dmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5C
dWZmZXIoZmFsc2UpCiAgICAgLCBtX2xvYWRTdGFydGVkU2lnbmFsU2VudChmYWxzZSkKICAgICAs
IG1fZGlhbG9nQWN0aXZlKGZhbHNlKQorICAgICwgbV96b29tRmFjdG9yKDEpCiB7CiAgICAgdmll
d3BvcnQtPnNldENsaXAodHJ1ZSk7CiAgICAgdmlld3BvcnQtPnNldFBpeGVsQWxpZ25lZCh0cnVl
KTsKQEAgLTE0NDcsNCArMTQ0OCwzMSBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OnVwZGF0ZUNvbnRl
bnRzU2l6ZShjb25zdCBRU2l6ZUYmIHNpemUpCiAgICAgZC0+dXBkYXRlQ29udGVudHNTaXplKHNp
emUpOwogfQogCitxcmVhbCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjp6b29tRmFjdG9yKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZF9wdHItPm1fem9vbUZhY3RvcjsKK30KKwordm9pZCBRUXVp
Y2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRab29tRmFjdG9yKHFyZWFsIGZhY3RvcikKK3sKKyAg
ICBpZiAoZF9wdHItPm1fem9vbUZhY3RvciA9PSBmYWN0b3IpCisgICAgICAgIHJldHVybjsKKyAg
ICBkX3B0ci0+c2V0Wm9vbUZhY3RvcihmYWN0b3IpOworICAgIGVtaXQgem9vbUZhY3RvckNoYW5n
ZWQoKTsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6c2V0Wm9vbUZhY3Rv
cihxcmVhbCBmYWN0b3IpCit7CisgICAgbV96b29tRmFjdG9yID0gZmFjdG9yOworICAgIHdlYlBh
Z2VQcm94eS0+c2V0UGFnZVpvb21GYWN0b3IoZmFjdG9yKTsKK30KKwordm9pZCBRUXVpY2tXZWJW
aWV3RmxpY2thYmxlUHJpdmF0ZTo6c2V0Wm9vbUZhY3RvcihxcmVhbCBmYWN0b3IpCit7CisgICAg
aWYgKCFpbnRlcmFjdGlvbkVuZ2luZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fem9vbUZhY3Rv
ciA9IGZhY3RvcjsKKyAgICBpbnRlcmFjdGlvbkVuZ2luZS0+c2V0Wm9vbUZhY3RvcihmYWN0b3Ip
OworfQorCiAjaW5jbHVkZSAibW9jX3FxdWlja3dlYnZpZXdfcC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCBmYzhlM2Iz
N2JiYTc0Nzc1YzQ0ODU1ODBiYTQ2ZGFkMWQ0MTQ5ZjM1Li5hODdjNjYwNzZmYzU1Y2Y5Y2MxOTNh
ZWY3MDQ4MDM3NmI4ZmIzYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTI1Niw2ICsyNTYsNyBAQCBjbGFzcyBRV0VCS0lU
X0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3QgewogICAg
IFFfUFJPUEVSVFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJbmZvIFJFQUQgdmlld3BvcnRJ
bmZvIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlTGlzdFByb3Bl
cnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0ZXMgUkVBRCBzY2hl
bWVEZWxlZ2F0ZXMpCiAgICAgUV9QUk9QRVJUWShRU3RyaW5nIHVzZXJBZ2VudCBSRUFEIHVzZXJB
Z2VudCBXUklURSBzZXRVc2VyQWdlbnQgTk9USUZZIHVzZXJBZ2VudENoYW5nZWQpCisgICAgUV9Q
Uk9QRVJUWShxcmVhbCB6b29tRmFjdG9yIFJFQUQgem9vbUZhY3RvciBXUklURSBzZXRab29tRmFj
dG9yIE5PVElGWSB6b29tRmFjdG9yQ2hhbmdlZCkKICAgICBRX0VOVU1TKE5hdmlnYXRpb25SZXF1
ZXN0QWN0aW9uRXhwZXJpbWVudGFsKQogCiBwdWJsaWM6CkBAIC0yODYsNiArMjg3LDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YURpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25l
bnQqKTsKICAgICBRU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlckFn
ZW50KGNvbnN0IFFTdHJpbmcmIHVzZXJBZ2VudCk7CisgICAgcXJlYWwgem9vbUZhY3RvcigpIGNv
bnN0OworICAgIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CiAKICAgICBRV2ViVmlld3BvcnRJ
bmZvKiB2aWV3cG9ydEluZm8oKTsKIApAQCAtMzMyLDYgKzMzNSw3IEBAIFFfU0lHTkFMUzoKICAg
ICB2b2lkIG1lc3NhZ2VSZWNlaXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2FnZSk7CiAgICAg
dm9pZCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlckFn
ZW50Q2hhbmdlZCgpOworICAgIHZvaWQgem9vbUZhY3RvckNoYW5nZWQoKTsKIAogcHJpdmF0ZToK
ICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBhZDdiMmQwMzk5OTRkNTBlNDY2
ZjNjMTRiNmZkNWQ4MzJmOGNiMjNmLi42MjBlNjA3M2ZjMjhiYmJjZGQxOTU0YzU3NzhiYTQ4NDJi
ZDM3ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCkBAIC0xMzQsNiArMTM0LDggQEAgcHVibGljOgogICAgIFBhc3NPd25Q
dHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOwogICAgIHZvaWQg
aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKTsKIAorICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tRmFjdG9yKHFyZWFsKSA9IDA7CisKIHByb3RlY3RlZDoKICAgICBRUXVpY2tXZWJW
aWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCk7CiAgICAgUmVmUHRyPFF0V2ViQ29u
dGV4dD4gY29udGV4dDsKQEAgLTE3MCw2ICsxNzIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X2RpYWxvZ0FjdGl2ZTsKICAgICBRVXJsIG1faWNvblVSTDsKICAgICBRVXJsIG1fZGVmZXJlZFVy
bFRvTG9hZDsKKyAgICBxcmVhbCBtX3pvb21GYWN0b3I7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJW
aWV3TGVnYWN5UHJpdmF0ZSA6IHB1YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CkBAIC0xODEs
NiArMTg0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91c2VFdmVudHMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZhY3Rv
cihxcmVhbCk7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSA6IHB1
YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CkBAIC0yMDgsNiArMjEzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBRUG9pbnQmIHBvcyk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSYgbmV3
U2l6ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbUZhY3RvcihxcmVhbCk7CisKIHByaXZh
dGU6CiAgICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lPiBpbnRl
cmFjdGlvbkVuZ2luZTsKICAgICBib29sIHBhZ2VJc1N1c3BlbmRlZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZS5jcHAKaW5kZXggMTc1ZDdlZTAwOWVlODNhZTc2Y2FlOWUwY2Y2N2RmMmY3N2E1M2RiOS4uMDlm
MGI3MWVlYTAxNzkzYzdhOTU0NGFkNGVlMzY0MGU3ODY2YTg3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZS5jcHAKQEAgLTEyOCw2ICsxMjgsNyBAQCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OlF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydAogICAgICwg
bV96b29tZWRUb0FyZWEoZmFsc2UpCiAgICAgLCBtX3NjYWxlQW5pbWF0aW9uKG5ldyBTY2FsZUFu
aW1hdGlvbih0aGlzKSkKICAgICAsIG1fcGluY2hTdGFydFNjYWxlKC0xKQorICAgICwgbV96b29t
RmFjdG9yKDEpCiB7CiAgICAgcmVzZXQoKTsKIApAQCAtNTY2LDYgKzU2NywxOCBAQCB2b2lkIFF0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cGluY2hHZXN0dXJlUmVxdWVzdFVwZGF0ZShjb25z
dCBRUG9pbnRGJiBwaW5jaAogICAgIG1fdmlld3BvcnQtPnNldENvbnRlbnRQb3MobV92aWV3cG9y
dC0+Y29udGVudFBvcygpIC0gcG9zaXRpb25EaWZmKTsKIH0KIAordm9pZCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9yKQoreworICAgIFZpZXdw
b3J0VXBkYXRlRGVmZXJyZXIgZ3VhcmQodGhpcyk7CisKKyAgICBxcmVhbCBjc3NTY2FsZSA9IChj
dXJyZW50Q1NTU2NhbGUoKSAvIGNzc1NjYWxlRnJvbUl0ZW0obV96b29tRmFjdG9yKSkgKiBjc3NT
Y2FsZUZyb21JdGVtKGZhY3Rvcik7CisgICAgbV96b29tRmFjdG9yID0gZmFjdG9yOworICAgIHFy
ZWFsIHRhcmdldENTU1NjYWxlID0gb3V0ZXJCb3VuZGVkQ1NTU2NhbGUoY3NzU2NhbGUpOworICAg
IHNjYWxlQ29udGVudChtX3ZpZXdwb3J0LT5tYXBUb1dlYkNvbnRlbnQobV92aWV3cG9ydC0+Ym91
bmRpbmdSZWN0KCkuY2VudGVyKCkpLCB0YXJnZXRDU1NTY2FsZSk7CisKKyAgICBlbnN1cmVDb250
ZW50V2l0aGluVmlld3BvcnRCb3VuZGFyeSgvKiBpbW1lZGlhdGUgKi8gdHJ1ZSk7Cit9CisKIHZv
aWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpwaW5jaEdlc3R1cmVFbmRlZCgpCiB7CiAg
ICAgQVNTRVJUKG1fc3VzcGVuZENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAppbmRleCBlMjNkM2E1
YzVhOWRmNjRhMjQ2ZDdjOTU4NDVkYzM2ZGFkODNiNGQ0Li43MzQ4NjE5MzJiZDdlMGYyMWIyNTIz
ZDRhOTNiZmFlOTQzNjI4ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC05MSw2ICs5MSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHpvb21Ub0FyZWFHZXN0dXJlRW5kZWQoY29uc3QgUVBvaW50RiYg
dG91Y2hQb2ludCwgY29uc3QgUVJlY3RGJiB0YXJnZXRBcmVhKTsKICAgICB2b2lkIGZvY3VzRWRp
dGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2FyZXRBcmVhLCBjb25zdCBRUmVjdEYmIHRhcmdldEFy
ZWEpOwogCisgICAgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKTsKKwogUV9TSUdOQUxTOgogICAg
IHZvaWQgY29udGVudFN1c3BlbmRSZXF1ZXN0ZWQoKTsKICAgICB2b2lkIGNvbnRlbnRSZXN1bWVS
ZXF1ZXN0ZWQoKTsKQEAgLTE2MCw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIFFQb2ludEYgbV9s
YXN0UGluY2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXM7CiAgICAgUVBvaW50RiBtX2xhc3RT
Y3JvbGxQb3NpdGlvbjsKICAgICBxcmVhbCBtX3BpbmNoU3RhcnRTY2FsZTsKKyAgICBxcmVhbCBt
X3pvb21GYWN0b3I7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTliNzg3OTFlMTA1ZDgxY2FkODEyYjM4Mzc5ODcxZTk4YTY2MDA3
ZS4uMDkxZDQ4YTFhMTQxN2U4NzM4OWU5NWJkMDg2YWFhNDdiYjhkZWUyYiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTA0LTE3ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBbUXRdIEFkZCB6b29taW5nIHN1cHBvcnQgZm9yIFFRdWlja1dlYlZpZXcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMzM3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHpvb21pbmcgc3VwcG9ydCBm
b3IgTWluaUJyb3dzZXIgdG8gdGVzdCB0aGUgbmV3IEFQSS4KKworICAgICAgICAqIE1pbmlCcm93
c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbDoKKwogMjAxMi0wNC0xNyAgTWljaGFlbCBCcsO8
bmluZyAgPG1pY2hhZWwuYnJ1bmluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggYnVp
bGRzIHdpdGggZm9yY2Vfc3RhdGljX2xpYnNfYXNfc2hhcmVkIGZvciBub24tbGludXggYnVpbGRz
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1s
IGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCmluZGV4IDM4ZjZh
Zjk1MTcwZjAxZjBmZTc5YmIyMzVjYTgyYWI5YTBkZGM1ZjIuLjhjMWJjZDE4NmU0OGQ4NmEyZDdj
ZmIxOTY2NTU1MzA2NTY2MmU2NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Ft
bC9Ccm93c2VyV2luZG93LnFtbAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3Nl
cldpbmRvdy5xbWwKQEAgLTMyNiw2ICszMjYsMzEgQEAgUmVjdGFuZ2xlIHsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBLZXlzLm9uUHJlc3Nl
ZDogeworICAgICAgICAgICAgaWYgKGV2ZW50Lm1vZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmll
cikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT0gUXQuS2V5X1BsdXMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsLnpvb21GYWN0b3IgKj0gMS4yNTsKKyAgICAg
ICAgICAgICAgICAgICAgZXZlbnQuYWNjZXB0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoZXZlbnQua2V5ID09IFF0LktleV9NaW51cykgeworICAgICAgICAgICAgICAgICAg
ICBleHBlcmltZW50YWwuem9vbUZhY3RvciAvPSAxLjI1OworICAgICAgICAgICAgICAgICAgICBl
dmVudC5hY2NlcHRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgTW91c2VBcmVhIHsKKyAgICAgICAgICAgIGFuY2hvcnMuZmls
bDogcGFyZW50CisgICAgICAgICAgICBvbldoZWVsOiB7CisgICAgICAgICAgICAgICAgaWYgKHdo
ZWVsLm1vZGlmaWVycyAmIFF0LkNvbnRyb2xNb2RpZmllcikgeworICAgICAgICAgICAgICAgICAg
ICB3aGVlbC5hY2NlcHRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aGVlbC5h
bmdsZURlbHRhLnkgPiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgd2ViVmlldy5leHBlcmlt
ZW50YWwuem9vbUZhY3RvciAqPSAxLjI1OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC56b29tRmFjdG9yIC89IDEu
MjU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQog
CiAgICAgU2Nyb2xsSW5kaWNhdG9yIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138343</attachid>
            <date>2012-04-23 07:43:51 -0700</date>
            <delta_ts>2012-04-23 07:56:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82337-20120423164348.patch</filename>
            <type>text/plain</type>
            <size>7600</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTdmZTFlYzg5YjVmZTkz
YjUyN2FhMzgzYWRmZmY0YTdmMmVhZDZmNS4uNzM0OTRhZjEzNzZjZTYzYzc2NGJmMjQxM2QzNWVm
YWFhMTBmN2M1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA0LTIzICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEFkZCBkZXNr
dG9wIHpvb21pbmcgc3VwcG9ydCBmb3IgUVF1aWNrV2ViVmlldworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIzMzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcHJpdmF0ZSBDKysgQVBJIGZvciBwcm9n
cmFtbWF0aWMgem9vbWluZy4KKyAgICAgICAgVGhpcyBpcyBpbXBvcnRhbnQgb24gZGVza3RvcCB3
aGVyZSB3ZSBkb24ndAorICAgICAgICBoYXZlIGFueSB3YXkgdG8gem9vbSBjdXJyZW50bHkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAo
UVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6Onpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNr
V2ViVmlld0xlZ2FjeVByaXZhdGU6OnNldFpvb21GYWN0b3IpOgorICAgICAgICAoUVF1aWNrV2Vi
Vmlldzo6em9vbUZhY3Rvcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3OjpzZXRab29tRmFjdG9y
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjp6b29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2
YXRlOjpzZXRab29tRmFjdG9yKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlKToKKwogMjAxMi0wNC0yMyAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHRlc3QgZnVuY3Rpb24g
dG8gZ2V0IHBsYWNlaG9sZGVyIHN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMmIwYzVmOTZiZGNmNGVmNzRkZTY5NDli
NzgxMDI1NThhZGJiZDViZS4uYzMxMDdjN2VjYjY0ZDE4NDU0NjI1MmExZjBkNjcyYmU2YWFjOWUz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwCkBAIC01MjQsNiArNTI0LDE2IEBAIHZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZh
dGU6OmRpc2FibGVNb3VzZUV2ZW50cygpCiAgICAgcS0+c2V0QWNjZXB0SG92ZXJFdmVudHMoZmFs
c2UpOwogfQogCitxcmVhbCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6em9vbUZhY3Rvcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHdlYlBhZ2VQcm94eS0+cGFnZVpvb21GYWN0b3IoKTsKK30K
Kwordm9pZCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6c2V0Wm9vbUZhY3RvcihxcmVhbCBm
YWN0b3IpCit7CisgICAgd2ViUGFnZVByb3h5LT5zZXRQYWdlWm9vbUZhY3RvcihmYWN0b3IpOwor
fQorCiBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6UVF1aWNrV2ViVmlld0ZsaWNrYWJs
ZVByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgOiBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSh2aWV3cG9ydCkKICAgICAsIHBhZ2VJc1N1c3BlbmRlZCh0cnVlKQpAQCAtMTQ0Nyw0ICsx
NDU3LDE3IEBAIHZvaWQgUVF1aWNrV2ViVmlldzo6dXBkYXRlQ29udGVudHNTaXplKGNvbnN0IFFT
aXplRiYgc2l6ZSkKICAgICBkLT51cGRhdGVDb250ZW50c1NpemUoc2l6ZSk7CiB9CiAKK3FyZWFs
IFFRdWlja1dlYlZpZXc6Onpvb21GYWN0b3IoKSBjb25zdAoreworICAgIFFfRChjb25zdCBRUXVp
Y2tXZWJWaWV3KTsKKyAgICByZXR1cm4gZC0+em9vbUZhY3RvcigpOworfQorCit2b2lkIFFRdWlj
a1dlYlZpZXc6OnNldFpvb21GYWN0b3IocXJlYWwgZmFjdG9yKQoreworCisgICAgUV9EKFFRdWlj
a1dlYlZpZXcpOworICAgIGQtPnNldFpvb21GYWN0b3IoZmFjdG9yKTsKK30KKwogI2luY2x1ZGUg
Im1vY19xcXVpY2t3ZWJ2aWV3X3AuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggZmM4ZTNiMzdiYmE3NDc3NWM0NDg1NTgw
YmE0NmRhZDFkNDE0OWYzNS4uYTlhZDQ4YmI1MGY0ZTMxZWIzZjk0MjBkYWY4YjAzODI3YmEzOTAw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXdfcC5oCkBAIC0xNDEsNiArMTQxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbnRl
bnRzU2l6ZShjb25zdCBRU2l6ZUYmKTsKICAgICBRUG9pbnRGIHBhZ2VJdGVtUG9zKCk7CiAKKyAg
ICAvLyBQcml2YXRlIEMrKy1vbmx5IEFQSS4KKyAgICBxcmVhbCB6b29tRmFjdG9yKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKTsKKwogcHVibGljIFFfU0xPVFM6CiAgICAg
dm9pZCBsb2FkSHRtbChjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsID0g
UVVybCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGFkN2IyZDAzOTk5NGQ1MGU0NjZmM2MxNGI2ZmQ1ZDgzMmY4
Y2IyM2YuLjFjNTU0NGM5MjdmZjM3YmU4ZWVlZjJhNDE3ZTIzM2ZmYjdjNzJiNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
QEAgLTkwLDYgKzkwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBfcV9yZXN1bWUoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgX3FfY29udGVudFZpZXdwb3J0Q2hhbmdlZChjb25zdCBRUG9p
bnRGJiB0cmFqZWN0b3J5KSB7IH07CiAKKyAgICB2aXJ0dWFsIHFyZWFsIHpvb21GYWN0b3IoKSBj
b25zdCB7IHJldHVybiAxOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFpvb21GYWN0b3IocXJlYWwp
IHsgfQorCiAgICAgdm9pZCBfcV9vblZpc2libGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBfcV9vblVy
bENoYW5nZWQoKTsKICAgICB2b2lkIF9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChR
V2ViRG93bmxvYWRJdGVtKik7CkBAIC0xODEsNiArMTg0LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91
c2VFdmVudHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisKKyAg
ICBxcmVhbCB6b29tRmFjdG9yKCkgY29uc3Q7CisgICAgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFs
KTsKIH07CiAKIGNsYXNzIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlIDogcHVibGljIFFR
dWlja1dlYlZpZXdQcml2YXRlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBkMjQ2YmY5NDJjMTRjZDc3NTUxMzNmMjA1YmYzMDk3YmYyMjlhOTgy
Li4wYWYwOTczNzUzMGFlZWJhMDc2ZDczNjMwNWExYWY5MGQyMmQ0ZjhmIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTItMDQtMjMgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFtRdF0gQWRkIGRlc2t0b3Agem9vbWluZyBzdXBwb3J0IGZvciBRUXVpY2tXZWJWaWV3CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjMzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB6b29taW5nIHN1
cHBvcnQgZm9yIE1pbmlCcm93c2VyIHRvCisgICAgICAgIHRlc3QgdGhlIG5ldyBBUEkuCisKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcDoKKyAgICAgICAgKEJyb3dz
ZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAoQnJvd3NlcldpbmRvdzo6em9vbUlu
KToKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6Onpvb21PdXQpOgorICAgICAgICAoQnJvd3Nlcldp
bmRvdzo6a2V5UHJlc3NFdmVudCk6CisgICAgICAgIChCcm93c2VyV2luZG93Ojp3aGVlbEV2ZW50
KToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93Lmg6CisgICAgICAgIChC
cm93c2VyV2luZG93KToKKwogMjAxMi0wNC0yMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbGluZyBvdXQgcjExNDg4MSwgYmVj
YXVzZSBpdCBicm9rZSB1cGxvYWQgYnVpbGRzdGVwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2Vy
V2luZG93LmNwcAppbmRleCAyN2JhYzQ1NjhjYzU3NTZiMTRkNWQ2ODA5YjBkNjVmMzg4YzRiZjk4
Li5iZjExNWViZjc4Y2ZiNDRhODNjZTZjNWUwZjhiNDk3MjczMDkxNDQzIDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcApAQCAtNjYsNiArNjYsMTMgQEAgQnJvd3NlcldpbmRv
dzo6QnJvd3NlcldpbmRvdyhXaW5kb3dPcHRpb25zKiBvcHRpb25zKQogCiAgICAgaWYgKCFvcHRp
b25zLT51c2VyQWdlbnQoKS5pc051bGwoKSkKICAgICAgICAgd2ViVmlld0V4cGVyaW1lbnRhbCgp
LT5zZXRVc2VyQWdlbnQob3B0aW9ucy0+dXNlckFnZW50KCkpOworCisgICAgLy8gWm9vbSB2YWx1
ZXMgYXJlIGNob3NlbiB0byBiZSBsaWtlIGluIE1vemlsbGEgRmlyZWZveCAzLgorICAgIG1fem9v
bUxldmVscyA8PCAwLjMgPDwgMC41IDw8IDAuNjcgPDwgMC44IDw8IDAuOQorICAgICAgICAgICAg
ICAgICA8PCAxCisgICAgICAgICAgICAgICAgIDw8IDEuMTEgPDwgMS4xMiA8PCAxLjMzIDw8IDEu
NSA8PCAxLjcgPDwgMiA8PCAyLjQgPDwgMzsKKworICAgIG1fY3VycmVudFpvb21MZXZlbCA9IG1f
em9vbUxldmVscy5pbmRleE9mKDEpOwogfQogCiBRUXVpY2tXZWJWaWV3KiBCcm93c2VyV2luZG93
Ojp3ZWJWaWV3KCkgY29uc3QKQEAgLTEzOSwzICsxNDYsNDkgQEAgdm9pZCBCcm93c2VyV2luZG93
OjpvblRpdGxlQ2hhbmdlZChRU3RyaW5nIHRpdGxlKQogICAgICAgICB0aXRsZSA9IFFMYXRpbjFT
dHJpbmcoIk1pbmlCcm93c2VyIik7CiAgICAgc2V0V2luZG93VGl0bGUodGl0bGUpOwogfQorCit2
b2lkIEJyb3dzZXJXaW5kb3c6Onpvb21JbigpCit7CisgICAgaWYgKG1fY3VycmVudFpvb21MZXZl
bCA8IG1fem9vbUxldmVscy5zaXplKCkgLSAxKQorICAgICAgICArK21fY3VycmVudFpvb21MZXZl
bDsKKyAgICB3ZWJWaWV3KCktPnNldFpvb21GYWN0b3IobV96b29tTGV2ZWxzW21fY3VycmVudFpv
b21MZXZlbF0pOworfQorCit2b2lkIEJyb3dzZXJXaW5kb3c6Onpvb21PdXQoKQoreworICAgIGlm
IChtX2N1cnJlbnRab29tTGV2ZWwgPiAwKQorICAgICAgICAtLW1fY3VycmVudFpvb21MZXZlbDsK
KyAgICB3ZWJWaWV3KCktPnNldFpvb21GYWN0b3IobV96b29tTGV2ZWxzW21fY3VycmVudFpvb21M
ZXZlbF0pOworfQorCit2b2lkIEJyb3dzZXJXaW5kb3c6OmtleVByZXNzRXZlbnQoUUtleUV2ZW50
KiBldmVudCkKK3sKKworICAgIGlmIChldmVudC0+bW9kaWZpZXJzKCkgJiBRdDo6Q29udHJvbE1v
ZGlmaWVyKSB7CisgICAgICAgIGJvb2wgaGFuZGxlZDsKKyAgICAgICAgaWYgKChoYW5kbGVkID0g
ZXZlbnQtPmtleSgpID09IFF0OjpLZXlfUGx1cykpCisgICAgICAgICAgICB6b29tSW4oKTsKKyAg
ICAgICAgZWxzZSBpZiAoKGhhbmRsZWQgPSBldmVudC0+a2V5KCkgPT0gUXQ6OktleV9NaW51cykp
CisgICAgICAgICAgICB6b29tT3V0KCk7CisKKyAgICAgICAgaWYgKGhhbmRsZWQpIHsKKyAgICAg
ICAgICAgIGV2ZW50LT5hY2NlcHQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBRUXVpY2tWaWV3OjprZXlQcmVzc0V2ZW50KGV2ZW50KTsKK30KKwordm9pZCBC
cm93c2VyV2luZG93Ojp3aGVlbEV2ZW50KFFXaGVlbEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAo
ZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OkNvbnRyb2xNb2RpZmllciAmJiBldmVudC0+b3JpZW50
YXRpb24oKSA9PSBRdDo6VmVydGljYWwpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5kZWx0YSgpID4g
MCkKKyAgICAgICAgICAgIHpvb21JbigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB6b29t
T3V0KCk7CisKKyAgICAgICAgZXZlbnQtPmFjY2VwdCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIFFRdWlja1ZpZXc6OndoZWVsRXZlbnQoZXZlbnQpOworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQv
QnJvd3NlcldpbmRvdy5oCmluZGV4IDlmMGE2NTY1N2QzMDkzMWMzY2RkNzJhYTQyNzE4N2RlNDUx
NTgyZjcuLjFlN2Y3ZjUyZGNkMTY3MjFlNDA1NmI2YTU5NTI1NzBlODJjZWY1YmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgKQEAgLTYwLDcgKzYwLDE1IEBAIHByaXZhdGUgc2xv
dHM6CiAgICAgdm9pZCBvblRpdGxlQ2hhbmdlZChRU3RyaW5nKTsKIAogcHJpdmF0ZToKKyAgICB2
b2lkIHpvb21JbigpOworICAgIHZvaWQgem9vbU91dCgpOworCisgICAgdmlydHVhbCB2b2lkIGtl
eVByZXNzRXZlbnQoUUtleUV2ZW50Kik7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnQoUVdo
ZWVsRXZlbnQqKTsKKwogICAgIFdpbmRvd09wdGlvbnMqIG1fd2luZG93T3B0aW9uczsKKyAgICBR
VmVjdG9yPHFyZWFsPiBtX3pvb21MZXZlbHM7CisgICAgdW5zaWduZWQgbV9jdXJyZW50Wm9vbUxl
dmVsOwogfTsKIAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>