<?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>39625</bug_id>
          
          <creation_ts>2010-05-24 16:03:03 -0700</creation_ts>
          <short_desc>[Qt] Sending a QInputMethodEvent::Selection event forces the Editor to go into Composition mode</short_desc>
          <delta_ts>2010-11-01 06:36:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47273</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter>rajiv.ramanasankaran</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>ademar</cc>
    
    <cc>ankur.baranwal</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>rajiv.ramanasankaran</cc>
    
    <cc>robert</cc>
    
    <cc>samuel.nevala</cc>
    
    <cc>suresh.voruganti</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229968</commentid>
    <comment_count>0</comment_count>
    <who name="">rajiv.ramanasankaran</who>
    <bug_when>2010-05-24 16:03:03 -0700</bug_when>
    <thetext>Sending a QInputMethodEvent::Selection to the Editor causes it to create a
composition even though it was just a selection event.

In QWebPagePrivate::inputMethodEvent(), the code handling the case for a
QInputMethodEvent::Selection checks to see if the preedit text is empty. If it
was empty (which is going to be the case when the text is being selected
normally by the user inside a text control), it copies the text being rendered
and assigns that as the preedit text. This causes the Editor to create a
Composition when it may not be required. This has some side effects and
screws up the internal book-keeping of the base and extent positions inside
Webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231129</commentid>
    <comment_count>1</comment_count>
    <who name="Samuel Nevala">samuel.nevala</who>
    <bug_when>2010-05-26 23:37:14 -0700</bug_when>
    <thetext>QWebPagePrivate::inputMethodEvent() is changed as part of https://bugs.webkit.org/show_bug.cgi?id=35702.

Rajiv Ramanasankaran: What exactly goes wrong? Would it be possible to come up with layout test or auto test to catch the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231354</commentid>
    <comment_count>2</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-27 10:29:35 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; QWebPagePrivate::inputMethodEvent() is changed as part of https://bugs.webkit.org/show_bug.cgi?id=35702.
&gt; 
&gt; Rajiv Ramanasankaran: What exactly goes wrong? Would it be possible to come up with layout test or auto test to catch the bug.

I am the culprit here. Looks like I need to use editor-&gt;hasComposition() in the right place. Will have a go this evening and post results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231403</commentid>
    <comment_count>3</comment_count>
    <who name="">rajiv.ramanasankaran</who>
    <bug_when>2010-05-27 11:33:12 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; QWebPagePrivate::inputMethodEvent() is changed as part of https://bugs.webkit.org/show_bug.cgi?id=35702.
&gt; Rajiv Ramanasankaran: What exactly goes wrong? Would it be possible to come up with layout test or auto test to catch the bug.

Samuel,

The current auto test with negative extent passes only because the cursor position and the anchor positions are calculated as deltas (which gives correct results just by chance). I noticed that the internal bookkeeping (base and extent) inside Webkit was inconsistent though.

A simple test can be to start with the Editor in non-composition mode and note if the Editor goes into composition mode immediately after sending it a QInputMethodEvent::Selection  event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231420</commentid>
    <comment_count>4</comment_count>
      <attachid>57267</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-27 12:48:54 -0700</bug_when>
    <thetext>Created attachment 57267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231421</commentid>
    <comment_count>5</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-27 12:49:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=57267) [details]
&gt; Patch

Hi Guys,

Can you take a look before a reviewer please? There&apos;s a couple of things (noted in the Changelog) that you may or may not have opinions on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231466</commentid>
    <comment_count>6</comment_count>
      <attachid>57275</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-27 14:22:39 -0700</bug_when>
    <thetext>Created attachment 57275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231751</commentid>
    <comment_count>7</comment_count>
    <who name="">rajiv.ramanasankaran</who>
    <bug_when>2010-05-28 09:59:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=57275) [details]
&gt; Patch

Couple of points:

In QwebPage.cpp:
1) If the preedit string was not empty and this wasn&apos;t a selection event, we are changing the present 
composition to go from 0 to preedit.length. It seems wrong and unneccessary to touch the composition in this case.
2) If either the preedit string is empty or the editor doesn&apos;t have an ongoing composition, it doesn&apos;t
 seem necessary to change the start and end positions in this case either. These should only be changed
 if we had received a selection event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231903</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-28 13:22:04 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Created an attachment (id=57275) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Couple of points:
&gt; 
&gt; In QwebPage.cpp:
&gt; 1) If the preedit string was not empty and this wasn&apos;t a selection event, we are changing the present 
&gt; composition to go from 0 to preedit.length. It seems wrong and unneccessary to touch the composition in this case.

Removing it doesn&apos;t appear to impact any layout tests, and the unit test I removed from tst_qwebpage was based on the assumption that an event with a preedit would not affect composition. But if we remove it we will only call setComposition() on selection events. You sure that&apos;s correct? Shouldn&apos;t a populated preedit put us into composition mode and update the current composition?

&gt; 2) If either the preedit string is empty or the editor doesn&apos;t have an ongoing composition, it doesn&apos;t
&gt;  seem necessary to change the start and end positions in this case either. These should only be changed
&gt;  if we had received a selection event.

Of course, thanks for that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231908</commentid>
    <comment_count>9</comment_count>
    <who name="">rajiv.ramanasankaran</who>
    <bug_when>2010-05-28 13:33:45 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Removing it doesn&apos;t appear to impact any layout tests, and the unit test I removed from tst_qwebpage was based on the assumption that an event with a preedit would not affect composition. But if we remove it we will only call setComposition() on selection events. You sure that&apos;s correct? Shouldn&apos;t a populated preedit put us into composition mode and update the current composition?

I am no InputMethod expert :-). So you may be right that the composition needs to be updated. But should it 
range from 0 to the length of the preedit text? Perhaps someone on IRC or mailing list can help...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232087</commentid>
    <comment_count>10</comment_count>
      <attachid>57408</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-29 01:28:00 -0700</bug_when>
    <thetext>Created attachment 57408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246303</commentid>
    <comment_count>11</comment_count>
      <attachid>57408</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-03 07:40:05 -0700</bug_when>
    <thetext>Comment on attachment 57408
Patch

Your current patch is an improvement on the current situation so r=me. If Simon has more comments we can fix that in a follow up.

A bit of comments in the code would have been nice though

WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:1479
 +      QCOMPARE(value, QString(&quot;Qit&quot;));
Is this a right change? Seems like an error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246732</commentid>
    <comment_count>12</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-07-05 11:41:16 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 57408 [details])
&gt; Your current patch is an improvement on the current situation so r=me. If Simon has more comments we can fix that in a follow up.
&gt; 
&gt; A bit of comments in the code would have been nice though
&gt; 
&gt; WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:1479
&gt;  +      QCOMPARE(value, QString(&quot;Qit&quot;));
&gt; Is this a right change? Seems like an error

Good question! My note in the changelog is about this:

&quot;Remove the test in tst_qwebpage that performs a pre-edit composition and checks that surrounding text is unaffected. If we&apos;re in composition mode and change the composition, even without committing it, we will return the surrounding the text of the latest composition. So the expectations of this test seems wrong.&quot;

That&apos;s my two cents - so hopefully Simon can say if it&apos;s right or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249983</commentid>
    <comment_count>13</comment_count>
      <attachid>57408</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-12 13:06:32 -0700</bug_when>
    <thetext>Comment on attachment 57408
Patch

I agree that the editor should not go into composition mode if just a selection is set, but I don&apos;t think ImSurroundingText should exclude the selection. That doesn&apos;t sound correct to me and in fact it&apos;s not what QTextEdit or QLineEdit do in response to that input method query.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250045</commentid>
    <comment_count>14</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-07-12 14:14:35 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 57408 [details])
&gt; I agree that the editor should not go into composition mode if just a selection is set, but I don&apos;t think ImSurroundingText should exclude the selection. That doesn&apos;t sound correct to me and in fact it&apos;s not what QTextEdit or QLineEdit do in response to that input method query.

OK, need some guidance on what is considered surrounding text in the following sequence then:

    //Set selection with negative length
    inputAttributes &lt;&lt; QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 6, -5, QVariant());
    QInputMethodEvent eventSelection3(&quot;&quot;,inputAttributes);
    page-&gt;event(&amp;eventSelection3);

    //ImCursorPosition
    variant = page-&gt;inputMethodQuery(Qt::ImCursorPosition);
    cursorPosition =  variant.toInt();
    QCOMPARE(cursorPosition, 6);

    //ImCurrentSelection
    variant = page-&gt;inputMethodQuery(Qt::ImCurrentSelection);
    selectionValue = variant.value&lt;QString&gt;();
    QCOMPARE(selectionValue, QString(&quot;tWebK&quot;));

    //ImSurroundingText
    variant = page-&gt;inputMethodQuery(Qt::ImSurroundingText);
    QString value = variant.value&lt;QString&gt;();
    QCOMPARE(value, QString(&quot;Qit&quot;));

My understanding was that we set the selected text into composition mode with the first call. This makes the selected text the input area, so the subsequent call to ImSurroundingText should return the text that surrounds the text in composition mode, i.e. &apos;Qit&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250077</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-12 14:55:56 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 57408 [details] [details])
&gt; &gt; I agree that the editor should not go into composition mode if just a selection is set, but I don&apos;t think ImSurroundingText should exclude the selection. That doesn&apos;t sound correct to me and in fact it&apos;s not what QTextEdit or QLineEdit do in response to that input method query.
&gt; 
&gt; OK, need some guidance on what is considered surrounding text in the following sequence then:
&gt; 
&gt;     //Set selection with negative length
&gt;     inputAttributes &lt;&lt; QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 6, -5, QVariant());
&gt;     QInputMethodEvent eventSelection3(&quot;&quot;,inputAttributes);
&gt;     page-&gt;event(&amp;eventSelection3);
&gt; 
&gt;     //ImCursorPosition
&gt;     variant = page-&gt;inputMethodQuery(Qt::ImCursorPosition);
&gt;     cursorPosition =  variant.toInt();
&gt;     QCOMPARE(cursorPosition, 6);
&gt; 
&gt;     //ImCurrentSelection
&gt;     variant = page-&gt;inputMethodQuery(Qt::ImCurrentSelection);
&gt;     selectionValue = variant.value&lt;QString&gt;();
&gt;     QCOMPARE(selectionValue, QString(&quot;tWebK&quot;));
&gt; 
&gt;     //ImSurroundingText
&gt;     variant = page-&gt;inputMethodQuery(Qt::ImSurroundingText);
&gt;     QString value = variant.value&lt;QString&gt;();
&gt;     QCOMPARE(value, QString(&quot;Qit&quot;));
&gt; 
&gt; My understanding was that we set the selected text into composition mode with the first call. This makes the selected text the input area, so the subsequent call to ImSurroundingText should return the text that surrounds the text in composition mode, i.e. &apos;Qit&apos;.

The way it works in QTextEdit/QLineEdit - which is also how the input methods on Symbian and Maemo are expecting it - is that the selection is literally the visible text selection and it is distinct from the surrounding text and the pre-edit string.

In other words:

    1) The surrounding text is the surrounding paragraph or block of text. It does not include the pre-edit string.
    2) The selection attribute in the input method events allows creating selections, as if the user created them using the mouse/keyboard. Therefore it is included in the ImSurroundingText, as it does not modify the text itself. ImCurrentSelection returns only the selected text.
    3) The pre-edit string is neither visible in the selection nor in the surrounding text.

So when receiving an input method event we should proceed like this (roughly, see QTextControl::inputMethodEvent for more details):

1) Determine if we are receiving text (pre-edit string, commit string or replacement length)
2) If we are receiving text, then the current selected text should be removed (if editable)
3) The replacementStart+length are is replaced with the commit string (even if empty)
4) New text selections from the attributes are applied.
5) Pre-edit text and formats are applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293598</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-13 12:25:00 -0700</bug_when>
    <thetext>Attachment 57408 was posted by a committer and has review+, assigning to Robert Hogan for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295160</commentid>
    <comment_count>17</comment_count>
      <attachid>70964</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-10-16 13:52:06 -0700</bug_when>
    <thetext>Created attachment 70964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295221</commentid>
    <comment_count>18</comment_count>
      <attachid>70964</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-17 08:46:36 -0700</bug_when>
    <thetext>Comment on attachment 70964
Patch

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

&gt; WebKit/qt/Api/qwebpage.cpp:1059
&gt; +#if QT_VERSION &gt;= 0x040600

Not necessary as we don&apos;t support Qt versions older than 4.6 on WebKit trunk.

&gt; WebKit/qt/ChangeLog:8
&gt; +        Improve QWebPage handling of input method events.

Please elaborate.

&gt; WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:-1522
&gt; -    //Cancel current composition first
&gt; -    inputAttributes &lt;&lt; QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 0, 0, QVariant());
&gt; -    QInputMethodEvent eventSelection2(&quot;&quot;,inputAttributes);
&gt; -    page-&gt;event(&amp;eventSelection2);

Why are you removing this? I&apos;m not saying it&apos;s wrong, it&apos;s just not stated anywhere why it&apos;s being removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295231</commentid>
    <comment_count>19</comment_count>
      <attachid>70976</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-10-17 10:16:03 -0700</bug_when>
    <thetext>Created attachment 70976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296924</commentid>
    <comment_count>20</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-10-20 12:18:30 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=70976) [details]
&gt; Patch

Guys, anyone want to review?

