<?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>113398</bug_id>
          
          <creation_ts>2013-03-27 05:48:58 -0700</creation_ts>
          <short_desc>Web Inspector: add event for node inspection request while in inspection mode</short_desc>
          <delta_ts>2013-04-11 06:19:34 -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>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Gozman">dgozman</reporter>
          <assigned_to name="Dmitry Gozman">dgozman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>864449</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-27 05:48:58 -0700</bug_when>
    <thetext>Web Inspector: dispatch inspectNode to frontend without injected script. This will allow to inspect nodes while debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864455</commentid>
    <comment_count>1</comment_count>
      <attachid>195293</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-27 05:59:46 -0700</bug_when>
    <thetext>Created attachment 195293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864496</commentid>
    <comment_count>2</comment_count>
      <attachid>195293</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-27 06:57:59 -0700</bug_when>
    <thetext>Comment on attachment 195293
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:1992
&gt; +                &quot;name&quot;: &quot;shouldInspectNode&quot;,

You don&apos;t want them on DOM domain, you also want them to be hidden.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1031
&gt; +    int nodeId = pushNodePathToFrontend(m_nodeToFocus.get());

It might be too early to push the node - document might not be requested yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864501</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-03-27 07:02:49 -0700</bug_when>
    <thetext>This seems overly complex — 2 methods and 1 event.

What problem does this solve? Why is this needed? &quot;Why&quot; should always be answered in the bug and/or change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864507</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-27 07:14:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This seems overly complex — 2 methods and 1 event.
&gt; 
&gt; What problem does this solve? Why is this needed? &quot;Why&quot; should always be answered in the bug and/or change log.

As written in the bug description, this will allow to inspect nodes while debugging. Otherwise, security checks disallow to evaluate anything in injected script, if debugger stopped in another context (i.e. in iframe).

As for 2 additional methods, ChangeLog contains the explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864513</commentid>
    <comment_count>5</comment_count>
      <attachid>195293</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-27 07:15:20 -0700</bug_when>
    <thetext>Comment on attachment 195293
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:1992
&gt;&gt; +                &quot;name&quot;: &quot;shouldInspectNode&quot;,
&gt; 
&gt; You don&apos;t want them on DOM domain, you also want them to be hidden.

Which domain then? Inspector? Is it OK to use them from InspectorDOMAgent class then (I mean, it will introduce dependence InspectorDOMAgent &lt;-- InspectorFrontend::Inspector) ?

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1031
&gt;&gt; +    int nodeId = pushNodePathToFrontend(m_nodeToFocus.get());
&gt; 
&gt; It might be too early to push the node - document might not be requested yet.

If so, this method will not do anything, and frontend will request nodeToFocus via getInspectedNode instead (which will happen after pushing document). See explanation in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864523</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-03-27 07:24:28 -0700</bug_when>
    <thetext>Sorry I missed the bug description. Reading through it all again it makes sense, though still more complex than I would like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867117</commentid>
    <comment_count>7</comment_count>
      <attachid>195969</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-01 07:58:43 -0700</bug_when>
    <thetext>Created attachment 195969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867690</commentid>
    <comment_count>8</comment_count>
      <attachid>196109</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 02:52:28 -0700</bug_when>
    <thetext>Created attachment 196109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867693</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 02:55:14 -0700</bug_when>
    <thetext>Separate event in DOM domain is the right thing here.
This also solves the problem with inspecting in debug mode, since we don&apos;t go into injected script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867796</commentid>
    <comment_count>10</comment_count>
      <attachid>196109</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-04-02 07:06:46 -0700</bug_when>
    <thetext>Comment on attachment 196109
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:2074
&gt; +                &quot;name&quot;: &quot;nodeShouldBeInspected&quot;,

