<?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>108058</bug_id>
          
          <creation_ts>2013-01-28 00:20:58 -0800</creation_ts>
          <short_desc>fast/encoding/parser-tests-*.html tests sometimes crash</short_desc>
          <delta_ts>2013-02-10 04:44:33 -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>WebKit EFL</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106216</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Dominic Mazzoni">dmazzoni</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andersca</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817563</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-28 00:20:58 -0800</bug_when>
    <thetext>fast/encoding/parser-tests-*.html tests sometimes crash on WK2 EFL port with the following backtrace:

crash log for WebProcess (pid &lt;unknown&gt;):
STDOUT: &lt;empty&gt;
STDERR: 1   0x7f9650b8bc5b
STDERR: 2   0x7f96538fb4a0
STDERR: 3   0x7f964a6ae190 vtable for __cxxabiv1::__si_class_type_info
STDERR: LEAK: 1 WebPage
STDERR: LEAK: 2 WebFrame
STDERR: LEAK: 1 JSLazyEventListener
STDERR: LEAK: 73 RenderObject
STDERR: LEAK: 3 Page
STDERR: LEAK: 4 Frame
STDERR: LEAK: 2035 CachedResource
STDERR: LEAK: 146 WebCoreNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817566</commentid>
    <comment_count>1</comment_count>
      <attachid>184945</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-28 00:24:10 -0800</bug_when>
    <thetext>Created attachment 184945
Backtrace for all threads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817698</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-28 04:56:41 -0800</bug_when>
    <thetext>Basically, WebCore::AccessibilityScrollView::addChildScrollbar() calls axObjectCache()-&gt;getOrCreate(scrollbar) and casts the returned object to AccessibilityScrollbar*. However, the returned object is a AccessibilityScrollView*.

I don&apos;t know yet why AXObjectCache::getOrCreate(Widget*) would return a AccessibilityScrollView* when given a WebCore::Scrollbar*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817717</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-28 06:14:52 -0800</bug_when>
    <thetext>The issue is that FrameViews do not always remove themselves from the AXObjectCache on destruction. removeFromAXObjectCache() is called in FrameView destructor but it sometimes does not have any effect because frame()-&gt;document()-&gt;axObjectCacheExists() returns false.

As a consequence, the FrameView object pointer stays in AXObjectCache::m_widgetObjectMapping and then a Scrollbar object gets created and uses the same pointer. As a consequence, AXObjectCache::getOrCreate(Widget*) will return the AccessibilityScrollView* that is still in the cache instead of creating an AccessibilityScrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818822</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-29 04:14:25 -0800</bug_when>
    <thetext>The issue seems to be in Frame::setView(PassRefPtr&lt;FrameView&gt; view):

1. m_view-&gt;prepareForDetach(); is called which removes the FrameView from the AXObjectCache.
2. m_doc-&gt;prepareForDestruction(); is called and it causes the FrameView to be added to the AXObjectCache again.
3. The FrameView is destroyed but it is not properly removed from the cache because it is no longer correctly hooked in the document tree.

I think one solution would be to call: m_view-&gt;prepareForDetach() *AFTER* m_doc-&gt;prepareForDestruction().

Note that I don&apos;t think we need to call m_view-&gt;detachCustomScrollbars() before m_doc-&gt;prepareForDestruction() because this is already done in Document::detach() (which is called in Document::prepareForDestruction()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818855</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-29 05:33:15 -0800</bug_when>
    <thetext>Calling m_view-&gt;prepareForDetach() *AFTER* m_doc-&gt;prepareForDestruction() does not help because axObjectCacheExists() will still return false in m_view-&gt;prepareForDetach().

I digged a bit deeper and it appears RenderObject::willBeDestroyed() is adding the FrameView to the axObjectCache again. In particular, the call to:
document()-&gt;axObjectCache()-&gt;childrenChanged(parentObject);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818941</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-29 07:46:26 -0800</bug_when>
    <thetext>The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().

Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.

I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818996</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-29 09:01:44 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().
&gt; 
&gt; Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.
&gt; 
&gt; I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?

It looks like the call to axIsIgnored() only happens if the parent object already exists

if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())

so is this happening higher up the chain, as in a grandparent renderer that is being recreated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819004</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-29 09:14:50 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().
&gt; &gt; 
&gt; &gt; Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.
&gt; &gt; 
&gt; &gt; I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?
&gt; 
&gt; It looks like the call to axIsIgnored() only happens if the parent object already exists
&gt; 
&gt; if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())
&gt; 
&gt; so is this happening higher up the chain, as in a grandparent renderer that is being recreated?

Right. In some cases, accessibilityIsIgnored() will creates all the ancestors.
For example, AccessibilityRenderObject::accessibilityIsIgnored() calls AccessibilityNodeObject::isDescendantOfBarrenParent() which iterates through all the ancestors by calling parentObject(). Same applies to AccessibilityRenderObject::isAllowedChildOfTree() which is also called from AccessibilityRenderObject::accessibilityIsIgnored().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819006</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-29 09:18:16 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().
&gt; &gt; &gt; 
&gt; &gt; &gt; Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?
&gt; &gt; 
&gt; &gt; It looks like the call to axIsIgnored() only happens if the parent object already exists
&gt; &gt; 
&gt; &gt; if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())
&gt; &gt; 
&gt; &gt; so is this happening higher up the chain, as in a grandparent renderer that is being recreated?
&gt; 
&gt; Right. In some cases, accessibilityIsIgnored() will creates all the ancestors.
&gt; For example, AccessibilityRenderObject::accessibilityIsIgnored() calls AccessibilityNodeObject::isDescendantOfBarrenParent() which iterates through all the ancestors by calling parentObject(). Same applies to AccessibilityRenderObject::isAllowedChildOfTree() which is also called from AccessibilityRenderObject::accessibilityIsIgnored().

I&apos;ve suggested this before, but I think the answer might be to call childrenChanged() after a timer callback on the next iteration of the run loop. That way the render tree will be in a valid state when we perform operations like checking parent chains and so on. I can give that a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819007</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-29 09:20:03 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &gt; The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?
&gt; &gt; &gt; 
&gt; &gt; &gt; It looks like the call to axIsIgnored() only happens if the parent object already exists
&gt; &gt; &gt; 
&gt; &gt; &gt; if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())
&gt; &gt; &gt; 
&gt; &gt; &gt; so is this happening higher up the chain, as in a grandparent renderer that is being recreated?
&gt; &gt; 
&gt; &gt; Right. In some cases, accessibilityIsIgnored() will creates all the ancestors.
&gt; &gt; For example, AccessibilityRenderObject::accessibilityIsIgnored() calls AccessibilityNodeObject::isDescendantOfBarrenParent() which iterates through all the ancestors by calling parentObject(). Same applies to AccessibilityRenderObject::isAllowedChildOfTree() which is also called from AccessibilityRenderObject::accessibilityIsIgnored().
&gt; 
&gt; I&apos;ve suggested this before, but I think the answer might be to call childrenChanged() after a timer callback on the next iteration of the run loop. That way the render tree will be in a valid state when we perform operations like checking parent chains and so on. I can give that a try.