(Thanks Andreas for comments, addressed in updated patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297350</commentid>
    <comment_count>21</comment_count>
      <attachid>70976</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-10-21 03:46:31 -0700</bug_when>
    <thetext>Comment on attachment 70976
Patch

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

&gt; WebKit/qt/Api/qwebpage.cpp:-1051
&gt; -            selection = a;

I think you can also remove the function-local selection variable altogether with your change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297540</commentid>
    <comment_count>22</comment_count>
      <attachid>71466</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-10-21 11:53:47 -0700</bug_when>
    <thetext>Created attachment 71466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297554</commentid>
    <comment_count>23</comment_count>
      <attachid>71466</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 12:17:48 -0700</bug_when>
    <thetext>Comment on attachment 71466
Patch

Rejecting patch 71466 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--ignore-builders&apos;, &apos;--quiet&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 71466]&quot; exit_code: 1
Last 500 characters of output:
?id=71466&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=39625&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Updating working directory
Processing patch 71466 from bug 39625.
NOBODY (OOPS!) found in /Projects/CommitQueue/WebKit/qt/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /Projects/CommitQueue/WebKit/qt/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/4722011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297565</commentid>
    <comment_count>24</comment_count>
      <attachid>71472</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-10-21 12:29:21 -0700</bug_when>
    <thetext>Created attachment 71472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297580</commentid>
    <comment_count>25</comment_count>
      <attachid>71472</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 12:53:32 -0700</bug_when>
    <thetext>Comment on attachment 71472
Patch

Clearing flags on attachment: 71472

Committed r70259: &lt;http://trac.webkit.org/changeset/70259&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297582</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-21 12:53:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297969</commentid>
    <comment_count>27</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2010-10-22 07:37:20 -0700</bug_when>
    <thetext>Can you pls integrate the fix for Qtwebkit 2.1 branch? This error is important for services. The fix for this error should fix the Bug 47273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298109</commentid>
    <comment_count>28</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-10-22 12:26:06 -0700</bug_when>
    <thetext>Revision r70259 cherry-picked into qtwebkit-2.1 with commit 1d1745e &lt;http://gitorious.org/webkit/qtwebkit/commit/1d1745e&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302639</commentid>
    <comment_count>29</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2010-11-01 06:36:15 -0700</bug_when>
    <thetext>*** Bug 47273 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57267</attachid>
            <date>2010-05-27 12:48:54 -0700</date>
            <delta_ts>2010-05-27 14:22:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20100527204853.patch</filename>
            <type>text/plain</type>
            <size>6196</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggNmU2MGIzNGZkMjdlZTdmZjk3MDk1YjExZjZmYTJmYzIyOTU1ZTRk
Ny4uMDE1Zjk0ZWJiMjc4MzZiMDQxNDg0MTNhNDQwZjEyNGY1YjA5Y2JmMSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTExODcsMTcgKzExODcsMjQgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmlucHV0TWV0
aG9kRXZlbnQoUUlucHV0TWV0aG9kRXZlbnQgKmV2KQogICAgICAgICAvLyAzLiBwb3B1bGF0ZWQg
cHJlZWRpdCB3aXRoIGEgc2VsZWN0aW9uIGF0dHJpYnV0ZSwgYW5kIHN0YXJ0L2VuZCBvZiAwIG9y
IG5vbi0wIHVwZGF0ZXMgc2VsZWN0aW9uIG9mIHN1cHBsaWVkIHByZWVkaXQgdGV4dAogICAgICAg
ICAvLyA0LiBvdGhlcndpc2UgZXZlbnQgaXMgdXBkYXRpbmcgc3VwcGxpZWQgcHJlLWVkaXQgdGV4
dAogICAgICAgICBRU3RyaW5nIHByZWVkaXQgPSBldi0+cHJlZWRpdFN0cmluZygpOworICAgICAg
ICBpZiAoIXByZWVkaXQuaXNFbXB0eSgpIHx8IGVkaXRvci0+aGFzQ29tcG9zaXRpb24oKSkgewog
I2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKLSAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgewot
ICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250cm9sKSA/IFFTdHJpbmco
cmVuZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAo
cHJlZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCA+
IDApCi0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAgICAgICAgICBlZGl0b3It
PnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBzZWxlY3Rpb24uc3RhcnQg
KyBzZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0
IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgeworICAgICAgICAgICAgICAgIFFTdHJpbmcg
dGV4dCA9IChyZW5kZXJUZXh0Q29udHJvbCkgPyBRU3RyaW5nKHJlbmRlclRleHRDb250cm9sLT50
ZXh0KCkpIDogUVN0cmluZygpOworICAgICAgICAgICAgICAgIGlmIChwcmVlZGl0LmlzRW1wdHko
KSAmJiBzZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgcHJlZWRpdCA9IHRleHQ7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21w
b3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCA6IHNlbGVjdGlvbi5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNlbGVjdGlvbi5sZW5ndGggPCAwKSA/IHNlbGVjdGlvbi5zdGFydCA6
IHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNl
CiAjZW5kaWYKLSAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24ocHJlZWRpdCwgdW5k
ZXJsaW5lcywgcHJlZWRpdC5sZW5ndGgoKSwgMCk7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5z
ZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCAwLCBwcmVlZGl0Lmxlbmd0aCgpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0Q29udHJvbCkgewor
ICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rpb25TdGFydChxTWlu
KHNlbGVjdGlvbi5zdGFydCwgKHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpKSk7
CisgICAgICAgICAgICAgICAgcmVuZGVyVGV4dENvbnRyb2wtPnNldFNlbGVjdGlvbkVuZChxTWF4
KHNlbGVjdGlvbi5zdGFydCwgKHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpKSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBldi0+YWNjZXB0KCk7CkBA
IC0xMzc2LDkgKzEzODMsMTUgQEAgUVZhcmlhbnQgUVdlYlBhZ2U6OmlucHV0TWV0aG9kUXVlcnko
UXQ6OklucHV0TWV0aG9kUXVlcnkgcHJvcGVydHkpIGNvbnN0CiAgICAgICAgIGNhc2UgUXQ6Oklt
U3Vycm91bmRpbmdUZXh0OiB7CiAgICAgICAgICAgICBpZiAocmVuZGVyVGV4dENvbnRyb2wpIHsK
ICAgICAgICAgICAgICAgICBRU3RyaW5nIHRleHQgPSByZW5kZXJUZXh0Q29udHJvbC0+dGV4dCgp
OwotICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBlZGl0b3ItPmNvbXBvc2l0
aW9uUmFuZ2UoKTsKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5vZmZzZXRJbkNvbnRhaW5l
ck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSkpOworICAgICAg
ICAgICAgICAgIGlmIChlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0LnJlbW92ZShyYW5nZS0+c3RhcnRQb3NpdGlvbigpLm9mZnNldEluQ29udGFpbmVyTm9kZSgp
LCBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgpKSk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gcmVuZGVyVGV4dENv
bnRyb2wtPnNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBy
ZW5kZXJUZXh0Q29udHJvbC0+c2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChlbmQgPiBzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVtb3ZlKHN0YXJ0
LCBlbmQgLSBzdGFydCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVy
biBRVmFyaWFudCh0ZXh0KTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGMwNDRhZTA2YjY2ZjI2ZGZiMTU2
ZWJjYzExNjc5MzdhMDk1N2Y2YTAuLjc3ODliMWQyYjI5MGVhZDMzYTM1ZTc4N2QwMWQ4MTBiZWZl
YzI2ZTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTA1LTI3ICBSb2JlcnQgSG9nYW4gIDxyb2Jl
cnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIERvbid0IGZvcmNlIEVkaXRvciBpbnRvIENvbXBvc2l0aW9uIG1vZGUgb24g
U2VsZWN0aW9uIEV2ZW50CisKKyAgICAgICAgQWxzbyBmaXggaW5wdXRNZXRob2RRdWVyeShRdDo6
SW1TdXJyb3VuZGluZ1RleHQpIHRvIHJldHVybiB0aGUgYWN0dWFsCisgICAgICAgIHRleHQgc3Vy
cm91bmRpbmcgdGhlIHNlbGVjdGlvbiBhbmQgb25seSB1c2UgdGhlIGNvbXBvc2l0aW9uIHJhbmdl
CisgICAgICAgICBpZiBpbiBjb21wb3NpdGlvbiBtb2RlLgorCisgICAgICAgIFRoZSBjYWxsIHRv
IGVkaXRvci0+c2V0Q29tcG9zaXRpb24oKSBoYWQgcHJlZWRpdC5sZW5ndGgoKSBpbiB0aGUKKyAg
ICAgICAgd3JvbmcgcGxhY2UuCisKKyAgICAgICAgUmVtb3ZlIHRoZSB0ZXN0IGluIHRzdF9xd2Vi
cGFnZSB0aGF0IHBlcmZvcm1zIGEgcHJlLWVkaXQgY29tcG9zaXRpb24KKyAgICAgICAgYW5kIGNo
ZWNrcyB0aGF0IHN1cnJvdW5kaW5nIHRleHQgaXMgdW5hZmZlY3RlZC4gSWYgd2UncmUgaW4KKyAg
ICAgICAgY29tcG9zaXRpb24gbW9kZSBhbmQgY2hhbmdlIHRoZSBjb21wb3NpdGlvbiwgZXZlbiB3
aXRob3V0IGNvbW1pdHRpbmcKKyAgICAgICAgaXQsIHdlIHdpbGwgcmV0dXJuIHRoZSBzdXJyb3Vu
ZGluZyB0aGUgdGV4dCBvZiB0aGUgbGF0ZXN0IGNvbXBvc2l0aW9uLiBTbworICAgICAgICB0aGUg
ZXhwZWN0YXRpb25zIG9mIHRoaXMgdGVzdCBzZWVtcyB3cm9uZy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk2MjUKKworICAgICAgICAqIEFwaS9x
d2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmlucHV0TWV0aG9kRXZlbnQp
OgorICAgICAgICAoUVdlYlBhZ2U6OmlucHV0TWV0aG9kUXVlcnkpOgorICAgICAgICAqIHRlc3Rz
L3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAgICAgICh0c3RfUVdlYlBhZ2U6OmluZmlu
aXRlTG9vcEpTKToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6aW5wdXRNZXRob2RzKToKKyAgICAg
ICAgKHRzdF9RV2ViUGFnZTo6aW5wdXRNZXRob2RzVGV4dEZvcm1hdCk6CisKIDIwMTAtMDUtMjcg
IEx1aXogQWdvc3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IGNlYjhhZmY1NzFlNWFiZjhjNmM0ZmUwNmVh
YTljMjMyYjQzODBhMmQuLjc4NjY0YWU4MGE3NmI0NDNkODU4YWFhZDI0NTFhOWExZjVmZmY5ODYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisr
KyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC0xNDc2LDIz
ICsxNDc2LDcgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OmlucHV0TWV0aG9kcygpCiAgICAgLy9JbVN1
cnJvdW5kaW5nVGV4dAogICAgIHZhcmlhbnQgPSBwYWdlLT5pbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJ
bVN1cnJvdW5kaW5nVGV4dCk7CiAgICAgUVN0cmluZyB2YWx1ZSA9IHZhcmlhbnQudmFsdWU8UVN0
cmluZz4oKTsKLSAgICBRQ09NUEFSRSh2YWx1ZSwgUVN0cmluZygiUXRXZWJLaXQiKSk7Ci0KLSNp
ZiBRVF9WRVJTSU9OID49IDB4MDQwNjAwCi0gICAgewotICAgICAgICBRTGlzdDxRSW5wdXRNZXRo
b2RFdmVudDo6QXR0cmlidXRlPiBhdHRyaWJ1dGVzOwotICAgICAgICAvLyBDbGVhciB0aGUgc2Vs
ZWN0aW9uLCBzbyB0aGUgbmV4dCB0ZXN0IGRvZXMgbm90IGNsZWFyIGFueSBjb250ZW50cy4KLSAg
ICAgICAgUUlucHV0TWV0aG9kRXZlbnQ6OkF0dHJpYnV0ZSBuZXdTZWxlY3Rpb24oUUlucHV0TWV0
aG9kRXZlbnQ6OlNlbGVjdGlvbiwgMCwgMCwgUVZhcmlhbnQoKSk7Ci0gICAgICAgIGF0dHJpYnV0
ZXMuYXBwZW5kKG5ld1NlbGVjdGlvbik7Ci0gICAgICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50
KCJjb21wb3NpdGlvbiIsIGF0dHJpYnV0ZXMpOwotICAgICAgICBwYWdlLT5ldmVudCgmZXZlbnQp
OwotICAgIH0KLQotICAgIC8vIEEgb25nb2luZyBjb21wb3NpdGlvbiBzaG91bGQgbm90IGNoYW5n
ZSB0aGUgc3Vycm91bmRpbmcgdGV4dCBiZWZvcmUgaXQgaXMgY29tbWl0dGVkLgotICAgIHZhcmlh
bnQgPSBwYWdlLT5pbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbVN1cnJvdW5kaW5nVGV4dCk7Ci0gICAg
dmFsdWUgPSB2YXJpYW50LnZhbHVlPFFTdHJpbmc+KCk7Ci0gICAgUUNPTVBBUkUodmFsdWUsIFFT
dHJpbmcoIlF0V2ViS2l0IikpOwotI2VuZGlmCisgICAgUUNPTVBBUkUodmFsdWUsIFFTdHJpbmco
IlFpdCIpKTsKIAogICAgIC8vIENhbmNlbCBjdXJyZW50IGNvbXBvc2l0aW9uIGZpcnN0CiAgICAg
aW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1ldGhvZEV2ZW50OjpBdHRyaWJ1dGUoUUlucHV0TWV0
aG9kRXZlbnQ6OlNlbGVjdGlvbiwgMCwgMCwgUVZhcmlhbnQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57275</attachid>
            <date>2010-05-27 14:22:39 -0700</date>
            <delta_ts>2010-05-29 01:27:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20100527222239.patch</filename>
            <type>text/plain</type>
            <size>9611</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggNmU2MGIzNGZkMjdlZTdmZjk3MDk1YjExZjZmYTJmYzIyOTU1ZTRk
