<?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>106922</bug_id>
          
          <creation_ts>2013-01-15 10:33:24 -0800</creation_ts>
          <short_desc>REGRESSION (r139444): Crashes in three accessibility tests on GTK</short_desc>
          <delta_ts>2013-01-18 04:28:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Joanmarie Diggs">jdiggs</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>rniwa</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807438</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-01-15 10:33:24 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/139444

The affected tests:
accessibility/aria-tables.html
accessibility/aria-hidden-with-elements.html
platform/gtk/accessibility/aria-table-hierarchy.html

The backtrace of the crashing thread:
Thread 1 (Thread 0x7f97216e0900 (LWP 11963)):
#0  0x00007f972cbf127c in WTF::HashTable&lt;WebCore::RenderBoxModelObject const*, WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt; &gt;, WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject*&gt; &gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt; &gt;::checkKey&lt;WTF::IdentityHashTranslator&lt;WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt; &gt;, WebCore::RenderBoxModelObject const*&gt; (this=&lt;error reading variable: Cannot access memory at address 0x7fff02651fe8&gt;, key=&lt;error reading variable: Cannot access memory at address 0x7fff02651fe0&gt;) at ../../Source/WTF/wtf/HashTable.h:584
#1  0x00007f972cbef6a7 in WTF::HashTable&lt;WebCore::RenderBoxModelObject const*, WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt; &gt;, WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject*&gt; &gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt; &gt;::lookup&lt;WTF::IdentityHashTranslator&lt;WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt; &gt;, WebCore::RenderBoxModelObject const*&gt; (this=0x2c40220, key=@0x7fff026520e8: 0x2cdf978) at ../../Source/WTF/wtf/HashTable.h:602
#2  0x00007f972cbedfaf in WTF::HashTable&lt;WebCore::RenderBoxModelObject const*, WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*&gt; &gt;, WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashMapValueTraits&lt;WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject*&gt; &gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt; &gt;::lookup (this=0x2c40220, key=@0x7fff026520e8: 0x2cdf978) at ../../Source/WTF/wtf/HashTable.h:419
#3  0x00007f972cbecb8b in WTF::HashMap&lt;WebCore::RenderBoxModelObject const*, WebCore::RenderBoxModelObject*, WTF::PtrHash&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject const*&gt;, WTF::HashTraits&lt;WebCore::RenderBoxModelObject*&gt; &gt;::get (this=0x2c40220, key=@0x7fff026520e8: 0x2cdf978) at ../../Source/WTF/wtf/HashMap.h:368
#4  0x00007f972cbe9bb7 in WebCore::RenderBoxModelObject::continuation (this=0x2cdf978) at ../../Source/WebCore/rendering/RenderBoxModelObject.cpp:2683
#5  0x00007f972cb543de in WebCore::RenderBlock::inlineElementContinuation (this=0x2cdf978) at ../../Source/WebCore/rendering/RenderBlock.cpp:3113
#6  0x00007f972c170d57 in WebCore::startOfContinuations (r=0x2cdf978) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:261
#7  0x00007f972c171676 in WebCore::AccessibilityRenderObject::renderParentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:436
#8  0x00007f972c171996 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:491
#9  0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
#10 0x00007f972c1547d3 in WebCore::AccessibilityARIAGridRow::parentTable (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:123
#11 0x00007f972c189421 in WebCore::AccessibilityTableRow::isTableRow (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:72
#12 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
#13 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
#14 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
#15 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
#16 0x00007f972c1547d3 in WebCore::AccessibilityARIAGridRow::parentTable (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:123
#17 0x00007f972c189421 in WebCore::AccessibilityTableRow::isTableRow (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:72
#18 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
#19 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
#20 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
#21 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
#22 0x00007f972c1547d3 in WebCore::AccessibilityARIAGridRow::parentTable (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:123
#23 0x00007f972c189421 in WebCore::AccessibilityTableRow::isTableRow (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:72
#24 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
#25 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
#26 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
... (Note that the backtrace shows a loop through the last 6 frames)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807842</commentid>
    <comment_count>1</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 17:21:04 -0800</bug_when>
    <thetext>While r139444 is officially the crasher cause; this really seems like an infinite loop that was just waiting to happen.

  0. parentObjectUnignored() calls parentObject()
  1. parentObject() calls isWebArea()
  2. isWebArea() calls roleValue()

  In the case of a table row:

  3. roleValue() calls isTableRow()
  4. isTableRow() calls parentTable() 

  For non-aria table rows, it looks at the renderer and gets the
  renderer&apos;s table and then gets the corresponding accessible from
  AXObjectCache. BUT for aria table rows, it works it&apos;s way up the
  accessible tree:

  5. parentTable() calls parentObjectUnignored()

Proposed patch comin&apos; up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807860</commentid>
    <comment_count>2</comment_count>
      <attachid>182886</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 17:44:22 -0800</bug_when>
    <thetext>Created attachment 182886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807862</commentid>
    <comment_count>3</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 17:45:52 -0800</bug_when>
    <thetext>Chris and Dominic: Mind taking a look? Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807865</commentid>
    <comment_count>4</comment_count>
      <attachid>182886</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 17:48:11 -0800</bug_when>
    <thetext>Comment on attachment 182886
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:127
&gt; +    // Calling parentObjectUnignored() can result in an infinite loop when roleValue() is examined.

would parentObjectIfExists() work here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807875</commentid>
    <comment_count>5</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 17:58:42 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 182886 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182886&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:127
&gt; &gt; +    // Calling parentObjectUnignored() can result in an infinite loop when roleValue() is examined.
&gt; 
&gt; would parentObjectIfExists() work here?

I didn&apos;t try it, but taking a look at the method:

{
    // WebArea&apos;s parent should be the scroll view containing it.
    if (isWebArea() || isSeamlessWebArea())
        return axObjectCache()-&gt;get(m_renderer-&gt;frame()-&gt;view());

    return axObjectCache()-&gt;get(renderParentObject());

It&apos;s the isWebArea() call in parentObject() that&apos;s getting us into trouble here. So my guess is that it wouldn&apos;t work. (Right?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807877</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 18:00:31 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 182886 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182886&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:127
&gt; &gt; &gt; +    // Calling parentObjectUnignored() can result in an infinite loop when roleValue() is examined.
&gt; &gt; 
&gt; &gt; would parentObjectIfExists() work here?
&gt; 
&gt; I didn&apos;t try it, but taking a look at the method:
&gt; 
&gt; {
&gt;     // WebArea&apos;s parent should be the scroll view containing it.
&gt;     if (isWebArea() || isSeamlessWebArea())
&gt;         return axObjectCache()-&gt;get(m_renderer-&gt;frame()-&gt;view());
&gt; 
&gt;     return axObjectCache()-&gt;get(renderParentObject());
&gt; 
&gt; It&apos;s the isWebArea() call in parentObject() that&apos;s getting us into trouble here. So my guess is that it wouldn&apos;t work. (Right?)

I hope isWebArea() isn&apos;t causing a problem. all it does is

 bool isWebArea() const { return roleValue() == WebAreaRole; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807884</commentid>
    <comment_count>7</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 18:09:13 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; I hope isWebArea() isn&apos;t causing a problem. all it does is
&gt; 
&gt;  bool isWebArea() const { return roleValue() == WebAreaRole; }

From the opening report:

#12 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
#13 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
#14 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
#15 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
#16 0x00007f972c1547d3 in WebCore::AccessibilityARIAGridRow::parentTable (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:123
#17 0x00007f972c189421 in WebCore::AccessibilityTableRow::isTableRow (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:72
#18 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
#19 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
#20 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
#21 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345

Having said that, I suppose my previous statement isn&apos;t quite right. isWebArea() itself is not to blame; it&apos;s what happens when we call roleValue() in a table row -- in particular an ARIA table row.

For table rows we determine the role value by first looking to the parent table. In non-ARIA tables, we get the parent table by looking to the renderer, getting its table, and turning that into an accessible. Something I assume we can count on working because non-ARIA tables are, well, tables. :)

In ARIA tables, we call parentObjectUnignored() which can result in our calling isWebArea() which results in our calling roleValue() which result in our looking to the parent table which we get by parentObjectUnignored().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807957</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 19:39:12 -0800</bug_when>
    <thetext>Ah I see

I don&apos;t have the code handy but it occurs to me that maybe roleValue() should be const and the role for this table row should be pre determined like other objects

(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; 
&gt; &gt; I hope isWebArea() isn&apos;t causing a problem. all it does is
&gt; &gt; 
&gt; &gt;  bool isWebArea() const { return roleValue() == WebAreaRole; }
&gt; 
&gt; From the opening report:
&gt; 
&gt; #12 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
&gt; #13 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
&gt; #14 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
&gt; #15 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
&gt; #16 0x00007f972c1547d3 in WebCore::AccessibilityARIAGridRow::parentTable (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp:123
&gt; #17 0x00007f972c189421 in WebCore::AccessibilityTableRow::isTableRow (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:72
&gt; #18 0x00007f972c1893df in WebCore::AccessibilityTableRow::roleValue (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityTableRow.cpp:64
&gt; #19 0x00007f972c1630b7 in WebCore::AccessibilityObject::isWebArea (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.h:381
&gt; #20 0x00007f972c1719d7 in WebCore::AccessibilityRenderObject::parentObject (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityRenderObject.cpp:496
&gt; #21 0x00007f972c165c2d in WebCore::AccessibilityObject::parentObjectUnignored (this=0x2bb4c00) at ../../Source/WebCore/accessibility/AccessibilityObject.cpp:345
&gt; 
&gt; Having said that, I suppose my previous statement isn&apos;t quite right. isWebArea() itself is not to blame; it&apos;s what happens when we call roleValue() in a table row -- in particular an ARIA table row.
&gt; 
&gt; For table rows we determine the role value by first looking to the parent table. In non-ARIA tables, we get the parent table by looking to the renderer, getting its table, and turning that into an accessible. Something I assume we can count on working because non-ARIA tables are, well, tables. :)
&gt; 
&gt; In ARIA tables, we call parentObjectUnignored() which can result in our calling isWebArea() which results in our calling roleValue() which result in our looking to the parent table which we get by parentObjectUnignored().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807977</commentid>
    <comment_count>9</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-15 19:52:06 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Ah I see
&gt; 
&gt; I don&apos;t have the code handy but it occurs to me that maybe roleValue() should be const and the role for this table row should be pre determined like other objects

I can give that a try. But I&apos;m wondering if the way it was done as it is currently is due to differences in hierarchy, differences in how tables get exposed on different platforms, etc.

So do you think looking to the render objects as I did in my patch is a bad idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807994</commentid>
    <comment_count>10</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-15 20:04:36 -0800</bug_when>
    <thetext>I think your proposed solution gets the job done, I&apos;m just trying to think if we can address the issue at a more fundamental level</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808381</commentid>
    <comment_count>11</comment_count>
      <attachid>182986</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 08:15:43 -0800</bug_when>
    <thetext>Created attachment 182986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808382</commentid>
    <comment_count>12</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 08:17:22 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think your proposed solution gets the job done, I&apos;m just trying to think if we can address the issue at a more fundamental level

But a one-line fix takes all the fun out of it. ;) ;) ;) ;)

Ok, I tried what you suggested and it works on the Gtk port. Let&apos;s see if the EWS spits up.

And thanks for the suggestion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808515</commentid>
    <comment_count>13</comment_count>
      <attachid>182986</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 10:38:23 -0800</bug_when>
    <thetext>Comment on attachment 182986
Patch

Chris, the EWS didn&apos;t spit up. The fix is a one-liner which does (I think) what you suggested. :)

Please review. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808518</commentid>
    <comment_count>14</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 10:41:10 -0800</bug_when>
    <thetext>Thanks. I&apos;m only concerned with if there are cases where an ARIA grid row is not a RowRole.

I am thinking whether the spec states that a role=&quot;grid row&quot; should not be a row if it does not have a parent that is a table

ie)

&lt;div&gt;
&lt;div role=&quot;gridrow&quot;&gt;row&lt;/div&gt;
&lt;/div&gt;

should the row show up as a RowRole out of the table context? 

Part of me thinks there was something in the spec that stated this should not happen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808569</commentid>
    <comment_count>15</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 11:31:30 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Thanks. I&apos;m only concerned with if there are cases where an ARIA grid row is not a RowRole.
&gt; 
&gt; I am thinking whether the spec states that a role=&quot;grid row&quot; should not be a row if it does not have a parent that is a table
&gt; 
&gt; ie)
&gt; 
&gt; &lt;div&gt;
&gt; &lt;div role=&quot;gridrow&quot;&gt;row&lt;/div&gt;
&gt; &lt;/div&gt;
&gt; 
&gt; should the row show up as a RowRole out of the table context? 
&gt; 
&gt; Part of me thinks there was something in the spec that stated this should not happen

In which case, we would need to check the parentTable, would we not? Checking the parentTable is what was being done before (though with the infinite loop). My original patch continues to check the parentTable (though avoids the infinite loop).

Is there a third option which both addresses the concern you mention here whilst still addresses the problem at a more fundamental level as you suggested before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808573</commentid>
    <comment_count>16</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 11:41:28 -0800</bug_when>
    <thetext>maybe we could check the parent table in initialization?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808581</commentid>
    <comment_count>17</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 11:51:06 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; maybe we could check the parent table in initialization?

You know of any code I can look at to see this being done?

Also what happens if a web app changes the tree? Does that matter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808606</commentid>
    <comment_count>18</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 12:20:07 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; maybe we could check the parent table in initialization?
&gt; 
&gt; You know of any code I can look at to see this being done?
&gt; 
&gt; Also what happens if a web app changes the tree? Does that matter?

You might be able to just override

AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()

in AccessibilityTableRow (I bet this problem happens to regular tables too, not just ARIA tables)

and put the roleValue() logic in there. 

if the web app changes the role of the object on the fly, i think we clear the object and it is remade a new</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808759</commentid>
    <comment_count>19</comment_count>
      <attachid>183040</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 15:14:31 -0800</bug_when>
    <thetext>Created attachment 183040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808772</commentid>
    <comment_count>20</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-16 15:23:14 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; maybe we could check the parent table in initialization?
&gt; &gt; 
&gt; &gt; You know of any code I can look at to see this being done?
&gt; &gt; 
&gt; &gt; Also what happens if a web app changes the tree? Does that matter?
&gt; 
&gt; You might be able to just override
&gt; 
&gt; AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()

Awesome. Thank you!! Works on Gtk. Let&apos;s see what the EWS thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808774</commentid>
    <comment_count>21</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-16 15:25:07 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; &gt; maybe we could check the parent table in initialization?
&gt; &gt; &gt; 
&gt; &gt; &gt; You know of any code I can look at to see this being done?
&gt; &gt; &gt; 
&gt; &gt; &gt; Also what happens if a web app changes the tree? Does that matter?
&gt; &gt; 
&gt; &gt; You might be able to just override
&gt; &gt; 
&gt; &gt; AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
&gt; 
&gt; Awesome. Thank you!! Works on Gtk. Let&apos;s see what the EWS thinks.

I like this version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808903</commentid>
    <comment_count>22</comment_count>
      <attachid>183040</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-16 17:50:44 -0800</bug_when>
    <thetext>Comment on attachment 183040
Patch

Attachment 183040 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15909633

New failing tests:
platform/mac/accessibility/search-when-element-starts-in-table.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809247</commentid>
    <comment_count>23</comment_count>
      <attachid>183040</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-17 04:01:53 -0800</bug_when>
    <thetext>Comment on attachment 183040
Patch

Attachment 183040 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/15926565

