<?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>110921</bug_id>
          
          <creation_ts>2013-02-26 16:11:31 -0800</creation_ts>
          <short_desc>Web Inspector: allow referencing of nodes that have not been pushed to the front-end</short_desc>
          <delta_ts>2013-04-02 07:27:19 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Dmitry Gozman">dgozman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>dgozman</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-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842480</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-26 16:11:31 -0800</bug_when>
    <thetext>In order to support https://bugs.webkit.org/show_bug.cgi?id=110407, the front-end will need to receive some information related to a node before that node is pushed, with a simple &quot;backend node identifier&quot; used to identify the node. The front-end should then be able to request the node with the given backend node id to be pushed to the front-end and subsequently, a node pushed to the front-end should list both its backend node id and its regular node id, as it will be necessary for the LayerTreeAgent to be able to identify a node for the given backend node id has now been pushed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842481</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-26 16:11:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/13300008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842490</commentid>
    <comment_count>2</comment_count>
      <attachid>190386</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-26 16:21:11 -0800</bug_when>
    <thetext>Created attachment 190386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843972</commentid>
    <comment_count>3</comment_count>
      <attachid>190386</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-28 04:18:20 -0800</bug_when>
    <thetext>Comment on attachment 190386
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:1732
&gt; +                    { &quot;name&quot;: &quot;backendNodeId&quot;, &quot;$ref&quot;: &quot;BackendNodeId&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Node identifier used to identify this node prior to being pushing to the front-end. This identifier expires as soon as the node is pushed and should only be used to update id references for nodes that have been referenced, prior to pushing, by a backend node identifier.&quot; }

Since you get a hold of Node object, it means that this id is useless. Why sending it here? Callers should manage them and tear them down in the callbacks on their own.

&gt; Source/WebCore/inspector/InspectorDOMAgent.h:248
&gt; +    HashMap&lt;RefPtr&lt;Node&gt;, BackendNodeId&gt; m_nodeToBackendIdMap;

You don&apos;t want to retain nodes by backend ids - eventually you blow the heap. There even is no way to dispose them. You should keep the raw pointer and clean it up upon node deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844089</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-28 08:07:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 190386 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190386&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:1732
&gt; &gt; +                    { &quot;name&quot;: &quot;backendNodeId&quot;, &quot;$ref&quot;: &quot;BackendNodeId&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Node identifier used to identify this node prior to being pushing to the front-end. This identifier expires as soon as the node is pushed and should only be used to update id references for nodes that have been referenced, prior to pushing, by a backend node identifier.&quot; }
&gt; 
&gt; Since you get a hold of Node object, it means that this id is useless. Why sending it here? Callers should manage them and tear them down in the callbacks on their own.

I&apos;m not sure how that can be done in all cases. Imagine you call pushNodeByBackendIdToFrontend which could be made to return the nodeId, what if an ancestor of that node has a backendId as well and get pushed in that call? How will the front-end be able to establish that node with backendNodeId -3 is the same as node with nodeId 22 that was pushed but not explicitly requested?

&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorDOMAgent.h:248
&gt; &gt; +    HashMap&lt;RefPtr&lt;Node&gt;, BackendNodeId&gt; m_nodeToBackendIdMap;
&gt; 
&gt; You don&apos;t want to retain nodes by backend ids - eventually you blow the heap. There even is no way to dispose them. You should keep the raw pointer and clean it up upon node deletion.

Will fix, thanks for catching this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844096</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-28 08:14:33 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure how that can be done in all cases. Imagine you call pushNodeByBackendIdToFrontend which could be made to return the nodeId, what if an ancestor of that node has a backendId as well and get pushed in that call? How will the front-end be able to establish that node with backendNodeId -3 is the same as node with nodeId 22 that was pushed but not explicitly requested?

Lets discard backendId upon explicit pushNodeByBackendIdToFrontend then? I am sure that most of the call sites would like to not think about whether node with given backend id was already sent to the front-end. They would not mind making a roundtrip for the conversion and would operate backend ids only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844119</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-28 08:24:34 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; I&apos;m not sure how that can be done in all cases. Imagine you call pushNodeByBackendIdToFrontend which could be made to return the nodeId, what if an ancestor of that node has a backendId as well and get pushed in that call? How will the front-end be able to establish that node with backendNodeId -3 is the same as node with nodeId 22 that was pushed but not explicitly requested?
&gt; 
&gt; Lets discard backendId upon explicit pushNodeByBackendIdToFrontend then? I am sure that most of the call sites would like to not think about whether node with given backend id was already sent to the front-end. They would not mind making a roundtrip for the conversion and would operate backend ids only.

So we wouldn&apos;t have a backendNodeId member on the Node object sent to the front-end and instead calling pushNodeByBackendIdToFrontend on a node that has already been pushed would just return the nodeId and then discard the backendNodeId. Am I reading this right? This sounds good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844216</commentid>
    <comment_count>7</comment_count>
      <attachid>190757</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-28 10:42:57 -0800</bug_when>
    <thetext>Created attachment 190757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844250</commentid>
    <comment_count>8</comment_count>
      <attachid>190757</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-02-28 11:19:35 -0800</bug_when>
    <thetext>Comment on attachment 190757
Patch

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