Ny4uMDE1Zjk0ZWJiMjc4MzZiMDQxNDg0MTNhNDQwZjEyNGY1YjA5Y2JmMSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTExODcsMTcgKzExODcsMjQgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmlucHV0TWV0
aG9kRXZlbnQoUUlucHV0TWV0aG9kRXZlbnQgKmV2KQogICAgICAgICAvLyAzLiBwb3B1bGF0ZWQg
cHJlZWRpdCB3aXRoIGEgc2VsZWN0aW9uIGF0dHJpYnV0ZSwgYW5kIHN0YXJ0L2VuZCBvZiAwIG9y
IG5vbi0wIHVwZGF0ZXMgc2VsZWN0aW9uIG9mIHN1cHBsaWVkIHByZWVkaXQgdGV4dAogICAgICAg
ICAvLyA0LiBvdGhlcndpc2UgZXZlbnQgaXMgdXBkYXRpbmcgc3VwcGxpZWQgcHJlLWVkaXQgdGV4
dAogICAgICAgICBRU3RyaW5nIHByZWVkaXQgPSBldi0+cHJlZWRpdFN0cmluZygpOworICAgICAg
ICBpZiAoIXByZWVkaXQuaXNFbXB0eSgpIHx8IGVkaXRvci0+aGFzQ29tcG9zaXRpb24oKSkgewog
I2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKLSAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgewot
ICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250cm9sKSA/IFFTdHJpbmco
cmVuZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAo
cHJlZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCA+
IDApCi0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAgICAgICAgICBlZGl0b3It
PnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBzZWxlY3Rpb24uc3RhcnQg
KyBzZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0
IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgeworICAgICAgICAgICAgICAgIFFTdHJpbmcg
dGV4dCA9IChyZW5kZXJUZXh0Q29udHJvbCkgPyBRU3RyaW5nKHJlbmRlclRleHRDb250cm9sLT50
ZXh0KCkpIDogUVN0cmluZygpOworICAgICAgICAgICAgICAgIGlmIChwcmVlZGl0LmlzRW1wdHko
KSAmJiBzZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgcHJlZWRpdCA9IHRleHQ7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21w
b3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCA6IHNlbGVjdGlvbi5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNlbGVjdGlvbi5sZW5ndGggPCAwKSA/IHNlbGVjdGlvbi5zdGFydCA6
IHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNl
CiAjZW5kaWYKLSAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24ocHJlZWRpdCwgdW5k
ZXJsaW5lcywgcHJlZWRpdC5sZW5ndGgoKSwgMCk7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5z
ZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCAwLCBwcmVlZGl0Lmxlbmd0aCgpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0Q29udHJvbCkgewor
ICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rpb25TdGFydChxTWlu
KHNlbGVjdGlvbi5zdGFydCwgKHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpKSk7
CisgICAgICAgICAgICAgICAgcmVuZGVyVGV4dENvbnRyb2wtPnNldFNlbGVjdGlvbkVuZChxTWF4
KHNlbGVjdGlvbi5zdGFydCwgKHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpKSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBldi0+YWNjZXB0KCk7CkBA
IC0xMzc2LDkgKzEzODMsMTUgQEAgUVZhcmlhbnQgUVdlYlBhZ2U6OmlucHV0TWV0aG9kUXVlcnko
UXQ6OklucHV0TWV0aG9kUXVlcnkgcHJvcGVydHkpIGNvbnN0CiAgICAgICAgIGNhc2UgUXQ6Oklt
U3Vycm91bmRpbmdUZXh0OiB7CiAgICAgICAgICAgICBpZiAocmVuZGVyVGV4dENvbnRyb2wpIHsK
ICAgICAgICAgICAgICAgICBRU3RyaW5nIHRleHQgPSByZW5kZXJUZXh0Q29udHJvbC0+dGV4dCgp
OwotICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBlZGl0b3ItPmNvbXBvc2l0
aW9uUmFuZ2UoKTsKLSAgICAgICAgICAgICAgICBpZiAocmFuZ2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5vZmZzZXRJbkNvbnRhaW5l
ck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSkpOworICAgICAg
ICAgICAgICAgIGlmIChlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0LnJlbW92ZShyYW5nZS0+c3RhcnRQb3NpdGlvbigpLm9mZnNldEluQ29udGFpbmVyTm9kZSgp
LCBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHJhbmdlLmdldCgpKSk7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gcmVuZGVyVGV4dENv
bnRyb2wtPnNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBy
ZW5kZXJUZXh0Q29udHJvbC0+c2VsZWN0aW9uRW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
IChlbmQgPiBzdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVtb3ZlKHN0YXJ0
LCBlbmQgLSBzdGFydCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVy
biBRVmFyaWFudCh0ZXh0KTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGMwNDRhZTA2YjY2ZjI2ZGZiMTU2
ZWJjYzExNjc5MzdhMDk1N2Y2YTAuLjJkYTlhNzU0M2Y1ZjY0YmQxMmQyYzcyYmFjMjE3ZjNiOGRk
NTFiOTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEwLTA1LTI3ICBSb2JlcnQgSG9nYW4gIDxyb2Jl
cnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIERvbid0IGZvcmNlIEVkaXRvciBpbnRvIENvbXBvc2l0aW9uIG1vZGUgb24g
U2VsZWN0aW9uIEV2ZW50CisKKyAgICAgICAgQWRkIGEgdGVzdCB0byB0c3RfcXdlYnBhZ2UgdG8g
Y2hlY2sgdGhhdCB3ZSBkb24ndC4KKworICAgICAgICBBbHNvIGZpeCBpbnB1dE1ldGhvZFF1ZXJ5
KFF0OjpJbVN1cnJvdW5kaW5nVGV4dCkgdG8gcmV0dXJuIHRoZSBhY3R1YWwKKyAgICAgICAgdGV4
dCBzdXJyb3VuZGluZyB0aGUgc2VsZWN0aW9uIGFuZCBvbmx5IHVzZSB0aGUgY29tcG9zaXRpb24g
cmFuZ2UKKyAgICAgICAgaWYgaW4gY29tcG9zaXRpb24gbW9kZS4KKworICAgICAgICBUaGUgY2Fs
bCB0byBlZGl0b3ItPnNldENvbXBvc2l0aW9uKCkgaGFkIHByZWVkaXQubGVuZ3RoKCkgaW4gdGhl
CisgICAgICAgIHdyb25nIHBsYWNlLgorCisgICAgICAgIFJlbW92ZSB0aGUgdGVzdCBpbiB0c3Rf
cXdlYnBhZ2UgdGhhdCBwZXJmb3JtcyBhIHByZS1lZGl0IGNvbXBvc2l0aW9uCisgICAgICAgIGFu
ZCBjaGVja3MgdGhhdCBzdXJyb3VuZGluZyB0ZXh0IGlzIHVuYWZmZWN0ZWQuIElmIHdlJ3JlIGlu
CisgICAgICAgIGNvbXBvc2l0aW9uIG1vZGUgYW5kIGNoYW5nZSB0aGUgY29tcG9zaXRpb24sIGV2
ZW4gd2l0aG91dCBjb21taXR0aW5nCisgICAgICAgIGl0LCB3ZSB3aWxsIHJldHVybiB0aGUgc3Vy
cm91bmRpbmcgdGhlIHRleHQgb2YgdGhlIGxhdGVzdCBjb21wb3NpdGlvbi4gU28KKyAgICAgICAg
dGhlIGV4cGVjdGF0aW9ucyBvZiB0aGlzIHRlc3Qgc2VlbXMgd3JvbmcuCisKKyAgICAgICAgQW5k
IG1vdmUgaW5pZmluaXRlTG9vcEpTKCkgdG8gdGhlIGVuZCBvZiB0aGUgdGVzdHMgc28geW91IGRv
bid0IGhhdmUgdG8KKyAgICAgICAgd2FpdCBmb3IgaXQgd2hlbiB0ZXN0aW5nIG90aGVyIHVuaXQg
dGVzdHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM5NjI1CisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChP
T1BTISkKKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVBy
aXZhdGU6OmlucHV0TWV0aG9kRXZlbnQpOgorICAgICAgICAoUVdlYlBhZ2U6OmlucHV0TWV0aG9k
UXVlcnkpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjplZGl0b3JJbkNvbXBvc2l0
aW9uTW9kZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaDoKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAg
ICAodHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMpOgorCiAyMDEwLTA1LTI3ICBMdWl6IEFnb3N0
aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTY3ZmU1MTMyMjIyYzcx
MWQ1ZjVjOGZjMGRkYzQ4ODA0MWIyZmM2My4uMDM3ZjU5ZGZjYjUwY2U3YzU3ZDZlYjI2YzQxMjRi
MWI4NGI5ZGJiYiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC00ODcsNiArNDg3LDExIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnNldEVkaXRpbmdCZWhhdmlvcihRV2ViUGFnZSogcGFnZSwgY29uc3Qg
UVN0cmluZyYKICAgICBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2V0RWRpdGluZ0JlaGF2aW9yKGNv
cmVFZGl0aW5nQmVoYXZpb3IpOwogfQogCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpl
ZGl0b3JJbkNvbXBvc2l0aW9uTW9kZShRV2ViUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gcGFn
ZS0+aGFuZGxlKCktPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUo
KS0+ZWRpdG9yKCktPmhhc0NvbXBvc2l0aW9uKCk7Cit9CisKIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihib29sIGIpCiB7CiAgICAgRnJhbWVMb2FkZXJDbGll
bnRRdDo6ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gYjsKZGlmZiAtLWdpdCBhL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggZmM4ZWM1ZDEyZGFl
YmUzODdkZjliZjUwOTJjMzRjMDQ0ZGI2NGI5Mi4uMjE3Mjk1MGVhNDI2ZjQyN2VlNmNmM2M4ZWE1
ZTBmN2IyNzNiNzNlMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2UqIHBhZ2Us
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBzZWxlY3RlZFJhbmdlKFFX
ZWJQYWdlKiBwYWdlKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IGZpcnN0UmVjdEZvckNoYXJh
Y3RlclJhbmdlKFFXZWJQYWdlKiBwYWdlLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpOworICAg
IHN0YXRpYyBib29sIGVkaXRvckluQ29tcG9zaXRpb25Nb2RlKFFXZWJQYWdlKiBwYWdlKTsKIAog
ICAgIHN0YXRpYyBib29sIHBhdXNlQW5pbWF0aW9uKFFXZWJGcmFtZSosIGNvbnN0IFFTdHJpbmcm
IG5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nJiBlbGVtZW50SWQpOwogICAgIHN0YXRp
YyBib29sIHBhdXNlVHJhbnNpdGlvbk9mUHJvcGVydHkoUVdlYkZyYW1lKiwgY29uc3QgUVN0cmlu
ZyYgbmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IGNlYjhhZmY1NzFlNWFiZjhj
NmM0ZmUwNmVhYTljMjMyYjQzODBhMmQuLmMwZTlhYTFmMmRiNzZjOTk2NTM0OWE0YzAyYmE1Yjhk
OGM0OWE2MDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBA
IC03Niw3ICs3Niw2IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBjbGVhbnVwVGVzdENhc2Uo
KTsKIAogICAgIHZvaWQgYWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoKTsKLSAgICB2b2lkIGluZmlu
aXRlTG9vcEpTKCk7CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKICAgICB2b2lkIGFjY2VwdE5h
dmlnYXRpb25SZXF1ZXN0V2l0aE5ld1dpbmRvdygpOwogICAgIHZvaWQgdXNlclN0eWxlU2hlZXQo
KTsKQEAgLTEyMiw2ICsxMjEsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgb3JpZ2luYXRp
bmdPYmplY3RJbk5ldHdvcmtSZXF1ZXN0cygpOwogICAgIHZvaWQgdGVzdEpTUHJvbXB0KCk7CiAg
ICAgdm9pZCBzaG93TW9kYWxEaWFsb2coKTsKKyAgICB2b2lkIGluZmluaXRlTG9vcEpTKCk7CiAK
IHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKQEAgLTE0NzYsMjkgKzE0NzYsMjcgQEAg
dm9pZCB0c3RfUVdlYlBhZ2U6OmlucHV0TWV0aG9kcygpCiAgICAgLy9JbVN1cnJvdW5kaW5nVGV4
dAogICAgIHZhcmlhbnQgPSBwYWdlLT5pbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbVN1cnJvdW5kaW5n
VGV4dCk7CiAgICAgUVN0cmluZyB2YWx1ZSA9IHZhcmlhbnQudmFsdWU8UVN0cmluZz4oKTsKLSAg
ICBRQ09NUEFSRSh2YWx1ZSwgUVN0cmluZygiUXRXZWJLaXQiKSk7CisgICAgUUNPTVBBUkUodmFs
dWUsIFFTdHJpbmcoIlFpdCIpKTsKIAotI2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKLSAgICB7
Ci0gICAgICAgIFFMaXN0PFFJbnB1dE1ldGhvZEV2ZW50OjpBdHRyaWJ1dGU+IGF0dHJpYnV0ZXM7
Ci0gICAgICAgIC8vIENsZWFyIHRoZSBzZWxlY3Rpb24sIHNvIHRoZSBuZXh0IHRlc3QgZG9lcyBu
b3QgY2xlYXIgYW55IGNvbnRlbnRzLgotICAgICAgICBRSW5wdXRNZXRob2RFdmVudDo6QXR0cmli
dXRlIG5ld1NlbGVjdGlvbihRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9uLCAwLCAwLCBRVmFy
aWFudCgpKTsKLSAgICAgICAgYXR0cmlidXRlcy5hcHBlbmQobmV3U2VsZWN0aW9uKTsKLSAgICAg
ICAgUUlucHV0TWV0aG9kRXZlbnQgZXZlbnQoImNvbXBvc2l0aW9uIiwgYXR0cmlidXRlcyk7Ci0g
ICAgICAgIHBhZ2UtPmV2ZW50KCZldmVudCk7Ci0gICAgfQotCi0gICAgLy8gQSBvbmdvaW5nIGNv
bXBvc2l0aW9uIHNob3VsZCBub3QgY2hhbmdlIHRoZSBzdXJyb3VuZGluZyB0ZXh0IGJlZm9yZSBp
dCBpcyBjb21taXR0ZWQuCi0gICAgdmFyaWFudCA9IHBhZ2UtPmlucHV0TWV0aG9kUXVlcnkoUXQ6
OkltU3Vycm91bmRpbmdUZXh0KTsKLSAgICB2YWx1ZSA9IHZhcmlhbnQudmFsdWU8UVN0cmluZz4o
KTsKLSAgICBRQ09NUEFSRSh2YWx1ZSwgUVN0cmluZygiUXRXZWJLaXQiKSk7Ci0jZW5kaWYKLQot
ICAgIC8vIENhbmNlbCBjdXJyZW50IGNvbXBvc2l0aW9uIGZpcnN0CisgICAgLy8gQ2FuY2VsIGN1
cnJlbnQgY29tcG9zaXRpb24KICAgICBpbnB1dEF0dHJpYnV0ZXMgPDwgUUlucHV0TWV0aG9kRXZl
bnQ6OkF0dHJpYnV0ZShRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9uLCAwLCAwLCBRVmFyaWFu
dCgpKTsKICAgICBRSW5wdXRNZXRob2RFdmVudCBldmVudFNlbGVjdGlvbjQoIiIsIGlucHV0QXR0
cmlidXRlcyk7CiAgICAgcGFnZS0+ZXZlbnQoJmV2ZW50U2VsZWN0aW9uNCk7CiAKKyAgICAvLyBD
aGVjayB0aGF0IGEgc2VsZWN0aW9uIGV2ZW50IHdoZW4gd2UncmUgbm90IGluIGNvbXBvc2l0aW9u
IG1vZGUgZG9lc24ndCBmb3JjZSB0aGUgZWRpdG9yIGludG8KKyAgICAvLyBjb21wb3NpdGlvbiBt
b2RlCisgICAgaW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1ldGhvZEV2ZW50OjpBdHRyaWJ1dGUo
UUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlvbiwgMSwgNSwgUVZhcmlhbnQoKSk7CisgICAgUUlu
cHV0TWV0aG9kRXZlbnQgZXZlbnRTZWxlY3Rpb241KCIiLCBpbnB1dEF0dHJpYnV0ZXMpOworICAg
IHBhZ2UtPmV2ZW50KCZldmVudFNlbGVjdGlvbjUpOworCisgICAgYm9vbCBjb21wb3NpdGlvbk1v
ZGUgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZWRpdG9ySW5Db21wb3NpdGlvbk1vZGUocGFn
ZSk7CisgICAgUUNPTVBBUkUoY29tcG9zaXRpb25Nb2RlLCBmYWxzZSk7CisKKyAgICAvLyBDYW5j
ZWwgY29tcG9zaXRpb24gZm9yIHRlc3RpbmcgRWRpdG9yIHdoZW4gbm90IGluIENvbXBvc2l0aW9u
IG1vZGUKKyAgICBpbnB1dEF0dHJpYnV0ZXMgPDwgUUlucHV0TWV0aG9kRXZlbnQ6OkF0dHJpYnV0
ZShRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9uLCAwLCAwLCBRVmFyaWFudCgpKTsKKyAgICBR
SW5wdXRNZXRob2RFdmVudCBldmVudFNlbGVjdGlvbjYoIiIsIGlucHV0QXR0cmlidXRlcyk7Cisg
ICAgcGFnZS0+ZXZlbnQoJmV2ZW50U2VsZWN0aW9uNik7CisKICAgICAvLyBTVEFSVCAtIFRlc3Rz
IGZvciBTZWxlY3Rpb24gd2hlbiB0aGUgRWRpdG9yIGlzIE5PVCBpbiBDb21wb3NpdGlvbiBtb2Rl
CiAKICAgICAvLyBMRUZUIHRvIFJJR0hUIHNlbGVjdGlvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57408</attachid>
            <date>2010-05-29 01:28:00 -0700</date>
            <delta_ts>2010-10-16 13:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20100529092757.patch</filename>
            <type>text/plain</type>
            <size>9627</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggNmU2MGIzNGZkMjdlZTdmZjk3MDk1YjExZjZmYTJmYzIyOTU1ZTRk