New failing tests:
platform/mac/accessibility/search-when-element-starts-in-table.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809284</commentid>
    <comment_count>24</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 05:31:59 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; &gt; &gt; maybe we could check the parent table in initialization?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; You know of any code I can look at to see this being done?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Also what happens if a web app changes the tree? Does that matter?
&gt; &gt; &gt; 
&gt; &gt; &gt; You might be able to just override
&gt; &gt; &gt; 
&gt; &gt; &gt; AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
&gt; &gt; 
&gt; &gt; Awesome. Thank you!! Works on Gtk. Let&apos;s see what the EWS thinks.
&gt; 
&gt; I like this version

One of the mac tests didn&apos;t. Any idea why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809632</commentid>
    <comment_count>25</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 12:34:57 -0800</bug_when>
    <thetext>(In reply to comment #24)
 
&gt; &gt; I like this version
&gt; 
&gt; One of the mac tests didn&apos;t. Any idea why?

Having looked at the test that failed, we examine the cell and the row, but not the table. So I&apos;m guessing an accessible object hasn&apos;t been created for it. Which brings me to the following:

The new AccessibilityTableRow::determineAccessibilityRole() does this:

    if (!isTableRow())
        return AccessibilityRenderObject::determineAccessibilityRole();

isTableRow() is true only if parentTable() returns an AccessibilityTable.

parentTable() has this code in it:

    // Do not use getOrCreate. parentTable() can be called while the render tree is being modified.
    return axObjectCache()-&gt;get(toRenderTableRow(m_renderer)-&gt;table());

And get() ain&apos;t returning a table.

As an experiment, I ignored the comment and called getOrCreate() and the failing test now passes. Assuming the comment is not lying, time to find a clever solution....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809670</commentid>
    <comment_count>26</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-17 13:01:18 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; 
&gt; &gt; &gt; I like this version
&gt; &gt; 
&gt; &gt; One of the mac tests didn&apos;t. Any idea why?
&gt; 
&gt; Having looked at the test that failed, we examine the cell and the row, but not the table. So I&apos;m guessing an accessible object hasn&apos;t been created for it. Which brings me to the following:
&gt; 
&gt; The new AccessibilityTableRow::determineAccessibilityRole() does this:
&gt; 
&gt;     if (!isTableRow())
&gt;         return AccessibilityRenderObject::determineAccessibilityRole();
&gt; 
&gt; isTableRow() is true only if parentTable() returns an AccessibilityTable.
&gt; 
&gt; parentTable() has this code in it:
&gt; 
&gt;     // Do not use getOrCreate. parentTable() can be called while the render tree is being modified.
&gt;     return axObjectCache()-&gt;get(toRenderTableRow(m_renderer)-&gt;table());
&gt; 
&gt; And get() ain&apos;t returning a table.
&gt; 
&gt; As an experiment, I ignored the comment and called getOrCreate() and the failing test now passes. Assuming the comment is not lying, time to find a clever solution....

You could make a parentTable() method that gets and one that getsOrCreates(), then use the later in the determineRole field. 

The only question is whether there&apos;s a problem creating a parent object from within a child object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809711</commentid>
    <comment_count>27</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 13:35:52 -0800</bug_when>
    <thetext>&gt; You could make a parentTable() method that gets and one that getsOrCreates(), then use the later in the determineRole field. 
&gt; 
&gt; The only question is whether there&apos;s a problem creating a parent object from within a child object

I may have an even better idea. It works on Gtk+, it works on my Mac and involves removing code rather than adding it. :) Patch coming soon.

Remember the original problem was that for ARIA we had an endless loop because of the call to parentObjectUnignored(). And that problem was solved thanks to your suggestion of moving that logic into determineAccessibilityRole(). Given any accessible table row, the unignored parent should be an accessible table. And that parent should not be far away element-wize. So why not use that approach for all table rows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809726</commentid>
    <comment_count>28</comment_count>
      <attachid>183264</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 13:43:57 -0800</bug_when>
    <thetext>Created attachment 183264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809770</commentid>
    <comment_count>29</comment_count>
      <attachid>183264</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 14:17:47 -0800</bug_when>
    <thetext>Comment on attachment 183264
Patch

To review my own patch, I just moved this bit of code and parent should be non-null. But my paranoia wants to add a null-check just in case. So I think I&apos;ll do that -- after code review on the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809776</commentid>
    <comment_count>30</comment_count>
      <attachid>183264</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-17 14:19:59 -0800</bug_when>
    <thetext>Comment on attachment 183264
Patch

i think this is good, but something happened with the bots. we should try to get the bots to process this just in case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809816</commentid>
    <comment_count>31</comment_count>
      <attachid>183285</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 14:45:38 -0800</bug_when>
    <thetext>Created attachment 183285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809818</commentid>
    <comment_count>32</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 14:47:25 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 183264 [details])
&gt; i think this is good, but something happened with the bots. we should try to get the bots to process this just in case

Agreed. Martin Robinson suggested I resubmit the patch and since I wanted to add the null check, I did that as well. So if you&apos;re happy and EWS is happy, then I am happy with what I just attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810097</commentid>
    <comment_count>33</comment_count>
      <attachid>183285</attachid>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-17 19:00:18 -0800</bug_when>
    <thetext>Comment on attachment 183285
Patch

All bots are green. The Gtk bot has non-patch related issues at the moment. Given that this bug is causing crashes (not just in tests, not just with people using ATs) and is in the current unstable release of WebKitGtk, if there are no other issues it would be great to get this resolved.

Thanks again Chris for all your help on this! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810139</commentid>
    <comment_count>34</comment_count>
      <attachid>183285</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 19:48:04 -0800</bug_when>
    <thetext>Comment on attachment 183285
Patch

Clearing flags on attachment: 183285

Committed r140095: &lt;http://trac.webkit.org/changeset/140095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810140</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 19:48:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810448</commentid>
    <comment_count>36</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-01-18 03:54:00 -0800</bug_when>
    <thetext>Unfortunately I keep experiencing a11y related crashes quite frequently:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff510a14b in WebCore::AccessibilityTableCell::parentTable() const () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
(gdb) bt
#0  0x00007ffff510a14b in WebCore::AccessibilityTableCell::parentTable() const () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#1  0x00007ffff510a09d in WebCore::AccessibilityTableCell::isTableCell() const () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#2  0x00007ffff510a0dd in WebCore::AccessibilityTableCell::roleValue() const () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#3  0x00007ffff5f8d106 in webkitAccessibleDetach () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#4  0x00007ffff510de3c in WebCore::AXObjectCache::remove(unsigned int) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#5  0x00007ffff510e05e in WebCore::AXObjectCache::remove(WebCore::RenderObject*) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#6  0x00007ffff58bb4ac in WebCore::RenderObject::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#7  0x00007ffff57dbd5d in WebCore::RenderBlock::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#9  0x00007ffff58b1b04 in WebCore::RenderObjectChildList::destroyLeftoverChildren() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#10 0x00007ffff58bb1fa in WebCore::RenderObject::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#11 0x00007ffff58b9e5d in WebCore::RenderObject::destroy() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#12 0x00007ffff58b1b04 in WebCore::RenderObjectChildList::destroyLeftoverChildren() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#13 0x00007ffff58bb1fa in WebCore::RenderObject::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#14 0x00007ffff58b9e5d in WebCore::RenderObject::destroy() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#15 0x00007ffff58b1b04 in WebCore::RenderObjectChildList::destroyLeftoverChildren() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#16 0x00007ffff57dbc7c in WebCore::RenderBlock::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#17 0x00007ffff58b9e5d in WebCore::RenderObject::destroy() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#18 0x00007ffff58b1b04 in WebCore::RenderObjectChildList::destroyLeftoverChildren() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#19 0x00007ffff57dbc7c in WebCore::RenderBlock::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#20 0x00007ffff58b9e5d in WebCore::RenderObject::destroy() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#21 0x00007ffff58b1b04 in WebCore::RenderObjectChildList::destroyLeftoverChildren() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#22 0x00007ffff57dbc7c in WebCore::RenderBlock::willBeDestroyed() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#23 0x00007ffff58b9e5d in WebCore::RenderObject::destroy() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#24 0x00007ffff5346ac2 in WebCore::Node::detach() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#25 0x00007ffff52d6b6e in WebCore::ContainerNode::detach() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#26 0x00007ffff5322734 in WebCore::Element::detach() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#27 0x00007ffff53232cc in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#28 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#29 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#30 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#31 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#32 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#33 0x00007ffff5322fe5 in WebCore::Element::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#34 0x00007ffff52f72db in WebCore::Document::recalcStyle(WebCore::Node::StyleChange) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#35 0x00007ffff52f76ce in WebCore::Document::updateStyleIfNeeded() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#36 0x00007ffff52f8212 in WebCore::Document::updateLayout() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#37 0x00007ffff52fa939 in WebCore::Document::updateLayoutIgnorePendingStylesheets() () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#38 0x00007ffff572590b in WebCore::DOMWindow::scrollTo(int, int) const () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0
#39 0x00007ffff5af5848 in WebCore::jsDOMWindowPrototypeFunctionScrollTo(JSC::ExecState*) () from ~/opt/gnome3/lib64/libwebkitgtk-3.0.so.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810468</commentid>
    <comment_count>37</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2013-01-18 04:28:01 -0800</bug_when>
    <thetext>Different bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182886</attachid>
            <date>2013-01-15 17:44:22 -0800</date>
            <delta_ts>2013-01-16 08:15:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106922-20130115204124.patch</filename>
            <type>text/plain</type>
            <size>4145</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRjZDNhZGJjNGIyZTI1
ZWI4NzEwMWQ0NjQ4MGM2OGRlYjRkZGY2Ny4uODc5OTdkYWVkMTNmODMwZWRiNGMzOTdmYTI3ODA5
MzA5NjUwYjFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTE1ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTM5NDQ0KTogQ3Jhc2hlcyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjEzOTQ0NCBleHBv
c2VkIGFuIGluZmluaXRlIGxvb3AgdGhhdCB3YXMganVzdCB3YWl0aW5nIHRvIGhhcHBlbi4KKyAg
ICAgICAgQ3VycmVudGx5LCBnZXR0aW5nIHRoZSByb2xlIHZhbHVlIG9mIGFuIEFSSUEgdGFibGUg
cm93IGludm9sdmVzCisgICAgICAgIGdldHRpbmcgdGhlIHBhcmVudCB0YWJsZSB2aWEgcGFyZW50
T2JqZWN0VW5pZ25vcmVkKCkgd2hpY2ggaW4gdHVybgorICAgICAgICBjYW4gbGVhZCB0byB0aGUg
cm9sZSB2YWx1ZSBvZiB0aGUgdGFibGUgcm93IGJlaW5nIGNoZWNrZWQuIElmIHdlCisgICAgICAg
IGxvb2sgZm9yIHRoZSBwYXJlbnQgdGFibGUgdmlhIHJlbmRlciBvYmplY3RzLCB3ZSBjYW4gYXZv
aWQgdGhpcy4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGluc3RlYWQgdW5za2lwcGVkIHRoZSB0
aHJlZSBjcmFzaGluZyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6cGFyZW50VGFibGUpOiBHZXQgdGhlIHBhcmVudAorICAgICAgICB0YWJsZSB2aWEg
cmVuZGVyIG9iamVjdHMgaW5zdGVhZCBvZiBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKS4KKwogMjAx
My0wMS0xNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQVNT
RVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQpIGhpdCBpbiBTdG9yYWdlVGhyZWFk
OjpzY2hlZHVsZVRhc2sgb24gbG93IG1lbW9yeSB3YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKaW5k
ZXggZDMyYmE4YWY5YzJlMTg4YmRlNjcwOTVhOGI2YjQxNTA1OTVhZDEyYS4uZTYyZmEzOWI0YWQ4
MTQ3MjhjOWE5NzY5NGEwMzc2MzRmMzRhMjI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdy5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFj
Y2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VGFibGUuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKQEAgLTEyMCw5ICsxMjEsMTcgQEAgQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpkaXNjbG9zZWRCeVJvdygpIGNvbnN0
CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OnBh
cmVudFRhYmxlKCkgY29uc3QKIHsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBw
YXJlbnRPYmplY3RVbmlnbm9yZWQoKTsKLSAgICBpZiAoIXBhcmVudC0+aXNBY2Nlc3NpYmlsaXR5
VGFibGUoKSkKKyAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOworCisgICAg
Ly8gQ2FsbGluZyBwYXJlbnRPYmplY3RVbmlnbm9yZWQoKSBjYW4gcmVzdWx0IGluIGFuIGluZmlu
aXRlIGxvb3Agd2hlbiByb2xlVmFsdWUoKSBpcyBleGFtaW5lZC4KKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBwYXJlbnQgPSAwOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG1f
cmVuZGVyZXItPnBhcmVudCgpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+cGFyZW50
KCkpIHsKKyAgICAgICAgLy8gRG8gbm90IHVzZSBnZXRPckNyZWF0ZS4gcGFyZW50VGFibGUoKSBj
YW4gYmUgY2FsbGVkIHdoaWxlIHRoZSByZW5kZXIgdHJlZSBpcyBiZWluZyBtb2RpZmllZC4KKyAg
ICAgICAgcGFyZW50ID0gYXhPYmplY3RDYWNoZSgpLT5nZXQocmVuZGVyZXIpOworICAgICAgICBp
ZiAocGFyZW50ICYmIHBhcmVudC0+aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgIH0KICAgICAKICAgICByZXR1cm4gcGFyZW50OwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI0OTI1
NWIwMTk0NjcwZjhjNTRmMmFkNGFhNTg4N2IzNGEzZTAzNDIuLjc1ZjAyODU4ZWJlMWQ4YzYzMTcw
NTllOWRmNjQ5NjE1YzYxNjFlY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMS0xNSAg
Sm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjEzOTQ0NCk6IENyYXNoZXMgaW4gdGhyZWUgYWNjZXNzaWJpbGl0eSB0ZXN0cyBvbiBHVEsK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkyMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmluZyBm
aXhlZCB0aGUgY3Jhc2hlciwgdW5za2lwIHRoZSBmYWlsaW5nIHRlc3RzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDEtMTUgIEVtaWwgQSBFa2x1
bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgbWFjIHJlYmFzZWxp
bmUgZm9yIHIxMzk3OTguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDEwNTIyMzY5ODRkNzZiMDgyYTEyOTIxMDNlYTE5YTg0ZDEzNTgxNDUuLmUwOTAyM2Ni
OTk2MjgxOTUzODk5NmVhZmQ1ZWZlZTUyOWRkZDE0ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00OTAsOSArNDkwLDYgQEAgd2Via2l0Lm9yZy9iLzEw
NTA0MiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wYXJhZ3JhcGhzLmh0bWwgWyBDcmFzaCBd
CiAKIHdlYmtpdC5vcmcvYi8xMDU2ODkgWyBEZWJ1ZyBdIHBsdWdpbnMvbnBydW50aW1lL2VtYmVk
LXByb3BlcnR5LWlmcmFtZS1lcXVhbGl0eS5odG1sIFsgQ3Jhc2ggXQogCi13ZWJraXQub3JnL2Iv
MTA2OTIyIGFjY2Vzc2liaWxpdHkvYXJpYS10YWJsZXMuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5v
cmcvYi8xMDY5MjIgYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi13aXRoLWVsZW1lbnRzLmh0bWwg
WyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMTA2OTIyIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtdGFibGUtaGllcmFyY2h5Lmh0bWwgWyBDcmFzaCBdCiAKICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBDcmFzaGluZyB0ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182986</attachid>
            <date>2013-01-16 08:15:43 -0800</date>
            <delta_ts>2013-01-16 15:14:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106922-20130116111244.patch</filename>
            <type>text/plain</type>
            <size>3348</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjViZTI0N2Q3ODhjZjhm
