<?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>61721</bug_id>
          
          <creation_ts>2011-05-30 00:43:02 -0700</creation_ts>
          <short_desc>Test plugin should support event logging on the windows port.</short_desc>
          <delta_ts>2011-08-07 23:44:10 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>61783</blocked>
    
    <blocked>62375</blocked>
    
    <blocked>65841</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412147</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-05-30 00:43:02 -0700</bug_when>
    <thetext>Tests plugins/mouse-events.html plugins/key-events.html require event logging for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412152</commentid>
    <comment_count>1</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-05-30 00:54:57 -0700</bug_when>
    <thetext>plugins/mouse-events.html mentioned InChromiumBugs http://crbug.com/10351.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412553</commentid>
    <comment_count>2</comment_count>
      <attachid>95419</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-05-31 04:52:46 -0700</bug_when>
    <thetext>Created attachment 95419
Patch wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412600</commentid>
    <comment_count>3</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-05-31 07:17:19 -0700</bug_when>
    <thetext>I should maybe remove the X11 fixup into another bug. Anyho ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412945</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-31 15:41:31 -0700</bug_when>
    <thetext>&gt; Tests plugins/mouse-events.html plugins/key-events.html require event logging for example.

Does this patch make them pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413325</commentid>
    <comment_count>5</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-01 06:30:37 -0700</bug_when>
    <thetext>Maybe.  I&apos;ve given up trying to build the win port with my setup.  I can build
chrome windows port though, and can reliably test this change there ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413326</commentid>
    <comment_count>6</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-01 06:34:22 -0700</bug_when>
    <thetext>There is an exclusion line for the mouse-events.html test in the chromium
test_expectations.txt file.  I commented that line out and ran the chromium
DRT in debug to see what the test actually outputs ...

  Test for bug 11517: Flash clicks/interactivity not working properly.

Patched in my change and repeated the above. The output is:

  Test for bug 11517: Flash clicks/interactivity not working properly.

No joy.  Add attribute windowPlugin=&quot;false&quot; to the &lt;embed&gt; tag so the test
plugin is loaded in windowless mode, and retest.  The output is:

 CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent
 CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (20, 20)
 CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (20, 20)
 CONSOLE MESSAGE: line 21: PLUGIN: mouseDown at (30, 30)
 CONSOLE MESSAGE: line 23: PLUGIN: mouseUp at (40, 30)

 Test for bug 11517: Flash clicks/interactivity not working properly.

 Conclusion: mac ports load plugins in windowless mode by default, chrome
 linux/win load them windowed by default.  Attribute windowPlugin=&quot;false&quot;
 on the &lt;embed&gt; forces windowless plugin mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413343</commentid>
    <comment_count>7</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-01 06:51:13 -0700</bug_when>
    <thetext>OK so the keyboard-events.html might work too.  Again there&apos;s an exclusion line
in the chromium test_expectations.txt file.  I commented that line out and ran
the chromium DRT in debug _with_ my change.  The output is:

  This test checks if a plug-in can receive keyboard events sent from eventSender. This is a test for Bug 34936.

No joy.  Add attribute windowPlugin=&quot;false&quot; to the &lt;embed&gt; as before and retest.
The output is:

  CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent
  CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (20, 20)
  CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (20, 20)
  CONSOLE MESSAGE: line 22: PLUGIN: keyDown &apos;A&apos;
  CONSOLE MESSAGE: line 22: PLUGIN: keyUp &apos;A&apos;
  CONSOLE MESSAGE: line 23: PLUGIN: keyDown &apos;B&apos;
  CONSOLE MESSAGE: line 23: PLUGIN: keyUp &apos;B&apos;
  CONSOLE MESSAGE: line 24: PLUGIN: keyDown &apos;C&apos;
  CONSOLE MESSAGE: line 24: PLUGIN: keyUp &apos;C&apos;

  This test checks if a plug-in can receive keyboard events sent from eventSender. This is a test for Bug 34936.

Windowless mode plugins are needed for these tests, and all ports should at least
test for that -- windowless Flash plugins are common on the web.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413369</commentid>
    <comment_count>8</comment_count>
      <attachid>95600</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-01 07:35:10 -0700</bug_when>
    <thetext>Created attachment 95600
Patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413664</commentid>
    <comment_count>9</comment_count>
      <attachid>95600</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-01 14:21:14 -0700</bug_when>
    <thetext>Comment on attachment 95600
Patch for review.

This looks correct to me.

Events generated by eventSender probably won&apos;t get forwarded to windowed plugins since windowed plugins get events from the OS (I guess we could try to make OS events and forward them, but that&apos;s probably not worth the effort).  By making it a windowless plugin, WebKit can forward the events to the plugin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413665</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-01 14:21:35 -0700</bug_when>
    <thetext>Also, I suspect this will fix the tests on webkit win as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413692</commentid>
    <comment_count>11</comment_count>
      <attachid>95600</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-01 14:57:16 -0700</bug_when>
    <thetext>Comment on attachment 95600
Patch for review.

Clearing flags on attachment: 95600

Committed r87855: &lt;http://trac.webkit.org/changeset/87855&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413693</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-01 14:57:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414207</commentid>
    <comment_count>13</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-02 09:52:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; This looks correct to me.
&gt;
&gt; Events generated by eventSender probably won&apos;t get forwarded to windowed plugins since windowed
&gt; plugins get events from the OS (I guess we could try to make OS events and forward them, but
&gt; that&apos;s probably not worth the effort).

Agree + there are windowed plugin (unit) tests in src/webkit/plugins/npapi/test for chromium
and in Tools/DumpRenderTree/TestNetscapePlugIn/win for the webkit win port.


&gt; By making it a windowless plugin, WebKit can forward the events to the plugin.

Yes.  Note I made handleEventWin() return 1.  handleEventX11() and handleEventCarbon() return
0, handleEventCocoa() returns 1.  These become the return value of NPP_HandleEvent() and the
plugin container has to handle it -- return values all over the place, like real plugins :)

Begs the question: should plugin containers trust the NPP_HandleEvent() return value for mouse
and keyboard events?  Nope in general and chromium mentions why:

  webplugin_delegate_impl_mac.mm http://goo.gl/WuCtv
  webplugin_delegate_impl_win.cc http://goo.gl/BUQ67
  webplugin_delegate_impl_gtk.cc http://goo.gl/yBmQ8

They ignore the return value, and say the mouse/keyboard event was handled.  That should be
enough to close bug 58924 I believe, could you possibly/please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414210</commentid>
    <comment_count>14</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-02 09:55:38 -0700</bug_when>
    <thetext>&gt; Also, I suspect this will fix the tests on webkit win as well.

Concur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416578</commentid>
    <comment_count>15</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 09:50:42 -0700</bug_when>
    <thetext>&gt; Concur.

