<?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>80294</bug_id>
          
          <creation_ts>2012-03-05 08:49:00 -0800</creation_ts>
          <short_desc>[Qt] Interaction Engine suspends content during pageload</short_desc>
          <delta_ts>2012-03-06 09:55:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80165</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>abecsi</cc>
    
    <cc>hausmann</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570740</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 08:49:00 -0800</bug_when>
    <thetext>Several calls to suspend and resume are made during page load. This should be entirely unnecessary and can only slow loading down.

The cause is the ViewportUpdateDeferrer that suspends and resumes content every time updates are deferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570748</commentid>
    <comment_count>1</comment_count>
      <attachid>130145</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-05 08:57:17 -0800</bug_when>
    <thetext>Created attachment 130145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571020</commentid>
    <comment_count>2</comment_count>
      <attachid>130145</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-05 13:56:18 -0800</bug_when>
    <thetext>Comment on attachment 130145
Patch

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

&gt; Source/WebKit2/ChangeLog:6
&gt; +        Only suspend content when viewport updates are deferred for an animation.

and interaction. This is also suspending during pan, which isn&apos;t really being animated.

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:64
&gt; -    ViewportUpdateDeferrer(QtViewportInteractionEngine* engine)
&gt; +    ViewportUpdateDeferrer(QtViewportInteractionEngine* engine, bool animation = false)

Have you looked whether the other ViewportUpdateDeferrer calls actually make any sense?

Maybe this class needs a clean up instead.

Also what happens if the last class destructing didn&apos;t have animation set to true? then we will never resume again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571654</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-06 01:54:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 130145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130145&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:6
&gt; &gt; +        Only suspend content when viewport updates are deferred for an animation.
&gt; 
&gt; and interaction. This is also suspending during pan, which isn&apos;t really being animated.
&gt; 
That is what I meant. The pan set the animation flag.

&gt; &gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:64
&gt; &gt; -    ViewportUpdateDeferrer(QtViewportInteractionEngine* engine)
&gt; &gt; +    ViewportUpdateDeferrer(QtViewportInteractionEngine* engine, bool animation = false)
&gt; 
&gt; Have you looked whether the other ViewportUpdateDeferrer calls actually make any sense?
&gt; 
&gt; Maybe this class needs a clean up instead.
&gt; 
I started doing that but realized that we end up sending more position updates. When the animation flag is not set, the class still postpones sending an update on position to the UI-class. This means a series of function calls changing zoom and then moving the viewport only ends up sending one update, instead of an update for each separate functions.

&gt; Also what happens if the last class destructing didn&apos;t have animation set to true? then we will never resume again.

That is actually why the animation flag is not remembered. Instead the animation flags sets a flag on the engine that content has been suspended, then the last class checks that flag instead of whether it was an animation itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571698</commentid>
    <comment_count>4</comment_count>
      <attachid>130145</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-03-06 03:08:49 -0800</bug_when>
    <thetext>Comment on attachment 130145
Patch

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

I think in general this looks good to me. I think the readability should be addressed (r-), but otherwise this is certainly an improvement :)

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:74
&gt; +        if (animation) {
&gt; +            engine-&gt;m_suspendedContent = true;
&gt; +            emit engine-&gt;contentSuspendRequested();
&gt; +        }

Would it make sense to move this code into a method in ViewportInteractionEngine, instead of modifying the state of the engine and emitting its signal from within another class?

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:202
&gt; +    m_scrollUpdateDeferrer = adoptPtr(new ViewportUpdateDeferrer(this, true));

I&apos;m not a fan of this API at least, because the boolean parameter creates unreadable code. If you look at this line of code in four months, it&apos;ll be rather difficult to remember what the meaning of &quot;true&quot; is. It may require a little more typing, but using an enum will make the code more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571762</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-03-06 05:28:18 -0800</bug_when>
    <thetext>the following assertion failure was observed during loading cnn.com

02:25:58 PM) carewolf: add it to https://bugs.webkit.org/show_bug.cgi?id=80294, I will open a new bug once that is closed, if it is separate issue
(02:26:21 PM) zalan: carewolf: sounds good.