Ok. I can easily reproduce the problem locally if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819447</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-29 16:16:04 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &gt; The ScrollView is added again to the cache because of AXObjectCache::childrenChanged(). childrenChanged() is not supposed to create the parent object if it does not exist. To ensure this, it calls AccessibilityObject::parentObjectIfExists() instead of AccessibilityObject::parentObject().
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Unfortunately, AXObjectCache::childrenChanged() also calls AccessibilityObject::accessibilityIsIgnored() which calls AccessibilityObject::parentObject() and ends up creating the parent.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I&apos;m not sure what the correct fix is yet. AccessibilityObject::accessibilityIsIgnored() is overridden is many places and making sure the implementation does not call parentObject() (directly or not) is not trivial. Can we somehow avoid the call to AccessibilityObject::accessibilityIsIgnored() in AXObjectCache::childrenChanged() instead?
&gt; &gt; &gt; 
&gt; &gt; &gt; It looks like the call to axIsIgnored() only happens if the parent object already exists
&gt; &gt; &gt; 
&gt; &gt; &gt; if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())
&gt; &gt; &gt; 
&gt; &gt; &gt; so is this happening higher up the chain, as in a grandparent renderer that is being recreated?
&gt; &gt; 
&gt; &gt; Right. In some cases, accessibilityIsIgnored() will creates all the ancestors.
&gt; &gt; For example, AccessibilityRenderObject::accessibilityIsIgnored() calls AccessibilityNodeObject::isDescendantOfBarrenParent() which iterates through all the ancestors by calling parentObject(). Same applies to AccessibilityRenderObject::isAllowedChildOfTree() which is also called from AccessibilityRenderObject::accessibilityIsIgnored().
&gt; 
&gt; I&apos;ve suggested this before, but I think the answer might be to call childrenChanged() after a timer callback on the next iteration of the run loop. That way the render tree will be in a valid state when we perform operations like checking parent chains and so on. I can give that a try.

Unfortunately that plan did not work out. A whole lot of crashes came out out of it. I&apos;ll keep thinking of a solution for this one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823839</commentid>
    <comment_count>12</comment_count>
      <attachid>186262</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-03 07:44:13 -0800</bug_when>
    <thetext>Created attachment 186262
Patch

I am not familiar with this part of the code but this patch fixes the issue for me and does not seem to cause any regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823852</commentid>
    <comment_count>13</comment_count>
      <attachid>186262</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-03 10:05:04 -0800</bug_when>
    <thetext>Comment on attachment 186262
Patch

Attachment 186262 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16355600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823862</commentid>
    <comment_count>14</comment_count>
      <attachid>186262</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-03 10:47:34 -0800</bug_when>
    <thetext>Comment on attachment 186262
Patch

Attachment 186262 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16347780</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824965</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-04 17:55:41 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=186262) [details]
&gt; Patch
&gt; 
&gt; I am not familiar with this part of the code but this patch fixes the issue for me and does not seem to cause any regression.

I too don&apos;t know the consequences of such a change. 

... Taking another approach i wonder if we really need to check the axIgnored value() in childrenChanged(). Attaching a patch to that effect. 

Dominic, can you comment on whether you think we can get rid of this? Originally childrenChanged() was added to be a very lightweight setter to tell the axtree to update itself at the next opportunity. Doing work within that method is dangerous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824966</commentid>
    <comment_count>16</comment_count>
      <attachid>186511</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-04 17:56:01 -0800</bug_when>
    <thetext>Created attachment 186511
possibly fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825029</commentid>
    <comment_count>17</comment_count>
      <attachid>186511</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 19:25:02 -0800</bug_when>
    <thetext>Comment on attachment 186511
possibly fix

Attachment 186511 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16370477

New failing tests:
platform/chromium/accessibility/is-ignored-change-sends-notification.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825089</commentid>
    <comment_count>18</comment_count>
      <attachid>186511</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 20:55:43 -0800</bug_when>
    <thetext>Comment on attachment 186511
possibly fix

Attachment 186511 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16371548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825148</commentid>
    <comment_count>19</comment_count>
      <attachid>186511</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 22:29:36 -0800</bug_when>
    <thetext>Comment on attachment 186511
possibly fix

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:-620
&gt; -    if (obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;cachedIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())

Yes, doing this also fixes the crashes, I checked before. However, I was not sure it was appropriate to remove it. If we can then fine, it is easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825232</commentid>
    <comment_count>20</comment_count>
      <attachid>186511</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-05 00:47:33 -0800</bug_when>
    <thetext>Comment on attachment 186511
possibly fix

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

New failing tests:
accessibility/loading-iframe-updates-axtree.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826024</commentid>
    <comment_count>21</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-05 19:17:26 -0800</bug_when>
    <thetext>Doing the isIgnored check is important, we can&apos;t just eliminate the code - but that doesn&apos;t mean we have to implement it exactly that way. Would deferring the isIgnored check using a one-shot timer fix the problem? Maybe we could just post a simple notification, but then in the async notification handler, add a special case for this one notification that checks isIgnored and fires another event as needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826038</commentid>
    <comment_count>22</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-05 20:03:55 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Doing the isIgnored check is important, we can&apos;t just eliminate the code - but that doesn&apos;t mean we have to implement it exactly that way. Would deferring the isIgnored check using a one-shot timer fix the problem? Maybe we could just post a simple notification, but then in the async notification handler, add a special case for this one notification that checks isIgnored and fires another event as needed.

If we deferred that check I think it would work out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826105</commentid>
    <comment_count>23</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-05 23:18:51 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Doing the isIgnored check is important, we can&apos;t just eliminate the code - but that doesn&apos;t mean we have to implement it exactly that way. Would deferring the isIgnored check using a one-shot timer fix the problem? Maybe we could just post a simple notification, but then in the async notification handler, add a special case for this one notification that checks isIgnored and fires another event as needed.

I&apos;m not seeing a good way to delay that notification after a cursory look

Why is the isIgnored() check important instead of just always marking childrenChanged() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828798</commentid>
    <comment_count>24</comment_count>
      <attachid>187375</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-08 15:48:58 -0800</bug_when>
    <thetext>Created attachment 187375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828813</commentid>
    <comment_count>25</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-08 16:00:54 -0800</bug_when>
    <thetext>A little more info:

1. Why is the isignored check needed?

The best way to understand the motivation is to look at platform/chromium/accessibility/is-ignored-change-sends-notification.html, and look at the emptyDiv case in particular. Initially, emptyDiv is ignored. Adding text to emptyDiv causes it to be not ignored. However, if that doesn&apos;t actually fire a childrenChanged event on emptyDiv&apos;s parent, that parent will never know that it now has a child. (On Windows, the notification has to be fired - you can&apos;t just mark it as dirty.)

I&apos;d prefer not to call childrenChanged on all ancestors. On Mac, a childrenChanged just marks a node as dirty, but Windows screen readers maintain an offscreen virtual buffer, so childrenChanged means refreshing that entire subtree again.

2. Why did deferring the childrenChanged call cause other tests to crash?

Most of the tests that crashed had iframes. This change was queuing childrenChanged notifications that didn&apos;t fire until after the iframe was deleted. The fix is simple - when an iframe is deleted, AXObjectCache is already removing all of the objects associated with that frame - but we were never checking in notificationPostTimerFired to see if an object was still valid. The easiest way to check this is with its id, since AXObjectCache sets the id to 0 when an object is deleted (but still has references to it). I suspect that obj-&gt;isDetached() would also work - is that always equivalent?

