<?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>24943</bug_id>
          
          <creation_ts>2009-03-30 14:24:08 -0700</creation_ts>
          <short_desc>Command-B and Command-I do not generate keydown events in contentEditable regions</short_desc>
          <delta_ts>2011-02-25 21:13:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robby Walker">robbyw</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>mark.tsui.01</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115883</commentid>
    <comment_count>0</comment_count>
    <who name="Robby Walker">robbyw</who>
    <bug_when>2009-03-30 14:24:08 -0700</bug_when>
    <thetext>Mac only.  See the attached file.  Pressing Command-B or Command-I while in a rich text area does not generate a keydown, keypress, or keyup event.  Command-U gives keydown and keypress, but not keyup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115884</commentid>
    <comment_count>1</comment_count>
      <attachid>29085</attachid>
    <who name="Robby Walker">robbyw</who>
    <bug_when>2009-03-30 14:24:40 -0700</bug_when>
    <thetext>Created attachment 29085
Demonstration page showing missing events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115906</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-30 15:09:06 -0700</bug_when>
    <thetext>I&apos;ve been told a workaround can be to set your region to read-write-plaintext-only to catch these events.  But then you&apos;d have to do the execCommand(&quot;bold&quot;) yourself, or do your own bold tag wrapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115908</commentid>
    <comment_count>3</comment_count>
    <who name="Julie Parent">jparent</who>
    <bug_when>2009-03-30 15:13:19 -0700</bug_when>
    <thetext>We do actually want to do the execCommand(&apos;bold&apos;) ourselves, but we need other properties of contentEditable, like enter behavior, rich text paste, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170627</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Tsui">mark.tsui.01</who>
    <bug_when>2009-12-10 20:13:34 -0800</bug_when>
    <thetext>What is the status of this bug? Key events for Command-B/I are necessary for rich text editors that would like to implement their own formatting behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198480</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-10 21:20:37 -0800</bug_when>
    <thetext>I see the problem.  Investing a fix (which I think is to move some code out of WebKit and into WebCore).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198491</commentid>
    <comment_count>6</comment_count>
      <attachid>50472</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-10 22:42:59 -0800</bug_when>
    <thetext>Created attachment 50472
test with optional preventDefault</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198492</commentid>
    <comment_count>7</comment_count>
      <attachid>50473</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-10 22:48:46 -0800</bug_when>
    <thetext>Created attachment 50473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198498</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-10 22:57:40 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=50473) [details]
&gt; Patch

Leaving out cmd+u/ctrl+u on mac/win seems like an oversight, so I added it.

I also moved when the handling happens in mac, which fixes the bug where a keypress event isn&apos;t fired.  This also allows preventDefault in the keypress event from blocking the bold/italic/underline.

This is a Safari mac specific fix.  As far as I can tell, Chromium Mac doesn&apos;t fire keypress events for any cmd key combinations.  That&apos;s a separate bug.  Safari win also doesn&apos;t fire keypress for ctrl+b or ctrl+u, but that also seems like a separate fix.

Having said all that, I think this change is a hack.  It would be better to get rid of _handleStyleKeyEquivalent and add WEBCORE_COMMANDs for bold and italic and have Safari handle this directly (kind of like how it handles cmd+a and other keyboard events).  I tried to make this change, but I can&apos;t because the code is in Safari.  If we did this, we should get rid of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey since it won&apos;t be needed.

All this was originally added in http://trac.webkit.org/changeset/7697 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198692</commentid>
    <comment_count>9</comment_count>
      <attachid>50473</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-11 11:24:07 -0800</bug_when>
    <thetext>Comment on attachment 50473
Patch

Thanks so much for tackling this.

&gt; +        No test because eventSender.keyDown sends key events directly to
&gt; +        webcore so we can&apos;t test key handling in WebKit/mac.

That is not true. EventSendingController sends a keyDown like this:

    [[[[mainFrame webView] window] firstResponder] keyDown:event];

Did you try making a test? What happened?

Maybe the real issue is that DumpRenderTree doesn&apos;t call performKeyEquivalent. We could easily fix DumpRenderTree so it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198839</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-11 16:44:04 -0800</bug_when>
    <thetext>I don&apos;t think it&apos;s correct to expect keypress for Cmd+B. Keydown should work, but not keypress, because these come with a character code.

Does IE dispatch keypress for Ctrl+I?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198867</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-11 17:46:10 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I don&apos;t think it&apos;s correct to expect keypress for Cmd+B. Keydown should work,
&gt; but not keypress, because these come with a character code.
&gt; 
&gt; Does IE dispatch keypress for Ctrl+I?

You&apos;re right, there should be no keypress event (IE doens&apos;t dispatch a keypress for ctrl+anything).  I think this means that this is the wrong place for WebKit mac to be handling cmd+b and cmd+i (there&apos;s no way to allow keydown and not allow keypress at this point).

As I mentioned before, the right fix is to probably just remove this code and add WEBCORE_COMMAND(bold) and WEBCORE_COMMAND(italic).  I think Safari can then handle the cmd+b and cmd+i key presses directly (probably wherever the code is for handling cmd+a).

(In reply to comment #9)
&gt; Did you try making a test? What happened?

Yes, I made a test and none of the formatting got applied when using
  eventSender.keyDown(&quot;b&quot;, [&quot;metaKey&quot;]);

cmd+a didn&apos;t seem to work either.

&gt; Maybe the real issue is that DumpRenderTree doesn&apos;t call performKeyEquivalent.
&gt; We could easily fix DumpRenderTree so it does.

Sorry, my Objective C fu is weak.  I&apos;m not exactly sure how to call this or what the expected code path is (performKeyEquivalent appears to be called directly from Safari).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198904</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Tsui">mark.tsui.01</who>
    <bug_when>2010-03-11 19:11:38 -0800</bug_when>
    <thetext>Thanks Tony for looking at this.

I agree that the existing behaviour for cmd+u/a feels correct and that cmd+b/i should be handled with the same code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198907</commentid>
    <comment_count>13</comment_count>
      <attachid>50573</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-11 19:15:49 -0800</bug_when>
    <thetext>Created attachment 50573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198909</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-11 19:17:07 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=50573) [details]
&gt; Patch

I think this is the right direction, but the patch as is will just cause cmd+b and cmd+i to do nothing.  I think the rest of the fix would be in Safari code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198918</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-11 20:01:58 -0800</bug_when>
    <thetext>We may be breaking other Mac applications that use WebKit if changes are required for Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198920</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-11 20:28:21 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; We may be breaking other Mac applications that use WebKit if changes are
&gt; required for Safari.

That&apos;s true, you would lose cmd+b and cmd+i formatting in rich text areas.

It seems like it would be a good thing to consolidate editor key handling in one place like it is in WebKit/win.  To do that, we either need to move cmd+b and cmd+i handling into Safari or we need to move cmd+a handling out (it looks like when I press cmd+a, Safari calls WebHTMLView::selectAll directly).