ASSERTION FAILED: m_suspended
../../../../Source/WebCore/page/SuspendableTimer.cpp(76) : virtual void WebCore::SuspendableTimer::resume()
1   0x7fdfa287c907 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore16SuspendableTimer6resumeEv+0x3f) [0x7fdfa287c907]
2   0x7fdfa24406e2 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore22ScriptExecutionContext22resumeActiveDOMObjectsEv+0x130) [0x7fdfa24406e2]
3   0x7fdfa23935d4 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore8Document22resumeActiveDOMObjectsEv+0x1e) [0x7fdfa23935d4]
4   0x7fdfa282ef2c /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore5Frame35resumeActiveDOMObjectsAndAnimationsEv+0xb6) [0x7fdfa282ef2c]
5   0x7fdfa2854462 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore4Page35resumeActiveDOMObjectsAndAnimationsEv+0x2a) [0x7fdfa2854462]
6   0x7fdfa201a6cf /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN6WebKit7WebPage35resumeActiveDOMObjectsAndAnimationsEv+0x29) [0x7fdfa201a6cf]
7   0x7fdfa205dae9 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7CoreIPC18callMemberFunctionIN6WebKit7WebPageEMS2_FvvEEEvRKNS_10Arguments0EPT_T0_+0x52) [0x7fdfa205dae9]
8   0x7fdfa205c32e /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7CoreIPC13handleMessageIN8Messages7WebPage35ResumeActiveDOMObjectsAndAnimationsEN6WebKit7WebPageEMS5_FvvEEEvPNS_15ArgumentDecoderEPT0_T1_+0x4d) [0x7fdfa205c32e]
9   0x7fdfa2059dfe /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN6WebKit7WebPage24didReceiveWebPageMessageEPN7CoreIPC10ConnectionENS1_9MessageIDEPNS1_15ArgumentDecoderE+0xd40) [0x7fdfa2059dfe]
10  0x7fdfa201d801 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN6WebKit7WebPage17didReceiveMessageEPN7CoreIPC10ConnectionENS1_9MessageIDEPNS1_15ArgumentDecoderE+0x121) [0x7fdfa201d801]
11  0x7fdfa2034f8a /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN6WebKit10WebProcess17didReceiveMessageEPN7CoreIPC10ConnectionENS1_9MessageIDEPNS1_15ArgumentDecoderE+0x2b0) [0x7fdfa2034f8a]
12  0x7fdfa2032a63 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN6WebKit24WebConnectionToUIProcess17didReceiveMessageEPN7CoreIPC10ConnectionENS1_9MessageIDEPNS1_15ArgumentDecoderE+0x11b) [0x7fdfa2032a63]
13  0x7fdfa1e0f5b3 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7CoreIPC10Connection15dispatchMessageERNS0_7MessageINS_15ArgumentDecoderEEE+0x14b) [0x7fdfa1e0f5b3]
14  0x7fdfa1e0f78d /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7CoreIPC10Connection16dispatchMessagesEv+0xaf) [0x7fdfa1e0f78d]
15  0x7fdfa1e19738 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN3WTF15FunctionWrapperIMN7CoreIPC10ConnectionEFvvEEclEPS2_+0x58) [0x7fdfa1e19738]
16  0x7fdfa1e194f6 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN3WTF17BoundFunctionImplINS_15FunctionWrapperIMN7CoreIPC10ConnectionEFvvEEEFvPS3_EEclEv+0x32) [0x7fdfa1e194f6]
17  0x7fdfa1f34e3c /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZNK3WTF8FunctionIFvvEEclEv+0x72) [0x7fdfa1f34e3c]
18  0x7fdfa29167f6 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore7RunLoop11performWorkEv+0x74) [0x7fdfa29167f6]
19  0x7fdfa2bb8fea /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(_ZN7WebCore7RunLoop11TimerObject11performWorkEv+0x1c) [0x7fdfa2bb8fea]
20  0x7fdfa2bb9af7 /home/zbujtas/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(+0x2997af7) [0x7fdfa2bb9af7]
21  0x7fdf9c347637 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN14QMetaCallEvent13placeMetaCallEP7QObject+0xc3) [0x7fdf9c347637]
22  0x7fdf9c3484b0 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN7QObject5eventEP6QEvent+0x124) [0x7fdf9c3484b0]
23  0x7fdf9ce1c93c /home/zbujtas/qt5/qtbase/lib/libQtWidgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x17c) [0x7fdf9ce1c93c]
24  0x7fdf9ce19fec /home/zbujtas/qt5/qtbase/lib/libQtWidgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x3f8) [0x7fdf9ce19fec]
25  0x7fdf9c315362 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x9e) [0x7fdf9c315362]
26  0x7fdf9c3190b3 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN16QCoreApplication9sendEventEP7QObjectP6QEvent+0x51) [0x7fdf9c3190b3]
27  0x7fdf9c3163f6 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x452) [0x7fdf9c3163f6]
28  0x7fdf9c315fa1 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(_ZN16QCoreApplication16sendPostedEventsEP7QObjecti+0x2d) [0x7fdf9c315fa1]
29  0x7fdf9c37c428 /home/zbujtas/qt5/qtbase/lib/libQtCore.so.5(+0x25f428) [0x7fdf9c37c428]
30  0x7fdf9e2fba5d /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x1dd) [0x7fdf9e2fba5d]
31  0x7fdf9e2fc258 /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x45258) [0x7fdf9e2fc258]
WARNING: The web process experienced a crash on &apos;http://edition.cnn.com/&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571764</commentid>
    <comment_count>6</comment_count>
      <attachid>130145</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-06 05:29:09 -0800</bug_when>
    <thetext>Comment on attachment 130145