Ny4uNmMzMmYwNzM4NTg2YzAzMjBmOGI1Nzg4MzlhYjNlMTg5MmRhOTUzNCAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTExODcsMTcgKzExODcsMjQgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmlucHV0TWV0
aG9kRXZlbnQoUUlucHV0TWV0aG9kRXZlbnQgKmV2KQogICAgICAgICAvLyAzLiBwb3B1bGF0ZWQg
cHJlZWRpdCB3aXRoIGEgc2VsZWN0aW9uIGF0dHJpYnV0ZSwgYW5kIHN0YXJ0L2VuZCBvZiAwIG9y
IG5vbi0wIHVwZGF0ZXMgc2VsZWN0aW9uIG9mIHN1cHBsaWVkIHByZWVkaXQgdGV4dAogICAgICAg
ICAvLyA0LiBvdGhlcndpc2UgZXZlbnQgaXMgdXBkYXRpbmcgc3VwcGxpZWQgcHJlLWVkaXQgdGV4
dAogICAgICAgICBRU3RyaW5nIHByZWVkaXQgPSBldi0+cHJlZWRpdFN0cmluZygpOworICAgICAg
ICBpZiAoIXByZWVkaXQuaXNFbXB0eSgpIHx8IGVkaXRvci0+aGFzQ29tcG9zaXRpb24oKSkgewog
I2lmIFFUX1ZFUlNJT04gPj0gMHgwNDA2MDAKLSAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgewot
ICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250cm9sKSA/IFFTdHJpbmco
cmVuZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAo
cHJlZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCA+
IDApCi0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAgICAgICAgICBlZGl0b3It
PnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBzZWxlY3Rpb24uc3RhcnQg
KyBzZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0
IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgeworICAgICAgICAgICAgICAgIFFTdHJpbmcg
dGV4dCA9IChyZW5kZXJUZXh0Q29udHJvbCkgPyBRU3RyaW5nKHJlbmRlclRleHRDb250cm9sLT50
ZXh0KCkpIDogUVN0cmluZygpOworICAgICAgICAgICAgICAgIGlmIChwcmVlZGl0LmlzRW1wdHko
KSAmJiBzZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoID4gMCkKKyAgICAgICAgICAg
ICAgICAgICAgcHJlZWRpdCA9IHRleHQ7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21w
b3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCA6IHNlbGVjdGlvbi5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNlbGVjdGlvbi5sZW5ndGggPCAwKSA/IHNlbGVjdGlvbi5zdGFydCA6
IHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNl
CiAjZW5kaWYKLSAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24ocHJlZWRpdCwgdW5k
ZXJsaW5lcywgcHJlZWRpdC5sZW5ndGgoKSwgMCk7CisgICAgICAgICAgICAgICAgZWRpdG9yLT5z
ZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCAwLCBwcmVlZGl0Lmxlbmd0aCgpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChoYXNTZWxlY3Rpb24gJiYgcmVuZGVy
VGV4dENvbnRyb2wpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJUZXh0Q29udHJvbC0+c2V0U2Vs
ZWN0aW9uU3RhcnQocU1pbihzZWxlY3Rpb24uc3RhcnQsIChzZWxlY3Rpb24uc3RhcnQgKyBzZWxl
Y3Rpb24ubGVuZ3RoKSkpOworICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRT
ZWxlY3Rpb25FbmQocU1heChzZWxlY3Rpb24uc3RhcnQsIChzZWxlY3Rpb24uc3RhcnQgKyBzZWxl
Y3Rpb24ubGVuZ3RoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAg
ZXYtPmFjY2VwdCgpOwpAQCAtMTM3Niw5ICsxMzgzLDE1IEBAIFFWYXJpYW50IFFXZWJQYWdlOjpp
bnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbnB1dE1ldGhvZFF1ZXJ5IHByb3BlcnR5KSBjb25zdAogICAg
ICAgICBjYXNlIFF0OjpJbVN1cnJvdW5kaW5nVGV4dDogewogICAgICAgICAgICAgaWYgKHJlbmRl
clRleHRDb250cm9sKSB7CiAgICAgICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gcmVuZGVyVGV4
dENvbnRyb2wtPnRleHQoKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0g
ZWRpdG9yLT5jb21wb3NpdGlvblJhbmdlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJhbmdlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQucmVtb3ZlKHJhbmdlLT5zdGFydFBvc2l0aW9uKCku
b2Zmc2V0SW5Db250YWluZXJOb2RlKCksIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2Uu
Z2V0KCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoZWRpdG9yLT5oYXNDb21wb3NpdGlvbigpKSB7
CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBlZGl0b3ItPmNvbXBv
c2l0aW9uUmFuZ2UoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5vZmZzZXRJ
bkNvbnRhaW5lck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSkp
OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFy
dCA9IHJlbmRlclRleHRDb250cm9sLT5zZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgICAg
ICAgICBpbnQgZW5kID0gcmVuZGVyVGV4dENvbnRyb2wtPnNlbGVjdGlvbkVuZCgpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoZW5kID4gc3RhcnQpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0LnJlbW92ZShzdGFydCwgZW5kIC0gc3RhcnQpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICByZXR1cm4gUVZhcmlhbnQodGV4dCk7CiAgICAgICAgICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjMDQ0
YWUwNmI2NmYyNmRmYjE1NmViY2MxMTY3OTM3YTA5NTdmNmEwLi4yZGE5YTc1NDNmNWY2NGJkMTJk
MmM3MmJhYzIxN2YzYjhkZDUxYjk5IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wNS0yNyAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBEb24ndCBmb3JjZSBFZGl0b3IgaW50byBDb21w
b3NpdGlvbiBtb2RlIG9uIFNlbGVjdGlvbiBFdmVudAorCisgICAgICAgIEFkZCBhIHRlc3QgdG8g
dHN0X3F3ZWJwYWdlIHRvIGNoZWNrIHRoYXQgd2UgZG9uJ3QuCisKKyAgICAgICAgQWxzbyBmaXgg
aW5wdXRNZXRob2RRdWVyeShRdDo6SW1TdXJyb3VuZGluZ1RleHQpIHRvIHJldHVybiB0aGUgYWN0
dWFsCisgICAgICAgIHRleHQgc3Vycm91bmRpbmcgdGhlIHNlbGVjdGlvbiBhbmQgb25seSB1c2Ug
dGhlIGNvbXBvc2l0aW9uIHJhbmdlCisgICAgICAgIGlmIGluIGNvbXBvc2l0aW9uIG1vZGUuCisK
KyAgICAgICAgVGhlIGNhbGwgdG8gZWRpdG9yLT5zZXRDb21wb3NpdGlvbigpIGhhZCBwcmVlZGl0
Lmxlbmd0aCgpIGluIHRoZQorICAgICAgICB3cm9uZyBwbGFjZS4KKworICAgICAgICBSZW1vdmUg
dGhlIHRlc3QgaW4gdHN0X3F3ZWJwYWdlIHRoYXQgcGVyZm9ybXMgYSBwcmUtZWRpdCBjb21wb3Np
dGlvbgorICAgICAgICBhbmQgY2hlY2tzIHRoYXQgc3Vycm91bmRpbmcgdGV4dCBpcyB1bmFmZmVj
dGVkLiBJZiB3ZSdyZSBpbgorICAgICAgICBjb21wb3NpdGlvbiBtb2RlIGFuZCBjaGFuZ2UgdGhl
IGNvbXBvc2l0aW9uLCBldmVuIHdpdGhvdXQgY29tbWl0dGluZworICAgICAgICBpdCwgd2Ugd2ls
bCByZXR1cm4gdGhlIHN1cnJvdW5kaW5nIHRoZSB0ZXh0IG9mIHRoZSBsYXRlc3QgY29tcG9zaXRp
b24uIFNvCisgICAgICAgIHRoZSBleHBlY3RhdGlvbnMgb2YgdGhpcyB0ZXN0IHNlZW1zIHdyb25n
LgorCisgICAgICAgIEFuZCBtb3ZlIGluaWZpbml0ZUxvb3BKUygpIHRvIHRoZSBlbmQgb2YgdGhl
IHRlc3RzIHNvIHlvdSBkb24ndCBoYXZlIHRvCisgICAgICAgIHdhaXQgZm9yIGl0IHdoZW4gdGVz
dGluZyBvdGhlciB1bml0IHRlc3RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zOTYyNQorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlv
biBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAg
ICAgICAoUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhvZEV2ZW50KToKKyAgICAgICAgKFFXZWJQ
YWdlOjppbnB1dE1ldGhvZFF1ZXJ5KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
ZWRpdG9ySW5Db21wb3NpdGlvbk1vZGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJw
YWdlLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6aW5wdXRNZXRob2RzKToKKwogMjAxMC0w
NS0yNyAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4
IDU2N2ZlNTEzMjIyMmM3MTFkNWY1YzhmYzBkZGM0ODgwNDFiMmZjNjMuLjAzN2Y1OWRmY2I1MGNl
N2M1N2Q2ZWIyNmM0MTI0YjFiODRiOWRiYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNDg3LDYgKzQ4NywxMSBA
QCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRFZGl0aW5nQmVoYXZpb3IoUVdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFFTdHJpbmcmCiAgICAgY29yZVBhZ2UtPnNldHRpbmdzKCktPnNldEVk
aXRpbmdCZWhhdmlvcihjb3JlRWRpdGluZ0JlaGF2aW9yKTsKIH0KIAorYm9vbCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6ZWRpdG9ySW5Db21wb3NpdGlvbk1vZGUoUVdlYlBhZ2UqIHBhZ2UpCit7
CisgICAgcmV0dXJuIHBhZ2UtPmhhbmRsZSgpLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9j
dXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5oYXNDb21wb3NpdGlvbigpOworfQorCiB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2FkZXIoYm9vbCBiKQogewogICAg
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcyA9IGI7CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmlu
ZGV4IGZjOGVjNWQxMmRhZWJlMzg3ZGY5YmY1MDkyYzM0YzA0NGRiNjRiOTIuLjIxNzI5NTBlYTQy
NmY0MjdlZTZjZjNjOGVhNWUwZjdiMjczYjczZTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC00NCw2ICs0NCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KFFXZWJQYWdlKiBwYWdlLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3Qg
c2VsZWN0ZWRSYW5nZShRV2ViUGFnZSogcGFnZSk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShRV2ViUGFnZSogcGFnZSwgaW50IGxvY2F0aW9uLCBp
bnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgYm9vbCBlZGl0b3JJbkNvbXBvc2l0aW9uTW9kZShRV2Vi
UGFnZSogcGFnZSk7CiAKICAgICBzdGF0aWMgYm9vbCBwYXVzZUFuaW1hdGlvbihRV2ViRnJhbWUq
LCBjb25zdCBRU3RyaW5nJiBuYW1lLCBkb3VibGUgdGltZSwgY29uc3QgUVN0cmluZyYgZWxlbWVu
dElkKTsKICAgICBzdGF0aWMgYm9vbCBwYXVzZVRyYW5zaXRpb25PZlByb3BlcnR5KFFXZWJGcmFt
ZSosIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nJiBlbGVt
ZW50SWQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCBj
ZWI4YWZmNTcxZTVhYmY4YzZjNGZlMDZlYWE5YzIzMmI0MzgwYTJkLi5jMGU5YWExZjJkYjc2Yzk5
NjUzNDlhNGMwMmJhNWI4ZDhjNDlhNjA1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdl
YnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcApAQCAtNzYsNyArNzYsNiBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQg
Y2xlYW51cFRlc3RDYXNlKCk7CiAKICAgICB2b2lkIGFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KCk7
Ci0gICAgdm9pZCBpbmZpbml0ZUxvb3BKUygpOwogICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CiAg
ICAgdm9pZCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdFdpdGhOZXdXaW5kb3coKTsKICAgICB2b2lk
IHVzZXJTdHlsZVNoZWV0KCk7CkBAIC0xMjIsNiArMTIxLDcgQEAgcHJpdmF0ZSBzbG90czoKICAg
ICB2b2lkIG9yaWdpbmF0aW5nT2JqZWN0SW5OZXR3b3JrUmVxdWVzdHMoKTsKICAgICB2b2lkIHRl
c3RKU1Byb21wdCgpOwogICAgIHZvaWQgc2hvd01vZGFsRGlhbG9nKCk7CisgICAgdm9pZCBpbmZp
bml0ZUxvb3BKUygpOwogCiBwcml2YXRlOgogICAgIFFXZWJWaWV3KiBtX3ZpZXc7CkBAIC0xNDc2
LDI5ICsxNDc2LDI3IEBAIHZvaWQgdHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMoKQogICAgIC8v
SW1TdXJyb3VuZGluZ1RleHQKICAgICB2YXJpYW50ID0gcGFnZS0+aW5wdXRNZXRob2RRdWVyeShR
dDo6SW1TdXJyb3VuZGluZ1RleHQpOwogICAgIFFTdHJpbmcgdmFsdWUgPSB2YXJpYW50LnZhbHVl
PFFTdHJpbmc+KCk7Ci0gICAgUUNPTVBBUkUodmFsdWUsIFFTdHJpbmcoIlF0V2ViS2l0IikpOwor
ICAgIFFDT01QQVJFKHZhbHVlLCBRU3RyaW5nKCJRaXQiKSk7CiAKLSNpZiBRVF9WRVJTSU9OID49
IDB4MDQwNjAwCi0gICAgewotICAgICAgICBRTGlzdDxRSW5wdXRNZXRob2RFdmVudDo6QXR0cmli
dXRlPiBhdHRyaWJ1dGVzOwotICAgICAgICAvLyBDbGVhciB0aGUgc2VsZWN0aW9uLCBzbyB0aGUg
bmV4dCB0ZXN0IGRvZXMgbm90IGNsZWFyIGFueSBjb250ZW50cy4KLSAgICAgICAgUUlucHV0TWV0
aG9kRXZlbnQ6OkF0dHJpYnV0ZSBuZXdTZWxlY3Rpb24oUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVj
dGlvbiwgMCwgMCwgUVZhcmlhbnQoKSk7Ci0gICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKG5ld1Nl
bGVjdGlvbik7Ci0gICAgICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50KCJjb21wb3NpdGlvbiIs
IGF0dHJpYnV0ZXMpOwotICAgICAgICBwYWdlLT5ldmVudCgmZXZlbnQpOwotICAgIH0KLQotICAg
IC8vIEEgb25nb2luZyBjb21wb3NpdGlvbiBzaG91bGQgbm90IGNoYW5nZSB0aGUgc3Vycm91bmRp
bmcgdGV4dCBiZWZvcmUgaXQgaXMgY29tbWl0dGVkLgotICAgIHZhcmlhbnQgPSBwYWdlLT5pbnB1
dE1ldGhvZFF1ZXJ5KFF0OjpJbVN1cnJvdW5kaW5nVGV4dCk7Ci0gICAgdmFsdWUgPSB2YXJpYW50
LnZhbHVlPFFTdHJpbmc+KCk7Ci0gICAgUUNPTVBBUkUodmFsdWUsIFFTdHJpbmcoIlF0V2ViS2l0
IikpOwotI2VuZGlmCi0KLSAgICAvLyBDYW5jZWwgY3VycmVudCBjb21wb3NpdGlvbiBmaXJzdAor
ICAgIC8vIENhbmNlbCBjdXJyZW50IGNvbXBvc2l0aW9uCiAgICAgaW5wdXRBdHRyaWJ1dGVzIDw8
IFFJbnB1dE1ldGhvZEV2ZW50OjpBdHRyaWJ1dGUoUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlv
biwgMCwgMCwgUVZhcmlhbnQoKSk7CiAgICAgUUlucHV0TWV0aG9kRXZlbnQgZXZlbnRTZWxlY3Rp
b240KCIiLCBpbnB1dEF0dHJpYnV0ZXMpOwogICAgIHBhZ2UtPmV2ZW50KCZldmVudFNlbGVjdGlv
bjQpOwogCisgICAgLy8gQ2hlY2sgdGhhdCBhIHNlbGVjdGlvbiBldmVudCB3aGVuIHdlJ3JlIG5v
dCBpbiBjb21wb3NpdGlvbiBtb2RlIGRvZXNuJ3QgZm9yY2UgdGhlIGVkaXRvciBpbnRvCisgICAg
Ly8gY29tcG9zaXRpb24gbW9kZQorICAgIGlucHV0QXR0cmlidXRlcyA8PCBRSW5wdXRNZXRob2RF
dmVudDo6QXR0cmlidXRlKFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb24sIDEsIDUsIFFWYXJp
YW50KCkpOworICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uNSgiIiwgaW5wdXRB
dHRyaWJ1dGVzKTsKKyAgICBwYWdlLT5ldmVudCgmZXZlbnRTZWxlY3Rpb241KTsKKworICAgIGJv
b2wgY29tcG9zaXRpb25Nb2RlID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmVkaXRvckluQ29t
cG9zaXRpb25Nb2RlKHBhZ2UpOworICAgIFFDT01QQVJFKGNvbXBvc2l0aW9uTW9kZSwgZmFsc2Up
OworCisgICAgLy8gQ2FuY2VsIGNvbXBvc2l0aW9uIGZvciB0ZXN0aW5nIEVkaXRvciB3aGVuIG5v
dCBpbiBDb21wb3NpdGlvbiBtb2RlCisgICAgaW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1ldGhv
ZEV2ZW50OjpBdHRyaWJ1dGUoUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlvbiwgMCwgMCwgUVZh
cmlhbnQoKSk7CisgICAgUUlucHV0TWV0aG9kRXZlbnQgZXZlbnRTZWxlY3Rpb242KCIiLCBpbnB1
dEF0dHJpYnV0ZXMpOworICAgIHBhZ2UtPmV2ZW50KCZldmVudFNlbGVjdGlvbjYpOworCiAgICAg
Ly8gU1RBUlQgLSBUZXN0cyBmb3IgU2VsZWN0aW9uIHdoZW4gdGhlIEVkaXRvciBpcyBOT1QgaW4g
Q29tcG9zaXRpb24gbW9kZQogCiAgICAgLy8gTEVGVCB0byBSSUdIVCBzZWxlY3Rpb24K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70964</attachid>
            <date>2010-10-16 13:52:06 -0700</date>
            <delta_ts>2010-10-17 10:15:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20101016215204.patch</filename>
            <type>text/plain</type>
            <size>5718</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggZDRmMGQ2M2FiYjNiMzNiYzM4YTk3ZmVmNGEwN2UzYzQ1MTg1OTE4