OTNhNjFiNDAzNWFhNjhhZTdhOTdmNDlmMC4uYWY5MTBlMzE1MTBhMjQ5N2E2NWZlNDUzNTA2MmU0
OWNmNzBjOTgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTE2ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTM5NDQ0KTogQ3Jhc2hlcyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjEzOTQ0NCBleHBv
c2VkIGFuIGluZmluaXRlIGxvb3AgdGhhdCB3YXMganVzdCB3YWl0aW5nIHRvIGhhcHBlbi4KKyAg
ICAgICAgQ3VycmVudGx5LCBnZXR0aW5nIHRoZSByb2xlIHZhbHVlIG9mIGFuIEFSSUEgdGFibGUg
cm93IGludm9sdmVzCisgICAgICAgIGdldHRpbmcgdGhlIHBhcmVudCB0YWJsZSB2aWEgcGFyZW50
T2JqZWN0VW5pZ25vcmVkKCkgd2hpY2ggaW4gdHVybgorICAgICAgICBjYW4gbGVhZCB0byB0aGUg
cm9sZSB2YWx1ZSBvZiB0aGUgdGFibGUgcm93IGJlaW5nIGNoZWNrZWQuIEJlY2F1c2UKKyAgICAg
ICAgYWxsIHBvcnRzIGV4cGVjdCBBUklBIHRhYmxlcyB0byBiZSBleHBvc2VkIGFzIHRhYmxlcywg
aXQgc2hvdWxkIGJlCisgICAgICAgIHNhZmUgdG8ganVzdCByZXR1cm4gUm93Um9sZS4KKworICAg
ICAgICBObyBuZXcgdGVzdHM7IGluc3RlYWQgdW5za2lwcGVkIHRoZSB0aHJlZSBjcmFzaGluZyB0
ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OnJvbGVWYWx1
ZSk6IHJldHVybiBSb3dSb2xlIHVuY29uZGl0aW9uYWxseQorCiAyMDEzLTAxLTE1ICBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KIAogICAgICAg
ICBbR1N0cmVhbWVyXVtTb3VwXSBMZXQgR1N0cmVhbWVyIHByb3ZpZGUgdGhlIGJ1ZmZlciBkYXRh
IGlzIGRvd25sb2FkZWQgdG8sIHRvIGF2b2lkIGNvcHlpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCmluZGV4IDY5
YWY2M2JkOTdmNGE5ODYzZWM2NGEyMmViYmE0NDY4YmJjMThjODguLjQ1MmRmZjc4MDgzYjVjN2M1
NjgyMTVjNGVmZTQ5Zjg1ZGUwM2VjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaApAQCAtNDYsNiArNDYsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJP
YmplY3QoKTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudFRhYmxlKCkg
Y29uc3Q7ICAgIAorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gUm93Um9sZTsgfQogICAgIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNBUklBVHJlZUdyaWRSb3coKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOWEzMjNjMzI5MjAwNDM1MWZmZThh
NzFjNDE5ZTk3OGEwZDAyODMyLi41ODZlYjdmZDRkN2I2ZTc1Yjg1ZTc5MDc2OTZlNjA4MmQwYmNh
MjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDEtMTYgIEpvYW5tYXJpZSBEaWdncyAg
PGpkaWdnc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMzk0NDQpOiBDcmFz
aGVzIGluIHRocmVlIGFjY2Vzc2liaWxpdHkgdGVzdHMgb24gR1RLCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOiBVbnNraXBwZWQgdGhlIHRocmVlIGZhaWxpbmcgdGVzdHMKKwogMjAxMy0wMS0xNiAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAwMDM5Njc2MjU4ODA2NWY0OGEyMDg0NTNkYWM4ODAyMjEzOTc2M2RmLi41MjM3YjM2
ZWQ1YmY0ODgxZjEyODhhZjlkOGZlNWUzNDdlOTJhZjRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDkxLDkgKzQ5MSw2IEBAIHdlYmtpdC5vcmcvYi8x
MDUwNDIgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcGFyYWdyYXBocy5odG1sIFsgQ3Jhc2gg
XQogCiB3ZWJraXQub3JnL2IvMTA1Njg5IFsgRGVidWcgXSBwbHVnaW5zL25wcnVudGltZS9lbWJl
ZC1wcm9wZXJ0eS1pZnJhbWUtZXF1YWxpdHkuaHRtbCBbIENyYXNoIF0KIAotd2Via2l0Lm9yZy9i
LzEwNjkyMiBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGVzLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQu
b3JnL2IvMTA2OTIyIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4td2l0aC1lbGVtZW50cy5odG1s
IFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEwNjkyMiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS5odG1sIFsgQ3Jhc2ggXQogCiAjLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgQ3Jhc2hpbmcgdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183040</attachid>
            <date>2013-01-16 15:14:31 -0800</date>
            <delta_ts>2013-01-17 13:43:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106922-20130116181131.patch</filename>
            <type>text/plain</type>
            <size>4597</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBhNjU5OTU1MWY4NzE0