I don&apos;t see the code to clean up m_backendIdToNode when Node is removed. Something in InspectorDOMAgent::unbind is likely needed.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1746
&gt; +    if (Node * node = m_backendIdToNode.get(backendNodeId)) {

Style: Node* node = ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844278</commentid>
    <comment_count>9</comment_count>
      <attachid>190757</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-28 11:34:47 -0800</bug_when>
    <thetext>Comment on attachment 190757
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1746
&gt;&gt; +    if (Node * node = m_backendIdToNode.get(backendNodeId)) {
&gt; 
&gt; Style: Node* node = ...

What if the node was deleted? You should clean up your binding upon node deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844291</commentid>
    <comment_count>10</comment_count>
      <attachid>190769</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-28 11:41:49 -0800</bug_when>
    <thetext>Created attachment 190769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844295</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-02-28 11:42:32 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 190757 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190757&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1746
&gt; &gt;&gt; +    if (Node * node = m_backendIdToNode.get(backendNodeId)) {
&gt; &gt; 
&gt; &gt; Style: Node* node = ...
&gt; 
&gt; What if the node was deleted? You should clean up your binding upon node deletion.

I think this is addressed in the newer patch where we check for a backendNodeId for the node passed to unbind().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844308</commentid>
    <comment_count>12</comment_count>
      <attachid>190769</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-28 11:49:15 -0800</bug_when>
    <thetext>Comment on attachment 190769
Patch

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

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:324
&gt; +    if (m_nodeToBackendIdMap.contains(node)) {

This method will only call itself recursively in case of mapped nodes / childrenRequested, etc. At the same time, your node might be in the removed subtree.

There is a couple of solutions I see depending on what operation you want to be fast:
1) in case backend map is not empty, traverse the entire subtree being removed here
2) when backendId is being created, generate backendids for the entire path from node to root. Then know for sure whether you need to traverse nodes here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845802</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-03-02 07:50:53 -0800</bug_when>
    <thetext>This is no longer relevant, https://bugs.webkit.org/show_bug.cgi?id=110407 will be addressed differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865437</commentid>
    <comment_count>14</comment_count>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-28 06:25:00 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865438</commentid>
    <comment_count>15</comment_count>
      <attachid>195552</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-28 06:25:04 -0700</bug_when>
    <thetext>Created attachment 195552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865440</commentid>
    <comment_count>16</comment_count>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-28 06:28:58 -0700</bug_when>
    <thetext>This will be needed for https://bugs.webkit.org/show_bug.cgi?id=113398.
Patch rebaselined, and comment addressed. Please, take a look.

(In reply to comment #12)
&gt; (From update of attachment 190769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190769&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:324
&gt; &gt; +    if (m_nodeToBackendIdMap.contains(node)) {
&gt; 
&gt; This method will only call itself recursively in case of mapped nodes / childrenRequested, etc. At the same time, your node might be in the removed subtree.
&gt; 
&gt; There is a couple of solutions I see depending on what operation you want to be fast:
&gt; 1) in case backend map is not empty, traverse the entire subtree being removed here
&gt; 2) when backendId is being created, generate backendids for the entire path from node to root. Then know for sure whether you need to traverse nodes here.

Used option 2 here. I do generate backendId for all parents of the node, and so I&apos;m guaranteed that recursive unbind will process all nodes with backendId.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865444</commentid>
    <comment_count>17</comment_count>
      <attachid>195555</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-28 06:33:18 -0700</bug_when>
    <thetext>Created attachment 195555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866114</commentid>
    <comment_count>18</comment_count>
      <attachid>195555</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-29 06:15:38 -0700</bug_when>
    <thetext>Comment on attachment 195555
Patch

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

We need to test this.

&gt; Source/WebCore/inspector/Inspector.json:1722
&gt; +                &quot;description&quot;: &quot;Unique DOM node identifier used to reference a node that may not have been pushed to the front-end.&quot;

&quot;hidden&quot;: true

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:326
&gt; +        m_backendIdToNode.remove(backendId);

Thinking about the future... If we want to re-use ids after say timeline was stopped, we might want these nodes retained. I.e. we might want to have a named object group that will be discarded either on demand or when all its backend ids are resolved to node ids. Just thinking out loud.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:353
&gt; +    if (nodesMap-&gt;contains(node))

You don&apos;t need to change this.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:630
&gt; +        current = innerParentNode(current);

You don&apos;t need to retain parent path.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1762
&gt; +        *nodeId = pushNodePathToFrontend(node);

You should discard backend id at this point (clean up the map)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866123</commentid>
    <comment_count>19</comment_count>
      <attachid>195555</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-29 06:30:46 -0700</bug_when>
    <thetext>Comment on attachment 195555
Patch

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

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:627
&gt; +        BackendNodeId id = m_lastBackendNodeId--;

nit: it&apos;s either --m_lastBackendNodeId, or m_nextBackendNodeId--</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866173</commentid>
    <comment_count>20</comment_count>
      <attachid>195749</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-29 08:14:31 -0700</bug_when>
    <thetext>Created attachment 195749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866175</commentid>
    <comment_count>21</comment_count>
      <attachid>195555</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-03-29 08:15:41 -0700</bug_when>
    <thetext>Comment on attachment 195555
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:1722
&gt;&gt; +                &quot;description&quot;: &quot;Unique DOM node identifier used to reference a node that may not have been pushed to the front-end.&quot;
&gt; 
&gt; &quot;hidden&quot;: true

Done.

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:627
&gt;&gt; +        BackendNodeId id = m_lastBackendNodeId--;
&gt; 
&gt; nit: it&apos;s either --m_lastBackendNodeId, or m_nextBackendNodeId--

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867057</commentid>
    <comment_count>22</comment_count>
      <attachid>195749</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-04-01 05:15:20 -0700</bug_when>
    <thetext>Comment on attachment 195749
Patch

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

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:631
&gt; +void InspectorDOMAgent::releaseBackendIdsForNodeGroup(const String&amp; nodeGroup)

This method should be exposed via the protocol.

&gt; Source/WebCore/inspector/InspectorDOMAgent.h:250
&gt; +    HashMap&lt;String, OwnPtr&lt;NodeToBackendIdMap&gt; &gt; m_nodeGroupToBackendIdMap;

Lets store by value instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867116</commentid>
    <comment_count>23</comment_count>
      <attachid>195968</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-01 07:50:29 -0700</bug_when>
    <thetext>Created attachment 195968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867119</commentid>
    <comment_count>24</comment_count>
      <attachid>195749</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-01 07:59:40 -0700</bug_when>
    <thetext>Comment on attachment 195749
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:631
&gt;&gt; +void InspectorDOMAgent::releaseBackendIdsForNodeGroup(const String&amp; nodeGroup)
&gt; 
&gt; This method should be exposed via the protocol.

Done.

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.h:250
&gt;&gt; +    HashMap&lt;String, OwnPtr&lt;NodeToBackendIdMap&gt; &gt; m_nodeGroupToBackendIdMap;
&gt; 
&gt; Lets store by value instead.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867121</commentid>
    <comment_count>25</comment_count>
      <attachid>195968</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-04-01 08:09:13 -0700</bug_when>
    <thetext>Comment on attachment 195968
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:2022
&gt; +                &quot;name&quot;: &quot;releaseBackendIdsForNodeGroup&quot;,

releaseBackendNodeIds

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:616
&gt; +        m_nodeGroupToBackendIdMap.set(nodeGroup, NodeToBackendIdMap());

You don&apos;t need this, object will be created automatically upon access.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:619
&gt; +    BackendNodeId id = map.get(node);

id = m_nodeGroupToBackendIdMap[nodeGroup].get(node);

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:623
&gt; +        m_backendIdToNode.set(id, std::make_pair(node, nodeGroup));

m_nodeGroupToBackendIdMap[nodeGroup].set(id, ...);

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:632
&gt; +        NodeToBackendIdMap&amp; map = *m_nodeGroupToBackendIdMap.find(nodeGroup).values();

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867142</commentid>
    <comment_count>26</comment_count>
      <attachid>195968</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-04-01 08:49:10 -0700</bug_when>
    <thetext>Comment on attachment 195968
Patch

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

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:618
&gt; +    NodeToBackendIdMap&amp; map = *m_nodeGroupToBackendIdMap.find(nodeGroup).values();

&quot;values()&quot; -&gt; &quot;-&gt;value&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867695</commentid>
    <comment_count>27</comment_count>
      <attachid>195968</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 03:09:09 -0700</bug_when>
    <thetext>Comment on attachment 195968
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:2022
&gt;&gt; +                &quot;name&quot;: &quot;releaseBackendIdsForNodeGroup&quot;,
&gt; 
&gt; releaseBackendNodeIds

Done.

&gt;&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:618
&gt;&gt; +    NodeToBackendIdMap&amp; map = *m_nodeGroupToBackendIdMap.find(nodeGroup).values();
&gt; 
&gt; &quot;values()&quot; -&gt; &quot;-&gt;value&quot;

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867696</commentid>
    <comment_count>28</comment_count>
      <attachid>196110</attachid>
    <who name="Dmitry Gozman">dgozman</who>
    <bug_when>2013-04-02 03:09:44 -0700</bug_when>
    <thetext>Created attachment 196110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867814</commentid>
    <comment_count>29</comment_count>
      <attachid>196110</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 07:27:14 -0700</bug_when>
    <thetext>Comment on attachment 196110
Patch

Clearing flags on attachment: 196110

Committed r147428: &lt;http://trac.webkit.org/changeset/147428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867815</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 07:27:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190386</attachid>
            <date>2013-02-26 16:21:11 -0800</date>
            <delta_ts>2013-02-28 10:42:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130226161715.patch</filename>
            <type>text/plain</type>
            <size>11620</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAxNDdmODUzODQ0Mzg2
N2MzZmVlYzQ5ZjNmMDNjNTExNzZkNDg5Ni4uZjY3ZGQ0NzdjZTQ1MDc1NDhlNGEwOWJhYjlkOWFi
NzhmMzRkMTdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDEzLTAyLTI2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBIGNvcmUgaXNzdWUgd2FzIHRoZSBsb29zZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBsYXll
cnMgYW5kIG5vZGVzIChpbiB0aGUgRE9NCisgICAgICAgIG9yIGZvciBnZW5lcmF0ZWQgY29udGVu
dCkuIEl0IGlzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIHByb3ZpZGUgYSBub2RlIGlkIGZvcgor
ICAgICAgICBhIGxheWVyIHNvIHRoYXQgdGhlIGZyb250LWVuZCBjYW4gY2hlY2sgZm9yIG11dGF0
aW9ucyBvZiB0aGUgbGF5ZXIgdHJlZSB0YWtpbmcKKyAgICAgICAgaW50byBhY2NvdW50IG5vZGUg
aWRzIGFzIHdlbGwgYXMgbGF5ZXIgaWRzIGFzIGxheWVycyBjYW4gYmUgZWFzaWx5IHRyYXNoZWQg
YW5kCisgICAgICAgIHJlY3JlYXRlZCBkdXJpbmcgYW5pbWF0aW9ucyAoYW5kIG90aGVyIG9wZXJh
dGlvbnMpIGFuZCB0aGUgb25seSBjb25zdGFudCB0bworICAgICAgICBpZGVudGlmeSB0aGVtIGlu
IHRoYXQgY2FzZSB3b3VsZCBiZSB0aGUgYXNzb2NpYXRlZCBub2RlJ3MgaWQuCisKKyAgICAgICAg
QXMgd2UgZG9uJ3Qgd2FudCB0byBwdXNoIG5vZGUgaWRzIGRpcmVjdGx5IGFzIHdlIHNlbmQgbGF5
ZXIgaW5mb3JtYXRpb24gdG8gdGhlCisgICAgICAgIGZyb250LWVuZCwgd2UgaW50cm9kdWNlIGEg
bmV3IGZhY2lsaXR5IGluIHRoZSBJbnNwZWN0b3JET01BZ2VudCBhbGxvd2luZyB1cyB0bworICAg
ICAgICBvYnRhaW4gYW4gaWQgZm9yIGEgbm9kZSB3aXRob3V0IHB1c2hpbmcgaXQgdG8gdGhlIGZy
b250LWVuZCBkaXJlY3RseS4gVGhlIG5ldworICAgICAgICBJbnNwZWN0b3JET01BZ2VudDo6YmFj
a2VuZE5vZGVJZEZvck5vZGUoKSBtZXRob2QgZG9lcyBqdXN0IHRoYXQgYW5kIHRoZSB2YWx1ZQor
ICAgICAgICByZXR1cm5lZCBpcyBleHBvc2VkIGluIHRoZSBwcm90b2NvbCBhcyBhIEJhY2tlbmRO
b2RlSWQsIGFsbG93aW5nIHRvIGRpc3Rpbmd1aXNoCisgICAgICAgIGJldHdlZW4gdGhlIGV4aXN0
aW5nIE5vZGVJZCB3aGljaCBpbXBsaWVzIHRoZSBub2RlIGhhcyBiZWVuIHB1c2hlZC4KKworICAg
ICAgICBUaGUgaWRzIGdlbmVyYXRlZCBieSB0aGlzIG5ldyBtZXRob2QgYXJlIGV4cG9zZWQgYXMg
dGhlIG9wdGlvbmFsIGJhY2tlbmROb2RlSWQKKyAgICAgICAgcHJvcGVydHkgb24gdGhlIE5vZGUg
b2JqZWN0IHdoZW4gdGhlIG5vZGUgaXMgaW5kZWVkIHB1c2hlZCB0byB0aGUgZnJvbnQtZW5kLgor
ICAgICAgICBJdCBpcyBjcml0aWNhbCB0byBwcm92aWRlIHRoZSBiYWNrZW5kIG5vZGUgaWQgdG8g
dGhlIGZyb250LWVuZCBhcyB3ZWxsIGFzIHRoZQorICAgICAgICByZWd1bGFyIG5vZGUgaWQgYXMg
dGhlIGZyb250LWVuZCB3aWxsIG5lZWQgdG8gYmUgYWJsZSB0byBlc3RhYmxpc2ggdGhlIGxpbmsK
KyAgICAgICAgYmV0d2VlbiB0aGVzZSBpZGVudGlmaWVycy4KKworICAgICAgICBBZGRpdGlvbmFs
bHksIHdlIGFkZCBhIG5ldyBwcm90b2NvbCBtZXRob2QgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJv
bnRlbmQgdG8gdGhlCisgICAgICAgIEluc3BlY3RvckRPTUFnZW50IGFsbG93aW5nIHRvIHB1c2gg
YSBub2RlIGJ5IGl0cyBiYWNrZW5kIG5vZGUgaWQgd2hlbiB0aGUgZnJvbnQtZW5kCisgICAgICAg
IG5lZWRzIHRvIGdhdGhlciBpbmZvcm1hdGlvbiBhYm91dCBhIG5vZGUgaWRlbnRpZmllZCBvbmx5
IHdpdGggYSBiYWNrZW5kIG5vZGUgaWQuCisKKyAgICAgICAgVGhlcmUgYXJlIHByZXNlbnRseSBu
byB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGN1cnJlbnQgd2F5IGZvciB0aGUgcHJvdG9jb2wgdG8K
KyAgICAgICAgZXZlciBzZW5kIG91dCBkYXRhIHJlZmVyZW5jaW5nIGEgbm9kZSBieSBpdHMgYmFj
a2VuZCBub2RlIGlkLiBUaGlzIHdpbGwgY29tZQorICAgICAgICB3aXRoIGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzExMDQwNyBhbmQgdGVzdGluZyBjb3ZlcmFnZSB3aWxsIGJlIHByb3ZpZGVkIHRoZW4u
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246IEFkZCB0aGUgbmV3IEJhY2tl
bmROb2RlSWQgdHlwZSwgdGhlIG9wdGlvbmFsCisgICAgICAgIGJhY2tlbmROb2RlSWQgcHJvcGVy
dHkgb24gdGhlIE5vZGUgb2JqZWN0IGFuZCB0aGUgbmV3IHB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zy
b250ZW5kCisgICAgICAgIG1ldGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3Rv
ckRPTUFnZW50KTogUHJvdmlkZSB0aGUgY291bnRlciBmb3IgYmFja2VuZAorICAgICAgICBub2Rl
IGlkcywgd2hpY2ggd2UgZGVjcmVhc2UgZnJvbSAtMiwgYXMgLTEgaXMgdGhlIGtleSB1c2VkIHRv
IGlkZW50aWZ5IGRlbGV0ZWQKKyAgICAgICAgdmFsdWVzIGZvciBoYXNoIG1hcHMuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRpbmdzKTogQ2xlYXIgdGhl
IGhhc2ggbWFwcyByZWxhdGVkIHRvCisgICAgICAgIGJpbmRpbmcgb2Ygbm9kZXMgd2l0aCBiYWNr
ZW5kIG5vZGUgaWRzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tl
bmROb2RlSWRGb3JOb2RlKTogTWV0aG9kIGFsbG93aW5nIHRvIG9idGFpbgorICAgICAgICBhIGJh
Y2tlbmQgaWQgZm9yIGEgbm9kZS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZSk6IEFkZCB0aGUgYmFja2Vu
ZE5vZGVJZCBwcm9wZXJ0eQorICAgICAgICBpbiBjYXNlIGEgYmFja2VuZCBub2RlIGlkIGhhZCBi
ZWVuIGdlbmVyYXRlZCBmb3IgdGhpcyBub2RlLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kKTogTmV3IG1ldGhvZCBhbGxv
d2luZworICAgICAgICB0aGUgZnJvbnQtZW5kIHRvIHJlcXVlc3QgYSBub2RlIHRvIGJlIHB1c2hl
ZCB0byB0aGUgZnJvbnQtZW5kIGJhc2VkIG9uIGEgYmFja2VuZAorICAgICAgICBub2RlIGlkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChJbnNwZWN0b3JET01BZ2VudCk6CisKKzIwMTMtMDItMjYgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5u
b3QgZGVlcCBleHBhbmQgYW4gZWxlbWVudCB0aGF0IGhhcyBwcmV2aW91c2x5IGJlZW4gcGFydGlh
bGx5IGV4cGFuZGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA0MjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4
IDNlZDMxMTc0YzNkMGE2MTkwNmI2MWU2NDg5MGRmYTVhNDU0MTg3NWEuLmQzOTlhNzdjNzc4ZmM0
YTE2YjIxYzI4Yzc2NGI2MjNmNGY4MGVhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24KQEAgLTE3MDEsNiArMTcwMSwxMSBAQAogICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJVbmlxdWUgRE9NIG5vZGUgaWRlbnRpZmllci4iCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJCYWNrZW5kTm9kZUlkIiwKKyAg
ICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZpZXIgdXNlZCB0byByZWZlcmVuY2UgYSBu
b2RlIHRoYXQgbWF5IG5vdCBoYXZlIGJlZW4gcHVzaGVkIHRvIHRoZSBmcm9udC1lbmQuIgorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAiaWQiOiAiTm9kZSIs
CiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKQEAgLTE3MjMsNyArMTcyOCw4IEBACiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBJRCBmb3IgZnJhbWUgb3duZXIgZWxlbWVudHMu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRlbnREb2N1bWVudCIsICIk
cmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBk
b2N1bWVudCBmb3IgZnJhbWUgb3duZXIgZWxlbWVudHMuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNoYWRvd1Jvb3RzIiwgInR5cGUiOiAiYXJyYXkiLCAib3B0aW9uYWwiOiB0
cnVlLCAiaXRlbXMiOiB7ICIkcmVmIjogIk5vZGUiIH0sICJkZXNjcmlwdGlvbiI6ICJTaGFkb3cg
cm9vdCBsaXN0IGZvciBnaXZlbiBlbGVtZW50IGhvc3QuIiB9LAotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInRlbXBsYXRlQ29udGVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmcmFnbWVudCBmb3IgdGVt
cGxhdGUgZWxlbWVudHMiIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZW1wbGF0
ZUNvbnRlbnQiLCAiJHJlZiI6ICJOb2RlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNvbnRlbnQgZG9jdW1lbnQgZnJhZ21lbnQgZm9yIHRlbXBsYXRlIGVsZW1lbnRzIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2tlbmROb2RlSWQiLCAiJHJlZiI6ICJC
YWNrZW5kTm9kZUlkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk5vZGUgaWRl
bnRpZmllciB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgbm9kZSBwcmlvciB0byBiZWluZyBwdXNoaW5n
IHRvIHRoZSBmcm9udC1lbmQuIFRoaXMgaWRlbnRpZmllciBleHBpcmVzIGFzIHNvb24gYXMgdGhl
IG5vZGUgaXMgcHVzaGVkIGFuZCBzaG91bGQgb25seSBiZSB1c2VkIHRvIHVwZGF0ZSBpZCByZWZl
cmVuY2VzIGZvciBub2RlcyB0aGF0IGhhdmUgYmVlbiByZWZlcmVuY2VkLCBwcmlvciB0byBwdXNo
aW5nLCBieSBhIGJhY2tlbmQgbm9kZSBpZGVudGlmaWVyLiIgfQogICAgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBpbnRlcmFjdGlvbiBpcyBpbXBs
ZW1lbnRlZCBpbiB0ZXJtcyBvZiBtaXJyb3Igb2JqZWN0cyB0aGF0IHJlcHJlc2VudCB0aGUgYWN0
dWFsIERPTSBub2Rlcy4gRE9NTm9kZSBpcyBhIGJhc2Ugbm9kZSBtaXJyb3IgdHlwZS4iCiAgICAg
ICAgICAgICB9LApAQCAtMTk4Niw2ICsxOTkyLDE0IEBACiAgICAgICAgICAgICAgICAgImhpZGRl
biI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAicHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2tlbmRO
b2RlSWQiLCAiJHJlZiI6ICJCYWNrZW5kTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBiYWNr
ZWQgbm9kZSBpZCBvZiB0aGUgbm9kZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0aGF0IHRoZSBub2RlIGlzIHNlbnQgdG8g
dGhlIGNhbGxlciBnaXZlbiBpdHMgYmFja2VuZCBub2RlIGlkLiIsCisgICAgICAgICAgICAgICAg
ImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgIm5hbWUiOiAicmVzb2x2ZU5vZGUiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5v
ZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0byByZXNvbHZlLiIgfSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDBi
ZDAzMzQ0YTI0NzlhY2ViMGM3MjY3ZThhOTY2Mjc4ZWQ5YzE3OWQuLmJmYjRhNzhmOTg1OTc5OTY5
ZWU3YTAzNGRkNzc5YWVmYzI2ZDA0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMjA3LDYgKzIwNyw3IEBAIEluc3BlY3RvckRPTUFn
ZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2RvbUxpc3RlbmVyKDApCiAg
ICAgLCBtX2xhc3ROb2RlSWQoMSkKKyAgICAsIG1fbGFzdEJhY2tlbmROb2RlSWQoLTIpCiAgICAg
LCBtX3NlYXJjaGluZ0Zvck5vZGUoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzQXR0cmlidXRlTW9k
aWZpZWRFdmVudChmYWxzZSkKIHsKQEAgLTQ3MSw2ICs0NzIsOCBAQCB2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpkaXNjYXJkQmluZGluZ3MoKQogICAgIG1faWRUb05vZGUuY2xlYXIoKTsKICAgICBy
ZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwogICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY2xlYXIoKTsK
KyAgICBtX2JhY2tlbmRJZFRvTm9kZS5jbGVhcigpOworICAgIG1fbm9kZVRvQmFja2VuZElkTWFw
LmNsZWFyKCk7CiB9CiAKIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5k
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IGRvY3VtZW50Tm9kZUlkLCBOb2RlKiBub2Rl
VG9QdXNoKQpAQCAtNjE2LDYgKzYxOSwyMiBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJvdW5k
Tm9kZUlkKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQo
bm9kZSk7CiB9CiAKK0JhY2tlbmROb2RlSWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2Rl
SWRGb3JOb2RlKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIEJhY2tlbmROb2RlSWQgaWQgPSBtX25vZGVUb0JhY2tlbmRJZE1hcC5nZXQobm9k
ZSk7CisgICAgaWYgKCFpZCkgeworICAgICAgICBpZCA9IG1fbGFzdEJhY2tlbmROb2RlSWQtLTsK
KyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAuc2V0KG5vZGUsIGlkKTsKKyAgICAgICAgbV9i
YWNrZW5kSWRUb05vZGUuc2V0KGlkLCBub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gaWQ7Cit9
CisKKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0QXR0cmlidXRlVmFsdWUoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgRWxlbWVudCogZWxlbWVudCA9IGFzc2VydEVkaXRhYmxl
RWxlbWVudChlcnJvclN0cmluZywgZWxlbWVudElkKTsKQEAgLTEzODAsNiArMTM5OSwxMyBAQCBQ
YXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWls
ZE9iamVjdEZvck5vZGUoTm9kZSogbgogICAgICAgICB2YWx1ZS0+c2V0TmFtZShhdHRyaWJ1dGUt
Pm5hbWUoKSk7CiAgICAgICAgIHZhbHVlLT5zZXRWYWx1ZShhdHRyaWJ1dGUtPnZhbHVlKCkpOwog
ICAgIH0KKworICAgIGlmIChCYWNrZW5kTm9kZUlkIGJhY2tlbmROb2RlSWQgPSBtX25vZGVUb0Jh
Y2tlbmRJZE1hcC5nZXQobm9kZSkpIHsKKyAgICAgICAgdmFsdWUtPnNldEJhY2tlbmROb2RlSWQo
YmFja2VuZE5vZGVJZCk7CisgICAgICAgIG1fYmFja2VuZElkVG9Ob2RlLnJlbW92ZShiYWNrZW5k
Tm9kZUlkKTsKKyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAucmVtb3ZlKG5vZGUpOworICAg
IH0KKwogICAgIHJldHVybiB2YWx1ZS5yZWxlYXNlKCk7CiB9CiAKQEAgLTE3MjMsNiArMTc0OSwx
NCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdAogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8g
bm9kZSB3aXRoIGdpdmVuIHBhdGggZm91bmQiOwogfQogCit2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IEJhY2tlbmROb2RlSWQgYmFja2VuZE5vZGVJZCkKK3sKKyAgICBpZiAoTm9kZSAqIG5vZGUgPSBt
X2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkpCisgICAgICAgIHB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQobm9kZSk7CisgICAgZWxzZQorICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8g
bm9kZSB3aXRoIGdpdmVuIGJhY2tlbmQgaWQgZm91bmQiOworfQorCiBQYXNzUmVmUHRyPFR5cGVC
dWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluc3BlY3RvckRPTUFnZW50OjpyZXNvbHZl
Tm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogewogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG5vZGUtPmlzRG9jdW1lbnROb2RlKCkgPyBub2RlLT5kb2N1bWVudCgp
IDogbm9kZS0+b3duZXJEb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaAppbmRleCAwZjk4ZmFiNmNjMDIxMjUxMjU3MGJiNjU3ODUwYWJmZjhm
ZDY5ODE3Li5kYThhMWY5ZDMyMWZiM2NmZGJiNmQ5OTEyZWJlMDJhODhmMDhkOTMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtNzUsNiArNzUs
NyBAQCBjbGFzcyBTaGFkb3dSb290Owogc3RydWN0IEhpZ2hsaWdodENvbmZpZzsKIAogdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7Cit0eXBlZGVmIGludCBCYWNrZW5kTm9kZUlkOwogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKIApAQCAtMTQxLDYgKzE0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVk
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogaGlnaGxpZ2h0Q29uZmlnKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBpbnQqIG5vZGVJZCk7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpOworICAg
IHZpcnR1YWwgdm9pZCBwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZChFcnJvclN0cmluZyos
IEJhY2tlbmROb2RlSWQpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3Ry
aW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodFJlY3QoRXJyb3JTdHJpbmcqLCBpbnQg
eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0bGluZUNvbG9y
KTsKICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0IFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IGludCogbm9kZUlk
LCBjb25zdCBTdHJpbmcqIG9iamVjdElkKTsKQEAgLTIwNCw2ICsyMDYsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBvdGhlciBhZ2VudHMuCiAgICAgSW5zcGVjdG9yUGFn
ZUFnZW50KiBwYWdlQWdlbnQoKSB7IHJldHVybiBtX3BhZ2VBZ2VudDsgfQogICAgIGludCBwdXNo
Tm9kZVBhdGhGb3JSZW5kZXJMYXllclRvRnJvbnRlbmQoY29uc3QgUmVuZGVyTGF5ZXIqKTsKKyAg
ICBCYWNrZW5kTm9kZUlkIGJhY2tlbmROb2RlSWRGb3JOb2RlKE5vZGUqKTsKIAogcHJpdmF0ZToK
ICAgICBJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFn
ZUFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
LCBJbnNwZWN0b3JPdmVybGF5KiwgSW5zcGVjdG9yQ2xpZW50Kik7CkBAIC0yNDIsMTIgKzI0NSwx
NSBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckZyb250ZW5kOjpET00qIG1fZnJvbnRlbmQ7CiAg
ICAgRE9NTGlzdGVuZXIqIG1fZG9tTGlzdGVuZXI7CiAgICAgTm9kZVRvSWRNYXAgbV9kb2N1bWVu
dE5vZGVUb0lkTWFwOworICAgIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCBCYWNrZW5kTm9kZUlkPiBt
X25vZGVUb0JhY2tlbmRJZE1hcDsKICAgICAvLyBPd25zIG5vZGUgbWFwcGluZ3MgZm9yIGRhbmds
aW5nIG5vZGVzLgogICAgIFZlY3RvcjxPd25QdHI8Tm9kZVRvSWRNYXA+ID4gbV9kYW5nbGluZ05v
ZGVUb0lkTWFwczsKICAgICBIYXNoTWFwPGludCwgTm9kZSo+IG1faWRUb05vZGU7CiAgICAgSGFz
aE1hcDxpbnQsIE5vZGVUb0lkTWFwKj4gbV9pZFRvTm9kZXNNYXA7CiAgICAgSGFzaFNldDxpbnQ+
IG1fY2hpbGRyZW5SZXF1ZXN0ZWQ7CisgICAgSGFzaE1hcDxCYWNrZW5kTm9kZUlkLCBOb2RlKj4g
bV9iYWNrZW5kSWRUb05vZGU7CiAgICAgaW50IG1fbGFzdE5vZGVJZDsKKyAgICBCYWNrZW5kTm9k
ZUlkIG1fbGFzdEJhY2tlbmROb2RlSWQ7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiA+IFNl
YXJjaFJlc3VsdHM7CiAgICAgU2VhcmNoUmVzdWx0cyBtX3NlYXJjaFJlc3VsdHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190757</attachid>
            <date>2013-02-28 10:42:57 -0800</date>
            <delta_ts>2013-02-28 11:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130228103907.patch</filename>
            <type>text/plain</type>
            <size>9599</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI4MmVlYzUyMWZjYmQz
MjEyZTRlMmY2OTY4ZjlmZjY4MWE1MzVmNC4uNjA5NGE3MDE5ODVkNjBlOGU3ZjA5ZjdkZWRiZGRl
NGJkYzExMzhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBBIGNvcmUgaXNzdWUgd2FzIHRoZSBsb29zZSByZWxhdGlv
bnNoaXAgYmV0d2VlbiBsYXllcnMgYW5kIG5vZGVzIChpbiB0aGUgRE9NCisgICAgICAgIG9yIGZv
ciBnZW5lcmF0ZWQgY29udGVudCkuIEl0IGlzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIHByb3Zp
ZGUgYSBub2RlIGlkIGZvcgorICAgICAgICBhIGxheWVyIHNvIHRoYXQgdGhlIGZyb250LWVuZCBj
YW4gY2hlY2sgZm9yIG11dGF0aW9ucyBvZiB0aGUgbGF5ZXIgdHJlZSB0YWtpbmcKKyAgICAgICAg
aW50byBhY2NvdW50IG5vZGUgaWRzIGFzIHdlbGwgYXMgbGF5ZXIgaWRzIGFzIGxheWVycyBjYW4g
YmUgZWFzaWx5IHRyYXNoZWQgYW5kCisgICAgICAgIHJlY3JlYXRlZCBkdXJpbmcgYW5pbWF0aW9u
cyAoYW5kIG90aGVyIG9wZXJhdGlvbnMpIGFuZCB0aGUgb25seSBjb25zdGFudCB0bworICAgICAg
ICBpZGVudGlmeSB0aGVtIGluIHRoYXQgY2FzZSB3b3VsZCBiZSB0aGUgYXNzb2NpYXRlZCBub2Rl
J3MgaWQuCisKKyAgICAgICAgQXMgd2UgZG9uJ3Qgd2FudCB0byBwdXNoIG5vZGUgaWRzIGRpcmVj
dGx5IGFzIHdlIHNlbmQgbGF5ZXIgaW5mb3JtYXRpb24gdG8gdGhlCisgICAgICAgIGZyb250LWVu
ZCwgd2UgaW50cm9kdWNlIGEgbmV3IGZhY2lsaXR5IGluIHRoZSBJbnNwZWN0b3JET01BZ2VudCBh
bGxvd2luZyB1cyB0bworICAgICAgICBvYnRhaW4gYW4gaWQgZm9yIGEgbm9kZSB3aXRob3V0IHB1
c2hpbmcgaXQgdG8gdGhlIGZyb250LWVuZCBkaXJlY3RseS4gVGhlIG5ldworICAgICAgICBJbnNw
ZWN0b3JET01BZ2VudDo6YmFja2VuZE5vZGVJZEZvck5vZGUoKSBtZXRob2QgZG9lcyBqdXN0IHRo
YXQgYW5kIHRoZSB2YWx1ZQorICAgICAgICByZXR1cm5lZCBpcyBleHBvc2VkIGluIHRoZSBwcm90
b2NvbCBhcyBhIEJhY2tlbmROb2RlSWQsIGFsbG93aW5nIHRvIGRpc3Rpbmd1aXNoCisgICAgICAg
IGJldHdlZW4gdGhlIGV4aXN0aW5nIE5vZGVJZCB3aGljaCBpbXBsaWVzIHRoZSBub2RlIGhhcyBi
ZWVuIHB1c2hlZC4KKworICAgICAgICBXZSBhZGQgYSBuZXcgcHJvdG9jb2wgbWV0aG9kIHB1c2hO
b2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kIHRvIHRoZSBJbnNwZWN0b3JET01BZ2VudAorICAgICAg
ICBhbGxvd2luZyB0byBwdXNoIGEgbm9kZSBieSBpdHMgYmFja2VuZCBub2RlIGlkIHdoZW4gdGhl
IGZyb250LWVuZCBuZWVkcyB0byBnYXRoZXIKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgYSBu
b2RlIGlkZW50aWZpZWQgb25seSB3aXRoIGEgYmFja2VuZCBub2RlIGlkLiBUaGUgcHVzaGVkIG5v
ZGUncworICAgICAgICBpZCBpcyB0aGVuIHJldHVybmVkIGFsbG93aW5nIHRoZSBmcm9udC1lbmQg
dG8gZXN0YWJsaXNoIGEgbWFwcGluZyBiZXR3ZWVuIHRoZQorICAgICAgICByZXF1ZXN0ZWQgYmFj
a2VuZCBub2RlIGlkIGFuZCB0aGUgcmVzdWx0aW5nIG5vZGUgaWQuCisKKyAgICAgICAgVGhlcmUg
YXJlIHByZXNlbnRseSBubyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGN1cnJlbnQgd2F5IGZvciB0
aGUgcHJvdG9jb2wgdG8KKyAgICAgICAgZXZlciBzZW5kIG91dCBkYXRhIHJlZmVyZW5jaW5nIGEg
bm9kZSBieSBpdHMgYmFja2VuZCBub2RlIGlkLiBUaGlzIHdpbGwgY29tZQorICAgICAgICB3aXRo
IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExMDQwNyBhbmQgdGVzdGluZyBjb3ZlcmFnZSB3aWxsIGJl
IHByb3ZpZGVkIHRoZW4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb246IEFkZCB0aGUgbmV3IEJhY2tlbmROb2RlSWQgdHlwZSBhbmQgdGhlIG5ldwor
ICAgICAgICBwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCBtZXRob2QuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudCk6IFByb3ZpZGUgdGhlIGNvdW50ZXIgZm9y
IGJhY2tlbmQKKyAgICAgICAgbm9kZSBpZHMsIHdoaWNoIHdlIGRlY3JlYXNlIGZyb20gLTIsIGFz
IC0xIGlzIHRoZSBrZXkgdXNlZCB0byBpZGVudGlmeSBkZWxldGVkCisgICAgICAgIHZhbHVlcyBm
b3IgaGFzaCBtYXBzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2Nh
cmRCaW5kaW5ncyk6IENsZWFyIHRoZSBoYXNoIG1hcHMgcmVsYXRlZCB0bworICAgICAgICBiaW5k
aW5nIG9mIG5vZGVzIHdpdGggYmFja2VuZCBub2RlIGlkcy4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50OjpiYWNrZW5kTm9kZUlkRm9yTm9kZSk6IE1ldGhvZCBhbGxvd2luZyB0
byBvYnRhaW4KKyAgICAgICAgYSBiYWNrZW5kIGlkIGZvciBhIG5vZGUuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5QmFj
a2VuZElkVG9Gcm9udGVuZCk6IE5ldyBtZXRob2QgYWxsb3dpbmcKKyAgICAgICAgdGhlIGZyb250
LWVuZCB0byByZXF1ZXN0IGEgbm9kZSB0byBiZSBwdXNoZWQgdG8gdGhlIGZyb250LWVuZCBiYXNl
ZCBvbiBhIGJhY2tlbmQKKyAgICAgICAgbm9kZSBpZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9y
RE9NQWdlbnQpOgorCiAyMDEzLTAyLTI4ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZGluZyBleGlzdGluZyBrZXkgaW4g
RE9NU3RvcmFnZUl0ZW1zVmlldyBsZWF2ZXMgaXQgaW5jb25zaXN0ZW50IHN0YXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggM2VkMzExNzRjM2QwYTYxOTA2YjYx
ZTY0ODkwZGZhNWE0NTQxODc1YS4uY2U1YmZmOGI5NTJiYjBmZjFhZTZhNTBhMThmZDljNDJhZjk2
Y2NlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTcwMSw2
ICsxNzAxLDExIEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00g
bm9kZSBpZGVudGlmaWVyLiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgImlkIjogIkJhY2tlbmROb2RlSWQiLAorICAgICAgICAgICAgICAgICJ0eXBlIjog
ImludGVnZXIiLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgRE9NIG5v
ZGUgaWRlbnRpZmllciB1c2VkIHRvIHJlZmVyZW5jZSBhIG5vZGUgdGhhdCBtYXkgbm90IGhhdmUg
YmVlbiBwdXNoZWQgdG8gdGhlIGZyb250LWVuZC4iCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJOb2RlIiwKICAgICAgICAgICAgICAgICAidHlw
ZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwpAQCAtMTk4Niw2
ICsxOTkxLDE3IEBACiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicHVzaE5vZGVCeUJh
Y2tlbmRJZFRvRnJvbnRlbmQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJhY2tlbmROb2RlSWQiLCAiJHJlZiI6ICJCYWNr
ZW5kTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBiYWNrZW5kIG5vZGUgaWQgb2YgdGhlIG5v
ZGUuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJOb2RlSWQi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIHB1c2hlZCBub2RlJ3MgaWQuIiB9CisgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdHMgdGhhdCB0aGUg
bm9kZSBpcyBzZW50IHRvIHRoZSBjYWxsZXIgZ2l2ZW4gaXRzIGJhY2tlbmQgbm9kZSBpZC4iLAor
ICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVOb2RlIiwKICAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2Rl
SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIG5vZGUgdG8g
cmVzb2x2ZS4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAppbmRleCAwYmQwMzM0NGEyNDc5YWNlYjBjNzI2N2U4YTk2NjI3OGVkOWMxNzlkLi5m
ZGUxY2YwMjc0ZjBiNDA0YzIzZTdlZDllOGM2MzRiYTg4MzFiNGE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTIwNyw2ICsyMDcsNyBA
QCBJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9k
b21MaXN0ZW5lcigwKQogICAgICwgbV9sYXN0Tm9kZUlkKDEpCisgICAgLCBtX2xhc3RCYWNrZW5k
Tm9kZUlkKC0yKQogICAgICwgbV9zZWFyY2hpbmdGb3JOb2RlKGZhbHNlKQogICAgICwgbV9zdXBw
cmVzc0F0dHJpYnV0ZU1vZGlmaWVkRXZlbnQoZmFsc2UpCiB7CkBAIC00NzEsNiArNDcyLDggQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRpbmdzKCkKICAgICBtX2lkVG9Ob2Rl
LmNsZWFyKCk7CiAgICAgcmVsZWFzZURhbmdsaW5nTm9kZXMoKTsKICAgICBtX2NoaWxkcmVuUmVx
dWVzdGVkLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kSWRUb05vZGUuY2xlYXIoKTsKKyAgICBtX25v
ZGVUb0JhY2tlbmRJZE1hcC5jbGVhcigpOwogfQogCiBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1
c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBkb2N1bWVudE5v
ZGVJZCwgTm9kZSogbm9kZVRvUHVzaCkKQEAgLTYxNiw2ICs2MTksMjEgQEAgaW50IEluc3BlY3Rv
ckRPTUFnZW50Ojpib3VuZE5vZGVJZChOb2RlKiBub2RlKQogICAgIHJldHVybiBtX2RvY3VtZW50
Tm9kZVRvSWRNYXAuZ2V0KG5vZGUpOwogfQogCitCYWNrZW5kTm9kZUlkIEluc3BlY3RvckRPTUFn
ZW50OjpiYWNrZW5kTm9kZUlkRm9yTm9kZShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBCYWNrZW5kTm9kZUlkIGlkID0gbV9ub2RlVG9CYWNr
ZW5kSWRNYXAuZ2V0KG5vZGUpOworICAgIGlmICghaWQpIHsKKyAgICAgICAgaWQgPSBtX2xhc3RC
YWNrZW5kTm9kZUlkLS07CisgICAgICAgIG1fbm9kZVRvQmFja2VuZElkTWFwLnNldChub2RlLCBp
ZCk7CisgICAgICAgIG1fYmFja2VuZElkVG9Ob2RlLnNldChpZCwgbm9kZSk7CisgICAgfQorCisg
ICAgcmV0dXJuIGlkOworfQorCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRBdHRyaWJ1dGVW
YWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
YXNzZXJ0RWRpdGFibGVFbGVtZW50KGVycm9yU3RyaW5nLCBlbGVtZW50SWQpOwpAQCAtMTcyMyw2
ICsxNzQxLDE4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0CiAgICAgICAgICplcnJvclN0cmlu
ZyA9ICJObyBub2RlIHdpdGggZ2l2ZW4gcGF0aCBmb3VuZCI7CiB9CiAKK3ZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgQmFja2VuZE5vZGVJZCBiYWNrZW5kTm9kZUlkLCBpbnQqIG5vZGVJZCkKK3sKKyAg
ICBpZiAoTm9kZSAqIG5vZGUgPSBtX2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkp
IHsKKyAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3ZlKGJhY2tlbmROb2RlSWQpOworICAg
ICAgICBtX25vZGVUb0JhY2tlbmRJZE1hcC5yZW1vdmUobm9kZSk7CisgICAgICAgICpub2RlSWQg
PSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBiYWNrZW5kIGlkIGZvdW5k
IjsKK30KKwogUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJ
bnNwZWN0b3JET01BZ2VudDo6cmVzb2x2ZU5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBv
YmplY3RHcm91cCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5pc0RvY3VtZW50
Tm9kZSgpID8gbm9kZS0+ZG9jdW1lbnQoKSA6IG5vZGUtPm93bmVyRG9jdW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggMGY5OGZhYjZj
YzAyMTI1MTI1NzBiYjY1Nzg1MGFiZmY4ZmQ2OTgxNy4uZWM1ZWE4MDNlMmJmOGM3ZGFmYjYxZjE2
NTY5NjUzZjY3YTM5Y2M2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmgKQEAgLTc1LDYgKzc1LDcgQEAgY2xhc3MgU2hhZG93Um9vdDsKIHN0cnVjdCBI
aWdobGlnaHRDb25maWc7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwordHlwZWRlZiBp
bnQgQmFja2VuZE5vZGVJZDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKQEAgLTE0MSw2ICsx
NDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChF
cnJvclN0cmluZyosIGJvb2wgZW5hYmxlZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IGhpZ2hsaWdodENvbmZpZyk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOwogICAgIHZpcnR1YWwg
dm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHBhdGgsIGludCogbm9kZUlkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeUJhY2tlbmRJ
ZFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBCYWNrZW5kTm9kZUlkLCBpbnQqIG5vZGVJZCk7CiAg
ICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFs
IHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCB4LCBpbnQgeSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOwogICAgIHZpcnR1YWwgdm9p
ZCBoaWdobGlnaHROb2RlKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIGhpZ2hsaWdodENvbmZpZywgY29uc3QgaW50KiBub2RlSWQsIGNvbnN0IFN0cmluZyogb2Jq
ZWN0SWQpOwpAQCAtMjA0LDYgKzIwNiw3IEBAIHB1YmxpYzoKICAgICAvLyBNZXRob2RzIGNhbGxl
ZCBmcm9tIG90aGVyIGFnZW50cy4KICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgp
IHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CiAgICAgaW50IHB1c2hOb2RlUGF0aEZvclJlbmRlckxh
eWVyVG9Gcm9udGVuZChjb25zdCBSZW5kZXJMYXllciopOworICAgIEJhY2tlbmROb2RlSWQgYmFj
a2VuZE5vZGVJZEZvck5vZGUoTm9kZSopOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvckRPTUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkq
LCBJbnNwZWN0b3JDbGllbnQqKTsKQEAgLTI0MiwxMiArMjQ1LDE1IEBAIHByaXZhdGU6CiAgICAg
SW5zcGVjdG9yRnJvbnRlbmQ6OkRPTSogbV9mcm9udGVuZDsKICAgICBET01MaXN0ZW5lciogbV9k
b21MaXN0ZW5lcjsKICAgICBOb2RlVG9JZE1hcCBtX2RvY3VtZW50Tm9kZVRvSWRNYXA7CisgICAg
SGFzaE1hcDxOb2RlKiwgQmFja2VuZE5vZGVJZD4gbV9ub2RlVG9CYWNrZW5kSWRNYXA7CiAgICAg
Ly8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4KICAgICBWZWN0b3I8T3du
UHRyPE5vZGVUb0lkTWFwPiA+IG1fZGFuZ2xpbmdOb2RlVG9JZE1hcHM7CiAgICAgSGFzaE1hcDxp
bnQsIE5vZGUqPiBtX2lkVG9Ob2RlOwogICAgIEhhc2hNYXA8aW50LCBOb2RlVG9JZE1hcCo+IG1f
aWRUb05vZGVzTWFwOwogICAgIEhhc2hTZXQ8aW50PiBtX2NoaWxkcmVuUmVxdWVzdGVkOworICAg
IEhhc2hNYXA8QmFja2VuZE5vZGVJZCwgTm9kZSo+IG1fYmFja2VuZElkVG9Ob2RlOwogICAgIGlu
dCBtX2xhc3ROb2RlSWQ7CisgICAgQmFja2VuZE5vZGVJZCBtX2xhc3RCYWNrZW5kTm9kZUlkOwog
ICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gPiBTZWFyY2hSZXN1bHRzOwogICAgIFNlYXJjaFJl
c3VsdHMgbV9zZWFyY2hSZXN1bHRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190769</attachid>
            <date>2013-02-28 11:41:49 -0800</date>
            <delta_ts>2013-03-28 06:24:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130228113758.patch</filename>
            <type>text/plain</type>
            <size>10103</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI4MmVlYzUyMWZjYmQz
MjEyZTRlMmY2OTY4ZjlmZjY4MWE1MzVmNC4uNDVlNWU2ZmRlZjZkYzQ4NjJlMjJiZDkxY2M0MDQx
MmZlYTA1ZmE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAyLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBBIGNvcmUgaXNzdWUgd2FzIHRoZSBsb29zZSByZWxhdGlv
bnNoaXAgYmV0d2VlbiBsYXllcnMgYW5kIG5vZGVzIChpbiB0aGUgRE9NCisgICAgICAgIG9yIGZv
ciBnZW5lcmF0ZWQgY29udGVudCkuIEl0IGlzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIHByb3Zp
ZGUgYSBub2RlIGlkIGZvcgorICAgICAgICBhIGxheWVyIHNvIHRoYXQgdGhlIGZyb250LWVuZCBj
YW4gY2hlY2sgZm9yIG11dGF0aW9ucyBvZiB0aGUgbGF5ZXIgdHJlZSB0YWtpbmcKKyAgICAgICAg
aW50byBhY2NvdW50IG5vZGUgaWRzIGFzIHdlbGwgYXMgbGF5ZXIgaWRzIGFzIGxheWVycyBjYW4g
YmUgZWFzaWx5IHRyYXNoZWQgYW5kCisgICAgICAgIHJlY3JlYXRlZCBkdXJpbmcgYW5pbWF0aW9u
cyAoYW5kIG90aGVyIG9wZXJhdGlvbnMpIGFuZCB0aGUgb25seSBjb25zdGFudCB0bworICAgICAg
ICBpZGVudGlmeSB0aGVtIGluIHRoYXQgY2FzZSB3b3VsZCBiZSB0aGUgYXNzb2NpYXRlZCBub2Rl
J3MgaWQuCisKKyAgICAgICAgQXMgd2UgZG9uJ3Qgd2FudCB0byBwdXNoIG5vZGUgaWRzIGRpcmVj
dGx5IGFzIHdlIHNlbmQgbGF5ZXIgaW5mb3JtYXRpb24gdG8gdGhlCisgICAgICAgIGZyb250LWVu
ZCwgd2UgaW50cm9kdWNlIGEgbmV3IGZhY2lsaXR5IGluIHRoZSBJbnNwZWN0b3JET01BZ2VudCBh
bGxvd2luZyB1cyB0bworICAgICAgICBvYnRhaW4gYW4gaWQgZm9yIGEgbm9kZSB3aXRob3V0IHB1
c2hpbmcgaXQgdG8gdGhlIGZyb250LWVuZCBkaXJlY3RseS4gVGhlIG5ldworICAgICAgICBJbnNw
ZWN0b3JET01BZ2VudDo6YmFja2VuZE5vZGVJZEZvck5vZGUoKSBtZXRob2QgZG9lcyBqdXN0IHRo
YXQgYW5kIHRoZSB2YWx1ZQorICAgICAgICByZXR1cm5lZCBpcyBleHBvc2VkIGluIHRoZSBwcm90
b2NvbCBhcyBhIEJhY2tlbmROb2RlSWQsIGFsbG93aW5nIHRvIGRpc3Rpbmd1aXNoCisgICAgICAg
IGJldHdlZW4gdGhlIGV4aXN0aW5nIE5vZGVJZCB3aGljaCBpbXBsaWVzIHRoZSBub2RlIGhhcyBi
ZWVuIHB1c2hlZC4KKworICAgICAgICBXZSBhZGQgYSBuZXcgcHJvdG9jb2wgbWV0aG9kIHB1c2hO
b2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kIHRvIHRoZSBJbnNwZWN0b3JET01BZ2VudAorICAgICAg
ICBhbGxvd2luZyB0byBwdXNoIGEgbm9kZSBieSBpdHMgYmFja2VuZCBub2RlIGlkIHdoZW4gdGhl
IGZyb250LWVuZCBuZWVkcyB0byBnYXRoZXIKKyAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgYSBu
b2RlIGlkZW50aWZpZWQgb25seSB3aXRoIGEgYmFja2VuZCBub2RlIGlkLiBUaGUgcHVzaGVkIG5v
ZGUncworICAgICAgICBpZCBpcyB0aGVuIHJldHVybmVkIGFsbG93aW5nIHRoZSBmcm9udC1lbmQg
dG8gZXN0YWJsaXNoIGEgbWFwcGluZyBiZXR3ZWVuIHRoZQorICAgICAgICByZXF1ZXN0ZWQgYmFj
a2VuZCBub2RlIGlkIGFuZCB0aGUgcmVzdWx0aW5nIG5vZGUgaWQuCisKKyAgICAgICAgVGhlcmUg
YXJlIHByZXNlbnRseSBubyB0ZXN0cyBzaW5jZSB0aGVyZSdzIG5vIGN1cnJlbnQgd2F5IGZvciB0
aGUgcHJvdG9jb2wgdG8KKyAgICAgICAgZXZlciBzZW5kIG91dCBkYXRhIHJlZmVyZW5jaW5nIGEg
bm9kZSBieSBpdHMgYmFja2VuZCBub2RlIGlkLiBUaGlzIHdpbGwgY29tZQorICAgICAgICB3aXRo
IGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExMDQwNyBhbmQgdGVzdGluZyBjb3ZlcmFnZSB3aWxsIGJl
IHByb3ZpZGVkIHRoZW4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb246IEFkZCB0aGUgbmV3IEJhY2tlbmROb2RlSWQgdHlwZSBhbmQgdGhlIG5ldwor
ICAgICAgICBwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCBtZXRob2QuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudCk6IFByb3ZpZGUgdGhlIGNvdW50ZXIgZm9y
IGJhY2tlbmQKKyAgICAgICAgbm9kZSBpZHMsIHdoaWNoIHdlIGRlY3JlYXNlIGZyb20gLTIsIGFz
IC0xIGlzIHRoZSBrZXkgdXNlZCB0byBpZGVudGlmeSBkZWxldGVkCisgICAgICAgIHZhbHVlcyBm
b3IgaGFzaCBtYXBzLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2Nh
cmRCaW5kaW5ncyk6IENsZWFyIHRoZSBoYXNoIG1hcHMgcmVsYXRlZCB0bworICAgICAgICBiaW5k
aW5nIG9mIG5vZGVzIHdpdGggYmFja2VuZCBub2RlIGlkcy4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50Ojp1bmJpbmQpOiBDbGVhciB0aGUgYmFja2VuZCBub2RlIGlkIHJlZmVy
ZW5jZXMgZm9yCisgICAgICAgIHRoZSB1bmJvdW5kIG5vZGUuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6YmFja2VuZE5vZGVJZEZvck5vZGUpOiBNZXRob2QgYWxsb3dpbmcg
dG8gb2J0YWluCisgICAgICAgIGEgYmFja2VuZCBpZCBmb3IgYSBub2RlLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeUJh
Y2tlbmRJZFRvRnJvbnRlbmQpOiBOZXcgbWV0aG9kIGFsbG93aW5nCisgICAgICAgIHRoZSBmcm9u
dC1lbmQgdG8gcmVxdWVzdCBhIG5vZGUgdG8gYmUgcHVzaGVkIHRvIHRoZSBmcm9udC1lbmQgYmFz
ZWQgb24gYSBiYWNrZW5kCisgICAgICAgIG5vZGUgaWQuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3Rv
ckRPTUFnZW50KToKKwogMjAxMy0wMi0yOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1z
dW5nLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGRpbmcgZXhpc3Rpbmcga2V5IGlu
IERPTVN0b3JhZ2VJdGVtc1ZpZXcgbGVhdmVzIGl0IGluY29uc2lzdGVudCBzdGF0ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDNlZDMxMTc0YzNkMGE2MTkwNmI2
MWU2NDg5MGRmYTVhNDU0MTg3NWEuLmNlNWJmZjhiOTUyYmIwZmYxYWU2YTUwYTE4ZmQ5YzQyYWY5
NmNjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE3MDEs
NiArMTcwMSwxMSBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgRE9N
IG5vZGUgaWRlbnRpZmllci4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJpZCI6ICJCYWNrZW5kTm9kZUlkIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6
ICJpbnRlZ2VyIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBu
b2RlIGlkZW50aWZpZXIgdXNlZCB0byByZWZlcmVuY2UgYSBub2RlIHRoYXQgbWF5IG5vdCBoYXZl
IGJlZW4gcHVzaGVkIHRvIHRoZSBmcm9udC1lbmQuIgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAiaWQiOiAiTm9kZSIsCiAgICAgICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKQEAgLTE5ODYs
NiArMTk5MSwxNyBAQAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogInB1c2hOb2RlQnlC
YWNrZW5kSWRUb0Zyb250ZW5kIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiYWNrZW5kTm9kZUlkIiwgIiRyZWYiOiAiQmFj
a2VuZE5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYmFja2VuZCBub2RlIGlkIG9mIHRoZSBu
b2RlLiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBb
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAiTm9kZUlk
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBwdXNoZWQgbm9kZSdzIGlkLiIgfQorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQgdGhl
IG5vZGUgaXMgc2VudCB0byB0aGUgY2FsbGVyIGdpdmVuIGl0cyBiYWNrZW5kIG5vZGUgaWQuIiwK
KyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlTm9kZSIsCiAgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9k
ZUlkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBub2RlIHRv
IHJlc29sdmUuIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggMGJkMDMzNDRhMjQ3OWFjZWIwYzcyNjdlOGE5NjYyNzhlZDljMTc5ZC4u
ZDdhZWY4OGJhZDMyNjJiNTg0OWIxODEwYWFhNmRlZTFhMjQ4MzAzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yMDcsNiArMjA3LDcg
QEAgSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1f
ZG9tTGlzdGVuZXIoMCkKICAgICAsIG1fbGFzdE5vZGVJZCgxKQorICAgICwgbV9sYXN0QmFja2Vu
ZE5vZGVJZCgtMikKICAgICAsIG1fc2VhcmNoaW5nRm9yTm9kZShmYWxzZSkKICAgICAsIG1fc3Vw
cHJlc3NBdHRyaWJ1dGVNb2RpZmllZEV2ZW50KGZhbHNlKQogewpAQCAtMzIwLDYgKzMyMSwxMSBA
QCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5v
ZGVzTWFwKQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9k
ZVRvSWRNYXAqIG5vZGVzTWFwKQogeworICAgIGlmIChtX25vZGVUb0JhY2tlbmRJZE1hcC5jb250
YWlucyhub2RlKSkgeworICAgICAgICBtX2JhY2tlbmRJZFRvTm9kZS5yZW1vdmUobV9ub2RlVG9C
YWNrZW5kSWRNYXAuZ2V0KG5vZGUpKTsKKyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAucmVt
b3ZlKG5vZGUpOworICAgIH0KKwogICAgIGludCBpZCA9IG5vZGVzTWFwLT5nZXQobm9kZSk7CiAg
ICAgaWYgKCFpZCkKICAgICAgICAgcmV0dXJuOwpAQCAtNDcxLDYgKzQ3Nyw4IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAgbV9pZFRvTm9kZS5jbGVhcigp
OwogICAgIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAgICAgbV9jaGlsZHJlblJlcXVlc3RlZC5j
bGVhcigpOworICAgIG1fYmFja2VuZElkVG9Ob2RlLmNsZWFyKCk7CisgICAgbV9ub2RlVG9CYWNr
ZW5kSWRNYXAuY2xlYXIoKTsKIH0KIAogaW50IEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRv
RnJvbnRlbmQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnROb2RlSWQsIE5v
ZGUqIG5vZGVUb1B1c2gpCkBAIC02MTYsNiArNjI0LDIxIEBAIGludCBJbnNwZWN0b3JET01BZ2Vu
dDo6Ym91bmROb2RlSWQoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbV9kb2N1bWVudE5vZGVUb0lk
TWFwLmdldChub2RlKTsKIH0KIAorQmFja2VuZE5vZGVJZCBJbnNwZWN0b3JET01BZ2VudDo6YmFj
a2VuZE5vZGVJZEZvck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiAwOworCisgICAgQmFja2VuZE5vZGVJZCBpZCA9IG1fbm9kZVRvQmFja2VuZElkTWFw
LmdldChub2RlKTsKKyAgICBpZiAoIWlkKSB7CisgICAgICAgIGlkID0gbV9sYXN0QmFja2VuZE5v
ZGVJZC0tOworICAgICAgICBtX25vZGVUb0JhY2tlbmRJZE1hcC5zZXQobm9kZSwgaWQpOworICAg
ICAgICBtX2JhY2tlbmRJZFRvTm9kZS5zZXQoaWQsIG5vZGUpOworICAgIH0KKworICAgIHJldHVy
biBpZDsKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0QXR0cmlidXRlVmFsdWUoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgRWxlbWVudCogZWxlbWVudCA9IGFzc2VydEVk
aXRhYmxlRWxlbWVudChlcnJvclN0cmluZywgZWxlbWVudElkKTsKQEAgLTE3MjMsNiArMTc0Niwx
OCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdAogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8g
bm9kZSB3aXRoIGdpdmVuIHBhdGggZm91bmQiOwogfQogCit2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IEJhY2tlbmROb2RlSWQgYmFja2VuZE5vZGVJZCwgaW50KiBub2RlSWQpCit7CisgICAgaWYgKE5v
ZGUqIG5vZGUgPSBtX2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkpIHsKKyAgICAg
ICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3ZlKGJhY2tlbmROb2RlSWQpOworICAgICAgICBtX25v
ZGVUb0JhY2tlbmRJZE1hcC5yZW1vdmUobm9kZSk7CisgICAgICAgICpub2RlSWQgPSBwdXNoTm9k
ZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgKmVy
cm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBiYWNrZW5kIGlkIGZvdW5kIjsKK30KKwog
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJbnNwZWN0b3JE
T01BZ2VudDo6cmVzb2x2ZU5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91
cCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5pc0RvY3VtZW50Tm9kZSgpID8g
bm9kZS0+ZG9jdW1lbnQoKSA6IG5vZGUtPm93bmVyRG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggMGY5OGZhYjZjYzAyMTI1MTI1
NzBiYjY1Nzg1MGFiZmY4ZmQ2OTgxNy4uZWM1ZWE4MDNlMmJmOGM3ZGFmYjYxZjE2NTY5NjUzZjY3
YTM5Y2M2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmgKQEAgLTc1LDYgKzc1LDcgQEAgY2xhc3MgU2hhZG93Um9vdDsKIHN0cnVjdCBIaWdobGlnaHRD
b25maWc7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwordHlwZWRlZiBpbnQgQmFja2Vu
ZE5vZGVJZDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKQEAgLTE0MSw2ICsxNDIsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmlu
ZyosIGJvb2wgZW5hYmxlZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGhpZ2hsaWdo
dENvbmZpZyk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOwogICAgIHZpcnR1YWwgdm9pZCBwdXNo
Tm9kZUJ5UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHBhdGgsIGlu
dCogbm9kZUlkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRl
bmQoRXJyb3JTdHJpbmcqLCBCYWNrZW5kTm9kZUlkLCBpbnQqIG5vZGVJZCk7CiAgICAgdmlydHVh
bCB2b2lkIGhpZGVIaWdobGlnaHQoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgaGln
aGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp
Z2h0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOwogICAgIHZpcnR1YWwgdm9pZCBoaWdobGln
aHROb2RlKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGhpZ2hs
aWdodENvbmZpZywgY29uc3QgaW50KiBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0SWQpOwpA
QCAtMjA0LDYgKzIwNiw3IEBAIHB1YmxpYzoKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIG90
aGVyIGFnZW50cy4KICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIHsgcmV0dXJu
IG1fcGFnZUFnZW50OyB9CiAgICAgaW50IHB1c2hOb2RlUGF0aEZvclJlbmRlckxheWVyVG9Gcm9u
dGVuZChjb25zdCBSZW5kZXJMYXllciopOworICAgIEJhY2tlbmROb2RlSWQgYmFja2VuZE5vZGVJ
ZEZvck5vZGUoTm9kZSopOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvckRPTUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3Rvck92ZXJsYXkqLCBJbnNwZWN0
b3JDbGllbnQqKTsKQEAgLTI0MiwxMiArMjQ1LDE1IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9y
RnJvbnRlbmQ6OkRPTSogbV9mcm9udGVuZDsKICAgICBET01MaXN0ZW5lciogbV9kb21MaXN0ZW5l
cjsKICAgICBOb2RlVG9JZE1hcCBtX2RvY3VtZW50Tm9kZVRvSWRNYXA7CisgICAgSGFzaE1hcDxO
b2RlKiwgQmFja2VuZE5vZGVJZD4gbV9ub2RlVG9CYWNrZW5kSWRNYXA7CiAgICAgLy8gT3ducyBu
b2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4KICAgICBWZWN0b3I8T3duUHRyPE5vZGVU
b0lkTWFwPiA+IG1fZGFuZ2xpbmdOb2RlVG9JZE1hcHM7CiAgICAgSGFzaE1hcDxpbnQsIE5vZGUq
PiBtX2lkVG9Ob2RlOwogICAgIEhhc2hNYXA8aW50LCBOb2RlVG9JZE1hcCo+IG1faWRUb05vZGVz
TWFwOwogICAgIEhhc2hTZXQ8aW50PiBtX2NoaWxkcmVuUmVxdWVzdGVkOworICAgIEhhc2hNYXA8
QmFja2VuZE5vZGVJZCwgTm9kZSo+IG1fYmFja2VuZElkVG9Ob2RlOwogICAgIGludCBtX2xhc3RO
b2RlSWQ7CisgICAgQmFja2VuZE5vZGVJZCBtX2xhc3RCYWNrZW5kTm9kZUlkOwogICAgIFJlZlB0
cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0
b3I8UmVmUHRyPE5vZGU+ID4gPiBTZWFyY2hSZXN1bHRzOwogICAgIFNlYXJjaFJlc3VsdHMgbV9z
ZWFyY2hSZXN1bHRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195552</attachid>
            <date>2013-03-28 06:25:04 -0700</date>
            <delta_ts>2013-03-28 06:33:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130328172501.patch</filename>
            <type>text/plain</type>
            <size>8480</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzEwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAzLTI4ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
Okluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
Ojp1bmJpbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRC
aW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YmFja2VuZE5v
ZGVJZEZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKEluc3BlY3RvckRPTUFnZW50KToKKwogMjAxMy0wMy0yOCAgRXVnZW5lIEts
eXVjaG5pa292ICA8ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBbU2V0dGluZ3NdICJwcmV2aW91c2x5Vmlld2VkRmlsZXMiIGV4Y2VlZHMgbG9jYWwgc3RvcmFn
ZSBxdW90YS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24JKHJl
dmlzaW9uIDE0NjMzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgkod29ya2luZyBjb3B5KQpAQCAtMTcxNyw2ICsxNzE3LDExIEBACiAgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyLiIKICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIkJhY2tlbmROb2RlSWQi
LAorICAgICAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJVbmlxdWUgRE9NIG5vZGUgaWRlbnRpZmllciB1c2VkIHRvIHJlZmVyZW5j
ZSBhIG5vZGUgdGhhdCBtYXkgbm90IGhhdmUgYmVlbiBwdXNoZWQgdG8gdGhlIGZyb250LWVuZC4i
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJO
b2RlIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAg
ICJwcm9wZXJ0aWVzIjogWwpAQCAtMjAwMiw2ICsyMDA3LDE3IEBACiAgICAgICAgICAgICAgICAg
ImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAicHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQiLAorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJh
Y2tlbmROb2RlSWQiLCAiJHJlZiI6ICJCYWNrZW5kTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRo
ZSBiYWNrZW5kIG5vZGUgaWQgb2YgdGhlIG5vZGUuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJub2RlSWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHB1c2hlZCBu
b2RlJ3MgaWQuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiUmVxdWVzdHMgdGhhdCB0aGUgbm9kZSBpcyBzZW50IHRvIHRoZSBjYWxsZXIgZ2l2
ZW4gaXRzIGJhY2tlbmQgbm9kZSBpZC4iLAorICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVl
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjog
InJlc29sdmVOb2RlIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3Jp
cHRpb24iOiAiSWQgb2YgdGhlIG5vZGUgdG8gcmVzb2x2ZS4iIH0sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHJldmlzaW9uIDE0NjMz
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIwNyw2ICsyMDcsNyBAQCBJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVj
dG9yRE9NQWdlbnQoSW5zCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2RvbUxpc3RlbmVy
KDApCiAgICAgLCBtX2xhc3ROb2RlSWQoMSkKKyAgICAsIG1fbGFzdEJhY2tlbmROb2RlSWQoLTIp
CiAgICAgLCBtX3NlYXJjaGluZ0Zvck5vZGUoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzQXR0cmli
dXRlTW9kaWZpZWRFdmVudChmYWxzZSkKIHsKQEAgLTMyMCwxMSArMzIxLDE4IEBAIGludCBJbnNw
ZWN0b3JET01BZ2VudDo6YmluZChOb2RlKiBub2RlLAogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKQogeworICAgIEJhY2tl
bmROb2RlSWQgYmFja2VuZElkID0gbV9ub2RlVG9CYWNrZW5kSWRNYXAuZ2V0KG5vZGUpOworICAg
IGlmIChiYWNrZW5kSWQpIHsKKyAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3ZlKGJhY2tl
bmRJZCk7CisgICAgICAgIG1fbm9kZVRvQmFja2VuZElkTWFwLnJlbW92ZShub2RlKTsKKyAgICB9
CisKICAgICBpbnQgaWQgPSBub2Rlc01hcC0+Z2V0KG5vZGUpOwotICAgIGlmICghaWQpCi0gICAg
ICAgIHJldHVybjsKKyAgICBpZiAoaWQpCisgICAgICAgIG1faWRUb05vZGUucmVtb3ZlKGlkKTsK
IAotICAgIG1faWRUb05vZGUucmVtb3ZlKGlkKTsKKyAgICBpZiAoIWlkICYmICFiYWNrZW5kSWQp
CisgICAgICAgIHJldHVybjsKIAogICAgIGlmIChub2RlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkp
IHsKICAgICAgICAgY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93bmVyID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50Kj4obm9kZSk7CkBAIC0zNDIsMTQg
KzM1MCwxNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOworICAgIGlmIChub2Rl
c01hcC0+Y29udGFpbnMobm9kZSkpCisgICAgICAgIG5vZGVzTWFwLT5yZW1vdmUobm9kZSk7CiAg
ICAgaWYgKG1fZG9tTGlzdGVuZXIpCiAgICAgICAgIG1fZG9tTGlzdGVuZXItPmRpZFJlbW92ZURP
TU5vZGUobm9kZSk7CiAKLSAgICBib29sIGNoaWxkcmVuUmVxdWVzdGVkID0gbV9jaGlsZHJlblJl
cXVlc3RlZC5jb250YWlucyhpZCk7Ci0gICAgaWYgKGNoaWxkcmVuUmVxdWVzdGVkKSB7Ci0gICAg
ICAgIC8vIFVuYmluZCBzdWJ0cmVlIGtub3duIHRvIGNsaWVudCByZWN1cnNpdmVseS4KKyAgICBi
b29sIGNoaWxkcmVuUmVxdWVzdGVkID0gaWQgJiYgbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlu
cyhpZCk7CisgICAgaWYgKGNoaWxkcmVuUmVxdWVzdGVkKQogICAgICAgICBtX2NoaWxkcmVuUmVx
dWVzdGVkLnJlbW92ZShpZCk7CisKKyAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQgfHwgYmFja2Vu
ZElkKSB7CisgICAgICAgIC8vIFVuYmluZCBzdWJ0cmVlIGtub3duIHRvIGNsaWVudCByZWN1cnNp
dmVseS4KICAgICAgICAgTm9kZSogY2hpbGQgPSBpbm5lckZpcnN0Q2hpbGQobm9kZSk7CiAgICAg
ICAgIHdoaWxlIChjaGlsZCkgewogICAgICAgICAgICAgdW5iaW5kKGNoaWxkLCBub2Rlc01hcCk7
CkBAIC00NzEsNiArNDgyLDggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRp
bmdzKAogICAgIG1faWRUb05vZGUuY2xlYXIoKTsKICAgICByZWxlYXNlRGFuZ2xpbmdOb2Rlcygp
OwogICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmRJZFRvTm9k
ZS5jbGVhcigpOworICAgIG1fbm9kZVRvQmFja2VuZElkTWFwLmNsZWFyKCk7CiB9CiAKIGludCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgaW50IGRvY3VtZW50Tm9kZUlkLCBOb2RlKiBub2RlVG9QdXNoKQpAQCAtNjA0LDYgKzYx
NywyMiBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJvdW5kTm9kZUlkKE5vZGUqCiAgICAgcmV0
dXJuIG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZSk7CiB9CiAKK0JhY2tlbmROb2RlSWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRGb3JOb2RlKE5vZGUqIG5vZGUpCit7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIE5vZGUqIGN1cnJlbnQgPSBu
b2RlOworICAgIHdoaWxlIChjdXJyZW50ICYmICFtX25vZGVUb0JhY2tlbmRJZE1hcC5nZXQoY3Vy
cmVudCkpIHsKKyAgICAgICAgQmFja2VuZE5vZGVJZCBpZCA9IG1fbGFzdEJhY2tlbmROb2RlSWQt
LTsKKyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAuc2V0KGN1cnJlbnQsIGlkKTsKKyAgICAg
ICAgbV9iYWNrZW5kSWRUb05vZGUuc2V0KGlkLCBjdXJyZW50KTsKKyAgICAgICAgY3VycmVudCA9
IGlubmVyUGFyZW50Tm9kZShjdXJyZW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9ub2RlVG9C
YWNrZW5kSWRNYXAuZ2V0KG5vZGUpOworfQorCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRB
dHRyaWJ1dGVWYWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBlbGVtZW50SWQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBFbGVtZW50KiBl
bGVtZW50ID0gYXNzZXJ0RWRpdGFibGVFbGVtZW50KGVycm9yU3RyaW5nLCBlbGVtZW50SWQpOwpA
QCAtMTcyNyw2ICsxNzU2LDE4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQ
YXRoVG8KICAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBwYXRoIGZv
dW5kIjsKIH0KIAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeUJhY2tlbmRJZFRv
RnJvbnRlbmQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBCYWNrZW5kTm9kZUlkIGJhY2tlbmRO
b2RlSWQsIGludCogbm9kZUlkKQoreworICAgIGlmIChOb2RlKiBub2RlID0gbV9iYWNrZW5kSWRU
b05vZGUuZ2V0KGJhY2tlbmROb2RlSWQpKSB7CisgICAgICAgIG1fYmFja2VuZElkVG9Ob2RlLnJl
bW92ZShiYWNrZW5kTm9kZUlkKTsKKyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAucmVtb3Zl
KG5vZGUpOworICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICplcnJvclN0cmluZyA9ICJObyBub2RlIHdp
dGggZ2l2ZW4gYmFja2VuZCBpZCBmb3VuZCI7Cit9CisKIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc29sdmVOb2RlKE5v
ZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbm9kZS0+aXNEb2N1bWVudE5vZGUoKSA/IG5vZGUtPmRvY3VtZW50KCkgOiBub2Rl
LT5vd25lckRvY3VtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaAkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDcg
QEAgY2xhc3MgU2hhZG93Um9vdDsKIHN0cnVjdCBIaWdobGlnaHRDb25maWc7CiAKIHR5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwordHlwZWRlZiBpbnQgQmFja2VuZE5vZGVJZDsKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAKQEAgLTE0MSw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyosIGJvb2wgZW5hYmxlZCwg
Y29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGhpZ2hsaWdodENvbmZpZyk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCwgaW50KiBub2RlSWQpOwogICAgIHZpcnR1YWwgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRl
bmQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHBhdGgsIGludCogbm9kZUlkKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBC
YWNrZW5kTm9kZUlkLCBpbnQqIG5vZGVJZCk7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGln
aHQoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0
cmluZyosIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBv
dXRsaW5lQ29sb3IpOwogICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHROb2RlKEVycm9yU3RyaW5n
KiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIGhpZ2hsaWdodENvbmZpZywgY29uc3Qg
aW50KiBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0SWQpOwpAQCAtMTc3LDYgKzE3OSw3IEBA
IHB1YmxpYzoKICAgICBOb2RlKiBub2RlRm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5k
Tm9kZUlkKE5vZGUqKTsKICAgICB2b2lkIHNldERPTUxpc3RlbmVyKERPTUxpc3RlbmVyKik7Cisg
ICAgQmFja2VuZE5vZGVJZCBiYWNrZW5kTm9kZUlkRm9yTm9kZShOb2RlKik7CiAKICAgICBzdGF0
aWMgU3RyaW5nIGRvY3VtZW50VVJMU3RyaW5nKERvY3VtZW50Kik7CiAKQEAgLTI0MiwxMiArMjQ1
LDE1IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRPTSogbV9mcm9udGVuZDsK
ICAgICBET01MaXN0ZW5lciogbV9kb21MaXN0ZW5lcjsKICAgICBOb2RlVG9JZE1hcCBtX2RvY3Vt
ZW50Tm9kZVRvSWRNYXA7CisgICAgSGFzaE1hcDxOb2RlKiwgQmFja2VuZE5vZGVJZD4gbV9ub2Rl
VG9CYWNrZW5kSWRNYXA7CiAgICAgLy8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBu
b2Rlcy4KICAgICBWZWN0b3I8T3duUHRyPE5vZGVUb0lkTWFwPiA+IG1fZGFuZ2xpbmdOb2RlVG9J
ZE1hcHM7CiAgICAgSGFzaE1hcDxpbnQsIE5vZGUqPiBtX2lkVG9Ob2RlOwogICAgIEhhc2hNYXA8
aW50LCBOb2RlVG9JZE1hcCo+IG1faWRUb05vZGVzTWFwOwogICAgIEhhc2hTZXQ8aW50PiBtX2No
aWxkcmVuUmVxdWVzdGVkOworICAgIEhhc2hNYXA8QmFja2VuZE5vZGVJZCwgTm9kZSo+IG1fYmFj
a2VuZElkVG9Ob2RlOwogICAgIGludCBtX2xhc3ROb2RlSWQ7CisgICAgQmFja2VuZE5vZGVJZCBt
X2xhc3RCYWNrZW5kTm9kZUlkOwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gPiBTZWFyY2hS
ZXN1bHRzOwogICAgIFNlYXJjaFJlc3VsdHMgbV9zZWFyY2hSZXN1bHRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195555</attachid>
            <date>2013-03-28 06:33:18 -0700</date>
            <delta_ts>2013-03-29 08:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130328173316.patch</filename>
            <type>text/plain</type>
            <size>8553</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzEwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTI4ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb2RlcyBub3QgeWV0IHB1c2hlZCB0byBmcm9udC1lbmQgYXJlIHJlZmVyZW5jZWQgYnkg
QmFja2VuZElkLiBUbyByZXNvbHZlIHRoaXMgbm9kZSwKKyAgICAgICAgZnJvbnRlbmQgc2hvdWxk
IHVzZSBuZXcgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQgbWV0aG9kLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6SW5z
cGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVu
YmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpiYWNrZW5kTm9kZUlk
Rm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorCiAyMDEzLTAzLTI4ICBFdWdlbmUgS2x5dWNo
bmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtT
ZXR0aW5nc10gInByZXZpb3VzbHlWaWV3ZWRGaWxlcyIgZXhjZWVkcyBsb2NhbCBzdG9yYWdlIHF1
b3RhLgpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgkocmV2aXNp
b24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzE3LDYgKzE3MTcsMTEgQEAKICAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZpZXIuIgogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiQmFja2VuZE5vZGVJZCIsCisg
ICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVmZXJlbmNlIGEg
bm9kZSB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQtZW5kLiIKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIk5vZGUi
LAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInBy
b3BlcnRpZXMiOiBbCkBAIC0yMDAyLDYgKzIwMDcsMTcgQEAKICAgICAgICAgICAgICAgICAiaGlk
ZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAibmFtZSI6ICJwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja2Vu
ZE5vZGVJZCIsICIkcmVmIjogIkJhY2tlbmROb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJh
Y2tlbmQgbm9kZSBpZCBvZiB0aGUgbm9kZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5v
ZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHVzaGVkIG5vZGUn
cyBpZC4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJSZXF1ZXN0cyB0aGF0IHRoZSBub2RlIGlzIHNlbnQgdG8gdGhlIGNhbGxlciBnaXZlbiBp
dHMgYmFja2VuZCBub2RlIGlkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVz
b2x2ZU5vZGUiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlv
biI6ICJJZCBvZiB0aGUgbm9kZSB0byByZXNvbHZlLiIgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAkocmV2aXNpb24gMTQ2MzM4KQor
KysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjA3LDYgKzIwNyw3IEBAIEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JE
T01BZ2VudChJbnMKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fZG9tTGlzdGVuZXIoMCkK
ICAgICAsIG1fbGFzdE5vZGVJZCgxKQorICAgICwgbV9sYXN0QmFja2VuZE5vZGVJZCgtMikKICAg
ICAsIG1fc2VhcmNoaW5nRm9yTm9kZShmYWxzZSkKICAgICAsIG1fc3VwcHJlc3NBdHRyaWJ1dGVN
b2RpZmllZEV2ZW50KGZhbHNlKQogewpAQCAtMzIwLDExICszMjEsMTggQEAgaW50IEluc3BlY3Rv
ckRPTUFnZW50OjpiaW5kKE5vZGUqIG5vZGUsCiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVu
YmluZChOb2RlKiBub2RlLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApCiB7CisgICAgQmFja2VuZE5v
ZGVJZCBiYWNrZW5kSWQgPSBtX25vZGVUb0JhY2tlbmRJZE1hcC5nZXQobm9kZSk7CisgICAgaWYg
KGJhY2tlbmRJZCkgeworICAgICAgICBtX2JhY2tlbmRJZFRvTm9kZS5yZW1vdmUoYmFja2VuZElk
KTsKKyAgICAgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAucmVtb3ZlKG5vZGUpOworICAgIH0KKwog
ICAgIGludCBpZCA9IG5vZGVzTWFwLT5nZXQobm9kZSk7Ci0gICAgaWYgKCFpZCkKLSAgICAgICAg
cmV0dXJuOworICAgIGlmIChpZCkKKyAgICAgICAgbV9pZFRvTm9kZS5yZW1vdmUoaWQpOwogCi0g
ICAgbV9pZFRvTm9kZS5yZW1vdmUoaWQpOworICAgIGlmICghaWQgJiYgIWJhY2tlbmRJZCkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgewog
ICAgICAgICBjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lT3duZXIgPSBzdGF0aWNf
Y2FzdDxjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lbnQqPihub2RlKTsKQEAgLTM0MiwxNCArMzUw
LDE3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZChOb2RlKiBub2QKICAgICAgICAg
fQogICAgIH0KIAotICAgIG5vZGVzTWFwLT5yZW1vdmUobm9kZSk7CisgICAgaWYgKG5vZGVzTWFw
LT5jb250YWlucyhub2RlKSkKKyAgICAgICAgbm9kZXNNYXAtPnJlbW92ZShub2RlKTsKICAgICBp
ZiAobV9kb21MaXN0ZW5lcikKICAgICAgICAgbV9kb21MaXN0ZW5lci0+ZGlkUmVtb3ZlRE9NTm9k
ZShub2RlKTsKIAotICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVz
dGVkLmNvbnRhaW5zKGlkKTsKLSAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpIHsKLSAgICAgICAg
Ly8gVW5iaW5kIHN1YnRyZWUga25vd24gdG8gY2xpZW50IHJlY3Vyc2l2ZWx5LgorICAgIGJvb2wg
Y2hpbGRyZW5SZXF1ZXN0ZWQgPSBpZCAmJiBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKGlk
KTsKKyAgICBpZiAoY2hpbGRyZW5SZXF1ZXN0ZWQpCiAgICAgICAgIG1fY2hpbGRyZW5SZXF1ZXN0
ZWQucmVtb3ZlKGlkKTsKKworICAgIGlmIChjaGlsZHJlblJlcXVlc3RlZCB8fCBiYWNrZW5kSWQp
IHsKKyAgICAgICAgLy8gVW5iaW5kIHN1YnRyZWUga25vd24gdG8gY2xpZW50IHJlY3Vyc2l2ZWx5
LgogICAgICAgICBOb2RlKiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsKICAgICAgICAg
d2hpbGUgKGNoaWxkKSB7CiAgICAgICAgICAgICB1bmJpbmQoY2hpbGQsIG5vZGVzTWFwKTsKQEAg
LTQ3MSw2ICs0ODIsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3Mo
CiAgICAgbV9pZFRvTm9kZS5jbGVhcigpOwogICAgIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAg
ICAgbV9jaGlsZHJlblJlcXVlc3RlZC5jbGVhcigpOworICAgIG1fYmFja2VuZElkVG9Ob2RlLmNs
ZWFyKCk7CisgICAgbV9ub2RlVG9CYWNrZW5kSWRNYXAuY2xlYXIoKTsKIH0KIAogaW50IEluc3Bl
Y3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBpbnQgZG9jdW1lbnROb2RlSWQsIE5vZGUqIG5vZGVUb1B1c2gpCkBAIC02MDQsNiArNjE3LDIy
IEBAIGludCBJbnNwZWN0b3JET01BZ2VudDo6Ym91bmROb2RlSWQoTm9kZSoKICAgICByZXR1cm4g
bV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChub2RlKTsKIH0KIAorQmFja2VuZE5vZGVJZCBJbnNw
ZWN0b3JET01BZ2VudDo6YmFja2VuZE5vZGVJZEZvck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgTm9kZSogY3VycmVudCA9IG5vZGU7
CisgICAgd2hpbGUgKGN1cnJlbnQgJiYgIW1fbm9kZVRvQmFja2VuZElkTWFwLmdldChjdXJyZW50
KSkgeworICAgICAgICBCYWNrZW5kTm9kZUlkIGlkID0gbV9sYXN0QmFja2VuZE5vZGVJZC0tOwor
ICAgICAgICBtX25vZGVUb0JhY2tlbmRJZE1hcC5zZXQoY3VycmVudCwgaWQpOworICAgICAgICBt
X2JhY2tlbmRJZFRvTm9kZS5zZXQoaWQsIGN1cnJlbnQpOworICAgICAgICBjdXJyZW50ID0gaW5u
ZXJQYXJlbnROb2RlKGN1cnJlbnQpOworICAgIH0KKworICAgIHJldHVybiBtX25vZGVUb0JhY2tl
bmRJZE1hcC5nZXQobm9kZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldEF0dHJp
YnV0ZVZhbHVlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IGVsZW1lbnRJZCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBhc3NlcnRFZGl0YWJsZUVsZW1lbnQoZXJyb3JTdHJpbmcsIGVsZW1lbnRJZCk7CkBAIC0x
NzI3LDYgKzE3NTYsMTYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeVBhdGhU
bwogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gbm9kZSB3aXRoIGdpdmVuIHBhdGggZm91bmQi
OwogfQogCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9u
dGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEJhY2tlbmROb2RlSWQgYmFja2VuZE5vZGVJ
ZCwgaW50KiBub2RlSWQpCit7CisgICAgaWYgKE5vZGUqIG5vZGUgPSBtX2JhY2tlbmRJZFRvTm9k
ZS5nZXQoYmFja2VuZE5vZGVJZCkpIHsKKyAgICAgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRv
RnJvbnRlbmQobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqZXJyb3JTdHJp
bmcgPSAiTm8gbm9kZSB3aXRoIGdpdmVuIGJhY2tlbmQgaWQgZm91bmQiOworfQorCiBQYXNzUmVm
UHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluc3BlY3RvckRPTUFnZW50
OjpyZXNvbHZlTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPmlzRG9jdW1lbnROb2RlKCkgPyBub2RlLT5k
b2N1bWVudCgpIDogbm9kZS0+b3duZXJEb2N1bWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHJldmlzaW9uIDE0NjMzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03NSw2ICs3NSw3IEBAIGNsYXNzIFNoYWRvd1Jvb3Q7CiBzdHJ1Y3QgSGlnaGxpZ2h0Q29u
ZmlnOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKK3R5cGVkZWYgaW50IEJhY2tlbmRO
b2RlSWQ7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCkBAIC0xNDEsNiArMTQyLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcq
LCBib29sIGVuYWJsZWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBoaWdobGlnaHRD
b25maWcpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaE5v
ZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQq
IG5vZGVJZCk7CisgICAgdmlydHVhbCB2b2lkIHB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5k
KEVycm9yU3RyaW5nKiwgQmFja2VuZE5vZGVJZCwgaW50KiBub2RlSWQpOwogICAgIHZpcnR1YWwg
dm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGhpZ2hs
aWdodFJlY3QoRXJyb3JTdHJpbmcqLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo
dCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0Piogb3V0bGluZUNvbG9yKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0
Tm9kZShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBoaWdobGln
aHRDb25maWcsIGNvbnN0IGludCogbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdElkKTsKQEAg
LTE3Nyw2ICsxNzksNyBAQCBwdWJsaWM6CiAgICAgTm9kZSogbm9kZUZvcklkKGludCBub2RlSWQp
OwogICAgIGludCBib3VuZE5vZGVJZChOb2RlKik7CiAgICAgdm9pZCBzZXRET01MaXN0ZW5lcihE
T01MaXN0ZW5lciopOworICAgIEJhY2tlbmROb2RlSWQgYmFja2VuZE5vZGVJZEZvck5vZGUoTm9k
ZSopOwogCiAgICAgc3RhdGljIFN0cmluZyBkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCopOwog
CkBAIC0yNDIsMTIgKzI0NSwxNSBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckZyb250ZW5kOjpE
T00qIG1fZnJvbnRlbmQ7CiAgICAgRE9NTGlzdGVuZXIqIG1fZG9tTGlzdGVuZXI7CiAgICAgTm9k
ZVRvSWRNYXAgbV9kb2N1bWVudE5vZGVUb0lkTWFwOworICAgIEhhc2hNYXA8Tm9kZSosIEJhY2tl
bmROb2RlSWQ+IG1fbm9kZVRvQmFja2VuZElkTWFwOwogICAgIC8vIE93bnMgbm9kZSBtYXBwaW5n
cyBmb3IgZGFuZ2xpbmcgbm9kZXMuCiAgICAgVmVjdG9yPE93blB0cjxOb2RlVG9JZE1hcD4gPiBt
X2RhbmdsaW5nTm9kZVRvSWRNYXBzOwogICAgIEhhc2hNYXA8aW50LCBOb2RlKj4gbV9pZFRvTm9k
ZTsKICAgICBIYXNoTWFwPGludCwgTm9kZVRvSWRNYXAqPiBtX2lkVG9Ob2Rlc01hcDsKICAgICBI
YXNoU2V0PGludD4gbV9jaGlsZHJlblJlcXVlc3RlZDsKKyAgICBIYXNoTWFwPEJhY2tlbmROb2Rl
SWQsIE5vZGUqPiBtX2JhY2tlbmRJZFRvTm9kZTsKICAgICBpbnQgbV9sYXN0Tm9kZUlkOworICAg
IEJhY2tlbmROb2RlSWQgbV9sYXN0QmFja2VuZE5vZGVJZDsKICAgICBSZWZQdHI8RG9jdW1lbnQ+
IG1fZG9jdW1lbnQ7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJlZlB0cjxO
b2RlPiA+ID4gU2VhcmNoUmVzdWx0czsKICAgICBTZWFyY2hSZXN1bHRzIG1fc2VhcmNoUmVzdWx0
czsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195749</attachid>
            <date>2013-03-29 08:14:31 -0700</date>
            <delta_ts>2013-04-01 07:59:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130329191427.patch</filename>
            <type>text/plain</type>
            <size>8569</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzIxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTI5ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb2RlcyBub3QgeWV0IHB1c2hlZCB0byBmcm9udC1lbmQgYXJlIHJlZmVyZW5jZWQgYnkg
QmFja2VuZElkLiBOb2RlcyB3aXRoIHN1Y2gKKyAgICAgICAgQmFja2VuZElkIGFyZSByZXRhaW5l
ZC4gT25lIGNhbiBncm91cCBub2RlcyB3aGVuIGdlbmVyYXRpbmcgQmFja2VuZElkcyB0byByZWxl
YXNlCisgICAgICAgIHRoZW0gYWxsIHRvZ2V0aGVyIGxhdGVyLgorCisgICAgICAgIFRvIHJlc29s
dmUgbm9kZSByZWZlcmVuY2VzIGJ5IEJhY2tlbmRJZCwgZnJvbnRlbmQgc2hvdWxkIHVzZSBuZXcg
cHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQgbWV0aG9kLgorICAgICAgICBUaGlzIHdpbGwg
aW52YWxpZGF0ZSB0aGUgZ2VuZXJhdGVkIEJhY2tlbmRJZC4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFn
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRG
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OnJlbGVhc2VCYWNrZW5kSWRzRm9yTm9kZUdyb3VwKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorCiAyMDEzLTAzLTI5ICBQ
ZXRlciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZ2F0aGVyIGFjY2Vzc29yIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyIHVuZGVyIGEgc2lu
Z2xlIHRyZWUgbm9kZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xNzE3LDYgKzE3MTcsMTIgQEAKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZpZXIuIgogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiQmFja2VuZE5v
ZGVJZCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVm
ZXJlbmNlIGEgbm9kZSB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQt
ZW5kLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIk5vZGUiLAogICAgICAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCkBA
IC0yMDAyLDYgKzIwMDgsMTcgQEAKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJwdXNo
Tm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja2VuZE5vZGVJZCIsICIkcmVm
IjogIkJhY2tlbmROb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJhY2tlbmQgbm9kZSBpZCBv
ZiB0aGUgbm9kZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjog
Ik5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHVzaGVkIG5vZGUncyBpZC4iIH0KKyAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0
aGF0IHRoZSBub2RlIGlzIHNlbnQgdG8gdGhlIGNhbGxlciBnaXZlbiBpdHMgYmFja2VuZCBub2Rl
IGlkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZU5vZGUiLAogICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUg
bm9kZSB0byByZXNvbHZlLiIgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcAkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3
LDYgKzIwNyw3IEBAIEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnMKICAg
ICAsIG1fZnJvbnRlbmQoMCkKICAgICAsIG1fZG9tTGlzdGVuZXIoMCkKICAgICAsIG1fbGFzdE5v
ZGVJZCgxKQorICAgICwgbV9sYXN0QmFja2VuZE5vZGVJZCgtMSkKICAgICAsIG1fc2VhcmNoaW5n
Rm9yTm9kZShmYWxzZSkKICAgICAsIG1fc3VwcHJlc3NBdHRyaWJ1dGVNb2RpZmllZEV2ZW50KGZh
bHNlKQogewpAQCAtNDcxLDYgKzQ3Miw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2Nh
cmRCaW5kaW5ncygKICAgICBtX2lkVG9Ob2RlLmNsZWFyKCk7CiAgICAgcmVsZWFzZURhbmdsaW5n
Tm9kZXMoKTsKICAgICBtX2NoaWxkcmVuUmVxdWVzdGVkLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
SWRUb05vZGUuY2xlYXIoKTsKKyAgICBtX25vZGVHcm91cFRvQmFja2VuZElkTWFwLmNsZWFyKCk7
CiB9CiAKIGludCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgaW50IGRvY3VtZW50Tm9kZUlkLCBOb2RlKiBub2RlVG9QdXNoKQpA
QCAtNjA0LDYgKzYwNywzOCBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJvdW5kTm9kZUlkKE5v
ZGUqCiAgICAgcmV0dXJuIG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZSk7CiB9CiAKK0Jh
Y2tlbmROb2RlSWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRGb3JOb2RlKE5vZGUq
IG5vZGUsIGNvbnN0IFN0cmluZyYgbm9kZUdyb3VwKQoreworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIW1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAuY29udGFp
bnMobm9kZUdyb3VwKSkgeworICAgICAgICBPd25QdHI8Tm9kZVRvQmFja2VuZElkTWFwPiBuZXdN
YXAgPSBhZG9wdFB0cihuZXcgTm9kZVRvQmFja2VuZElkTWFwKTsKKyAgICAgICAgbV9ub2RlR3Jv
dXBUb0JhY2tlbmRJZE1hcC5zZXQobm9kZUdyb3VwLCBuZXdNYXAucmVsZWFzZSgpKTsKKyAgICB9
CisKKyAgICBOb2RlVG9CYWNrZW5kSWRNYXAqIG1hcCA9IG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRN
YXAuZ2V0KG5vZGVHcm91cCk7CisgICAgQmFja2VuZE5vZGVJZCBpZCA9IG1hcC0+Z2V0KG5vZGUp
OworICAgIGlmICghaWQpIHsKKyAgICAgICAgaWQgPSAtLW1fbGFzdEJhY2tlbmROb2RlSWQ7Cisg
ICAgICAgIG1hcC0+c2V0KG5vZGUsIGlkKTsKKyAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUuc2V0
KGlkLCBzdGQ6Om1ha2VfcGFpcihub2RlLCBub2RlR3JvdXApKTsKKyAgICB9CisKKyAgICByZXR1
cm4gaWQ7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlbGVhc2VCYWNrZW5kSWRzRm9y
Tm9kZUdyb3VwKGNvbnN0IFN0cmluZyYgbm9kZUdyb3VwKQoreworICAgIE5vZGVUb0JhY2tlbmRJ
ZE1hcCogbWFwID0gbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5nZXQobm9kZUdyb3VwKTsKKyAg
ICBpZiAobWFwKSB7CisgICAgICAgIE5vZGVUb0JhY2tlbmRJZE1hcDo6aXRlcmF0b3I6OlZhbHVl
cyBlbmQgPSBtYXAtPmVuZCgpLnZhbHVlcygpOworICAgICAgICBmb3IgKE5vZGVUb0JhY2tlbmRJ
ZE1hcDo6aXRlcmF0b3I6OlZhbHVlcyB2YWx1ZSA9IG1hcC0+YmVnaW4oKS52YWx1ZXMoKTsgdmFs
dWUgIT0gZW5kOyArK3ZhbHVlKQorICAgICAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3Zl
KCp2YWx1ZSk7CisgICAgICAgIG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAucmVtb3ZlKG5vZGVH
cm91cCk7CisgICAgfQorfQorCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRBdHRyaWJ1dGVW
YWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
YXNzZXJ0RWRpdGFibGVFbGVtZW50KGVycm9yU3RyaW5nLCBlbGVtZW50SWQpOwpAQCAtMTcyNyw2
ICsxNzYyLDIzIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG8KICAg
ICAgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBwYXRoIGZvdW5kIjsKIH0K
IAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBCYWNrZW5kTm9kZUlkIGJhY2tlbmROb2RlSWQsIGlu
dCogbm9kZUlkKQoreworICAgIGlmICghbV9iYWNrZW5kSWRUb05vZGUuY29udGFpbnMoYmFja2Vu
ZE5vZGVJZCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBi
YWNrZW5kIGlkIGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5vZGUqIG5v
ZGUgPSBtX2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkuZmlyc3Q7CisgICAgU3Ry
aW5nIG5vZGVHcm91cCA9IG1fYmFja2VuZElkVG9Ob2RlLmdldChiYWNrZW5kTm9kZUlkKS5zZWNv
bmQ7CisgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisKKyAgICBp
ZiAobm9kZUdyb3VwID09ICIiKSB7CisgICAgICAgIG1fYmFja2VuZElkVG9Ob2RlLnJlbW92ZShi
YWNrZW5kTm9kZUlkKTsKKyAgICAgICAgbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5nZXQobm9k
ZUdyb3VwKS0+cmVtb3ZlKG5vZGUpOworICAgIH0KK30KKwogUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJbnNwZWN0b3JET01BZ2VudDo6cmVzb2x2ZU5vZGUo
Tm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkKIHsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBub2RlLT5pc0RvY3VtZW50Tm9kZSgpID8gbm9kZS0+ZG9jdW1lbnQoKSA6IG5v
ZGUtPm93bmVyRG9jdW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCShyZXZpc2lvbiAxNDYzMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUs
NyBAQCBjbGFzcyBTaGFkb3dSb290Owogc3RydWN0IEhpZ2hsaWdodENvbmZpZzsKIAogdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7Cit0eXBlZGVmIGludCBCYWNrZW5kTm9kZUlkOwogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKIApAQCAtMTQxLDYgKzE0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVk
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogaGlnaGxpZ2h0Q29uZmlnKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdE5vZGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBpbnQqIG5vZGVJZCk7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgcGF0aCwgaW50KiBub2RlSWQpOworICAg
IHZpcnR1YWwgdm9pZCBwdXNoTm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZChFcnJvclN0cmluZyos
IEJhY2tlbmROb2RlSWQsIGludCogbm9kZUlkKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hs
aWdodChFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHRSZWN0KEVycm9y
U3RyaW5nKiwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiBjb2xvciwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IG91dGxpbmVDb2xvcik7CiAgICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodE5vZGUoRXJyb3JTdHJp
bmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaGlnaGxpZ2h0Q29uZmlnLCBjb25z
dCBpbnQqIG5vZGVJZCwgY29uc3QgU3RyaW5nKiBvYmplY3RJZCk7CkBAIC0xNzcsNiArMTc5LDgg
QEAgcHVibGljOgogICAgIE5vZGUqIG5vZGVGb3JJZChpbnQgbm9kZUlkKTsKICAgICBpbnQgYm91
bmROb2RlSWQoTm9kZSopOwogICAgIHZvaWQgc2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqKTsK
KyAgICBCYWNrZW5kTm9kZUlkIGJhY2tlbmROb2RlSWRGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJp
bmcmIG5vZGVHcm91cCk7CisgICAgdm9pZCByZWxlYXNlQmFja2VuZElkc0Zvck5vZGVHcm91cChj
b25zdCBTdHJpbmcmIG5vZGVHcm91cCk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGRvY3VtZW50VVJM
U3RyaW5nKERvY3VtZW50Kik7CiAKQEAgLTI0MiwxMiArMjQ2LDE2IEBAIHByaXZhdGU6CiAgICAg
SW5zcGVjdG9yRnJvbnRlbmQ6OkRPTSogbV9mcm9udGVuZDsKICAgICBET01MaXN0ZW5lciogbV9k
b21MaXN0ZW5lcjsKICAgICBOb2RlVG9JZE1hcCBtX2RvY3VtZW50Tm9kZVRvSWRNYXA7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxOb2RlPiwgQmFja2VuZE5vZGVJZD4gTm9kZVRvQmFja2Vu
ZElkTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBPd25QdHI8Tm9kZVRvQmFja2VuZElkTWFwPiA+
IG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXA7CiAgICAgLy8gT3ducyBub2RlIG1hcHBpbmdzIGZv
ciBkYW5nbGluZyBub2Rlcy4KICAgICBWZWN0b3I8T3duUHRyPE5vZGVUb0lkTWFwPiA+IG1fZGFu
Z2xpbmdOb2RlVG9JZE1hcHM7CiAgICAgSGFzaE1hcDxpbnQsIE5vZGUqPiBtX2lkVG9Ob2RlOwog
ICAgIEhhc2hNYXA8aW50LCBOb2RlVG9JZE1hcCo+IG1faWRUb05vZGVzTWFwOwogICAgIEhhc2hT
ZXQ8aW50PiBtX2NoaWxkcmVuUmVxdWVzdGVkOworICAgIEhhc2hNYXA8QmFja2VuZE5vZGVJZCwg
c3RkOjpwYWlyPE5vZGUqLCBTdHJpbmc+ID4gbV9iYWNrZW5kSWRUb05vZGU7CiAgICAgaW50IG1f
bGFzdE5vZGVJZDsKKyAgICBCYWNrZW5kTm9kZUlkIG1fbGFzdEJhY2tlbmROb2RlSWQ7CiAgICAg
UmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiA+IFNlYXJjaFJlc3VsdHM7CiAgICAgU2VhcmNoUmVzdWx0
cyBtX3NlYXJjaFJlc3VsdHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195968</attachid>
            <date>2013-04-01 07:50:29 -0700</date>
            <delta_ts>2013-04-02 03:09:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130401185021.patch</filename>
            <type>text/plain</type>
            <size>9048</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzIxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTI5ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb2RlcyBub3QgeWV0IHB1c2hlZCB0byBmcm9udC1lbmQgYXJlIHJlZmVyZW5jZWQgYnkg
QmFja2VuZElkLiBOb2RlcyB3aXRoIHN1Y2gKKyAgICAgICAgQmFja2VuZElkIGFyZSByZXRhaW5l
ZC4gT25lIGNhbiBncm91cCBub2RlcyB3aGVuIGdlbmVyYXRpbmcgQmFja2VuZElkcyB0byByZWxl
YXNlCisgICAgICAgIHRoZW0gYWxsIHRvZ2V0aGVyIGxhdGVyLgorCisgICAgICAgIFRvIHJlc29s
dmUgbm9kZSByZWZlcmVuY2VzIGJ5IEJhY2tlbmRJZCwgZnJvbnRlbmQgc2hvdWxkIHVzZSBuZXcg
cHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQgbWV0aG9kLgorICAgICAgICBUaGlzIHdpbGwg
aW52YWxpZGF0ZSB0aGUgZ2VuZXJhdGVkIEJhY2tlbmRJZC4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFn
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRG
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OnJlbGVhc2VCYWNrZW5kSWRzRm9yTm9kZUdyb3VwKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorCiAyMDEzLTAzLTI5ICBQ
ZXRlciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZ2F0aGVyIGFjY2Vzc29yIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyIHVuZGVyIGEgc2lu
Z2xlIHRyZWUgbm9kZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xNzE3LDYgKzE3MTcsMTIgQEAKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZpZXIuIgogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiQmFja2VuZE5v
ZGVJZCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVm
ZXJlbmNlIGEgbm9kZSB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQt
ZW5kLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIk5vZGUiLAogICAgICAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCkBA
IC0yMDAyLDYgKzIwMDgsMjUgQEAKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJwdXNo
Tm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja2VuZE5vZGVJZCIsICIkcmVm
IjogIkJhY2tlbmROb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJhY2tlbmQgbm9kZSBpZCBv
ZiB0aGUgbm9kZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjog
Ik5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHVzaGVkIG5vZGUncyBpZC4iIH0KKyAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0
aGF0IHRoZSBub2RlIGlzIHNlbnQgdG8gdGhlIGNhbGxlciBnaXZlbiBpdHMgYmFja2VuZCBub2Rl
IGlkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVsZWFzZUJhY2tlbmRJZHNG
b3JOb2RlR3JvdXAiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgYmFja2VuZCBub2RlIGlkcyBncm91cCBuYW1lLiIgfQorICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQg
Z3JvdXAgb2YgPGNvZGU+QmFja2VuZE5vZGVJZHM8L2NvZGU+IGlzIHJlbGVhc2VkLiIsCisgICAg
ICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZU5vZGUiLAogICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIs
ICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0byByZXNv
bHZlLiIgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDYgKzIwNyw3IEBA
IEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnMKICAgICAsIG1fZnJvbnRl
bmQoMCkKICAgICAsIG1fZG9tTGlzdGVuZXIoMCkKICAgICAsIG1fbGFzdE5vZGVJZCgxKQorICAg
ICwgbV9sYXN0QmFja2VuZE5vZGVJZCgtMSkKICAgICAsIG1fc2VhcmNoaW5nRm9yTm9kZShmYWxz
ZSkKICAgICAsIG1fc3VwcHJlc3NBdHRyaWJ1dGVNb2RpZmllZEV2ZW50KGZhbHNlKQogewpAQCAt
NDcxLDYgKzQ3Miw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygK
ICAgICBtX2lkVG9Ob2RlLmNsZWFyKCk7CiAgICAgcmVsZWFzZURhbmdsaW5nTm9kZXMoKTsKICAg
ICBtX2NoaWxkcmVuUmVxdWVzdGVkLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kSWRUb05vZGUuY2xl
YXIoKTsKKyAgICBtX25vZGVHcm91cFRvQmFja2VuZElkTWFwLmNsZWFyKCk7CiB9CiAKIGludCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgaW50IGRvY3VtZW50Tm9kZUlkLCBOb2RlKiBub2RlVG9QdXNoKQpAQCAtNjA0LDYgKzYw
NywzOSBAQCBpbnQgSW5zcGVjdG9yRE9NQWdlbnQ6OmJvdW5kTm9kZUlkKE5vZGUqCiAgICAgcmV0
dXJuIG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZSk7CiB9CiAKK0JhY2tlbmROb2RlSWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0
IFN0cmluZyYgbm9kZUdyb3VwKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBpZiAoIW1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAuY29udGFpbnMobm9kZUdyb3Vw
KSkKKyAgICAgICAgbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5zZXQobm9kZUdyb3VwLCBOb2Rl
VG9CYWNrZW5kSWRNYXAoKSk7CisKKyAgICBOb2RlVG9CYWNrZW5kSWRNYXAmIG1hcCA9ICptX25v
ZGVHcm91cFRvQmFja2VuZElkTWFwLmZpbmQobm9kZUdyb3VwKS52YWx1ZXMoKTsKKyAgICBCYWNr
ZW5kTm9kZUlkIGlkID0gbWFwLmdldChub2RlKTsKKyAgICBpZiAoIWlkKSB7CisgICAgICAgIGlk
ID0gLS1tX2xhc3RCYWNrZW5kTm9kZUlkOworICAgICAgICBtYXAuc2V0KG5vZGUsIGlkKTsKKyAg
ICAgICAgbV9iYWNrZW5kSWRUb05vZGUuc2V0KGlkLCBzdGQ6Om1ha2VfcGFpcihub2RlLCBub2Rl
R3JvdXApKTsKKyAgICB9CisKKyAgICByZXR1cm4gaWQ7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnJlbGVhc2VCYWNrZW5kSWRzRm9yTm9kZUdyb3VwKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBub2RlR3JvdXApCit7CisgICAgaWYgKG1fbm9kZUdyb3VwVG9C
YWNrZW5kSWRNYXAuY29udGFpbnMobm9kZUdyb3VwKSkgeworICAgICAgICBOb2RlVG9CYWNrZW5k
SWRNYXAmIG1hcCA9ICptX25vZGVHcm91cFRvQmFja2VuZElkTWFwLmZpbmQobm9kZUdyb3VwKS52
YWx1ZXMoKTsKKyAgICAgICAgTm9kZVRvQmFja2VuZElkTWFwOjppdGVyYXRvcjo6VmFsdWVzIGVu
ZCA9IG1hcC5lbmQoKS52YWx1ZXMoKTsKKyAgICAgICAgZm9yIChOb2RlVG9CYWNrZW5kSWRNYXA6
Oml0ZXJhdG9yOjpWYWx1ZXMgdmFsdWUgPSBtYXAuYmVnaW4oKS52YWx1ZXMoKTsgdmFsdWUgIT0g
ZW5kOyArK3ZhbHVlKQorICAgICAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3ZlKCp2YWx1
ZSk7CisgICAgICAgIG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAucmVtb3ZlKG5vZGVHcm91cCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAqZXJyb3JTdHJpbmcgPSAiR3JvdXAgbmFt
ZSBub3QgZm91bmQiOworfQorCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRBdHRyaWJ1dGVW
YWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBlbGVtZW50SWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
YXNzZXJ0RWRpdGFibGVFbGVtZW50KGVycm9yU3RyaW5nLCBlbGVtZW50SWQpOwpAQCAtMTcyNyw2
ICsxNzYzLDIzIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlQYXRoVG8KICAg
ICAgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBwYXRoIGZvdW5kIjsKIH0K
IAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBCYWNrZW5kTm9kZUlkIGJhY2tlbmROb2RlSWQsIGlu
dCogbm9kZUlkKQoreworICAgIGlmICghbV9iYWNrZW5kSWRUb05vZGUuY29udGFpbnMoYmFja2Vu
ZE5vZGVJZCkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIG5vZGUgd2l0aCBnaXZlbiBi
YWNrZW5kIGlkIGZvdW5kIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE5vZGUqIG5v
ZGUgPSBtX2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkuZmlyc3Q7CisgICAgU3Ry
aW5nIG5vZGVHcm91cCA9IG1fYmFja2VuZElkVG9Ob2RlLmdldChiYWNrZW5kTm9kZUlkKS5zZWNv
bmQ7CisgICAgKm5vZGVJZCA9IHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CisKKyAgICBp
ZiAobm9kZUdyb3VwID09ICIiKSB7CisgICAgICAgIG1fYmFja2VuZElkVG9Ob2RlLnJlbW92ZShi
YWNrZW5kTm9kZUlkKTsKKyAgICAgICAgbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5maW5kKG5v
ZGVHcm91cCkudmFsdWVzKCktPnJlbW92ZShub2RlKTsKKyAgICB9Cit9CisKIFBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OnJl
c29sdmVOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApCiB7CiAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbm9kZS0+aXNEb2N1bWVudE5vZGUoKSA/IG5vZGUtPmRvY3Vt
ZW50KCkgOiBub2RlLT5vd25lckRvY3VtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDYgKzc1LDcgQEAgY2xhc3MgU2hhZG93Um9vdDsKIHN0cnVjdCBIaWdobGlnaHRDb25maWc7
CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwordHlwZWRlZiBpbnQgQmFja2VuZE5vZGVJ
ZDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKQEAgLTE0MSw2ICsxNDIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyosIGJv
b2wgZW5hYmxlZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGhpZ2hsaWdodENvbmZp
Zyk7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3ROb2RlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOwogICAgIHZpcnR1YWwgdm9pZCBwdXNoTm9kZUJ5
UGF0aFRvRnJvbnRlbmQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHBhdGgsIGludCogbm9k
ZUlkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJvbnRlbmQoRXJy
b3JTdHJpbmcqLCBCYWNrZW5kTm9kZUlkLCBpbnQqIG5vZGVJZCk7CisgICAgdmlydHVhbCB2b2lk
IHJlbGVhc2VCYWNrZW5kSWRzRm9yTm9kZUdyb3VwKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBub2RlR3JvdXApOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5n
Kik7CiAgICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodFJlY3QoRXJyb3JTdHJpbmcqLCBpbnQgeCwg
aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0bGluZUNvbG9yKTsK
ICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiBoaWdobGlnaHRDb25maWcsIGNvbnN0IGludCogbm9kZUlkLCBj
b25zdCBTdHJpbmcqIG9iamVjdElkKTsKQEAgLTE3Nyw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAg
Tm9kZSogbm9kZUZvcklkKGludCBub2RlSWQpOwogICAgIGludCBib3VuZE5vZGVJZChOb2RlKik7
CiAgICAgdm9pZCBzZXRET01MaXN0ZW5lcihET01MaXN0ZW5lciopOworICAgIEJhY2tlbmROb2Rl
SWQgYmFja2VuZE5vZGVJZEZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYgbm9kZUdyb3VwKTsK
IAogICAgIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqKTsKIApAQCAt
MjQyLDEyICsyNDYsMTYgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NKiBt
X2Zyb250ZW5kOwogICAgIERPTUxpc3RlbmVyKiBtX2RvbUxpc3RlbmVyOwogICAgIE5vZGVUb0lk
TWFwIG1fZG9jdW1lbnROb2RlVG9JZE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5v
ZGU+LCBCYWNrZW5kTm9kZUlkPiBOb2RlVG9CYWNrZW5kSWRNYXA7CisgICAgSGFzaE1hcDxTdHJp
bmcsIE5vZGVUb0JhY2tlbmRJZE1hcD4gbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcDsKICAgICAv
LyBPd25zIG5vZGUgbWFwcGluZ3MgZm9yIGRhbmdsaW5nIG5vZGVzLgogICAgIFZlY3RvcjxPd25Q
dHI8Tm9kZVRvSWRNYXA+ID4gbV9kYW5nbGluZ05vZGVUb0lkTWFwczsKICAgICBIYXNoTWFwPGlu
dCwgTm9kZSo+IG1faWRUb05vZGU7CiAgICAgSGFzaE1hcDxpbnQsIE5vZGVUb0lkTWFwKj4gbV9p
ZFRvTm9kZXNNYXA7CiAgICAgSGFzaFNldDxpbnQ+IG1fY2hpbGRyZW5SZXF1ZXN0ZWQ7CisgICAg
SGFzaE1hcDxCYWNrZW5kTm9kZUlkLCBzdGQ6OnBhaXI8Tm9kZSosIFN0cmluZz4gPiBtX2JhY2tl
bmRJZFRvTm9kZTsKICAgICBpbnQgbV9sYXN0Tm9kZUlkOworICAgIEJhY2tlbmROb2RlSWQgbV9s
YXN0QmFja2VuZE5vZGVJZDsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJlZlB0cjxOb2RlPiA+ID4gU2VhcmNoUmVz
dWx0czsKICAgICBTZWFyY2hSZXN1bHRzIG1fc2VhcmNoUmVzdWx0czsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196110</attachid>
            <date>2013-04-02 03:09:44 -0700</date>
            <delta_ts>2013-04-02 07:27:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110921-20130402140935.patch</filename>
            <type>text/plain</type>
            <size>8753</size>
            <attacher name="Dmitry Gozman">dgozman</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NzIxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAzLTI5ICBEbWl0cnkg
R296bWFuICA8ZGdvem1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
YWxsb3cgcmVmZXJlbmNpbmcgb2Ygbm9kZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHB1c2hlZCB0byB0
aGUgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTA5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOb2RlcyBub3QgeWV0IHB1c2hlZCB0byBmcm9udC1lbmQgYXJlIHJlZmVyZW5jZWQgYnkg
QmFja2VuZE5vZGVJZCBhbmQgcmV0YWluZWQuCisgICAgICAgIE9uZSBjYW4gZ3JvdXAgbm9kZXMg
d2hlbiBnZW5lcmF0aW5nIEJhY2tlbmROb2RlSWRzIHRvIHJlbGVhc2UgdGhlbSBhbGwgdG9nZXRo
ZXIgbGF0ZXIuCisKKyAgICAgICAgVG8gcmVzb2x2ZSBub2RlIHJlZmVyZW5jZXMgYnkgQmFja2Vu
ZE5vZGVJZCwgZnJvbnRlbmQgc2hvdWxkIHVzZSBuZXcgcHVzaE5vZGVCeUJhY2tlbmRJZFRvRnJv
bnRlbmQgbWV0aG9kLgorICAgICAgICBUaGlzIHdpbGwgaW52YWxpZGF0ZSB0aGUgZ2VuZXJhdGVk
IEJhY2tlbmROb2RlSWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJhY2tlbmROb2RlSWRGb3JOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpyZWxlYXNlQmFja2VuZE5vZGVJZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgorCiAyMDEzLTAzLTI5ICBQ
ZXRlciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZ2F0aGVyIGFjY2Vzc29yIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyIHVuZGVyIGEgc2lu
Z2xlIHRyZWUgbm9kZQpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgkocmV2aXNpb24gMTQ2MzM4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xNzE3LDYgKzE3MTcsMTIgQEAKICAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZpZXIuIgogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiQmFja2VuZE5v
ZGVJZCIsCisgICAgICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCisgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVm
ZXJlbmNlIGEgbm9kZSB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQt
ZW5kLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIk5vZGUiLAogICAgICAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCkBA
IC0yMDAyLDYgKzIwMDgsMjUgQEAKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJwdXNo
Tm9kZUJ5QmFja2VuZElkVG9Gcm9udGVuZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYmFja2VuZE5vZGVJZCIsICIkcmVm
IjogIkJhY2tlbmROb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJhY2tlbmQgbm9kZSBpZCBv
ZiB0aGUgbm9kZS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjog
Ik5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHVzaGVkIG5vZGUncyBpZC4iIH0KKyAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0
aGF0IHRoZSBub2RlIGlzIHNlbnQgdG8gdGhlIGNhbGxlciBnaXZlbiBpdHMgYmFja2VuZCBub2Rl
IGlkLiIsCisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVsZWFzZUJhY2tlbmROb2Rl
SWRzIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJub2RlR3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGJhY2tlbmQgbm9kZSBpZHMgZ3JvdXAgbmFtZS4iIH0KKyAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0aGF0IGdyb3VwIG9m
IDxjb2RlPkJhY2tlbmROb2RlSWRzPC9jb2RlPiBpcyByZWxlYXNlZC4iLAorICAgICAgICAgICAg
ICAgICJoaWRkZW4iOiB0cnVlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICJuYW1lIjogInJlc29sdmVOb2RlIiwKICAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6
ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIG5vZGUgdG8gcmVzb2x2ZS4iIH0s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAJKHJldmlzaW9uIDE0NjMzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNyw2ICsyMDcsNyBAQCBJbnNwZWN0
b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zCiAgICAgLCBtX2Zyb250ZW5kKDApCiAg
ICAgLCBtX2RvbUxpc3RlbmVyKDApCiAgICAgLCBtX2xhc3ROb2RlSWQoMSkKKyAgICAsIG1fbGFz
dEJhY2tlbmROb2RlSWQoLTEpCiAgICAgLCBtX3NlYXJjaGluZ0Zvck5vZGUoZmFsc2UpCiAgICAg
LCBtX3N1cHByZXNzQXR0cmlidXRlTW9kaWZpZWRFdmVudChmYWxzZSkKIHsKQEAgLTQ3MSw2ICs0
NzIsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MoCiAgICAgbV9p
ZFRvTm9kZS5jbGVhcigpOwogICAgIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAgICAgbV9jaGls
ZHJlblJlcXVlc3RlZC5jbGVhcigpOworICAgIG1fYmFja2VuZElkVG9Ob2RlLmNsZWFyKCk7Cisg
ICAgbV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5jbGVhcigpOwogfQogCiBpbnQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGlu
dCBkb2N1bWVudE5vZGVJZCwgTm9kZSogbm9kZVRvUHVzaCkKQEAgLTYwNCw2ICs2MDcsMzcgQEAg
aW50IEluc3BlY3RvckRPTUFnZW50Ojpib3VuZE5vZGVJZChOb2RlKgogICAgIHJldHVybiBtX2Rv
Y3VtZW50Tm9kZVRvSWRNYXAuZ2V0KG5vZGUpOwogfQogCitCYWNrZW5kTm9kZUlkIEluc3BlY3Rv
ckRPTUFnZW50OjpiYWNrZW5kTm9kZUlkRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcm
IG5vZGVHcm91cCkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAg
aWYgKCFtX25vZGVHcm91cFRvQmFja2VuZElkTWFwLmNvbnRhaW5zKG5vZGVHcm91cCkpCisgICAg
ICAgIG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAuc2V0KG5vZGVHcm91cCwgTm9kZVRvQmFja2Vu
ZElkTWFwKCkpOworCisgICAgTm9kZVRvQmFja2VuZElkTWFwJiBtYXAgPSBtX25vZGVHcm91cFRv
QmFja2VuZElkTWFwLmZpbmQobm9kZUdyb3VwKS0+dmFsdWU7CisgICAgQmFja2VuZE5vZGVJZCBp
ZCA9IG1hcC5nZXQobm9kZSk7CisgICAgaWYgKCFpZCkgeworICAgICAgICBpZCA9IC0tbV9sYXN0
QmFja2VuZE5vZGVJZDsKKyAgICAgICAgbWFwLnNldChub2RlLCBpZCk7CisgICAgICAgIG1fYmFj
a2VuZElkVG9Ob2RlLnNldChpZCwgc3RkOjptYWtlX3BhaXIobm9kZSwgbm9kZUdyb3VwKSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIGlkOworfQorCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZWxl
YXNlQmFja2VuZE5vZGVJZHMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
IG5vZGVHcm91cCkKK3sKKyAgICBpZiAobV9ub2RlR3JvdXBUb0JhY2tlbmRJZE1hcC5jb250YWlu
cyhub2RlR3JvdXApKSB7CisgICAgICAgIE5vZGVUb0JhY2tlbmRJZE1hcCYgbWFwID0gbV9ub2Rl
R3JvdXBUb0JhY2tlbmRJZE1hcC5maW5kKG5vZGVHcm91cCktPnZhbHVlOworICAgICAgICBmb3Ig
KE5vZGVUb0JhY2tlbmRJZE1hcDo6aXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gbWFw
LmVuZCgpOyArK2l0KQorICAgICAgICAgICAgbV9iYWNrZW5kSWRUb05vZGUucmVtb3ZlKGl0LT52
YWx1ZSk7CisgICAgICAgIG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAucmVtb3ZlKG5vZGVHcm91
cCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKmVycm9yU3RyaW5nID0gIkdyb3VwIG5h
bWUgbm90IGZvdW5kIjsKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0QXR0cmlidXRl
VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgZWxlbWVudElkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgRWxlbWVudCogZWxlbWVudCA9
IGFzc2VydEVkaXRhYmxlRWxlbWVudChlcnJvclN0cmluZywgZWxlbWVudElkKTsKQEAgLTE3Mjcs
NiArMTc2MSwyMyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZUJ5UGF0aFRvCiAg
ICAgICAgICplcnJvclN0cmluZyA9ICJObyBub2RlIHdpdGggZ2l2ZW4gcGF0aCBmb3VuZCI7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5k
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgQmFja2VuZE5vZGVJZCBiYWNrZW5kTm9kZUlkLCBp
bnQqIG5vZGVJZCkKK3sKKyAgICBpZiAoIW1fYmFja2VuZElkVG9Ob2RlLmNvbnRhaW5zKGJhY2tl
bmROb2RlSWQpKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBub2RlIHdpdGggZ2l2ZW4g
YmFja2VuZCBpZCBmb3VuZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOb2RlKiBu
b2RlID0gbV9iYWNrZW5kSWRUb05vZGUuZ2V0KGJhY2tlbmROb2RlSWQpLmZpcnN0OworICAgIFN0
cmluZyBub2RlR3JvdXAgPSBtX2JhY2tlbmRJZFRvTm9kZS5nZXQoYmFja2VuZE5vZGVJZCkuc2Vj
b25kOworICAgICpub2RlSWQgPSBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG5vZGUpOworCisgICAg
aWYgKG5vZGVHcm91cCA9PSAiIikgeworICAgICAgICBtX2JhY2tlbmRJZFRvTm9kZS5yZW1vdmUo
YmFja2VuZE5vZGVJZCk7CisgICAgICAgIG1fbm9kZUdyb3VwVG9CYWNrZW5kSWRNYXAuZmluZChu
b2RlR3JvdXApLT52YWx1ZS5yZW1vdmUobm9kZSk7CisgICAgfQorfQorCiBQYXNzUmVmUHRyPFR5
cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluc3BlY3RvckRPTUFnZW50OjpyZXNv
bHZlTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogewogICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPmlzRG9jdW1lbnROb2RlKCkgPyBub2RlLT5kb2N1bWVu
dCgpIDogbm9kZS0+b3duZXJEb2N1bWVudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgJKHJldmlzaW9uIDE0NjMzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NSw2ICs3NSw3IEBAIGNsYXNzIFNoYWRvd1Jvb3Q7CiBzdHJ1Y3QgSGlnaGxpZ2h0Q29uZmlnOwog
CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKK3R5cGVkZWYgaW50IEJhY2tlbmROb2RlSWQ7
CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCkBAIC0xNDEsNiArMTQyLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29s
IGVuYWJsZWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBoaWdobGlnaHRDb25maWcp
OwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0SWQsIGludCogbm9kZUlkKTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeVBh
dGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBpbnQqIG5vZGVJ
ZCk7CisgICAgdmlydHVhbCB2b2lkIHB1c2hOb2RlQnlCYWNrZW5kSWRUb0Zyb250ZW5kKEVycm9y
U3RyaW5nKiwgQmFja2VuZE5vZGVJZCwgaW50KiBub2RlSWQpOworICAgIHZpcnR1YWwgdm9pZCBy
ZWxlYXNlQmFja2VuZE5vZGVJZHMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG5vZGVHcm91
cCk7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoRXJyb3JTdHJpbmcqKTsKICAgICB2
aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogY29sb3Is
IGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRsaW5lQ29sb3IpOwogICAgIHZpcnR1
YWwgdm9pZCBoaWdobGlnaHROb2RlKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4mIGhpZ2hsaWdodENvbmZpZywgY29uc3QgaW50KiBub2RlSWQsIGNvbnN0IFN0cmlu
Zyogb2JqZWN0SWQpOwpAQCAtMTc3LDYgKzE4MCw3IEBAIHB1YmxpYzoKICAgICBOb2RlKiBub2Rl
Rm9ySWQoaW50IG5vZGVJZCk7CiAgICAgaW50IGJvdW5kTm9kZUlkKE5vZGUqKTsKICAgICB2b2lk
IHNldERPTUxpc3RlbmVyKERPTUxpc3RlbmVyKik7CisgICAgQmFja2VuZE5vZGVJZCBiYWNrZW5k
Tm9kZUlkRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiBub2RlR3JvdXApOwogCiAgICAgc3Rh
dGljIFN0cmluZyBkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCopOwogCkBAIC0yNDIsMTIgKzI0
NiwxNiBAQCBwcml2YXRlOgogICAgIEluc3BlY3RvckZyb250ZW5kOjpET00qIG1fZnJvbnRlbmQ7
CiAgICAgRE9NTGlzdGVuZXIqIG1fZG9tTGlzdGVuZXI7CiAgICAgTm9kZVRvSWRNYXAgbV9kb2N1
bWVudE5vZGVUb0lkTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIEJhY2tl
bmROb2RlSWQ+IE5vZGVUb0JhY2tlbmRJZE1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgTm9kZVRv
QmFja2VuZElkTWFwPiBtX25vZGVHcm91cFRvQmFja2VuZElkTWFwOwogICAgIC8vIE93bnMgbm9k
ZSBtYXBwaW5ncyBmb3IgZGFuZ2xpbmcgbm9kZXMuCiAgICAgVmVjdG9yPE93blB0cjxOb2RlVG9J
ZE1hcD4gPiBtX2RhbmdsaW5nTm9kZVRvSWRNYXBzOwogICAgIEhhc2hNYXA8aW50LCBOb2RlKj4g
bV9pZFRvTm9kZTsKICAgICBIYXNoTWFwPGludCwgTm9kZVRvSWRNYXAqPiBtX2lkVG9Ob2Rlc01h
cDsKICAgICBIYXNoU2V0PGludD4gbV9jaGlsZHJlblJlcXVlc3RlZDsKKyAgICBIYXNoTWFwPEJh
Y2tlbmROb2RlSWQsIHN0ZDo6cGFpcjxOb2RlKiwgU3RyaW5nPiA+IG1fYmFja2VuZElkVG9Ob2Rl
OwogICAgIGludCBtX2xhc3ROb2RlSWQ7CisgICAgQmFja2VuZE5vZGVJZCBtX2xhc3RCYWNrZW5k
Tm9kZUlkOwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gPiBTZWFyY2hSZXN1bHRzOwogICAg
IFNlYXJjaFJlc3VsdHMgbV9zZWFyY2hSZXN1bHRzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>