Either of these options would break other Mac apps that use WebKit (do they all really have to implement cmd+a?), but it seems like the best way forward.  Perhaps moving cmd+a handling into WebKit would be a safer change because it would just be adding an extra fallback after the application passed the key event to WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200028</commentid>
    <comment_count>17</comment_count>
      <attachid>50765</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-15 23:33:35 -0700</bug_when>
    <thetext>Created attachment 50765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200029</commentid>
    <comment_count>18</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-03-15 23:38:26 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=50765) [details]
&gt; Patch

Ok, I think I found a place in the code that will allow keydown to fire and if it&apos;s not handled, then we can apply the formatting.  I also found out why eventSender wasn&apos;t working and added a layout test.

This patch fires keypress for cmd+anything, but that doesn&apos;t seem to be a regression.  In ToT webkit, I see keypress fired for cmd+anything except b and i (try the one of the test case attachments on this bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225176</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-13 00:14:38 -0700</bug_when>
    <thetext>@enrica or @ojan: This editing bug has been up for review for two months.  The patch is tiny and has a test.  Would either of you be willing to review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225189</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-13 00:38:15 -0700</bug_when>
    <thetext>I&apos;ll review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225424</commentid>
    <comment_count>21</comment_count>
      <attachid>50765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-13 12:04:28 -0700</bug_when>
    <thetext>Comment on attachment 50765
Patch

Seems fine to change behavior.

But I don&apos;t think the specifics of the code change here is right. All we need to do is unify the style keys with other key equivalents such as ones in the menus. I have a patch that shows how to do this that I will attach now.

The Command-U change should not be bundled in with the part of this change that is mentioned in the bug title. That change needs to be judged on its own merits, and could change the behavior of existing Mac OS X applications.

WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm:430
 +      [preferences setRespectStandardStyleKeyEquivalents:YES];
Why is this change needed? Isn&apos;t this preference on by default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225425</commentid>
    <comment_count>22</comment_count>
      <attachid>56006</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-13 12:04:55 -0700</bug_when>
    <thetext>Created attachment 56006
fragment of a patch demonstrating my suggested fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225426</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-13 12:08:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/7121644&gt; is the same issue, but for &lt;input type=text&gt;. This patch should fix both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226652</commentid>
    <comment_count>24</comment_count>
      <attachid>56216</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-17 00:42:03 -0700</bug_when>
    <thetext>Created attachment 56216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226656</commentid>
    <comment_count>25</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-17 00:45:57 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 50765 [details])
&gt; But I don&apos;t think the specifics of the code change here is right. All we need to do is unify the style keys with other key equivalents such as ones in the menus. I have a patch that shows how to do this that I will attach now.

Huh, I thought I had tried this before, but clearly I&apos;m mistaken.  This seems to work fine.

&gt; The Command-U change should not be bundled in with the part of this change that is mentioned in the bug title. That change needs to be judged on its own merits, and could change the behavior of existing Mac OS X applications.

Removed.

&gt; WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm:430
&gt;  +      [preferences setRespectStandardStyleKeyEquivalents:YES];
&gt; Why is this change needed? Isn&apos;t this preference on by default?

It&apos;s NO by default:
http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebPreferences.mm#L331

The newest patch doesn&apos;t have a test because DRT never calls performKeyEquivalent.  This method appears to be called directly by Safari.  I tried putting a printf in the function and none of the tests failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226791</commentid>
    <comment_count>26</comment_count>
      <attachid>56216</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-17 09:48:55 -0700</bug_when>
    <thetext>Comment on attachment 56216
Patch

Good to see my code change in a patch for review.

&gt; +        No tests because performKeyEquivalent does not seem to be called by DRT.

That&apos;s a reason we can&apos;t make an automated test, but a manual test should be possible. See check-ins like &lt;http://trac.webkit.org/changeset/58829&gt; for examples of how to add a manual test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226793</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-17 09:50:52 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; The newest patch doesn&apos;t have a test because DRT never calls performKeyEquivalent.  This method appears to be called directly by Safari.

The method is not called directly by Safari. It&apos;s called by -[NSApplication sendEvent:] if you send that method an appropriate event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227176</commentid>
    <comment_count>28</comment_count>
      <attachid>56333</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-18 01:12:41 -0700</bug_when>
    <thetext>Created attachment 56333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227344</commentid>
    <comment_count>29</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-18 09:35:00 -0700</bug_when>
    <thetext>+        ret = [self _handleStyleKeyEquivalent:event] || [super performKeyEquivalent:event];

Would we want to give the application a chance to handle key equivalents before trying hardcoded ones in WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227351</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-18 09:39:34 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; +        ret = [self _handleStyleKeyEquivalent:event] || [super performKeyEquivalent:event];
&gt; 
&gt; Would we want to give the application a chance to handle key equivalents before trying hardcoded ones in WebKit?

Maybe. But that would be another behavior change, aside from the &quot;give the web page first crack at it&quot;, so I think that should be considered separately on its own merits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227582</commentid>
    <comment_count>31</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-05-18 17:37:04 -0700</bug_when>
    <thetext>Committed r59722: &lt;http://trac.webkit.org/changeset/59722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358372</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-25 21:13:24 -0800</bug_when>
    <thetext>The bug title only mentioned keydown, while description mentioned both keydown and keyup.

Unfortunately, keyup still doesn&apos;t work. I&apos;ve filed bug 55291 for that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29085</attachid>
            <date>2009-03-30 14:24:40 -0700</date>
            <delta_ts>2010-03-10 22:42:59 -0800</delta_ts>
            <desc>Demonstration page showing missing events</desc>
            <filename>keyevent.html</filename>
            <type>text/html</type>
            <size>798</size>
            <attacher name="Robby Walker">robbyw</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8cD5FYWNoIGtleSBwcmVzcyBzaG91bGQgZ2VuZXJhdGUgYSBsb2cgZW50
cnkuICBDb21tYW5kLUIgYW5kIENvbW1hbmQtSSBkbyBub3QuICBDb21tYW5kLVUgZG9lcy48L3A+
CjxkaXYgaWQ9InRlc3QiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrIj48L2Rpdj4KPGRpdiBpZD0ibG9nIiBzdHlsZT0ibWFyZ2luLXRv
cDogMjBweDsgYm9yZGVyOiAxcHggc29saWQgI2NjYyI+CkxvZzo8YnI+CjwvZGl2Pgo8c2NyaXB0
Pgp2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CnZhciBsb2cgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7CnZhciBpID0gMDsKCnRlc3QuY29udGVudEVk
aXRhYmxlID0gdHJ1ZTsKdGVzdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24o
ZSkgewogIGkrKzsKICBsb2cuaW5uZXJIVE1MICs9IGkgKyAnIC0gZG93bjogJyArIGUudG9TdHJp
bmcoKSArICc8YnI+JzsgIAp9KTsKdGVzdC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGZ1bmN0
aW9uKGUpIHsKICBpKys7CiAgbG9nLmlubmVySFRNTCArPSBpICsgJyAtIHVwOiAnICsgZS50b1N0
cmluZygpICsgJzxicj4nOyAgCn0pOwp0ZXN0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywg
ZnVuY3Rpb24oZSkgewogIGkrKzsKICBsb2cuaW5uZXJIVE1MICs9IGkgKyAnIC0gcHJlc3M6ICcg
KyBlLnRvU3RyaW5nKCkgKyAnPGJyPic7ICAKfSk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>50472</attachid>
            <date>2010-03-10 22:42:59 -0800</date>
            <delta_ts>2010-03-10 22:42:59 -0800</delta_ts>
            <desc>test with optional preventDefault</desc>
            <filename>keypress.html</filename>
            <type>text/html</type>
            <size>1219</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8cD5FYWNoIGtleSBwcmVzcyBzaG91bGQgZ2VuZXJhdGUgYSBsb2cgZW50