OTc2NjQ5NjFhZmUwMzVkMzMzYzRiYjI3OS4uMjMyZDEzN2ZkMzc3NzE0ZDNhOTc5MmFmMmYwY2Qx
ODIxYjlmNjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTE2ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTM5NDQ0KTogQ3Jhc2hlcyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjEzOTQ0NCBleHBv
c2VkIGFuIGluZmluaXRlIGxvb3AgdGhhdCB3YXMganVzdCB3YWl0aW5nIHRvIGhhcHBlbi4KKyAg
ICAgICAgQ3VycmVudGx5LCBnZXR0aW5nIHRoZSByb2xlIHZhbHVlIG9mIGFuIEFSSUEgdGFibGUg
cm93IGludm9sdmVzCisgICAgICAgIGdldHRpbmcgdGhlIHBhcmVudCB0YWJsZSB2aWEgcGFyZW50
T2JqZWN0VW5pZ25vcmVkKCkgd2hpY2ggaW4gdHVybgorICAgICAgICBjYW4gbGVhZCB0byB0aGUg
cm9sZSB2YWx1ZSBvZiB0aGUgdGFibGUgcm93IGJlaW5nIGNoZWNrZWQuIE1vdmluZworICAgICAg
ICB0aGUgcm9sZVZhbHVlKCkgbG9naWMgdG8gZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBh
dm9pZHMgdGhpcy4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGluc3RlYWQgdW5za2lwcGVkIHRo
ZSB0aHJlZSBjcmFzaGluZyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZVJvdzo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGFibGVS
b3cpOgorCiAyMDEzLTAxLTE2ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJn
ZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCmluZGV4IGI0NTk2ZDg2MWFh
MTc4M2ZiMmQ0NTEzNGY3YjFlY2IwNWM5OWRkNDkuLmE0NGVlNDk3ZjFhMWM0MTNiYTAwZDAxNmMw
MzUxOGIwZTUxNTQ4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKQEAgLTU5LDEwICs1OSwxNiBAQCBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpjcmVhdGUo
UmVuZGVyT2JqZWN0KiByZQogICAgIHJldHVybiBhZG9wdFJlZihvYmopOwogfQogCi1BY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OnJvbGVWYWx1ZSgpIGNvbnN0CitBY2Nl
c3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKIHsKICAgICBpZiAoIWlzVGFibGVSb3coKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvbGVWYWx1ZSgpOworICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKKworICAg
IG1fYXJpYVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpOworCisgICAgQWNjZXNz
aWJpbGl0eVJvbGUgYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgpOworICAgIGlmIChhcmlh
Um9sZSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xlOwogICAgIAogICAg
IHJldHVybiBSb3dSb2xlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKaW5kZXggMThjMjVhY2NkMjhlMmY0ZWQ5YWE3OGFj
NjZiY2ZiODJiMzE3MTRlZi4uNmU4OGY4ZmQxNDJmMTdlMTQ3MzliNDI0MDQwNTYzMmRmYTU5NTZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVSb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZVJvdy5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nl
c3NpYmlsaXR5VGFibGVSb3coKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZVJvdygp
IGNvbnN0OwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdDsKIAogICAg
IC8vIHJldHJpZXZlcyB0aGUgInJvdyIgaGVhZGVyIChhIHRoIHRhZyBpbiB0aGUgcmlnaHRtb3N0
IGNvbHVtbikKQEAgLTU2LDYgKzU1LDkgQEAgcHVibGljOgogICAgIC8vIGluIHRoZSByb3csIGJ1
dCB0aGVpciBjb2wvcm93IHNwYW5zIG92ZXJsYXAgaW50byBpdAogICAgIHZvaWQgYXBwZW5kQ2hp
bGQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKKwogcHJpdmF0
ZToKICAgICBpbnQgbV9yb3dJbmRleDsKICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYzhmOTJjZmFjY2IyODhiZjQz
OTc4Y2ViODQ3N2Y2NzQyOThiMmRkLi4yYWVlM2IzZTFlNTcxYWVkYTdmZjM2OWI1MTIwNjIzZTg3
MWRiZGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDEtMTYgIEpvYW5tYXJpZSBEaWdn
cyAgPGpkaWdnc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMzk0NDQpOiBD
cmFzaGVzIGluIHRocmVlIGFjY2Vzc2liaWxpdHkgdGVzdHMgb24gR1RLCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOiBVbnNraXBwZWQgdGhlIHRocmVlIGZhaWxpbmcgdGVzdHMKKwogMjAxMy0wMS0x
NiAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAg
ICAgIGluY29uc2lzdGVuY3kgaW4gZHJhd0ltYWdlIHdpdGggdGFyZ2V0IHJlY3QgbmVnYXRpdmUg
ZGltZW5zaW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggMDAzOTY3NjI1ODgwNjVmNDhhMjA4NDUzZGFjODgwMjIxMzk3NjNkZi4uNTIzN2IzNmVkNWJm
NDg4MWYxMjg4YWY5ZDhmZTVlMzQ3ZTkyYWY0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ5MSw5ICs0OTEsNiBAQCB3ZWJraXQub3JnL2IvMTA1MDQy
IGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXBhcmFncmFwaHMuaHRtbCBbIENyYXNoIF0KIAog
d2Via2l0Lm9yZy9iLzEwNTY4OSBbIERlYnVnIF0gcGx1Z2lucy9ucHJ1bnRpbWUvZW1iZWQtcHJv
cGVydHktaWZyYW1lLWVxdWFsaXR5Lmh0bWwgWyBDcmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8xMDY5
MjIgYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9i
LzEwNjkyMiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXdpdGgtZWxlbWVudHMuaHRtbCBbIENy
YXNoIF0KLXdlYmtpdC5vcmcvYi8xMDY5MjIgcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10YWJsZS1oaWVyYXJjaHkuaHRtbCBbIENyYXNoIF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KICMgRW5kIG9mIENyYXNoaW5nIHRlc3RzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183264</attachid>
            <date>2013-01-17 13:43:57 -0800</date>
            <delta_ts>2013-01-17 14:45:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106922-20130117164056.patch</filename>
            <type>text/plain</type>
            <size>6951</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBhNjU5OTU1MWY4NzE0