Patch

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

553	    ViewportUpdateDeferrer guard(this);
554	    ensureContentWithinViewportBoundary();

^ this one might also animate (do a bounce back).

&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:72
&gt; +            engine-&gt;m_suspendedContent = true;

m_didSuspendContent would be more clear

&gt;&gt; Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp:202
&gt;&gt; +    m_scrollUpdateDeferrer = adoptPtr(new ViewportUpdateDeferrer(this, true));
&gt; 
&gt; I&apos;m not a fan of this API at least, because the boolean parameter creates unreadable code. If you look at this line of code in four months, it&apos;ll be rather difficult to remember what the meaning of &quot;true&quot; is. It may require a little more typing, but using an enum will make the code more readable.

I don&apos;t like calling it animating as it is true for just normal panning, so why not use DeferGeometryChanges, DeferGeometryAndContentsChanges or so</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571775</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-06 05:45:19 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 130145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130145&amp;action=review
&gt; 
&gt; 553        ViewportUpdateDeferrer guard(this);
&gt; 554        ensureContentWithinViewportBoundary();
&gt; 
&gt; ^ this one might also animate (do a bounce back).
&gt; 
If it doesn&apos;t allocate the ViewportUpdateDeferrer using new, and then later delete it when the animation is over, then the updates will have to complete inside this call. If it does animate then ViewportUpdateDeferrer is being used incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571797</commentid>
    <comment_count>8</comment_count>
      <attachid>130370</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-06 06:24:45 -0800</bug_when>
    <thetext>Created attachment 130370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571932</commentid>
    <comment_count>9</comment_count>
      <attachid>130370</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-06 09:54:53 -0800</bug_when>
    <thetext>Comment on attachment 130370
Patch

Clearing flags on attachment: 130370

Committed r109930: &lt;http://trac.webkit.org/changeset/109930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571933</commentid>
    <comment_count>10</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-03-06 09:55:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130145</attachid>
            <date>2012-03-05 08:57:17 -0800</date>
            <delta_ts>2012-03-06 06:24:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80294-20120305175714.patch</filename>
            <type>text/plain</type>
            <size>4617</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWIyNTgwYmU5ZGI2N2M1