I wonder if this is the same problem as https://bugs.webkit.org/show_bug.cgi?id=106106? That&apos;d be a nice side effect if so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828844</commentid>
    <comment_count>26</comment_count>
      <attachid>187375</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 17:06:12 -0800</bug_when>
    <thetext>Comment on attachment 187375
Patch

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

New failing tests:
accessibility/loading-iframe-updates-axtree.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829130</commentid>
    <comment_count>27</comment_count>
      <attachid>187447</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2013-02-09 14:56:47 -0800</bug_when>
    <thetext>Created attachment 187447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829189</commentid>
    <comment_count>28</comment_count>
      <attachid>187447</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-09 21:15:58 -0800</bug_when>
    <thetext>Comment on attachment 187447
Patch

looks like all good changes here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829199</commentid>
    <comment_count>29</comment_count>
      <attachid>187447</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 22:12:52 -0800</bug_when>
    <thetext>Comment on attachment 187447
Patch

Clearing flags on attachment: 187447

Committed r142385: &lt;http://trac.webkit.org/changeset/142385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829200</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 22:12:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829268</commentid>
    <comment_count>31</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-10 04:44:33 -0800</bug_when>
    <thetext>I confirm that the fix is working on EFL port. I unskipped the test cases in http://trac.webkit.org/changeset/142396.

Thanks for taking care of it!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>184945</attachid>
            <date>2013-01-28 00:24:10 -0800</date>
            <delta_ts>2013-01-28 00:24:10 -0800</delta_ts>
            <desc>Backtrace for all threads</desc>
            <filename>fast_encoding_backtrace.txt</filename>
            <type>text/plain</type>
            <size>8261</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">KGdkYikgdGhyZWFkIGFwcGx5IGFsbCBidAoKVGhyZWFkIDYgKFRocmVhZCAweDdmZmY5M2ZmZjcw