OS4uMGRhYzM2ZDNiYTU5M2Q0NjVmZTU0ODExN2ExYTYyZDZjOTZmMjJkNyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTEwNDgsOCArMTA0OCwyNSBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRo
b2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb246IHsKLSAgICAg
ICAgICAgIHNlbGVjdGlvbiA9IGE7CiAgICAgICAgICAgICBoYXNTZWxlY3Rpb24gPSB0cnVlOwor
ICAgICAgICAgICAgLy8gQSBzZWxlY3Rpb24gaW4gdGhlIGlucHV0TWV0aG9kRXZlbnQgaXMgYWx3
YXlzIHJlZmxlY3RlZCBpbiB0aGUgdmlzaWJsZSB0ZXh0CisgICAgICAgICAgICBpZiAocmVuZGVy
VGV4dENvbnRyb2wpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJUZXh0Q29udHJvbC0+c2V0U2Vs
ZWN0aW9uU3RhcnQocU1pbihhLnN0YXJ0LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAg
ICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rpb25FbmQocU1heChhLnN0YXJ0
LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoIWV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKSB7CisjaWYgUVRfVkVSU0lPTiA+PSAw
eDA0MDYwMAorICAgICAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oZXYtPnByZWVk
aXRTdHJpbmcoKSwgdW5kZXJsaW5lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGEubGVuZ3RoIDwgMCkgPyBhLnN0YXJ0ICsgYS5sZW5ndGggOiBhLnN0YXJ0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5sZW5ndGggPCAwKSA/IGEuc3Rh
cnQgOiBhLnN0YXJ0ICsgYS5sZW5ndGgpOworI2VuZGlmCisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY29tcG9zaXRp
b24sIGFuIGVtcHR5IHByZS1lZGl0IHN0cmluZyBhbmQgYSBzZWxlY3Rpb24gb2YgemVybworICAg
ICAgICAgICAgICAgIC8vIGNhbmNlbHMgdGhlIGN1cnJlbnQgY29tcG9zaXRpb24KKyAgICAgICAg
ICAgICAgICBpZiAoZWRpdG9yLT5oYXNDb21wb3NpdGlvbigpICYmIChhLnN0YXJ0ICsgYS5sZW5n
dGggPT0gMCkpCisgICAgICAgICAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oUVN0
cmluZygpLCB1bmRlcmxpbmVzLCAwLCAwKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEwNTcsMjIgKzEwNzQsOCBAQCB2b2lkIFFX
ZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAK
ICAgICBpZiAoIWV2LT5jb21taXRTdHJpbmcoKS5pc0VtcHR5KCkpCiAgICAgICAgIGVkaXRvci0+
Y29uZmlybUNvbXBvc2l0aW9uKGV2LT5jb21taXRTdHJpbmcoKSk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIC8vIDEuIGVtcHR5IHByZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBz
dGFydC9lbmQgb2YgMCBjYW5jZWxzIGNvbXBvc2l0aW9uCi0gICAgICAgIC8vIDIuIGVtcHR5IHBy
ZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2Ygbm9uLTAg
dXBkYXRlcyBzZWxlY3Rpb24gb2YgY3VycmVudCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gMy4g
cG9wdWxhdGVkIHByZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9l
bmQgb2YgMCBvciBub24tMCB1cGRhdGVzIHNlbGVjdGlvbiBvZiBzdXBwbGllZCBwcmVlZGl0IHRl
eHQKLSAgICAgICAgLy8gNC4gb3RoZXJ3aXNlIGV2ZW50IGlzIHVwZGF0aW5nIHN1cHBsaWVkIHBy
ZS1lZGl0IHRleHQKLSAgICAgICAgUVN0cmluZyBwcmVlZGl0ID0gZXYtPnByZWVkaXRTdHJpbmco
KTsKLSAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgewotICAgICAgICAgICAgUVN0cmluZyB0ZXh0
ID0gKHJlbmRlclRleHRDb250cm9sKSA/IFFTdHJpbmcocmVuZGVyVGV4dENvbnRyb2wtPnRleHQo
KSkgOiBRU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAocHJlZWRpdC5pc0VtcHR5KCkgJiYgc2Vs
ZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgcHJl
ZWRpdCA9IHRleHQ7Ci0gICAgICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9uKHByZWVkaXQs
IHVuZGVybGluZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rp
b24ubGVuZ3RoIDwgMCkgPyBzZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoIDogc2Vs
ZWN0aW9uLnN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0
aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXByZWVkaXQuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCBw
cmVlZGl0Lmxlbmd0aCgpLCAwKTsKLSAgICB9CisgICAgZWxzZSBpZiAoIWhhc1NlbGVjdGlvbiAm
JiAhZXYtPnByZWVkaXRTdHJpbmcoKS5pc0VtcHR5KCkpCisgICAgICAgIGVkaXRvci0+c2V0Q29t
cG9zaXRpb24oZXYtPnByZWVkaXRTdHJpbmcoKSwgdW5kZXJsaW5lcywgMCwgZXYtPnByZWVkaXRT
dHJpbmcoKS5sZW5ndGgoKSk7CiAKICAgICBldi0+YWNjZXB0KCk7CiB9CkBAIC0xMzI5LDkgKzEz
MzIsOCBAQCBRVmFyaWFudCBRV2ViUGFnZTo6aW5wdXRNZXRob2RRdWVyeShRdDo6SW5wdXRNZXRo
b2RRdWVyeSBwcm9wZXJ0eSkgY29uc3QKICAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0Q29udHJv
bCkgewogICAgICAgICAgICAgICAgIFFTdHJpbmcgdGV4dCA9IHJlbmRlclRleHRDb250cm9sLT50
ZXh0KCk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29t
cG9zaXRpb25SYW5nZSgpOwotICAgICAgICAgICAgICAgIGlmIChyYW5nZSkgeworICAgICAgICAg
ICAgICAgIGlmIChyYW5nZSkKICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZW1vdmUocmFuZ2Ut
PnN0YXJ0UG9zaXRpb24oKS5vZmZzZXRJbkNvbnRhaW5lck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpy
YW5nZUxlbmd0aChyYW5nZS5nZXQoKSkpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICByZXR1cm4gUVZhcmlhbnQodGV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBy
ZXR1cm4gUVZhcmlhbnQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM0N2UyMmFmMGQ4MTBmMWY4ZTJhYTQ5MmFlMmI1YmZiYWRk
NDVkOWQuLmNiZWVkZDg4MjcxY2YyZThkODIwNGEyOGY0ZThjMTBjOTBlZTZlZWYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEwLTEwLTE2ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFNl
bmRpbmcgYSBRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9uIGV2ZW50IGZvcmNlcyB0aGUKKyAg
ICAgICAgICAgICBFZGl0b3IgdG8gZ28gaW50byBDb21wb3NpdGlvbiBtb2RlCisKKyAgICAgICAg
SW1wcm92ZSBRV2ViUGFnZSBoYW5kbGluZyBvZiBpbnB1dCBtZXRob2QgZXZlbnRzLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTYyNQorCisgICAg
ICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRN
ZXRob2RFdmVudCk6CisgICAgICAgIChRV2ViUGFnZTo6aW5wdXRNZXRob2RRdWVyeSk6CisgICAg
ICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHRzdF9RV2Vi
UGFnZTo6aW5wdXRNZXRob2RzKToKKwogMjAxMC0xMC0xNSAgUWkgWmhhbmcgIDxxaS4yLnpoYW5n
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgYi9XZWJLaXQv
cXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRleCAwNDYyOTUzZDhjNWUyNGMx
OGFkMzY3NGU0NWY5N2U5MjI1ZDNlOGJiLi4zZDlmY2IyMmRhYTk5MGMyYTk2ZGI1MDZiZWZkNDE4
MmI3YmJjNjRmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJw
YWdlLmNwcAorKysgYi9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcApA
QCAtNzcsNyArNzcsNiBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgY2xlYW51cFRlc3RDYXNl
KCk7CiAKICAgICB2b2lkIGFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KCk7Ci0gICAgdm9pZCBpbmZp
bml0ZUxvb3BKUygpOwogICAgIHZvaWQgZ2VvbG9jYXRpb25SZXF1ZXN0SlMoKTsKICAgICB2b2lk
IGxvYWRGaW5pc2hlZCgpOwogICAgIHZvaWQgYWNjZXB0TmF2aWdhdGlvblJlcXVlc3RXaXRoTmV3
V2luZG93KCk7CkBAIC0xMjgsNiArMTI3LDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHRl
c3RTdG9wU2NoZWR1bGVkUGFnZVJlZnJlc2goKTsKICAgICB2b2lkIGZpbmRUZXh0KCk7CiAgICAg
dm9pZCBzdXBwb3J0ZWRDb250ZW50VHlwZSgpOworICAgIHZvaWQgaW5maW5pdGVMb29wSlMoKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgUVdlYlZpZXcqIG1fdmlldzsKQEAgLTE1MTYsMTEgKzE1MTYs
NiBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6aW5wdXRNZXRob2RzKCkKICAgICBRU3RyaW5nIHNlbGVj
dGlvblZhbHVlID0gdmFyaWFudC52YWx1ZTxRU3RyaW5nPigpOwogICAgIFFDT01QQVJFKHNlbGVj
dGlvblZhbHVlLCBRU3RyaW5nKCJlYiIpKTsKIAotICAgIC8vQ2FuY2VsIGN1cnJlbnQgY29tcG9z
aXRpb24gZmlyc3QKLSAgICBpbnB1dEF0dHJpYnV0ZXMgPDwgUUlucHV0TWV0aG9kRXZlbnQ6OkF0
dHJpYnV0ZShRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9uLCAwLCAwLCBRVmFyaWFudCgpKTsK
LSAgICBRSW5wdXRNZXRob2RFdmVudCBldmVudFNlbGVjdGlvbjIoIiIsaW5wdXRBdHRyaWJ1dGVz
KTsKLSAgICBwYWdlLT5ldmVudCgmZXZlbnRTZWxlY3Rpb24yKTsKLQogICAgIC8vU2V0IHNlbGVj
dGlvbiB3aXRoIG5lZ2F0aXZlIGxlbmd0aAogICAgIGlucHV0QXR0cmlidXRlcyA8PCBRSW5wdXRN
ZXRob2RFdmVudDo6QXR0cmlidXRlKFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb24sIDYsIC01
LCBRVmFyaWFudCgpKTsKICAgICBRSW5wdXRNZXRob2RFdmVudCBldmVudFNlbGVjdGlvbjMoIiIs
aW5wdXRBdHRyaWJ1dGVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70976</attachid>
            <date>2010-10-17 10:16:03 -0700</date>
            <delta_ts>2010-10-21 11:53:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20101017181604.patch</filename>
            <type>text/plain</type>
            <size>6098</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggZDRmMGQ2M2FiYjNiMzNiYzM4YTk3ZmVmNGEwN2UzYzQ1MTg1OTE4
