<?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>30170</bug_id>
          
          <creation_ts>2009-10-07 09:20:02 -0700</creation_ts>
          <short_desc>Qt Plugins : Remove usage of winId()</short_desc>
          <delta_ts>2009-10-13 07:27:23 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>20081</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Girish Ramakrishnan">girish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>girish</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>153064</commentid>
    <comment_count>0</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-07 09:20:02 -0700</bug_when>
    <thetext>Currently, the code uses winId() of QWebPageClient in many places. 

This is a bug for two reasons:
1. Everytime we use winId(), we end up creating a native widget (which in turn disables content propagation).
2. Neither windowed nor windowless plugins require the winId of the QWebView or QGraphicsView.

The only requirement AFAIK for plugins from the QWebPageClient are:
1. Provide the window id
2. Provide QWidget * to QGraphicsView or QWebView. This is needed for the parent of the QX11EmbedContainer (windowed mode) and in PopupMenu&apos;s parent.

I discussed this with Kenneth over irc. We have two approaches:
1. Replace winId with windowId. We always return the id of the window (i.e top level widget).
2. Replace winId with pluginWidget(). pluginWidget returns a QWidget* - either QWebView or QGraphicsView. (fn name debatable)

We decided on approach 1 on irc, because Kenneth said we were moving away from QWidget based code (I am not sure, but I took it at face value :)). However, when trying it, I have found that there are situations when we really really the QWidget* (In PlatformScreenQt.cpp and PopupMenuQt.cpp). I have marked them as &quot;####&quot; in attached patch. We cannot use pluginParent() in those situations. pluginParent() returns the QGraphicsWebView or the QWebView. So, to get to the window, we have to end up writing code like:

    QObject *pp = client-&gt;pluginParent();
    if (QWidget *w = qobject_cast&lt;QWidget *&gt;(pp)) {
        windowId = w-&gt;window()-&gt;winId();
    } else if (QGraphicsWebView *v = qobject_cast&lt;QGraphicsWebView *&gt;(pp)) {
        QGraphicsView *view = v-&gt;views().value(0);
        if (view)
            windowId = view-&gt;window()-&gt;winId();
    }

I have gone ahead and also tried approach 2. Seems to work, attached.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153065</commentid>
    <comment_count>1</comment_count>
      <attachid>40792</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-07 09:21:19 -0700</bug_when>
    <thetext>Created attachment 40792
Approach 1 - windowId</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153066</commentid>
    <comment_count>2</comment_count>
      <attachid>40793</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-07 09:22:10 -0700</bug_when>
    <thetext>Created attachment 40793
Approach 1 - use pluginWidget</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153321</commentid>
    <comment_count>3</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-08 01:29:55 -0700</bug_when>
    <thetext>This patch fixes running Qt with ARGB visuals, yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153334</commentid>
    <comment_count>4</comment_count>
      <attachid>40863</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-08 04:09:45 -0700</bug_when>
    <thetext>Created attachment 40863
Approach 2 - Use pluginWiget

Has the approval of tronical (simon). Awaiting, kenneth&apos;s blessing :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153399</commentid>
    <comment_count>5</comment_count>
      <attachid>40863</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-08 09:28:48 -0700</bug_when>
    <thetext>Comment on attachment 40863
Approach 2 - Use pluginWiget

This looks good to me, but I know nothing about Qt or x11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153614</commentid>
    <comment_count>6</comment_count>
      <attachid>40931</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-08 22:49:26 -0700</bug_when>
    <thetext>Created attachment 40931
Qt bug

Ok, I have figured out why this patch solves my ARGB issue.

The problem: 
If we have WA_TranslucentBackground set on a window and a QWebView with flash content that is inside this window, the app crashes. The attached program reproduces this problem. I will report this on the qt-labs channel.

Reason: 
There&apos;s a Qt bug that having a native window inside windows having ARGB fails (wrong visual is used to create the X Render Picture).

The X Error (BadMatch) can be &apos;ignored&apos;, but gdk overrides Qt&apos;s default error handler and asserts even in release mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153865</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-10-10 05:58:20 -0700</bug_when>
    <thetext>Implementation is fine from my quick look at it, but I didn&apos;t like the name pluginWidget. It is not very clear what it does and what it is.

pluginParentWindow maybe? maybe it is not even plugin dependent, so maybe parentWindow is better? ownerWindow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154021</commentid>
    <comment_count>8</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-12 04:12:51 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Implementation is fine from my quick look at it, but I didn&apos;t like the name
&gt; pluginWidget. It is not very clear what it does and what it is.
&gt; 
&gt; pluginParentWindow maybe? maybe it is not even plugin dependent, so maybe
&gt; parentWindow is better? ownerWindow?

I like owner prefix. Since it&apos;s not a window but a widget, ownerWidget sounds good to me. 

I will create a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154022</commentid>
    <comment_count>9</comment_count>
      <attachid>41031</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-12 04:13:54 -0700</bug_when>
    <thetext>Created attachment 41031
ownerWidget</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154267</commentid>
    <comment_count>10</comment_count>
      <attachid>41031</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-10-12 22:36:52 -0700</bug_when>
    <thetext>Comment on attachment 41031
ownerWidget

Great cleanup!

&gt;      case NPNVnetscapeWindow: {
&gt;          void* w = reinterpret_cast&lt;void*&gt;(value);
&gt; -        *((XID *)w) = m_parentFrame-&gt;view()-&gt;hostWindow()-&gt;platformPageClient()-&gt;winId();
&gt; +        QWebPageClient* client = m_parentFrame-&gt;view()-&gt;hostWindow()-&gt;platformPageClient();
&gt; +        *((XID *)w) = client ? client-&gt;ownerWidget()-&gt;window()-&gt;winId() : 0;
&gt;          return NPERR_NO_ERROR;

I really hope that this works as expected, especially with flash. Where we previously returned
the windowid of the QWebView here we now return the toplevel ID, which is according to spec but
may not be what the plugin expects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154269</commentid>
    <comment_count>11</comment_count>
      <attachid>41031</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-12 22:40:40 -0700</bug_when>
    <thetext>Comment on attachment 41031
ownerWidget

Rejecting patch 41031 from commit-queue.

Patch https://bugs.webkit.org/attachment.cgi?id=41031 from bug 30170 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154288</commentid>
    <comment_count>12</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-13 00:24:39 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 41031 [details])
&gt; Great cleanup!
&gt; 
&gt; &gt;      case NPNVnetscapeWindow: {
&gt; &gt;          void* w = reinterpret_cast&lt;void*&gt;(value);
&gt; &gt; -        *((XID *)w) = m_parentFrame-&gt;view()-&gt;hostWindow()-&gt;platformPageClient()-&gt;winId();
&gt; &gt; +        QWebPageClient* client = m_parentFrame-&gt;view()-&gt;hostWindow()-&gt;platformPageClient();
&gt; &gt; +        *((XID *)w) = client ? client-&gt;ownerWidget()-&gt;window()-&gt;winId() : 0;
&gt; &gt;          return NPERR_NO_ERROR;
&gt; 
&gt; I really hope that this works as expected, especially with flash. Where we
&gt; previously returned
&gt; the windowid of the QWebView here we now return the toplevel ID, which is
&gt; according to spec but
&gt; may not be what the plugin expects.

According to https://developer.mozilla.org/En/NPN_GetValue, &quot;NPNVnetscapeWindow  - Unix/X11: Gets the browser toplevel window in which the plug-in is displayed; returns Window&quot;

But really, the point of this patch was not to fix that :-) It was unintentional, the new patch, which I am uploading removed the &apos;window()&apos; part.

Also, I checked with both windowed and windowless. NPNVnetscapeWindow is never queried. So it&apos;s dead code, atleast for flash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154289</commentid>
    <comment_count>13</comment_count>
      <attachid>41091</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-13 00:25:35 -0700</bug_when>
    <thetext>Created attachment 41091