MCAoTFdQIDI2OTMzKSk6CiMwICBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QEBHTElCQ18yLjMuMiAo
KQogICAgYXQgLi4vbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC94ODZfNjQvcHRocmVhZF9j
b25kX3RpbWVkd2FpdC5TOjIxNQojMSAgMHgwMDAwN2ZmZmVmN2EwYzg1IGluIGdfY29uZF93YWl0
X3VudGlsIChjb25kPTB4NDcyOTE4LCAKICAgIG11dGV4PTxvcHRpbWl6ZWQgb3V0PiwgZW5kX3Rp
bWU9PG9wdGltaXplZCBvdXQ+KSBhdCBndGhyZWFkLXBvc2l4LmM6ODU1CiMyICAweDAwMDA3ZmZm
ZWY3M2E5NDEgaW4gZ19hc3luY19xdWV1ZV9wb3BfaW50ZXJuX3VubG9ja2VkIChxdWV1ZT0weDQ3
MjkxMCwgCiAgICB3YWl0PTEsIGVuZF90aW1lPTYyMTI0MjQxODkxNikgYXQgZ2FzeW5jcXVldWUu
Yzo0MjQKIzMgIDB4MDAwMDdmZmZlZjc4NzQ1YSBpbiBnX3RocmVhZF9wb29sX3dhaXRfZm9yX25l
d190YXNrIChwb29sPTB4NDcyOGIwKQogICAgYXQgZ3RocmVhZHBvb2wuYzoyNjQKIzQgIGdfdGhy
ZWFkX3Bvb2xfdGhyZWFkX3Byb3h5IChkYXRhPTxvcHRpbWl6ZWQgb3V0PikgYXQgZ3RocmVhZHBv
b2wuYzoyOTgKIzUgIDB4MDAwMDdmZmZlZjc4NmJkNSBpbiBnX3RocmVhZF9wcm94eSAoZGF0YT0w
eDRiYzE0MCkgYXQgZ3RocmVhZC5jOjgwMQojNiAgMHgwMDAwN2ZmZmVjMDNjZTlhIGluIHN0YXJ0
X3RocmVhZCAoYXJnPTB4N2ZmZjkzZmZmNzAwKQogICAgYXQgcHRocmVhZF9jcmVhdGUuYzozMDgK
IzcgIDB4MDAwMDdmZmZmNmM2NWNiZCBpbiBjbG9uZSAoKQogICAgYXQgLi4vc3lzZGVwcy91bml4
L3N5c3YvbGludXgveDg2XzY0L2Nsb25lLlM6MTEyCiM4ICAweDAwMDAwMDAwMDAwMDAwMDAgaW4g
Pz8gKCkKClRocmVhZCAzIChUaHJlYWQgMHg3ZmZmYTIzZDU3MDAgKExXUCAyNjkzMCkpOgojMCAg
cHRocmVhZF9jb25kX3RpbWVkd2FpdEBAR0xJQkNfMi4zLjIgKCkKICAgIGF0IC4uL25wdGwvc3lz
ZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuUzoyMTUK
IzEgIDB4MDAwMDdmZmZmNDE1YTE4YiBpbiBXVEY6OlRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0
ICh0aGlzPTB4NGEyNWEwLCAKICAgIG11dGV4PS4uLiwgYWJzb2x1dGVUaW1lPTEzNTkzNjEwNTcu
MTY5MjE1OSkKICAgIGF0IC9ob21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdQdGhyZWFkcy5jcHA6NDAwCiMyICAweDAwMDA3ZmZmZWU1ZDgxZjYgaW4gSlNDOjpC
bG9ja0FsbG9jYXRvcjo6d2FpdEZvclJlbGF0aXZlVGltZVdoaWxlSG9sZGluZ0xvY2sgKHRoaXM9
MHg0YTI0OTgsIHJlbGF0aXZlPTEpCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwOjg5CiMzICAweDAwMDA3
ZmZmZWU1ZDgyMzggaW4gSlNDOjpCbG9ja0FsbG9jYXRvcjo6d2FpdEZvclJlbGF0aXZlVGltZSAo
CiAgICB0aGlzPTB4NGEyNDk4LCByZWxhdGl2ZT0xKQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwv
V2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcDo5OQoj
NCAgMHgwMDAwN2ZmZmVlNWQ4Mjg2IGluIEpTQzo6QmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWlu
Z1RocmVhZE1haW4gKAogICAgdGhpcz0weDRhMjQ5OCkKICAgIGF0IC9ob21lL2NocmlzL0RldmVs
L1dlYktpdC9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5jcHA6MTEz
CiM1ICAweDAwMDA3ZmZmZWU1ZDgyNWUgaW4gSlNDOjpCbG9ja0FsbG9jYXRvcjo6YmxvY2tGcmVl
aW5nVGhyZWFkU3RhcnRGdW5jICgKICAgIGJsb2NrQWxsb2NhdG9yPTB4NGEyNDk4KQogICAgYXQg
L2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2Nr
QWxsb2NhdG9yLmNwcDoxMDQKIzYgIDB4MDAwMDdmZmZmNDEzMWM2ZCBpbiBXVEY6OnRocmVhZEVu
dHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4NDkyNmIwKQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwv
V2ViS2l0L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHA6NjkKIzcgIDB4MDAwMDdmZmZmNDE1
OTc0ZSBpbiBXVEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQgKHBhcmFtPTB4N2UxMmEwKQogICAgYXQg
L2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRz
LmNwcDoxOTYKIzggIDB4MDAwMDdmZmZlYzAzY2U5YSBpbiBzdGFydF90aHJlYWQgKGFyZz0weDdm
ZmZhMjNkNTcwMCkKICAgIGF0IHB0aHJlYWRfY3JlYXRlLmM6MzA4CiM5ICAweDAwMDA3ZmZmZjZj
NjVjYmQgaW4gY2xvbmUgKCkKICAgIGF0IC4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82
NC9jbG9uZS5TOjExMgojMTAgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMiAo
VGhyZWFkIDB4N2ZmZmEyZGI5NzAwIChMV1AgMjY5MjkpKToKIzAgIDB4MDAwMDdmZmZmNmM1ZjAy
MyBpbiBzZWxlY3QgKCkgYXQgLi4vc3lzZGVwcy91bml4L3N5c2NhbGwtdGVtcGxhdGUuUzo4Mgoj
MSAgMHgwMDAwN2ZmZmY3OTI0MGU3IGluIFdvcmtRdWV1ZTo6cGVyZm9ybUZpbGVEZXNjcmlwdG9y
V29yayAodGhpcz0weDQ3YmU1OCkKICAgIGF0IC9ob21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZsLmNwcDo5MQojMiAgMHgwMDAwN2Zm
ZmY3OTI0NjUwIGluIFdvcmtRdWV1ZTo6d29ya1F1ZXVlVGhyZWFkICh3b3JrUXVldWU9MHg0N2Jl
NTgpCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vZWZsL1dvcmtRdWV1ZUVmbC5jcHA6MTgwCiMzICAweDAwMDA3ZmZmZjQxMzFjNmQgaW4gV1RG
Ojp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDQ3YzFmMCkKICAgIGF0IC9ob21lL2No
cmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwOjY5CiM0ICAweDAw
MDA3ZmZmZjQxNTk3NGUgaW4gV1RGOjp3dGZUaHJlYWRFbnRyeVBvaW50IChwYXJhbT0weDQ3YzI0
MCkKICAgIGF0IC9ob21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQdGhyZWFkcy5jcHA6MTk2CiM1ICAweDAwMDA3ZmZmZWMwM2NlOWEgaW4gc3RhcnRfdGhyZWFk
IChhcmc9MHg3ZmZmYTJkYjk3MDApCiAgICBhdCBwdGhyZWFkX2NyZWF0ZS5jOjMwOAojNiAgMHgw
MDAwN2ZmZmY2YzY1Y2JkIGluIGNsb25lICgpCiAgICBhdCAuLi9zeXNkZXBzL3VuaXgvc3lzdi9s
aW51eC94ODZfNjQvY2xvbmUuUzoxMTIKIzcgIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQoK
VGhyZWFkIDEgKFRocmVhZCAweDdmZmZlMzZjMjk4MCAoTFdQIDI2ODkyKSk6CiMwICAweDAwMDA3
ZmZmZWYyYmUxOTAgaW4gdnRhYmxlIGZvciBfX2N4eGFiaXYxOjpfX3NpX2NsYXNzX3R5cGVfaW5m
byAoKQogICBmcm9tIC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvbGlic3RkYysrLnNvLjYKIzEg
IDB4MDAwMDdmZmZmMmJlNTc1ZSBpbiBXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6
YWRkQ2hpbGRTY3JvbGxiYXIgKAogICAgdGhpcz0weGQxNjM2MCwgc2Nyb2xsYmFyPTB4ZDc2YTAw
KQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOjEzNQojMiAgMHgwMDAwN2ZmZmYyYmU1
NWQ4IGluIFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJz
ICgKICAgIHRoaXM9MHhkMTYzNjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6MTEz
CiMzICAweDAwMDA3ZmZmZjJiZTU4Y2QgaW4gV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXc6OmFkZENoaWxkcmVuICgKICAgIHRoaXM9MHhkMTYzNjApCiAgICBhdCAvaG9tZS9jaHJpcy9E
ZXZlbC9XZWJLaXQvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5jcHA6MTY1CiM0ICAweDAwMDA3ZmZmZjJiZTU0MTcgaW4gV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXc6OnVwZGF0ZUNoaWxkcmVuSWZOZWNlc3NhcnkgKHRoaXM9MHhkMTYz
NjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA6OTUKIzUgIDB4MDAwMDdmZmZmMmJh
NDI2MiBpbiBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUgKAog
ICAgdGhpcz0weGQyOGMxMCwgdmlldz0weGNlNzgwMCkKICAgIGF0IC9ob21lL2NocmlzL0RldmVs
L1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOjcz
OQojNiAgMHgwMDAwN2ZmZmYzNDdkNzU4IGluIFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldEhhc1Zl
cnRpY2FsU2Nyb2xsYmFyICgKICAgIHRoaXM9MHhjZTc4MDAsIGhhc0Jhcj10cnVlKQogICAgYXQg
L2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOjEyMQojNyAgMHgwMDAwN2ZmZmYzNDdlZTBlIGluIFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnVwZGF0ZVNjcm9sbGJhcnMgKAogICAgdGhpcz0weGNlNzgwMCwgZGVzaXJlZE9mZnNldD0uLi4p
CiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHA6NTAxCiM4ICAweDAwMDA3ZmZmZjM0N2Q4YjMgaW4gV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2V0U2Nyb2xsYmFyTW9kZXMgKAogICAgdGhpcz0weGNlNzgwMCwgaG9yaXpvbnRh
bE1vZGU9V2ViQ29yZTo6U2Nyb2xsYmFyQXV0bywgCiAgICB2ZXJ0aWNhbE1vZGU9V2ViQ29yZTo6
U2Nyb2xsYmFyQWx3YXlzT24sIGhvcml6b250YWxMb2NrPWZhbHNlLCAKICAgIHZlcnRpY2FsTG9j
az1mYWxzZSkKICAgIGF0IC9ob21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoxNTcKIzkgIDB4MDAwMDdmZmZmMzNlNWYxOSBpbiBXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRWZXJ0aWNhbFNjcm9sbGJhck1vZGUgKAogICAgdGhpcz0weGNl
NzgwMCwgbW9kZT1XZWJDb3JlOjpTY3JvbGxiYXJBbHdheXNPbiwgbG9jaz1mYWxzZSkKICAgIGF0
IC9ob21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3Lmg6OTQKIzEwIDB4MDAwMDdmZmZmMzNkYWU4NSBpbiBXZWJDb3JlOjpGcmFtZVZpZXc6Omxh
eW91dCAodGhpcz0weGNlNzgwMCwgCiAgICBhbGxvd1N1YnRyZWU9dHJ1ZSkKICAgIGF0IC9ob21l
L2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHA6MTE2
OQojMTEgMHgwMDAwN2ZmZmYzM2UzNmI3IGluIFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5
b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSAodGhpcz0weGNlNzgwMCkKICAgIGF0IC9ob21l
L2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHA6MzQ0
MAojMTIgMHgwMDAwN2ZmZmYzM2UzNzBjIGluIFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5
b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSAodGhpcz0weGM2ZTQwMCkKICAgIGF0IC9ob21l
L2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHA6MzQ1
MAojMTMgMHgwMDAwN2ZmZmY3OGY0YzUyIGluIFdlYktpdDo6V2ViUGFnZTo6bGF5b3V0SWZOZWVk
ZWQgKHRoaXM9MHg0YjA4MjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOjk3MQojMTQgMHgwMDAwN2Zm
ZmY3OTE3YTgwIGluIFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzeW5jRGlzcGxh
eVN0YXRlICgKICAgIHRoaXM9MHg0ZDgzYjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJL
aXQvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDo1NTcKIzE1IDB4MDAwMDdmZmZmNzkxNzlkNCBp
biBXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGVyZm9ybVNjaGVkdWxlZExheWVy
Rmx1c2ggKHRoaXM9MHg0ZDgzYjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcDo1MzUKIzE2IDB4MDAwMDdmZmZmNzkxN2FkZSBpbiBXZWJL
aXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQgKHRoaXM9
MHg0ZDgzYjApCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZlbC9XZWJLaXQvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmNwcDo1NzAKIzE3IDB4MDAwMDdmZmZmNzkyMjk2OCBpbiBXZWJDb3JlOjpUaW1lcjxX
ZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdD46OmZpcmVkICh0aGlzPTB4NGQ4NGQwKQog
ICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rp
bWVyLmg6MTA2CiMxOCAweDAwMDA3ZmZmZjM0OGM5ZjYgaW4gV2ViQ29yZTo6VGhyZWFkVGltZXJz
OjpzaGFyZWRUaW1lckZpcmVkSW50ZXJuYWwgKAogICAgdGhpcz0weDRkMTkwMCkKICAgIGF0IC9o
b21lL2NocmlzL0RldmVsL1dlYktpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1l
cnMuY3BwOjExNgojMTkgMHgwMDAwN2ZmZmYzNDhjOTE3IGluIFdlYkNvcmU6OlRocmVhZFRpbWVy
czo6c2hhcmVkVGltZXJGaXJlZCAoKQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5jcHA6OTMKIzIwIDB4MDAwMDdmZmZm
NDAwZjA5MSBpbiBXZWJDb3JlOjp0aW1lckV2ZW50ICgpCiAgICBhdCAvaG9tZS9jaHJpcy9EZXZl
bC9XZWJLaXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1NoYXJlZFRpbWVyRWZsLmNwcDo1
MgojMjEgMHgwMDAwN2ZmZmY3ZWI2NTFlIGluIF9lY29yZV9jYWxsX3Rhc2tfY2IgKGRhdGE9PG9w
dGltaXplZCBvdXQ+LCAKICAgIGZ1bmM9PG9wdGltaXplZCBvdXQ+KSBhdCBlY29yZV9wcml2YXRl
Lmg6MjY3CiMyMiBfZWNvcmVfdGltZXJfZXhwaXJlZF9jYWxsICh3aGVuPTxvcHRpbWl6ZWQgb3V0
PikgYXQgZWNvcmVfdGltZXIuYzo3OTIKIzIzIDB4MDAwMDdmZmZmN2ViNjZlYiBpbiBfZWNvcmVf
dGltZXJfZXhwaXJlZF90aW1lcnNfY2FsbCAoCiAgICB3aGVuPTYyMTI0MS45MTg4OTU0NzY5Nikg
YXQgZWNvcmVfdGltZXIuYzo3NDYKIzI0IDB4MDAwMDdmZmZmN2ViMzVmMSBpbiBfZWNvcmVfbWFp
bl9sb29wX2l0ZXJhdGVfaW50ZXJuYWwgKG9uY2Vfb25seT0wKQogICAgYXQgZWNvcmVfbWFpbi5j
OjE4MTMKIzI1IDB4MDAwMDdmZmZmN2ViM2M4NyBpbiBlY29yZV9tYWluX2xvb3BfYmVnaW4gKCkg
YXQgZWNvcmVfbWFpbi5jOjk1NgojMjYgMHgwMDAwN2ZmZmY0MDBkOTUxIGluIFdlYkNvcmU6OlJ1
bkxvb3A6OnJ1biAoKQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9SdW5Mb29wRWZsLmNwcDo5MQojMjcgMHgwMDAwN2ZmZmY3OTdmYzZl
IGluIFdlYktpdDo6V2ViUHJvY2Vzc01haW5FZmwgKGFyZ2M9MiwgCiAgICBhcmd2PTB4N2ZmZmZm
ZmZkZWI4KQogICAgYXQgL2hvbWUvY2hyaXMvRGV2ZWwvV2ViS2l0L1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcDoxMjQKIzI4IDB4MDAwMDAwMDAwMDQw
MDdjNCBpbiBtYWluIChhcmdjPTIsIGFyZ3Y9MHg3ZmZmZmZmZmRlYjgpCiAgICBhdCAvaG9tZS9j
aHJpcy9EZXZlbC9XZWJLaXQvU291cmNlL1dlYktpdDIvZWZsL01haW5FZmwuY3BwOjMwCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186262</attachid>
            <date>2013-02-03 07:44:13 -0800</date>
            <delta_ts>2013-02-08 15:48:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108058_ax_crashes.patch</filename>
            <type>text/plain</type>
            <size>5424</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMmVkMWU2Li5lNzc4M2IxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTMtMDIt
MDMgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNAZ21haWwuY29tPgogCisgICAgICAgIGZhc3Qv
ZW5jb2RpbmcvcGFyc2VyLXRlc3RzLSouaHRtbCB0ZXN0cyBzb21ldGltZXMgY3Jhc2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA1OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBmYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0qLmh0bWwgdGVzdHMgb24gRUZMIFdlYktpdDIgYXMgdGhleQor
ICAgICAgICBubyBsb25nZXIgY3Jhc2guCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwtd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKKzIwMTMtMDItMDMgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNA
Z21haWwuY29tPgorCiAgICAgICAgIFtFRkxdIE1hcmsgYSBmZXcgbW9yZSBtZWRpYSB0ZXN0cyBh
cyBmbGFreSBkdWUgdG8gZ3N0cmVhbWVyIDEuMAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NzY1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4Yjg3MjcxLi45MGNlNjkxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTUsMjAgKzIx
NSw2IEBAIHdlYmtpdC5vcmcvYi8xMDgzNTUgZmFzdC9qcy9jYWxsZXItcHJvcGVydHkuaHRtbCBb
IENyYXNoIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEwODM1NSBzdG9yYWdlL3dlYnNxbC9jbG9zZS1k
dXJpbmctc3RyZXNzLXRlc3QuaHRtbCBbIENyYXNoIFBhc3MgXQogd2Via2l0Lm9yZy9iLzEwODM1
NSBzdG9yYWdlL3dlYnNxbC9zcWwtZXJyb3ItY29kZXMuaHRtbCBbIENyYXNoIFBhc3MgXQogCi13
ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy5o
dG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2Vu
Y29kaW5nL3BhcnNlci10ZXN0cy0xMC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2Iv
MTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0yMC5odG1sIFsgQ3Jh
c2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3Bh
cnNlci10ZXN0cy0zMC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsg
RGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy00MC5odG1sIFsgQ3Jhc2ggUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0
cy01MC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBm
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy02MC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQu
b3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy03MC5odG1s
IFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29k
aW5nL3BhcnNlci10ZXN0cy04MC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi13ZWJraXQub3JnL2IvMTA4
MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy05MC5odG1sIFsgQ3Jhc2gg
UGFzcyBdCi13ZWJraXQub3JnL2IvMTA4MDU4IFsgRGVidWcgXSBmYXN0L2VuY29kaW5nL3BhcnNl
ci10ZXN0cy0xMDAuaHRtbCBbIENyYXNoIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEwODA1OCBbIERl
YnVnIF0gZmFzdC9lbmNvZGluZy9wYXJzZXItdGVzdHMtMTEwLmh0bWwgWyBDcmFzaCBQYXNzIF0K
LXdlYmtpdC5vcmcvYi8xMDgwNTggWyBEZWJ1ZyBdIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3Rz
LTEyMC5odG1sIFsgQ3Jhc2ggUGFzcyBdCi0KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAjIEZBSUxJTkcgVEVTVFMKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZGZkYTM0OC4uNWZlYmFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDEzLTAyLTAzICBDaHJpc3RvcGhlIER1bWV6ICA8ZGNocmlzQGdtYWlsLmNvbT4KKworICAg
ICAgICBmYXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0qLmh0bWwgdGVzdHMgc29tZXRpbWVzIGNy
YXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgw
NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxs
IEZyYW1lVmlldzo6cHJlcGFyZUZvckRldGFjaCgpIGZyb20gRG9jdW1lbnQ6OmRldGFjaCgpIGlu
c3RlYWQgb2YKKyAgICAgICAgRnJhbWU6OnNldFZpZXcoKS4gRnJhbWVWaWV3OjpwcmVwYXJlRm9y
RGV0YWNoKCkgcmVtb3ZlcyB0aGUgRnJhbWVWaWV3CisgICAgICAgIGZyb20gdGhlIEFYT2JqZWN0
Q2FjaGUuIEhvd2V2ZXIsIGNhbGxpbmcgaXQgYmVmb3JlIERvY3VtZW50OjpkZXRhY2goKQorICAg
ICAgICBkb2VzIG5vdCBoZWxwIGJlY2F1c2UgaXQgY2FsbHMgQ29udGFpbmVyTm9kZTo6ZGV0YWNo
KCkgd2hpY2ggbWF5IGFkZAorICAgICAgICB0aGUgRnJhbWVWaWV3IHRvIHRoZSBBWE9iamVjdENh
Y2hlIGFnYWluLgorCisgICAgICAgIEJ5IGNhbGxpbmcgRnJhbWVWaWV3OjpwcmVwYXJlRm9yRGV0
YWNoKCkgaW4gRG9jdW1lbnQ6OmRldGFjaCgpLCBhZnRlcgorICAgICAgICB0aGUgY2FsbCB0byBD
b250YWluZXJOb2RlOjpkZXRhY2goKSwgd2UgbWFrZSBzdXJlIHRoYXQgdGhlIEZyYW1lVmlldwor
ICAgICAgICBpcyBjb3JyZWN0bHkgcmVtb3ZlZCBmcm9tIHRoZSBBWE9iamVjdENhY2hlLiBQcmV2
aW91c2x5LCB0aGUgRnJhbWVWaWV3CisgICAgICAgIHdhcyBub3QgYWx3YXlzIHJlbW92ZWQgZnJv
bSB0aGUgQVhPYmplY3RDYWNoZSBhbmQgaXQgd291bGQgY2F1c2UgY3Jhc2hlcworICAgICAgICBk
dWUgdG8gQVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUoV2lkZ2V0Kikgbm90IHJldHVybmluZyB0
aGUgcmlnaHQKKyAgICAgICAgb2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFk
eSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV0YWNoKToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXRWaWV3KToKKwog
MjAxMy0wMi0wMiAgSnVuIEppYW5nICA8anVuLmEuamlhbmdAaW50ZWwuY29tPgogCiAgICAgICAg
IE9wdGltaXplIHNvbWUgb3BlcmF0aW9ucyBmb3IgZmxvYXQgdHlwZSBpbiB0ZXh0dXJlIGZvcm1h
dCBjb252ZXJzaW9ucyBvZiBXZWJHTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODVlODg1
Mi4uNDYyYmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTA4LDcgKzIxMDgsMTIg
QEAgdm9pZCBEb2N1bWVudDo6ZGV0YWNoKCkKICAgICAvLyBwb3NzaWJsZSB0byByZS1hdHRhY2gu
IEV2ZW50dWFsbHkgRG9jdW1lbnQ6OmRldGFjaCgpIHNob3VsZCBiZSByZW5hbWVkLAogICAgIC8v
IG9yIHRoaXMgc2V0dGluZyBvZiB0aGUgZnJhbWUgdG8gMCBjb3VsZCBiZSBtYWRlIGV4cGxpY2l0
IGluIGVhY2ggb2YgdGhlCiAgICAgLy8gY2FsbGVycyBvZiBEb2N1bWVudDo6ZGV0YWNoKCkuCi0g
ICAgbV9mcmFtZSA9IDA7CisgICAgaWYgKG1fZnJhbWUpIHsKKyAgICAgICAgRnJhbWVWaWV3KiB2
aWV3ID0gbV9mcmFtZS0+dmlldygpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHZp
ZXctPnByZXBhcmVGb3JEZXRhY2goKTsKKyAgICAgICAgbV9mcmFtZSA9IDA7CisgICAgfQogICAg
IG1fcmVuZGVyQXJlbmEuY2xlYXIoKTsKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA2MWQ0NGNlLi5hY2UyZjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcApAQCAtMjUyLDEyICsyNTIsNiBAQCB2b2lkIEZyYW1lOjpyZW1vdmVEZXN0cnVjdGlvbk9i
c2VydmVyKEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciogb2JzZXJ2ZXIpCiAKIHZvaWQgRnJhbWU6
OnNldFZpZXcoUGFzc1JlZlB0cjxGcmFtZVZpZXc+IHZpZXcpCiB7Ci0gICAgLy8gV2UgdGhlIGN1
c3RvbSBzY3JvbGwgYmFycyBhcyBlYXJseSBhcyBwb3NzaWJsZSB0byBwcmV2ZW50IG1fZG9jLT5k
ZXRhY2goKQotICAgIC8vIGZyb20gbWVzc2luZyB3aXRoIHRoZSB2aWV3IHN1Y2ggdGhhdCBpdHMg
c2Nyb2xsIGJhcnMgd29uJ3QgYmUgdG9ybiBkb3duLgotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cmV2aXNpdCB0aGlzLgotICAgIGlmIChtX3ZpZXcpCi0gICAgICAgIG1fdmlldy0+cHJlcGFyZUZv
ckRldGFjaCgpOwotCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1Y3Rpb24gbm93LCBzbyBhbnkg
dW5sb2FkIGV2ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBET01XaW5kb3cgaXMKICAgICAv
LyBub3RpZmllZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBpcyBkZXN0cm95ZWQsIHRoZW4g
dGhpbmdzIHdvbid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAgICAgLy8gdGhlc2UgY2FsbHMg
dG8gd29yay4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186511</attachid>
            <date>2013-02-04 17:56:01 -0800</date>
            <delta_ts>2013-02-08 15:48:55 -0800</delta_ts>
            <desc>possibly fix</desc>
            <filename>pat</filename>
            <type>text/plain</type>
            <size>506</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAkocmV2aXNpb24gMTQxODE5KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjE3LDcgKzYxNyw3IEBACiAKICAgICBv