OS4uZGNjZjMyODhjMmQzYWIwYWEwNjBmNTI4NDU5OGZkMmUwZDI1MmMyMyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTEwNDgsOCArMTA0OCwyMyBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRo
b2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb246IHsKLSAgICAg
ICAgICAgIHNlbGVjdGlvbiA9IGE7CiAgICAgICAgICAgICBoYXNTZWxlY3Rpb24gPSB0cnVlOwor
ICAgICAgICAgICAgLy8gQSBzZWxlY3Rpb24gaW4gdGhlIGlucHV0TWV0aG9kRXZlbnQgaXMgYWx3
YXlzIHJlZmxlY3RlZCBpbiB0aGUgdmlzaWJsZSB0ZXh0CisgICAgICAgICAgICBpZiAocmVuZGVy
VGV4dENvbnRyb2wpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJUZXh0Q29udHJvbC0+c2V0U2Vs
ZWN0aW9uU3RhcnQocU1pbihhLnN0YXJ0LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAg
ICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rpb25FbmQocU1heChhLnN0YXJ0
LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoIWV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgZWRp
dG9yLT5zZXRDb21wb3NpdGlvbihldi0+cHJlZWRpdFN0cmluZygpLCB1bmRlcmxpbmVzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5sZW5ndGggPCAwKSA/IGEuc3Rh
cnQgKyBhLmxlbmd0aCA6IGEuc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhLmxlbmd0aCA8IDApID8gYS5zdGFydCA6IGEuc3RhcnQgKyBhLmxlbmd0aCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBpbiB0aGUg
bWlkZGxlIG9mIGEgY29tcG9zaXRpb24sIGFuIGVtcHR5IHByZS1lZGl0IHN0cmluZyBhbmQgYSBz
ZWxlY3Rpb24gb2YgemVybworICAgICAgICAgICAgICAgIC8vIGNhbmNlbHMgdGhlIGN1cnJlbnQg
Y29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICBpZiAoZWRpdG9yLT5oYXNDb21wb3NpdGlvbigp
ICYmIChhLnN0YXJ0ICsgYS5sZW5ndGggPT0gMCkpCisgICAgICAgICAgICAgICAgICAgIGVkaXRv
ci0+c2V0Q29tcG9zaXRpb24oUVN0cmluZygpLCB1bmRlcmxpbmVzLCAwLCAwKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEwNTcs
MjIgKzEwNzIsOCBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudChRSW5w
dXRNZXRob2RFdmVudCAqZXYpCiAKICAgICBpZiAoIWV2LT5jb21taXRTdHJpbmcoKS5pc0VtcHR5
KCkpCiAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKGV2LT5jb21taXRTdHJpbmco
KSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIDEuIGVtcHR5IHByZWVkaXQgd2l0aCBhIHNlbGVj
dGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBjYW5jZWxzIGNvbXBvc2l0aW9uCi0g
ICAgICAgIC8vIDIuIGVtcHR5IHByZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFu
ZCBzdGFydC9lbmQgb2Ygbm9uLTAgdXBkYXRlcyBzZWxlY3Rpb24gb2YgY3VycmVudCBwcmVlZGl0
IHRleHQKLSAgICAgICAgLy8gMy4gcG9wdWxhdGVkIHByZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBh
dHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBvciBub24tMCB1cGRhdGVzIHNlbGVjdGlvbiBv
ZiBzdXBwbGllZCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gNC4gb3RoZXJ3aXNlIGV2ZW50IGlz
IHVwZGF0aW5nIHN1cHBsaWVkIHByZS1lZGl0IHRleHQKLSAgICAgICAgUVN0cmluZyBwcmVlZGl0
ID0gZXYtPnByZWVkaXRTdHJpbmcoKTsKLSAgICAgICAgaWYgKGhhc1NlbGVjdGlvbikgewotICAg
ICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250cm9sKSA/IFFTdHJpbmcocmVu
ZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0gICAgICAgICAgICBpZiAocHJl
ZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCA+IDAp
Ci0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAgICAgICAgICBlZGl0b3ItPnNl
dENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBzZWxlY3Rpb24uc3RhcnQgKyBz
ZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0IDog
c2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXByZWVkaXQuaXNFbXB0eSgpKQotICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbihw
cmVlZGl0LCB1bmRlcmxpbmVzLCBwcmVlZGl0Lmxlbmd0aCgpLCAwKTsKLSAgICB9CisgICAgZWxz
ZSBpZiAoIWhhc1NlbGVjdGlvbiAmJiAhZXYtPnByZWVkaXRTdHJpbmcoKS5pc0VtcHR5KCkpCisg
ICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oZXYtPnByZWVkaXRTdHJpbmcoKSwgdW5kZXJs
aW5lcywgMCwgZXYtPnByZWVkaXRTdHJpbmcoKS5sZW5ndGgoKSk7CiAKICAgICBldi0+YWNjZXB0
KCk7CiB9CkBAIC0xMzI5LDkgKzEzMzAsOCBAQCBRVmFyaWFudCBRV2ViUGFnZTo6aW5wdXRNZXRo
b2RRdWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSBwcm9wZXJ0eSkgY29uc3QKICAgICAgICAgICAg
IGlmIChyZW5kZXJUZXh0Q29udHJvbCkgewogICAgICAgICAgICAgICAgIFFTdHJpbmcgdGV4dCA9
IHJlbmRlclRleHRDb250cm9sLT50ZXh0KCk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwotICAgICAgICAgICAgICAgIGlm
IChyYW5nZSkgeworICAgICAgICAgICAgICAgIGlmIChyYW5nZSkKICAgICAgICAgICAgICAgICAg
ICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5vZmZzZXRJbkNvbnRhaW5lck5v
ZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSkpOwotICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm4gUVZhcmlhbnQodGV4dCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm4gUVZhcmlhbnQoKTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM0N2UyMmFmMGQ4MTBm
MWY4ZTJhYTQ5MmFlMmI1YmZiYWRkNDVkOWQuLmFmZTc4NTU2NTgxMTZjOWFjMzI0ZjA3ZGQ3ZjQ0
OTVmZDhiNTU2MWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEwLTEwLTE3ICBSb2JlcnQgSG9nYW4g
IDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBbUXRdIFNlbmRpbmcgYSBRSW5wdXRNZXRob2RFdmVudDo6U2VsZWN0aW9u
IGV2ZW50IGZvcmNlcyB0aGUKKyAgICAgICAgICAgICBFZGl0b3IgdG8gZ28gaW50byBDb21wb3Np
dGlvbiBtb2RlCisKKyAgICAgICAgSW1wcm92ZSBRV2ViUGFnZSBoYW5kbGluZyBvZiBpbnB1dCBt
ZXRob2QgZXZlbnRzOgorICAgICAgICAgLSBTZWxlY3Rpb25zIGRvbid0IHRyaWdnZXIgZW50ZXJp
bmcgY29tcG9zaXRpb24gbW9kZS4KKyAgICAgICAgIC0gSGFuZGxlIG11bHRpcGxlIHNlbGVjdGlv
bnMKKworICAgICAgICBBbHNvIHJlbW92ZSByZWR1bmRhbnQgY2FuY2VsbGF0aW9uIG9mIGNvbXBv
c2l0aW9uIGluIHRzdF9xd2VicGFnZS4KKyAgICAgICAgVGhlcmUgaXMgbm8gY29tcG9zaXRpb24g
aW4gcHJvZ3Jlc3MgYXQgdGhhdCBwb2ludC4KKworICAgICAgICBGaW5hbGx5LCBtb3ZlIGluZmlu
aXRlTG9vcEpTKCkgdG8gdGhlIGVuZCBvZiB0aGUgdHN0X3F3ZWJwYWdlIHVuaXQKKyAgICAgICAg
dGVzdHMgLSBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBpdCB0byBjb21wbGV0ZSB3aGVu
IHJ1bm5pbmcKKyAgICAgICAgb3RoZXIgdGVzdHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NjI1CisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2Uu
Y3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhvZEV2ZW50KToKKyAgICAg
ICAgKFFXZWJQYWdlOjppbnB1dE1ldGhvZFF1ZXJ5KToKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFn
ZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAodHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMp
OgorCiAyMDEwLTEwLTE1ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVz
dHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCmluZGV4IDA0NjI5NTNkOGM1ZTI0YzE4YWQzNjc0ZTQ1Zjk3ZTkyMjVk
M2U4YmIuLjNkOWZjYjIyZGFhOTkwYzJhOTZkYjUwNmJlZmQ0MTgyYjdiYmM2NGYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1dlYktp
dC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC03Nyw3ICs3Nyw2IEBAIHBy
aXZhdGUgc2xvdHM6CiAgICAgdm9pZCBjbGVhbnVwVGVzdENhc2UoKTsKIAogICAgIHZvaWQgYWNj
ZXB0TmF2aWdhdGlvblJlcXVlc3QoKTsKLSAgICB2b2lkIGluZmluaXRlTG9vcEpTKCk7CiAgICAg
dm9pZCBnZW9sb2NhdGlvblJlcXVlc3RKUygpOwogICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CiAg
ICAgdm9pZCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdFdpdGhOZXdXaW5kb3coKTsKQEAgLTEyOCw2
ICsxMjcsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgdGVzdFN0b3BTY2hlZHVsZWRQYWdl
UmVmcmVzaCgpOwogICAgIHZvaWQgZmluZFRleHQoKTsKICAgICB2b2lkIHN1cHBvcnRlZENvbnRl
bnRUeXBlKCk7CisgICAgdm9pZCBpbmZpbml0ZUxvb3BKUygpOwogICAgIAogcHJpdmF0ZToKICAg
ICBRV2ViVmlldyogbV92aWV3OwpAQCAtMTUxNiwxMSArMTUxNiw2IEBAIHZvaWQgdHN0X1FXZWJQ
YWdlOjppbnB1dE1ldGhvZHMoKQogICAgIFFTdHJpbmcgc2VsZWN0aW9uVmFsdWUgPSB2YXJpYW50
LnZhbHVlPFFTdHJpbmc+KCk7CiAgICAgUUNPTVBBUkUoc2VsZWN0aW9uVmFsdWUsIFFTdHJpbmco
ImViIikpOwogCi0gICAgLy9DYW5jZWwgY3VycmVudCBjb21wb3NpdGlvbiBmaXJzdAotICAgIGlu
cHV0QXR0cmlidXRlcyA8PCBRSW5wdXRNZXRob2RFdmVudDo6QXR0cmlidXRlKFFJbnB1dE1ldGhv
ZEV2ZW50OjpTZWxlY3Rpb24sIDAsIDAsIFFWYXJpYW50KCkpOwotICAgIFFJbnB1dE1ldGhvZEV2
ZW50IGV2ZW50U2VsZWN0aW9uMigiIixpbnB1dEF0dHJpYnV0ZXMpOwotICAgIHBhZ2UtPmV2ZW50
KCZldmVudFNlbGVjdGlvbjIpOwotCiAgICAgLy9TZXQgc2VsZWN0aW9uIHdpdGggbmVnYXRpdmUg
bGVuZ3RoCiAgICAgaW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1ldGhvZEV2ZW50OjpBdHRyaWJ1
dGUoUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlvbiwgNiwgLTUsIFFWYXJpYW50KCkpOwogICAg
IFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uMygiIixpbnB1dEF0dHJpYnV0ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71466</attachid>
            <date>2010-10-21 11:53:47 -0700</date>
            <delta_ts>2010-10-21 12:29:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20101021195345.patch</filename>
            <type>text/plain</type>
            <size>6458</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggZDRmMGQ2M2FiYjNiMzNiYzM4YTk3ZmVmNGEwN2UzYzQ1MTg1OTE4