Well, maybe for WebKit2, https://bugs.webkit.org/attachment.cgi?id=88749 where
NPP_HandleEvent() returns have started to be ignored (bug 58108), and the same
in the WebKit2 win netscape plugin code from my reading.

https://bugs.webkit.org/show_bug.cgi?id=58108#c2 asked a good question - well
what about WebKit1, are the events ignored there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416608</commentid>
    <comment_count>16</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 10:24:24 -0700</bug_when>
    <thetext>I got a clean VS2005, setup the all bits &amp; pieces to build webkit win, and built DRT win.
My results:

 1) focus events are not sent through to the windowless plugin - there are no
    &quot;CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent&quot; in the DRT test results.

 2) the expected mouse events are logged to the DRT result _only_ if I return 0
    from the NPP_HandleEvent() call.

So focus is not working, but why is a return 0 needed?

The keyboard handling
  http://trac.webkit.org/browser/trunk/WebCore/plugins/win/PluginViewWin.cpp?rev=67854#L656
and the mouse event handling
  http://trac.webkit.org/browser/trunk/WebCore/plugins/win/PluginViewWin.cpp?rev=67854#L724

read the result of dispatchNPEvent(), which is the return the result of NPP_HandleEvent(),
and so I see why ...

   if (!dispatchNPEvent(npEvent))
     event-&gt;setDefaultHandled();

The event is marked handled only if the plugin returned 0 from NPP_HandleEvent().  Since
that is the expectation, and since chromium ignores the event return, this suggests a new
patch to get mouse event logging working on webkit win ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416613</commentid>
    <comment_count>17</comment_count>
      <attachid>96257</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 10:27:49 -0700</bug_when>
    <thetext>Created attachment 96257