cnkuICBDb21tYW5kLUIgYW5kIENvbW1hbmQtSSBkbyBub3QuICBDb21tYW5kLVUgZG9lcy48L3A+
CjxkaXYgaWQ9InRlc3QiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGJvcmRl
cjogMXB4IHNvbGlkIGJsYWNrIj48L2Rpdj4KPGRpdj4KICA8aW5wdXQgaWQ9ImNoZWNrYm94IiB0
eXBlPSJjaGVja2JveCIgb25jbGljaz0id2luZG93LnRvZ2dsZUtleXByZXNzKCkiLz4gU3dhbGxv
dyBrZXlwcmVzcwogIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJjbGVhciIgb25jbGljaz0i
d2luZG93LmNsZWFyKCkiLz4KPC9kaXY+CjxkaXYgaWQ9ImxvZyIgc3R5bGU9Im1hcmdpbi10b3A6
IDIwcHg7IGJvcmRlcjogMXB4IHNvbGlkICNjY2MiPgpMb2c6PGJyPgo8L2Rpdj4KPHNjcmlwdD4K
dmFyIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwp2YXIgbG9nID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwp2YXIgaSA9IDA7CnZhciBlYXRLZXlwcmVzcyA9
IGZhbHNlOwoKdGVzdC5jb250ZW50RWRpdGFibGUgPSB0cnVlOwp0ZXN0LmFkZEV2ZW50TGlzdGVu
ZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgaSsrOwogIGxvZy5pbm5lckhUTUwgKz0gaSAr
ICcgLSBkb3duOiAnICsgZS50b1N0cmluZygpICsgJzxicj4nOyAgCn0pOwp0ZXN0LmFkZEV2ZW50
TGlzdGVuZXIoJ2tleXVwJywgZnVuY3Rpb24oZSkgewogIGkrKzsKICBsb2cuaW5uZXJIVE1MICs9
IGkgKyAnIC0gdXA6ICcgKyBlLnRvU3RyaW5nKCkgKyAnPGJyPic7ICAKfSk7CnRlc3QuYWRkRXZl
bnRMaXN0ZW5lcigna2V5cHJlc3MnLCBmdW5jdGlvbihlKSB7CiAgaSsrOwogIGxvZy5pbm5lckhU
TUwgKz0gaSArICcgLSBwcmVzczogJyArIGUudG9TdHJpbmcoKSArICcgLSBlYXQ6ICcgKyBlYXRL
ZXlwcmVzcyArICc8YnI+JzsKICBpZiAoZWF0S2V5cHJlc3MpIHsKICAgIGUucHJldmVudERlZmF1
bHQoKQogIH0KfSk7CgpmdW5jdGlvbiBjbGVhcigpIHsKICBsb2cuaW5uZXJIVE1MID0gIiI7Cn0K
CmZ1bmN0aW9uIHRvZ2dsZUtleXByZXNzKCkgewogIGVhdEtleXByZXNzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNoZWNrYm94IikuY2hlY2tlZDsKfQp0b2dnbGVLZXlwcmVzcygpOwo8L3Nj
cmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50473</attachid>
            <date>2010-03-10 22:48:46 -0800</date>
            <delta_ts>2010-03-11 19:15:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-24943-20100311154844.patch</filename>
            <type>text/plain</type>
            <size>3262</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNDc2Nzg2Yi4uYWQ0Y2E0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMy0xMCAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDk0MworICAgICAgICBLZXlwcmVzcyBldmVudCBub3Qgc2VudCB3aGVuIHByZXNz