OS4uZjU0Nzk5ZmJjZWQwNjUyMjUyNzJiYjk2MmZlYmJlNjMzZjA3NjEyZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTEwMDgsNyArMTAwOCw2IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhv
ZEV2ZW50KFFJbnB1dE1ldGhvZEV2ZW50ICpldikKIHsKICAgICBXZWJDb3JlOjpGcmFtZSAqZnJh
bWUgPSBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAg
V2ViQ29yZTo6RWRpdG9yICplZGl0b3IgPSBmcmFtZS0+ZWRpdG9yKCk7Ci0gICAgUUlucHV0TWV0
aG9kRXZlbnQ6OkF0dHJpYnV0ZSBzZWxlY3Rpb24oUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlv
biwgMCwgMCwgUVZhcmlhbnQoKSk7CiAKICAgICBpZiAoIWVkaXRvci0+Y2FuRWRpdCgpKSB7CiAg
ICAgICAgIGV2LT5pZ25vcmUoKTsKQEAgLTEwNDgsOCArMTA0NywyMyBAQCB2b2lkIFFXZWJQYWdl
UHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFFJbnB1dE1ldGhvZEV2ZW50OjpT
ZWxlY3Rpb246IHsKLSAgICAgICAgICAgIHNlbGVjdGlvbiA9IGE7CiAgICAgICAgICAgICBoYXNT
ZWxlY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgLy8gQSBzZWxlY3Rpb24gaW4gdGhlIGlucHV0
TWV0aG9kRXZlbnQgaXMgYWx3YXlzIHJlZmxlY3RlZCBpbiB0aGUgdmlzaWJsZSB0ZXh0CisgICAg
ICAgICAgICBpZiAocmVuZGVyVGV4dENvbnRyb2wpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJU
ZXh0Q29udHJvbC0+c2V0U2VsZWN0aW9uU3RhcnQocU1pbihhLnN0YXJ0LCAoYS5zdGFydCArIGEu
bGVuZ3RoKSkpOworICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rp
b25FbmQocU1heChhLnN0YXJ0LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoIWV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbihldi0+cHJlZWRpdFN0cmluZygp
LCB1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5s
ZW5ndGggPCAwKSA/IGEuc3RhcnQgKyBhLmxlbmd0aCA6IGEuc3RhcnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChhLmxlbmd0aCA8IDApID8gYS5zdGFydCA6IGEuc3Rh
cnQgKyBhLmxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8v
IElmIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY29tcG9zaXRpb24sIGFuIGVtcHR5IHByZS1l
ZGl0IHN0cmluZyBhbmQgYSBzZWxlY3Rpb24gb2YgemVybworICAgICAgICAgICAgICAgIC8vIGNh
bmNlbHMgdGhlIGN1cnJlbnQgY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICBpZiAoZWRpdG9y
LT5oYXNDb21wb3NpdGlvbigpICYmIChhLnN0YXJ0ICsgYS5sZW5ndGggPT0gMCkpCisgICAgICAg
ICAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oUVN0cmluZygpLCB1bmRlcmxpbmVz
LCAwLCAwKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTEwNTcsMjIgKzEwNzEsOCBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5w
dXRNZXRob2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAKICAgICBpZiAoIWV2LT5jb21t
aXRTdHJpbmcoKS5pc0VtcHR5KCkpCiAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9u
KGV2LT5jb21taXRTdHJpbmcoKSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIDEuIGVtcHR5IHBy
ZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBjYW5j
ZWxzIGNvbXBvc2l0aW9uCi0gICAgICAgIC8vIDIuIGVtcHR5IHByZWVkaXQgd2l0aCBhIHNlbGVj
dGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2Ygbm9uLTAgdXBkYXRlcyBzZWxlY3Rpb24g
b2YgY3VycmVudCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gMy4gcG9wdWxhdGVkIHByZWVkaXQg
d2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBvciBub24tMCB1
cGRhdGVzIHNlbGVjdGlvbiBvZiBzdXBwbGllZCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gNC4g
b3RoZXJ3aXNlIGV2ZW50IGlzIHVwZGF0aW5nIHN1cHBsaWVkIHByZS1lZGl0IHRleHQKLSAgICAg
ICAgUVN0cmluZyBwcmVlZGl0ID0gZXYtPnByZWVkaXRTdHJpbmcoKTsKLSAgICAgICAgaWYgKGhh
c1NlbGVjdGlvbikgewotICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250
cm9sKSA/IFFTdHJpbmcocmVuZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBpZiAocHJlZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAg
ICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBz
ZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8g
c2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoIXByZWVkaXQuaXNFbXB0eSgpKQotICAgICAgICAgICAgZWRpdG9y
LT5zZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCBwcmVlZGl0Lmxlbmd0aCgpLCAw
KTsKLSAgICB9CisgICAgZWxzZSBpZiAoIWhhc1NlbGVjdGlvbiAmJiAhZXYtPnByZWVkaXRTdHJp
bmcoKS5pc0VtcHR5KCkpCisgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oZXYtPnByZWVk
aXRTdHJpbmcoKSwgdW5kZXJsaW5lcywgMCwgZXYtPnByZWVkaXRTdHJpbmcoKS5sZW5ndGgoKSk7
CiAKICAgICBldi0+YWNjZXB0KCk7CiB9CkBAIC0xMzI5LDkgKzEzMjksOCBAQCBRVmFyaWFudCBR
V2ViUGFnZTo6aW5wdXRNZXRob2RRdWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSBwcm9wZXJ0eSkg
Y29uc3QKICAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0Q29udHJvbCkgewogICAgICAgICAgICAg
ICAgIFFTdHJpbmcgdGV4dCA9IHJlbmRlclRleHRDb250cm9sLT50ZXh0KCk7CiAgICAgICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwot
ICAgICAgICAgICAgICAgIGlmIChyYW5nZSkgeworICAgICAgICAgICAgICAgIGlmIChyYW5nZSkK
ICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5v
ZmZzZXRJbkNvbnRhaW5lck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5n
ZXQoKSkpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm4gUVZhcmlh
bnQodGV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gUVZhcmlhbnQoKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IGM0N2UyMmFmMGQ4MTBmMWY4ZTJhYTQ5MmFlMmI1YmZiYWRkNDVkOWQuLmFmZTc4NTU2NTgx
MTZjOWFjMzI0ZjA3ZGQ3ZjQ0OTVmZDhiNTU2MWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEwLTEw
LTE3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFNlbmRpbmcgYSBRSW5wdXRNZXRo
b2RFdmVudDo6U2VsZWN0aW9uIGV2ZW50IGZvcmNlcyB0aGUKKyAgICAgICAgICAgICBFZGl0b3Ig
dG8gZ28gaW50byBDb21wb3NpdGlvbiBtb2RlCisKKyAgICAgICAgSW1wcm92ZSBRV2ViUGFnZSBo
YW5kbGluZyBvZiBpbnB1dCBtZXRob2QgZXZlbnRzOgorICAgICAgICAgLSBTZWxlY3Rpb25zIGRv
bid0IHRyaWdnZXIgZW50ZXJpbmcgY29tcG9zaXRpb24gbW9kZS4KKyAgICAgICAgIC0gSGFuZGxl
IG11bHRpcGxlIHNlbGVjdGlvbnMKKworICAgICAgICBBbHNvIHJlbW92ZSByZWR1bmRhbnQgY2Fu
Y2VsbGF0aW9uIG9mIGNvbXBvc2l0aW9uIGluIHRzdF9xd2VicGFnZS4KKyAgICAgICAgVGhlcmUg
aXMgbm8gY29tcG9zaXRpb24gaW4gcHJvZ3Jlc3MgYXQgdGhhdCBwb2ludC4KKworICAgICAgICBG
aW5hbGx5LCBtb3ZlIGluZmluaXRlTG9vcEpTKCkgdG8gdGhlIGVuZCBvZiB0aGUgdHN0X3F3ZWJw
YWdlIHVuaXQKKyAgICAgICAgdGVzdHMgLSBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBp
dCB0byBjb21wbGV0ZSB3aGVuIHJ1bm5pbmcKKyAgICAgICAgb3RoZXIgdGVzdHMuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NjI1CisKKyAgICAg
ICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1l
dGhvZEV2ZW50KToKKyAgICAgICAgKFFXZWJQYWdlOjppbnB1dE1ldGhvZFF1ZXJ5KToKKyAgICAg
ICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAodHN0X1FXZWJQ
YWdlOjppbnB1dE1ldGhvZHMpOgorCiAyMDEwLTEwLTE1ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IDA0NjI5NTNkOGM1ZTI0YzE4
YWQzNjc0ZTQ1Zjk3ZTkyMjVkM2U4YmIuLjNkOWZjYjIyZGFhOTkwYzJhOTZkYjUwNmJlZmQ0MTgy
YjdiYmM2NGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBA
IC03Nyw3ICs3Nyw2IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBjbGVhbnVwVGVzdENhc2Uo
KTsKIAogICAgIHZvaWQgYWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoKTsKLSAgICB2b2lkIGluZmlu
aXRlTG9vcEpTKCk7CiAgICAgdm9pZCBnZW9sb2NhdGlvblJlcXVlc3RKUygpOwogICAgIHZvaWQg
bG9hZEZpbmlzaGVkKCk7CiAgICAgdm9pZCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdFdpdGhOZXdX
aW5kb3coKTsKQEAgLTEyOCw2ICsxMjcsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgdGVz
dFN0b3BTY2hlZHVsZWRQYWdlUmVmcmVzaCgpOwogICAgIHZvaWQgZmluZFRleHQoKTsKICAgICB2
b2lkIHN1cHBvcnRlZENvbnRlbnRUeXBlKCk7CisgICAgdm9pZCBpbmZpbml0ZUxvb3BKUygpOwog
ICAgIAogcHJpdmF0ZToKICAgICBRV2ViVmlldyogbV92aWV3OwpAQCAtMTUxNiwxMSArMTUxNiw2
IEBAIHZvaWQgdHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMoKQogICAgIFFTdHJpbmcgc2VsZWN0
aW9uVmFsdWUgPSB2YXJpYW50LnZhbHVlPFFTdHJpbmc+KCk7CiAgICAgUUNPTVBBUkUoc2VsZWN0
aW9uVmFsdWUsIFFTdHJpbmcoImViIikpOwogCi0gICAgLy9DYW5jZWwgY3VycmVudCBjb21wb3Np
dGlvbiBmaXJzdAotICAgIGlucHV0QXR0cmlidXRlcyA8PCBRSW5wdXRNZXRob2RFdmVudDo6QXR0
cmlidXRlKFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb24sIDAsIDAsIFFWYXJpYW50KCkpOwot
ICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uMigiIixpbnB1dEF0dHJpYnV0ZXMp
OwotICAgIHBhZ2UtPmV2ZW50KCZldmVudFNlbGVjdGlvbjIpOwotCiAgICAgLy9TZXQgc2VsZWN0
aW9uIHdpdGggbmVnYXRpdmUgbGVuZ3RoCiAgICAgaW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1l
dGhvZEV2ZW50OjpBdHRyaWJ1dGUoUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlvbiwgNiwgLTUs
IFFWYXJpYW50KCkpOwogICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uMygiIixp
bnB1dEF0dHJpYnV0ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71472</attachid>
            <date>2010-10-21 12:29:21 -0700</date>
            <delta_ts>2010-10-21 12:53:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39625-20101021202919.patch</filename>
            <type>text/plain</type>
            <size>6458</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAKaW5kZXggZDRmMGQ2M2FiYjNiMzNiYzM4YTk3ZmVmNGEwN2UzYzQ1MTg1OTE4