inspectNodeRequested

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1033
&gt; +    if (m_searchingForNode) {

Lets remove this &quot;focusNode&quot; method - it is misleading.

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:1050
&gt; +        WebInspector.updateFocusedNode(nodeId);

DOMAgent is SDK, WebInspector is UI, no dependency is allowed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867859</commentid>
    <comment_count>11</comment_count>
      <attachid>196145</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 08:19:52 -0700</bug_when>
    <thetext>Created attachment 196145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867861</commentid>
    <comment_count>12</comment_count>
      <attachid>196109</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 08:20:31 -0700</bug_when>
    <thetext>Comment on attachment 196109
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:2074
&gt;&gt; +                &quot;name&quot;: &quot;nodeShouldBeInspected&quot;,
&gt; 
&gt; inspectNodeRequested

Done.

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1033
&gt;&gt; +    if (m_searchingForNode) {
&gt; 
&gt; Lets remove this &quot;focusNode&quot; method - it is misleading.

Done. Code separated between InspectorController::inspect and InspectorDOMAgent::inspect.

&gt;&gt; Source/WebCore/inspector/front-end/DOMAgent.js:1050
&gt;&gt; +        WebInspector.updateFocusedNode(nodeId);
&gt; 
&gt; DOMAgent is SDK, WebInspector is UI, no dependency is allowed.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868070</commentid>
    <comment_count>13</comment_count>
      <attachid>196145</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-04-02 11:10:51 -0700</bug_when>
    <thetext>Comment on attachment 196145
Patch

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

&gt; Source/WebCore/inspector/InspectorController.cpp:346
&gt; +    InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(mainWorldScriptState(frame));

if (node-&gt;nodeType() != Node::ELEMENT_NODE &amp;&amp; node-&gt;nodeType() != Node::DOCUMENT_NODE) is now missing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868613</commentid>
    <comment_count>14</comment_count>
      <attachid>196145</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-03 04:19:15 -0700</bug_when>
    <thetext>Comment on attachment 196145
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:346
&gt;&gt; +    InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(mainWorldScriptState(frame));
&gt; 
&gt; if (node-&gt;nodeType() != Node::ELEMENT_NODE &amp;&amp; node-&gt;nodeType() != Node::DOCUMENT_NODE) is now missing here.

Nice catch! Thanks. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868617</commentid>
    <comment_count>15</comment_count>
      <attachid>196325</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-03 04:21:25 -0700</bug_when>
    <thetext>Created attachment 196325
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195293</attachid>
            <date>2013-03-27 05:59:46 -0700</date>
            <delta_ts>2013-04-01 07:58:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113398-20130327165527.patch</filename>
            <type>text/plain</type>
            <size>9876</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Njk3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAzLTI3ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZGlzcGF0Y2ggaW5zcGVjdE5vZGUgdG8gZnJvbnRlbmQgd2l0aG91dCBpbmplY3RlZCBzY3JpcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzM5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBpbnNwZWN0Tm9kZSBldmVudCB0byBET00gaW5zcGVjdG9yIGFnZW50LiBUaGlzIGV2
ZW50IG9wZXJhdGVzIHdpdGgKKyAgICAgICAgTm9kZUlkLCBhbmQgc28gdGhlIG5vZGUgbXVzdCBi
ZSBwdXNoZWQgdG8gZnJvbnRlbmQgYmVmb3JlLgorICAgICAgICBJZiBpbnNwZWN0b3Igd2FzIG9w
ZW5lZCBieSAnaW5zcGVjdCBlbGVtZW50JyByZXF1ZXN0LCB3ZSBoYXZlIHRvIHB1c2ggZG9jdW1l
bnQgcHJpb3IgdG8KKyAgICAgICAgcHVzaGluZyB0aGUgaW5zcGVjdGVkIG5vZGUuIFRodXMsIGlu
dHJvZHVjZWQgc2hvdWxkSW5zcGVjdE5vZGUgYW5kIGdldEluc3BlY3RlZE5vZGUgY29tbWFuZHMK
KyAgICAgICAgdG8gYXZvaWQgcHVzaGluZyBkb2N1bWVudCB0byBmcm9udGVuZCB1bm5lY2Vzc2Fy
eS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OmZvY3VzTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6aGlnaGxpZ2h0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpzaG91bGRJbnNwZWN0Tm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6Z2V0SW5zcGVjdGVkTm9kZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JET01BZ2VudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUucmVxdWVzdEluc3BlY3RlZE5vZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5faW5zcGVjdE5vZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlLmRvY3VtZW50VXBkYXRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5cGUuaW5zcGVjdE5v
ZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzLnNob3dJbml0aWFs
UGFuZWxPckluc3BlY3Quc2hvdWxkSW5zcGVjdENhbGxiYWNrKToKKyAgICAgICAgKC4pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmluc3BlY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnVwZGF0
ZUZvY3VzZWROb2RlKToKKwogMjAxMy0wMy0yNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlYWRPbmx5
IHRvIGlzUmVhZE9ubHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24JKHJldmlzaW9uIDE0Njg4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMTk4OSw2ICsxOTg5LDIwIEBACiAgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAic2hvdWxkSW5zcGVjdE5vZGUiLAorICAgICAgICAgICAgICAg
ICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNob3VsZEluc3Bl
Y3QiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgc29tZSBub2Rl
IHNob3VsZCBiZSBpbnNwZWN0ZWQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdHMgd2hldGhlciBzb21lIG5vZGUgc2hvdWxkIGJl
IGluc3BlY3RlZC4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImdldEluc3BlY3RlZE5vZGUiLAorICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5v
ZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBub2RlIHRvIGJlIGluc3Bl
Y3RlZC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJSZXF1ZXN0cyB0aGUgbm9kZSB0byBiZSBpbnNwZWN0ZWQuIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJwdXNoTm9kZUJ5UGF0aFRv
RnJvbnRlbmQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInBhdGgiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiUGF0aCB0byBub2RlIGluIHRoZSBwcm9wcmlldGFyeSBmb3JtYXQuIiB9CkBAIC0yMDcxLDYg
KzIwODUsMTMgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiA8
Y29kZT5Eb2N1bWVudDwvY29kZT4gaGFzIGJlZW4gdG90YWxseSB1cGRhdGVkLiBOb2RlIGlkcyBh
cmUgbm8gbG9uZ2VyIHZhbGlkLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdE5vZGUiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVm
IjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0byBpbnNwZWN0LiIg
fQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIklu
c3BlY3RzIG5vZGUuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJzZXRDaGlsZE5vZGVzIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXJlbnRJZCIsICIkcmVmIjog
Ik5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJQYXJlbnQgbm9kZSBpZCB0byBwb3B1bGF0ZSB3aXRo
IGNoaWxkcmVuLiIgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAkocmV2aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyOCwyMSAr
MTAyOCwxMiBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpmb2N1c05vZGUoKQogCiAgICAgQVNT
RVJUKG1fbm9kZVRvRm9jdXMpOwogCi0gICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX25vZGVUb0Zv
Y3VzLmdldCgpOwotICAgIG1fbm9kZVRvRm9jdXMgPSAwOwotCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbm9kZS0+b3duZXJEb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
IHJldHVybjsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKLSAgICBpZiAo
IWZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvcihtYWluV29y
bGRTY3JpcHRTdGF0ZShmcmFtZSkpOwotICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVl
KCkpCisgICAgaW50IG5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobV9ub2RlVG9Gb2N1
cy5nZXQoKSk7CisgICAgaWYgKCFub2RlSWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGluamVj
dGVkU2NyaXB0Lmluc3BlY3ROb2RlKG5vZGUuZ2V0KCkpOworICAgIG1fbm9kZVRvRm9jdXMgPSAw
OworICAgIG1fZnJvbnRlbmQtPmluc3BlY3ROb2RlKG5vZGVJZCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgdW5zaWduZWQpCkBAIC0xMTI4LDYgKzExMTksMjUgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6aGlnaGxpZ2h0Tm9kZShFcgogICAgIG1fb3ZlcmxheS0+aGlnaGxpZ2h0Tm9kZShu
b2RlLCAqaGlnaGxpZ2h0Q29uZmlnKTsKIH0KIAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2hv
dWxkSW5zcGVjdE5vZGUoRXJyb3JTdHJpbmcqLCBib29sKiBzaG91bGRJbnNwZWN0KQoreworICAg
ICpzaG91bGRJbnNwZWN0ID0gbV9ub2RlVG9Gb2N1czsKK30KKwordm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6Z2V0SW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCogbm9k
ZUlkKQoreworICAgIGlmICghbV9ub2RlVG9Gb2N1cykgeworICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiTm8gbm9kZSB0byBmb2N1cyI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqbm9k
ZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChtX25vZGVUb0ZvY3VzLmdldCgpKTsKKyAgICBp
ZiAoKm5vZGVJZCkKKyAgICAgICAgbV9ub2RlVG9Gb2N1cyA9IDA7CisgICAgZWxzZQorICAgICAg
ICAqZXJyb3JTdHJpbmcgPSAiQ291bGQgbm90IHB1c2ggaW5zcGVjdGVkIG5vZGUgdG8gZnJvbnRl
bmQiOworfQorCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdobGlnaHRGcmFtZSgKICAgICBF
cnJvclN0cmluZyosCiAgICAgY29uc3QgU3RyaW5nJiBmcmFtZUlkLApJbmRleDogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHJldmlzaW9uIDE0Njg4NikK
KysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDUsNiArMTQ1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdo
bGlnaHRSZWN0KEVycm9yU3RyaW5nKiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln
aHQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBjb2xvciwgY29uc3QgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4qIG91dGxpbmVDb2xvcik7CiAgICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdo
dE5vZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaGlnaGxp
Z2h0Q29uZmlnLCBjb25zdCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RJZCk7CiAg
ICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBmcmFtZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOworICAgIHZpcnR1YWwgdm9pZCBz
aG91bGRJbnNwZWN0Tm9kZShFcnJvclN0cmluZyosIGJvb2wqIHNob3VsZEluc3BlY3QpOworICAg
IHZpcnR1YWwgdm9pZCBnZXRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50KiBub2RlSWQp
OwogICAgIHZpcnR1YWwgdm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBpbnQg
dGFyZ2V0Tm9kZUlkLCBjb25zdCBpbnQqIGFuY2hvck5vZGVJZCwgaW50KiBuZXdOb2RlSWQpOwog
ICAgIHZpcnR1YWwgdm9pZCB1bmRvKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIHJl
ZG8oRXJyb3JTdHJpbmcqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01BZ2VudC5qcwkocmV2aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwkod29ya2luZyBjb3B5KQpAQCAtOTA4LDYg
KzkwOCwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9kaXNwYXRjaFdoZW5Eb2N1bWVudEF2YWlsYWJsZShET01BZ2VudC5wdXNoTm9kZUJ5UGF0
aFRvRnJvbnRlbmQuYmluZChET01BZ2VudCwgcGF0aCksIGNhbGxiYWNrQ2FzdCk7CiAgICAgfSwK
IAorICAgIHJlcXVlc3RJbnNwZWN0ZWROb2RlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9kaXNwYXRjaFdoZW5Eb2N1bWVudEF2YWlsYWJsZShET01BZ2VudC5nZXRJbnNwZWN0ZWRO
b2RlLmJpbmQoRE9NQWdlbnQpLCB0aGlzLl9pbnNwZWN0Tm9kZS5iaW5kKHRoaXMpKTsKKyAgICB9
LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbigqKT19IGNhbGxiYWNrCiAgICAg
ICogQHJldHVybiB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yLCo9KXx1bmRlZmluZWR9CkBAIC0x
MDQzLDYgKzEwNDgsMTQgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAg
ICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAor
ICAgICAqLworICAgIF9pbnNwZWN0Tm9kZTogZnVuY3Rpb24obm9kZUlkKQorICAgIHsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5vZGVJZCk7CisgICAgfSwKKworICAg
IC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZX0gcGF5bG9hZAogICAgICAqLwogICAg
IF9zZXREb2N1bWVudDogZnVuY3Rpb24ocGF5bG9hZCkKQEAgLTEzOTYsNiArMTQwOSwxNCBAQCBX
ZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgorICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKi8KKyAgICBp
bnNwZWN0Tm9kZTogZnVuY3Rpb24obm9kZUlkKQorICAgIHsKKyAgICAgICAgdGhpcy5fZG9tQWdl
bnQuX2luc3BlY3ROb2RlKG5vZGVJZCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJh
bSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQog
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHJldmlzaW9uIDE0Njg4NikKKysrIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC01MDksMTMgKzUwOSwyMCBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhD
YXBhYmlsaXRpCiAKICAgICB0aGlzLmNvbnNvbGUuZW5hYmxlQWdlbnQoKTsKIAotICAgIGZ1bmN0
aW9uIHNob3dJbml0aWFsUGFuZWwoKQorICAgIGZ1bmN0aW9uIHNob3dJbml0aWFsUGFuZWxPcklu
c3BlY3QoKQogICAgIHsKLSAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5j
dXJyZW50UGFuZWwoKSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmxhc3RBY3RpdmVQYW5lbC5nZXQoKSk7CisgICAgICAgIGZ1bmN0aW9u
IHNob3VsZEluc3BlY3RDYWxsYmFjayhlcnJvciwgc2hvdWxkSW5zcGVjdCkgeworICAgICAgICAg
ICAgaWYgKHNob3VsZEluc3BlY3QpIHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQucmVxdWVzdEluc3BlY3RlZE5vZGUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuaW5zcGVjdG9yVmlldy5jdXJyZW50UGFuZWwo
KSkKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbChXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MubGFzdEFjdGl2ZVBhbmVsLmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBET01BZ2VudC5zaG91bGRJbnNwZWN0Tm9kZShzaG91bGRJbnNwZWN0Q2Fs
bGJhY2spOwogICAgIH0KIAotICAgIEluc3BlY3RvckFnZW50LmVuYWJsZShzaG93SW5pdGlhbFBh
bmVsKTsKKyAgICBJbnNwZWN0b3JBZ2VudC5lbmFibGUoc2hvd0luaXRpYWxQYW5lbE9ySW5zcGVj
dCk7CiAgICAgdGhpcy5kYXRhYmFzZU1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhYmFzZU1v
ZGVsKCk7CiAgICAgdGhpcy5kb21TdG9yYWdlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VNb2RlbCgpOwogCkBAIC05NjAsNyArOTY3LDcgQEAgV2ViSW5zcGVjdG9yLmluc3BlY3Qg
PSBmdW5jdGlvbihwYXlsb2FkLAogICAgIGlmIChvYmplY3Quc3VidHlwZSA9PT0gIm5vZGUiKSB7
CiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGVJZCkKICAgICAgICAgewotICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLl91cGRhdGVGb2N1c2VkTm9kZShub2RlSWQpOworICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5vZGVJZCk7CiAgICAgICAgICAgICBvYmpl
Y3QucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgICAgIG9iamVjdC5wdXNoTm9kZVRvRnJvbnRl
bmQoY2FsbGJhY2spOwpAQCAtOTg5LDcgKzk5Niw3IEBAIFdlYkluc3BlY3Rvci50YXJnZXRDcmFz
aGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluc3BlY3Rl
ZCB0YXJnZXQgaGFzIGNyYXNoZWQuIE9uY2UgaXQgcmVsb2FkcyB3ZSB3aWxsIGF0dGFjaCB0byBp
dCBhdXRvbWF0aWNhbGx5LiIpKSkuc2hvd01vZGFsKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5fdXBk
YXRlRm9jdXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQpCitXZWJJbnNwZWN0b3IudXBkYXRlRm9j
dXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQpCiB7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5fbm9k
ZVNlYXJjaEJ1dHRvbi50b2dnbGVkKSB7CiAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5i
cmluZ1RvRnJvbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195969</attachid>
            <date>2013-04-01 07:58:43 -0700</date>
            <delta_ts>2013-04-02 02:52:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113398-20130401185836.patch</filename>
            <type>text/plain</type>
            <size>4825</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Njk3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTI3ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZGlzcGF0Y2ggaW5zcGVjdE5vZGUgdG8gZnJvbnRlbmQgd2l0aG91dCBpbmplY3RlZCBzY3JpcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzM5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBub2RlU2hvdWxkQmVJbnNwZWN0ZWQgZXZlbnQgdG8gRE9NIGRvbWFpbi4gVGhpcyBl
dmVudCBpcyBmaXJlZCB3aGVuCisgICAgICAgIHVzZXIgc2VsZWN0cyBhIG5vZGUgdG8gaW5zcGVj
dCwgd2hpbGUgaW4gbm9kZSBpbnNwZWN0IG1vZGUuCisgICAgICAgIEJlZm9yZSwgd2UgdXNlZCBp
bnNwZWN0IGV2ZW50IGZyb20gaW5zcGVjdG9yIGRvbWFpbiwgd2hpY2ggc2VlbXMgaW5hcHByb3By
aWF0ZSBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpmb2N1c05vZGUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
cHJvdG90eXBlLl9pbnNwZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRGlzcGF0
Y2hlci5wcm90b3R5cGUubm9kZVNob3VsZEJlSW5zcGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbnNwZWN0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZSk6CisKIDIwMTMtMDMt
MjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZWFkT25seSB0byBpc1JlYWRPbmx5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCShyZXZpc2lvbiAxNDY4ODYpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24JKHdvcmtpbmcgY29weSkKQEAg
LTIwNzEsNiArMjA3MSwxMyBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJl
ZCB3aGVuIDxjb2RlPkRvY3VtZW50PC9jb2RlPiBoYXMgYmVlbiB0b3RhbGx5IHVwZGF0ZWQuIE5v
ZGUgaWRzIGFyZSBubyBsb25nZXIgdmFsaWQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJub2RlU2hvdWxkQmVJbnNwZWN0ZWQiLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUg
bm9kZSB0byBpbnNwZWN0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gdGhlIG5vZGUgc2hvdWxkIGJlIGluc3BlY3RlZC4g
VGhpcyBoYXBwZW5zIGFmdGVyIGNhbGwgdG8gPGNvZGU+c2V0SW5zcGVjdE1vZGVFbmFibGVkPC9j
b2RlPi4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogInNldENoaWxkTm9kZXMiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmVudElkIiwgIiRyZWYiOiAiTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlBhcmVudCBub2RlIGlkIHRvIHBvcHVsYXRlIHdpdGggY2hpbGRy
ZW4uIiB9LApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCShyZXZpc2lvbiAxNDY4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMxLDYgKzEwMzEsMTMg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Zm9jdXNOb2RlKCkKICAgICBSZWZQdHI8Tm9kZT4g
bm9kZSA9IG1fbm9kZVRvRm9jdXMuZ2V0KCk7CiAgICAgbV9ub2RlVG9Gb2N1cyA9IDA7CiAKKyAg
ICBpZiAobV9zZWFyY2hpbmdGb3JOb2RlKSB7CisgICAgICAgIGludCBub2RlSWQgPSBwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKG5vZGUuZ2V0KCkpOworICAgICAgICBpZiAobm9kZUlkKQorICAgICAg
ICAgICAgbV9mcm9udGVuZC0+bm9kZVNob3VsZEJlSW5zcGVjdGVkKG5vZGVJZCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25lckRv
Y3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCShyZXZpc2lv
biAxNDY4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQzLDYgKzEwNDMsMTQgQEAgV2ViSW5zcGVjdG9yLkRP
TUFnZW50LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtE
T01BZ2VudC5Ob2RlSWR9IG5vZGVJZAorICAgICAqLworICAgIF9pbnNwZWN0Tm9kZTogZnVuY3Rp
b24obm9kZUlkKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2Rl
KG5vZGVJZCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9k
ZX0gcGF5bG9hZAogICAgICAqLwogICAgIF9zZXREb2N1bWVudDogZnVuY3Rpb24ocGF5bG9hZCkK
QEAgLTEzOTYsNiArMTQwNCwxNCBAQCBXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5
cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlk
fSBub2RlSWQKKyAgICAgKi8KKyAgICBub2RlU2hvdWxkQmVJbnNwZWN0ZWQ6IGZ1bmN0aW9uKG5v
ZGVJZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2RvbUFnZW50Ll9pbnNwZWN0Tm9kZShub2RlSWQp
OworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9k
ZUlkCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
dmFsdWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCShyZXZpc2lvbiAxNDY4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkod29ya2luZyBjb3B5KQpAQCAtOTYwLDcgKzk2MCw3IEBA
IFdlYkluc3BlY3Rvci5pbnNwZWN0ID0gZnVuY3Rpb24ocGF5bG9hZCwKICAgICBpZiAob2JqZWN0
LnN1YnR5cGUgPT09ICJub2RlIikgewogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhub2RlSWQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUo
bm9kZUlkKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShub2Rl
SWQpOwogICAgICAgICAgICAgb2JqZWN0LnJlbGVhc2UoKTsKICAgICAgICAgfQogICAgICAgICBv
YmplY3QucHVzaE5vZGVUb0Zyb250ZW5kKGNhbGxiYWNrKTsKQEAgLTk4OSw3ICs5ODksNyBAQCBX
ZWJJbnNwZWN0b3IudGFyZ2V0Q3Jhc2hlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJJbnNwZWN0ZWQgdGFyZ2V0IGhhcyBjcmFzaGVkLiBPbmNlIGl0IHJlbG9h
ZHMgd2Ugd2lsbCBhdHRhY2ggdG8gaXQgYXV0b21hdGljYWxseS4iKSkpLnNob3dNb2RhbCgpOwog
fQogCi1XZWJJbnNwZWN0b3IuX3VwZGF0ZUZvY3VzZWROb2RlID0gZnVuY3Rpb24obm9kZUlkKQor
V2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlID0gZnVuY3Rpb24obm9kZUlkKQogewogICAg
IGlmIChXZWJJbnNwZWN0b3IuX25vZGVTZWFyY2hCdXR0b24udG9nZ2xlZCkgewogICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QuYnJpbmdUb0Zyb250KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196109</attachid>
            <date>2013-04-02 02:52:28 -0700</date>
            <delta_ts>2013-04-02 08:20:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113398-20130402135219.patch</filename>
            <type>text/plain</type>
            <size>5454</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Njk3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTI3ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
ZGlzcGF0Y2ggaW5zcGVjdE5vZGUgdG8gZnJvbnRlbmQgd2l0aG91dCBpbmplY3RlZCBzY3JpcHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzM5OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBub2RlU2hvdWxkQmVJbnNwZWN0ZWQgZXZlbnQgdG8gRE9NIGRvbWFpbi4gVGhpcyBl
dmVudCBpcyBmaXJlZCB3aGVuCisgICAgICAgIHVzZXIgc2VsZWN0cyBhIG5vZGUgdG8gaW5zcGVj
dCwgd2hpbGUgaW4gbm9kZSBpbnNwZWN0IG1vZGUuCisgICAgICAgIEJlZm9yZSwgd2UgdXNlZCBp
bnNwZWN0IGV2ZW50IGZyb20gaW5zcGVjdG9yIGRvbWFpbiwgd2hpY2ggc2VlbXMgaW5hcHByb3By
aWF0ZSBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjppbnNwZWN0KTogQ2xlYXIgbV9zZWFyY2hpbmdGb3JO
b2RlIGxhc3QsIHNvIGZvY3VzTm9kZSgpIGNhbiBjaGVjayBpdC4KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50Ojpmb2N1c05vZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90
eXBlLl9pbnNwZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5w
cm90b3R5cGUubm9kZVNob3VsZEJlSW5zcGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbnNwZWN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZSk6CisKIDIwMTMtMDMtMjcgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFtZSBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjpyZWFkT25seSB0byBpc1JlYWRPbmx5CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCShyZXZpc2lvbiAxNDY4ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTIwNzEs
NiArMjA3MSwxMyBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVu
IDxjb2RlPkRvY3VtZW50PC9jb2RlPiBoYXMgYmVlbiB0b3RhbGx5IHVwZGF0ZWQuIE5vZGUgaWRz
IGFyZSBubyBsb25nZXIgdmFsaWQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJub2RlU2hvdWxkQmVJbnNwZWN0ZWQiLAorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5v
ZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0
byBpbnNwZWN0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVkIHdoZW4gdGhlIG5vZGUgc2hvdWxkIGJlIGluc3BlY3RlZC4gVGhpcyBo
YXBwZW5zIGFmdGVyIGNhbGwgdG8gPGNvZGU+c2V0SW5zcGVjdE1vZGVFbmFibGVkPC9jb2RlPi4i
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjog
InNldENoaWxkTm9kZXMiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmVudElkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRl
c2NyaXB0aW9uIjogIlBhcmVudCBub2RlIGlkIHRvIHBvcHVsYXRlIHdpdGggY2hpbGRyZW4uIiB9
LApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCShyZXZpc2lvbiAxNDY4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEwLDE1ICsxMDEwLDE0IEBAIGJv
b2wgSW5zcGVjdG9yRE9NQWdlbnQ6OmhhbmRsZVRvdWNoRXZlbnQKIAogdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6aW5zcGVjdChOb2RlKiBpbnNwZWN0ZWROb2RlKQogewotICAgIEVycm9yU3RyaW5n
IGVycm9yOwogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gaW5zcGVjdGVkTm9kZTsKLSAgICBzZXRT
ZWFyY2hpbmdGb3JOb2RlKCZlcnJvciwgZmFsc2UsIDApOwotCiAgICAgaWYgKG5vZGUtPm5vZGVU
eXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFICYmIG5vZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6
RE9DVU1FTlRfTk9ERSkKICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICBt
X25vZGVUb0ZvY3VzID0gbm9kZTsKLQogICAgIGZvY3VzTm9kZSgpOworCisgICAgRXJyb3JTdHJp
bmcgZXJyb3I7CisgICAgc2V0U2VhcmNoaW5nRm9yTm9kZSgmZXJyb3IsIGZhbHNlLCAwKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Zm9jdXNOb2RlKCkKQEAgLTEwMzEsNiArMTAzMCwx
MyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpmb2N1c05vZGUoKQogICAgIFJlZlB0cjxOb2Rl
PiBub2RlID0gbV9ub2RlVG9Gb2N1cy5nZXQoKTsKICAgICBtX25vZGVUb0ZvY3VzID0gMDsKIAor
ICAgIGlmIChtX3NlYXJjaGluZ0Zvck5vZGUpIHsKKyAgICAgICAgaW50IG5vZGVJZCA9IHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobm9kZS5nZXQoKSk7CisgICAgICAgIGlmIChub2RlSWQpCisgICAg
ICAgICAgICBtX2Zyb250ZW5kLT5ub2RlU2hvdWxkQmVJbnNwZWN0ZWQobm9kZUlkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPm93bmVy
RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMJKHJldmlz
aW9uIDE0Njg4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwNDMsNiArMTA0MywxNCBAQCBXZWJJbnNwZWN0b3Iu
RE9NQWdlbnQucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0g
e0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCisgICAgICovCisgICAgX2luc3BlY3ROb2RlOiBmdW5j
dGlvbihub2RlSWQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IudXBkYXRlRm9jdXNlZE5v
ZGUobm9kZUlkKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtET01BZ2VudC5O
b2RlfSBwYXlsb2FkCiAgICAgICovCiAgICAgX3NldERvY3VtZW50OiBmdW5jdGlvbihwYXlsb2Fk
KQpAQCAtMTM5Niw2ICsxNDA0LDE0IEBAIFdlYkluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3Rv
dHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2Rl
SWR9IG5vZGVJZAorICAgICAqLworICAgIG5vZGVTaG91bGRCZUluc3BlY3RlZDogZnVuY3Rpb24o
bm9kZUlkKQorICAgIHsKKyAgICAgICAgdGhpcy5fZG9tQWdlbnQuX2luc3BlY3ROb2RlKG5vZGVJ
ZCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBu
b2RlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB2YWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMJKHJldmlzaW9uIDE0Njg4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC05NjAsNyArOTYwLDcg
QEAgV2ViSW5zcGVjdG9yLmluc3BlY3QgPSBmdW5jdGlvbihwYXlsb2FkLAogICAgIGlmIChvYmpl
Y3Quc3VidHlwZSA9PT0gIm5vZGUiKSB7CiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGVJ
ZCkKICAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLl91cGRhdGVGb2N1c2VkTm9k
ZShub2RlSWQpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5v
ZGVJZCk7CiAgICAgICAgICAgICBvYmplY3QucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgICAg
IG9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQoY2FsbGJhY2spOwpAQCAtOTg5LDcgKzk4OSw3IEBA
IFdlYkluc3BlY3Rvci50YXJnZXRDcmFzaGVkID0gZnVuY3Rpb24oKQogICAgICAgICBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkluc3BlY3RlZCB0YXJnZXQgaGFzIGNyYXNoZWQuIE9uY2UgaXQgcmVs
b2FkcyB3ZSB3aWxsIGF0dGFjaCB0byBpdCBhdXRvbWF0aWNhbGx5LiIpKSkuc2hvd01vZGFsKCk7
CiB9CiAKLVdlYkluc3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQp
CitXZWJJbnNwZWN0b3IudXBkYXRlRm9jdXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQpCiB7CiAg
ICAgaWYgKFdlYkluc3BlY3Rvci5fbm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkKSB7CiAgICAgICAg
IEluc3BlY3RvckZyb250ZW5kSG9zdC5icmluZ1RvRnJvbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196145</attachid>
            <date>2013-04-02 08:19:52 -0700</date>
            <delta_ts>2013-04-03 04:21:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113398-20130402191943.patch</filename>
            <type>text/plain</type>
            <size>9337</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzQzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA0LTAyICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWRkIGV2ZW50IGZvciBub2RlIGluc3BlY3Rpb24gcmVxdWVzdCB3aGlsZSBpbiBpbnNwZWN0aW9u
IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzM5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBpbnNwZWN0Tm9kZVJlcXVlc3RlZCBldmVudCB0byBET00gZG9tYWluLiBU
aGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4KKyAgICAgICAgdXNlciBzZWxlY3RzIGEgbm9kZSB0byBp
bnNwZWN0LCB3aGlsZSBpbiBub2RlIGluc3BlY3QgbW9kZS4KKyAgICAgICAgQmVmb3JlLCB3ZSB1
c2VkIGluc3BlY3QgZXZlbnQgZnJvbSBpbnNwZWN0b3IgZG9tYWluLCB3aGljaCBzZWVtcyBpbmFw
cHJvcHJpYXRlIGluIHRoaXMgY2FzZS4KKworICAgICAgICBBbHNvLCBzZXBhcmF0ZWQgaW5zcGVj
dGlvbiBhcyBhIHJlc3VsdCBvZiBpbnNwZWN0IG1vZGUgKGluaXRpYXRlZCBpbiBJbnNwZWN0b3JE
T01BZ2VudCkKKyAgICAgICAgZnJvbSBpbnNwZWN0aW9uIGNhdXNlIG9mIGV4dGVybmFsIHJlcXVl
c3QgKEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3QgY2FsbCkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVj
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5zcGVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JET01BZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5wcm90b3R5cGUuX2luc3BlY3ROb2RlUmVxdWVzdGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3RvdHlwZS5kb2N1bWVudFVwZGF0ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlLmluc3BlY3ROb2RlUmVx
dWVzdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci50YXJnZXRDcmFzaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5faW5zcGVjdE5vZGVSZXF1ZXN0ZWQpOgorCiAyMDEzLTA0LTAyICBBbmRyZXkgTHVzaG5pa292
ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzb3Vy
Y2UgbG9jYXRpb24gZ2V0cyBmcm96ZW4gYWZ0ZXIgaW5zcGVjdG9yIHJlbG9hZApJbmRleDogU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgkocmV2aXNpb24gMTQ2ODg2KQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDcxLDYgKzIwNzEsMTMgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmly
ZWQgd2hlbiA8Y29kZT5Eb2N1bWVudDwvY29kZT4gaGFzIGJlZW4gdG90YWxseSB1cGRhdGVkLiBO
b2RlIGlkcyBhcmUgbm8gbG9uZ2VyIHZhbGlkLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdE5vZGVSZXF1ZXN0ZWQiLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUg
bm9kZSB0byBpbnNwZWN0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gdGhlIG5vZGUgc2hvdWxkIGJlIGluc3BlY3RlZC4g
VGhpcyBoYXBwZW5zIGFmdGVyIGNhbGwgdG8gPGNvZGU+c2V0SW5zcGVjdE1vZGVFbmFibGVkPC9j
b2RlPi4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogInNldENoaWxkTm9kZXMiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmVudElkIiwgIiRyZWYiOiAiTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlBhcmVudCBub2RlIGlkIHRvIHBvcHVsYXRlIHdpdGggY2hpbGRy
ZW4uIiB9LApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNyArMzM2
LDE3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdChOb2RlKgogCiAgICAgc2hv
dygpOwogCi0gICAgbV9kb21BZ2VudC0+aW5zcGVjdChub2RlKTsKKyAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAg
ICAgcmV0dXJuOworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgIGlm
ICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yKG1haW5X
b3JsZFNjcmlwdFN0YXRlKGZyYW1lKSk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGluamVjdGVkU2NyaXB0Lmluc3BlY3ROb2RlKG5v
ZGUpOwogfQogCiBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZWQoKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCShy
ZXZpc2lvbiAxNDY4ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsOSArMjI3LDYgQEAgdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6c2V0RnJvbnRlbmQoSW5zcAogICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+
ZG9tKCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JET01BZ2VudCh0
aGlzKTsKICAgICBtX2RvY3VtZW50ID0gbV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVu
dCgpOwotCi0gICAgaWYgKG1fbm9kZVRvRm9jdXMpCi0gICAgICAgIGZvY3VzTm9kZSgpOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpjbGVhckZyb250ZW5kKCkKQEAgLTEwMTAsMzkgKzEw
MDcsMTkgQEAgYm9vbCBJbnNwZWN0b3JET01BZ2VudDo6aGFuZGxlVG91Y2hFdmVudAogCiB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjppbnNwZWN0KE5vZGUqIGluc3BlY3RlZE5vZGUpCiB7Ci0gICAg
RXJyb3JTdHJpbmcgZXJyb3I7Ci0gICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBpbnNwZWN0ZWROb2Rl
OwotICAgIHNldFNlYXJjaGluZ0Zvck5vZGUoJmVycm9yLCBmYWxzZSwgMCk7Ci0KLSAgICBpZiAo
bm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgJiYgbm9kZS0+bm9kZVR5cGUo
KSAhPSBOb2RlOjpET0NVTUVOVF9OT0RFKQotICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9k
ZSgpOwotICAgIG1fbm9kZVRvRm9jdXMgPSBub2RlOwotCi0gICAgZm9jdXNOb2RlKCk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmZvY3VzTm9kZSgpCi17CiAgICAgaWYgKCFtX2Zyb250
ZW5kKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9ub2RlVG9Gb2N1cyk7Ci0KLSAg
ICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1fbm9kZVRvRm9jdXMuZ2V0KCk7Ci0gICAgbV9ub2RlVG9G
b2N1cyA9IDA7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50
KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50LT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsK
KyAgICBOb2RlKiBub2RlID0gaW5zcGVjdGVkTm9kZTsKKyAgICBpZiAobm9kZS0+bm9kZVR5cGUo
KSAhPSBOb2RlOjpFTEVNRU5UX05PREUgJiYgbm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpET0NV
TUVOVF9OT0RFKQorICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogCi0gICAgSW5q
ZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5q
ZWN0ZWRTY3JpcHRGb3IobWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpKTsKLSAgICBpZiAoaW5q
ZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICByZXR1cm47CisgICAgaW50IG5vZGVJ
ZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisgICAgaWYgKG5vZGVJZCkKKyAgICAg
ICAgbV9mcm9udGVuZC0+aW5zcGVjdE5vZGVSZXF1ZXN0ZWQobm9kZUlkKTsKIAotICAgIGluamVj
dGVkU2NyaXB0Lmluc3BlY3ROb2RlKG5vZGUuZ2V0KCkpOworICAgIEVycm9yU3RyaW5nIGVycm9y
OworICAgIHNldFNlYXJjaGluZ0Zvck5vZGUoJmVycm9yLCBmYWxzZSwgMCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAkocmV2aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NCw4
ICsxODQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzKCk7CiAgICAgYm9v
bCBoYW5kbGVUb3VjaEV2ZW50KE5vZGUqKTsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKLSAgICB2
b2lkIGluc3BlY3QoTm9kZSopOwotICAgIHZvaWQgZm9jdXNOb2RlKCk7CiAKICAgICBJbnNwZWN0
b3JIaXN0b3J5KiBoaXN0b3J5KCkgeyByZXR1cm4gbV9oaXN0b3J5LmdldCgpOyB9CiAKQEAgLTIx
OSw2ICsyMTcsOCBAQCBwcml2YXRlOgogICAgIE5vZGUqIGFzc2VydEVkaXRhYmxlTm9kZShFcnJv
clN0cmluZyosIGludCBub2RlSWQpOwogICAgIEVsZW1lbnQqIGFzc2VydEVkaXRhYmxlRWxlbWVu
dChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwogCisgICAgdm9pZCBpbnNwZWN0KE5vZGUqKTsK
KwogICAgIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lkIHB1c2hD
aGlsZE5vZGVzVG9Gcm9udGVuZChpbnQgbm9kZUlkLCBpbnQgZGVwdGggPSAxKTsKIApAQCAtMjUy
LDcgKzI1Miw2IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmVjdG9y
PFJlZlB0cjxOb2RlPiA+ID4gU2VhcmNoUmVzdWx0czsKICAgICBTZWFyY2hSZXN1bHRzIG1fc2Vh
cmNoUmVzdWx0czsKICAgICBPd25QdHI8UmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRlVGFzaz4gbV9y
ZXZhbGlkYXRlU3R5bGVBdHRyVGFzazsKLSAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlVG9Gb2N1czsK
ICAgICBib29sIG1fc2VhcmNoaW5nRm9yTm9kZTsKICAgICBPd25QdHI8SGlnaGxpZ2h0Q29uZmln
PiBtX2luc3BlY3RNb2RlSGlnaGxpZ2h0Q29uZmlnOwogICAgIE93blB0cjxJbnNwZWN0b3JIaXN0
b3J5PiBtX2hpc3Rvcnk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUFnZW50LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NQWdlbnQuanMJKHJldmlzaW9uIDE0Njg4NikKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTgzNyw3ICs4
MzcsOCBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzID0gewogICAgIENoaWxkTm9kZUNv
dW50VXBkYXRlZDogIkNoaWxkTm9kZUNvdW50VXBkYXRlZCIsCiAgICAgSW5zcGVjdEVsZW1lbnRS
ZXF1ZXN0ZWQ6ICJJbnNwZWN0RWxlbWVudFJlcXVlc3RlZCIsCiAgICAgVW5kb1JlZG9SZXF1ZXN0
ZWQ6ICJVbmRvUmVkb1JlcXVlc3RlZCIsCi0gICAgVW5kb1JlZG9Db21wbGV0ZWQ6ICJVbmRvUmVk
b0NvbXBsZXRlZCIKKyAgICBVbmRvUmVkb0NvbXBsZXRlZDogIlVuZG9SZWRvQ29tcGxldGVkIiwK
KyAgICBJbnNwZWN0Tm9kZVJlcXVlc3RlZDogIkluc3BlY3ROb2RlUmVxdWVzdGVkIgogfQogCiBX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewpAQCAtMTE0Nyw2ICsxMTQ4LDE0IEBA
IFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKi8KKyAgICBfaW5z
cGVjdE5vZGVSZXF1ZXN0ZWQ6IGZ1bmN0aW9uKG5vZGVJZCkKKyAgICB7CisgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMuSW5z
cGVjdE5vZGVSZXF1ZXN0ZWQsIG5vZGVJZCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBxdWVyeQogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyKX0gc2Vh
cmNoQ2FsbGJhY2sKICAgICAgKi8KQEAgLTEzOTYsNiArMTQwNSwxNCBAQCBXZWJJbnNwZWN0b3Iu
RE9NRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBw
YXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKKyAgICAgKi8KKyAgICBpbnNwZWN0Tm9kZVJl
cXVlc3RlZDogZnVuY3Rpb24obm9kZUlkKQorICAgIHsKKyAgICAgICAgdGhpcy5fZG9tQWdlbnQu
X2luc3BlY3ROb2RlUmVxdWVzdGVkKG5vZGVJZCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAq
IEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
bmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMJKHJldmlzaW9uIDE0Njg4NikK
KysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MzksNiArNDM5LDcgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVX
aXRoQ2FwYWJpbGl0aQogICAgIHRoaXMuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclBhdXNlZCwgdGhpcy5fZGVi
dWdnZXJQYXVzZWQsIHRoaXMpOwogICAgIHRoaXMubmV0d29ya0xvZyA9IG5ldyBXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZygpOwogICAgIHRoaXMuZG9tQWdlbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRP
TUFnZW50KCk7CisgICAgdGhpcy5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5FdmVudHMuSW5zcGVjdE5vZGVSZXF1ZXN0ZWQsIHRoaXMuX2luc3BlY3ROb2Rl
UmVxdWVzdGVkLCB0aGlzKTsKICAgICB0aGlzLnJ1bnRpbWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0
b3IuUnVudGltZU1vZGVsKHRoaXMucmVzb3VyY2VUcmVlTW9kZWwpOwogCiAgICAgdGhpcy5jb25z
b2xlVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcoV2ViSW5zcGVjdG9yLldvcmtl
ck1hbmFnZXIuaXNXb3JrZXJGcm9udGVuZCgpKTsKQEAgLTk4OSw2ICs5OTAsMTEgQEAgV2ViSW5z
cGVjdG9yLnRhcmdldENyYXNoZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiSW5zcGVjdGVkIHRhcmdldCBoYXMgY3Jhc2hlZC4gT25jZSBpdCByZWxvYWRzIHdl
IHdpbGwgYXR0YWNoIHRvIGl0IGF1dG9tYXRpY2FsbHkuIikpKS5zaG93TW9kYWwoKTsKIH0KIAor
V2ViSW5zcGVjdG9yLl9pbnNwZWN0Tm9kZVJlcXVlc3RlZCA9IGZ1bmN0aW9uKGV2ZW50KQorewor
ICAgIFdlYkluc3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUoZXZlbnQuZGF0YSk7Cit9CisKIFdl
Ykluc3BlY3Rvci5fdXBkYXRlRm9jdXNlZE5vZGUgPSBmdW5jdGlvbihub2RlSWQpCiB7CiAgICAg
aWYgKFdlYkluc3BlY3Rvci5fbm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196325</attachid>
            <date>2013-04-03 04:21:25 -0700</date>
            <delta_ts>2013-04-10 02:27:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113398-20130403152115.patch</filename>
            <type>text/plain</type>
            <size>9465</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzQzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA0LTAyICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWRkIGV2ZW50IGZvciBub2RlIGluc3BlY3Rpb24gcmVxdWVzdCB3aGlsZSBpbiBpbnNwZWN0aW9u
IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MzM5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggYWRkcyBpbnNwZWN0Tm9kZVJlcXVlc3RlZCBldmVudCB0byBET00gZG9tYWluLiBU
aGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4KKyAgICAgICAgdXNlciBzZWxlY3RzIGEgbm9kZSB0byBp
bnNwZWN0LCB3aGlsZSBpbiBub2RlIGluc3BlY3QgbW9kZS4KKyAgICAgICAgQmVmb3JlLCB3ZSB1
c2VkIGluc3BlY3QgZXZlbnQgZnJvbSBpbnNwZWN0b3IgZG9tYWluLCB3aGljaCBzZWVtcyBpbmFw
cHJvcHJpYXRlIGluIHRoaXMgY2FzZS4KKworICAgICAgICBBbHNvLCBzZXBhcmF0ZWQgaW5zcGVj
dGlvbiBhcyBhIHJlc3VsdCBvZiBpbnNwZWN0IG1vZGUgKGluaXRpYXRlZCBpbiBJbnNwZWN0b3JE
T01BZ2VudCkKKyAgICAgICAgZnJvbSBpbnNwZWN0aW9uIGNhdXNlIG9mIGV4dGVybmFsIHJlcXVl
c3QgKEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3QgY2FsbCkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVj
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aW5zcGVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JET01BZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5wcm90b3R5cGUuX2luc3BlY3ROb2RlUmVxdWVzdGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3RvdHlwZS5kb2N1bWVudFVwZGF0ZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlLmluc3BlY3ROb2RlUmVx
dWVzdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci50YXJnZXRDcmFzaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5faW5zcGVjdE5vZGVSZXF1ZXN0ZWQpOgorCiAyMDEzLTA0LTAyICBBbmRyZXkgTHVzaG5pa292
ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzb3Vy
Y2UgbG9jYXRpb24gZ2V0cyBmcm96ZW4gYWZ0ZXIgaW5zcGVjdG9yIHJlbG9hZApJbmRleDogU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgkocmV2aXNpb24gMTQ2ODg2KQorKysg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDcxLDYgKzIwNzEsMTMgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmly
ZWQgd2hlbiA8Y29kZT5Eb2N1bWVudDwvY29kZT4gaGFzIGJlZW4gdG90YWxseSB1cGRhdGVkLiBO
b2RlIGlkcyBhcmUgbm8gbG9uZ2VyIHZhbGlkLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdE5vZGVSZXF1ZXN0ZWQiLAorICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUg
bm9kZSB0byBpbnNwZWN0LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gdGhlIG5vZGUgc2hvdWxkIGJlIGluc3BlY3RlZC4g
VGhpcyBoYXBwZW5zIGFmdGVyIGNhbGwgdG8gPGNvZGU+c2V0SW5zcGVjdE1vZGVFbmFibGVkPC9j
b2RlPi4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogInNldENoaWxkTm9kZXMiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmVudElkIiwgIiRyZWYiOiAiTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlBhcmVudCBub2RlIGlkIHRvIHBvcHVsYXRlIHdpdGggY2hpbGRy
ZW4uIiB9LApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNyArMzM2
LDE5IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdChOb2RlKgogCiAgICAgc2hv
dygpOwogCi0gICAgbV9kb21BZ2VudC0+aW5zcGVjdChub2RlKTsKKyAgICBpZiAobm9kZS0+bm9k
ZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgJiYgbm9kZS0+bm9kZVR5cGUoKSAhPSBOb2Rl
OjpET0NVTUVOVF9OT0RFKQorICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPm93bmVyRG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5qZWN0ZWRT
Y3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRT
Y3JpcHRGb3IobWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpKTsKKyAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKQorICAgICAgICByZXR1cm47CisgICAgaW5qZWN0ZWRTY3JpcHQu
aW5zcGVjdE5vZGUobm9kZSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxl
ZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAJKHJldmlzaW9uIDE0Njg4NikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNyw5ICsyMjcsNiBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZChJbnNwCiAgICAgbV9mcm9udGVu
ZCA9IGZyb250ZW5kLT5kb20oKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3Bl
Y3RvckRPTUFnZW50KHRoaXMpOwogICAgIG1fZG9jdW1lbnQgPSBtX3BhZ2VBZ2VudC0+bWFpbkZy
YW1lKCktPmRvY3VtZW50KCk7Ci0KLSAgICBpZiAobV9ub2RlVG9Gb2N1cykKLSAgICAgICAgZm9j
dXNOb2RlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQpA
QCAtMTAxMCwzOSArMTAwNywxOSBAQCBib29sIEluc3BlY3RvckRPTUFnZW50OjpoYW5kbGVUb3Vj
aEV2ZW50CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Omluc3BlY3QoTm9kZSogaW5zcGVjdGVk
Tm9kZSkKIHsKLSAgICBFcnJvclN0cmluZyBlcnJvcjsKLSAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9
IGluc3BlY3RlZE5vZGU7Ci0gICAgc2V0U2VhcmNoaW5nRm9yTm9kZSgmZXJyb3IsIGZhbHNlLCAw
KTsKLQotICAgIGlmIChub2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9ERSAmJiBu
b2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkRPQ1VNRU5UX05PREUpCi0gICAgICAgIG5vZGUgPSBu
b2RlLT5wYXJlbnROb2RlKCk7Ci0gICAgbV9ub2RlVG9Gb2N1cyA9IG5vZGU7Ci0KLSAgICBmb2N1
c05vZGUoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Zm9jdXNOb2RlKCkKLXsKICAg
ICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX25vZGVU
b0ZvY3VzKTsKLQotICAgIFJlZlB0cjxOb2RlPiBub2RlID0gbV9ub2RlVG9Gb2N1cy5nZXQoKTsK
LSAgICBtX25vZGVUb0ZvY3VzID0gMDsKLQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUt
Pm93bmVyRG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0g
ICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuOworICAgIE5vZGUqIG5vZGUgPSBpbnNwZWN0ZWROb2RlOworICAgIGlmIChu
b2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9ERSAmJiBub2RlLT5ub2RlVHlwZSgp
ICE9IE5vZGU6OkRPQ1VNRU5UX05PREUpCisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2Rl
KCk7CiAKLSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvcihtYWluV29ybGRTY3JpcHRTdGF0ZShmcmFtZSkp
OwotICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCi0gICAgICAgIHJldHVybjsK
KyAgICBpbnQgbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICBpZiAo
bm9kZUlkKQorICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0Tm9kZVJlcXVlc3RlZChub2RlSWQp
OwogCi0gICAgaW5qZWN0ZWRTY3JpcHQuaW5zcGVjdE5vZGUobm9kZS5nZXQoKSk7CisgICAgRXJy
b3JTdHJpbmcgZXJyb3I7CisgICAgc2V0U2VhcmNoaW5nRm9yTm9kZSgmZXJyb3IsIGZhbHNlLCAw
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
Y29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCShyZXZpc2lvbiAxNDY4ODYpCisr
KyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTg0LDggKzE4NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZU1vdXNlUHJl
c3MoKTsKICAgICBib29sIGhhbmRsZVRvdWNoRXZlbnQoTm9kZSopOwogICAgIHZvaWQgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpOwotICAgIHZvaWQgaW5zcGVjdChOb2RlKik7Ci0gICAgdm9pZCBmb2N1c05vZGUoKTsK
IAogICAgIEluc3BlY3Rvckhpc3RvcnkqIGhpc3RvcnkoKSB7IHJldHVybiBtX2hpc3RvcnkuZ2V0
KCk7IH0KIApAQCAtMjE5LDYgKzIxNyw4IEBAIHByaXZhdGU6CiAgICAgTm9kZSogYXNzZXJ0RWRp
dGFibGVOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiAgICAgRWxlbWVudCogYXNzZXJ0
RWRpdGFibGVFbGVtZW50KEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CiAKKyAgICB2b2lkIGlu
c3BlY3QoTm9kZSopOworCiAgICAgaW50IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSopOwog
ICAgIHZvaWQgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKGludCBub2RlSWQsIGludCBkZXB0aCA9
IDEpOwogCkBAIC0yNTIsNyArMjUyLDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gPiBTZWFyY2hSZXN1bHRzOwogICAgIFNlYXJj
aFJlc3VsdHMgbV9zZWFyY2hSZXN1bHRzOwogICAgIE93blB0cjxSZXZhbGlkYXRlU3R5bGVBdHRy
aWJ1dGVUYXNrPiBtX3JldmFsaWRhdGVTdHlsZUF0dHJUYXNrOwotICAgIFJlZlB0cjxOb2RlPiBt
X25vZGVUb0ZvY3VzOwogICAgIGJvb2wgbV9zZWFyY2hpbmdGb3JOb2RlOwogICAgIE93blB0cjxI
aWdobGlnaHRDb25maWc+IG1faW5zcGVjdE1vZGVIaWdobGlnaHRDb25maWc7CiAgICAgT3duUHRy
PEluc3BlY3Rvckhpc3Rvcnk+IG1faGlzdG9yeTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwkocmV2aXNpb24gMTQ2ODg2KQorKysgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwkod29ya2luZyBjb3B5
KQpAQCAtODM3LDcgKzgzNyw4IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVudHMgPSB7CiAg
ICAgQ2hpbGROb2RlQ291bnRVcGRhdGVkOiAiQ2hpbGROb2RlQ291bnRVcGRhdGVkIiwKICAgICBJ
bnNwZWN0RWxlbWVudFJlcXVlc3RlZDogIkluc3BlY3RFbGVtZW50UmVxdWVzdGVkIiwKICAgICBV
bmRvUmVkb1JlcXVlc3RlZDogIlVuZG9SZWRvUmVxdWVzdGVkIiwKLSAgICBVbmRvUmVkb0NvbXBs
ZXRlZDogIlVuZG9SZWRvQ29tcGxldGVkIgorICAgIFVuZG9SZWRvQ29tcGxldGVkOiAiVW5kb1Jl
ZG9Db21wbGV0ZWQiLAorICAgIEluc3BlY3ROb2RlUmVxdWVzdGVkOiAiSW5zcGVjdE5vZGVSZXF1
ZXN0ZWQiCiB9CiAKIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CkBAIC0xMTQ3
LDYgKzExNDgsMTQgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICB9
LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAorICAg
ICAqLworICAgIF9pbnNwZWN0Tm9kZVJlcXVlc3RlZDogZnVuY3Rpb24obm9kZUlkKQorICAgIHsK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTUFn
ZW50LkV2ZW50cy5JbnNwZWN0Tm9kZVJlcXVlc3RlZCwgbm9kZUlkKTsKKyAgICB9LAorCisgICAg
LyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5CiAgICAgICogQHBhcmFtIHtmdW5jdGlv
bihudW1iZXIpfSBzZWFyY2hDYWxsYmFjawogICAgICAqLwpAQCAtMTM5Niw2ICsxNDA1LDE0IEBA
IFdlYkluc3BlY3Rvci5ET01EaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCisgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAorICAgICAqLworICAg
IGluc3BlY3ROb2RlUmVxdWVzdGVkOiBmdW5jdGlvbihub2RlSWQpCisgICAgeworICAgICAgICB0
aGlzLl9kb21BZ2VudC5faW5zcGVjdE5vZGVSZXF1ZXN0ZWQobm9kZUlkKTsKKyAgICB9LAorCisg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJZAogICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBuYW1lCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwkocmV2
aXNpb24gMTQ2ODg2KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw2ICs0MzksNyBAQCBXZWJJbnNwZWN0b3Iu
X2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpCiAgICAgdGhpcy5kZWJ1Z2dlck1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUGF1
c2VkLCB0aGlzLl9kZWJ1Z2dlclBhdXNlZCwgdGhpcyk7CiAgICAgdGhpcy5uZXR3b3JrTG9nID0g
bmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nKCk7CiAgICAgdGhpcy5kb21BZ2VudCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRE9NQWdlbnQoKTsKKyAgICB0aGlzLmRvbUFnZW50LmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5JbnNwZWN0Tm9kZVJlcXVlc3RlZCwgdGhp
cy5faW5zcGVjdE5vZGVSZXF1ZXN0ZWQsIHRoaXMpOwogICAgIHRoaXMucnVudGltZU1vZGVsID0g
bmV3IFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwodGhpcy5yZXNvdXJjZVRyZWVNb2RlbCk7CiAK
ICAgICB0aGlzLmNvbnNvbGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyhXZWJJ
bnNwZWN0b3IuV29ya2VyTWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkpOwpAQCAtOTg5LDYgKzk5
MCwxMSBAQCBXZWJJbnNwZWN0b3IudGFyZ2V0Q3Jhc2hlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbnNwZWN0ZWQgdGFyZ2V0IGhhcyBjcmFzaGVkLiBPbmNl
IGl0IHJlbG9hZHMgd2Ugd2lsbCBhdHRhY2ggdG8gaXQgYXV0b21hdGljYWxseS4iKSkpLnNob3dN
b2RhbCgpOwogfQogCitXZWJJbnNwZWN0b3IuX2luc3BlY3ROb2RlUmVxdWVzdGVkID0gZnVuY3Rp
b24oZXZlbnQpCit7CisgICAgV2ViSW5zcGVjdG9yLl91cGRhdGVGb2N1c2VkTm9kZShldmVudC5k
YXRhKTsKK30KKwogV2ViSW5zcGVjdG9yLl91cGRhdGVGb2N1c2VkTm9kZSA9IGZ1bmN0aW9uKG5v
ZGVJZCkKIHsKICAgICBpZiAoV2ViSW5zcGVjdG9yLl9ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQp
IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>