OTc2NjQ5NjFhZmUwMzVkMzMzYzRiYjI3OS4uZjlkYzEzMzM0MDhkZGExMTA5ZWI3ZTM1MmRlYjg5
ZThmMDI3NDUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTE2ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTM5NDQ0KTogQ3Jhc2hlcyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjEzOTQ0NCBleHBv
c2VkIGFuIGluZmluaXRlIGxvb3AgdGhhdCB3YXMganVzdCB3YWl0aW5nIHRvIGhhcHBlbi4KKyAg
ICAgICAgQ3VycmVudGx5LCBnZXR0aW5nIHRoZSByb2xlIHZhbHVlIG9mIGFuIEFSSUEgdGFibGUg
cm93IGludm9sdmVzCisgICAgICAgIGdldHRpbmcgdGhlIHBhcmVudCB0YWJsZSB2aWEgcGFyZW50
T2JqZWN0VW5pZ25vcmVkKCkgd2hpY2ggaW4gdHVybgorICAgICAgICBjYW4gbGVhZCB0byB0aGUg
cm9sZSB2YWx1ZSBvZiB0aGUgdGFibGUgcm93IGJlaW5nIGNoZWNrZWQuIE1vdmluZworICAgICAg
ICB0aGUgcm9sZVZhbHVlKCkgbG9naWMgdG8gZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBh
dm9pZHMgdGhpcy4KKworICAgICAgICBUaGlzIGZpeCwgaG93ZXZlciwgaW50cm9kdWNlZCBhIHJl
Z3Jlc3Npb24gd2hlbiBhbiBhY2Nlc3NpYmxlIHJvdworICAgICAgICB3YXMgZXhhbWluZWQgd2l0
aG91dCBoYXZpbmcgZmlyc3QgZXhhbWluZWQgdGhlIHBhcmVudCB0YWJsZSBmb3IKKyAgICAgICAg
bm9uLUFSSUEgdGFibGVzLiBOb3cgdGhhdCBpdCBpcyBzYWZlIHRvIGNhbGwgcGFyZW50T2JqZWN0
VW5pZ25vcmVkKCksCisgICAgICAgIHRoZSBwYXJlbnRUYWJsZSgpIG1ldGhvZCB1c2VkIGZvciBB
UklBIHRhYmxlIHJvd3MgY2FuIGFsc28gYmUgdXNlZAorICAgICAgICBieSBub24tQVJJQSB0YWJs
ZSByb3dzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIHRo
cmVlIGNyYXNoaW5nIHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlUm93
OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlUYWJsZVJvdyk6
CisKIDIwMTMtMDEtMTYgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5n
LmNvbT4KIAogICAgICAgICBpbmNvbnNpc3RlbmN5IGluIGRyYXdJbWFnZSB3aXRoIHRhcmdldCBy
ZWN0IG5lZ2F0aXZlIGRpbWVuc2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAKaW5kZXggZDMyYmE4YWY5
YzJlMTg4YmRlNjcwOTVhOGI2YjQxNTA1OTVhZDEyYS4uOGVkMjhkYjU0ZGYxOWZiOWM3ZmU0OTll
YzYwMzQ2N2NiNTc1YjhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcApAQCAtMTE4LDE1ICsxMTgsNiBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmRpc2Nsb3Nl
ZEJ5Um93KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KICAgICAKLUFjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6cGFyZW50VGFibGUoKSBjb25zdAotewotICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9IHBhcmVudE9iamVjdFVuaWdub3JlZCgpOwot
ICAgIGlmICghcGFyZW50LT5pc0FjY2Vzc2liaWxpdHlUYWJsZSgpKQotICAgICAgICByZXR1cm4g
MDsKLSAgICAKLSAgICByZXR1cm4gcGFyZW50OwotfQotCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmhlYWRlck9iamVjdCgpCiB7CiAgICAgQWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yIHJvd0NoaWxkcmVuID0gY2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5o
CmluZGV4IDY5YWY2M2JkOTdmNGE5ODYzZWM2NGEyMmViYmE0NDY4YmJjMThjODguLjg1NjliMGI4
ODI5NzVjOWQ0Mjg1OWQ2MjQ2YWU0NGNjZGE1ODU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaApAQCAtNDUs
NyArNDUsNiBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZGlzY2xvc2VkQnlS
b3coKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRl
ck9iamVjdCgpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50VGFibGUo
KSBjb25zdDsgICAgCiAgICAgCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FSSUFUcmVl
R3JpZFJvdygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCmluZGV4IGI0NTk2ZDg2MWFhMTc4M2ZiMmQ0NTEz
NGY3YjFlY2IwNWM5OWRkNDkuLmU4ZTkxMTM4MjQ0ZDk1OGQ4YzlkZDA4NmQ5NGZkMThiNzZhOTg5
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZVJvdy5jcHAKQEAgLTU5LDExICs1OSwxNyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpjcmVhdGUoUmVuZGVyT2JqZWN0
KiByZQogICAgIHJldHVybiBhZG9wdFJlZihvYmopOwogfQogCi1BY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5VGFibGVSb3c6OnJvbGVWYWx1ZSgpIGNvbnN0CitBY2Nlc3NpYmlsaXR5Um9s
ZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsK
ICAgICBpZiAoIWlzVGFibGVSb3coKSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnJvbGVWYWx1ZSgpOwotICAgIAorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKKworICAgIG1fYXJp
YVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpOworCisgICAgQWNjZXNzaWJpbGl0
eVJvbGUgYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0ZSgpOworICAgIGlmIChhcmlhUm9sZSAh
PSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xlOworCiAgICAgcmV0dXJuIFJv
d1JvbGU7CiB9CiAKQEAgLTk4LDExICsxMDQsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVS
b3c6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIAogQWNjZXNzaWJpbGl0eU9i
amVjdCogQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpwYXJlbnRUYWJsZSgpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5pc1RhYmxlUm93KCkpCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7CisgICAgaWYg
KCFwYXJlbnQtPmlzQWNjZXNzaWJpbGl0eVRhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IAotICAgIC8vIERvIG5vdCB1c2UgZ2V0T3JDcmVhdGUuIHBhcmVudFRhYmxlKCkgY2FuIGJlIGNh
bGxlZCB3aGlsZSB0aGUgcmVuZGVyIHRyZWUgaXMgYmVpbmcgbW9kaWZpZWQuCi0gICAgcmV0dXJu
IGF4T2JqZWN0Q2FjaGUoKS0+Z2V0KHRvUmVuZGVyVGFibGVSb3cobV9yZW5kZXJlciktPnRhYmxl
KCkpOworICAgIHJldHVybiBwYXJlbnQ7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5VGFibGVSb3c6OmhlYWRlck9iamVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaAppbmRleCAxOGMyNWFj
Y2QyOGUyZjRlZDlhYTc4YWM2NmJjZmI4MmIzMTcxNGVmLi42ZTg4ZjhmZDE0MmYxN2UxNDczOWI0
MjQwNDA1NjMyZGZhNTk1NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlUYWJsZVJvdygpOwogICAgIAogICAgIHZpcnR1YWwg
Ym9vbCBpc1RhYmxlUm93KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBy
b2xlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0OwogCiAgICAgLy8gcmV0cmlldmVzIHRoZSAicm93IiBoZWFkZXIgKGEgdGggdGFn
IGluIHRoZSByaWdodG1vc3QgY29sdW1uKQpAQCAtNTYsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gaW4gdGhlIHJvdywgYnV0IHRoZWlyIGNvbC9yb3cgc3BhbnMgb3ZlcmxhcCBpbnRvIGl0CiAg
ICAgdm9pZCBhcHBlbmRDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgCitwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZSgpOworCiBwcml2YXRlOgogICAgIGludCBtX3Jvd0luZGV4OwogICAgIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFj
OGY5MmNmYWNjYjI4OGJmNDM5NzhjZWI4NDc3ZjY3NDI5OGIyZGQuLjJhZWUzYjNlMWU1NzFhZWRh
N2ZmMzY5YjUxMjA2MjNlODcxZGJkYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMS0x
NiAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVHUkVT
U0lPTiAocjEzOTQ0NCk6IENyYXNoZXMgaW4gdGhyZWUgYWNjZXNzaWJpbGl0eSB0ZXN0cyBvbiBH
VEsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjky
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcHBlZCB0aGUgdGhyZWUgZmFpbGluZyB0
ZXN0cworCiAyMDEzLTAxLTE2ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgaW5jb25zaXN0ZW5jeSBpbiBkcmF3SW1hZ2Ugd2l0aCB0YXJn
ZXQgcmVjdCBuZWdhdGl2ZSBkaW1lbnNpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAwMDM5Njc2MjU4ODA2NWY0OGEyMDg0NTNkYWM4ODAyMjEzOTc2
M2RmLi41MjM3YjM2ZWQ1YmY0ODgxZjEyODhhZjlkOGZlNWUzNDdlOTJhZjRhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDkxLDkgKzQ5MSw2IEBAIHdl
YmtpdC5vcmcvYi8xMDUwNDIgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcGFyYWdyYXBocy5o
dG1sIFsgQ3Jhc2ggXQogCiB3ZWJraXQub3JnL2IvMTA1Njg5IFsgRGVidWcgXSBwbHVnaW5zL25w
cnVudGltZS9lbWJlZC1wcm9wZXJ0eS1pZnJhbWUtZXF1YWxpdHkuaHRtbCBbIENyYXNoIF0KIAot
d2Via2l0Lm9yZy9iLzEwNjkyMiBhY2Nlc3NpYmlsaXR5L2FyaWEtdGFibGVzLmh0bWwgWyBDcmFz
aCBdCi13ZWJraXQub3JnL2IvMTA2OTIyIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4td2l0aC1l
bGVtZW50cy5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEwNjkyMiBwbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlLWhpZXJhcmNoeS5odG1sIFsgQ3Jhc2ggXQogCiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgQ3Jhc2hpbmcgdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183285</attachid>
            <date>2013-01-17 14:45:38 -0800</date>
            <delta_ts>2013-01-17 19:48:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106922-20130117174237.patch</filename>
            <type>text/plain</type>
            <size>7018</size>
            <attacher name="Joanmarie Diggs">jdiggs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJiYTA0Nzg0YzYzYjcw