Patch Part #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416614</commentid>
    <comment_count>18</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 10:30:09 -0700</bug_when>
    <thetext>FYI chromium DRT plugins/{mouse-events.html,key-events.html} still pass with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416620</commentid>
    <comment_count>19</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 10:38:01 -0700</bug_when>
    <thetext>(In reply to comment #18)
Meant plugins/{mouse-events.html,keyboard-events.html}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416650</commentid>
    <comment_count>20</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 11:17:32 -0700</bug_when>
    <thetext>Build webkit win at tip just now, and ran the mouse-events.html test

 CONSOLE MESSAGE: line 0: PLUGIN: mouseDown at (20, 20)
 CONSOLE MESSAGE: line 0: PLUGIN: mouseUp at (20, 20)
 CONSOLE MESSAGE: line 0: PLUGIN: mouseDown at (30, 30)
 CONSOLE MESSAGE: line 0: PLUGIN: mouseUp at (40, 30)

 Test for bug 11517: Flash clicks/interactivity not working properly.

Ok, mouse event logged at last.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416655</commentid>
    <comment_count>21</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-07 11:20:50 -0700</bug_when>
    <thetext>.. and keyboard-events.html is looking better also. 

  CONSOLE MESSAGE: line 0: PLUGIN: mouseDown at (20, 20)
  CONSOLE MESSAGE: line 0: PLUGIN: mouseUp at (20, 20)
  CONSOLE MESSAGE: line 0: PLUGIN: keyDown &apos;A&apos;
  CONSOLE MESSAGE: line 0: PLUGIN: keyUp &apos;A&apos;
  CONSOLE MESSAGE: line 0: PLUGIN: keyDown &apos;B&apos;
  CONSOLE MESSAGE: line 0: PLUGIN: keyUp &apos;B&apos;
  CONSOLE MESSAGE: line 0: PLUGIN: keyDown &apos;C&apos;
  CONSOLE MESSAGE: line 0: PLUGIN: keyUp &apos;C&apos;

  This test checks if a plug-in can receive keyboard events sent from eventSender. This is a test for Bug 34936.(In reply to</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417266</commentid>
    <comment_count>22</comment_count>
      <attachid>96429</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-08 08:58:18 -0700</bug_when>
    <thetext>Created attachment 96429
Patch Part #2.1

Add focus fix.  Layout test failures noted in the win port DRT, in fast/css/* for example.
But I&apos;m not touching CSS here, so maybe that&apos;s normal?  Not sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417603</commentid>
    <comment_count>23</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-08 15:28:47 -0700</bug_when>
    <thetext>Noel: I would make a new bug for the fixes to the Win port.

Good people to CC for a review or feedback are jhoneycutt@apple.com and andersca@apple.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417799</commentid>
    <comment_count>24</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-08 21:34:06 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Noel: I would make a new bug for the fixes to the Win port.
&gt; 
&gt; Good people to CC for a review or feedback are jhoneycutt@apple.com and andersca@apple.com.

Right thx, will split the Win port change out in a new bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417908</commentid>
    <comment_count>25</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-09 02:07:13 -0700</bug_when>
    <thetext>Patch Part #2 will do for the current bug therefore, r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417998</commentid>
    <comment_count>26</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-09 07:16:29 -0700</bug_when>
    <thetext>Filed bug 62375 for the fixes to the Win port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418099</commentid>
    <comment_count>27</comment_count>
      <attachid>96257</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-09 10:43:59 -0700</bug_when>
    <thetext>Comment on attachment 96257
Patch Part #2

I guess this change doesn&apos;t have tests because they are covered by the fixes in 62375?  That seems OK to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418124</commentid>
    <comment_count>28</comment_count>
      <attachid>96257</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 11:21:34 -0700</bug_when>
    <thetext>Comment on attachment 96257
Patch Part #2

Clearing flags on attachment: 96257

Committed r88465: &lt;http://trac.webkit.org/changeset/88465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418125</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-09 11:21:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418490</commentid>
    <comment_count>30</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-09 21:15:46 -0700</bug_when>
    <thetext>&gt; I guess this change doesn&apos;t have tests because they are covered by the fixes in 62375?  That seems OK to me.

Correct.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95419</attachid>
            <date>2011-05-31 04:52:46 -0700</date>
            <delta_ts>2011-06-01 07:35:10 -0700</delta_ts>
            <desc>Patch wip</desc>
            <filename>plugin.diff</filename>
            <type>text/plain</type>
            <size>3164</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzODk4
YzY4Li5iZjVkNjUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMzEgIE5vZWwgR29yZG9uICA8bm9lbC5n
b3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3QgcGx1Z2luIHNob3VsZCBzdXBwb3J0IGV2ZW50IGxvZ2dpbmcgb24gdGhl
IHdpbmRvd3MgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjE3MjEKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi9tYWluLmNwcDoKKyAgICAgICAgKGhhbmRsZUV2ZW50WDExKTogCisgICAgICAgIChoYW5kbGVF
dmVudFdpbik6IFdlbGwsIGhhbmRsZSB0aGVtLgorCiAyMDExLTA1LTI0ICBLZWlzaGkgSGF0dG9y
aSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJh
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21h
aW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3Bw
CmluZGV4IGM0ZjhmOWMuLmFkYzc5OGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKQEAgLTY0OCw2ICs2NDgsMTEgQEAgc3RhdGljIGlu
dDE2X3QgaGFuZGxlRXZlbnRYMTEoTlBQIGluc3RhbmNlLCBQbHVnaW5PYmplY3QqIG9iaiwgWEV2
ZW50KiBldmVudCkKICAgICAgICAgLy8gRklYTUU6IGV4dHJhY3Qga2V5IGNvZGUKICAgICAgICAg
aWYgKG9iai0+ZXZlbnRMb2dnaW5nKQogICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAi
Tk9USU1QTEVNRU5URUQ6IGtleVVwICclYyciLCAnICcpOworICAgICAgICBpZiAob2JqLT50ZXN0
S2V5Ym9hcmRGb2N1c0ZvclBsdWdpbnMpIHsKKyAgICAgICAgICAgIG9iai0+ZXZlbnRMb2dnaW5n
ID0gZmFsc2U7CisgICAgICAgICAgICBvYmotPnRlc3RLZXlib2FyZEZvY3VzRm9yUGx1Z2lucyA9
IEZBTFNFOworICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosICJsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Iik7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBHcmFwaGljc0V4cG9zZToKICAgICAgICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQpAQCAtNjg4
LDYgKzY5Myw0NSBAQCBzdGF0aWMgaW50MTZfdCBoYW5kbGVFdmVudFdpbihOUFAgaW5zdGFuY2Us
IFBsdWdpbk9iamVjdCogb2JqLCBOUEV2ZW50KiBldmVudCkKICAgICAgICAgaWYgKG9iai0+b25Q
YWludEV2ZW50KQogICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosIG9iai0+b25QYWludEV2
ZW50KTsKICAgICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBXTV9LRVlET1dOOgorICAgICAgICBp
ZiAob2JqLT5ldmVudExvZ2dpbmcpCisgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJr
ZXlEb3duICclYyciLCBldmVudC0+d1BhcmFtKTsKKyAgICAgICAgaWYgKG9iai0+ZXZhbHVhdGVT
Y3JpcHRPbk1vdXNlRG93bk9yS2V5RG93biAmJiAhb2JqLT5tb3VzZURvd25Gb3JFdmFsdWF0ZVNj
cmlwdCkKKyAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPmV2YWx1YXRlU2NyaXB0
T25Nb3VzZURvd25PcktleURvd24pOworICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIFdNX0NI
QVI6CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV01fS0VZVVA6CisgICAgICAgIGlmIChv
YmotPmV2ZW50TG9nZ2luZykKKyAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgImtleVVw
ICclYyciLCBldmVudC0+d1BhcmFtKTsKKyAgICAgICAgaWYgKG9iai0+dGVzdEtleWJvYXJkRm9j
dXNGb3JQbHVnaW5zKSB7CisgICAgICAgICAgICBvYmotPmV2ZW50TG9nZ2luZyA9IGZhbHNlOwor
ICAgICAgICAgICAgb2JqLT50ZXN0S2V5Ym9hcmRGb2N1c0ZvclBsdWdpbnMgPSBGQUxTRTsKKyAg
ICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCAibGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV01fTEJV
VFRPTkRPV046CisgICAgY2FzZSBXTV9NQlVUVE9ORE9XTjoKKyAgICBjYXNlIFdNX1JCVVRUT05E
T1dOOgorICAgICAgICBpZiAob2JqLT5ldmVudExvZ2dpbmcpCisgICAgICAgICAgICBwbHVnaW5M
b2coaW5zdGFuY2UsICJtb3VzZURvd24gYXQgKCVkLCAlZCkiLCBMT1dPUkQoZXZlbnQtPmxQYXJh
bSksIEhJV09SRChldmVudC0+bFBhcmFtKSk7CisgICAgICAgIGlmIChvYmotPmV2YWx1YXRlU2Ny
aXB0T25Nb3VzZURvd25PcktleURvd24gJiYgb2JqLT5tb3VzZURvd25Gb3JFdmFsdWF0ZVNjcmlw
dCkKKyAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPmV2YWx1YXRlU2NyaXB0T25N
b3VzZURvd25PcktleURvd24pOworICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIFdNX0xCVVRU
T05VUDoKKyAgICBjYXNlIFdNX01CVVRUT05VUDoKKyAgICBjYXNlIFdNX1JCVVRUT05VUDoKKyAg
ICAgICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQorICAgICAgICAgICAgcGx1Z2luTG9nKGluc3Rh
bmNlLCAibW91c2VVcCBhdCAoJWQsICVkKSIsIExPV09SRChldmVudC0+bFBhcmFtKSwgSElXT1JE
KGV2ZW50LT5sUGFyYW0pKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBXTV9TRVRGT0NV
UzoKKyAgICAgICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQorICAgICAgICAgICAgcGx1Z2luTG9n
KGluc3RhbmNlLCAiZ2V0Rm9jdXNFdmVudCIpOworICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNl
IFdNX0tJTExGT0NVUzoKKyAgICAgICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQorICAgICAgICAg
ICAgcGx1Z2luTG9nKGluc3RhbmNlLCAibG9zZUZvY3VzRXZlbnQiKTsKKyAgICAgICAgcmV0dXJu
IDE7CiAgICAgfQogICAgIHJldHVybiAwOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95600</attachid>
            <date>2011-06-01 07:35:10 -0700</date>
            <delta_ts>2011-06-01 14:57:16 -0700</delta_ts>
            <desc>Patch for review.</desc>
            <filename>plugin.diff</filename>
            <type>text/plain</type>
            <size>7369</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTU2YmExLi5lMTg4ODg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYt
MDEgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgcGx1Z2luIHNob3VsZCBzdXBw
b3J0IGV2ZW50IGxvZ2dpbmcgb24gdGhlIHdpbmRvd3MgcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzIxCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vcGx1Z2lucy9rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0OiAgTmV3
IHdpbmRvd3MgcmVzdWx0LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dDogIE5ldyBleHBlY3RhdGlvbnMuCisgICAgICAgICogcGx1Z2lucy9rZXlib2Fy
ZC1ldmVudHMuaHRtbDogIEFkZCBhdHRyaWJ1dGUgd2luZG93UGx1Z2luPSJmYWxzZSIgdG8gZm9y
Y2UgdGhlCisgICAgICAgIENocm9taXVtIHdpbmRvd3MgcG9ydCB0byBsb2FkIHRoZSB0ZXN0IHBs
dWdpbiBpbiB3aW5kb3dsZXNzIG1vZGUuIFRoZSBwbHVnaW4gd2lsbAorICAgICAgICB0aGVuIHJl
Y2VpdmUgZXZlbnRzIGFuZCBjYW4gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUgYXMgcmVxdWlyZWQg
YnkgdGhpcyB0ZXN0LgorICAgICAgICAqIHBsdWdpbnMvbW91c2UtZXZlbnRzLmh0bWw6ICBEaXR0
by4KKwogMjAxMS0wNi0wMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcHBpbmcgZmxha3kgdGVzdCBvbiBHVEsgNjQt
Yml0IGJvdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9w
bHVnaW5zL2tleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vcGx1Z2lucy9rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IDcxYjlkZWYuLjkwZjhmM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3BsdWdpbnMva2V5Ym9hcmQtZXZlbnRzLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDExIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTc6IFBMVUdJ
TjogZ2V0Rm9jdXNFdmVudAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBQTFVHSU46IG1vdXNl
RG93biBhdCAoMjAsIDIwKQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBQTFVHSU46IG1vdXNl
VXAgYXQgKDIwLCAyMCkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMTogUExVR0lOOiBrZXlVcCAn
QScKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogUExVR0lOOiBrZXlVcCAnQicKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAyMzogUExVR0lOOiBrZXlVcCAnQycKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODogUExVR0lOOiBnZXRGb2N1c0V2ZW50CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFBM
VUdJTjogbW91c2VEb3duIGF0ICgyMCwgMjApCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IFBM
VUdJTjogbW91c2VVcCBhdCAoMjAsIDIwKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBQTFVH
SU46IGtleURvd24gJ0EnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IFBMVUdJTjoga2V5VXAg
J0EnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM6IFBMVUdJTjoga2V5RG93biAnQicKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAyMzogUExVR0lOOiBrZXlVcCAnQicKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAyNDogUExVR0lOOiBrZXlEb3duICdDJworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBQ
TFVHSU46IGtleVVwICdDJwogCiBUaGlzIHRlc3QgY2hlY2tzIGlmIGEgcGx1Zy1pbiBjYW4gcmVj
ZWl2ZSBrZXlib2FyZCBldmVudHMgc2VudCBmcm9tIGV2ZW50U2VuZGVyLiBUaGlzIGlzIGEgdGVz
dCBmb3IgQnVnIDM0OTM2LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGMxMDRkNDkuLjc5MDg1YTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAg
LTc2Miw3ICs3NjIsNyBAQCBCVUdDUjEwMzUxIE1BQyA6IHBsdWdpbnMvaW5uZXItaHRtbC1kaXNw
bGF5LW5vbmUuaHRtbCA9IEZBSUwKIEJVR1dLNDgxNjQgTUFDIExJTlVYIFdJTiA6IHBsdWdpbnMv
aW52YWxpZC1taW1lLXdpdGgtdmFsaWQtZXh0ZW5zaW9uLXNob3dzLW1pc3NpbmctcGx1Z2luLmh0
bWwgPSBURVhUCiAvLyBOZWVkIHRvIGltcGxlbWVudCBOUFBfSGFuZGxlRXZlbnQgaW4gdGhlIGxh
eW91dF90ZXN0X3BsdWdpbgogLy8gV0lOIHN0YXJ0ZWQgZmFpbGluZyBkdXJpbmcgd2Via2l0IHJv
bGwgNjI2NzAgLT4gNjI4NDQuCi1CVUdDUjM4MzUzIDogcGx1Z2lucy9rZXlib2FyZC1ldmVudHMu
aHRtbCA9IFRFWFQKK0JVR0NSMzgzNTMgTUFDIExJTlVYOiBwbHVnaW5zL2tleWJvYXJkLWV2ZW50
cy5odG1sID0gVEVYVAogQlVHQ1IxMDM1MSBNQUMgOiBwbHVnaW5zL21vdXNlLWV2ZW50cy5odG1s
ID0gRkFJTAogQlVHQ1IzMjg2NCBNQUMgTElOVVggOiBwbHVnaW5zL21vdXNlLWV2ZW50cy1maXhl
ZHBvcy5odG1sID0gVEVYVAogQlVHQ1IzNTgyMiA6IHBsdWdpbnMvbnBydW50aW1lL2Jyb3dzZXIt
b2JqZWN0LWlkZW50aXR5Lmh0bWwgPSBURVhUCkBAIC03ODMsNyArNzgzLDYgQEAgQlVHQ1IzODM1
MyA6IGh0dHAvdGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLmh0bWwgPSBU
RVhUIFRJTUVPVVQKIC8vIHN3aXRjaC4KIEJVR19UT05ZIFdJTiA6IHBsdWdpbnMvZ2V0dXJsbm90
aWZ5LWR1cmluZy1kb2N1bWVudC10ZWFyZG93bi5odG1sID0gQ1JBU0gKIEJVR1dLNDg2NTUgOiBw
bHVnaW5zL2pzLWZyb20tZGVzdHJveS5odG1sID0gQ1JBU0ggUEFTUwotQlVHX1RPTlkgV0lOIDog
cGx1Z2lucy9tb3VzZS1ldmVudHMuaHRtbCA9IFRFWFQKIEJVR19UT05ZIFdJTiA6IHBsdWdpbnMv
cGx1Z2luLWluaXRpYXRlLXBvcHVwLXdpbmRvdy5odG1sID0gVElNRU9VVAogLy8gVGhpcyB0ZXN0
IGlzIGZhaWxpbmcgYmVjYXVzZSB0aGUgcGx1Z2luIGhhcyBjaGFuZ2VkIG5hbWVzIG9uIFdpbmRv
d3MgdG8KIC8vIG1hdGNoIHRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdXBzdHJlYW0uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvcGx1Z2lucy9rZXlib2FyZC1ldmVudHMuaHRtbAppbmRleCBiNTE4MDRmLi5jNzI0ZDk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3BsdWdpbnMva2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTEsNiArMSw2IEBA
CiA8aHRtbD4KIDxib2R5PgotPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13
ZWJraXQtdGVzdC1uZXRzY2FwZSIgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9lbWJlZD4KKzxlbWJl
ZCBuYW1lPSJwbGciIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHdp
bmRvd2VkUGx1Z2luPSJmYWxzZSIgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9lbWJlZD4KIDxwPlRo
aXMgdGVzdCBjaGVja3MgaWYgYSBwbHVnLWluIGNhbiByZWNlaXZlIGtleWJvYXJkIGV2ZW50cyBz
ZW50IGZyb20gZXZlbnRTZW5kZXIuIFRoaXMgaXMgYSB0ZXN0IGZvciA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ5MzYiPkJ1ZyAzNDkzNjwvYT4uPC9w
PgogPHNjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9tb3VzZS1ldmVu
dHMuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbW91c2UtZXZlbnRzLmh0bWwKaW5kZXggOTYz
OGUyZS4uMGY5YTlmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9tb3VzZS1ldmVu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL21vdXNlLWV2ZW50cy5odG1sCkBAIC0x
LDYgKzEsNiBAQAogPGh0bWw+CiA8Ym9keT4KLTxlbWJlZCBuYW1lPSJwbGciIHR5cGU9ImFwcGxp
Y2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1i
ZWQ+Cis8ZW1iZWQgbmFtZT0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5l
dHNjYXBlIiB3aW5kb3dlZFBsdWdpbj0iZmFsc2UiIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZW1i
ZWQ+CiA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE1MTciPmJ1ZyAxMTUxNzwvYT46CiBGbGFzaCBjbGlja3MvaW50ZXJhY3Rpdml0
eSBub3Qgd29ya2luZyBwcm9wZXJseS48L3A+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRiZmVjZDQuLjBjOWQyMWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMS0wNi0wMSAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBwbHVn
aW4gc2hvdWxkIHN1cHBvcnQgZXZlbnQgbG9nZ2luZyBvbiB0aGUgd2luZG93cyBwb3J0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MjEKKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcDoKKyAgICAg
ICAgKGhhbmRsZUV2ZW50V2luKTogV2VsbCwgaGFuZGxlIHRoZW0uCisKIDIwMTEtMDUtMzEgIEhh
byBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
aXJrIFByYW5rZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2Fw
ZVBsdWdJbi9tYWluLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJ
bi9tYWluLmNwcAppbmRleCBjNGY4ZjljLi5hODdkYzQzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwCkBAIC02ODgsNiArNjg4LDQ1IEBA
IHN0YXRpYyBpbnQxNl90IGhhbmRsZUV2ZW50V2luKE5QUCBpbnN0YW5jZSwgUGx1Z2luT2JqZWN0
KiBvYmosIE5QRXZlbnQqIGV2ZW50KQogICAgICAgICBpZiAob2JqLT5vblBhaW50RXZlbnQpCiAg
ICAgICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vblBhaW50RXZlbnQpOwogICAgICAg
ICByZXR1cm4gMTsKKyAgICBjYXNlIFdNX0tFWURPV046CisgICAgICAgIGlmIChvYmotPmV2ZW50
TG9nZ2luZykKKyAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgImtleURvd24gJyVjJyIs
IGV2ZW50LT53UGFyYW0pOworICAgICAgICBpZiAob2JqLT5ldmFsdWF0ZVNjcmlwdE9uTW91c2VE
b3duT3JLZXlEb3duICYmICFvYmotPm1vdXNlRG93bkZvckV2YWx1YXRlU2NyaXB0KQorICAgICAg
ICAgICAgZXhlY3V0ZVNjcmlwdChvYmosIG9iai0+ZXZhbHVhdGVTY3JpcHRPbk1vdXNlRG93bk9y
S2V5RG93bik7CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV01fQ0hBUjoKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgY2FzZSBXTV9LRVlVUDoKKyAgICAgICAgaWYgKG9iai0+ZXZlbnRMb2dn
aW5nKQorICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAia2V5VXAgJyVjJyIsIGV2ZW50
LT53UGFyYW0pOworICAgICAgICBpZiAob2JqLT50ZXN0S2V5Ym9hcmRGb2N1c0ZvclBsdWdpbnMp
IHsKKyAgICAgICAgICAgIG9iai0+ZXZlbnRMb2dnaW5nID0gZmFsc2U7CisgICAgICAgICAgICBv
YmotPnRlc3RLZXlib2FyZEZvY3VzRm9yUGx1Z2lucyA9IEZBTFNFOworICAgICAgICAgICAgZXhl
Y3V0ZVNjcmlwdChvYmosICJsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Iik7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgY2FzZSBXTV9MQlVUVE9ORE9XTjoKKyAg
ICBjYXNlIFdNX01CVVRUT05ET1dOOgorICAgIGNhc2UgV01fUkJVVFRPTkRPV046CisgICAgICAg
IGlmIChvYmotPmV2ZW50TG9nZ2luZykKKyAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwg
Im1vdXNlRG93biBhdCAoJWQsICVkKSIsIExPV09SRChldmVudC0+bFBhcmFtKSwgSElXT1JEKGV2
ZW50LT5sUGFyYW0pKTsKKyAgICAgICAgaWYgKG9iai0+ZXZhbHVhdGVTY3JpcHRPbk1vdXNlRG93
bk9yS2V5RG93biAmJiBvYmotPm1vdXNlRG93bkZvckV2YWx1YXRlU2NyaXB0KQorICAgICAgICAg
ICAgZXhlY3V0ZVNjcmlwdChvYmosIG9iai0+ZXZhbHVhdGVTY3JpcHRPbk1vdXNlRG93bk9yS2V5
RG93bik7CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV01fTEJVVFRPTlVQOgorICAgIGNh
c2UgV01fTUJVVFRPTlVQOgorICAgIGNhc2UgV01fUkJVVFRPTlVQOgorICAgICAgICBpZiAob2Jq
LT5ldmVudExvZ2dpbmcpCisgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJtb3VzZVVw
IGF0ICglZCwgJWQpIiwgTE9XT1JEKGV2ZW50LT5sUGFyYW0pLCBISVdPUkQoZXZlbnQtPmxQYXJh
bSkpOworICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIFdNX1NFVEZPQ1VTOgorICAgICAgICBp
ZiAob2JqLT5ldmVudExvZ2dpbmcpCisgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJn
ZXRGb2N1c0V2ZW50Iik7CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgV01fS0lMTEZPQ1VT
OgorICAgICAgICBpZiAob2JqLT5ldmVudExvZ2dpbmcpCisgICAgICAgICAgICBwbHVnaW5Mb2co
aW5zdGFuY2UsICJsb3NlRm9jdXNFdmVudCIpOworICAgICAgICByZXR1cm4gMTsKICAgICB9CiAg
ICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96257</attachid>
            <date>2011-06-07 10:27:49 -0700</date>
            <delta_ts>2011-06-09 11:21:33 -0700</delta_ts>
            <desc>Patch Part #2</desc>
            <filename>plugin-win.git.diff</filename>
            <type>text/plain</type>
            <size>2979</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMjBm
MGVmLi5jMTc0NTAxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDYtMDcgIE5vZWwgR29yZG9uICA8bm9lbC5n
b3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3QgcGx1Z2luIHNob3VsZCBzdXBwb3J0IGV2ZW50IGxvZ2dpbmcgb24gdGhl
IHdpbmRvd3MgcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYxNzIxCisKKyAgICAgICAgVGhlIFdlYktpdCB3aW4gcG9ydCBpbnRlcnByZXRzIGEg
MCByZXR1cm4gZnJvbSBwbHVnaW4gTlBQX0hhbmRsZUV2ZW50KCkKKyAgICAgICAgY2FsbHMgdG8g
bWVhbiB0aGUgcGx1Z2luIGhhbmRsZWQgdGhlIGV2ZW50LgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvVGVzdE5ldHNjYXBlUGx1Z0luL21haW4uY3BwOgorICAgICAgICAoaGFuZGxlRXZlbnRX
aW4pOiBSZXR1cm4gMCBmb3IgZWFjaCBldmVudCBvbiB3aW5kb3dzLgorCiAyMDExLTA2LTA2ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERp
cmsgUHJhbmtlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL21haW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBlUGx1Z0lu
L21haW4uY3BwCmluZGV4IGE4N2RjNDMuLjkxYzlhMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vbWFpbi5jcHAKQEAgLTY4NywxNSArNjg3LDE1IEBA
IHN0YXRpYyBpbnQxNl90IGhhbmRsZUV2ZW50V2luKE5QUCBpbnN0YW5jZSwgUGx1Z2luT2JqZWN0
KiBvYmosIE5QRXZlbnQqIGV2ZW50KQogICAgIGNhc2UgV01fUEFJTlQ6CiAgICAgICAgIGlmIChv
YmotPm9uUGFpbnRFdmVudCkKICAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPm9u
UGFpbnRFdmVudCk7Ci0gICAgICAgIHJldHVybiAxOworICAgICAgICBicmVhazsKICAgICBjYXNl
IFdNX0tFWURPV046CiAgICAgICAgIGlmIChvYmotPmV2ZW50TG9nZ2luZykKICAgICAgICAgICAg
IHBsdWdpbkxvZyhpbnN0YW5jZSwgImtleURvd24gJyVjJyIsIGV2ZW50LT53UGFyYW0pOwogICAg
ICAgICBpZiAob2JqLT5ldmFsdWF0ZVNjcmlwdE9uTW91c2VEb3duT3JLZXlEb3duICYmICFvYmot
Pm1vdXNlRG93bkZvckV2YWx1YXRlU2NyaXB0KQogICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChv
YmosIG9iai0+ZXZhbHVhdGVTY3JpcHRPbk1vdXNlRG93bk9yS2V5RG93bik7Ci0gICAgICAgIHJl
dHVybiAxOworICAgICAgICBicmVhazsKICAgICBjYXNlIFdNX0NIQVI6Ci0gICAgICAgIHJldHVy
biAxOworICAgICAgICBicmVhazsKICAgICBjYXNlIFdNX0tFWVVQOgogICAgICAgICBpZiAob2Jq
LT5ldmVudExvZ2dpbmcpCiAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJrZXlVcCAn
JWMnIiwgZXZlbnQtPndQYXJhbSk7CkBAIC03MDQsNyArNzA0LDcgQEAgc3RhdGljIGludDE2X3Qg
aGFuZGxlRXZlbnRXaW4oTlBQIGluc3RhbmNlLCBQbHVnaW5PYmplY3QqIG9iaiwgTlBFdmVudCog
ZXZlbnQpCiAgICAgICAgICAgICBvYmotPnRlc3RLZXlib2FyZEZvY3VzRm9yUGx1Z2lucyA9IEZB
TFNFOwogICAgICAgICAgICAgZXhlY3V0ZVNjcmlwdChvYmosICJsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Iik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDE7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgV01fTEJVVFRPTkRPV046CiAgICAgY2FzZSBXTV9NQlVUVE9ORE9X
TjoKICAgICBjYXNlIFdNX1JCVVRUT05ET1dOOgpAQCAtNzEyLDIxICs3MTIsMjEgQEAgc3RhdGlj
IGludDE2X3QgaGFuZGxlRXZlbnRXaW4oTlBQIGluc3RhbmNlLCBQbHVnaW5PYmplY3QqIG9iaiwg
TlBFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJtb3VzZURv
d24gYXQgKCVkLCAlZCkiLCBMT1dPUkQoZXZlbnQtPmxQYXJhbSksIEhJV09SRChldmVudC0+bFBh
cmFtKSk7CiAgICAgICAgIGlmIChvYmotPmV2YWx1YXRlU2NyaXB0T25Nb3VzZURvd25PcktleURv
d24gJiYgb2JqLT5tb3VzZURvd25Gb3JFdmFsdWF0ZVNjcmlwdCkKICAgICAgICAgICAgIGV4ZWN1
dGVTY3JpcHQob2JqLCBvYmotPmV2YWx1YXRlU2NyaXB0T25Nb3VzZURvd25PcktleURvd24pOwot
ICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXTV9MQlVUVE9OVVA6
CiAgICAgY2FzZSBXTV9NQlVUVE9OVVA6CiAgICAgY2FzZSBXTV9SQlVUVE9OVVA6CiAgICAgICAg
IGlmIChvYmotPmV2ZW50TG9nZ2luZykKICAgICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwg
Im1vdXNlVXAgYXQgKCVkLCAlZCkiLCBMT1dPUkQoZXZlbnQtPmxQYXJhbSksIEhJV09SRChldmVu
dC0+bFBhcmFtKSk7Ci0gICAgICAgIHJldHVybiAxOworICAgICAgICBicmVhazsKICAgICBjYXNl
IFdNX1NFVEZPQ1VTOgogICAgICAgICBpZiAob2JqLT5ldmVudExvZ2dpbmcpCiAgICAgICAgICAg
ICBwbHVnaW5Mb2coaW5zdGFuY2UsICJnZXRGb2N1c0V2ZW50Iik7Ci0gICAgICAgIHJldHVybiAx
OworICAgICAgICBicmVhazsKICAgICBjYXNlIFdNX0tJTExGT0NVUzoKICAgICAgICAgaWYgKG9i
ai0+ZXZlbnRMb2dnaW5nKQogICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAibG9zZUZv
Y3VzRXZlbnQiKTsKLSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICByZXR1cm4gMDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96429</attachid>
            <date>2011-06-08 08:58:18 -0700</date>
            <delta_ts>2011-06-08 21:34:21 -0700</delta_ts>
            <desc>Patch Part #2.1</desc>
            <filename>plugin-win.git.diff</filename>
            <type>text/plain</type>
            <size>8431</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNGE1OTk4Li4yODc0N2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDYt
MDggIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBwbHVnaW4va2V5Ym9hcmQtZXZl
bnRzLG1vdXNlLWV2ZW50cyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgdGhlIHdpbmRvd3MgcG9ydC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzIxCisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vcGx1Z2lucy9tb3VzZS1ldmVudHMt
ZXhwZWN0ZWQudHh0OiAgVXBkYXRlZC4KKwogMjAxMS0wNi0wNyAgTU9SSVRBIEhhamltZSA8bW9y
cml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgU2tpcHBlZCBlbnRyeSBhZGRp
dGlvbiBmb2xsb3dpbmcgcjg4MjI1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL3BsdWdpbnMva2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQwZDdmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL2tleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogZ2V0
Rm9jdXNFdmVudAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogbW91c2VEb3duIGF0
ICgyMCwgMjApCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBtb3VzZVVwIGF0ICgy
MCwgMjApCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBrZXlEb3duICdBJworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjoga2V5VXAgJ0EnCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMDogUExVR0lOOiBrZXlEb3duICdCJworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBM
VUdJTjoga2V5VXAgJ0InCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBrZXlEb3du
ICdDJworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjoga2V5VXAgJ0MnCisKK1RoaXMg
dGVzdCBjaGVja3MgaWYgYSBwbHVnLWluIGNhbiByZWNlaXZlIGtleWJvYXJkIGV2ZW50cyBzZW50
IGZyb20gZXZlbnRTZW5kZXIuIFRoaXMgaXMgYSB0ZXN0IGZvciBCdWcgMzQ5MzYuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9tb3VzZS1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3BsdWdpbnMvbW91c2UtZXZlbnRzLWV4
cGVjdGVkLnR4dAppbmRleCBiNzM3NWFlLi43NzIxYTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vcGx1Z2lucy9tb3VzZS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9wbHVnaW5zL21vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSw3IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBnZXRGb2N1
c0V2ZW50CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogUExVR0lOOiBtb3VzZURvd24gYXQgKDIw
LCAyMCkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBQTFVHSU46IG1vdXNlVXAgYXQgKDIwLCAy
MCkKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBQTFVHSU46IG1vdXNlRG93biBhdCAoMzAsIDMw
KQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IFBMVUdJTjogbW91c2VVcCBhdCAoNDAsIDMwKQog
CiBUZXN0IGZvciBidWcgMTE1MTc6IEZsYXNoIGNsaWNrcy9pbnRlcmFjdGl2aXR5IG5vdCB3b3Jr
aW5nIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwNjBhNmIuLjdlM2NmODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNi0wOCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRm9yd2FyZCBmb2N1cyBldmVudHMgdG8gd2luZG93bGVzcyBwbHVnaW5zIG9uIHRoZSB3aW5k
b3dzIHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTcyMQorCisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRGb2N1cyk6ICBGb3J3YXJkIGZvY3VzIGV2ZW50
cy4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQpOiAg
RG9uJ3Qgc2VuZCByYW5kb20ga2V5Ym9hcmQKKyAgICAgICAgZXZlbnRzIHRvIHRoZSBwbHVnaW4g
KG5wRXZlbnQuZXZlbnQgd2FzIGJlaW5nIHVzZWQgdW5pbml0aWFsaXplZCkuCisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KTogIEZJWE1FLgorCiAyMDExLTA2
LTA3ICBOYW9raSBUYWthbm8gIDx0YWthbm8ubmFva2lAZ21haWwuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVn
aW5WaWV3V2luLmNwcAppbmRleCA4M2M0OTY2Li5iOTM3OGVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcApAQCAtNDcyLDYgKzQ3MiwxNyBAQCB2b2lk
IFBsdWdpblZpZXc6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICAgICAgU2V0Rm9jdXMocGxh
dGZvcm1QbHVnaW5XaWRnZXQoKSk7CiAKICAgICBXaWRnZXQ6OnNldEZvY3VzKGZvY3VzZWQpOwor
CisgICAgaWYgKCFtX3BsdWdpbiB8fCBtX2lzV2luZG93ZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5QRXZlbnQgbnBFdmVudDsKKworICAgIG5wRXZlbnQuZXZlbnQgPSBmb2N1c2VkID8gV01f
U0VURk9DVVMgOiBXTV9LSUxMRk9DVVM7CisgICAgbnBFdmVudC53UGFyYW0gPSAwOworICAgIG5w
RXZlbnQubFBhcmFtID0gMDsKKworICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKIH0KIAog
dm9pZCBQbHVnaW5WaWV3OjpzaG93KCkKQEAgLTYzOSwxOSArNjUwLDI0IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiB7CisgICAgQVNTRVJUKG1fcGx1Z2luICYmICFtX2lzV2luZG93ZWQpOworCiAgICAg
TlBFdmVudCBucEV2ZW50OwogCi0gICAgbnBFdmVudC53UGFyYW0gPSBldmVudC0+a2V5Q29kZSgp
OyAgICAKKyAgICBucEV2ZW50LndQYXJhbSA9IGV2ZW50LT5rZXlDb2RlKCk7CiAKICAgICBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7CiAgICAgICAgIG5w
RXZlbnQuZXZlbnQgPSBXTV9LRVlET1dOOwogICAgICAgICBucEV2ZW50LmxQYXJhbSA9IDA7Cisg
ICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50
KSB7CisgICAgICAgIG5wRXZlbnQuZXZlbnQgPSBXTV9DSEFSOworICAgICAgICBucEV2ZW50LmxQ
YXJhbSA9IDA7CiAgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5r
ZXl1cEV2ZW50KSB7CiAgICAgICAgIG5wRXZlbnQuZXZlbnQgPSBXTV9LRVlVUDsKICAgICAgICAg
bnBFdmVudC5sUGFyYW0gPSAweDgwMDA7Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICByZXR1
cm47CiAKLSAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhKU0M6OlNp
bGVuY2VBc3NlcnRpb25zT25seSk7CiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkp
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQpAQCAtNjYyLDYgKzY3OCw4
IEBAIGV4dGVybiBib29sIGlnbm9yZU5leHRTZXRDdXJzb3I7CiAKIHZvaWQgUGx1Z2luVmlldzo6
aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIHsKKyAgICBBU1NFUlQobV9wbHVn
aW4gJiYgIW1faXNXaW5kb3dlZCk7CisKICAgICBOUEV2ZW50IG5wRXZlbnQ7CiAKICAgICBJbnRQ
b2ludCBwID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2lu
ZG93KEludFBvaW50KGV2ZW50LT5wYWdlWCgpLCBldmVudC0+cGFnZVkoKSkpOwpAQCAtNzE5LDcg
KzczNyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBl
dmVudCkKICAgICB9IGVsc2UKICAgICAgICAgcmV0dXJuOwogCi0gICAgSlNDOjpKU0xvY2s6OkRy
b3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOworICAg
IC8vIEZJWE1FOiBDb25zaWRlciBiYWNrIHBvcnRpbmcgdGhlIGh0dHA6Ly93ZWJraXQub3JnL2Iv
NTgxMDggZml4IGhlcmUuCiAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogCkBAIC03MjgsNyArNzQ2LDcgQEAgdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogICAgIC8v
IGFuZCBzaW5jZSB3ZSBkb24ndCB3YW50IHRoYXQgd2Ugc2V0IGlnbm9yZU5leHRTZXRDdXJzb3Ig
dG8gdHJ1ZSBoZXJlIHRvIHByZXZlbnQgdGhhdC4KICAgICBpZ25vcmVOZXh0U2V0Q3Vyc29yID0g
dHJ1ZTsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAg
ICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5zZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vy
c29yKCk7ICAgIAorICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNldExhc3RTZXRD
dXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTIwZjBlZi4uODJlMzgzYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDExLTA2LTA4ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHBsdWdp
biBzaG91bGQgc3VwcG9ydCBldmVudCBsb2dnaW5nIG9uIHRoZSB3aW5kb3dzIHBvcnQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcyMQorCisgICAg
ICAgIFRoZSBXZWJLaXQgd2luIHBvcnQgaW50ZXJwcmV0cyBhIDAgcmV0dXJuIGZyb20gcGx1Z2lu
IE5QUF9IYW5kbGVFdmVudCgpCisgICAgICAgIGNhbGxzIHRvIG1lYW4gdGhlIHBsdWdpbiBoYW5k
bGVkIHRoZSBldmVudC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBs
dWdJbi9tYWluLmNwcDoKKyAgICAgICAgKGhhbmRsZUV2ZW50V2luKTogUmV0dXJuIDAgZm9yIGVh
Y2ggZXZlbnQgb24gd2luZG93cy4KKwogMjAxMS0wNi0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFByYW5rZS4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9tYWluLmNwcAppbmRleCBhODdk
YzQzLi45MWM5YTJkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4vbWFpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE5ldHNjYXBl
UGx1Z0luL21haW4uY3BwCkBAIC02ODcsMTUgKzY4NywxNSBAQCBzdGF0aWMgaW50MTZfdCBoYW5k
bGVFdmVudFdpbihOUFAgaW5zdGFuY2UsIFBsdWdpbk9iamVjdCogb2JqLCBOUEV2ZW50KiBldmVu
dCkKICAgICBjYXNlIFdNX1BBSU5UOgogICAgICAgICBpZiAob2JqLT5vblBhaW50RXZlbnQpCiAg
ICAgICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5vblBhaW50RXZlbnQpOwotICAgICAg
ICByZXR1cm4gMTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXTV9LRVlET1dOOgogICAgICAg
ICBpZiAob2JqLT5ldmVudExvZ2dpbmcpCiAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2Us
ICJrZXlEb3duICclYyciLCBldmVudC0+d1BhcmFtKTsKICAgICAgICAgaWYgKG9iai0+ZXZhbHVh
dGVTY3JpcHRPbk1vdXNlRG93bk9yS2V5RG93biAmJiAhb2JqLT5tb3VzZURvd25Gb3JFdmFsdWF0
ZVNjcmlwdCkKICAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQob2JqLCBvYmotPmV2YWx1YXRlU2Ny
aXB0T25Nb3VzZURvd25PcktleURvd24pOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXTV9DSEFSOgotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBXTV9LRVlVUDoKICAgICAgICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQogICAg
ICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAia2V5VXAgJyVjJyIsIGV2ZW50LT53UGFyYW0p
OwpAQCAtNzA0LDcgKzcwNCw3IEBAIHN0YXRpYyBpbnQxNl90IGhhbmRsZUV2ZW50V2luKE5QUCBp
bnN0YW5jZSwgUGx1Z2luT2JqZWN0KiBvYmosIE5QRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAg
b2JqLT50ZXN0S2V5Ym9hcmRGb2N1c0ZvclBsdWdpbnMgPSBGQUxTRTsKICAgICAgICAgICAgIGV4
ZWN1dGVTY3JpcHQob2JqLCAibGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOyIpOwog
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAxOworICAgICAgICBicmVhazsKICAgICBjYXNlIFdN
X0xCVVRUT05ET1dOOgogICAgIGNhc2UgV01fTUJVVFRPTkRPV046CiAgICAgY2FzZSBXTV9SQlVU
VE9ORE9XTjoKQEAgLTcxMiwyMSArNzEyLDIxIEBAIHN0YXRpYyBpbnQxNl90IGhhbmRsZUV2ZW50
V2luKE5QUCBpbnN0YW5jZSwgUGx1Z2luT2JqZWN0KiBvYmosIE5QRXZlbnQqIGV2ZW50KQogICAg
ICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNlLCAibW91c2VEb3duIGF0ICglZCwgJWQpIiwgTE9X
T1JEKGV2ZW50LT5sUGFyYW0pLCBISVdPUkQoZXZlbnQtPmxQYXJhbSkpOwogICAgICAgICBpZiAo
b2JqLT5ldmFsdWF0ZVNjcmlwdE9uTW91c2VEb3duT3JLZXlEb3duICYmIG9iai0+bW91c2VEb3du
Rm9yRXZhbHVhdGVTY3JpcHQpCiAgICAgICAgICAgICBleGVjdXRlU2NyaXB0KG9iaiwgb2JqLT5l
dmFsdWF0ZVNjcmlwdE9uTW91c2VEb3duT3JLZXlEb3duKTsKLSAgICAgICAgcmV0dXJuIDE7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV01fTEJVVFRPTlVQOgogICAgIGNhc2UgV01fTUJVVFRP
TlVQOgogICAgIGNhc2UgV01fUkJVVFRPTlVQOgogICAgICAgICBpZiAob2JqLT5ldmVudExvZ2dp
bmcpCiAgICAgICAgICAgICBwbHVnaW5Mb2coaW5zdGFuY2UsICJtb3VzZVVwIGF0ICglZCwgJWQp
IiwgTE9XT1JEKGV2ZW50LT5sUGFyYW0pLCBISVdPUkQoZXZlbnQtPmxQYXJhbSkpOwotICAgICAg
ICByZXR1cm4gMTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXTV9TRVRGT0NVUzoKICAgICAg
ICAgaWYgKG9iai0+ZXZlbnRMb2dnaW5nKQogICAgICAgICAgICAgcGx1Z2luTG9nKGluc3RhbmNl
LCAiZ2V0Rm9jdXNFdmVudCIpOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBXTV9LSUxMRk9DVVM6CiAgICAgICAgIGlmIChvYmotPmV2ZW50TG9nZ2luZykKICAg
ICAgICAgICAgIHBsdWdpbkxvZyhpbnN0YW5jZSwgImxvc2VGb2N1c0V2ZW50Iik7Ci0gICAgICAg
IHJldHVybiAxOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>