aW5nIGNtZCtiIG9yIGNtZCtpLgorICAgICAgICBBbHNvIGFkZCBjbWQrdSBhcyBhIGJ1aWx0IGlu
IGVkaXRvciBjb21tYW5kIGZvciBXZWJLaXQgbWFjLgorCisgICAgICAgIE5vIHRlc3QgYmVjYXVz
ZSBldmVudFNlbmRlci5rZXlEb3duIHNlbmRzIGtleSBldmVudHMgZGlyZWN0bHkgdG8KKyAgICAg
ICAgd2ViY29yZSBzbyB3ZSBjYW4ndCB0ZXN0IGtleSBoYW5kbGluZyBpbiBXZWJLaXQvbWFjLgor
CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZp
ZXcgX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcg
cGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisKIDIwMTAtMDMtMTAgIEpvaG4gU3VsbGl2YW4gIDxz
dWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggODk5MGQyZi4uYjg4YjliMiAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNDI2OCw2ICs0MjY4LDEwIEBAIHN0YXRpYyBCT09MIGlz
SW5QYXNzd29yZEZpZWxkKEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIFtzZWxmIGV4ZWN1dGVD
b3JlQ29tbWFuZEJ5TmFtZToiVG9nZ2xlSXRhbGljIl07CiAgICAgICAgIHJldHVybiBZRVM7CiAg
ICAgfQorICAgIGlmIChbc3RyaW5nIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJ1Il0gPT0gTlNP
cmRlcmVkU2FtZSkgeworICAgICAgICBbc2VsZiBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWU6IlRv
Z2dsZVVuZGVybGluZSJdOworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KICAgICAKICAgICBy
ZXR1cm4gTk87CiB9CkBAIC00Mjc5LDkgKzQyODMsNiBAQCBzdGF0aWMgQk9PTCBpc0luUGFzc3dv
cmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZl
bnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBj
b2RlLgogICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAKLSAgICBpZiAoW3NlbGYg
X2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDpldmVudF0pCi0gICAgICAgIHJldHVybiBZRVM7Ci0g
ICAgCiAgICAgQk9PTCBldmVudFdhc1NlbnRUb1dlYkNvcmUgPSAoX3ByaXZhdGUtPmtleURvd25F
dmVudCA9PSBldmVudCk7CiAgICAgQk9PTCByZXQgPSBOTzsKIApAQCAtNDI5OSw2ICs0MzAwLDkg
QEAgc3RhdGljIEJPT0wgaXNJblBhc3N3b3JkRmllbGQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAg
ICAgICAgIHJldCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+a2V5RXZlbnQoZXZlbnQpOwogCiAg
ICAgaWYgKCFyZXQpCisgICAgICAgIHJldCA9IFtzZWxmIF9oYW5kbGVTdHlsZUtleUVxdWl2YWxl
bnQ6ZXZlbnRdOworCisgICAgaWYgKCFyZXQpCiAgICAgICAgIHJldCA9IFtzdXBlciBwZXJmb3Jt
S2V5RXF1aXZhbGVudDpldmVudF07CiAKICAgICBbc2VsZiByZWxlYXNlXTsKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYzkyN2Qy
YS4uYjJmM2I3YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wMy0xMCAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDk0
MworICAgICAgICBBbHNvIGFkZCBjbWQrdSBhcyBhIGJ1aWx0IGluIGVkaXRvciBjb21tYW5kIGZv
ciBXZWJLaXQgd2luLgorCisgICAgICAgIE5vIHRlc3QgYmVjYXVzZSBldmVudFNlbmRlci5rZXlE
b3duIHNlbmRzIGtleSBldmVudHMgZGlyZWN0bHkgdG8KKyAgICAgICAgd2ViY29yZSBzbyB3ZSBj
YW4ndCB0ZXN0IGtleSBoYW5kbGluZyBpbiBXZWJLaXQvd2luLgorCisgICAgICAgICogV2ViVmll
dy5jcHA6CisKIDIwMTAtMDMtMTAgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDA5MWJiZTQuLjUz
OWNkNWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcApAQCAtMTcyNSw2ICsxNzI1LDcgQEAgc3RhdGljIGNvbnN0IEtleURvd25F
bnRyeSBrZXlEb3duRW50cmllc1tdID0gewogICAgIAogICAgIHsgJ0InLCAgICAgICBDdHJsS2V5
LCAgICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAogICAgIHsgJ0knLCAgICAgICBDdHJsS2V5LCAgICAgICAgICAgICJUb2dnbGVJdGFsaWMi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1UnLCAgICAgICBDdHJs
S2V5LCAgICAgICAgICAgICJUb2dnbGVVbmRlcmxpbmUiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAogCiAgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgeyBWS19PRU1fUEVS
SU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50573</attachid>
            <date>2010-03-11 19:15:49 -0800</date>
            <delta_ts>2010-03-15 23:33:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-24943-20100312121547.patch</filename>
            <type>text/plain</type>
            <size>2765</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNDc2Nzg2Yi4uMGY5YTcxOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMy0xMSAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbW1hbmQtQiBhbmQgQ29tbWFuZC1JIGRvIG5vdCBn
ZW5lcmF0ZSBrZXlkb3duIGV2ZW50cyBpbiBjb250ZW50RWRpdGFibGUgcmVnaW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTQzCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBwZXJm
b3JtS2V5RXF1aXZhbGVudDpdKToKKwogMjAxMC0wMy0xMCAgSm9obiBTdWxsaXZhbiAgPHN1bGxp
dmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hlci4KZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA4OTkwZDJmLi5iNzVkNWU1IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCkBAIC0yNDEzLDYgKzI0MTMsNyBAQCBXRUJDT1JFX0NPTU1BTkQoYWxp
Z25DZW50ZXIpCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCiBXRUJDT1JFX0NPTU1B
TkQoYWxpZ25MZWZ0KQogV0VCQ09SRV9DT01NQU5EKGFsaWduUmlnaHQpCitXRUJDT1JFX0NPTU1B
TkQoYm9sZCkKIFdFQkNPUkVfQ09NTUFORChjb3B5KQogV0VCQ09SRV9DT01NQU5EKGN1dCkKIFdF
QkNPUkVfQ09NTUFORChkZWxldGUpCkBAIC0yNDM1LDYgKzI0MzYsNyBAQCBXRUJDT1JFX0NPTU1B
TkQoaW5zZXJ0TmV3bGluZUlnbm9yaW5nRmllbGRFZGl0b3IpCiBXRUJDT1JFX0NPTU1BTkQoaW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKQogV0VCQ09SRV9DT01NQU5EKGluc2VydFRhYikKIFdFQkNP
UkVfQ09NTUFORChpbnNlcnRUYWJJZ25vcmluZ0ZpZWxkRWRpdG9yKQorV0VCQ09SRV9DT01NQU5E
KGl0YWxpYykKIFdFQkNPUkVfQ09NTUFORChtYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25MZWZ0VG9S
aWdodCkKIFdFQkNPUkVfQ09NTUFORChtYWtlVGV4dFdyaXRpbmdEaXJlY3Rpb25OYXR1cmFsKQog
V0VCQ09SRV9DT01NQU5EKG1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvblJpZ2h0VG9MZWZ0KQpAQCAt
NDI0NywzMSArNDI0OSw2IEBAIHN0YXRpYyBCT09MIGlzSW5QYXNzd29yZEZpZWxkKEZyYW1lKiBj
b3JlRnJhbWUpCiAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFwcGx5UGFyYWdyYXBoU3R5
bGVUb1NlbGVjdGlvbihjb3JlKHN0eWxlKSwgdW5kb0FjdGlvbik7CiB9CiAKLS0gKEJPT0wpX2hh
bmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50Ci17Ci0gICAgQVNTRVJUKFtz
ZWxmIF93ZWJWaWV3XSk7Ci0gICAgaWYgKCFbW1tzZWxmIF93ZWJWaWV3XSBwcmVmZXJlbmNlc10g
cmVzcGVjdFN0YW5kYXJkU3R5bGVLZXlFcXVpdmFsZW50c10pCi0gICAgICAgIHJldHVybiBOTzsK
LSAgICAKLSAgICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkKLSAgICAgICAgcmV0dXJuIE5POwotICAg
IAotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1v
ZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQotICAgICAgICByZXR1cm4gTk87
Ci0gICAgCi0gICAgTlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKLSAgICBp
ZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUp
IHsKLSAgICAgICAgW3NlbGYgZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lOiJUb2dnbGVCb2xkIl07
Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotICAgIGlmIChbc3RyaW5nIGNhc2VJbnNlbnNp
dGl2ZUNvbXBhcmU6QCJpIl0gPT0gTlNPcmRlcmVkU2FtZSkgewotICAgICAgICBbc2VsZiBleGVj
dXRlQ29yZUNvbW1hbmRCeU5hbWU6IlRvZ2dsZUl0YWxpYyJdOwotICAgICAgICByZXR1cm4gWUVT
OwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gTk87Ci19Ci0KIC0gKEJPT0wpcGVyZm9ybUtleUVx
dWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewogICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhh
dCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwg
YW5kCkBAIC00Mjc5LDkgKzQyNTYsNiBAQCBzdGF0aWMgQk9PTCBpc0luUGFzc3dvcmRGaWVsZChG
cmFtZSogY29yZUZyYW1lKQogICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQg
ZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgogICAg
IFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAKLSAgICBpZiAoW3NlbGYgX2hhbmRsZVN0
eWxlS2V5RXF1aXZhbGVudDpldmVudF0pCi0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgCiAgICAg
Qk9PTCBldmVudFdhc1NlbnRUb1dlYkNvcmUgPSAoX3ByaXZhdGUtPmtleURvd25FdmVudCA9PSBl
dmVudCk7CiAgICAgQk9PTCByZXQgPSBOTzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50765</attachid>
            <date>2010-03-15 23:33:35 -0700</date>
            <delta_ts>2010-05-17 00:41:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-24943-20100316153333.patch</filename>
            <type>text/plain</type>
            <size>8697</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMzEwMTMwLi5hNzUwNDE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMt
MTUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQ5NDMKKyAgICAgICAgQ29tbWFuZC1CIGFuZCBDb21tYW5kLUkgZG8gbm90
IGdlbmVyYXRlIGtleWRvd24gZXZlbnRzIGluIGNvbnRlbnRFZGl0YWJsZSByZWdpb25zLgorCisg
ICAgICAgICogZWRpdGluZy9lZGl0aW5nLmpzOgorICAgICAgICAoZXNjYXBlSFRNTCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvc3R5bGUta2V5cHJlc3MtZXZlbnRzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQv
c3R5bGUta2V5cHJlc3MtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAzLTE1ICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZWRpdGluZy5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvZWRpdGluZy5qcwppbmRleCA1M2IzMmY2Li45ZmJhZWM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2VkaXRpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9lZGl0
aW5nLmpzCkBAIC04OTIsMyArODkyLDcgQEAgZnVuY3Rpb24gZXhlY3V0ZUNvbW1hbmQoY29tbWFu
ZCxhcmcxLGFyZzIpIHsKICAgICB9CiB9CiAKK2Z1bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkKK3sK
KyAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZs
dDsiKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2lu
cHV0L3N0eWxlLWtleXByZXNzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9zdHlsZS1rZXlwcmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YjgyMzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9zdHlsZS1rZXlw
cmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVmVyaWZ5IHRoYXQga2V5
ZG93biBldmVudHMgZmlyZSBmb3IgY21kK2IsIGNtZCtpLCBjbWQrdSBhbmQgYXJlIGNhbmNlbGFi
bGUuIFRoZSBmaXJzdCB0aHJlZSByZXN1bHRzIHNob3VsZCBiZSBzdHlsZWQsIGFuZCB0aGUgbGFz
dCB0aHJlZSBzaG91bGQgbm90IGJlIHN0eWxlZC4gVGhpcyB0ZXN0IG11c3QgYmUgcnVuIHVzaW5n
IERSVC4KK1NhbXBsZVRleHQKK2I6IDxiPlNhbXBsZVRleHQ8L2I+CitpOiA8aT5TYW1wbGVUZXh0
PC9pPgordTogPHU+U2FtcGxlVGV4dDwvdT4KK2I6IFNhbXBsZVRleHQKK2k6IFNhbXBsZVRleHQK
K3U6IFNhbXBsZVRleHQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvaW5wdXQvc3R5bGUta2V5cHJlc3MtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9zdHlsZS1rZXlwcmVzcy1ldmVudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODNiNzdhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvc3R5bGUta2V5cHJlc3MtZXZl
bnRzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGRpdj5WZXJpZnkgdGhhdCBrZXlkb3duIGV2ZW50
cyBmaXJlIGZvciBjbWQrYiwgY21kK2ksIGNtZCt1IGFuZCBhcmUgY2FuY2VsYWJsZS4KK1RoZSBm
aXJzdCB0aHJlZSByZXN1bHRzIHNob3VsZCBiZSBzdHlsZWQsIGFuZCB0aGUgbGFzdCB0aHJlZSBz
aG91bGQgbm90IGJlIHN0eWxlZC4KK1RoaXMgdGVzdCBtdXN0IGJlIHJ1biB1c2luZyBEUlQuPC9k
aXY+Cis8ZGl2IGlkPSJ0ZXN0IiBjb250ZW50ZWRpdGFibGU9InRydWUiPgorPC9kaXY+Cis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2VkaXRpbmcvZWRpdGlu
Zy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpOwordmFyIGtleURvd25QcmV2ZW50RGVmYXVsdCA9IGZhbHNlOworCitmdW5j
dGlvbiBsb2cobXNnKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVy
SFRNTCArPSBtc2cgKyAiPGJyPiI7Cit9CisKK2Z1bmN0aW9uIHJ1bktleURvd25UZXN0KGtleSkg
eworICAgIG5vZGUuaW5uZXJIVE1MID0gIlNhbXBsZVRleHQiOworICAgIHZhciBzZWxlY3Rpb24g
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgc2VsZWN0aW9uLnNldFBvc2l0aW9uKG5vZGUs
IDApOworICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25Gb3J3YXJkQnlXb3JkQ29tbWFuZCgpOworCisg
ICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXksIFsibWV0YUtleSJdKTsKKworICAgIGxvZyhrZXkg
KyAiOiAiICsgZXNjYXBlSFRNTChub2RlLmlubmVySFRNTCkpOworfQorCitmdW5jdGlvbiBlZGl0
aW5nVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgcnVuS2V5RG93blRlc3QoImIiKTsKKyAgICBydW5LZXlEb3duVGVzdCgiaSIpOwor
ICAgIHJ1bktleURvd25UZXN0KCJ1Iik7CisKKyAgICAvLyBUaGVzZSBzaG91bGQgbm90IG1vZGlm
eSB0aGUgRE9NLgorICAgIGtleURvd25QcmV2ZW50RGVmYXVsdCA9IHRydWU7CisgICAgcnVuS2V5
RG93blRlc3QoImIiKTsKKyAgICBydW5LZXlEb3duVGVzdCgiaSIpOworICAgIHJ1bktleURvd25U
ZXN0KCJ1Iik7Cit9CisKK2Z1bmN0aW9uIGtleWRvd24oZSkgeworICAgIGlmIChrZXlEb3duUHJl
dmVudERlZmF1bHQpCisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKK30KKwordmFyIHRlc3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwordGVzdC5hZGRFdmVudExpc3RlbmVy
KCdrZXlkb3duJywga2V5ZG93bik7CitydW5EdW1wQXNUZXh0RWRpdGluZ1Rlc3QoZmFsc2UpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IGU2ZDMwNDYuLjcwOWIyZTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMDMtMTUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NDMKKyAgICAgICAgQ29tbWFuZC1CIGFuZCBDb21tYW5kLUkg
ZG8gbm90IGdlbmVyYXRlIGtleWRvd24gZXZlbnRzIGluIGNvbnRlbnRFZGl0YWJsZSByZWdpb25z
LgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZp
ZXcga2V5RG93bjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgcGVyZm9ybUtleUVxdWl2YWxl
bnQ6XSk6CisKIDIwMTAtMDMtMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KaW5kZXggODk5MGQyZi4uMTE2Y2ZlMCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpA
QCAtMzk4Niw2ICszOTg2LDM0IEBAIHN0YXRpYyBCT09MIGlzSW5QYXNzd29yZEZpZWxkKEZyYW1l
KiBjb3JlRnJhbWUpCiAgICAgW3NlbGYgX2VuZFByaW50TW9kZV07CiB9CiAKKy0gKEJPT0wpX2hh
bmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgQVNTRVJUKFtz
ZWxmIF93ZWJWaWV3XSk7CisgICAgaWYgKCFbW1tzZWxmIF93ZWJWaWV3XSBwcmVmZXJlbmNlc10g
cmVzcGVjdFN0YW5kYXJkU3R5bGVLZXlFcXVpdmFsZW50c10pCisgICAgICAgIHJldHVybiBOTzsK
KworICAgIGlmICghW3NlbGYgX2NhbkVkaXRdKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBp
ZiAoKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZs
YWdzTWFzaykgIT0gTlNDb21tYW5kS2V5TWFzaykKKyAgICAgICAgcmV0dXJuIE5POworCisgICAg
TlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKKyAgICBpZiAoW3N0cmluZyBj
YXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJdID09IE5TT3JkZXJlZFNhbWUpIHsKKyAgICAgICAg
W3NlbGYgZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lOiJUb2dnbGVCb2xkIl07CisgICAgICAgIHJl
dHVybiBZRVM7CisgICAgfQorICAgIGlmIChbc3RyaW5nIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJpIl0gPT0gTlNPcmRlcmVkU2FtZSkgeworICAgICAgICBbc2VsZiBleGVjdXRlQ29yZUNvbW1h
bmRCeU5hbWU6IlRvZ2dsZUl0YWxpYyJdOworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KKyAg
ICBpZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAidSJdID09IE5TT3JkZXJlZFNh
bWUpIHsKKyAgICAgICAgW3NlbGYgZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lOiJUb2dnbGVVbmRl
cmxpbmUiXTsKKyAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJuIE5POworfQor
CiAtICh2b2lkKWtleURvd246KE5TRXZlbnQgKilldmVudAogewogICAgIC8vIFRoZXJlJ3MgYSBj
aGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0ZWQgZXZl
bnQgbG9vcCwgYW5kCkBAIC00MDA3LDcgKzQwMzUsNyBAQCBzdGF0aWMgQk9PTCBpc0luUGFzc3dv
cmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogICAgICAgICAvLyBXZWJDb3JlIHByb2Nlc3NlZCBh
IGtleSBldmVudCwgYmFpbCBvbiBhbnkgcHJlZXhpc3RpbmcgY29tcGxldGU6IFVJCiAgICAgICAg
IGlmIChjb21wbGV0aW9uUG9wdXBXYXNPcGVuKQogICAgICAgICAgICAgW19wcml2YXRlLT5jb21w
bGV0aW9uQ29udHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6WUVTIG1vdmVMZWZ0Ok5PXTsKLSAg
ICB9IGVsc2UgaWYgKCFfcHJpdmF0ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgfHwgIVtfcHJpdmF0
ZS0+Y29tcGxldGlvbkNvbnRyb2xsZXIgZmlsdGVyS2V5RG93bjpldmVudF0pIHsKKyAgICB9IGVs
c2UgaWYgKCFbc2VsZiBfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OmV2ZW50XSAmJiAoIV9wcml2
YXRlLT5jb21wbGV0aW9uQ29udHJvbGxlciB8fCAhW19wcml2YXRlLT5jb21wbGV0aW9uQ29udHJv
bGxlciBmaWx0ZXJLZXlEb3duOmV2ZW50XSkpIHsKICAgICAgICAgLy8gTm90IGNvbnN1bWVkIGJ5
IGNvbXBsZXRlOiBwb3B1cCB3aW5kb3cKICAgICAgICAgW19wcml2YXRlLT5jb21wbGV0aW9uQ29u
dHJvbGxlciBlbmRSZXZlcnRpbmdDaGFuZ2U6WUVTIG1vdmVMZWZ0Ok5PXTsKICAgICAgICAgY2Fs
bFN1cGVyID0gWUVTOwpAQCAtNDI0NywzMSArNDI3NSw2IEBAIHN0YXRpYyBCT09MIGlzSW5QYXNz
d29yZEZpZWxkKEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCkt
PmFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbihjb3JlKHN0eWxlKSwgdW5kb0FjdGlvbik7
CiB9CiAKLS0gKEJPT0wpX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50
Ci17Ci0gICAgQVNTRVJUKFtzZWxmIF93ZWJWaWV3XSk7Ci0gICAgaWYgKCFbW1tzZWxmIF93ZWJW
aWV3XSBwcmVmZXJlbmNlc10gcmVzcGVjdFN0YW5kYXJkU3R5bGVLZXlFcXVpdmFsZW50c10pCi0g
ICAgICAgIHJldHVybiBOTzsKLSAgICAKLSAgICBpZiAoIVtzZWxmIF9jYW5FZGl0XSkKLSAgICAg
ICAgcmV0dXJuIE5POwotICAgIAotICAgIGlmICgoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNE
ZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNrKSAhPSBOU0NvbW1hbmRLZXlNYXNrKQot
ICAgICAgICByZXR1cm4gTk87Ci0gICAgCi0gICAgTlNTdHJpbmcgKnN0cmluZyA9IFtldmVudCBj
aGFyYWN0ZXJzXTsKLSAgICBpZiAoW3N0cmluZyBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiYiJd
ID09IE5TT3JkZXJlZFNhbWUpIHsKLSAgICAgICAgW3NlbGYgZXhlY3V0ZUNvcmVDb21tYW5kQnlO
YW1lOiJUb2dnbGVCb2xkIl07Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotICAgIGlmIChb
c3RyaW5nIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJpIl0gPT0gTlNPcmRlcmVkU2FtZSkgewot
ICAgICAgICBbc2VsZiBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWU6IlRvZ2dsZUl0YWxpYyJdOwot
ICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gTk87Ci19Ci0KIC0g
KEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewogICAgIC8vIFRo
ZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBu
ZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCkBAIC00Mjc5LDkgKzQyODIsNiBAQCBzdGF0aWMgQk9PTCBp
c0luUGFzc3dvcmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogICAgIC8vIHRoZSBjdXJyZW50IGV2
ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9y
IEFwcEtpdCBjb2RlLgogICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAKLSAgICBp
ZiAoW3NlbGYgX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDpldmVudF0pCi0gICAgICAgIHJldHVy
biBZRVM7Ci0gICAgCiAgICAgQk9PTCBldmVudFdhc1NlbnRUb1dlYkNvcmUgPSAoX3ByaXZhdGUt
PmtleURvd25FdmVudCA9PSBldmVudCk7CiAgICAgQk9PTCByZXQgPSBOTzsKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDIy
NTRhODguLjFjZDFmZDIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMy0xNSAgVG9ueSBD
aGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDk0MworICAgICAgICBFbmFibGUgcmVzcGVjdFN0YW5kYXJkU3R5bGVLZXlFcXVpdmFsZW50
cyBpbiBEUlQgc28gd2UgY2FuIHRlc3QKKyAgICAgICAgY21kK2IsIGNtZCtpLCBhbmQgY21kK3Uu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAxMC0wMy0xNSAgQ2hy
aXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
bGF5b3V0IHRlc3QgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCmluZGV4IGEyMDcyMWMuLjkzNGUyYzQgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTQyNyw2ICs0Mjcs
NyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBb
cHJlZmVyZW5jZXMgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVu
Y2VzIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRGcmFtZVNldEZsYXR0ZW5pbmdFbmFibGVkOk5PXTsKKyAgICBbcHJlZmVyZW5jZXMgc2V0UmVz
cGVjdFN0YW5kYXJkU3R5bGVLZXlFcXVpdmFsZW50czpZRVNdOwogICAgIGlmIChwZXJzaXN0ZW50
VXNlclN0eWxlU2hlZXRMb2NhdGlvbikgewogICAgICAgICBbcHJlZmVyZW5jZXMgc2V0VXNlclN0
eWxlU2hlZXRMb2NhdGlvbjpbTlNVUkwgVVJMV2l0aFN0cmluZzooTlNTdHJpbmcgKikocGVyc2lz
dGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24uZ2V0KCkpXV07CiAgICAgICAgIFtwcmVmZXJlbmNl
cyBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQ6WUVTXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56006</attachid>
            <date>2010-05-13 12:04:55 -0700</date>
            <delta_ts>2010-05-17 00:41:54 -0700</delta_ts>
            <desc>fragment of a patch demonstrating my suggested fix</desc>
            <filename>DispatchKeyEventsForStyleKeysPatch.txt</filename>
            <type>text/plain</type>
            <size>889</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlzaW9uIDU5Mzc0KQorKysgV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MzQ0LDkg
KzQzNDQsNiBAQCAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopCiAgICAg
Ly8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9ibGVt
IGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCiAgICAgW1tldmVudCByZXRhaW5dIGF1dG9y
ZWxlYXNlXTsKIAotICAgIGlmIChbc2VsZiBfaGFuZGxlU3R5bGVLZXlFcXVpdmFsZW50OmV2ZW50
XSkKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICAKICAgICBCT09MIGV2ZW50V2FzU2VudFRvV2Vi
Q29yZSA9IChfcHJpdmF0ZS0+a2V5RG93bkV2ZW50ID09IGV2ZW50KTsKICAgICBCT09MIHJldCA9
IE5POwogCkBAIC00MzY0LDcgKzQzNjEsNyBAQCAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50
OihOU0V2ZW50ICopCiAgICAgICAgICAgICByZXQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmtl
eUV2ZW50KGV2ZW50KTsKIAogICAgIGlmICghcmV0KQotICAgICAgICByZXQgPSBbc3VwZXIgcGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOworICAgICAgICByZXQgPSBbc2VsZiBfaGFuZGxlU3R5
bGVLZXlFcXVpdmFsZW50OmV2ZW50XSB8fCBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZl
bnRdOwogCiAgICAgW3NlbGYgcmVsZWFzZV07CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56216</attachid>
            <date>2010-05-17 00:42:03 -0700</date>
            <delta_ts>2010-05-18 01:12:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-24943-20100517164201.patch</filename>
            <type>text/plain</type>
            <size>1741</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggZjQzYWE1YTdlNjNmMDU5YjczZDcwMDJmYWQxZjMzY2Y0OGQ0NGJlNy4uOGMwODU0NzIw