YmotPmNoaWxkcmVuQ2hhbmdlZCgpOwogCi0gICAgaWYgKG9iai0+cGFyZW50T2JqZWN0SWZFeGlz
dHMoKSAmJiBvYmotPmNhY2hlZElzSWdub3JlZFZhbHVlKCkgIT0gb2JqLT5hY2Nlc3NpYmlsaXR5
SXNJZ25vcmVkKCkpCisgICAgaWYgKG9iai0+cGFyZW50T2JqZWN0SWZFeGlzdHMoKSkKICAgICAg
ICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogfQogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187375</attachid>
            <date>2013-02-08 15:48:58 -0800</date>
            <delta_ts>2013-02-09 14:56:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108058-20130208154533.patch</filename>
            <type>text/plain</type>
            <size>2983</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFjNTcwNGVkNWU2Yjk3
NGJkZWEzMzRhMzZmODExZGQzZTdmNGNjOC4uOTExM2E3ZTMwY2Q3NmNhYWI0NjRiNWI2MmM0NjRk
ZGQxZTFlMTA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA4ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIGZhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLSouaHRtbCB0ZXN0cyBzb21ldGltZXMgY3Jhc2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGF2b2lkIGNhbGxpbmcgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCB3aGlsZSB0aGUgcmVuZGVyCisgICAgICAgIHRyZWUgaXMgdW5z
dGFibGUsIGNhbGwgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCBpbiB0aGUKKyAgICAgICAgbm90aWZp
Y2F0aW9uIHRpbWVyIGhhbmRsZXIsIG9ubHkgZm9yIGNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBu
b3RpZmljYXRpb25zLgorCisgICAgICAgIFRoaXMgZXhwb3NlZCBhIHByb2JsZW0gd2hlcmUgbm90
aWZpY2F0aW9ucyBxdWV1ZWQgb24KKyAgICAgICAgb2JqZWN0cyBjYW4gZmlyZSBhZnRlciB0aGUg
b2JqZWN0IGhhcyBiZWVuIGRlbGV0ZWQ7IGZpeCB0aGF0CisgICAgICAgIGJ5IGNoZWNraW5nIHRo
ZSBvYmplY3QncyBpZCwgd2hpY2ggaXMgYWx3YXlzIHNldCB0byAwIHdoZW4KKyAgICAgICAgcmVt
b3ZlZCBmcm9tIHRoZSB0cmVlLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKwogMjAxMy0w
Mi0wNyAgSGFueWVlIEtpbSAgPGNob2NvQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIE5hbWVk
Rmxvd0NvbGxlY3Rpb24gc2hvdWxkIGJlIGEgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGU3
MWU5ZDU5Y2ZmZjg1NWE5MmFiZDIzODljMDVmZThmMzdlMjU4OGMuLjEwNWQ4NGYxNDQwNDQ4YzZi
MWEyMDU5YWIzZjcwOGI2MzVlNWI0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtNjE2LDkgKzYxNiw2IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgb2JqLT5jaGlsZHJlbkNoYW5nZWQoKTsKLQotICAgIGlmIChvYmotPnBh
cmVudE9iamVjdElmRXhpc3RzKCkgJiYgb2JqLT5jYWNoZWRJc0lnbm9yZWRWYWx1ZSgpICE9IG9i
ai0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpKQotICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2Jq
LT5wYXJlbnRPYmplY3QoKSk7CiB9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKFRpbWVyPEFYT2JqZWN0Q2FjaGU+KikKQEAgLTYzMCw2ICs2Mjcs
OSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKFRpbWVy
PEFYT2JqZWN0Q2FjaGU+KikKICAgICB1bnNpZ25lZCBpID0gMCwgY291bnQgPSBtX25vdGlmaWNh
dGlvbnNUb1Bvc3Quc2l6ZSgpOwogICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAg
ICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IG1fbm90aWZpY2F0aW9uc1RvUG9zdFtp
XS5maXJzdC5nZXQoKTsKKyAgICAgICAgaWYgKCFvYmotPmF4T2JqZWN0SUQoKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAvLyBNYWtlIHN1cmUgbm9u
ZSBvZiB0aGUgcmVuZGVyIHZpZXdzIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBsYXllZCBv
dXQuCiAgICAgICAgIC8vIE5vdGlmaWNhdGlvbnMgc2hvdWxkIG9ubHkgYmUgc2VudCBhZnRlciB0
aGUgcmVuZGVyZXIgaGFzIGZpbmlzaGVkCkBAIC02NDEsNyArNjQxLDExIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoVGltZXI8QVhPYmplY3RDYWNoZT4q
KQogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmosIG1fbm90aWZpY2F0aW9uc1RvUG9zdFtpXS5zZWNvbmQpOworICAgICAgICBB
WE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnNUb1Bvc3RbaV0uc2Vj
b25kOworICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBub3RpZmljYXRpb24p
OworCisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gQVhDaGlsZHJlbkNoYW5nZWQgJiYgb2Jq
LT5wYXJlbnRPYmplY3RJZkV4aXN0cygpICYmIG9iai0+Y2FjaGVkSXNJZ25vcmVkVmFsdWUoKSAh
PSBvYmotPmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkKKyAgICAgICAgICAgIGNoaWxkcmVuQ2hh
bmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiAgICAgCiAgICAgbV9ub3RpZmljYXRp
b25zVG9Qb3N0LmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187447</attachid>
            <date>2013-02-09 14:56:47 -0800</date>
            <delta_ts>2013-02-09 22:12:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108058-20130209145320.patch</filename>
            <type>text/plain</type>
            <size>5517</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWUyMDdjNDQ5NDI3NmY1