OS4uZjU0Nzk5ZmJjZWQwNjUyMjUyNzJiYjk2MmZlYmJlNjMzZjA3NjEyZiAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKQEAgLTEwMDgsNyArMTAwOCw2IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhv
ZEV2ZW50KFFJbnB1dE1ldGhvZEV2ZW50ICpldikKIHsKICAgICBXZWJDb3JlOjpGcmFtZSAqZnJh
bWUgPSBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAg
V2ViQ29yZTo6RWRpdG9yICplZGl0b3IgPSBmcmFtZS0+ZWRpdG9yKCk7Ci0gICAgUUlucHV0TWV0
aG9kRXZlbnQ6OkF0dHJpYnV0ZSBzZWxlY3Rpb24oUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlv
biwgMCwgMCwgUVZhcmlhbnQoKSk7CiAKICAgICBpZiAoIWVkaXRvci0+Y2FuRWRpdCgpKSB7CiAg
ICAgICAgIGV2LT5pZ25vcmUoKTsKQEAgLTEwNDgsOCArMTA0NywyMyBAQCB2b2lkIFFXZWJQYWdl
UHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFFJbnB1dE1ldGhvZEV2ZW50OjpT
ZWxlY3Rpb246IHsKLSAgICAgICAgICAgIHNlbGVjdGlvbiA9IGE7CiAgICAgICAgICAgICBoYXNT
ZWxlY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgLy8gQSBzZWxlY3Rpb24gaW4gdGhlIGlucHV0
TWV0aG9kRXZlbnQgaXMgYWx3YXlzIHJlZmxlY3RlZCBpbiB0aGUgdmlzaWJsZSB0ZXh0CisgICAg
ICAgICAgICBpZiAocmVuZGVyVGV4dENvbnRyb2wpIHsKKyAgICAgICAgICAgICAgICByZW5kZXJU
ZXh0Q29udHJvbC0+c2V0U2VsZWN0aW9uU3RhcnQocU1pbihhLnN0YXJ0LCAoYS5zdGFydCArIGEu
bGVuZ3RoKSkpOworICAgICAgICAgICAgICAgIHJlbmRlclRleHRDb250cm9sLT5zZXRTZWxlY3Rp
b25FbmQocU1heChhLnN0YXJ0LCAoYS5zdGFydCArIGEubGVuZ3RoKSkpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoIWV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbihldi0+cHJlZWRpdFN0cmluZygp
LCB1bmRlcmxpbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYS5s
ZW5ndGggPCAwKSA/IGEuc3RhcnQgKyBhLmxlbmd0aCA6IGEuc3RhcnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChhLmxlbmd0aCA8IDApID8gYS5zdGFydCA6IGEuc3Rh
cnQgKyBhLmxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8v
IElmIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY29tcG9zaXRpb24sIGFuIGVtcHR5IHByZS1l
ZGl0IHN0cmluZyBhbmQgYSBzZWxlY3Rpb24gb2YgemVybworICAgICAgICAgICAgICAgIC8vIGNh
bmNlbHMgdGhlIGN1cnJlbnQgY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICBpZiAoZWRpdG9y
LT5oYXNDb21wb3NpdGlvbigpICYmIChhLnN0YXJ0ICsgYS5sZW5ndGggPT0gMCkpCisgICAgICAg
ICAgICAgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oUVN0cmluZygpLCB1bmRlcmxpbmVz
LCAwLCAwKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTEwNTcsMjIgKzEwNzEsOCBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6aW5w
dXRNZXRob2RFdmVudChRSW5wdXRNZXRob2RFdmVudCAqZXYpCiAKICAgICBpZiAoIWV2LT5jb21t
aXRTdHJpbmcoKS5pc0VtcHR5KCkpCiAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9u
KGV2LT5jb21taXRTdHJpbmcoKSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIDEuIGVtcHR5IHBy
ZWVkaXQgd2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBjYW5j
ZWxzIGNvbXBvc2l0aW9uCi0gICAgICAgIC8vIDIuIGVtcHR5IHByZWVkaXQgd2l0aCBhIHNlbGVj
dGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2Ygbm9uLTAgdXBkYXRlcyBzZWxlY3Rpb24g
b2YgY3VycmVudCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gMy4gcG9wdWxhdGVkIHByZWVkaXQg
d2l0aCBhIHNlbGVjdGlvbiBhdHRyaWJ1dGUsIGFuZCBzdGFydC9lbmQgb2YgMCBvciBub24tMCB1
cGRhdGVzIHNlbGVjdGlvbiBvZiBzdXBwbGllZCBwcmVlZGl0IHRleHQKLSAgICAgICAgLy8gNC4g
b3RoZXJ3aXNlIGV2ZW50IGlzIHVwZGF0aW5nIHN1cHBsaWVkIHByZS1lZGl0IHRleHQKLSAgICAg
ICAgUVN0cmluZyBwcmVlZGl0ID0gZXYtPnByZWVkaXRTdHJpbmcoKTsKLSAgICAgICAgaWYgKGhh
c1NlbGVjdGlvbikgewotICAgICAgICAgICAgUVN0cmluZyB0ZXh0ID0gKHJlbmRlclRleHRDb250
cm9sKSA/IFFTdHJpbmcocmVuZGVyVGV4dENvbnRyb2wtPnRleHQoKSkgOiBRU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBpZiAocHJlZWRpdC5pc0VtcHR5KCkgJiYgc2VsZWN0aW9uLnN0YXJ0ICsgc2Vs
ZWN0aW9uLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgcHJlZWRpdCA9IHRleHQ7Ci0gICAg
ICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb24ubGVuZ3RoIDwgMCkgPyBz
ZWxlY3Rpb24uc3RhcnQgKyBzZWxlY3Rpb24ubGVuZ3RoIDogc2VsZWN0aW9uLnN0YXJ0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8g
c2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9uLnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoIXByZWVkaXQuaXNFbXB0eSgpKQotICAgICAgICAgICAgZWRpdG9y
LT5zZXRDb21wb3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCBwcmVlZGl0Lmxlbmd0aCgpLCAw
KTsKLSAgICB9CisgICAgZWxzZSBpZiAoIWhhc1NlbGVjdGlvbiAmJiAhZXYtPnByZWVkaXRTdHJp
bmcoKS5pc0VtcHR5KCkpCisgICAgICAgIGVkaXRvci0+c2V0Q29tcG9zaXRpb24oZXYtPnByZWVk
aXRTdHJpbmcoKSwgdW5kZXJsaW5lcywgMCwgZXYtPnByZWVkaXRTdHJpbmcoKS5sZW5ndGgoKSk7
CiAKICAgICBldi0+YWNjZXB0KCk7CiB9CkBAIC0xMzI5LDkgKzEzMjksOCBAQCBRVmFyaWFudCBR
V2ViUGFnZTo6aW5wdXRNZXRob2RRdWVyeShRdDo6SW5wdXRNZXRob2RRdWVyeSBwcm9wZXJ0eSkg
Y29uc3QKICAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0Q29udHJvbCkgewogICAgICAgICAgICAg
ICAgIFFTdHJpbmcgdGV4dCA9IHJlbmRlclRleHRDb250cm9sLT50ZXh0KCk7CiAgICAgICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwot
ICAgICAgICAgICAgICAgIGlmIChyYW5nZSkgeworICAgICAgICAgICAgICAgIGlmIChyYW5nZSkK
ICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZW1vdmUocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5v
ZmZzZXRJbkNvbnRhaW5lck5vZGUoKSwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5n
ZXQoKSkpOwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm4gUVZhcmlh
bnQodGV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gUVZhcmlhbnQoKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IGM0N2UyMmFmMGQ4MTBmMWY4ZTJhYTQ5MmFlMmI1YmZiYWRkNDVkOWQuLjczNWQ3MGI2MmQ5
NDQ1N2IxZDI4NmEwM2U2OTRhNGFmZTQ5ZTI0M2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEwLTEw
LTE3ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBIYXVzbWFubi4KKworICAgICAgICBbUXRdIFNlbmRpbmcgYSBRSW5wdXRNZXRo
b2RFdmVudDo6U2VsZWN0aW9uIGV2ZW50IGZvcmNlcyB0aGUKKyAgICAgICAgICAgICBFZGl0b3Ig
dG8gZ28gaW50byBDb21wb3NpdGlvbiBtb2RlCisKKyAgICAgICAgSW1wcm92ZSBRV2ViUGFnZSBo
YW5kbGluZyBvZiBpbnB1dCBtZXRob2QgZXZlbnRzOgorICAgICAgICAgLSBTZWxlY3Rpb25zIGRv
bid0IHRyaWdnZXIgZW50ZXJpbmcgY29tcG9zaXRpb24gbW9kZS4KKyAgICAgICAgIC0gSGFuZGxl
IG11bHRpcGxlIHNlbGVjdGlvbnMKKworICAgICAgICBBbHNvIHJlbW92ZSByZWR1bmRhbnQgY2Fu
Y2VsbGF0aW9uIG9mIGNvbXBvc2l0aW9uIGluIHRzdF9xd2VicGFnZS4KKyAgICAgICAgVGhlcmUg
aXMgbm8gY29tcG9zaXRpb24gaW4gcHJvZ3Jlc3MgYXQgdGhhdCBwb2ludC4KKworICAgICAgICBG
aW5hbGx5LCBtb3ZlIGluZmluaXRlTG9vcEpTKCkgdG8gdGhlIGVuZCBvZiB0aGUgdHN0X3F3ZWJw
YWdlIHVuaXQKKyAgICAgICAgdGVzdHMgLSBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB3YWl0IGZvciBp
dCB0byBjb21wbGV0ZSB3aGVuIHJ1bm5pbmcKKyAgICAgICAgb3RoZXIgdGVzdHMuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NjI1CisKKyAgICAg
ICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1l
dGhvZEV2ZW50KToKKyAgICAgICAgKFFXZWJQYWdlOjppbnB1dE1ldGhvZFF1ZXJ5KToKKyAgICAg
ICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAodHN0X1FXZWJQ
YWdlOjppbnB1dE1ldGhvZHMpOgorCiAyMDEwLTEwLTE1ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcCBiL1dlYktpdC9x
dC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IDA0NjI5NTNkOGM1ZTI0YzE4
YWQzNjc0ZTQ1Zjk3ZTkyMjVkM2U4YmIuLjNkOWZjYjIyZGFhOTkwYzJhOTZkYjUwNmJlZmQ0MTgy
YjdiYmM2NGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBA
IC03Nyw3ICs3Nyw2IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBjbGVhbnVwVGVzdENhc2Uo
KTsKIAogICAgIHZvaWQgYWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoKTsKLSAgICB2b2lkIGluZmlu
aXRlTG9vcEpTKCk7CiAgICAgdm9pZCBnZW9sb2NhdGlvblJlcXVlc3RKUygpOwogICAgIHZvaWQg
bG9hZEZpbmlzaGVkKCk7CiAgICAgdm9pZCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdFdpdGhOZXdX
aW5kb3coKTsKQEAgLTEyOCw2ICsxMjcsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgdGVz
dFN0b3BTY2hlZHVsZWRQYWdlUmVmcmVzaCgpOwogICAgIHZvaWQgZmluZFRleHQoKTsKICAgICB2
b2lkIHN1cHBvcnRlZENvbnRlbnRUeXBlKCk7CisgICAgdm9pZCBpbmZpbml0ZUxvb3BKUygpOwog
ICAgIAogcHJpdmF0ZToKICAgICBRV2ViVmlldyogbV92aWV3OwpAQCAtMTUxNiwxMSArMTUxNiw2
IEBAIHZvaWQgdHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMoKQogICAgIFFTdHJpbmcgc2VsZWN0
aW9uVmFsdWUgPSB2YXJpYW50LnZhbHVlPFFTdHJpbmc+KCk7CiAgICAgUUNPTVBBUkUoc2VsZWN0
aW9uVmFsdWUsIFFTdHJpbmcoImViIikpOwogCi0gICAgLy9DYW5jZWwgY3VycmVudCBjb21wb3Np
dGlvbiBmaXJzdAotICAgIGlucHV0QXR0cmlidXRlcyA8PCBRSW5wdXRNZXRob2RFdmVudDo6QXR0
cmlidXRlKFFJbnB1dE1ldGhvZEV2ZW50OjpTZWxlY3Rpb24sIDAsIDAsIFFWYXJpYW50KCkpOwot
ICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uMigiIixpbnB1dEF0dHJpYnV0ZXMp
OwotICAgIHBhZ2UtPmV2ZW50KCZldmVudFNlbGVjdGlvbjIpOwotCiAgICAgLy9TZXQgc2VsZWN0
aW9uIHdpdGggbmVnYXRpdmUgbGVuZ3RoCiAgICAgaW5wdXRBdHRyaWJ1dGVzIDw8IFFJbnB1dE1l
dGhvZEV2ZW50OjpBdHRyaWJ1dGUoUUlucHV0TWV0aG9kRXZlbnQ6OlNlbGVjdGlvbiwgNiwgLTUs
IFFWYXJpYW50KCkpOwogICAgIFFJbnB1dE1ldGhvZEV2ZW50IGV2ZW50U2VsZWN0aW9uMygiIixp
bnB1dEF0dHJpYnV0ZXMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>