YTBlN2QwZmM4MTU5ODZhNjJhYWM4MTVhNjlkNGVkNiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0wNS0xNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDk0MworICAgICAgICBDb21tYW5kLUIgYW5kIENvbW1hbmQtSSBk
byBub3QgZ2VuZXJhdGUga2V5ZG93biBldmVudHMgaW4gY29udGVudEVkaXRhYmxlIHJlZ2lvbnMu
CisKKyAgICAgICAgTm8gdGVzdHMgYmVjYXVzZSBwZXJmb3JtS2V5RXF1aXZhbGVudCBkb2VzIG5v
dCBzZWVtIHRvIGJlIGNhbGxlZCBieSBEUlQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKTog
TW92ZSBzdHlsZSBrZXkgaGFuZGxpbmcgdW50aWwgYWZ0ZXIgd2ViY29yZSBnZXRzIGEgY2hhbmNl
IHRvIGhhbmRsZSB0aGUgZXZlbnQKKwogMjAxMC0wNS0xNCAgU3RlcGhhbmllIExld2lzICA8c2xl
d2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBNYXJrIFJvd2UuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggODNkMmU3YjA3MDBkM2EzMWQzMGI0MjY4NGMw
YTc3M2FmMzJkNzcxYi4uNWY5MTM0ZjdhZTlhZmYwMGRjZGY5MzJhY2UwYTg0OTk1ZWUwMzEyMSAx
MDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNDM0NCw5ICs0MzQ0LDYgQEAgc3RhdGlj
IEJPT0wgaXNJblBhc3N3b3JkRmllbGQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICAvLyB0aGUgY3Vy
cmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHByb2JsZW0gaW5zaWRlIFdl
YktpdCBvciBBcHBLaXQgY29kZS4KICAgICBbW2V2ZW50IHJldGFpbl0gYXV0b3JlbGVhc2VdOwog
Ci0gICAgaWYgKFtzZWxmIF9oYW5kbGVTdHlsZUtleUVxdWl2YWxlbnQ6ZXZlbnRdKQotICAgICAg
ICByZXR1cm4gWUVTOwotICAgIAogICAgIEJPT0wgZXZlbnRXYXNTZW50VG9XZWJDb3JlID0gKF9w
cml2YXRlLT5rZXlEb3duRXZlbnQgPT0gZXZlbnQpOwogICAgIEJPT0wgcmV0ID0gTk87CiAKQEAg
LTQzNjQsNyArNDM2MSw3IEBAIHN0YXRpYyBCT09MIGlzSW5QYXNzd29yZEZpZWxkKEZyYW1lKiBj
b3JlRnJhbWUpCiAgICAgICAgICAgICByZXQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmtleUV2
ZW50KGV2ZW50KTsKIAogICAgIGlmICghcmV0KQotICAgICAgICByZXQgPSBbc3VwZXIgcGVyZm9y
bUtleUVxdWl2YWxlbnQ6ZXZlbnRdOworICAgICAgICByZXQgPSBbc2VsZiBfaGFuZGxlU3R5bGVL
ZXlFcXVpdmFsZW50OmV2ZW50XSB8fCBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRd
OwogCiAgICAgW3NlbGYgcmVsZWFzZV07CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56333</attachid>
            <date>2010-05-18 01:12:41 -0700</date>
            <delta_ts>2010-05-18 09:28:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-24943-20100518171239.patch</filename>
            <type>text/plain</type>
            <size>3713</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDA2N2FhOWNlMGZmZWM5NTczZTVhOTg0OThlMDJmNGEzY2RlYWQ0My4uNmIwMGNlM2IwY2QzM2E5