NmE5ODBmMjljN2ViOGViOWU1NWYzNTgzOC4uNDVhZDAwMWRlMzU3Y2MyMmEyZDY2M2EyNzM3YWM3
NzU2OGMxZDI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTA1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gSW50ZXJhY3Rpb24gRW5naW5lIHN1c3BlbmRzIGNvbnRlbnQgZHVyaW5nIHBhZ2Vsb2FkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyOTQKKwor
ICAgICAgICBPbmx5IHN1c3BlbmQgY29udGVudCB3aGVuIHZpZXdwb3J0IHVwZGF0ZXMgYXJlIGRl
ZmVycmVkIGZvciBhbiBhbmltYXRpb24uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld3BvcnRVcGRhdGVEZWZlcnJlcjo6Vmlld3Bv
cnRVcGRhdGVEZWZlcnJlcik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdwb3J0VXBkYXRlRGVmZXJy
ZXI6On5WaWV3cG9ydFVwZGF0ZURlZmVycmVyKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OmZsaWNrYWJsZU1vdmVTdGFy
dGVkKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpzY2Fs
ZUFuaW1hdGlvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZS5oOgorICAgICAgICAoUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lKToKKwogMjAxMi0wMy0wNCAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNp
b24ubW9iaT4KIAogICAgICAgICBbQ01ha2VdIExpYnJhcmllcyBhcmUgaW5zdGFsbGVkIHRvIC91
c3IvbGliIGFuZCBub3QgL3Vzci9saWI2NCBvbiB4ODZfNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAK
aW5kZXggMDVhYmMwZDllMTY2NGRjMDQ4ZTVhYzI1ZmIyMjY3ZDhjYzllYjFhMS4uNzJkZmU3YzVm
N2ZlNDczMjkzNDU2ODdmM2IwNDUwNDI0MjRkYzY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAK
QEAgLTYxLDEzICs2MSwxNyBAQCBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFuaW1hdGlvbkR1cmF0
aW9uTWlsbGlzID0gMjUwOwogCiBjbGFzcyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyIHsKIHB1Ymxp
YzoKLSAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2lu
ZSogZW5naW5lKQorICAgIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIoUXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lKiBlbmdpbmUsIGJvb2wgYW5pbWF0aW9uID0gZmFsc2UpCiAgICAgICAgIDogZW5n
aW5lKGVuZ2luZSkKICAgICB7CiAgICAgICAgIGlmIChlbmdpbmUtPm1fc3VzcGVuZENvdW50Kysp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRTdXNw
ZW5kUmVxdWVzdGVkKCk7CisgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gc3VzcGVuZCBj
b250ZW50IGZvciBhdG9taWMgdXBkYXRlcywgb25seSBkdXJpbmcgYW5pbWF0aW9ucy4KKyAgICAg
ICAgaWYgKGFuaW1hdGlvbikgeworICAgICAgICAgICAgZW5naW5lLT5tX3N1c3BlbmRlZENvbnRl
bnQgPSB0cnVlOworICAgICAgICAgICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRTdXNwZW5kUmVxdWVz
dGVkKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICB+Vmlld3BvcnRVcGRhdGVEZWZlcnJlcigp
CkBAIC03NSw3ICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGlmICgtLShlbmdpbmUtPm1fc3Vz
cGVuZENvdW50KSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBlbWl0IGVuZ2luZS0+
Y29udGVudFJlc3VtZVJlcXVlc3RlZCgpOworICAgICAgICBpZiAoZW5naW5lLT5tX3N1c3BlbmRl
ZENvbnRlbnQpIHsKKyAgICAgICAgICAgIGVuZ2luZS0+bV9zdXNwZW5kZWRDb250ZW50ID0gZmFs
c2U7CisgICAgICAgICAgICBlbWl0IGVuZ2luZS0+Y29udGVudFJlc3VtZVJlcXVlc3RlZCgpOwor
ICAgICAgICB9CiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0
aGUgdmlld3BvcnQgd2lsbCBiZSByZXF1ZXN0ZWQuCiAgICAgICAgIGVtaXQgZW5naW5lLT5jb250
ZW50V2FzTW92ZWQoUVBvaW50RigpKTsKQEAgLTExNyw2ICsxMjQsNyBAQCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydAogICAgICwgbV9jb250ZW50KGNvbnRlbnQpCiAgICAgLCBtX2ZsaWNrUHJvdmlk
ZXIoZmxpY2tQcm92aWRlcikKICAgICAsIG1fc3VzcGVuZENvdW50KDApCisgICAgLCBtX3N1c3Bl
bmRlZENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX2hhZFVzZXJJbnRlcmFjdGlvbihmYWxzZSkKICAg
ICAsIG1fc2NhbGVBbmltYXRpb24obmV3IFNjYWxlQW5pbWF0aW9uKHRoaXMpKQogICAgICwgbV9w
aW5jaFN0YXJ0U2NhbGUoLTEpCkBAIC0xOTEsNyArMTk5LDcgQEAgYm9vbCBRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OmFuaW1hdGVJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBpdGVt
UmVjdCkKIHZvaWQgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpmbGlja2FibGVNb3ZlU3Rh
cnRlZCgpCiB7CiAgICAgUV9BU1NFUlQobV9mbGlja1Byb3ZpZGVyLT5pc01vdmluZygpKTsKLSAg
ICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdwb3J0VXBkYXRlRGVm
ZXJyZXIodGhpcykpOworICAgIG1fc2Nyb2xsVXBkYXRlRGVmZXJyZXIgPSBhZG9wdFB0cihuZXcg
Vmlld3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzLCB0cnVlKSk7CiAKICAgICBtX2xhc3RTY3JvbGxQ
b3NpdGlvbiA9IG1fZmxpY2tQcm92aWRlci0+Y29udGVudFBvcygpOwogICAgIGNvbm5lY3QobV9m
bGlja1Byb3ZpZGVyLCBTSUdOQUwoY29udGVudFhDaGFuZ2VkKCkpLCBTTE9UKGZsaWNrYWJsZU1v
dmluZ1Bvc2l0aW9uVXBkYXRlKCkpKTsKQEAgLTIyMyw3ICsyMzEsNyBAQCB2b2lkIFF0Vmlld3Bv
cnRJbnRlcmFjdGlvbkVuZ2luZTo6c2NhbGVBbmltYXRpb25TdGF0ZUNoYW5nZWQoUUFic3RyYWN0
QW5pbWF0aW9uOgogICAgIHN3aXRjaCAobmV3U3RhdGUpIHsKICAgICBjYXNlIFFBYnN0cmFjdEFu
aW1hdGlvbjo6UnVubmluZzoKICAgICAgICAgaWYgKCFtX3NjYWxlVXBkYXRlRGVmZXJyZXIpCi0g
ICAgICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIgPSBhZG9wdFB0cihuZXcgVmlld3BvcnRV
cGRhdGVEZWZlcnJlcih0aGlzKSk7CisgICAgICAgICAgICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIg
PSBhZG9wdFB0cihuZXcgVmlld3BvcnRVcGRhdGVEZWZlcnJlcih0aGlzLCB0cnVlKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUUFic3RyYWN0QW5pbWF0aW9uOjpTdG9wcGVkOgogICAgICAg
ICBtX3NjYWxlVXBkYXRlRGVmZXJyZXIuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAppbmRleCAz
ZGE4MWIzMTZhODI4ZDM3ZWFmNzYzNjE4MzI5MWNhMmNmYWEwMmM3Li43MjAxYjk4MGNlYTc4ZjI2
YmNiOGMxYmE4MzQxYWExYjc4YjA5MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCkBAIC0xNDUsNiAr
MTQ1LDcgQEAgcHJpdmF0ZToKICAgICBDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogCiAgICAg
aW50IG1fc3VzcGVuZENvdW50OworICAgIGJvb2wgbV9zdXNwZW5kZWRDb250ZW50OwogICAgIE93
blB0cjxWaWV3cG9ydFVwZGF0ZURlZmVycmVyPiBtX3NjYWxlVXBkYXRlRGVmZXJyZXI7CiAgICAg
T3duUHRyPFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI+IG1fc2Nyb2xsVXBkYXRlRGVmZXJyZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130370</attachid>
            <date>2012-03-06 06:24:45 -0800</date>
            <delta_ts>2012-03-06 09:54:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80294-20120306152443.patch</filename>
            <type>text/plain</type>
            <size>4990</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzJmZmEyYzM2NzczZDhm