ownerWidget (2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154291</commentid>
    <comment_count>14</comment_count>
      <attachid>41092</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-13 00:53:06 -0700</bug_when>
    <thetext>Created attachment 41092
ownerWidget (3)

Oops, I uploaded the wrong patch last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154328</commentid>
    <comment_count>15</comment_count>
      <attachid>41092</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-13 07:27:20 -0700</bug_when>
    <thetext>Comment on attachment 41092
ownerWidget (3)

Clearing flags on attachment: 41092

Committed r49502: &lt;http://trac.webkit.org/changeset/49502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154329</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-13 07:27:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40792</attachid>
            <date>2009-10-07 09:21:19 -0700</date>
            <delta_ts>2009-10-12 04:13:54 -0700</delta_ts>
            <desc>Approach 1 - windowId </desc>
            <filename>foo</filename>
            <type>text/plain</type>
            <size>6556</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDVhMzVkOWQ2OTE2YTQ0MDAzOTY3ODA1MTY1N2M1YjEwM2ViODc5ZmIKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgV2VkIE9j
dCA3IDIwOjM0OjI1IDIwMDkgKzA1MzAKCiAgICBGYWlsZWQgYXR0ZW1wdCBhdCB3aW5kb3dJZAoK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCmluZGV4IDdiYTgzNTAuLjI4
MDdjNWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtNjEs
MTEgKzYxLDE0IEBAIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHcpCiAgICAg
aWYgKHcpIHsKICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IHctPnJvb3QoKS0+aG9z
dFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKIAorICAgICAgICAvLyAjIyMjOiBIb3cg
ZG8gSSBmaXggdGhpcz8KKyAgICAgICAgLy8gd2luZG93SWQgcmV0dXJucyB0aGUgd2luZG93IGlk
LiBwbHVnaW5QYXJlbnQgd2lsbCBub3QgcHJvdmlkZSBxZ3JhcGhpY3N2aWV3CisgICAgICAgIC8q
CiAgICAgICAgIGlmIChjbGllbnQpIHsKICAgICAgICAgICAgIFFXaWRnZXQqIHZpZXcgPSBRV2lk
Z2V0OjpmaW5kKGNsaWVudC0+d2luSWQoKSk7CiAgICAgICAgICAgICBpZiAodmlldykKICAgICAg
ICAgICAgICAgICByZXR1cm4gdmlldy0+ZGVwdGgoKTsKLSAgICAgICAgfQorICAgICAgICB9Ki8K
ICAgICB9CiAgICAgcmV0dXJuIFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW4oMCktPmRl
cHRoKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4IGI0NGYyZWMuLmE4
NTFiYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC05Miw3ICs5Miw5IEBA
IHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50
IGluZGV4KQogICAgIHJlY3QubW92ZVRvcExlZnQodi0+Y29udGVudHNUb1dpbmRvdyhyLnRvcExl
ZnQoKSkpOwogICAgIHJlY3Quc2V0SGVpZ2h0KG1fcG9wdXAtPnNpemVIaW50KCkuaGVpZ2h0KCkp
OwogCi0gICAgbV9wb3B1cC0+c2V0UGFyZW50KFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgp
KSk7CisgICAgLy8gIyMjIzogSG93IGRvIEkgZml4IHRoaXM/CisgICAgLy8gd2luZG93SWQgcmV0
dXJucyB0aGUgd2luZG93IGlkLiBwbHVnaW5QYXJlbnQgd2lsbCBub3QgcHJvdmlkZSBxZ3JhcGhp
Y3N2aWV3CisgICAgLy8gbV9wb3B1cC0+c2V0UGFyZW50KFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53
aW5JZCgpKSk7CiAgICAgbV9wb3B1cC0+c2V0R2VvbWV0cnkocmVjdCk7CiAgICAgbV9wb3B1cC0+
c2V0Q3VycmVudEluZGV4KGluZGV4KTsKICAgICBtX3BvcHVwLT5leGVjKCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmggYi9XZWJDb3JlL3BsYXRmb3Jt
L3F0L1FXZWJQYWdlQ2xpZW50LmgKaW5kZXggMDlmNzg4Ni4uODRhNWJkYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vcXQvUVdlYlBhZ2VDbGllbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
V0lkIHdpbklkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV0lkIHdpbmRvd0lkKCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCBRT2JqZWN0KiBwbHVnaW5QYXJlbnQoKSBjb25zdCA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggNmIyNmI0NS4uNzY3NmViNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTI1MSwxNSArMjUxLDE1IEBAIGJvb2wg
UGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBh
Y2NlcHRlZDsKIH0KIAotdm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2ZW50KiB4RXZlbnQs
IFFXaWRnZXQqIGhvc3RXaW5kb3cpCit2b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQq
IHhFdmVudCwgV0lkIHdpbmRvd0lkKQogewogICAgIHhFdmVudC0+eGFueS5zZXJpYWwgPSAwOyAv
LyB3ZSBhcmUgdW5hd2FyZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3NlZCBieSBYIFNlcnZl
cgogICAgIHhFdmVudC0+eGFueS5zZW5kX2V2ZW50ID0gZmFsc2U7Ci0gICAgeEV2ZW50LT54YW55
LmRpc3BsYXkgPSBob3N0V2luZG93LT54MTFJbmZvKCkuZGlzcGxheSgpOworICAgIHhFdmVudC0+
eGFueS5kaXNwbGF5ID0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICAvLyBOT1RFOiBldmVudC0+
eGFueS53aW5kb3cgZG9lc24ndCBhbHdheXMgcmVzcG9uZCB0byB0aGUgLndpbmRvdyBwcm9wZXJ0
eSBvZiBvdGhlciBYRXZlbnQncwogICAgIC8vIGJ1dCBkb2VzIGluIHRoZSBjYXNlIG9mIEtleVBy
ZXNzLCBLZXlSZWxlYXNlLCBCdXR0b25QcmVzcywgQnV0dG9uUmVsZWFzZSwgYW5kIE1vdGlvbk5v
dGlmeQogICAgIC8vIGV2ZW50czsgdGh1cywgdGhpcyBpcyByaWdodDoKLSAgICB4RXZlbnQtPnhh
bnkud2luZG93ID0gaG9zdFdpbmRvdy0+d2luZG93KCktPmhhbmRsZSgpOworICAgIHhFdmVudC0+
eGFueS53aW5kb3cgPSB3aW5kb3dJZDsKIH0KIAogdm9pZCBQbHVnaW5WaWV3Ojppbml0WEV2ZW50
KFhFdmVudCogeEV2ZW50KQpAQCAtMjY3LDggKzI2Nyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5p
dFhFdmVudChYRXZlbnQqIHhFdmVudCkKICAgICBtZW1zZXQoeEV2ZW50LCAwLCBzaXplb2YoWEV2
ZW50KSk7CiAKICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmll
dygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwotICAgIFFXaWRnZXQqIHdp
bmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKLSAgICBzZXRTaGFyZWRYRXZl
bnRGaWVsZHMoeEV2ZW50LCB3aW5kb3cpOworICAgIHNldFNoYXJlZFhFdmVudEZpZWxkcyh4RXZl
bnQsIGNsaWVudCA/IDAgOiBjbGllbnQtPndpbmRvd0lkKCkpOwogfQogCiB2b2lkIHNldFhLZXlF
dmVudFNwZWNpZmljRmllbGRzKFhFdmVudCogeEV2ZW50LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
QEAgLTU3OSwxMyArNTc4LDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJp
YWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAKICAgICBzd2l0Y2ggKHZhcmlhYmxlKSB7CiAg
ICAgY2FzZSBOUE5WeERpc3BsYXk6Ci0gICAgICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgp
KQotICAgICAgICAgICAgKih2b2lkICoqKXZhbHVlID0gcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+
eDExSW5mbygpLmRpc3BsYXkoKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBRV2ViUGFn
ZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBs
YXRmb3JtUGFnZUNsaWVudCgpOwotICAgICAgICAgICAgUVdpZGdldCogd2luZG93ID0gUVdpZGdl
dDo6ZmluZChjbGllbnQtPndpbklkKCkpOwotICAgICAgICAgICAgKih2b2lkICoqKXZhbHVlID0g
d2luZG93LT54MTFJbmZvKCkuZGlzcGxheSgpOwotICAgICAgICB9CisgICAgICAgICoodm9pZCAq
Kil2YWx1ZSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgICAgIHJldHVybiBOUEVSUl9OT19F
UlJPUjsKIAogICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDoKQEAgLTYzMCw3ICs2MjMsMTAgQEAg
TlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUpCiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lkKiB3
ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgICAgICAqKChYSUQgKil3KSA9
IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+d2luSWQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQgKmNsaWVudCA9IG1fcGFyZW50RnJh
bWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAgICAg
aWYgKCFjbGllbnQpCisgICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKyAg
ICAgICAgKigoWElEICopdykgPSBjbGllbnQtPndpbmRvd0lkKCk7CiAgICAgICAgIHJldHVybiBO
UEVSUl9OT19FUlJPUjsKICAgICB9CiAKQEAgLTc1OCw3ICs3NTQsNyBAQCBib29sIFBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAgICAgaWYg
KG1fbmVlZHNYRW1iZWQpIHsKICAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBt
X3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7
Ci0gICAgICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVyUXQodGhp
cywgUVdpZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpKSk7CisgICAgICAgICAgICBzZXRQbGF0
Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVyUXQodGhpcywgY2xpZW50ID8gcW9iamVjdF9j
YXN0PFFXaWRnZXQqPihjbGllbnQtPnBsdWdpblBhcmVudCgpKSA6IDApKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgICAgICAgICBtX3N0YXR1
cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3
LmNwcAppbmRleCBhYTc2ODBmLi5jMjRlMjU2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3Fn
cmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBz
Y3JlZW5OdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdJZCB3aW5JZCgpIGNvbnN0OworICAg
IHZpcnR1YWwgV0lkIHdpbmRvd0lkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFFPYmplY3QqIHBs
dWdpblBhcmVudCgpIGNvbnN0OwogCkBAIC0xMjMsMTIgKzEyMywxMiBAQCBpbnQgUUdyYXBoaWNz
V2ViVmlld1ByaXZhdGU6OnNjcmVlbk51bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
LVdJZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorV0lkIFFHcmFwaGlj
c1dlYlZpZXdQcml2YXRlOjp3aW5kb3dJZCgpIGNvbnN0CiB7CiAgICAgY29uc3QgUUxpc3Q8UUdy
YXBoaWNzVmlldyo+IHZpZXdzID0gcS0+c2NlbmUoKS0+dmlld3MoKTsKIAogICAgIGlmICghdmll
d3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdmlld3MuYXQoMCktPndpbklkKCk7CisgICAg
ICAgIHJldHVybiB2aWV3cy5hdCgwKS0+d2luZG93KCktPndpbklkKCk7CiAKICAgICByZXR1cm4g
MDsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0
L0FwaS9xd2Vidmlldy5jcHAKaW5kZXggY2U4YjkyMy4uMWE2ZDBlNCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBzY3Jl
ZW5OdW1iZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdJZCB3aW5JZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgV0lkIHdpbmRvd0lkKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdp
blBhcmVudCgpIGNvbnN0OwogCkBAIC05OCwxMCArOTgsMTAgQEAgaW50IFFXZWJWaWV3UHJpdmF0
ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotV0lkIFFXZWJWaWV3
UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorV0lkIFFXZWJWaWV3UHJpdmF0ZTo6d2luZG93SWQoKSBj
b25zdAogewogICAgIGlmICh2aWV3KQotICAgICAgICByZXR1cm4gdmlldy0+d2luSWQoKTsKKyAg
ICAgICAgcmV0dXJuIHZpZXctPndpbmRvdygpLT53aW5JZCgpOwogCiAgICAgcmV0dXJuIDA7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40793</attachid>
            <date>2009-10-07 09:22:10 -0700</date>
            <delta_ts>2009-10-08 04:09:45 -0700</delta_ts>
            <desc>Approach 1 - use pluginWidget</desc>
            <filename>bar</filename>
            <type>text/plain</type>
            <size>5353</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDczMDVlYTNiZGM5OWJmOGZjN2M0MDdjMDEzZmMwYzQyNWMzMmI1NjcKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgV2VkIE9j
dCA3IDIxOjIwOjI3IDIwMDkgKzA1MzAKCiAgICBVc2UgcGx1Z2luVmlldyBpbnN0ZWFkCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKaW5kZXggN2JhODM1MC4uYzQzM2Nm
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCkBAIC02Miw3ICs2
Miw3IEBAIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHcpCiAgICAgICAgIFFX
ZWJQYWdlQ2xpZW50KiBjbGllbnQgPSB3LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1Q
YWdlQ2xpZW50KCk7CiAKICAgICAgICAgaWYgKGNsaWVudCkgewotICAgICAgICAgICAgUVdpZGdl
dCogdmlldyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKKyAgICAgICAgICAgIFFX
aWRnZXQqIHZpZXcgPSBjbGllbnQtPnBsdWdpbldpZGdldCgpOwogICAgICAgICAgICAgaWYgKHZp
ZXcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHZpZXctPmRlcHRoKCk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKaW5kZXggYjQ0ZjJlYy4uMjk5NTQyZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBQb3B1cE1l
bnU6OnNob3coY29uc3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAg
cmVjdC5tb3ZlVG9wTGVmdCh2LT5jb250ZW50c1RvV2luZG93KHIudG9wTGVmdCgpKSk7CiAgICAg
cmVjdC5zZXRIZWlnaHQobV9wb3B1cC0+c2l6ZUhpbnQoKS5oZWlnaHQoKSk7CiAKLSAgICBtX3Bv
cHVwLT5zZXRQYXJlbnQoUVdpZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpKTsKKyAgICBtX3Bv
cHVwLT5zZXRQYXJlbnQoY2xpZW50LT5wbHVnaW5XaWRnZXQoKSk7CiAgICAgbV9wb3B1cC0+c2V0
R2VvbWV0cnkocmVjdCk7CiAgICAgbV9wb3B1cC0+c2V0Q3VycmVudEluZGV4KGluZGV4KTsKICAg
ICBtX3BvcHVwLT5leGVjKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQ
YWdlQ2xpZW50LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgKaW5kZXgg
MDlmNzg4Ni4uNWU5M2EzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFn
ZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVt
YmVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgUVdpZGdldCogcGx1Z2luV2lkZ2V0KCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVh
bCBRT2JqZWN0KiBwbHVnaW5QYXJlbnQoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAKaW5kZXggNmIyNmI0NS4uZjg3Yzc3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHAKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXRYRXZl
bnQoWEV2ZW50KiB4RXZlbnQpCiAgICAgbWVtc2V0KHhFdmVudCwgMCwgc2l6ZW9mKFhFdmVudCkp
OwogCiAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICBRV2lkZ2V0KiB3aW5kb3cg
PSBRV2lkZ2V0OjpmaW5kKGNsaWVudC0+d2luSWQoKSk7CisgICAgUVdpZGdldCogd2luZG93ID0g
Y2xpZW50LT5wbHVnaW5XaWRnZXQoKTsKICAgICBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoeEV2ZW50
LCB3aW5kb3cpOwogfQogCkBAIC01NzksMTMgKzU3OSw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6
Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogCiAgICAgc3dpdGNo
ICh2YXJpYWJsZSkgewogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgotICAgICAgICBpZiAocGxhdGZv
cm1QbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKS5kaXNwbGF5KCk7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICAgICAgICAgIFFXaWRnZXQq
IHdpbmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKLSAgICAgICAgICAgICoo
dm9pZCAqKil2YWx1ZSA9IHdpbmRvdy0+eDExSW5mbygpLmRpc3BsYXkoKTsKLSAgICAgICAgfQor
ICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgICAgICBy
ZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAKICAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6CkBAIC02
MzAsNyArNjI0LDggQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2
YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewog
ICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgICAg
ICAqKChYSUQgKil3KSA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKS0+d2luSWQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVu
dCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKTsKKyAgICAgICAgKigoWElEICopdykgPSBjbGllbnQgPyBjbGllbnQtPnBsdWdpbldpZGdl
dCgpLT53aW5kb3coKS0+d2luSWQoKSA6IDA7CiAgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJP
UjsKICAgICB9CiAKQEAgLTc1OCw3ICs3NTMsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
U3RhcnQoKQogICAgIGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAgICAgaWYgKG1fbmVlZHNYRW1i
ZWQpIHsKICAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1l
LT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAgICAgICAg
ICBzZXRQbGF0Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVyUXQodGhpcywgUVdpZGdldDo6
ZmluZChjbGllbnQtPndpbklkKCkpKSk7CisgICAgICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChu
ZXcgUGx1Z2luQ29udGFpbmVyUXQodGhpcywgY2xpZW50LT5wbHVnaW5XaWRnZXQoKSkpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgICAg
IG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAgYi9XZWJLaXQvcXQvQXBpL3FncmFwaGlj
c3dlYnZpZXcuY3BwCmluZGV4IGFhNzY4MGYuLjI0M2UwNjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgaW50IHNjcmVlbk51bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBRV2lkZ2V0KiBwbHVnaW5XaWRnZXQoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgUU9iamVjdCogcGx1Z2luUGFyZW50KCkgY29uc3Q7CiAKQEAgLTEyMywxNCArMTIzLDEw
IEBAIGludCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAotV0lkIFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjp3aW5JZCgpIGNv
bnN0CitRV2lkZ2V0KiBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6cGx1Z2luV2lkZ2V0KCkgY29u
c3QKIHsKICAgICBjb25zdCBRTGlzdDxRR3JhcGhpY3NWaWV3Kj4gdmlld3MgPSBxLT5zY2VuZSgp
LT52aWV3cygpOwotCi0gICAgaWYgKCF2aWV3cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2
aWV3cy5hdCgwKS0+d2luSWQoKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVybiB2aWV3cy52
YWx1ZSgwKTsKIH0KIAogUU9iamVjdCogUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnBsdWdpblBh
cmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcCBiL1dl
YktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCmluZGV4IGNlOGI5MjMuLmQ3Yjc0YTcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnZp
ZXcuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBp
bnQgc2NyZWVuTnVtYmVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXSWQgd2luSWQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFFXaWRnZXQqIHBsdWdpbldpZGdldCgpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBRT2JqZWN0KiBwbHVnaW5QYXJlbnQoKSBjb25zdDsKIApAQCAtOTgsMTIgKzk4LDkgQEAgaW50
IFFXZWJWaWV3UHJpdmF0ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0K
IAotV0lkIFFXZWJWaWV3UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorUVdpZGdldCogUVdlYlZpZXdQ
cml2YXRlOjpwbHVnaW5XaWRnZXQoKSBjb25zdAogewotICAgIGlmICh2aWV3KQotICAgICAgICBy
ZXR1cm4gdmlldy0+d2luSWQoKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVybiB2aWV3Owog
fQogCiBRT2JqZWN0KiBRV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40863</attachid>
            <date>2009-10-08 04:09:45 -0700</date>
            <delta_ts>2009-10-12 04:13:54 -0700</delta_ts>
            <desc>Approach 2 - Use pluginWiget</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8198</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDM0NDYxMzI4NmFlZjdmMzgxMzU5YWQyOWM5NmQ3YzU4OTY0NzA0MzEKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgV2VkIE9j
dCA3IDIxOjIwOjI3IDIwMDkgKzA1MzAKCiAgICBbUXRdIFBsdWdpbnMgOiBSZW1vdmUgYWxsIHRy
YWNlcyBvZiB3aW5JZC4gVXNlIHBsdWdpbldpZGdldCgpIGluc3RlYWQuCiAgICAKICAgIFRoaXMg
aXMgYSBidWcgZm9yIHR3byByZWFzb25zOgogICAgMS4gRXZlcnl0aW1lIHdlIHVzZSB3aW5JZCgp
LCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0ICh3aGljaCBpbiB0dXJuCiAgICAg
ICBkaXNhYmxlcyBjb250ZW50IHByb3BhZ2F0aW9uKS4KICAgIDIuIE5laXRoZXIgd2luZG93ZWQg
bm9yIHdpbmRvd2xlc3MgcGx1Z2lucyByZXF1aXJlIHRoZSB3aW5JZCBvZiB0aGUgUVdlYlZpZXcg
b3IKICAgICAgIFFHcmFwaGljc1ZpZXcuCiAgICAKICAgIEludHJvZHVjZSBwbHVnaW5XaWRnZXQo
KSB3aGljaCByZXR1cm5zIGEgUVdpZGdldCAqIHdpdGhvdXQgY3JlYXRpbmcgYSBuYXRpdmUgd2lk
Z2V0CiAgICAoYXMgb3Bwb3NlZCB0byBRV2lkZ2V0OjpmaW5kKHdpbklkKSkuCgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YTdiYjJkLi5l
OTY1MGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDA5LTEwLTA4ICBHaXJpc2ggUmFtYWtyaXNobmFuICA8
Z2lyaXNoQGZvcndhcmRiaWFzLmluPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gUGx1Z2lucyA6IFJlbW92ZSBhbGwgdHJhY2VzIG9mIHdpbklk
LiBVc2UgcGx1Z2luV2lkZ2V0KCkgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSBidWcgZm9yIHR3byByZWFzb25zOgorICAgICAgICAxLiBFdmVyeXRpbWUgd2UgdXNlIHdpbklk
KCksIHdlIGVuZCB1cCBjcmVhdGluZyBhIG5hdGl2ZSB3aWRnZXQgKHdoaWNoIGluIHR1cm4KKyAg
ICAgICAgZGlzYWJsZXMgY29udGVudCBwcm9wYWdhdGlvbikuCisgICAgICAgIDIuIE5laXRoZXIg
d2luZG93ZWQgbm9yIHdpbmRvd2xlc3MgcGx1Z2lucyByZXF1aXJlIHRoZSB3aW5JZCBvZiB0aGUg
UVdlYlZpZXcgb3IKKyAgICAgICAgUUdyYXBoaWNzVmlldy4KKyAgICAgICAgCisgICAgICAgIElu
dHJvZHVjZSBwbHVnaW5XaWRnZXQoKSB3aGljaCByZXR1cm5zIGEgUVdpZGdldCAqIHdpdGhvdXQg
Y3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0CisgICAgICAgIChhcyBvcHBvc2VkIHRvIFFXaWRnZXQ6
OmZpbmQod2luSWQpKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzAxNzAKKworICAgICAgICAqIHBsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVw
TWVudTo6c2hvdyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaDoKKyAg
ICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3Ojppbml0WEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6Omdl
dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgor
CiAyMDA5LTEwLTA3ICBKYW5uZSBLb3NraW5lbiAgPGphbm5lLnAua29za2luZW5AZGlnaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKaW5kZXggN2JhODM1MC4uYzQzM2NmYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGludCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRnZXQqIHcpCiAgICAgICAgIFFXZWJQYWdlQ2xpZW50
KiBjbGllbnQgPSB3LT5yb290KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7
CiAKICAgICAgICAgaWYgKGNsaWVudCkgewotICAgICAgICAgICAgUVdpZGdldCogdmlldyA9IFFX
aWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKKyAgICAgICAgICAgIFFXaWRnZXQqIHZpZXcg
PSBjbGllbnQtPnBsdWdpbldpZGdldCgpOwogICAgICAgICAgICAgaWYgKHZpZXcpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHZpZXctPmRlcHRoKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
b3B1cE1lbnVRdC5jcHAKaW5kZXggYjQ0ZjJlYy4uMjk5NTQyZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
b3B1cE1lbnVRdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29u
c3QgSW50UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgcmVjdC5tb3ZlVG9w
TGVmdCh2LT5jb250ZW50c1RvV2luZG93KHIudG9wTGVmdCgpKSk7CiAgICAgcmVjdC5zZXRIZWln
aHQobV9wb3B1cC0+c2l6ZUhpbnQoKS5oZWlnaHQoKSk7CiAKLSAgICBtX3BvcHVwLT5zZXRQYXJl
bnQoUVdpZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpKTsKKyAgICBtX3BvcHVwLT5zZXRQYXJl
bnQoY2xpZW50LT5wbHVnaW5XaWRnZXQoKSk7CiAgICAgbV9wb3B1cC0+c2V0R2VvbWV0cnkocmVj
dCk7CiAgICAgbV9wb3B1cC0+c2V0Q3VycmVudEluZGV4KGluZGV4KTsKICAgICBtX3BvcHVwLT5l
eGVjKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgKaW5kZXggMDlmNzg4Ni4uNWU5
M2EzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaApAQCAtNTMsNyArNTMsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29uc3Qg
PSAwOwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUVdp
ZGdldCogcGx1Z2luV2lkZ2V0KCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBRT2JqZWN0KiBw
bHVnaW5QYXJlbnQoKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAK
aW5kZXggNmIyNmI0NS4uZjg3Yzc3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAK
QEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXRYRXZlbnQoWEV2ZW50KiB4
RXZlbnQpCiAgICAgbWVtc2V0KHhFdmVudCwgMCwgc2l6ZW9mKFhFdmVudCkpOwogCiAgICAgUVdl
YlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICBRV2lkZ2V0KiB3aW5kb3cgPSBRV2lkZ2V0Ojpm
aW5kKGNsaWVudC0+d2luSWQoKSk7CisgICAgUVdpZGdldCogd2luZG93ID0gY2xpZW50LT5wbHVn
aW5XaWRnZXQoKTsKICAgICBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoeEV2ZW50LCB3aW5kb3cpOwog
fQogCkBAIC01NzksMTMgKzU3OSw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogCiAgICAgc3dpdGNoICh2YXJpYWJsZSkg
ewogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgotICAgICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRn
ZXQoKSkKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCktPngxMUluZm8oKS5kaXNwbGF5KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgUVdl
YlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICAgICAgICAgIFFXaWRnZXQqIHdpbmRvdyA9IFFX
aWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1
ZSA9IHdpbmRvdy0+eDExSW5mbygpLmRpc3BsYXkoKTsKLSAgICAgICAgfQorICAgICAgICAqKHZv
aWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgICAgICByZXR1cm4gTlBFUlJf
Tk9fRVJST1I7CiAKICAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6CkBAIC02MzAsNyArNjI0LDgg
QEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9p
ZCogdmFsdWUpCiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lk
KiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgICAgICAqKChYSUQgKil3
KSA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKS0+d2luSWQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAg
ICAgKigoWElEICopdykgPSBjbGllbnQgPyBjbGllbnQtPnBsdWdpbldpZGdldCgpLT53aW5kb3co
KS0+d2luSWQoKSA6IDA7CiAgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKICAgICB9CiAK
QEAgLTc1OCw3ICs3NTMsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAg
IGlmIChtX2lzV2luZG93ZWQpIHsKICAgICAgICAgaWYgKG1fbmVlZHNYRW1iZWQpIHsKICAgICAg
ICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhv
c3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAgICAgICAgICBzZXRQbGF0Zm9y
bVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVyUXQodGhpcywgUVdpZGdldDo6ZmluZChjbGllbnQt
PndpbklkKCkpKSk7CisgICAgICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29u
dGFpbmVyUXQodGhpcywgY2xpZW50LT5wbHVnaW5XaWRnZXQoKSkpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICAgICAgICAgIG1fc3RhdHVzID0g
UGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkv
cWdyYXBoaWNzd2Vidmlldy5jcHAgYi9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3Bw
CmluZGV4IGFhNzY4MGYuLjI0M2UwNjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcApA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgaW50IHNjcmVl
bk51bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29uc3Q7CisgICAgdmly
dHVhbCBRV2lkZ2V0KiBwbHVnaW5XaWRnZXQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgUU9iamVj
dCogcGx1Z2luUGFyZW50KCkgY29uc3Q7CiAKQEAgLTEyMywxNCArMTIzLDEwIEBAIGludCBRR3Jh
cGhpY3NXZWJWaWV3UHJpdmF0ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsK
IH0KIAotV0lkIFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjp3aW5JZCgpIGNvbnN0CitRV2lkZ2V0
KiBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6cGx1Z2luV2lkZ2V0KCkgY29uc3QKIHsKICAgICBj
b25zdCBRTGlzdDxRR3JhcGhpY3NWaWV3Kj4gdmlld3MgPSBxLT5zY2VuZSgpLT52aWV3cygpOwot
Ci0gICAgaWYgKCF2aWV3cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2aWV3cy5hdCgwKS0+
d2luSWQoKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVybiB2aWV3cy52YWx1ZSgwKTsKIH0K
IAogUU9iamVjdCogUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC9BcGkv
cXdlYnZpZXcuY3BwCmluZGV4IGNlOGI5MjMuLmQ3Yjc0YTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCkBAIC01
NCw3ICs1NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVt
YmVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXSWQgd2luSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFFXaWRnZXQqIHBsdWdpbldpZGdldCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBRT2JqZWN0KiBw
bHVnaW5QYXJlbnQoKSBjb25zdDsKIApAQCAtOTgsMTIgKzk4LDkgQEAgaW50IFFXZWJWaWV3UHJp
dmF0ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotV0lkIFFXZWJW
aWV3UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorUVdpZGdldCogUVdlYlZpZXdQcml2YXRlOjpwbHVn
aW5XaWRnZXQoKSBjb25zdAogewotICAgIGlmICh2aWV3KQotICAgICAgICByZXR1cm4gdmlldy0+
d2luSWQoKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVybiB2aWV3OwogfQogCiBRT2JqZWN0
KiBRV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyOTgwNzM2Li4yMTZk
NDUwIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0xMC0wOCAgR2lyaXNoIFJhbWFrcmlzaG5hbiAg
PGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbUXRdIFBsdWdpbnMgOiBSZW1vdmUgYWxsIHRyYWNlcyBvZiB3aW5J
ZC4gVXNlIHBsdWdpbldpZGdldCgpIGluc3RlYWQuCisgICAgICAgIAorICAgICAgICBUaGlzIGlz
IGEgYnVnIGZvciB0d28gcmVhc29uczoKKyAgICAgICAgMS4gRXZlcnl0aW1lIHdlIHVzZSB3aW5J
ZCgpLCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0ICh3aGljaCBpbiB0dXJuCisg
ICAgICAgIGRpc2FibGVzIGNvbnRlbnQgcHJvcGFnYXRpb24pLgorICAgICAgICAyLiBOZWl0aGVy
IHdpbmRvd2VkIG5vciB3aW5kb3dsZXNzIHBsdWdpbnMgcmVxdWlyZSB0aGUgd2luSWQgb2YgdGhl
IFFXZWJWaWV3IG9yCisgICAgICAgIFFHcmFwaGljc1ZpZXcuCisgICAgICAgIAorICAgICAgICBJ
bnRyb2R1Y2UgcGx1Z2luV2lkZ2V0KCkgd2hpY2ggcmV0dXJucyBhIFFXaWRnZXQgKiB3aXRob3V0
IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAorICAgICAgICAoYXMgb3Bwb3NlZCB0byBRV2lkZ2V0
OjpmaW5kKHdpbklkKSkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMwMTcwCisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6cGx1Z2luV2lkZ2V0KToKKyAgICAgICAg
KiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZpZXdQcml2YXRlOjpwbHVnaW5XaWRn
ZXQpOgorCiAyMDA5LTEwLTA3ICBHaXJpc2ggUmFtYWtyaXNobmFuICA8Z2lyaXNoQGZvcndhcmRi
aWFzLmluPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>40931</attachid>
            <date>2009-10-08 22:49:26 -0700</date>
            <delta_ts>2009-10-12 04:13:54 -0700</delta_ts>
            <desc>Qt bug</desc>
            <filename>qt_nativewindow_inside_argbv_bug.cpp</filename>
            <type>text/x-c++</type>
            <size>702</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPFF0R3VpPgojaW5jbHVkZSA8UVgxMUVtYmVkQ29udGFpbmVyPgojaW5jbHVkZSA8
UVgxMUluZm8+CiNpbmNsdWRlIDxYMTEvWGxpYi5oPgojaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMv
WHJlbmRlci5oPgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogICAgUUFwcGxp
Y2F0aW9uIGFwcChhcmdjLCBhcmd2KTsKCiAgICBRV2lkZ2V0ICp3aW5kb3cgPSBuZXcgUVdpZGdl
dDsKICAgIHdpbmRvdy0+c2V0QXR0cmlidXRlKFF0OjpXQV9UcmFuc2x1Y2VudEJhY2tncm91bmQp
OwoKICAgIFFQdXNoQnV0dG9uICpwYiA9IG5ldyBRUHVzaEJ1dHRvbih3aW5kb3cpOwogICAgcGIt
PnNldFRleHQoImhlbGxvIHdvcmxkIik7CiAgICBwYi0+bW92ZSgxMDAsIDEwMCk7CgogICAgcURl
YnVnKCkgPDwgIlN5bmMgYmVmb3JlIHdpbklkIGFjY2VzcyIgPDwgd2luZG93LT53aW5JZCgpOwog
ICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOwogICAgcURlYnVnKCkgPDwgIkdldHRpbmcgd2luSWQi
OwogICAgcGItPndpbklkKCk7IC8vIHJlc3VsdHMgaW4gQmFkTWF0Y2ggLSBYUmVuZGVyQ3JlYXRl
UGljdHVyZQogICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOwogICAgcURlYnVnKCkgPDwgIkRvbmUg
c3luY2luZy4gQmFkTWF0Y2ggYWJvdmU/IjsKCiAgICB3aW5kb3ctPnNob3coKTsKCiAgICByZXR1
cm4gYXBwLmV4ZWMoKTsKfQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41031</attachid>
            <date>2009-10-12 04:13:54 -0700</date>
            <delta_ts>2009-10-13 00:25:35 -0700</delta_ts>
            <desc>ownerWidget</desc>
            <filename>anotherpat</filename>
            <type>text/plain</type>
            <size>9989</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGMzN2Q0MWQ4Mjk4YjEwYzk0MzA0OTIzOWQzNGE5NjQ2ZjAwOThkZWIKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgTW9uIE9j
dCAxMiAxNjoxOTo1NiAyMDA5ICswNTMwCgogICAgW1F0XSBQbHVnaW5zIDogUmVtb3ZlIGFsbCB0
cmFjZXMgb2Ygd2luSWQuIFVzZSBvd25lcldpZGdldCgpIGluc3RlYWQuCiAgICAKICAgIFRoaXMg
aXMgYSBidWcgZm9yIHR3byByZWFzb25zOgogICAgMS4gRXZlcnl0aW1lIHdlIHVzZSB3aW5JZCgp
LCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0LiBUaGlzIGNhdXNlcyBhbgogICAg
ICAgdW5uZWNlc3NhcnkgY29weSBvZiBjb250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHRv
IHRoZSBuYXRpdmUgd2lkZ2V0LgogICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVz
cyBwbHVnaW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgogICAgICAgUUdy
YXBoaWNzVmlldy4KICAgIAogICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2ggcmV0dXJu
cyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAogICAgKGFzIG9w
cG9zZWQgdG8gUVdpZGdldDo6ZmluZCh3aW5JZCkpLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E3YmIyZC4uMjhjNWI5ZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAwOS0xMC0xMiAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJk
Ymlhcy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbUXRdIFBsdWdpbnMgOiBSZW1vdmUgYWxsIHRyYWNlcyBvZiB3aW5JZC4gVXNlIG93bmVyV2lk
Z2V0KCkgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBidWcgZm9yIHR3byBy
ZWFzb25zOgorICAgICAgICAxLiBFdmVyeXRpbWUgd2UgdXNlIHdpbklkKCksIHdlIGVuZCB1cCBj
cmVhdGluZyBhIG5hdGl2ZSB3aWRnZXQuIFRoaXMgY2F1c2VzIGFuCisgICAgICAgIHVubmVjZXNz
YXJ5IGNvcHkgb2YgY29udGVudHMgZnJvbSB0aGUgYmFja2luZyBzdG9yZSB0byB0aGUgbmF0aXZl
IHdpZGdldC4KKyAgICAgICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVzcyBwbHVn
aW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgorICAgICAgICBRR3JhcGhp
Y3NWaWV3LgorICAgICAgICAKKyAgICAgICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2gg
cmV0dXJucyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAorICAg
ICAgICAoYXMgb3Bwb3NlZCB0byBRV2lkZ2V0OjpmaW5kKHdpbklkKSkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTcwCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnNob3cpOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkWEV2ZW50RmllbGRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmluaXRYRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6Z2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCk6CisKIDIwMDktMTAtMDcgIEphbm5lIEtvc2tpbmVuICA8amFubmUucC5rb3Nr
aW5lbkBkaWdpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcAppbmRleCA3YmE4MzUwLi44MjIx
NzYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKQEAgLTYyLDcg
KzYyLDcgQEAgaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCogdykKICAgICAgICAg
UVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IHctPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVBhZ2VDbGllbnQoKTsKIAogICAgICAgICBpZiAoY2xpZW50KSB7Ci0gICAgICAgICAgICBRV2lk
Z2V0KiB2aWV3ID0gUVdpZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpOworICAgICAgICAgICAg
UVdpZGdldCogdmlldyA9IGNsaWVudC0+b3duZXJXaWRnZXQoKTsKICAgICAgICAgICAgIGlmICh2
aWV3KQogICAgICAgICAgICAgICAgIHJldHVybiB2aWV3LT5kZXB0aCgpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCmluZGV4IGI0NGYyZWMuLmY2ZWM0ZjcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAg
IHJlY3QubW92ZVRvcExlZnQodi0+Y29udGVudHNUb1dpbmRvdyhyLnRvcExlZnQoKSkpOwogICAg
IHJlY3Quc2V0SGVpZ2h0KG1fcG9wdXAtPnNpemVIaW50KCkuaGVpZ2h0KCkpOwogCi0gICAgbV9w
b3B1cC0+c2V0UGFyZW50KFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKSk7CisgICAgbV9w
b3B1cC0+c2V0UGFyZW50KGNsaWVudC0+b3duZXJXaWRnZXQoKSk7CiAgICAgbV9wb3B1cC0+c2V0
R2VvbWV0cnkocmVjdCk7CiAgICAgbV9wb3B1cC0+c2V0Q3VycmVudEluZGV4KGluZGV4KTsKICAg
ICBtX3BvcHVwLT5leGVjKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQ
YWdlQ2xpZW50LmggYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgKaW5kZXgg
MDlmNzg4Ni4uNDEyZmM1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFn
ZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVt
YmVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFs
IFFPYmplY3QqIHBsdWdpblBhcmVudCgpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcAppbmRleCA2YjI2YjQ1Li42YTI4MjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcApAQCAtMjUxLDE1ICsyNTEsMTUgQEAgYm9vbCBQbHVnaW5WaWV3OjpkaXNwYXRj
aE5QRXZlbnQoTlBFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIGFjY2VwdGVkOwogfQogCi12b2lk
IHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwgUVdpZGdldCogaG9zdFdpbmRv
dykKK3ZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBRV2lkZ2V0KiBv
d25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFsID0gMDsgLy8gd2UgYXJlIHVu
YXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkgWCBTZXJ2ZXIKICAgICB4RXZl
bnQtPnhhbnkuc2VuZF9ldmVudCA9IGZhbHNlOwotICAgIHhFdmVudC0+eGFueS5kaXNwbGF5ID0g
aG9zdFdpbmRvdy0+eDExSW5mbygpLmRpc3BsYXkoKTsKKyAgICB4RXZlbnQtPnhhbnkuZGlzcGxh
eSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgLy8gTk9URTogZXZlbnQtPnhhbnkud2luZG93
IGRvZXNuJ3QgYWx3YXlzIHJlc3BvbmQgdG8gdGhlIC53aW5kb3cgcHJvcGVydHkgb2Ygb3RoZXIg
WEV2ZW50J3MKICAgICAvLyBidXQgZG9lcyBpbiB0aGUgY2FzZSBvZiBLZXlQcmVzcywgS2V5UmVs
ZWFzZSwgQnV0dG9uUHJlc3MsIEJ1dHRvblJlbGVhc2UsIGFuZCBNb3Rpb25Ob3RpZnkKICAgICAv
LyBldmVudHM7IHRodXMsIHRoaXMgaXMgcmlnaHQ6Ci0gICAgeEV2ZW50LT54YW55LndpbmRvdyA9
IGhvc3RXaW5kb3ctPndpbmRvdygpLT5oYW5kbGUoKTsKKyAgICB4RXZlbnQtPnhhbnkud2luZG93
ID0gb3duZXJXaWRnZXQtPndpbmRvdygpLT5oYW5kbGUoKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3
Ojppbml0WEV2ZW50KFhFdmVudCogeEV2ZW50KQpAQCAtMjY3LDggKzI2Nyw4IEBAIHZvaWQgUGx1
Z2luVmlldzo6aW5pdFhFdmVudChYRXZlbnQqIHhFdmVudCkKICAgICBtZW1zZXQoeEV2ZW50LCAw
LCBzaXplb2YoWEV2ZW50KSk7CiAKICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJl
bnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwotICAg
IFFXaWRnZXQqIHdpbmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKLSAgICBz
ZXRTaGFyZWRYRXZlbnRGaWVsZHMoeEV2ZW50LCB3aW5kb3cpOworICAgIFFXaWRnZXQqIG93bmVy
V2lkZ2V0ID0gY2xpZW50LT5vd25lcldpZGdldCgpOworICAgIHNldFNoYXJlZFhFdmVudEZpZWxk
cyh4RXZlbnQsIG93bmVyV2lkZ2V0KTsKIH0KIAogdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0Zp
ZWxkcyhYRXZlbnQqIHhFdmVudCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCkBAIC01NzksMTMgKzU3
OSw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUs
IHZvaWQqIHZhbHVlKQogCiAgICAgc3dpdGNoICh2YXJpYWJsZSkgewogICAgIGNhc2UgTlBOVnhE
aXNwbGF5OgotICAgICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgICAg
ICoodm9pZCAqKil2YWx1ZSA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKS5kaXNw
bGF5KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVu
dCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKTsKLSAgICAgICAgICAgIFFXaWRnZXQqIHdpbmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50
LT53aW5JZCgpKTsKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IHdpbmRvdy0+eDExSW5m
bygpLmRpc3BsYXkoKTsKLSAgICAgICAgfQorICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDEx
SW5mbzo6ZGlzcGxheSgpOwogICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAKICAgICBj
YXNlIE5QTlZ4dEFwcENvbnRleHQ6CkBAIC02MzAsNyArNjI0LDggQEAgTlBFcnJvciBQbHVnaW5W
aWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAKICAgICBj
YXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4odmFsdWUpOwotICAgICAgICAqKChYSUQgKil3KSA9IG1fcGFyZW50RnJhbWUt
PnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luSWQoKTsKKyAg
ICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9z
dFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAgICAgKigoWElEICopdykgPSBj
bGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCktPndpbmRvdygpLT53aW5JZCgpIDogMDsKICAg
ICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogICAgIH0KIApAQCAtNzU4LDcgKzc1Myw3IEBA
IGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkg
ewogICAgICAgICBpZiAobV9uZWVkc1hFbWJlZCkgewogICAgICAgICAgICAgUVdlYlBhZ2VDbGll
bnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9y
bVBhZ2VDbGllbnQoKTsKLSAgICAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5D
b250YWluZXJRdCh0aGlzLCBRV2lkZ2V0OjpmaW5kKGNsaWVudC0+d2luSWQoKSkpKTsKKyAgICAg
ICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5Db250YWluZXJRdCh0aGlzLCBjbGll
bnQtPm93bmVyV2lkZ2V0KCkpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExv
YWRQbHVnaW47CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3Bw
IGIvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAppbmRleCBhYTc2ODBmLi44YmJh
MGRjIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBi
L1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICAgIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8
Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01MSw3ICs1Miw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCBXSWQgd2luSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFXaWRnZXQq
IG93bmVyV2lkZ2V0KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVu
dCgpIGNvbnN0OwogCkBAIC0xMjMsMTQgKzEyNCwxMCBAQCBpbnQgUUdyYXBoaWNzV2ViVmlld1By
aXZhdGU6OnNjcmVlbk51bWJlcigpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLVdJZCBRR3Jh
cGhpY3NXZWJWaWV3UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorUVdpZGdldCogUUdyYXBoaWNzV2Vi
Vmlld1ByaXZhdGU6Om93bmVyV2lkZ2V0KCkgY29uc3QKIHsKICAgICBjb25zdCBRTGlzdDxRR3Jh
cGhpY3NWaWV3Kj4gdmlld3MgPSBxLT5zY2VuZSgpLT52aWV3cygpOwotCi0gICAgaWYgKCF2aWV3
cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2aWV3cy5hdCgwKS0+d2luSWQoKTsKLQotICAg
IHJldHVybiAwOworICAgIHJldHVybiB2aWV3cy52YWx1ZSgwKTsKIH0KIAogUU9iamVjdCogUUdy
YXBoaWNzV2ViVmlld1ByaXZhdGU6OnBsdWdpblBhcmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9X
ZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCmlu
ZGV4IGNlOGI5MjMuLmRjZTNmM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcu
Y3BwCisrKyBiL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAgICAgQ29weXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCisgICAgQ29weXJpZ2h0IChDKSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlz
aEBmb3J3YXJkYmlhcy5pbj4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsNyArNTUsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgaW50IHNjcmVlbk51bWJlcigpIGNvbnN0Owot
ICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29uc3Q7CisgICAgdmlydHVhbCBRV2lkZ2V0KiBvd25l
cldpZGdldCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBRT2JqZWN0KiBwbHVnaW5QYXJlbnQoKSBj
b25zdDsKIApAQCAtOTgsMTIgKzk5LDkgQEAgaW50IFFXZWJWaWV3UHJpdmF0ZTo6c2NyZWVuTnVt
YmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotV0lkIFFXZWJWaWV3UHJpdmF0ZTo6d2lu
SWQoKSBjb25zdAorUVdpZGdldCogUVdlYlZpZXdQcml2YXRlOjpvd25lcldpZGdldCgpIGNvbnN0
CiB7Ci0gICAgaWYgKHZpZXcpCi0gICAgICAgIHJldHVybiB2aWV3LT53aW5JZCgpOwotCi0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKIFFPYmplY3QqIFFXZWJWaWV3UHJpdmF0
ZTo6cGx1Z2luUGFyZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDI5ODA3MzYuLjUwYmY0OWUgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDA5LTEwLTEyICBHaXJpc2ggUmFtYWtyaXNobmFuICA8Z2lyaXNoQGZvcndhcmRi
aWFzLmluPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gUGx1Z2lucyA6IFJlbW92ZSBhbGwgdHJhY2VzIG9mIHdpbklkLiBVc2Ugb3duZXJXaWRn
ZXQoKSBpbnN0ZWFkLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIGJ1ZyBmb3IgdHdvIHJl
YXNvbnM6CisgICAgICAgIDEuIEV2ZXJ5dGltZSB3ZSB1c2Ugd2luSWQoKSwgd2UgZW5kIHVwIGNy
ZWF0aW5nIGEgbmF0aXZlIHdpZGdldC4gVGhpcyBjYXVzZXMgYW4KKyAgICAgICAgdW5uZWNlc3Nh
cnkgY29weSBvZiBjb250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHRvIHRoZSBuYXRpdmUg
d2lkZ2V0LgorICAgICAgICAyLiBOZWl0aGVyIHdpbmRvd2VkIG5vciB3aW5kb3dsZXNzIHBsdWdp
bnMgcmVxdWlyZSB0aGUgd2luSWQgb2YgdGhlIFFXZWJWaWV3IG9yCisgICAgICAgIFFHcmFwaGlj
c1ZpZXcuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2Ugb3duZXJXaWRnZXQoKSB3aGljaCBy
ZXR1cm5zIGEgUVdpZGdldCAqIHdpdGhvdXQgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0CisgICAg
ICAgIChhcyBvcHBvc2VkIHRvIFFXaWRnZXQ6OmZpbmQod2luSWQpKS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNzAKKworICAgICAgICAqIEFw
aS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRl
Ojpvd25lcldpZGdldCk6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFX
ZWJWaWV3UHJpdmF0ZTo6b3duZXJXaWRnZXQpOgorCiAyMDA5LTEwLTA3ICBHaXJpc2ggUmFtYWty
aXNobmFuICA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgo=
</data>
<flag name="review"
          id="22334"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="22335"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41091</attachid>
            <date>2009-10-13 00:25:35 -0700</date>
            <delta_ts>2009-10-13 00:53:06 -0700</delta_ts>
            <desc>ownerWidget (2)</desc>
            <filename>foo</filename>
            <type>text/plain</type>
            <size>10119</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGUyMGJiZDgyOTEyY2I2YTMzYWYxMWZiNjIzZTQyZjUyOGYyNDA4MTMKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgVHVlIE9j
dCAxMyAxMjoxNjoxOCAyMDA5ICswNTMwCgogICAgW1F0XSBQbHVnaW5zIDogUmVtb3ZlIGFsbCB0
cmFjZXMgb2Ygd2luSWQuIFVzZSBvd25lcldpZGdldCgpIGluc3RlYWQuCiAgICAKICAgIFRoaXMg
aXMgYSBidWcgZm9yIHR3byByZWFzb25zOgogICAgMS4gRXZlcnl0aW1lIHdlIHVzZSB3aW5JZCgp
LCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0LiBUaGlzIGNhdXNlcyBhbgogICAg
ICAgdW5uZWNlc3NhcnkgY29weSBvZiBjb250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHRv
IHRoZSBuYXRpdmUgd2lkZ2V0LgogICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVz
cyBwbHVnaW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgogICAgICAgUUdy
YXBoaWNzVmlldy4KICAgIAogICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2ggcmV0dXJu
cyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAogICAgKGFzIG9w
cG9zZWQgdG8gUVdpZGdldDo6ZmluZCh3aW5JZCkpLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg4OWRmZi4uZmExNGNlZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAwOS0xMC0xMiAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJk
Ymlhcy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbUXRdIFBsdWdpbnMgOiBSZW1vdmUgYWxsIHRyYWNlcyBvZiB3aW5JZC4gVXNlIG93bmVyV2lk
Z2V0KCkgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBidWcgZm9yIHR3byBy
ZWFzb25zOgorICAgICAgICAxLiBFdmVyeXRpbWUgd2UgdXNlIHdpbklkKCksIHdlIGVuZCB1cCBj
cmVhdGluZyBhIG5hdGl2ZSB3aWRnZXQuIFRoaXMgY2F1c2VzIGFuCisgICAgICAgIHVubmVjZXNz
YXJ5IGNvcHkgb2YgY29udGVudHMgZnJvbSB0aGUgYmFja2luZyBzdG9yZSB0byB0aGUgbmF0aXZl
IHdpZGdldC4KKyAgICAgICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVzcyBwbHVn
aW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgorICAgICAgICBRR3JhcGhp
Y3NWaWV3LgorICAgICAgICAKKyAgICAgICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2gg
cmV0dXJucyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAorICAg
ICAgICAoYXMgb3Bwb3NlZCB0byBRV2lkZ2V0OjpmaW5kKHdpbklkKSkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTcwCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Qb3B1cE1lbnVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnU6OnNob3cpOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L1FXZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkWEV2ZW50RmllbGRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmluaXRYRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6Z2V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCk6CisKIDIwMDktMTAtMTIgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Q
bGF0Zm9ybVNjcmVlblF0LmNwcAppbmRleCA3YmE4MzUwLi44MjIxNzYwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgaW50IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCogdykKICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNs
aWVudCA9IHctPnJvb3QoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKIAog
ICAgICAgICBpZiAoY2xpZW50KSB7Ci0gICAgICAgICAgICBRV2lkZ2V0KiB2aWV3ID0gUVdpZGdl
dDo6ZmluZChjbGllbnQtPndpbklkKCkpOworICAgICAgICAgICAgUVdpZGdldCogdmlldyA9IGNs
aWVudC0+b3duZXJXaWRnZXQoKTsKICAgICAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAg
ICAgIHJldHVybiB2aWV3LT5kZXB0aCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuY3BwCmluZGV4IGI0NGYyZWMuLmY2ZWM0ZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQvUG9wdXBN
ZW51UXQuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IElu
dFJlY3QmIHIsIEZyYW1lVmlldyogdiwgaW50IGluZGV4KQogICAgIHJlY3QubW92ZVRvcExlZnQo
di0+Y29udGVudHNUb1dpbmRvdyhyLnRvcExlZnQoKSkpOwogICAgIHJlY3Quc2V0SGVpZ2h0KG1f
cG9wdXAtPnNpemVIaW50KCkuaGVpZ2h0KCkpOwogCi0gICAgbV9wb3B1cC0+c2V0UGFyZW50KFFX
aWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKSk7CisgICAgbV9wb3B1cC0+c2V0UGFyZW50KGNs
aWVudC0+b3duZXJXaWRnZXQoKSk7CiAgICAgbV9wb3B1cC0+c2V0R2VvbWV0cnkocmVjdCk7CiAg
ICAgbV9wb3B1cC0+c2V0Q3VycmVudEluZGV4KGluZGV4KTsKICAgICBtX3BvcHVwLT5leGVjKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmggYi9XZWJD
b3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgKaW5kZXggMmEyODVjNS4uMjhlZjcyNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFFQYWxldHRlIHBhbGV0dGUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgV0lkIHdpbklk
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUVdpZGdldCogb3duZXJXaWRnZXQoKSBjb25zdCA9
IDA7CiAKICAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVudCgpIGNvbnN0ID0gMDsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCBhNWNiYjlhLi5iZDY3YTA5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3Jl
L3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtMjQ5LDE1ICsyNDksMTUgQEAgYm9vbCBQ
bHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIGFj
Y2VwdGVkOwogfQogCi12b2lkIHNldFNoYXJlZFhFdmVudEZpZWxkcyhYRXZlbnQqIHhFdmVudCwg
UVdpZGdldCogaG9zdFdpbmRvdykKK3ZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCog
eEV2ZW50LCBRV2lkZ2V0KiBvd25lcldpZGdldCkKIHsKICAgICB4RXZlbnQtPnhhbnkuc2VyaWFs
ID0gMDsgLy8gd2UgYXJlIHVuYXdhcmUgb2YgdGhlIGxhc3QgcmVxdWVzdCBwcm9jZXNzZWQgYnkg
WCBTZXJ2ZXIKICAgICB4RXZlbnQtPnhhbnkuc2VuZF9ldmVudCA9IGZhbHNlOwotICAgIHhFdmVu
dC0+eGFueS5kaXNwbGF5ID0gaG9zdFdpbmRvdy0+eDExSW5mbygpLmRpc3BsYXkoKTsKKyAgICB4
RXZlbnQtPnhhbnkuZGlzcGxheSA9IFFYMTFJbmZvOjpkaXNwbGF5KCk7CiAgICAgLy8gTk9URTog
ZXZlbnQtPnhhbnkud2luZG93IGRvZXNuJ3QgYWx3YXlzIHJlc3BvbmQgdG8gdGhlIC53aW5kb3cg
cHJvcGVydHkgb2Ygb3RoZXIgWEV2ZW50J3MKICAgICAvLyBidXQgZG9lcyBpbiB0aGUgY2FzZSBv
ZiBLZXlQcmVzcywgS2V5UmVsZWFzZSwgQnV0dG9uUHJlc3MsIEJ1dHRvblJlbGVhc2UsIGFuZCBN
b3Rpb25Ob3RpZnkKICAgICAvLyBldmVudHM7IHRodXMsIHRoaXMgaXMgcmlnaHQ6Ci0gICAgeEV2
ZW50LT54YW55LndpbmRvdyA9IGhvc3RXaW5kb3ctPndpbmRvdygpLT5oYW5kbGUoKTsKKyAgICB4
RXZlbnQtPnhhbnkud2luZG93ID0gb3duZXJXaWRnZXQtPndpbmRvdygpLT5oYW5kbGUoKTsKIH0K
IAogdm9pZCBQbHVnaW5WaWV3Ojppbml0WEV2ZW50KFhFdmVudCogeEV2ZW50KQpAQCAtMjY1LDgg
KzI2NSw4IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdFhFdmVudChYRXZlbnQqIHhFdmVudCkKICAg
ICBtZW1zZXQoeEV2ZW50LCAwLCBzaXplb2YoWEV2ZW50KSk7CiAKICAgICBRV2ViUGFnZUNsaWVu
dCogY2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3Jt
UGFnZUNsaWVudCgpOwotICAgIFFXaWRnZXQqIHdpbmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50
LT53aW5JZCgpKTsKLSAgICBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoeEV2ZW50LCB3aW5kb3cpOwor
ICAgIFFXaWRnZXQqIG93bmVyV2lkZ2V0ID0gY2xpZW50LT5vd25lcldpZGdldCgpOworICAgIHNl
dFNoYXJlZFhFdmVudEZpZWxkcyh4RXZlbnQsIG93bmVyV2lkZ2V0KTsKIH0KIAogdm9pZCBzZXRY
S2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZlbnQqIHhFdmVudCwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCkBAIC01NzcsMTMgKzU3Nyw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBO
VmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQogCiAgICAgc3dpdGNoICh2YXJpYWJsZSkg
ewogICAgIGNhc2UgTlBOVnhEaXNwbGF5OgotICAgICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRn
ZXQoKSkKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCktPngxMUluZm8oKS5kaXNwbGF5KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgUVdl
YlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICAgICAgICAgIFFXaWRnZXQqIHdpbmRvdyA9IFFX
aWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKTsKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1
ZSA9IHdpbmRvdy0+eDExSW5mbygpLmRpc3BsYXkoKTsKLSAgICAgICAgfQorICAgICAgICAqKHZv
aWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlzcGxheSgpOwogICAgICAgICByZXR1cm4gTlBFUlJf
Tk9fRVJST1I7CiAKICAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6CkBAIC02MjgsNyArNjIyLDgg
QEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9p
ZCogdmFsdWUpCiAKICAgICBjYXNlIE5QTlZuZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lk
KiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpOwotICAgICAgICAqKChYSUQgKil3
KSA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKS0+d2luSWQoKTsKKyAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50
RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAg
ICAgKigoWElEICopdykgPSBjbGllbnQgPyBjbGllbnQtPm93bmVyV2lkZ2V0KCktPndpbmRvdygp
LT53aW5JZCgpIDogMDsKICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogICAgIH0KIApA
QCAtNzU2LDcgKzc1MSw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAg
aWYgKG1faXNXaW5kb3dlZCkgewogICAgICAgICBpZiAobV9uZWVkc1hFbWJlZCkgewogICAgICAg
ICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9z
dFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAgICAgICAgICAgIHNldFBsYXRmb3Jt
V2lkZ2V0KG5ldyBQbHVnaW5Db250YWluZXJRdCh0aGlzLCBRV2lkZ2V0OjpmaW5kKGNsaWVudC0+
d2luSWQoKSkpKTsKKyAgICAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5Db250
YWluZXJRdCh0aGlzLCBjbGllbnQtPm93bmVyV2lkZ2V0KCkpKTsKICAgICAgICAgICAgIC8vIHN5
bmMgb3VyIFhFbWJlZCBjb250YWluZXIgd2luZG93IGNyZWF0aW9uIGJlZm9yZSBzZW5kaW5nIHRo
ZSB4aWQgdG8gcGx1Z2lucy4KICAgICAgICAgICAgIFFBcHBsaWNhdGlvbjo6c3luY1goKTsKICAg
ICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmll
dy5jcHAgYi9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4IGFhMzhkY2Qu
LjFlNDlkM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAK
KysrIGIvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAwOSBHaXJpc2ggUmFtYWtyaXNo
bmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU2LDcg
KzU3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBRUGFsZXR0ZSBwYWxldHRlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBpbnQgc2NyZWVuTnVtYmVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXSWQg
d2luSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIFFPYmplY3QqIHBsdWdpblBhcmVudCgpIGNvbnN0OwogCkBAIC0xNDQs
MTQgKzE0NSwxMCBAQCBpbnQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnNjcmVlbk51bWJlcigp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLVdJZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
d2luSWQoKSBjb25zdAorUVdpZGdldCogUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Om93bmVyV2lk
Z2V0KCkgY29uc3QKIHsKICAgICBjb25zdCBRTGlzdDxRR3JhcGhpY3NWaWV3Kj4gdmlld3MgPSBx
LT5zY2VuZSgpLT52aWV3cygpOwotCi0gICAgaWYgKCF2aWV3cy5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiB2aWV3cy5hdCgwKS0+d2luSWQoKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVy
biB2aWV3cy52YWx1ZSgwKTsKIH0KIAogUU9iamVjdCogUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6
OnBsdWdpblBhcmVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3
LmNwcCBiL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCmluZGV4IGI0MzFjMDAuLmI5MDA0NjIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC9B
cGkvcXdlYnZpZXcuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIw
MDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgICAgQ29weXJpZ2h0
IChDKSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KIAog
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IFFQYWxldHRlIHBhbGV0dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIFdJZCB3aW5JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgUVdp
ZGdldCogb3duZXJXaWRnZXQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgUU9iamVjdCogcGx1Z2lu
UGFyZW50KCkgY29uc3Q7CiAKQEAgLTEyMSwxMiArMTIyLDkgQEAgaW50IFFXZWJWaWV3UHJpdmF0
ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotV0lkIFFXZWJWaWV3
UHJpdmF0ZTo6d2luSWQoKSBjb25zdAorUVdpZGdldCogUVdlYlZpZXdQcml2YXRlOjpvd25lcldp
ZGdldCgpIGNvbnN0CiB7Ci0gICAgaWYgKHZpZXcpCi0gICAgICAgIHJldHVybiB2aWV3LT53aW5J
ZCgpOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKIFFPYmplY3QqIFFX
ZWJWaWV3UHJpdmF0ZTo6cGx1Z2luUGFyZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDk5NzlhNTIuLjc1MzhhZGYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDA5LTEwLTEyICBHaXJpc2ggUmFtYWtyaXNobmFuICA8Z2ly
aXNoQGZvcndhcmRiaWFzLmluPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gUGx1Z2lucyA6IFJlbW92ZSBhbGwgdHJhY2VzIG9mIHdpbklkLiBV
c2Ugb3duZXJXaWRnZXQoKSBpbnN0ZWFkLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIGJ1
ZyBmb3IgdHdvIHJlYXNvbnM6CisgICAgICAgIDEuIEV2ZXJ5dGltZSB3ZSB1c2Ugd2luSWQoKSwg
d2UgZW5kIHVwIGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldC4gVGhpcyBjYXVzZXMgYW4KKyAgICAg
ICAgdW5uZWNlc3NhcnkgY29weSBvZiBjb250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHRv
IHRoZSBuYXRpdmUgd2lkZ2V0LgorICAgICAgICAyLiBOZWl0aGVyIHdpbmRvd2VkIG5vciB3aW5k
b3dsZXNzIHBsdWdpbnMgcmVxdWlyZSB0aGUgd2luSWQgb2YgdGhlIFFXZWJWaWV3IG9yCisgICAg
ICAgIFFHcmFwaGljc1ZpZXcuCisgICAgICAgIAorICAgICAgICBJbnRyb2R1Y2Ugb3duZXJXaWRn
ZXQoKSB3aGljaCByZXR1cm5zIGEgUVdpZGdldCAqIHdpdGhvdXQgY3JlYXRpbmcgYSBuYXRpdmUg
d2lkZ2V0CisgICAgICAgIChhcyBvcHBvc2VkIHRvIFFXaWRnZXQ6OmZpbmQod2luSWQpKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNzAKKwor
ICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFHcmFwaGljc1dl
YlZpZXdQcml2YXRlOjpvd25lcldpZGdldCk6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoK
KyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6b3duZXJXaWRnZXQpOgorCiAyMDA5LTEwLTEyICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41092</attachid>
            <date>2009-10-13 00:53:06 -0700</date>
            <delta_ts>2009-10-13 07:27:20 -0700</delta_ts>
            <desc>ownerWidget (3)</desc>
            <filename>pat</filename>
            <type>text/plain</type>
            <size>10139</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDczM2RhYjllNmM1MjIwMzk1NjkwMGE4MDRhNTZkNzU3N2I1MDdiNWQKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgVHVlIE9j
dCAxMyAxMzoxNDoxNiAyMDA5ICswNTMwCgogICAgW1F0XSBQbHVnaW5zIDogUmVtb3ZlIGFsbCB0
cmFjZXMgb2Ygd2luSWQuIFVzZSBvd25lcldpZGdldCgpIGluc3RlYWQuCiAgICAKICAgIFRoaXMg
aXMgYSBidWcgZm9yIHR3byByZWFzb25zOgogICAgMS4gRXZlcnl0aW1lIHdlIHVzZSB3aW5JZCgp
LCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0LiBUaGlzIGNhdXNlcyBhbgogICAg
ICAgdW5uZWNlc3NhcnkgY29weSBvZiBjb250ZW50cyBmcm9tIHRoZSBiYWNraW5nIHN0b3JlIHRv
IHRoZSBuYXRpdmUgd2lkZ2V0LgogICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVz
cyBwbHVnaW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgogICAgICAgUUdy
YXBoaWNzVmlldy4KICAgIAogICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2ggcmV0dXJu
cyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAogICAgKGFzIG9w
cG9zZWQgdG8gUVdpZGdldDo6ZmluZCh3aW5JZCkpLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg4OWRmZi4uNjM1ZjJlMiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAwOS0xMC0xMyAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJk
Ymlhcy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbUXRdIFBsdWdpbnMgOiBSZW1vdmUgYWxsIHRyYWNlcyBvZiB3aW5JZC4gVXNlIG93bmVyV2lk
Z2V0KCkgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBidWcgZm9yIHR3byBy
ZWFzb25zOgorICAgICAgICAxLiBFdmVyeXRpbWUgd2UgdXNlIHdpbklkKCksIHdlIGVuZCB1cCBj
cmVhdGluZyBhIG5hdGl2ZSB3aWRnZXQuIFRoaXMgY2F1c2VzIGFuCisgICAgICAgIHVubmVjZXNz
YXJ5IGNvcHkgb2YgY29udGVudHMgZnJvbSB0aGUgYmFja2luZyBzdG9yZSB0byB0aGUgbmF0aXZl
IHdpZGdldC4KKyAgICAgICAgMi4gTmVpdGhlciB3aW5kb3dlZCBub3Igd2luZG93bGVzcyBwbHVn
aW5zIHJlcXVpcmUgdGhlIHdpbklkIG9mIHRoZSBRV2ViVmlldyBvcgorICAgICAgICBRR3JhcGhp
Y3NWaWV3LgorICAgICAgICAKKyAgICAgICAgSW50cm9kdWNlIG93bmVyV2lkZ2V0KCkgd2hpY2gg
cmV0dXJucyBhIFFXaWRnZXQgKiB3aXRob3V0IGNyZWF0aW5nIGEgbmF0aXZlIHdpZGdldAorICAg
ICAgICAoYXMgb3Bwb3NlZCB0byBRV2lkZ2V0OjpmaW5kKHdpbklkKSkuCisKKyAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNzAKKworICAgICAgICAqIHBs
YXRmb3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVu
RGVwdGhQZXJDb21wb25lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BvcHVwTWVudVF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgICogcGxhdGZv
cm0vcXQvUVdlYlBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRTaGFyZWRYRXZlbnRGaWVsZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aW5pdFhFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5WaWV3OjpnZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KToKKwogMjAwOS0xMC0xMiAgWGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bs
YXRmb3JtU2NyZWVuUXQuY3BwCmluZGV4IDdiYTgzNTAuLjgyMjE3NjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TY3JlZW5RdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9QbGF0Zm9ybVNjcmVlblF0LmNwcApAQCAtNjIsNyArNjIsNyBAQCBpbnQgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQoV2lkZ2V0KiB3KQogICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xp
ZW50ID0gdy0+cm9vdCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwogCiAg
ICAgICAgIGlmIChjbGllbnQpIHsKLSAgICAgICAgICAgIFFXaWRnZXQqIHZpZXcgPSBRV2lkZ2V0
OjpmaW5kKGNsaWVudC0+d2luSWQoKSk7CisgICAgICAgICAgICBRV2lkZ2V0KiB2aWV3ID0gY2xp
ZW50LT5vd25lcldpZGdldCgpOwogICAgICAgICAgICAgaWYgKHZpZXcpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHZpZXctPmRlcHRoKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUG9wdXBNZW51UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1l
bnVRdC5jcHAKaW5kZXggYjQ0ZjJlYy4uZjZlYzRmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9Qb3B1cE1lbnVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Qb3B1cE1l
bnVRdC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50
UmVjdCYgciwgRnJhbWVWaWV3KiB2LCBpbnQgaW5kZXgpCiAgICAgcmVjdC5tb3ZlVG9wTGVmdCh2
LT5jb250ZW50c1RvV2luZG93KHIudG9wTGVmdCgpKSk7CiAgICAgcmVjdC5zZXRIZWlnaHQobV9w
b3B1cC0+c2l6ZUhpbnQoKS5oZWlnaHQoKSk7CiAKLSAgICBtX3BvcHVwLT5zZXRQYXJlbnQoUVdp
ZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpKTsKKyAgICBtX3BvcHVwLT5zZXRQYXJlbnQoY2xp
ZW50LT5vd25lcldpZGdldCgpKTsKICAgICBtX3BvcHVwLT5zZXRHZW9tZXRyeShyZWN0KTsKICAg
ICBtX3BvcHVwLT5zZXRDdXJyZW50SW5kZXgoaW5kZXgpOwogICAgIG1fcG9wdXAtPmV4ZWMoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaCBiL1dlYkNv
cmUvcGxhdGZvcm0vcXQvUVdlYlBhZ2VDbGllbnQuaAppbmRleCAyYTI4NWM1Li4yOGVmNzI0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1FXZWJQYWdlQ2xpZW50LmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9RV2ViUGFnZUNsaWVudC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgUVBhbGV0dGUgcGFsZXR0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBXSWQgd2luSWQo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRV2lkZ2V0KiBvd25lcldpZGdldCgpIGNvbnN0ID0g
MDsKIAogICAgIHZpcnR1YWwgUU9iamVjdCogcGx1Z2luUGFyZW50KCkgY29uc3QgPSAwOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUv
cGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGE1Y2JiOWEuLjVkMTViNjYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC0yNDksMTUgKzI0OSwxNSBAQCBib29sIFBs
dWdpblZpZXc6OmRpc3BhdGNoTlBFdmVudChOUEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gYWNj
ZXB0ZWQ7CiB9CiAKLXZvaWQgc2V0U2hhcmVkWEV2ZW50RmllbGRzKFhFdmVudCogeEV2ZW50LCBR
V2lkZ2V0KiBob3N0V2luZG93KQordm9pZCBzZXRTaGFyZWRYRXZlbnRGaWVsZHMoWEV2ZW50KiB4
RXZlbnQsIFFXaWRnZXQqIG93bmVyV2lkZ2V0KQogewogICAgIHhFdmVudC0+eGFueS5zZXJpYWwg
PSAwOyAvLyB3ZSBhcmUgdW5hd2FyZSBvZiB0aGUgbGFzdCByZXF1ZXN0IHByb2Nlc3NlZCBieSBY
IFNlcnZlcgogICAgIHhFdmVudC0+eGFueS5zZW5kX2V2ZW50ID0gZmFsc2U7Ci0gICAgeEV2ZW50
LT54YW55LmRpc3BsYXkgPSBob3N0V2luZG93LT54MTFJbmZvKCkuZGlzcGxheSgpOworICAgIHhF
dmVudC0+eGFueS5kaXNwbGF5ID0gUVgxMUluZm86OmRpc3BsYXkoKTsKICAgICAvLyBOT1RFOiBl
dmVudC0+eGFueS53aW5kb3cgZG9lc24ndCBhbHdheXMgcmVzcG9uZCB0byB0aGUgLndpbmRvdyBw
cm9wZXJ0eSBvZiBvdGhlciBYRXZlbnQncwogICAgIC8vIGJ1dCBkb2VzIGluIHRoZSBjYXNlIG9m
IEtleVByZXNzLCBLZXlSZWxlYXNlLCBCdXR0b25QcmVzcywgQnV0dG9uUmVsZWFzZSwgYW5kIE1v
dGlvbk5vdGlmeQogICAgIC8vIGV2ZW50czsgdGh1cywgdGhpcyBpcyByaWdodDoKLSAgICB4RXZl
bnQtPnhhbnkud2luZG93ID0gaG9zdFdpbmRvdy0+d2luZG93KCktPmhhbmRsZSgpOworICAgIHhF
dmVudC0+eGFueS53aW5kb3cgPSBvd25lcldpZGdldCA/IG93bmVyV2lkZ2V0LT53aW5kb3coKS0+
aGFuZGxlKCkgOiAwOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmluaXRYRXZlbnQoWEV2ZW50KiB4
RXZlbnQpCkBAIC0yNjUsOCArMjY1LDggQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0WEV2ZW50KFhF
dmVudCogeEV2ZW50KQogICAgIG1lbXNldCh4RXZlbnQsIDAsIHNpemVvZihYRXZlbnQpKTsKIAog
ICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RX
aW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAgUVdpZGdldCogd2luZG93ID0gUVdp
ZGdldDo6ZmluZChjbGllbnQtPndpbklkKCkpOwotICAgIHNldFNoYXJlZFhFdmVudEZpZWxkcyh4
RXZlbnQsIHdpbmRvdyk7CisgICAgUVdpZGdldCogb3duZXJXaWRnZXQgPSBjbGllbnQgPyBjbGll
bnQtPm93bmVyV2lkZ2V0KCkgOiAwOworICAgIHNldFNoYXJlZFhFdmVudEZpZWxkcyh4RXZlbnQs
IG93bmVyV2lkZ2V0KTsKIH0KIAogdm9pZCBzZXRYS2V5RXZlbnRTcGVjaWZpY0ZpZWxkcyhYRXZl
bnQqIHhFdmVudCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCkBAIC01NzcsMTMgKzU3Nyw3IEBAIE5Q
RXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZh
bHVlKQogCiAgICAgc3dpdGNoICh2YXJpYWJsZSkgewogICAgIGNhc2UgTlBOVnhEaXNwbGF5Ogot
ICAgICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgICAgICoodm9pZCAq
Kil2YWx1ZSA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPngxMUluZm8oKS5kaXNwbGF5KCk7Ci0g
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFy
ZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAg
ICAgICAgICAgIFFXaWRnZXQqIHdpbmRvdyA9IFFXaWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgp
KTsKLSAgICAgICAgICAgICoodm9pZCAqKil2YWx1ZSA9IHdpbmRvdy0+eDExSW5mbygpLmRpc3Bs
YXkoKTsKLSAgICAgICAgfQorICAgICAgICAqKHZvaWQgKiopdmFsdWUgPSBRWDExSW5mbzo6ZGlz
cGxheSgpOwogICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAKICAgICBjYXNlIE5QTlZ4
dEFwcENvbnRleHQ6CkBAIC02MjgsNyArNjIyLDggQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRW
YWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAKICAgICBjYXNlIE5QTlZu
ZXRzY2FwZVdpbmRvdzogewogICAgICAgICB2b2lkKiB3ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4odmFsdWUpOwotICAgICAgICAqKChYSUQgKil3KSA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+d2luSWQoKTsKKyAgICAgICAgUVdl
YlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKKyAgICAgICAgKigoWElEICopdykgPSBjbGllbnQgPyBj
bGllbnQtPm93bmVyV2lkZ2V0KCktPndpbklkKCkgOiAwOwogICAgICAgICByZXR1cm4gTlBFUlJf
Tk9fRVJST1I7CiAgICAgfQogCkBAIC03NTYsNyArNzUxLDcgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KCkKICAgICBpZiAobV9pc1dpbmRvd2VkKSB7CiAgICAgICAgIGlmIChtX25l
ZWRzWEVtYmVkKSB7CiAgICAgICAgICAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJl
bnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpOwotICAg
ICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQobmV3IFBsdWdpbkNvbnRhaW5lclF0KHRoaXMsIFFX
aWRnZXQ6OmZpbmQoY2xpZW50LT53aW5JZCgpKSkpOworICAgICAgICAgICAgc2V0UGxhdGZvcm1X
aWRnZXQobmV3IFBsdWdpbkNvbnRhaW5lclF0KHRoaXMsIGNsaWVudC0+b3duZXJXaWRnZXQoKSkp
OwogICAgICAgICAgICAgLy8gc3luYyBvdXIgWEVtYmVkIGNvbnRhaW5lciB3aW5kb3cgY3JlYXRp
b24gYmVmb3JlIHNlbmRpbmcgdGhlIHhpZCB0byBwbHVnaW5zLgogICAgICAgICAgICAgUUFwcGxp
Y2F0aW9uOjpzeW5jWCgpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0
L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmll
dy5jcHAKaW5kZXggYWEzOGRjZC4uMWU0OWQzZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9x
Z3JhcGhpY3N3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgICAgQ29weXJpZ2h0IChDKSAy
MDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KIAogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFFQYWxl
dHRlIHBhbGV0dGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBzY3JlZW5OdW1iZXIoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIFdJZCB3aW5JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgUVdpZGdldCog
b3duZXJXaWRnZXQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgUU9iamVjdCogcGx1Z2luUGFyZW50
KCkgY29uc3Q7CiAKQEAgLTE0NCwxNCArMTQ1LDEwIEBAIGludCBRR3JhcGhpY3NXZWJWaWV3UHJp
dmF0ZTo6c2NyZWVuTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotV0lkIFFHcmFw
aGljc1dlYlZpZXdQcml2YXRlOjp3aW5JZCgpIGNvbnN0CitRV2lkZ2V0KiBRR3JhcGhpY3NXZWJW
aWV3UHJpdmF0ZTo6b3duZXJXaWRnZXQoKSBjb25zdAogewogICAgIGNvbnN0IFFMaXN0PFFHcmFw
aGljc1ZpZXcqPiB2aWV3cyA9IHEtPnNjZW5lKCktPnZpZXdzKCk7Ci0KLSAgICBpZiAoIXZpZXdz
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHZpZXdzLmF0KDApLT53aW5JZCgpOwotCi0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIHZpZXdzLnZhbHVlKDApOwogfQogCiBRT2JqZWN0KiBRR3Jh
cGhpY3NXZWJWaWV3UHJpdmF0ZTo6cGx1Z2luUGFyZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKaW5k
ZXggYjQzMWMwMC4uYjkwMDQ2MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5j
cHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgog
ICAgIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAgICBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNo
QGZvcndhcmRiaWFzLmluPgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01OSw3ICs2MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgUVBhbGV0dGUgcGFsZXR0ZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IHNjcmVlbk51bWJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgV0lkIHdpbklkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBRV2lkZ2V0KiBvd25lcldpZGdldCgpIGNvbnN0OwogCiAgICAgdmly
dHVhbCBRT2JqZWN0KiBwbHVnaW5QYXJlbnQoKSBjb25zdDsKIApAQCAtMTIxLDEyICsxMjIsOSBA
QCBpbnQgUVdlYlZpZXdQcml2YXRlOjpzY3JlZW5OdW1iZXIoKSBjb25zdAogICAgIHJldHVybiAw
OwogfQogCi1XSWQgUVdlYlZpZXdQcml2YXRlOjp3aW5JZCgpIGNvbnN0CitRV2lkZ2V0KiBRV2Vi
Vmlld1ByaXZhdGU6Om93bmVyV2lkZ2V0KCkgY29uc3QKIHsKLSAgICBpZiAodmlldykKLSAgICAg
ICAgcmV0dXJuIHZpZXctPndpbklkKCk7Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdmll
dzsKIH0KIAogUU9iamVjdCogUVdlYlZpZXdQcml2YXRlOjpwbHVnaW5QYXJlbnQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggOTk3OWE1Mi4uMjZkNTgyMSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMTMgIEdpcmlz
aCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBQbHVnaW5zIDogUmVtb3ZlIGFs
bCB0cmFjZXMgb2Ygd2luSWQuIFVzZSBvd25lcldpZGdldCgpIGluc3RlYWQuCisgICAgICAgIAor
ICAgICAgICBUaGlzIGlzIGEgYnVnIGZvciB0d28gcmVhc29uczoKKyAgICAgICAgMS4gRXZlcnl0
aW1lIHdlIHVzZSB3aW5JZCgpLCB3ZSBlbmQgdXAgY3JlYXRpbmcgYSBuYXRpdmUgd2lkZ2V0LiBU
aGlzIGNhdXNlcyBhbgorICAgICAgICB1bm5lY2Vzc2FyeSBjb3B5IG9mIGNvbnRlbnRzIGZyb20g
dGhlIGJhY2tpbmcgc3RvcmUgdG8gdGhlIG5hdGl2ZSB3aWRnZXQuCisgICAgICAgIDIuIE5laXRo
ZXIgd2luZG93ZWQgbm9yIHdpbmRvd2xlc3MgcGx1Z2lucyByZXF1aXJlIHRoZSB3aW5JZCBvZiB0
aGUgUVdlYlZpZXcgb3IKKyAgICAgICAgUUdyYXBoaWNzVmlldy4KKyAgICAgICAgCisgICAgICAg
IEludHJvZHVjZSBvd25lcldpZGdldCgpIHdoaWNoIHJldHVybnMgYSBRV2lkZ2V0ICogd2l0aG91
dCBjcmVhdGluZyBhIG5hdGl2ZSB3aWRnZXQKKyAgICAgICAgKGFzIG9wcG9zZWQgdG8gUVdpZGdl
dDo6ZmluZCh3aW5JZCkpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDE3MAorCisgICAgICAgICogQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwOgor
ICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Om93bmVyV2lkZ2V0KToKKyAgICAgICAg
KiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZpZXdQcml2YXRlOjpvd25lcldpZGdl
dCk6CisKIDIwMDktMTAtMTIgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>