MDY2ODQ0OGQ1ODgwMTNkMmMwN2Y5MTQ0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNS0xOCAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDk0MworICAgICAgICBDb21tYW5kLUIgYW5kIENvbW1hbmQtSSBkbyBub3QgZ2VuZXJh
dGUga2V5ZG93biBldmVudHMgaW4gY29udGVudEVkaXRhYmxlIHJlZ2lvbnMuCisKKyAgICAgICAg
KiBtYW51YWwtdGVzdHMvc3R5bGUta2V5cHJlc3MtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDEw
LTA1LTE4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zdHls
ZS1rZXlwcmVzcy1ldmVudHMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3N0eWxlLWtleXBy
ZXNzLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZDI3NzAzMzcyYTg0OWVlNTM5ZGIxYTA4YTZm
ZjE5NDgyZjJkY2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zdHls
ZS1rZXlwcmVzcy1ldmVudHMuaHRtbApAQCAtMCwwICsxLDM4IEBACis8Ym9keSBvbmxvYWQ9InNl
dHVwKCkiPgorPHA+Y21kK2IgYW5kIGNtZCtpIHNob3VsZCBnZW5lcmF0ZSBhIGtleWRvd24gZXZl
bnQgaW4gY29udGVudEVkaXRhYmxlIGZpZWxkcy4gIEFsc28sIGNhbGxpbmcKK3ByZXZlbnREZWZh
dWx0KCkgaW4gdGhlIGtleWRvd24gZXZlbnQgc2hvdWxkIGNhbmNlbCB0aGUgdGV4dCBzdHlsaW5n
LjwvcD4KKworPGRpdiBjb250ZW50RWRpdGFibGUgaWQ9InRlc3QiIHN0eWxlPSJib3JkZXI6IDFw
eCBzb2xpZDsgcGFkZGluZzogNHB4OyI+CitUaGlzIGlzIHNvbWUgc2FtcGxlIHRleHQuPGJyPjxi
cj48YnI+PGJyPgorPC9kaXY+Cis8ZGl2PgorPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZGlz
YWJsZSI+PGxhYmVsIGZvcj0iZGlzYWJsZSI+cHJldmVudERlZmF1bHQoKSBpbiBrZXlkb3duPC9s
YWJlbD4KKzwvZGl2PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0aW9u
IHNldHVwKCkKK3sKKyAgICB2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CisgICAgdGVzdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwga2V5ZG93biwgZmFsc2Up
OworCisgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICBzZWxl
Y3Rpb24uc2V0UG9zaXRpb24odGVzdCwgMCk7CisgICAgc2VsZWN0aW9uLm1vZGlmeSgiZXh0ZW5k
IiwgImZvcndhcmQiLCAic2VudGVuY2UiKTsKKyAgICB0ZXN0LmZvY3VzKCk7Cit9CisKK2Z1bmN0
aW9uIGxvZyhtc2cpCit7CisgICAgdmFyIGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
b2ciKTsKKyAgICBsb2cuaW5uZXJIVE1MICs9ICI8YnI+IiArIG1zZzsKK30KKworZnVuY3Rpb24g
a2V5ZG93bihldmVudCkKK3sKKyAgICBsb2coImtleWRvd24iKTsKKyAgICBpZiAoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpc2FibGUiKS5jaGVja2VkKQorICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDRjODBlYWY3YjdlZmJjMTBk
YmFlNzI5NWRhMmY1NThkZjdlNTdkNjAuLjg2OGNmYzY4ZjlkYzRjNzFlYTk3N2I3NjUxNzI5N2Mw
ZTBiYWE1Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMTggIFRvbnkgQ2hhbmcgIDx0
b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NDMK
KyAgICAgICAgQ29tbWFuZC1CIGFuZCBDb21tYW5kLUkgZG8gbm90IGdlbmVyYXRlIGtleWRvd24g
ZXZlbnRzIGluIGNvbnRlbnRFZGl0YWJsZSByZWdpb25zLgorCisgICAgICAgIE1hbnVhbCB0ZXN0
IGJlY2F1c2UgcGVyZm9ybUtleUVxdWl2YWxlbnQgaXMgbm90IGNhbGxlZCBieSBEUlQuCisKKyAg
ICAgICAgVGVzdDogbWFudWFsLXRlc3RzL3N0eWxlLWtleXByZXNzLWV2ZW50cy5odG1sCisKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBw
ZXJmb3JtS2V5RXF1aXZhbGVudDpdKTogTW92ZSBzdHlsZSBrZXkgaGFuZGxpbmcgdW50aWwgYWZ0
ZXIgd2ViY29yZSBnZXRzIGEgY2hhbmNlIHRvIGhhbmRsZSB0aGUgZXZlbnQKKwogMjAxMC0wNS0x
NyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjU5NjUyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CmluZGV4IDgzZDJlN2IwNzAwZDNhMzFkMzBiNDI2ODRjMGE3NzNhZjMyZDc3MWIuLjVmOTEzNGY3
YWU5YWZmMDBkY2RmOTMyYWNlMGE4NDk5NWVlMDMxMjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KQEAgLTQzNDQsOSArNDM0NCw2IEBAIHN0YXRpYyBCT09MIGlzSW5QYXNzd29yZEZpZWxk
KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhh
dCBmcm9tIGNhdXNpbmcgYSBwcm9ibGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCiAg
ICAgW1tldmVudCByZXRhaW5dIGF1dG9yZWxlYXNlXTsKIAotICAgIGlmIChbc2VsZiBfaGFuZGxl
U3R5bGVLZXlFcXVpdmFsZW50OmV2ZW50XSkKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICAKICAg
ICBCT09MIGV2ZW50V2FzU2VudFRvV2ViQ29yZSA9IChfcHJpdmF0ZS0+a2V5RG93bkV2ZW50ID09
IGV2ZW50KTsKICAgICBCT09MIHJldCA9IE5POwogCkBAIC00MzY0LDcgKzQzNjEsNyBAQCBzdGF0
aWMgQk9PTCBpc0luUGFzc3dvcmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogICAgICAgICAgICAg
cmV0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5rZXlFdmVudChldmVudCk7CiAKICAgICBpZiAo
IXJldCkKLSAgICAgICAgcmV0ID0gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsK
KyAgICAgICAgcmV0ID0gW3NlbGYgX2hhbmRsZVN0eWxlS2V5RXF1aXZhbGVudDpldmVudF0gfHwg
W3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKIAogICAgIFtzZWxmIHJlbGVhc2Vd
OwogICAgIAo=
</data>
<flag name="review"
          id="40734"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>