ZGYwNzg0ZWE0ODcyMGYxZTA2YTYzNDQxZi4uNDE5YWNhZmEyMTRlZmU5NDQxM2RhOTVhMzU2Y2E5
MzQzYzhkZTZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTA2ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gSW50ZXJhY3Rpb24gRW5naW5lIHN1c3BlbmRzIGNvbnRlbnQgZHVyaW5nIHBhZ2Vsb2FkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyOTQKKwor
ICAgICAgICBPbmx5IHN1c3BlbmQgY29udGVudCB3aGVuIHZpZXdwb3J0IHVwZGF0ZXMgYXJlIGRl
ZmVycmVkCisgICAgICAgIGZvciBhIG5vbi1pbnN0YW50YW5pb3VzIGludGVyYWN0aW9uLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdwb3J0VXBkYXRlRGVmZXJyZXI6OlZpZXdwb3J0VXBkYXRlRGVmZXJyZXIpOgorICAgICAgICAo
V2ViS2l0OjpWaWV3cG9ydFVwZGF0ZURlZmVycmVyOjp+Vmlld3BvcnRVcGRhdGVEZWZlcnJlcik6
CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6UXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lKToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lOjpmbGlja2FibGVNb3ZlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlF0Vmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2NhbGVBbmltYXRpb25TdGF0ZUNoYW5nZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAgICAg
ICAgKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSk6CisKIDIwMTItMDMtMDYgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBz
ZXZlcmFsIGRvY3VtZW50YXRpb24gaXNzdWVzIGluIFdlYktpdDIgR1RLKyBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5jcHAKaW5kZXggMDVhYmMwZDllMTY2NGRjMDQ4ZTVhYzI1ZmIyMjY3ZDhjYzllYjFh
MS4uMzM0YjYzNzQxNzRlODFmOWIwOTI0NGEzZGMxMmEyZTk3NzJmZTMyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5jcHAKQEAgLTYxLDEzICs2MSwxOCBAQCBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFu
aW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUwOwogCiBjbGFzcyBWaWV3cG9ydFVwZGF0ZURlZmVy
cmVyIHsKIHB1YmxpYzoKLSAgICBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKFF0Vmlld3BvcnRJbnRl
cmFjdGlvbkVuZ2luZSogZW5naW5lKQorICAgIGVudW0gU3VzcGVuZENvbnRlbnRGbGFnIHsgRGVm
ZXJVcGRhdGUsIERlZmVyVXBkYXRlQW5kU3VzcGVuZENvbnRlbnQgfTsKKyAgICBWaWV3cG9ydFVw
ZGF0ZURlZmVycmVyKFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSogZW5naW5lLCBTdXNwZW5k
Q29udGVudEZsYWcgc3VzcGVuZENvbnRlbnRGbGFnID0gRGVmZXJVcGRhdGUpCiAgICAgICAgIDog
ZW5naW5lKGVuZ2luZSkKICAgICB7Ci0gICAgICAgIGlmIChlbmdpbmUtPm1fc3VzcGVuZENvdW50
KyspCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRT
dXNwZW5kUmVxdWVzdGVkKCk7CisgICAgICAgIGVuZ2luZS0+bV9zdXNwZW5kQ291bnQrKzsKKwor
ICAgICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIHN1c3BlbmQgY29udGVudCBmb3IgaW1tZWRp
YXRlIHVwZGF0ZXMKKyAgICAgICAgLy8gb25seSBkdXJpbmcgYW5pbWF0aW9ucyBvciBsb25nZXIg
Z2VzdHVyZXMuCisgICAgICAgIGlmIChzdXNwZW5kQ29udGVudEZsYWcgPT0gRGVmZXJVcGRhdGVB
bmRTdXNwZW5kQ29udGVudCAmJiAhZW5naW5lLT5tX2hhc1N1c3BlbmRlZENvbnRlbnQpIHsKKyAg
ICAgICAgICAgIGVuZ2luZS0+bV9oYXNTdXNwZW5kZWRDb250ZW50ID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGVtaXQgZW5naW5lLT5jb250ZW50U3VzcGVuZFJlcXVlc3RlZCgpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgflZpZXdwb3J0VXBkYXRlRGVmZXJyZXIoKQpAQCAtNzUsNyArODAsMTAgQEAg
cHVibGljOgogICAgICAgICBpZiAoLS0oZW5naW5lLT5tX3N1c3BlbmRDb3VudCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRSZXN1bWVSZXF1ZXN0
ZWQoKTsKKyAgICAgICAgaWYgKGVuZ2luZS0+bV9oYXNTdXNwZW5kZWRDb250ZW50KSB7CisgICAg
ICAgICAgICBlbmdpbmUtPm1faGFzU3VzcGVuZGVkQ29udGVudCA9IGZhbHNlOworICAgICAgICAg
ICAgZW1pdCBlbmdpbmUtPmNvbnRlbnRSZXN1bWVSZXF1ZXN0ZWQoKTsKKyAgICAgICAgfQogCiAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRpbGVzIGFsbCBhcm91bmQgdGhlIHZpZXdwb3J0IHdp
bGwgYmUgcmVxdWVzdGVkLgogICAgICAgICBlbWl0IGVuZ2luZS0+Y29udGVudFdhc01vdmVkKFFQ
b2ludEYoKSk7CkBAIC0xMTcsNiArMTI1LDcgQEAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
OjpRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQKICAg
ICAsIG1fY29udGVudChjb250ZW50KQogICAgICwgbV9mbGlja1Byb3ZpZGVyKGZsaWNrUHJvdmlk
ZXIpCiAgICAgLCBtX3N1c3BlbmRDb3VudCgwKQorICAgICwgbV9oYXNTdXNwZW5kZWRDb250ZW50
KGZhbHNlKQogICAgICwgbV9oYWRVc2VySW50ZXJhY3Rpb24oZmFsc2UpCiAgICAgLCBtX3NjYWxl
QW5pbWF0aW9uKG5ldyBTY2FsZUFuaW1hdGlvbih0aGlzKSkKICAgICAsIG1fcGluY2hTdGFydFNj
YWxlKC0xKQpAQCAtMTkxLDcgKzIwMCw3IEBAIGJvb2wgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lOjphbmltYXRlSXRlbVJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgaXRlbVJlY3QpCiB2b2lk
IFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6ZmxpY2thYmxlTW92ZVN0YXJ0ZWQoKQogewog
ICAgIFFfQVNTRVJUKG1fZmxpY2tQcm92aWRlci0+aXNNb3ZpbmcoKSk7Ci0gICAgbV9zY3JvbGxV
cGRhdGVEZWZlcnJlciA9IGFkb3B0UHRyKG5ldyBWaWV3cG9ydFVwZGF0ZURlZmVycmVyKHRoaXMp
KTsKKyAgICBtX3Njcm9sbFVwZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdwb3J0VXBk
YXRlRGVmZXJyZXIodGhpcywgVmlld3BvcnRVcGRhdGVEZWZlcnJlcjo6RGVmZXJVcGRhdGVBbmRT
dXNwZW5kQ29udGVudCkpOwogCiAgICAgbV9sYXN0U2Nyb2xsUG9zaXRpb24gPSBtX2ZsaWNrUHJv
dmlkZXItPmNvbnRlbnRQb3MoKTsKICAgICBjb25uZWN0KG1fZmxpY2tQcm92aWRlciwgU0lHTkFM
KGNvbnRlbnRYQ2hhbmdlZCgpKSwgU0xPVChmbGlja2FibGVNb3ZpbmdQb3NpdGlvblVwZGF0ZSgp
KSk7CkBAIC0yMjMsNyArMjMyLDcgQEAgdm9pZCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6
OnNjYWxlQW5pbWF0aW9uU3RhdGVDaGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGlvbjoKICAgICBzd2l0
Y2ggKG5ld1N0YXRlKSB7CiAgICAgY2FzZSBRQWJzdHJhY3RBbmltYXRpb246OlJ1bm5pbmc6CiAg
ICAgICAgIGlmICghbV9zY2FsZVVwZGF0ZURlZmVycmVyKQotICAgICAgICAgICAgbV9zY2FsZVVw
ZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIodGhpcykp
OworICAgICAgICAgICAgbV9zY2FsZVVwZGF0ZURlZmVycmVyID0gYWRvcHRQdHIobmV3IFZpZXdw
b3J0VXBkYXRlRGVmZXJyZXIodGhpcywgVmlld3BvcnRVcGRhdGVEZWZlcnJlcjo6RGVmZXJVcGRh
dGVBbmRTdXNwZW5kQ29udGVudCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFFBYnN0cmFj
dEFuaW1hdGlvbjo6U3RvcHBlZDoKICAgICAgICAgbV9zY2FsZVVwZGF0ZURlZmVycmVyLmNsZWFy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lLmgKaW5kZXggM2RhODFiMzE2YTgyOGQzN2VhZjc2MzYxODMyOTFj
YTJjZmFhMDJjNy4uMDE3YzMwN2NkMzcxMDMyMDA1ZTVhMTc2NDhjNjMyYWIxMjhiYWZlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlv
bkVuZ2luZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmUuaApAQCAtMTQ1LDYgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgQ29uc3Ry
YWludHMgbV9jb25zdHJhaW50czsKIAogICAgIGludCBtX3N1c3BlbmRDb3VudDsKKyAgICBib29s
IG1faGFzU3VzcGVuZGVkQ29udGVudDsKICAgICBPd25QdHI8Vmlld3BvcnRVcGRhdGVEZWZlcnJl
cj4gbV9zY2FsZVVwZGF0ZURlZmVycmVyOwogICAgIE93blB0cjxWaWV3cG9ydFVwZGF0ZURlZmVy
cmVyPiBtX3Njcm9sbFVwZGF0ZURlZmVycmVyOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>