<?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>93581</bug_id>
          
          <creation_ts>2012-08-08 22:57:27 -0700</creation_ts>
          <short_desc>Web Inspector: Feature Request - Adding mouse gesture for editing attribute values in elements/css panel</short_desc>
          <delta_ts>2012-08-13 02:33:30 -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>Web Inspector (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="sam">dsam2912</reporter>
          <assigned_to name="sam">dsam2912</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>paulirish</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vivekgalatage</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691235</commentid>
    <comment_count>0</comment_count>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-08 22:57:27 -0700</bug_when>
    <thetext>Right now we have a support of using up/down arrow keys for updating attribute values (for ex updating font size in  font-size: 12px). 
This is also coupled with meta keys for adjusting increment/decrement steps.

It would be more intuitive to enhance this with a mouse based gestures such as mouse scroll (up/down events).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691236</commentid>
    <comment_count>1</comment_count>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-08 22:57:36 -0700</bug_when>
    <thetext>I would like to know suggestions/opinions before starting to work on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691261</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-08 23:28:58 -0700</bug_when>
    <thetext>I like the idea, I was even hacking a patch for it on some holiday. I think once you started using the wheel or Up/Down buttons, or press and hold the Ctrl/Cmd key we should show a range control over the value:
http://www.youtube.com/watch?v=PUv66718DII&amp;t=4m10s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691360</commentid>
    <comment_count>3</comment_count>
      <attachid>157428</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-09 01:58:57 -0700</bug_when>
    <thetext>Created attachment 157428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691362</commentid>
    <comment_count>4</comment_count>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-09 02:03:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I like the idea, I was even hacking a patch for it on some holiday. I think once you started using the wheel or Up/Down buttons, or press and hold the Ctrl/Cmd key we should show a range control over the value:
&gt; http://www.youtube.com/watch?v=PUv66718DII&amp;t=4m10s

Thank you Pavel for your suggestion.

That&apos;s great and interesting way of handling the value modifications. I initially intended to have the mouse scroll as another way of input for value modifications in addition to current keyboard events.

I think your suggestion is again interesting representation. So shall we handle this in the same bug or we should handle in a separate one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692244</commentid>
    <comment_count>5</comment_count>
      <attachid>157428</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-09 23:27:55 -0700</bug_when>
    <thetext>Comment on attachment 157428
Patch

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

r- for small nits.

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:2530
&gt;              if (this._handleNameOrValueUpDown(event)) {

I would leave switch as is.

&gt; Source/WebCore/inspector/front-end/TextPrompt.js:115
&gt; +        this._element.addEventListener(&quot;mousewheel&quot;, this._boundOnKeyDown, false);

You should bind _handleNameOrValueUpDown explicitly (otherwise calling boundOnKeyDown upon mouse event is misleading) and call event.consume(true) from within _handleNameOrValueUpDown instead of doing preventDefault.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:315
&gt; +WebInspector._modifiedHexValue = function(hexString, event, direction)

You should either derive direction and scale from the event or not pass event into this method. Otherwise, you do half work in one place and another half in another!

&gt; Source/WebCore/inspector/front-end/UIUtils.js:350
&gt; +WebInspector._modifiedFloatNumber = function(number, event, direction)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692376</commentid>
    <comment_count>6</comment_count>
      <attachid>157686</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-10 02:23:24 -0700</bug_when>
    <thetext>Created attachment 157686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692383</commentid>
    <comment_count>7</comment_count>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-10 02:30:01 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 157428 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157428&amp;action=review
&gt; 
Thank You Pavel for your review.
&gt; r- for small nits.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:2530
&gt; &gt;              if (this._handleNameOrValueUpDown(event)) {
&gt; 
&gt; I would leave switch as is.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TextPrompt.js:115
&gt; &gt; +        this._element.addEventListener(&quot;mousewheel&quot;, this._boundOnKeyDown, false);
&gt; 
&gt; You should bind _handleNameOrValueUpDown explicitly (otherwise calling boundOnKeyDown upon mouse event is misleading) and call event.consume(true) from within _handleNameOrValueUpDown instead of doing preventDefault.
I have made some changes in TextPrompt as it is a parent object for CSSPropertyPrompt. I have added a generic mouse wheel event listener within text prompt. This can be overridden by CSSPropertyPrompt for handling mouse wheel events for changing attribute values.

Please let me know if this sounds logical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692388</commentid>
    <comment_count>8</comment_count>
      <attachid>157428</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-10 02:35:04 -0700</bug_when>
    <thetext>Comment on attachment 157428
Patch

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

&gt; Source/WebCore/inspector/front-end/UIUtils.js:389
&gt; +            if (event.wheelDelta == 120)

Does this imply you want both horizontal and vertical wheels behave exactly the same?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692402</commentid>
    <comment_count>9</comment_count>
      <attachid>157686</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-10 02:57:43 -0700</bug_when>
    <thetext>Comment on attachment 157686
Patch

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

&gt; Source/WebCore/inspector/front-end/TextPrompt.js:116
&gt; +        this._element.addEventListener(&quot;mousewheel&quot;, this._boundOnMouseWheel, false);

You never remove this listener (see the removal code for this._boundOnKeyDown in detach()). We had a major glitch in one of Chrome releases due to a similar bug (hint: that is the reason why we store the bound listeners as fields). r- for this.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:318
&gt; +    if (event.type &amp;&amp; event.type === &quot;mousewheel&quot;) {

The first check (event.type) is not necessary here.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:319
&gt; +        if (event.wheelDelta == 120)

This check can fail in certain cases, since 120 is a single tick multiplier, and it is possible for a wheelDelta to contain several ticks. Also, 120 is based on the Windows port, and this may break in the future/for other ports. E.g. chrome/src/ui/views/events/event.cc:

#if defined(OS_WIN)
// This value matches windows WHEEL_DELTA.
// static
const int MouseWheelEvent::kWheelDelta = 120;
#else
// This value matches GTK+ wheel scroll amount.
const int MouseWheelEvent::kWheelDelta = 53;
#endif

&gt; Source/WebCore/inspector/front-end/UIUtils.js:410
&gt; +    var mouseWheelScroll = (event.type &amp;&amp; event.type === &quot;mousewheel&quot;)

The &quot;event.type&quot; check is extraneous.
Also, a trailing semicolon is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692447</commentid>
    <comment_count>10</comment_count>
      <attachid>157703</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-10 04:38:52 -0700</bug_when>
    <thetext>Created attachment 157703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692459</commentid>
    <comment_count>11</comment_count>
      <attachid>157707</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-10 04:58:28 -0700</bug_when>
    <thetext>Created attachment 157707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692538</commentid>
    <comment_count>12</comment_count>
      <attachid>157707</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-10 06:43:16 -0700</bug_when>
    <thetext>Comment on attachment 157707
Patch

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

&gt; Source/WebCore/inspector/front-end/TextPrompt.js:228
&gt; +        return;

Such &quot;return&quot;s usually do not have rich semantics in JS :)

&gt; Source/WebCore/inspector/front-end/UIUtils.js:314
&gt; +  */

add &quot;@return {string}&quot; here

&gt; Source/WebCore/inspector/front-end/UIUtils.js:315
&gt; +WebInspector._valueModificationDirection = function(event)

This needs to be fixed to account for the zero event.wheelDeltaY value (as we discussed in chat, you don&apos;t want to handle the horizontal scrolling). See comments below.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:317
&gt; +    var direction = false;

Please use &quot;null&quot; instead of &quot;false&quot; to be type-consistent

&gt; Source/WebCore/inspector/front-end/UIUtils.js:319
&gt; +        if (Math.abs(event.wheelDeltaY) == event.wheelDeltaY)

Please use simpler checks:

if (event.wheelDeltaY &gt; 0)
    direction = &quot;Up&quot;;
else if (event.wheelDeltaY &lt; 0)
    direction = &quot;Down&quot;;

&gt; Source/WebCore/inspector/front-end/UIUtils.js:326
&gt; +        else if(event.keyIdentifier === &quot;Down&quot; || event.keyIdentifier === &quot;PageDown&quot;)

missing whitespace after &quot;if&quot;

&gt; Source/WebCore/inspector/front-end/UIUtils.js:339
&gt;      var number = parseInt(hexString, 16);

Add

if (!direction)
    return hexString;

before this line. You don&apos;t want to handle horizontal mouse scrolling.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:375
&gt; +    var arrowKeyOrMouseWheelEvent = (event.keyIdentifier === &quot;Up&quot; || event.keyIdentifier === &quot;Down&quot; || event.type === &quot;mousewheel&quot;);

Add

if (!direction)
    return number;

before this line. You don&apos;t want to handle horizontal mouse scrolling.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:410
&gt; +    var mouseWheelScroll = (event.type === &quot;mousewheel&quot;);

You don&apos;t need this var.

&gt; Source/WebCore/inspector/front-end/UIUtils.js:411
&gt; +    if (!arrowKeyPressed &amp;&amp; !pageKeyPressed &amp;&amp; !mouseWheelScroll)

if (!arrowKeyOrMouseWheelEvent &amp;&amp; !pageKeyPressed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693383</commentid>
    <comment_count>13</comment_count>
      <attachid>157921</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-12 22:56:42 -0700</bug_when>
    <thetext>Created attachment 157921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693388</commentid>
    <comment_count>14</comment_count>
      <attachid>157921</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-12 23:18:24 -0700</bug_when>
    <thetext>Comment on attachment 157921
Patch

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

Great work! Please fix the two nits, and we are good to land.

&gt; Source/WebCore/inspector/front-end/TextPrompt.js:228
&gt; +        // Default.  

Comments of this kind should be omitted, since WebKit discourages comments that add no value to the code (and sometimes it even discourages the comments that do :)). If you feel strongly about having a comment here, it should be something more useful, like &quot;// Subclasses can implement.&quot; Even though I would go with no comment at all (since the point is clear to the code readers.)

&gt; Source/WebCore/inspector/front-end/UIUtils.js:314
&gt; +  * @return {string}

Apologies, that was my fault: this line should actually be &quot;@return {?string}&quot; (add the question-mark), since the returned value is nullable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693402</commentid>
    <comment_count>15</comment_count>
      <attachid>157927</attachid>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-12 23:45:07 -0700</bug_when>
    <thetext>Created attachment 157927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693449</commentid>
    <comment_count>16</comment_count>
    <who name="sam">dsam2912</who>
    <bug_when>2012-08-13 01:35:34 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 157921 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157921&amp;action=review
&gt; 
&gt; Great work! Please fix the two nits, and we are good to land.
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/TextPrompt.js:228
&gt; &gt; +        // Default.  
&gt; 
&gt; Comments of this kind should be omitted, since WebKit discourages comments that add no value to the code (and sometimes it even discourages the comments that do :)). If you feel strongly about having a comment here, it should be something more useful, like &quot;// Subclasses can implement.&quot; Even though I would go with no comment at all (since the point is clear to the code readers.)
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/UIUtils.js:314
&gt; &gt; +  * @return {string}
&gt; 
&gt; Apologies, that was my fault: this line should actually be &quot;@return {?string}&quot; (add the question-mark), since the returned value is nullable.

Thanks for the review Alexander. Have incorporated the review comments in modified patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693470</commentid>
    <comment_count>17</comment_count>
      <attachid>157927</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-08-13 02:17:34 -0700</bug_when>
    <thetext>Comment on attachment 157927
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693483</commentid>
    <comment_count>18</comment_count>
      <attachid>157927</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 02:33:25 -0700</bug_when>
    <thetext>Comment on attachment 157927
Patch

Clearing flags on attachment: 157927

Committed r125402: &lt;http://trac.webkit.org/changeset/125402&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693484</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 02:33:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157428</attachid>
            <date>2012-08-09 01:58:57 -0700</date>
            <delta_ts>2012-08-10 02:35:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120809142715.patch</filename>
            <type>text/plain</type>
            <size>7551</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTE2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA4LTA5ICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBp
biBhdHRyaWJ1dGVzIGluIGVsZW1lbnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBt
b3VzZSBnZXN0dXJlcyBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhh
bmRsaW5nIG1vdXNld2hlZWwgZXZlbnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanM6CisgICAgICAgIGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGlu
ZyBtb3VzZSBldmVudCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ug
d2hlZWwKKyAgICAgICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLl9tb2RpZmllZEhleFZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fbW9kaWZp
ZWRGbG9hdE51bWJlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaGFuZGxlRWxlbWVudFZhbHVl
TW9kaWZpY2F0aW9ucyk6CisKIDIwMTItMDgtMDkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIHNob3VsZCBub3Qg
YmUgZmlyZWQgaW5zaWRlIHNoYWRvd3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwkocmV2aXNpb24gMTI1
MDE5KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFy
UGFuZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjUyMiwxNiArMjUyMiwxNSBAQCBXZWJJbnNwZWN0
b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJh
clBhbmUuQ1NTUHJvcGVydHlQcm9tcHQucHJvdG90eXBlID0gewogICAgIG9uS2V5RG93bjogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUlkZW50aWZpZXIp
IHsKLSAgICAgICAgY2FzZSAiVXAiOgotICAgICAgICBjYXNlICJEb3duIjoKLSAgICAgICAgY2Fz
ZSAiUGFnZVVwIjoKLSAgICAgICAgY2FzZSAiUGFnZURvd24iOgorICAgICAgICBpZiAoZXZlbnQu
a2V5SWRlbnRpZmllciA9PT0gIlVwIiAKKyAgICAgICAgICAgIHx8IGV2ZW50LmtleUlkZW50aWZp
ZXIgPT09ICJEb3duIgorICAgICAgICAgICAgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBh
Z2VVcCIKKyAgICAgICAgICAgIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIK
KyAgICAgICAgICAgIHx8IChldmVudC50eXBlICYmIGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVs
IikpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9oYW5kbGVOYW1lT3JWYWx1ZVVwRG93bihldmVu
dCkpIHsKICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uS2V5RG93
bi5jYWxsKHRoaXMsIGV2ZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dFByb21wdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTEyLDYgKzExMiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbktleURvd24sIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0U3Rh
cnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFzc05h
bWUgPT09ICJzdHJpbmciKQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9VSVV0aWxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVUlVdGlscy5qcwkocmV2aXNpb24gMTI1MDE5KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTIsMTggKzMx
MiwxOCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVWYWx1ZURlbGltaXRlcnMgPSAiIFx4CiAgKiBAcGFy
YW0ge3N0cmluZ30gaGV4U3RyaW5nCiAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAogICovCi1XZWJJ
bnNwZWN0b3IuX21vZGlmaWVkSGV4VmFsdWUgPSBmdW5jdGlvbihoZXhTdHJpbmcsIGV2ZW50KQor
V2ViSW5zcGVjdG9yLl9tb2RpZmllZEhleFZhbHVlID0gZnVuY3Rpb24oaGV4U3RyaW5nLCBldmVu
dCwgZGlyZWN0aW9uKQogewogICAgIHZhciBudW1iZXIgPSBwYXJzZUludChoZXhTdHJpbmcsIDE2
KTsKICAgICBpZiAoaXNOYU4obnVtYmVyKSB8fCAhaXNGaW5pdGUobnVtYmVyKSkKICAgICAgICAg
cmV0dXJuIGhleFN0cmluZzsKIAogICAgIHZhciBtYXhWYWx1ZSA9IE1hdGgucG93KDE2LCBoZXhT
dHJpbmcubGVuZ3RoKSAtIDE7Ci0gICAgdmFyIGFycm93S2V5UHJlc3NlZCA9IChldmVudC5rZXlJ
ZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIik7Cisg
ICAgdmFyIGFycm93S2V5T3JNb3VzZUFjdGlvbiA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAi
VXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8fCBldmVudC50eXBlID09PSAi
bW91c2V3aGVlbCIpOwogCiAgICAgdmFyIGRlbHRhOwotICAgIGlmIChhcnJvd0tleVByZXNzZWQp
Ci0gICAgICAgIGRlbHRhID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIpID8gMSA6IC0x
OworICAgIGlmIChhcnJvd0tleU9yTW91c2VBY3Rpb24pCisgICAgICAgIGRlbHRhID0gKGRpcmVj
dGlvbiA9PT0gIlVwIikgPyAxIDogLTE7CiAgICAgZWxzZQogICAgICAgICBkZWx0YSA9IChldmVu
dC5rZXlJZGVudGlmaWVyID09PSAiUGFnZVVwIikgPyAxNiA6IC0xNjsKIApAQCAtMzQ3LDIxICsz
NDcsMjEgQEAgV2ViSW5zcGVjdG9yLl9tb2RpZmllZEhleFZhbHVlID0gZnVuY3RpbwogICogQHBh
cmFtIHtudW1iZXJ9IG51bWJlcgogICogQHBhcmFtIHtFdmVudH0gZXZlbnQKICAqLwotV2ViSW5z
cGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyID0gZnVuY3Rpb24obnVtYmVyLCBldmVudCkKK1dl
Ykluc3BlY3Rvci5fbW9kaWZpZWRGbG9hdE51bWJlciA9IGZ1bmN0aW9uKG51bWJlciwgZXZlbnQs
IGRpcmVjdGlvbikKIHsKLSAgICB2YXIgYXJyb3dLZXlQcmVzc2VkID0gKGV2ZW50LmtleUlkZW50
aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iKTsKKyAgICB2
YXIgYXJyb3dLZXlPck1vdXNlQWN0aW9uID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIg
fHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5cGUgPT09ICJtb3Vz
ZXdoZWVsIik7CiAKICAgICAvLyBKdW1wIGJ5IDEwIHdoZW4gc2hpZnQgaXMgZG93biBvciBqdW1w
IGJ5IDAuMSB3aGVuIEFsdC9PcHRpb24gaXMgZG93bi4KICAgICAvLyBBbHNvIGp1bXAgYnkgMTAg
Zm9yIHBhZ2UgdXAgYW5kIGRvd24sIG9yIGJ5IDEwMCBpZiBzaGlmdCBpcyBoZWxkIHdpdGggYSBw
YWdlIGtleS4KICAgICB2YXIgY2hhbmdlQW1vdW50ID0gMTsKLSAgICBpZiAoZXZlbnQuc2hpZnRL
ZXkgJiYgIWFycm93S2V5UHJlc3NlZCkKKyAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgIWFycm93
S2V5T3JNb3VzZUFjdGlvbikKICAgICAgICAgY2hhbmdlQW1vdW50ID0gMTAwOwotICAgIGVsc2Ug
aWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFhcnJvd0tleVByZXNzZWQpCisgICAgZWxzZSBpZiAoZXZl
bnQuc2hpZnRLZXkgfHwgIWFycm93S2V5T3JNb3VzZUFjdGlvbikKICAgICAgICAgY2hhbmdlQW1v
dW50ID0gMTA7CiAgICAgZWxzZSBpZiAoZXZlbnQuYWx0S2V5KQogICAgICAgICBjaGFuZ2VBbW91
bnQgPSAwLjE7CiAKLSAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iIHx8IGV2
ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIpCisgICAgaWYgKGRpcmVjdGlvbiA9PT0g
IkRvd24iKQogICAgICAgICBjaGFuZ2VBbW91bnQgKj0gLTE7CiAKICAgICAvLyBNYWtlIHRoZSBu
ZXcgbnVtYmVyIGFuZCBjb25zdHJhaW4gaXQgdG8gYSBwcmVjaXNpb24gb2YgNiwgdGhpcyBtYXRj
aGVzIG51bWJlcnMgdGhlIGVuZ2luZSByZXR1cm5zLgpAQCAtMzgyLDkgKzM4MiwyNSBAQCBXZWJJ
bnNwZWN0b3IuX21vZGlmaWVkRmxvYXROdW1iZXIgPSBmdW5jCiAgKi8KIFdlYkluc3BlY3Rvci5o
YW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zID0gZnVuY3Rpb24oZXZlbnQsIGVsZW1lbnQs
IGZpbmlzaEhhbmRsZXIsIHN1Z2dlc3Rpb25IYW5kbGVyLCBjdXN0b21OdW1iZXJIYW5kbGVyKQog
ewotICAgIHZhciBhcnJvd0tleVByZXNzZWQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVw
IiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIpOwotICAgIHZhciBwYWdlS2V5UHJl
c3NlZCA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZVVwIiB8fCBldmVudC5rZXlJZGVu
dGlmaWVyID09PSAiUGFnZURvd24iKTsKLSAgICBpZiAoIWFycm93S2V5UHJlc3NlZCAmJiAhcGFn
ZUtleVByZXNzZWQpCisgICAgZnVuY3Rpb24gZ2V0RGlyZWN0aW9uKCkKKyAgICB7CisgICAgICAg
IHZhciBkaXJlY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgaWYgKGV2ZW50LnR5cGUgJiYgZXZlbnQu
dHlwZSA9PT0gIm1vdXNld2hlZWwiKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQud2hlZWxEZWx0
YSA9PSAxMjApCisgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgICAg
IGVsc2UgaWYoZXZlbnQud2hlZWxEZWx0YSA9PSAtMTIwKQorICAgICAgICAgICAgICAgIGRpcmVj
dGlvbiA9ICJEb3duIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChldmVudC5r
ZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlVXAi
KQorICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJVcCI7CisgICAgICAgICAgICBlbHNlIGlm
KGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09
PSAiUGFnZURvd24iKQorICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJEb3duIjsgICAgICAg
IAorICAgICAgICB9CisgICAgICAgIHJldHVybiBkaXJlY3Rpb247CisgICAgfQorCisgICAgdmFy
IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbigpOyAKKyAgICBpZiAoIWRpcmVjdGlvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsKQEAgLTQxMCw3ICs0MjYsNyBAQCBXZWJJbnNwZWN0b3IuaGFuZGxlRWxlbWVudFZhbHVl
TW9kaWZpY2F0CiAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGgpIHsKICAgICAgICAg
cHJlZml4ID0gbWF0Y2hlc1sxXTsKICAgICAgICAgc3VmZml4ID0gbWF0Y2hlc1szXTsKLSAgICAg
ICAgbnVtYmVyID0gV2ViSW5zcGVjdG9yLl9tb2RpZmllZEhleFZhbHVlKG1hdGNoZXNbMl0sIGV2
ZW50KTsKKyAgICAgICAgbnVtYmVyID0gV2ViSW5zcGVjdG9yLl9tb2RpZmllZEhleFZhbHVlKG1h
dGNoZXNbMl0sIGV2ZW50LCBkaXJlY3Rpb24pOwogICAgICAgICAKICAgICAgICAgaWYgKGN1c3Rv
bU51bWJlckhhbmRsZXIpCiAgICAgICAgICAgICBudW1iZXIgPSBjdXN0b21OdW1iZXJIYW5kbGVy
KG51bWJlcik7CkBAIC00MjEsNyArNDM3LDcgQEAgV2ViSW5zcGVjdG9yLmhhbmRsZUVsZW1lbnRW
YWx1ZU1vZGlmaWNhdAogICAgICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCkgewog
ICAgICAgICAgICAgcHJlZml4ID0gbWF0Y2hlc1sxXTsKICAgICAgICAgICAgIHN1ZmZpeCA9IG1h
dGNoZXNbM107Ci0gICAgICAgICAgICBudW1iZXIgPSBXZWJJbnNwZWN0b3IuX21vZGlmaWVkRmxv
YXROdW1iZXIocGFyc2VGbG9hdChtYXRjaGVzWzJdKSwgZXZlbnQpOworICAgICAgICAgICAgbnVt
YmVyID0gV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKHBhcnNlRmxvYXQobWF0Y2hl
c1syXSksIGV2ZW50LCBkaXJlY3Rpb24pOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBO
ZWVkIHRvIGNoZWNrIGZvciBudWxsIGV4cGxpY2l0bHkuCiAgICAgICAgICAgICBpZiAobnVtYmVy
ID09PSBudWxsKSAgICAgICAgICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157686</attachid>
            <date>2012-08-10 02:23:24 -0700</date>
            <delta_ts>2012-08-10 04:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120810145140.patch</filename>
            <type>text/plain</type>
            <size>7213</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRvIG1vZGlmeSB2YWx1ZXNBZGRpbmcg
c3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGluIGVsZW1l
bnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBtb3VzZSBnZXN0dXJlcyBhcyB3ZWxs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhhbmRsaW5nIG1vdXNld2hlZWwgZXZl
bnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanM6CisgICAgICAg
IGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uTW91c2VXaGVlbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGluZyBtb3VzZSBldmVu
dCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ugd2hlZWwKKyAgICAg
ICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5zcGVjdG9yLl92YWx1
ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX21vZGlmaWVk
SGV4VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zKToK
KwogMjAxMi0wOC0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGltcGxlbWVudCBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1MzcsNiArMjUzNywx
NSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbktleURvd24uY2FsbCh0aGlzLCBldmVu
dCk7CiAgICAgfSwKIAorICAgIG9uTW91c2VXaGVlbDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5faGFuZGxlTmFtZU9yVmFsdWVVcERvd24oZXZlbnQpKSB7CisgICAg
ICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbk1vdXNlV2hl
ZWwuY2FsbCh0aGlzLCBldmVudCk7CisgICAgfSwKKwogICAgIHRhYktleVByZXNzZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCShy
ZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCiAgICAgICAgIHRoaXMuX2JvdW5kT25LZXlEb3duID0gdGhpcy5vbktleURvd24uYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwgPSB0aGlzLm9uTW91c2VX
aGVlbC5iaW5kKHRoaXMpOwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdFN0YXJ0ID0gdGhpcy5f
c2VsZWN0U3RhcnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fcHJveHlFbGVtZW50ID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgdGhpcy5f
cHJveHlFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl9wcm94eUVsZW1lbnREaXNwbGF5OwpA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFz
c05hbWUgPT09ICJzdHJpbmciKQpAQCAtMjIwLDYgKzIyMiwxMiBAQCBXZWJJbnNwZWN0b3IuVGV4
dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisg
ICAgb25Nb3VzZVdoZWVsOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGV2ZW50LmNv
bnN1bWUodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9LAorCiAgICAgb25LZXlEb3duOiBm
dW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCShyZXZp
c2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRp
bHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwOCwyMiArMzA4LDQ0IEBAIFdlYkluc3BlY3Rvci5D
U1NOdW1iZXJSZWdleCA9IC9eKC0/KD86XGQKIAogV2ViSW5zcGVjdG9yLlN0eWxlVmFsdWVEZWxp
bWl0ZXJzID0gIiBceEEwXHRcblwiJzo7LC8oKSI7CiAKKworLyoqCisgICogQHBhcmFtIHtFdmVu
dH0gZXZlbnQKKyAgKi8KK1dlYkluc3BlY3Rvci5fdmFsdWVNb2RpZmljYXRpb25EaXJlY3Rpb24g
PSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgZGlyZWN0aW9uID0gZmFsc2U7CisgICAgaWYg
KGV2ZW50LnR5cGUgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNld2hlZWwiKSB7CisgICAgICAgIGlm
IChldmVudC53aGVlbERlbHRhID09IDEyMCkKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJVcCI7
CisgICAgICAgIGVsc2UgaWYoZXZlbnQud2hlZWxEZWx0YSA9PSAtMTIwKQorICAgICAgICAgICAg
ZGlyZWN0aW9uID0gIkRvd24iOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChldmVudC5rZXlJ
ZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlVXAiKQor
ICAgICAgICAgICAgZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgZWxzZSBpZihldmVudC5rZXlJ
ZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VEb3du
IikKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9ICJEb3duIjsgICAgICAgIAorICAgIH0KKyAgICBy
ZXR1cm4gZGlyZWN0aW9uOworfQorCiAvKioKICAqIEBwYXJhbSB7c3RyaW5nfSBoZXhTdHJpbmcK
ICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CiAgKi8KIFdlYkluc3BlY3Rvci5fbW9kaWZpZWRIZXhW
YWx1ZSA9IGZ1bmN0aW9uKGhleFN0cmluZywgZXZlbnQpCiB7CisgICAgdmFyIGRpcmVjdGlvbiA9
IFdlYkluc3BlY3Rvci5fdmFsdWVNb2RpZmljYXRpb25EaXJlY3Rpb24oZXZlbnQpOyAKICAgICB2
YXIgbnVtYmVyID0gcGFyc2VJbnQoaGV4U3RyaW5nLCAxNik7CiAgICAgaWYgKGlzTmFOKG51bWJl
cikgfHwgIWlzRmluaXRlKG51bWJlcikpCiAgICAgICAgIHJldHVybiBoZXhTdHJpbmc7CiAKICAg
ICB2YXIgbWF4VmFsdWUgPSBNYXRoLnBvdygxNiwgaGV4U3RyaW5nLmxlbmd0aCkgLSAxOwotICAg
IHZhciBhcnJvd0tleVByZXNzZWQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBl
dmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIpOworICAgIHZhciBhcnJvd0tleU9yTW91c2VX
aGVlbEV2ZW50ID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVsIik7CiAKICAg
ICB2YXIgZGVsdGE7Ci0gICAgaWYgKGFycm93S2V5UHJlc3NlZCkKLSAgICAgICAgZGVsdGEgPSAo
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIikgPyAxIDogLTE7CisgICAgaWYgKGFycm93S2V5
T3JNb3VzZVdoZWVsRXZlbnQpCisgICAgICAgIGRlbHRhID0gKGRpcmVjdGlvbiA9PT0gIlVwIikg
PyAxIDogLTE7CiAgICAgZWxzZQogICAgICAgICBkZWx0YSA9IChldmVudC5rZXlJZGVudGlmaWVy
ID09PSAiUGFnZVVwIikgPyAxNiA6IC0xNjsKIApAQCAtMzQ5LDE5ICszNzEsMjAgQEAgV2ViSW5z
cGVjdG9yLl9tb2RpZmllZEhleFZhbHVlID0gZnVuY3RpbwogICovCiBXZWJJbnNwZWN0b3IuX21v
ZGlmaWVkRmxvYXROdW1iZXIgPSBmdW5jdGlvbihudW1iZXIsIGV2ZW50KQogewotICAgIHZhciBh
cnJvd0tleVByZXNzZWQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBldmVudC5r
ZXlJZGVudGlmaWVyID09PSAiRG93biIpOworICAgIHZhciBkaXJlY3Rpb24gPSBXZWJJbnNwZWN0
b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9uKGV2ZW50KTsgCisgICAgdmFyIGFycm93S2V5
T3JNb3VzZVdoZWVsRXZlbnQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBldmVu
dC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQudHlwZSA9PT0gIm1vdXNld2hlZWwi
KTsKIAogICAgIC8vIEp1bXAgYnkgMTAgd2hlbiBzaGlmdCBpcyBkb3duIG9yIGp1bXAgYnkgMC4x
IHdoZW4gQWx0L09wdGlvbiBpcyBkb3duLgogICAgIC8vIEFsc28ganVtcCBieSAxMCBmb3IgcGFn
ZSB1cCBhbmQgZG93biwgb3IgYnkgMTAwIGlmIHNoaWZ0IGlzIGhlbGQgd2l0aCBhIHBhZ2Uga2V5
LgogICAgIHZhciBjaGFuZ2VBbW91bnQgPSAxOwotICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAh
YXJyb3dLZXlQcmVzc2VkKQorICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAhYXJyb3dLZXlPck1v
dXNlV2hlZWxFdmVudCkKICAgICAgICAgY2hhbmdlQW1vdW50ID0gMTAwOwotICAgIGVsc2UgaWYg
KGV2ZW50LnNoaWZ0S2V5IHx8ICFhcnJvd0tleVByZXNzZWQpCisgICAgZWxzZSBpZiAoZXZlbnQu
c2hpZnRLZXkgfHwgIWFycm93S2V5T3JNb3VzZVdoZWVsRXZlbnQpCiAgICAgICAgIGNoYW5nZUFt
b3VudCA9IDEwOwogICAgIGVsc2UgaWYgKGV2ZW50LmFsdEtleSkKICAgICAgICAgY2hhbmdlQW1v
dW50ID0gMC4xOwogCi0gICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8fCBl
dmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZURvd24iKQorICAgIGlmIChkaXJlY3Rpb24gPT09
ICJEb3duIikKICAgICAgICAgY2hhbmdlQW1vdW50ICo9IC0xOwogCiAgICAgLy8gTWFrZSB0aGUg
bmV3IG51bWJlciBhbmQgY29uc3RyYWluIGl0IHRvIGEgcHJlY2lzaW9uIG9mIDYsIHRoaXMgbWF0
Y2hlcyBudW1iZXJzIHRoZSBlbmdpbmUgcmV0dXJucy4KQEAgLTM4NCw3ICs0MDcsOCBAQCBXZWJJ
bnNwZWN0b3IuaGFuZGxlRWxlbWVudFZhbHVlTW9kaWZpY2F0CiB7CiAgICAgdmFyIGFycm93S2V5
UHJlc3NlZCA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50
aWZpZXIgPT09ICJEb3duIik7CiAgICAgdmFyIHBhZ2VLZXlQcmVzc2VkID0gKGV2ZW50LmtleUlk
ZW50aWZpZXIgPT09ICJQYWdlVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93
biIpOwotICAgIGlmICghYXJyb3dLZXlQcmVzc2VkICYmICFwYWdlS2V5UHJlc3NlZCkKKyAgICB2
YXIgbW91c2VXaGVlbFNjcm9sbCA9IChldmVudC50eXBlICYmIGV2ZW50LnR5cGUgPT09ICJtb3Vz
ZXdoZWVsIikKKyAgICBpZiAoIWFycm93S2V5UHJlc3NlZCAmJiAhcGFnZUtleVByZXNzZWQgJiYg
IW1vdXNlV2hlZWxTY3JvbGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHZhciBzZWxl
Y3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157703</attachid>
            <date>2012-08-10 04:38:52 -0700</date>
            <delta_ts>2012-08-10 04:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120810170708.patch</filename>
            <type>text/plain</type>
            <size>7701</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRvIG1vZGlmeSB2YWx1ZXNBZGRpbmcg
c3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGluIGVsZW1l
bnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBtb3VzZSBnZXN0dXJlcyBhcyB3ZWxs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhhbmRsaW5nIG1vdXNld2hlZWwgZXZl
bnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanM6CisgICAgICAg
IGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uTW91c2VXaGVlbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGluZyBtb3VzZSBldmVu
dCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ugd2hlZWwKKyAgICAg
ICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5zcGVjdG9yLl92YWx1
ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX21vZGlmaWVk
SGV4VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zKToK
KwogMjAxMi0wOC0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGltcGxlbWVudCBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1MzcsNiArMjUzNywx
NSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbktleURvd24uY2FsbCh0aGlzLCBldmVu
dCk7CiAgICAgfSwKIAorICAgIG9uTW91c2VXaGVlbDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5faGFuZGxlTmFtZU9yVmFsdWVVcERvd24oZXZlbnQpKSB7CisgICAg
ICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbk1vdXNlV2hl
ZWwuY2FsbCh0aGlzLCBldmVudCk7CisgICAgfSwKKwogICAgIHRhYktleVByZXNzZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCShy
ZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCiAgICAgICAgIHRoaXMuX2JvdW5kT25LZXlEb3duID0gdGhpcy5vbktleURvd24uYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwgPSB0aGlzLm9uTW91c2VX
aGVlbC5iaW5kKHRoaXMpOwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdFN0YXJ0ID0gdGhpcy5f
c2VsZWN0U3RhcnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fcHJveHlFbGVtZW50ID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgdGhpcy5f
cHJveHlFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl9wcm94eUVsZW1lbnREaXNwbGF5OwpA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFz
c05hbWUgPT09ICJzdHJpbmciKQpAQCAtMTI3LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQucGFyZW50RWxl
bWVudC5yZW1vdmVDaGlsZCh0aGlzLnByb3h5RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhpcy5fZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURvd24sIGZh
bHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXdo
ZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Byb3h5RWxlbWVudDsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpOwpA
QCAtMjIwLDYgKzIyMywxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgb25Nb3VzZVdoZWVsOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybjsKKyAgICB9LAorCiAgICAgb25LZXlE
b3duOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpz
CShyZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1VJVXRpbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwOCwyMiArMzA4LDQ0IEBAIFdlYkluc3Bl
Y3Rvci5DU1NOdW1iZXJSZWdleCA9IC9eKC0/KD86XGQKIAogV2ViSW5zcGVjdG9yLlN0eWxlVmFs
dWVEZWxpbWl0ZXJzID0gIiBceEEwXHRcblwiJzo7LC8oKSI7CiAKKworLyoqCisgICogQHBhcmFt
IHtFdmVudH0gZXZlbnQKKyAgKi8KK1dlYkluc3BlY3Rvci5fdmFsdWVNb2RpZmljYXRpb25EaXJl
Y3Rpb24gPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgZGlyZWN0aW9uID0gZmFsc2U7Cisg
ICAgaWYgKGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVsIikgeworICAgICAgICBpZiAoTWF0aC5h
YnMoZXZlbnQud2hlZWxEZWx0YVkpID09IGV2ZW50LndoZWVsRGVsdGFZKQorICAgICAgICAgICAg
ZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9
ICJEb3duIjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9
PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZVVwIikKKyAgICAgICAgICAg
IGRpcmVjdGlvbiA9ICJVcCI7CisgICAgICAgIGVsc2UgaWYoZXZlbnQua2V5SWRlbnRpZmllciA9
PT0gIkRvd24iIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIpCisgICAgICAg
ICAgICBkaXJlY3Rpb24gPSAiRG93biI7ICAgICAgICAKKyAgICB9CisgICAgcmV0dXJuIGRpcmVj
dGlvbjsKK30KKwogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyaW5nCiAgKiBAcGFyYW0g
e0V2ZW50fSBldmVudAogICovCiBXZWJJbnNwZWN0b3IuX21vZGlmaWVkSGV4VmFsdWUgPSBmdW5j
dGlvbihoZXhTdHJpbmcsIGV2ZW50KQogeworICAgIHZhciBkaXJlY3Rpb24gPSBXZWJJbnNwZWN0
b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9uKGV2ZW50KTsgCiAgICAgdmFyIG51bWJlciA9
IHBhcnNlSW50KGhleFN0cmluZywgMTYpOwogICAgIGlmIChpc05hTihudW1iZXIpIHx8ICFpc0Zp
bml0ZShudW1iZXIpKQogICAgICAgICByZXR1cm4gaGV4U3RyaW5nOwogCiAgICAgdmFyIG1heFZh
bHVlID0gTWF0aC5wb3coMTYsIGhleFN0cmluZy5sZW5ndGgpIC0gMTsKLSAgICB2YXIgYXJyb3dL
ZXlQcmVzc2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIkRvd24iKTsKKyAgICB2YXIgYXJyb3dLZXlPck1vdXNlV2hlZWxFdmVudCA9
IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09
ICJEb3duIiB8fCBldmVudC50eXBlID09PSAibW91c2V3aGVlbCIpOwogCiAgICAgdmFyIGRlbHRh
OwotICAgIGlmIChhcnJvd0tleVByZXNzZWQpCi0gICAgICAgIGRlbHRhID0gKGV2ZW50LmtleUlk
ZW50aWZpZXIgPT09ICJVcCIpID8gMSA6IC0xOworICAgIGlmIChhcnJvd0tleU9yTW91c2VXaGVl
bEV2ZW50KQorICAgICAgICBkZWx0YSA9IChkaXJlY3Rpb24gPT09ICJVcCIpID8gMSA6IC0xOwog
ICAgIGVsc2UKICAgICAgICAgZGVsdGEgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VV
cCIpID8gMTYgOiAtMTY7CiAKQEAgLTM0OSwxOSArMzcxLDIwIEBAIFdlYkluc3BlY3Rvci5fbW9k
aWZpZWRIZXhWYWx1ZSA9IGZ1bmN0aW8KICAqLwogV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0
TnVtYmVyID0gZnVuY3Rpb24obnVtYmVyLCBldmVudCkKIHsKLSAgICB2YXIgYXJyb3dLZXlQcmVz
c2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmll
ciA9PT0gIkRvd24iKTsKKyAgICB2YXIgZGlyZWN0aW9uID0gV2ViSW5zcGVjdG9yLl92YWx1ZU1v
ZGlmaWNhdGlvbkRpcmVjdGlvbihldmVudCk7IAorICAgIHZhciBhcnJvd0tleU9yTW91c2VXaGVl
bEV2ZW50ID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRp
ZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVsIik7CiAKICAgICAv
LyBKdW1wIGJ5IDEwIHdoZW4gc2hpZnQgaXMgZG93biBvciBqdW1wIGJ5IDAuMSB3aGVuIEFsdC9P
cHRpb24gaXMgZG93bi4KICAgICAvLyBBbHNvIGp1bXAgYnkgMTAgZm9yIHBhZ2UgdXAgYW5kIGRv
d24sIG9yIGJ5IDEwMCBpZiBzaGlmdCBpcyBoZWxkIHdpdGggYSBwYWdlIGtleS4KICAgICB2YXIg
Y2hhbmdlQW1vdW50ID0gMTsKLSAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgIWFycm93S2V5UHJl
c3NlZCkKKyAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgIWFycm93S2V5T3JNb3VzZVdoZWVsRXZl
bnQpCiAgICAgICAgIGNoYW5nZUFtb3VudCA9IDEwMDsKLSAgICBlbHNlIGlmIChldmVudC5zaGlm
dEtleSB8fCAhYXJyb3dLZXlQcmVzc2VkKQorICAgIGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8
ICFhcnJvd0tleU9yTW91c2VXaGVlbEV2ZW50KQogICAgICAgICBjaGFuZ2VBbW91bnQgPSAxMDsK
ICAgICBlbHNlIGlmIChldmVudC5hbHRLZXkpCiAgICAgICAgIGNoYW5nZUFtb3VudCA9IDAuMTsK
IAotICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIlBhZ2VEb3duIikKKyAgICBpZiAoZGlyZWN0aW9uID09PSAiRG93biIpCiAg
ICAgICAgIGNoYW5nZUFtb3VudCAqPSAtMTsKIAogICAgIC8vIE1ha2UgdGhlIG5ldyBudW1iZXIg
YW5kIGNvbnN0cmFpbiBpdCB0byBhIHByZWNpc2lvbiBvZiA2LCB0aGlzIG1hdGNoZXMgbnVtYmVy
cyB0aGUgZW5naW5lIHJldHVybnMuCkBAIC0zODQsNyArNDA3LDggQEAgV2ViSW5zcGVjdG9yLmhh
bmRsZUVsZW1lbnRWYWx1ZU1vZGlmaWNhdAogewogICAgIHZhciBhcnJvd0tleVByZXNzZWQgPSAo
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAi
RG93biIpOwogICAgIHZhciBwYWdlS2V5UHJlc3NlZCA9IChldmVudC5rZXlJZGVudGlmaWVyID09
PSAiUGFnZVVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZURvd24iKTsKLSAgICBp
ZiAoIWFycm93S2V5UHJlc3NlZCAmJiAhcGFnZUtleVByZXNzZWQpCisgICAgdmFyIG1vdXNlV2hl
ZWxTY3JvbGwgPSAoZXZlbnQudHlwZSA9PT0gIm1vdXNld2hlZWwiKQorICAgIGlmICghYXJyb3dL
ZXlQcmVzc2VkICYmICFwYWdlS2V5UHJlc3NlZCAmJiAhbW91c2VXaGVlbFNjcm9sbCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157707</attachid>
            <date>2012-08-10 04:58:28 -0700</date>
            <delta_ts>2012-08-12 22:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120810172644.patch</filename>
            <type>text/plain</type>
            <size>7702</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRvIG1vZGlmeSB2YWx1ZXNBZGRpbmcg
c3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGluIGVsZW1l
bnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBtb3VzZSBnZXN0dXJlcyBhcyB3ZWxs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhhbmRsaW5nIG1vdXNld2hlZWwgZXZl
bnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanM6CisgICAgICAg
IGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uTW91c2VXaGVlbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGluZyBtb3VzZSBldmVu
dCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ugd2hlZWwKKyAgICAg
ICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5zcGVjdG9yLl92YWx1
ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX21vZGlmaWVk
SGV4VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zKToK
KwogMjAxMi0wOC0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGltcGxlbWVudCBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1MzcsNiArMjUzNywx
NSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbktleURvd24uY2FsbCh0aGlzLCBldmVu
dCk7CiAgICAgfSwKIAorICAgIG9uTW91c2VXaGVlbDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5faGFuZGxlTmFtZU9yVmFsdWVVcERvd24oZXZlbnQpKSB7CisgICAg
ICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbk1vdXNlV2hl
ZWwuY2FsbCh0aGlzLCBldmVudCk7CisgICAgfSwKKwogICAgIHRhYktleVByZXNzZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCShy
ZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCiAgICAgICAgIHRoaXMuX2JvdW5kT25LZXlEb3duID0gdGhpcy5vbktleURvd24uYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwgPSB0aGlzLm9uTW91c2VX
aGVlbC5iaW5kKHRoaXMpOwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdFN0YXJ0ID0gdGhpcy5f
c2VsZWN0U3RhcnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fcHJveHlFbGVtZW50ID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgdGhpcy5f
cHJveHlFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl9wcm94eUVsZW1lbnREaXNwbGF5OwpA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFz
c05hbWUgPT09ICJzdHJpbmciKQpAQCAtMTI3LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQucGFyZW50RWxl
bWVudC5yZW1vdmVDaGlsZCh0aGlzLnByb3h5RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhpcy5fZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURvd24sIGZh
bHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXdo
ZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Byb3h5RWxlbWVudDsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpOwpA
QCAtMjIwLDYgKzIyMywxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgb25Nb3VzZVdoZWVsOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybjsKKyAgICB9LAorCiAgICAgb25LZXlE
b3duOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpz
CShyZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1VJVXRpbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwOCwyMiArMzA4LDQ0IEBAIFdlYkluc3Bl
Y3Rvci5DU1NOdW1iZXJSZWdleCA9IC9eKC0/KD86XGQKIAogV2ViSW5zcGVjdG9yLlN0eWxlVmFs
dWVEZWxpbWl0ZXJzID0gIiBceEEwXHRcblwiJzo7LC8oKSI7CiAKKworLyoqCisgICogQHBhcmFt
IHtFdmVudH0gZXZlbnQKKyAgKi8KK1dlYkluc3BlY3Rvci5fdmFsdWVNb2RpZmljYXRpb25EaXJl
Y3Rpb24gPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgZGlyZWN0aW9uID0gZmFsc2U7Cisg
ICAgaWYgKGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVsIikgeworICAgICAgICBpZiAoTWF0aC5h
YnMoZXZlbnQud2hlZWxEZWx0YVkpID09IGV2ZW50LndoZWVsRGVsdGFZKQorICAgICAgICAgICAg
ZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9
ICJEb3duIjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9
PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZVVwIikKKyAgICAgICAgICAg
IGRpcmVjdGlvbiA9ICJVcCI7CisgICAgICAgIGVsc2UgaWYoZXZlbnQua2V5SWRlbnRpZmllciA9
PT0gIkRvd24iIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIpCisgICAgICAg
ICAgICBkaXJlY3Rpb24gPSAiRG93biI7ICAgICAgICAKKyAgICB9CisgICAgcmV0dXJuIGRpcmVj
dGlvbjsKK30KKwogLyoqCiAgKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyaW5nCiAgKiBAcGFyYW0g
e0V2ZW50fSBldmVudAogICovCiBXZWJJbnNwZWN0b3IuX21vZGlmaWVkSGV4VmFsdWUgPSBmdW5j
dGlvbihoZXhTdHJpbmcsIGV2ZW50KQogeworICAgIHZhciBkaXJlY3Rpb24gPSBXZWJJbnNwZWN0
b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9uKGV2ZW50KTsgCiAgICAgdmFyIG51bWJlciA9
IHBhcnNlSW50KGhleFN0cmluZywgMTYpOwogICAgIGlmIChpc05hTihudW1iZXIpIHx8ICFpc0Zp
bml0ZShudW1iZXIpKQogICAgICAgICByZXR1cm4gaGV4U3RyaW5nOwogCiAgICAgdmFyIG1heFZh
bHVlID0gTWF0aC5wb3coMTYsIGhleFN0cmluZy5sZW5ndGgpIC0gMTsKLSAgICB2YXIgYXJyb3dL
ZXlQcmVzc2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIkRvd24iKTsKKyAgICB2YXIgYXJyb3dLZXlPck1vdXNlV2hlZWxFdmVudCA9
IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09
ICJEb3duIiB8fCBldmVudC50eXBlID09PSAibW91c2V3aGVlbCIpOwogCiAgICAgdmFyIGRlbHRh
OwotICAgIGlmIChhcnJvd0tleVByZXNzZWQpCi0gICAgICAgIGRlbHRhID0gKGV2ZW50LmtleUlk
ZW50aWZpZXIgPT09ICJVcCIpID8gMSA6IC0xOworICAgIGlmIChhcnJvd0tleU9yTW91c2VXaGVl
bEV2ZW50KQorICAgICAgICBkZWx0YSA9IChkaXJlY3Rpb24gPT09ICJVcCIpID8gMSA6IC0xOwog
ICAgIGVsc2UKICAgICAgICAgZGVsdGEgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VV
cCIpID8gMTYgOiAtMTY7CiAKQEAgLTM0OSwxOSArMzcxLDIwIEBAIFdlYkluc3BlY3Rvci5fbW9k
aWZpZWRIZXhWYWx1ZSA9IGZ1bmN0aW8KICAqLwogV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0
TnVtYmVyID0gZnVuY3Rpb24obnVtYmVyLCBldmVudCkKIHsKLSAgICB2YXIgYXJyb3dLZXlQcmVz
c2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmll
ciA9PT0gIkRvd24iKTsKKyAgICB2YXIgZGlyZWN0aW9uID0gV2ViSW5zcGVjdG9yLl92YWx1ZU1v
ZGlmaWNhdGlvbkRpcmVjdGlvbihldmVudCk7IAorICAgIHZhciBhcnJvd0tleU9yTW91c2VXaGVl
bEV2ZW50ID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRp
ZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVsIik7CiAKICAgICAv
LyBKdW1wIGJ5IDEwIHdoZW4gc2hpZnQgaXMgZG93biBvciBqdW1wIGJ5IDAuMSB3aGVuIEFsdC9P
cHRpb24gaXMgZG93bi4KICAgICAvLyBBbHNvIGp1bXAgYnkgMTAgZm9yIHBhZ2UgdXAgYW5kIGRv
d24sIG9yIGJ5IDEwMCBpZiBzaGlmdCBpcyBoZWxkIHdpdGggYSBwYWdlIGtleS4KICAgICB2YXIg
Y2hhbmdlQW1vdW50ID0gMTsKLSAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgIWFycm93S2V5UHJl
c3NlZCkKKyAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgIWFycm93S2V5T3JNb3VzZVdoZWVsRXZl
bnQpCiAgICAgICAgIGNoYW5nZUFtb3VudCA9IDEwMDsKLSAgICBlbHNlIGlmIChldmVudC5zaGlm
dEtleSB8fCAhYXJyb3dLZXlQcmVzc2VkKQorICAgIGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8
ICFhcnJvd0tleU9yTW91c2VXaGVlbEV2ZW50KQogICAgICAgICBjaGFuZ2VBbW91bnQgPSAxMDsK
ICAgICBlbHNlIGlmIChldmVudC5hbHRLZXkpCiAgICAgICAgIGNoYW5nZUFtb3VudCA9IDAuMTsK
IAotICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIlBhZ2VEb3duIikKKyAgICBpZiAoZGlyZWN0aW9uID09PSAiRG93biIpCiAg
ICAgICAgIGNoYW5nZUFtb3VudCAqPSAtMTsKIAogICAgIC8vIE1ha2UgdGhlIG5ldyBudW1iZXIg
YW5kIGNvbnN0cmFpbiBpdCB0byBhIHByZWNpc2lvbiBvZiA2LCB0aGlzIG1hdGNoZXMgbnVtYmVy
cyB0aGUgZW5naW5lIHJldHVybnMuCkBAIC0zODQsNyArNDA3LDggQEAgV2ViSW5zcGVjdG9yLmhh
bmRsZUVsZW1lbnRWYWx1ZU1vZGlmaWNhdAogewogICAgIHZhciBhcnJvd0tleVByZXNzZWQgPSAo
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAi
RG93biIpOwogICAgIHZhciBwYWdlS2V5UHJlc3NlZCA9IChldmVudC5rZXlJZGVudGlmaWVyID09
PSAiUGFnZVVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZURvd24iKTsKLSAgICBp
ZiAoIWFycm93S2V5UHJlc3NlZCAmJiAhcGFnZUtleVByZXNzZWQpCisgICAgdmFyIG1vdXNlV2hl
ZWxTY3JvbGwgPSAoZXZlbnQudHlwZSA9PT0gIm1vdXNld2hlZWwiKTsKKyAgICBpZiAoIWFycm93
S2V5UHJlc3NlZCAmJiAhcGFnZUtleVByZXNzZWQgJiYgIW1vdXNlV2hlZWxTY3JvbGwpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157921</attachid>
            <date>2012-08-12 22:56:42 -0700</date>
            <delta_ts>2012-08-12 23:44:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120813112454.patch</filename>
            <type>text/plain</type>
            <size>8027</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRvIG1vZGlmeSB2YWx1ZXNBZGRpbmcg
c3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGluIGVsZW1l
bnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBtb3VzZSBnZXN0dXJlcyBhcyB3ZWxs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhhbmRsaW5nIG1vdXNld2hlZWwgZXZl
bnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanM6CisgICAgICAg
IGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uTW91c2VXaGVlbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGluZyBtb3VzZSBldmVu
dCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ugd2hlZWwKKyAgICAg
ICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5zcGVjdG9yLl92YWx1
ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX21vZGlmaWVk
SGV4VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zKToK
KwogMjAxMi0wOC0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGltcGxlbWVudCBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1MzcsNiArMjUzNywx
NSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbktleURvd24uY2FsbCh0aGlzLCBldmVu
dCk7CiAgICAgfSwKIAorICAgIG9uTW91c2VXaGVlbDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5faGFuZGxlTmFtZU9yVmFsdWVVcERvd24oZXZlbnQpKSB7CisgICAg
ICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbk1vdXNlV2hl
ZWwuY2FsbCh0aGlzLCBldmVudCk7CisgICAgfSwKKwogICAgIHRhYktleVByZXNzZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCShy
ZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCiAgICAgICAgIHRoaXMuX2JvdW5kT25LZXlEb3duID0gdGhpcy5vbktleURvd24uYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwgPSB0aGlzLm9uTW91c2VX
aGVlbC5iaW5kKHRoaXMpOwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdFN0YXJ0ID0gdGhpcy5f
c2VsZWN0U3RhcnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fcHJveHlFbGVtZW50ID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgdGhpcy5f
cHJveHlFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl9wcm94eUVsZW1lbnREaXNwbGF5OwpA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFz
c05hbWUgPT09ICJzdHJpbmciKQpAQCAtMTI3LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQucGFyZW50RWxl
bWVudC5yZW1vdmVDaGlsZCh0aGlzLnByb3h5RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhpcy5fZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURvd24sIGZh
bHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXdo
ZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Byb3h5RWxlbWVudDsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpOwpA
QCAtMjIwLDYgKzIyMywxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgb25Nb3VzZVdoZWVsOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIC8vIERlZmF1bHQuICAKKyAgICB9LAorCiAgICAg
b25LZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBoYW5kbGVkID0g
ZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0
aWxzLmpzCShyZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1VJVXRpbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTMwOCwyMiArMzA4LDQ4IEBAIFdl
Ykluc3BlY3Rvci5DU1NOdW1iZXJSZWdleCA9IC9eKC0/KD86XGQKIAogV2ViSW5zcGVjdG9yLlN0
eWxlVmFsdWVEZWxpbWl0ZXJzID0gIiBceEEwXHRcblwiJzo7LC8oKSI7CiAKKworLyoqCisgICog
QHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICovCitXZWJJbnNw
ZWN0b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9uID0gZnVuY3Rpb24oZXZlbnQpCit7Cisg
ICAgdmFyIGRpcmVjdGlvbiA9IG51bGw7CisgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJtb3VzZXdo
ZWVsIikgeworICAgICAgICBpZiAoZXZlbnQud2hlZWxEZWx0YVkgPiAwKQorICAgICAgICAgICAg
ZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQud2hlZWxEZWx0YVkgPCAw
KQorICAgICAgICAgICAgZGlyZWN0aW9uID0gIkRvd24iOworICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIg
PT09ICJQYWdlVXAiKQorICAgICAgICAgICAgZGlyZWN0aW9uID0gIlVwIjsKKyAgICAgICAgZWxz
ZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LmtleUlkZW50aWZp
ZXIgPT09ICJQYWdlRG93biIpCisgICAgICAgICAgICBkaXJlY3Rpb24gPSAiRG93biI7ICAgICAg
ICAKKyAgICB9CisgICAgcmV0dXJuIGRpcmVjdGlvbjsKK30KKwogLyoqCiAgKiBAcGFyYW0ge3N0
cmluZ30gaGV4U3RyaW5nCiAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAogICovCiBXZWJJbnNwZWN0
b3IuX21vZGlmaWVkSGV4VmFsdWUgPSBmdW5jdGlvbihoZXhTdHJpbmcsIGV2ZW50KQogeworICAg
IHZhciBkaXJlY3Rpb24gPSBXZWJJbnNwZWN0b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9u
KGV2ZW50KTsKKyAgICBpZiAoIWRpcmVjdGlvbikKKyAgICAgICAgcmV0dXJuIGhleFN0cmluZzsK
KwogICAgIHZhciBudW1iZXIgPSBwYXJzZUludChoZXhTdHJpbmcsIDE2KTsKICAgICBpZiAoaXNO
YU4obnVtYmVyKSB8fCAhaXNGaW5pdGUobnVtYmVyKSkKICAgICAgICAgcmV0dXJuIGhleFN0cmlu
ZzsKIAogICAgIHZhciBtYXhWYWx1ZSA9IE1hdGgucG93KDE2LCBoZXhTdHJpbmcubGVuZ3RoKSAt
IDE7Ci0gICAgdmFyIGFycm93S2V5UHJlc3NlZCA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAi
VXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIik7Ci0KKyAgICB2YXIgYXJyb3dL
ZXlPck1vdXNlV2hlZWxFdmVudCA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2
ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8fCBldmVudC50eXBlID09PSAibW91c2V3aGVl
bCIpOwogICAgIHZhciBkZWx0YTsKLSAgICBpZiAoYXJyb3dLZXlQcmVzc2VkKQotICAgICAgICBk
ZWx0YSA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiKSA/IDEgOiAtMTsKKworICAgIGlm
IChhcnJvd0tleU9yTW91c2VXaGVlbEV2ZW50KQorICAgICAgICBkZWx0YSA9IChkaXJlY3Rpb24g
PT09ICJVcCIpID8gMSA6IC0xOwogICAgIGVsc2UKICAgICAgICAgZGVsdGEgPSAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIlBhZ2VVcCIpID8gMTYgOiAtMTY7CiAKQEAgLTM0OSwxOSArMzc1LDIz
IEBAIFdlYkluc3BlY3Rvci5fbW9kaWZpZWRIZXhWYWx1ZSA9IGZ1bmN0aW8KICAqLwogV2ViSW5z
cGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyID0gZnVuY3Rpb24obnVtYmVyLCBldmVudCkKIHsK
LSAgICB2YXIgYXJyb3dLZXlQcmVzc2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIg
fHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iKTsKKyAgICB2YXIgZGlyZWN0aW9uID0g
V2ViSW5zcGVjdG9yLl92YWx1ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbihldmVudCk7CisgICAgaWYg
KCFkaXJlY3Rpb24pCisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgCisgICAgdmFyIGFycm93
S2V5T3JNb3VzZVdoZWVsRXZlbnQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIiB8fCBl
dmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQudHlwZSA9PT0gIm1vdXNld2hl
ZWwiKTsKIAogICAgIC8vIEp1bXAgYnkgMTAgd2hlbiBzaGlmdCBpcyBkb3duIG9yIGp1bXAgYnkg
MC4xIHdoZW4gQWx0L09wdGlvbiBpcyBkb3duLgogICAgIC8vIEFsc28ganVtcCBieSAxMCBmb3Ig
cGFnZSB1cCBhbmQgZG93biwgb3IgYnkgMTAwIGlmIHNoaWZ0IGlzIGhlbGQgd2l0aCBhIHBhZ2Ug
a2V5LgogICAgIHZhciBjaGFuZ2VBbW91bnQgPSAxOwotICAgIGlmIChldmVudC5zaGlmdEtleSAm
JiAhYXJyb3dLZXlQcmVzc2VkKQorICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAhYXJyb3dLZXlP
ck1vdXNlV2hlZWxFdmVudCkKICAgICAgICAgY2hhbmdlQW1vdW50ID0gMTAwOwotICAgIGVsc2Ug
aWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFhcnJvd0tleVByZXNzZWQpCisgICAgZWxzZSBpZiAoZXZl
bnQuc2hpZnRLZXkgfHwgIWFycm93S2V5T3JNb3VzZVdoZWVsRXZlbnQpCiAgICAgICAgIGNoYW5n
ZUFtb3VudCA9IDEwOwogICAgIGVsc2UgaWYgKGV2ZW50LmFsdEtleSkKICAgICAgICAgY2hhbmdl
QW1vdW50ID0gMC4xOwogCi0gICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8
fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZURvd24iKQorICAgIGlmIChkaXJlY3Rpb24g
PT09ICJEb3duIikKICAgICAgICAgY2hhbmdlQW1vdW50ICo9IC0xOwogCiAgICAgLy8gTWFrZSB0
aGUgbmV3IG51bWJlciBhbmQgY29uc3RyYWluIGl0IHRvIGEgcHJlY2lzaW9uIG9mIDYsIHRoaXMg
bWF0Y2hlcyBudW1iZXJzIHRoZSBlbmdpbmUgcmV0dXJucy4KQEAgLTM4Miw5ICs0MTIsOSBAQCBX
ZWJJbnNwZWN0b3IuX21vZGlmaWVkRmxvYXROdW1iZXIgPSBmdW5jCiAgKi8KIFdlYkluc3BlY3Rv
ci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zID0gZnVuY3Rpb24oZXZlbnQsIGVsZW1l
bnQsIGZpbmlzaEhhbmRsZXIsIHN1Z2dlc3Rpb25IYW5kbGVyLCBjdXN0b21OdW1iZXJIYW5kbGVy
KQogewotICAgIHZhciBhcnJvd0tleVByZXNzZWQgPSAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0g
IlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIpOworICAgIHZhciBhcnJvd0tl
eU9yTW91c2VXaGVlbEV2ZW50ID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5cGUgPT09ICJtb3VzZXdoZWVs
Iik7CiAgICAgdmFyIHBhZ2VLZXlQcmVzc2VkID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQ
YWdlVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIpOwotICAgIGlmICgh
YXJyb3dLZXlQcmVzc2VkICYmICFwYWdlS2V5UHJlc3NlZCkKKyAgICBpZiAoIWFycm93S2V5T3JN
b3VzZVdoZWVsRXZlbnQgJiYgIXBhZ2VLZXlQcmVzc2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157927</attachid>
            <date>2012-08-12 23:45:07 -0700</date>
            <delta_ts>2012-08-13 02:33:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93581-20120813121319.patch</filename>
            <type>text/plain</type>
            <size>8044</size>
            <attacher name="sam">dsam2912</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTYW0gRCAg
PGRzYW0yOTEyQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGZWF0dXJlIFJl
cXVlc3QgLSBBZGRpbmcgbW91c2UgZ2VzdHVyZSBmb3IgZWRpdGluZyBhdHRyaWJ1dGUgdmFsdWVz
IGluIGVsZW1lbnRzL2NzcyBwYW5lbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRvIG1vZGlmeSB2YWx1ZXNBZGRpbmcg
c3VwcG9ydCBmb3IgdXBkYXRpbmcgbnVtYmVyIHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGluIGVsZW1l
bnQKKyAgICAgICAgcGFuZWwvIGNzcyBwYW5lbCB1c2luZyBtb3VzZSBnZXN0dXJlcyBhcyB3ZWxs
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIGhhbmRsaW5nIG1vdXNld2hlZWwgZXZl
bnQKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanM6CisgICAgICAg
IGFkZGluZyBtb3VzZSBldmVudCBsaXN0ZW5lcgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQucHJvdG90eXBlLl9hdHRhY2hJbnRlcm5hbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uTW91c2VXaGVlbCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzOgorICAgICAgICBoYW5kbGluZyBtb3VzZSBldmVu
dCBnZXN0dXJlIGFuZCB1cGRhdGluZyBudW1iZXIgYmFzZWQgb24gbW91c2Ugd2hlZWwKKyAgICAg
ICAgc2Nyb2xsIGRpcmVjdGlvbiBhcyB3ZWxsLgorICAgICAgICAoV2ViSW5zcGVjdG9yLl92YWx1
ZU1vZGlmaWNhdGlvbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX21vZGlmaWVk
SGV4VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9tb2RpZmllZEZsb2F0TnVtYmVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5oYW5kbGVFbGVtZW50VmFsdWVNb2RpZmljYXRpb25zKToK
KwogMjAxMi0wOC0xMCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IGltcGxlbWVudCBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMJKHJldmlzaW9uIDEyNTAxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU3R5bGVzU2lkZWJhclBhbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1MzcsNiArMjUzNywx
NSBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUuQ1NTUHJvcGVyCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbktleURvd24uY2FsbCh0aGlzLCBldmVu
dCk7CiAgICAgfSwKIAorICAgIG9uTW91c2VXaGVlbDogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5faGFuZGxlTmFtZU9yVmFsdWVVcERvd24oZXZlbnQpKSB7CisgICAg
ICAgICAgICBldmVudC5jb25zdW1lKHRydWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5vbk1vdXNlV2hl
ZWwuY2FsbCh0aGlzLCBldmVudCk7CisgICAgfSwKKwogICAgIHRhYktleVByZXNzZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzCShy
ZXZpc2lvbiAxMjUwMTkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rl
eHRQcm9tcHQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVt
ZW50OwogCiAgICAgICAgIHRoaXMuX2JvdW5kT25LZXlEb3duID0gdGhpcy5vbktleURvd24uYmlu
ZCh0aGlzKTsKKyAgICAgICAgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwgPSB0aGlzLm9uTW91c2VX
aGVlbC5iaW5kKHRoaXMpOwogICAgICAgICB0aGlzLl9ib3VuZFNlbGVjdFN0YXJ0ID0gdGhpcy5f
c2VsZWN0U3RhcnQuYmluZCh0aGlzKTsKICAgICAgICAgdGhpcy5fcHJveHlFbGVtZW50ID0gZWxl
bWVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgdGhpcy5f
cHJveHlFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSB0aGlzLl9wcm94eUVsZW1lbnREaXNwbGF5OwpA
QCAtMTEyLDYgKzExMyw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAg
IHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhp
cy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURv
d24sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXdoZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKIAogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX3N1Z2dlc3RCb3hDbGFz
c05hbWUgPT09ICJzdHJpbmciKQpAQCAtMTI3LDYgKzEyOSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5wcm94eUVsZW1lbnQucGFyZW50RWxl
bWVudC5yZW1vdmVDaGlsZCh0aGlzLnByb3h5RWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKTsKICAgICAgICAgdGhpcy5fZWxlbWVu
dC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fYm91bmRPbktleURvd24sIGZh
bHNlKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXdo
ZWVsIiwgdGhpcy5fYm91bmRPbk1vdXNlV2hlZWwsIGZhbHNlKTsKICAgICAgICAgdGhpcy5fZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsIHRoaXMuX2JvdW5kU2VsZWN0
U3RhcnQsIGZhbHNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Byb3h5RWxlbWVudDsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLnJlc3RvcmVGb2N1c0Zyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpOwpA
QCAtMjIwLDYgKzIyMywxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCisgICAgb25Nb3VzZVdoZWVsOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIC8vIFN1YmNsYXNzZXMgY2FuIGltcGxlbWVudC4g
CisgICAgfSwKKwogICAgIG9uS2V5RG93bjogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAg
ICB2YXIgaGFuZGxlZCA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9VSVV0aWxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVUlVdGlscy5qcwkocmV2aXNpb24gMTI1MDE5KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMDgs
MjIgKzMwOCw0OCBAQCBXZWJJbnNwZWN0b3IuQ1NTTnVtYmVyUmVnZXggPSAvXigtPyg/OlxkCiAK
IFdlYkluc3BlY3Rvci5TdHlsZVZhbHVlRGVsaW1pdGVycyA9ICIgXHhBMFx0XG5cIic6OywvKCki
OwogCisKKy8qKgorICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50CisgICogQHJldHVybiB7P3N0cmlu
Z30KKyAgKi8KK1dlYkluc3BlY3Rvci5fdmFsdWVNb2RpZmljYXRpb25EaXJlY3Rpb24gPSBmdW5j
dGlvbihldmVudCkKK3sKKyAgICB2YXIgZGlyZWN0aW9uID0gbnVsbDsKKyAgICBpZiAoZXZlbnQu
dHlwZSA9PT0gIm1vdXNld2hlZWwiKSB7CisgICAgICAgIGlmIChldmVudC53aGVlbERlbHRhWSA+
IDApCisgICAgICAgICAgICBkaXJlY3Rpb24gPSAiVXAiOworICAgICAgICBlbHNlIGlmIChldmVu
dC53aGVlbERlbHRhWSA8IDApCisgICAgICAgICAgICBkaXJlY3Rpb24gPSAiRG93biI7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VVcCIpCisgICAgICAgICAgICBkaXJlY3Rpb24gPSAi
VXAiOworICAgICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwg
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VEb3duIikKKyAgICAgICAgICAgIGRpcmVjdGlv
biA9ICJEb3duIjsgICAgICAgIAorICAgIH0KKyAgICByZXR1cm4gZGlyZWN0aW9uOworfQorCiAv
KioKICAqIEBwYXJhbSB7c3RyaW5nfSBoZXhTdHJpbmcKICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50
CiAgKi8KIFdlYkluc3BlY3Rvci5fbW9kaWZpZWRIZXhWYWx1ZSA9IGZ1bmN0aW9uKGhleFN0cmlu
ZywgZXZlbnQpCiB7CisgICAgdmFyIGRpcmVjdGlvbiA9IFdlYkluc3BlY3Rvci5fdmFsdWVNb2Rp
ZmljYXRpb25EaXJlY3Rpb24oZXZlbnQpOworICAgIGlmICghZGlyZWN0aW9uKQorICAgICAgICBy
ZXR1cm4gaGV4U3RyaW5nOworCiAgICAgdmFyIG51bWJlciA9IHBhcnNlSW50KGhleFN0cmluZywg
MTYpOwogICAgIGlmIChpc05hTihudW1iZXIpIHx8ICFpc0Zpbml0ZShudW1iZXIpKQogICAgICAg
ICByZXR1cm4gaGV4U3RyaW5nOwogCiAgICAgdmFyIG1heFZhbHVlID0gTWF0aC5wb3coMTYsIGhl
eFN0cmluZy5sZW5ndGgpIC0gMTsKLSAgICB2YXIgYXJyb3dLZXlQcmVzc2VkID0gKGV2ZW50Lmtl
eUlkZW50aWZpZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iKTsK
LQorICAgIHZhciBhcnJvd0tleU9yTW91c2VXaGVlbEV2ZW50ID0gKGV2ZW50LmtleUlkZW50aWZp
ZXIgPT09ICJVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LnR5
cGUgPT09ICJtb3VzZXdoZWVsIik7CiAgICAgdmFyIGRlbHRhOwotICAgIGlmIChhcnJvd0tleVBy
ZXNzZWQpCi0gICAgICAgIGRlbHRhID0gKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIpID8g
MSA6IC0xOworCisgICAgaWYgKGFycm93S2V5T3JNb3VzZVdoZWVsRXZlbnQpCisgICAgICAgIGRl
bHRhID0gKGRpcmVjdGlvbiA9PT0gIlVwIikgPyAxIDogLTE7CiAgICAgZWxzZQogICAgICAgICBk
ZWx0YSA9IChldmVudC5rZXlJZGVudGlmaWVyID09PSAiUGFnZVVwIikgPyAxNiA6IC0xNjsKIApA
QCAtMzQ5LDE5ICszNzUsMjMgQEAgV2ViSW5zcGVjdG9yLl9tb2RpZmllZEhleFZhbHVlID0gZnVu
Y3RpbwogICovCiBXZWJJbnNwZWN0b3IuX21vZGlmaWVkRmxvYXROdW1iZXIgPSBmdW5jdGlvbihu
dW1iZXIsIGV2ZW50KQogewotICAgIHZhciBhcnJvd0tleVByZXNzZWQgPSAoZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIpOworICAg
IHZhciBkaXJlY3Rpb24gPSBXZWJJbnNwZWN0b3IuX3ZhbHVlTW9kaWZpY2F0aW9uRGlyZWN0aW9u
KGV2ZW50KTsKKyAgICBpZiAoIWRpcmVjdGlvbikKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAg
ICAKKyAgICB2YXIgYXJyb3dLZXlPck1vdXNlV2hlZWxFdmVudCA9IChldmVudC5rZXlJZGVudGlm
aWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIiB8fCBldmVudC50
eXBlID09PSAibW91c2V3aGVlbCIpOwogCiAgICAgLy8gSnVtcCBieSAxMCB3aGVuIHNoaWZ0IGlz
IGRvd24gb3IganVtcCBieSAwLjEgd2hlbiBBbHQvT3B0aW9uIGlzIGRvd24uCiAgICAgLy8gQWxz
byBqdW1wIGJ5IDEwIGZvciBwYWdlIHVwIGFuZCBkb3duLCBvciBieSAxMDAgaWYgc2hpZnQgaXMg
aGVsZCB3aXRoIGEgcGFnZSBrZXkuCiAgICAgdmFyIGNoYW5nZUFtb3VudCA9IDE7Ci0gICAgaWYg
KGV2ZW50LnNoaWZ0S2V5ICYmICFhcnJvd0tleVByZXNzZWQpCisgICAgaWYgKGV2ZW50LnNoaWZ0
S2V5ICYmICFhcnJvd0tleU9yTW91c2VXaGVlbEV2ZW50KQogICAgICAgICBjaGFuZ2VBbW91bnQg
PSAxMDA7Ci0gICAgZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkgfHwgIWFycm93S2V5UHJlc3NlZCkK
KyAgICBlbHNlIGlmIChldmVudC5zaGlmdEtleSB8fCAhYXJyb3dLZXlPck1vdXNlV2hlZWxFdmVu
dCkKICAgICAgICAgY2hhbmdlQW1vdW50ID0gMTA7CiAgICAgZWxzZSBpZiAoZXZlbnQuYWx0S2V5
KQogICAgICAgICBjaGFuZ2VBbW91bnQgPSAwLjE7CiAKLSAgICBpZiAoZXZlbnQua2V5SWRlbnRp
ZmllciA9PT0gIkRvd24iIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJQYWdlRG93biIpCisg
ICAgaWYgKGRpcmVjdGlvbiA9PT0gIkRvd24iKQogICAgICAgICBjaGFuZ2VBbW91bnQgKj0gLTE7
CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgbnVtYmVyIGFuZCBjb25zdHJhaW4gaXQgdG8gYSBwcmVj
aXNpb24gb2YgNiwgdGhpcyBtYXRjaGVzIG51bWJlcnMgdGhlIGVuZ2luZSByZXR1cm5zLgpAQCAt
MzgyLDkgKzQxMiw5IEBAIFdlYkluc3BlY3Rvci5fbW9kaWZpZWRGbG9hdE51bWJlciA9IGZ1bmMK
ICAqLwogV2ViSW5zcGVjdG9yLmhhbmRsZUVsZW1lbnRWYWx1ZU1vZGlmaWNhdGlvbnMgPSBmdW5j
dGlvbihldmVudCwgZWxlbWVudCwgZmluaXNoSGFuZGxlciwgc3VnZ2VzdGlvbkhhbmRsZXIsIGN1
c3RvbU51bWJlckhhbmRsZXIpCiB7Ci0gICAgdmFyIGFycm93S2V5UHJlc3NlZCA9IChldmVudC5r
ZXlJZGVudGlmaWVyID09PSAiVXAiIHx8IGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJEb3duIik7
CisgICAgdmFyIGFycm93S2V5T3JNb3VzZVdoZWVsRXZlbnQgPSAoZXZlbnQua2V5SWRlbnRpZmll
ciA9PT0gIlVwIiB8fCBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIgfHwgZXZlbnQudHlw
ZSA9PT0gIm1vdXNld2hlZWwiKTsKICAgICB2YXIgcGFnZUtleVByZXNzZWQgPSAoZXZlbnQua2V5
SWRlbnRpZmllciA9PT0gIlBhZ2VVcCIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlBhZ2VE
b3duIik7Ci0gICAgaWYgKCFhcnJvd0tleVByZXNzZWQgJiYgIXBhZ2VLZXlQcmVzc2VkKQorICAg
IGlmICghYXJyb3dLZXlPck1vdXNlV2hlZWxFdmVudCAmJiAhcGFnZUtleVByZXNzZWQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>