MTY1MTQ5ZGI2YzhhYzU1ZWIxMGZmNzc4NS4uNTY2NmZkYjFkYzg1NjUxOGFkNjhjODY1ODRhYWMw
YmZhOTRmZTliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTAyLTA5ICBEb21p
bmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgorCisgICAgICAgIGZhc3QvZW5jb2Rp
bmcvcGFyc2VyLXRlc3RzLSouaHRtbCB0ZXN0cyBzb21ldGltZXMgY3Jhc2gKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA1OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGF2b2lkIGNhbGxpbmcgYWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCB3aGlsZSB0aGUgcmVuZGVyCisgICAgICAgIHRyZWUgaXMgdW5z
dGFibGUsIGNhbGwgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCBpbiB0aGUKKyAgICAgICAgbm90aWZp
Y2F0aW9uIHRpbWVyIGhhbmRsZXIsIG9ubHkgZm9yIGNoaWxkcmVuQ2hhbmdlZAorICAgICAgICBu
b3RpZmljYXRpb25zLgorCisgICAgICAgIFRoaXMgZXhwb3NlZCBhIHByb2JsZW0gd2hlcmUgbm90
aWZpY2F0aW9ucyBxdWV1ZWQgb24KKyAgICAgICAgb2JqZWN0cyBjYW4gZmlyZSBhZnRlciB0aGUg
b2JqZWN0IGhhcyBiZWVuIGRlbGV0ZWQ7IGZpeCB0aGF0CisgICAgICAgIGJ5IGNoZWNraW5nIHRo
ZSBvYmplY3QncyBpZCwgd2hpY2ggaXMgYWx3YXlzIHNldCB0byAwIHdoZW4KKyAgICAgICAgcmVt
b3ZlZCBmcm9tIHRoZSB0cmVlLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKwogMjAxMy0w
Mi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIExvYWQgZXZl
bnQgZmlyZXMgdG9vIGVhcmx5IHdpdGggdGhyZWFkZWQgSFRNTCBwYXJzZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDc3ZDNhMDRhNWVl
YzI1MzZmMGI5M2ZhY2JiMTM3MmFhMDIyMDg1ODguLmVlOTVjNDlhNzI3NDNlNWE3YzAxNzBkNzAy
OGUzOGJhNTVmMWUzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcApAQCAtNjE2LDkgKzYxNiw2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hp
bGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgb2JqLT5jaGlsZHJlbkNoYW5nZWQoKTsKLQotICAgIGlmIChvYmotPnBhcmVudE9iamVj
dElmRXhpc3RzKCkgJiYgb2JqLT5sYXN0S25vd25Jc0lnbm9yZWRWYWx1ZSgpICE9IG9iai0+YWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpKQotICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJl
bnRPYmplY3QoKSk7CiB9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKFRpbWVyPEFYT2JqZWN0Q2FjaGU+KikKQEAgLTYzMCw2ICs2MjcsOSBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKFRpbWVyPEFYT2Jq
ZWN0Q2FjaGU+KikKICAgICB1bnNpZ25lZCBpID0gMCwgY291bnQgPSBtX25vdGlmaWNhdGlvbnNU
b1Bvc3Quc2l6ZSgpOwogICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IG1fbm90aWZpY2F0aW9uc1RvUG9zdFtpXS5maXJz
dC5nZXQoKTsKKyAgICAgICAgaWYgKCFvYmotPmF4T2JqZWN0SUQoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAvLyBNYWtlIHN1cmUgbm9uZSBvZiB0
aGUgcmVuZGVyIHZpZXdzIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBsYXllZCBvdXQuCiAg
ICAgICAgIC8vIE5vdGlmaWNhdGlvbnMgc2hvdWxkIG9ubHkgYmUgc2VudCBhZnRlciB0aGUgcmVu
ZGVyZXIgaGFzIGZpbmlzaGVkCkBAIC02NDEsNyArNjQxLDExIEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoVGltZXI8QVhPYmplY3RDYWNoZT4qKQogICAg
ICAgICB9CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmosIG1fbm90aWZpY2F0aW9uc1RvUG9zdFtpXS5zZWNvbmQpOworICAgICAgICBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnNUb1Bvc3RbaV0uc2Vjb25kOwor
ICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBub3RpZmljYXRpb24pOworCisg
ICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gQVhDaGlsZHJlbkNoYW5nZWQgJiYgb2JqLT5wYXJl
bnRPYmplY3RJZkV4aXN0cygpICYmIG9iai0+bGFzdEtub3duSXNJZ25vcmVkVmFsdWUoKSAhPSBv
YmotPmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSkKKyAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdl
ZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiAgICAgCiAgICAgbV9ub3RpZmljYXRpb25z
VG9Qb3N0LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmIxYjI2YmU1MWU3MjYyOGZiNDdhM2ZlZWY4NTE5NGY0
ZTc0YTI3Mi4uNjYzNDExNTA3NjA2ZmI4NzFjMTZhZTA1Y2JhMGJmYTY3ZTFhOTQ1MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA5ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBn
b29nbGUuY29tPgorCisgICAgICAgIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLSouaHRtbCB0
ZXN0cyBzb21ldGltZXMgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwODA1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1ha2UgdGVzdCBsZXNzIGJyaXR0bGUgYnkgKDEpIGdpdmluZyB0aGUgaWZy
YW1lIGFuIGFyaWEtcm9sZSBzbworICAgICAgICBpdCdzIG5ldmVyIGlnbm9yZWQsIGFuZCAoMikg
dXNpbmcgYWNjZXNzaWJpbGl0eUVsZW1lbnRCeUlkIGluc3RlYWQKKyAgICAgICAgb2YgYXNzdW1p
bmcgYW4gZWxlbWVudCBpcyBpbiBhIHNwZWNpZmljIHBsYWNlIGluIHRoZSBBWCB0cmVlLgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1s
OgorCiAyMDEzLTAyLTA5ICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBSZXZlcnRpbmcgZWFybGllciBjaGFuZ2Ugbm93CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVwZGF0ZXMt
YXh0cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVw
ZGF0ZXMtYXh0cmVlLmh0bWwKaW5kZXggMmNlNzc5YjhlNTAzNzJjYjY4ZTM0ZmY5OTNmMGVkMmQy
NDc3MmZlNy4uMDA4ZWI4Nzg4ZDc1ZTBiOTA5ZmFiODg3Mzg1NGJjMDRhYzYwMTM4NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4
dHJlZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUt
dXBkYXRlcy1heHRyZWUuaHRtbApAQCAtMTEsOSArMTEsNyBAQAogICAgICAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGF0IGlmIGFuIGlmcmFtZSBsb2FkcyBuZXcgY29udGVudCBhZnRlciBp
dHMgYWNjZXNzaWJpbGl0eSBvYmplY3QgaGFzIGFscmVhZHkgYmVlbiBhY2Nlc3NlZCwgdGhlIGlm
cmFtZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCdzIGRlc2NlbmRhbnRzIGFyZSB0aGUgbmV3IHNjcm9s
bCBhcmVhIGFuZCB3ZWIgYXJlYSwgbm90IHRoZSBvbGQgZGVsZXRlZCBvbmVzLiIpOwogCiAgICAg
ICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIHdp
bmRvdy5yb290ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQ7Ci0gICAgICAg
ICAgICB3aW5kb3cuYm9keSA9IHJvb3QuY2hpbGRBdEluZGV4KDApOwotICAgICAgICAgICAgd2lu
ZG93LmlmcmFtZSA9IGJvZHkuY2hpbGRBdEluZGV4KDEpLmNoaWxkQXRJbmRleCgwKTsKKyAgICAg
ICAgICAgIHdpbmRvdy5pZnJhbWUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoJ2lmcmFtZScpOwogICAgICAgICAgICAgd2luZG93LnNjcm9sbGFyZWEgPSBp
ZnJhbWUuY2hpbGRBdEluZGV4KDApOwogICAgICAgICAgICAgd2luZG93LnN1YndlYmFyZWEgPSBz
Y3JvbGxhcmVhLmNoaWxkQXRJbmRleCgwKTsKICAgICAgICAgfQpAQCAtMjEsNyArMTksNyBAQAog
ICAgICAgICB3aW5kb3cuaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
ZnJhbWUiKTsKICAgICAgICAgaWZyYW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lm5ld0lmcmFtZSA9IGJvZHkuY2hpbGRBdElu
ZGV4KDEpLmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cubmV3SWZyYW1l
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdpZnJhbWUn
KTsKICAgICAgICAgICAgICAgICB3aW5kb3cubmV3U2Nyb2xsYXJlYSA9IG5ld0lmcmFtZS5jaGls
ZEF0SW5kZXgoMCk7CiAgICAgICAgICAgICAgICAgd2luZG93Lm5ld1N1YndlYmFyZWEgPSBuZXdT
Y3JvbGxhcmVhLmNoaWxkQXRJbmRleCgwKTsKIApAQCAtNTMsNyArNTEsNyBAQAogCiA8cD5CZWZv
cmU8L3A+CiAKLTxpZnJhbWUgaWQ9ImlmcmFtZSI+PC9pZnJhbWU+Cis8aWZyYW1lIGlkPSJpZnJh
bWUiIHJvbGU9Imdyb3VwIj48L2lmcmFtZT4KIAogPHA+QWZ0ZXI8L3A+CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>