NGU3ZjBmY2VhZjMzMTdlMmI3YzE5NmE2MC4uMDY2ZTZlODJjYmY1ZWEyMTEzMjY3ZDc4MzM5NDQ1
NWQxZDhlZDM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTE3ICBKb2Fu
bWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MTM5NDQ0KTogQ3Jhc2hlcyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcjEzOTQ0NCBleHBv
c2VkIGFuIGluZmluaXRlIGxvb3AgdGhhdCB3YXMganVzdCB3YWl0aW5nIHRvIGhhcHBlbi4KKyAg
ICAgICAgQ3VycmVudGx5LCBnZXR0aW5nIHRoZSByb2xlIHZhbHVlIG9mIGFuIEFSSUEgdGFibGUg
cm93IGludm9sdmVzCisgICAgICAgIGdldHRpbmcgdGhlIHBhcmVudCB0YWJsZSB2aWEgcGFyZW50
T2JqZWN0VW5pZ25vcmVkKCkgd2hpY2ggaW4gdHVybgorICAgICAgICBjYW4gbGVhZCB0byB0aGUg
cm9sZSB2YWx1ZSBvZiB0aGUgdGFibGUgcm93IGJlaW5nIGNoZWNrZWQuIE1vdmluZworICAgICAg
ICB0aGUgcm9sZVZhbHVlKCkgbG9naWMgdG8gZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKSBh
dm9pZHMgdGhpcy4KKworICAgICAgICBUaGlzIGZpeCwgaG93ZXZlciwgaW50cm9kdWNlZCBhIHJl
Z3Jlc3Npb24gd2hlbiBhbiBhY2Nlc3NpYmxlIHJvdworICAgICAgICB3YXMgZXhhbWluZWQgd2l0
aG91dCBoYXZpbmcgZmlyc3QgZXhhbWluZWQgdGhlIHBhcmVudCB0YWJsZSBmb3IKKyAgICAgICAg
bm9uLUFSSUEgdGFibGVzLiBOb3cgdGhhdCBpdCBpcyBzYWZlIHRvIGNhbGwgcGFyZW50T2JqZWN0
VW5pZ25vcmVkKCksCisgICAgICAgIHRoZSBwYXJlbnRUYWJsZSgpIG1ldGhvZCB1c2VkIGZvciBB
UklBIHRhYmxlIHJvd3MgY2FuIGFsc28gYmUgdXNlZAorICAgICAgICBieSBub24tQVJJQSB0YWJs
ZSByb3dzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgaW5zdGVhZCB1bnNraXBwZWQgdGhlIHRo
cmVlIGNyYXNoaW5nIHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVSb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlUm93
OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlUYWJsZVJvdyk6
CisKIDIwMTMtMDEtMTcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gVXBkYXRpbmcgLXdlYmtpdC1ncmlkLXJvd3Mg
b3IgLXdlYmtpdC1ncmlkLWNvbHVtbnMgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZFJvdy5jcHAKaW5kZXggZDMyYmE4YWY5YzJlMTg4YmRlNjcwOTVhOGI2YjQxNTA1OTVhZDEyYS4u
OGVkMjhkYjU0ZGYxOWZiOWM3ZmU0OTllYzYwMzQ2N2NiNTc1YjhkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93
LmNwcApAQCAtMTE4LDE1ICsxMTgsNiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWRSb3c6OmRpc2Nsb3NlZEJ5Um93KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0K
ICAgICAKLUFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6cGFy
ZW50VGFibGUoKSBjb25zdAotewotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudCA9IHBh
cmVudE9iamVjdFVuaWdub3JlZCgpOwotICAgIGlmICghcGFyZW50LT5pc0FjY2Vzc2liaWxpdHlU
YWJsZSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICByZXR1cm4gcGFyZW50OwotfQot
CiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmhlYWRlck9i
amVjdCgpCiB7CiAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHJvd0NoaWxkcmVuID0g
Y2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oCmluZGV4IDY5YWY2M2JkOTdmNGE5ODYzZWM2NGEyMmVi
YmE0NDY4YmJjMThjODguLjg1NjliMGI4ODI5NzVjOWQ0Mjg1OWQ2MjQ2YWU0NGNjZGE1ODU0OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFS
SUFHcmlkUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWRSb3cuaApAQCAtNDUsNyArNDUsNiBAQCBwdWJsaWM6CiAgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogZGlzY2xvc2VkQnlSb3coKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlck9iamVjdCgpOwotICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFyZW50VGFibGUoKSBjb25zdDsgICAgCiAgICAgCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBpc0FSSUFUcmVlR3JpZFJvdygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwCmluZGV4
IGI0NTk2ZDg2MWFhMTc4M2ZiMmQ0NTEzNGY3YjFlY2IwNWM5OWRkNDkuLmRlYzA4OTIxODY3Nzkw
MGI5YjIyMGZiMmIxYjNkNTAzODJlMGQ3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAKQEAgLTU5LDExICs1OSwx
NyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUYWJsZVJvdz4gQWNjZXNzaWJpbGl0eVRhYmxl
Um93OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZQogICAgIHJldHVybiBhZG9wdFJlZihvYmopOwog
fQogCi1BY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OnJvbGVWYWx1ZSgp
IGNvbnN0CitBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmRldGVybWlu
ZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsKICAgICBpZiAoIWlzVGFibGVSb3coKSkKLSAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvbGVWYWx1ZSgpOwotICAgIAorICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJp
bGl0eVJvbGUoKTsKKworICAgIG1fYXJpYVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0
ZSgpOworCisgICAgQWNjZXNzaWJpbGl0eVJvbGUgYXJpYVJvbGUgPSBhcmlhUm9sZUF0dHJpYnV0
ZSgpOworICAgIGlmIChhcmlhUm9sZSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGFy
aWFSb2xlOworCiAgICAgcmV0dXJuIFJvd1JvbGU7CiB9CiAKQEAgLTk4LDExICsxMDQsMTEgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5VGFibGVSb3c6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAogICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVRhYmxlUm93OjpwYXJl
bnRUYWJsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFtX3JlbmRlcmVyLT5p
c1RhYmxlUm93KCkpCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gcGFyZW50T2Jq
ZWN0VW5pZ25vcmVkKCk7CisgICAgaWYgKCFwYXJlbnQgfHwgIXBhcmVudC0+aXNBY2Nlc3NpYmls
aXR5VGFibGUoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgLy8gRG8gbm90IHVzZSBn
ZXRPckNyZWF0ZS4gcGFyZW50VGFibGUoKSBjYW4gYmUgY2FsbGVkIHdoaWxlIHRoZSByZW5kZXIg
dHJlZSBpcyBiZWluZyBtb2RpZmllZC4KLSAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXQo
dG9SZW5kZXJUYWJsZVJvdyhtX3JlbmRlcmVyKS0+dGFibGUoKSk7CisgICAgcmV0dXJuIHBhcmVu
dDsKIH0KICAgICAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlUYWJsZVJvdzo6
aGVhZGVyT2JqZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlUYWJsZVJvdy5oCmluZGV4IDE4YzI1YWNjZDI4ZTJmNGVkOWFhNzhhYzY2YmNm
YjgyYjMxNzE0ZWYuLjZlODhmOGZkMTQyZjE3ZTE0NzM5YjQyNDA0MDU2MzJkZmE1OTU2ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVSb3cuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJp
bGl0eVRhYmxlUm93KCk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVGFibGVSb3coKSBjb25z
dDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Q7CiAKICAgICAvLyBy
ZXRyaWV2ZXMgdGhlICJyb3ciIGhlYWRlciAoYSB0aCB0YWcgaW4gdGhlIHJpZ2h0bW9zdCBjb2x1
bW4pCkBAIC01Niw2ICs1NSw5IEBAIHB1YmxpYzoKICAgICAvLyBpbiB0aGUgcm93LCBidXQgdGhl
aXIgY29sL3JvdyBzcGFucyBvdmVybGFwIGludG8gaXQKICAgICB2b2lkIGFwcGVuZENoaWxkKEFj
Y2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICAKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCk7CisKIHByaXZhdGU6CiAg
ICAgaW50IG1fcm93SW5kZXg7CiAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTlkYTNiMzEzZTI0YWFlMjUxOTU5Mzcw
ODY5NWYyNjdmYTdiYzdmYy4uNmQ1ZWRkYTM0MDgxYzZhZjVjNWY4YmM4MGEwNzA3Y2MzNmY3ZDBj
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTAxLTE3ICBKb2FubWFyaWUgRGlnZ3MgIDxq
ZGlnZ3NAaWdhbGlhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTM5NDQ0KTogQ3Jhc2hl
cyBpbiB0aHJlZSBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9uIEdUSworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2OTIyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9uczogVW5za2lwcGVkIHRoZSB0aHJlZSBmYWlsaW5nIHRlc3RzCisKIDIwMTMtMDEtMTcgIEp1
bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBH
cmlkIExheW91dF0gVXBkYXRpbmcgLXdlYmtpdC1ncmlkLXJvd3Mgb3IgLXdlYmtpdC1ncmlkLWNv
bHVtbnMgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDliMTc1MzMzNzA2MmEzOTQ2MzZjZmFmMzkzYjI3NWZhMzEz
ZjBlMzMuLjM0MDczN2M4MGIzMDNiN2NjYTgzNzhlYmI1MTIzYjAyZTQ2YTQxMWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODMsOSArNDgzLDYgQEAg
d2Via2l0Lm9yZy9iLzEwNDY4NCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXJl
Y3Vyc2l2ZS1zeW5jLWV2ZW50Lmh0bWwKIAogd2Via2l0Lm9yZy9iLzEwNTY4OSBbIERlYnVnIF0g
cGx1Z2lucy9ucHJ1bnRpbWUvZW1iZWQtcHJvcGVydHktaWZyYW1lLWVxdWFsaXR5Lmh0bWwgWyBD
cmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8xMDY5MjIgYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5o
dG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEwNjkyMiBhY2Nlc3NpYmlsaXR5L2FyaWEtaGlk
ZGVuLXdpdGgtZWxlbWVudHMuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMDY5MjIgcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZS1oaWVyYXJjaHkuaHRtbCBbIENyYXNo
IF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIENyYXNoaW5n
IHRlc3RzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>