<?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>71040</bug_id>
          
          <creation_ts>2011-10-27 11:25:11 -0700</creation_ts>
          <short_desc>[chromium] WebCompositor::setDisplayRate</short_desc>
          <delta_ts>2013-04-12 07:15:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72536</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="Iain Merrick">husky</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>fishd</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491760</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-10-27 11:25:11 -0700</bug_when>
    <thetext>Add a method to WebKit/chromium/public/WebCompositor to indicate the display&apos;s refresh rate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493334</commentid>
    <comment_count>1</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 08:48:36 -0700</bug_when>
    <thetext>I&apos;m having trouble figuring out a nice way to do this. Adding the method is obviously trivial, but how does the display rate propagate to CCScheduler, which is where it will be needed?

Currently, WebCompositorImpl has pointers to a WebCompositorClient (implemented by CompositorThread) and a CCScrollController (implemented by CCLayerTreeHostImpl). The WebCompositor is *owned* by CCThreadProxy, but that class only accesses it via the CCInputHandler interface.

CCScheduler is owned by CCThreadProxy, so either WebCompositorImpl needs a pointer back to CCThreadProxy, or a direct pointer to CCScheduler. Either way, it&apos;s a third callback interface added to a simple class. WebCompositorImpl would be nothing more than pure plumbing, routing a few messages to different places. It feels like the OO design isn&apos;t quite right: it doesn&apos;t have a role other than &quot;forward calls to the right place&quot;.

The plumbing would be cleaner if we added setDisplayRate to CCScrollController, and implemented that interface in CCThreadProxy instead of CCLayerTreeHostImpl. CCThreadProxy would then act as the central dispatcher, delegating to CCLayerTreeHostImpl or to CCScheduler as appropriate, which makes sense because it actually owns those objects.

Is setDisplayRate really related to a method like scrollRootLayer? Maybe so, because we need to know the display rate for smooth scrolling.

I&apos;ll give it a try, anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493355</commentid>
    <comment_count>2</comment_count>
      <attachid>113059</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 09:31:10 -0700</bug_when>
    <thetext>Created attachment 113059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493357</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 09:34:35 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493359</commentid>
    <comment_count>4</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 09:37:10 -0700</bug_when>
    <thetext>Not ready to submit -- I think it would make sense to wait for https://bugs.webkit.org/show_bug.cgi?id=71100 so I can do that TODO. But would appreciate feedback on whether this is a good direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493363</commentid>
    <comment_count>5</comment_count>
      <attachid>113059</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-31 09:42:15 -0700</bug_when>
    <thetext>Comment on attachment 113059
Patch

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

&gt; Source/WebKit/chromium/public/WebCompositor.h:47
&gt; +    virtual void setDisplayRate(double framesPerSecond) { }

can this be made pure virtual too?  i think this implies implementing it
in WebCompositorImpl.{h,cpp}.

is this method only ever intended to be called on the compositor thread?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493368</commentid>
    <comment_count>6</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 09:46:35 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 113059 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113059&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebCompositor.h:47
&gt; &gt; +    virtual void setDisplayRate(double framesPerSecond) { }
&gt; 
&gt; can this be made pure virtual too?  i think this implies implementing it
&gt; in WebCompositorImpl.{h,cpp}.

Oops! Yes it can. I&apos;ll fix that now.

&gt; is this method only ever intended to be called on the compositor thread?

Yes, because that&apos;s where the CCScheduler lives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493377</commentid>
    <comment_count>7</comment_count>
      <attachid>113062</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 09:56:07 -0700</bug_when>
    <thetext>Created attachment 113062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493397</commentid>
    <comment_count>8</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-10-31 10:17:46 -0700</bug_when>
    <thetext>Antoine, Darin, can you advise the right place to put this?

I would ordinarily have put this on WebWidget, but I was hoping that our new WebLayerTreeView and WebCompositor abstractions would be of help. However, I don&apos;t think they are.

Would it help if WebWidget had a WebLayerTreeView* layerTreeView() accessor? Then we wouldn&apos;t pollute the WebWidget with compositor properties...

Also, I&apos;m very confused why we have WebLayerTreeView instead of WebLayerTreeHost... or we don&apos;t rename CCLayerTreeHost* to CCLayerTreeView. Opinions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493403</commentid>
    <comment_count>9</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 10:26:33 -0700</bug_when>
    <thetext>As a straw man, I&apos;ll try adding this to WebWidget instead of WebCompositor, and plumbing that through to CCScheduler, so we can see how that looks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493413</commentid>
    <comment_count>10</comment_count>
      <attachid>113068</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-10-31 11:03:04 -0700</bug_when>
    <thetext>Created attachment 113068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493419</commentid>
    <comment_count>11</comment_count>
      <attachid>113068</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-31 11:10:02 -0700</bug_when>
    <thetext>Comment on attachment 113068
Patch

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

&gt; Source/WebKit/chromium/public/WebWidget.h:163
&gt; +    // Called to inform the WebWidget of the ideal refresh rate for smooth

I&apos;m probably missing one other piece of information.  Why is the ideal refresh rate
a per-widget setting?  Shouldn&apos;t it be a global setting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493432</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-31 11:58:33 -0700</bug_when>
    <thetext>I think there&apos;s nothing here that is tied to a specific widget or compositor instance. This function is meant to inform WebKit about the characteristics of the display.

Will this value change at runtime?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493460</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-31 13:19:53 -0700</bug_when>
    <thetext>It sounds like a static setter would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493801</commentid>
    <comment_count>14</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-01 02:10:57 -0700</bug_when>
    <thetext>I think it actually could change at runtime if the user changes the monitor settings, and there could be multiple monitors with different refresh rates. But I&apos;m happy to make it a static if you think that isn&apos;t going to bite us later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494009</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-01 10:44:06 -0700</bug_when>
    <thetext>Should it be a method on WebCore::PlatformScreen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494641</commentid>
    <comment_count>16</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-02 08:45:42 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Should it be a method on WebCore::PlatformScreen?

Aha, yes! That looks like the right place. I&apos;ll update the patch appropriately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494709</commentid>
    <comment_count>17</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-11-02 10:29:04 -0700</bug_when>
    <thetext>*** Bug 71039 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495495</commentid>
    <comment_count>18</comment_count>
      <attachid>113498</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 08:49:52 -0700</bug_when>
    <thetext>Created attachment 113498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495500</commentid>
    <comment_count>19</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 08:54:08 -0700</bug_when>
    <thetext>Thanks for the pointers. Take 3:

WebViewImpl reads framesPerSecond via PlatformScreen -&gt; PlatformSupport -&gt; WebScreenInfo, and passes it to CCThreadProxy via CCSettings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495530</commentid>
    <comment_count>20</comment_count>
      <attachid>113498</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-03 09:29:34 -0700</bug_when>
    <thetext>Comment on attachment 113498
Patch

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

&gt; Source/WebCore/platform/PlatformScreen.h:59
&gt; +    double screenFramesPerSecond(Widget*);

perhaps &quot;RefreshRate&quot; would be a more canonical name for this property?  how about naming this method screenRefreshRate?  you even say &quot;refresh rate&quot; in the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495535</commentid>
    <comment_count>21</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 09:32:14 -0700</bug_when>
    <thetext>I figured &quot;framesPerSecond&quot; is more self-explanatory as it includes the units (and called it &quot;refresh rate&quot; in the comment by way of clarification).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495564</commentid>
    <comment_count>22</comment_count>
      <attachid>113510</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 09:58:19 -0700</bug_when>
    <thetext>Created attachment 113510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495565</commentid>
    <comment_count>23</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 09:58:53 -0700</bug_when>
    <thetext>Flipped it around to screenRefreshRate, units clarified in comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495566</commentid>
    <comment_count>24</comment_count>
      <attachid>113498</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-11-03 09:59:38 -0700</bug_when>
    <thetext>Comment on attachment 113498
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:48
&gt; +const double CCThreadProxy::kDefaultFramesPerSecond = 60.0;

Can we put the defaulting up in the creation of the settings object in WebViewImpl rather than inside the proxy?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:511
&gt; +    const double fps = (settings.framesPerSecond &gt; 0) ? settings.framesPerSecond : kDefaultFramesPerSecond;

/me wonders if webkit&apos;s implicit bool testing fits here... settings.fps ? xxx : yyy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495641</commentid>
    <comment_count>25</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 11:01:33 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 113498 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113498&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:48
&gt; &gt; +const double CCThreadProxy::kDefaultFramesPerSecond = 60.0;
&gt; 
&gt; Can we put the defaulting up in the creation of the settings object in WebViewImpl rather than inside the proxy?

Good call, I&apos;ll do that.

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:511
&gt; &gt; +    const double fps = (settings.framesPerSecond &gt; 0) ? settings.framesPerSecond : kDefaultFramesPerSecond;
&gt; 
&gt; /me wonders if webkit&apos;s implicit bool testing fits here... settings.fps ? xxx : yyy

I wondered that too but I don&apos;t know if it&apos;s totally kosher for doubles. I guess it probably is? And we can test it (although I&apos;m leaving CCThreadProxyTest for another patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495677</commentid>
    <comment_count>26</comment_count>
      <attachid>113532</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-03 11:45:55 -0700</bug_when>
    <thetext>Created attachment 113532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495700</commentid>
    <comment_count>27</comment_count>
      <attachid>113532</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-11-03 12:11:20 -0700</bug_when>
    <thetext>Comment on attachment 113532
Patch

/me likes. I&apos;ll leave it to Darin/JamesR to bless. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495717</commentid>
    <comment_count>28</comment_count>
      <attachid>113532</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 12:28:26 -0700</bug_when>
    <thetext>Comment on attachment 113532
Patch

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

Looks reasonable to me except for a few nits. Darin?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:236
&gt; +const double WebViewImpl::kDefaultCompositorRefreshRate = 60.0;

we don&apos;t use the k prefix for constants in WebKit

&gt; Source/WebKit/chromium/src/WebViewImpl.h:575
&gt; +    static const double kDefaultCompositorRefreshRate;

why is this class static instead of file static in the .cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496137</commentid>
    <comment_count>29</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-04 04:03:58 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 113532 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113532&amp;action=review
&gt; 
&gt; Looks reasonable to me except for a few nits. Darin?
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:236
&gt; &gt; +const double WebViewImpl::kDefaultCompositorRefreshRate = 60.0;
&gt; 
&gt; we don&apos;t use the k prefix for constants in WebKit
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.h:575
&gt; &gt; +    static const double kDefaultCompositorRefreshRate;
&gt; 
&gt; why is this class static instead of file static in the .cpp?

I had copied the style of surrounding code in WebCore/graphics/chromium/cc, but then moved the constant over to this class. I&apos;ll check the surrounding code again and make it consistent with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496150</commentid>
    <comment_count>30</comment_count>
      <attachid>113646</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-04 04:52:05 -0700</bug_when>
    <thetext>Created attachment 113646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497890</commentid>
    <comment_count>31</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-08 03:02:44 -0800</bug_when>
    <thetext>I&apos;ve addressed James&apos; comments. Darin, could you take another look at this, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503749</commentid>
    <comment_count>32</comment_count>
      <attachid>113646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 03:52:50 -0800</bug_when>
    <thetext>Comment on attachment 113646
Patch

Rejecting attachment 113646 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
p.rej
patching file Source/WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/chromium/public/WebScreenInfo.h
patching file Source/WebKit/chromium/src/PlatformSupport.cpp
Hunk #1 succeeded at 1056 (offset 7 lines).
patching file Source/WebKit/chromium/src/WebViewImpl.cpp
Hunk #2 succeeded at 2729 with fuzz 1 (offset 111 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Fisher&apos;, u&apos;--for...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10483689</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503750</commentid>
    <comment_count>33</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-16 03:54:43 -0800</bug_when>
    <thetext>Oops, commit bot didn&apos;t take the patch cleanly. I&apos;ll rebase and try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503757</commentid>
    <comment_count>34</comment_count>
      <attachid>115356</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-16 04:26:18 -0800</bug_when>
    <thetext>Created attachment 115356
Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503766</commentid>
    <comment_count>35</comment_count>
      <attachid>115356</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-11-16 04:42:10 -0800</bug_when>
    <thetext>Comment on attachment 115356
Rebased

Carrying forward fishd&apos;s r+ after rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503799</commentid>
    <comment_count>36</comment_count>
      <attachid>115356</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 06:05:12 -0800</bug_when>
    <thetext>Comment on attachment 115356
Rebased

Clearing flags on attachment: 115356

Committed r100438: &lt;http://trac.webkit.org/changeset/100438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503800</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 06:05:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504153</commentid>
    <comment_count>38</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 12:46:11 -0800</bug_when>
    <thetext>This broke the unit tests in debug mode, example:

[----------] 2 tests from CCLayerTreeHostTestShortlived1
[ RUN      ] CCLayerTreeHostTestShortlived1.runSingleThread
[       OK ] CCLayerTreeHostTestShortlived1.runSingleThread (0 ms)
[ RUN      ] CCLayerTreeHostTestShortlived1.runMultiThread
ASSERTION FAILED: m_layerTreeHostImpl-&gt;settings().refreshRate &gt; 0
Backtrace:

Reverting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504207</commentid>
    <comment_count>39</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 13:41:26 -0800</bug_when>
    <thetext>Reverted: http://trac.webkit.org/changeset/100495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504772</commentid>
    <comment_count>40</comment_count>
      <attachid>115568</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-17 05:25:48 -0800</bug_when>
    <thetext>Created attachment 115568
Fixed CCLayerTreeHostTest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505009</commentid>
    <comment_count>41</comment_count>
      <attachid>115568</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-17 11:26:44 -0800</bug_when>
    <thetext>Comment on attachment 115568
Fixed CCLayerTreeHostTest

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505315</commentid>
    <comment_count>42</comment_count>
      <attachid>115568</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 16:04:18 -0800</bug_when>
    <thetext>Comment on attachment 115568
Fixed CCLayerTreeHostTest

Rejecting attachment 115568 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
n/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/10510445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505317</commentid>
    <comment_count>43</comment_count>
      <attachid>115568</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-17 16:05:22 -0800</bug_when>
    <thetext>Comment on attachment 115568
Fixed CCLayerTreeHostTest

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

this is causing the commit to fail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505635</commentid>
    <comment_count>44</comment_count>
      <attachid>115568</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-18 02:47:28 -0800</bug_when>
    <thetext>Comment on attachment 115568
Fixed CCLayerTreeHostTest

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; this is causing the commit to fail

Dang, didn&apos;t spot that the clever ChangeLog script had added this. We&apos;re covered by CCLayerTreeHostTest as the assert attests. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505646</commentid>
    <comment_count>45</comment_count>
      <attachid>115777</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2011-11-18 03:16:27 -0800</bug_when>
    <thetext>Created attachment 115777
Fixed ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505649</commentid>
    <comment_count>46</comment_count>
      <attachid>115777</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-11-18 03:18:26 -0800</bug_when>
    <thetext>Comment on attachment 115777
Fixed ChangeLog

Carring forward jamesr&apos;s r+ after fix to ChangeLog description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505685</commentid>
    <comment_count>47</comment_count>
      <attachid>115777</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 04:43:59 -0800</bug_when>
    <thetext>Comment on attachment 115777
Fixed ChangeLog

Clearing flags on attachment: 115777

Committed r100751: &lt;http://trac.webkit.org/changeset/100751&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505686</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 04:44:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542906</commentid>
    <comment_count>49</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-25 23:56:39 -0800</bug_when>
    <thetext>Mostly rolled out:
http://trac.webkit.org/changeset/105961

See discussion here: http://code.google.com/p/chromium/issues/detail?id=111404

Apologies for the lack of notice.  Unfortunately this regression is too high impact to leave in the tree this close to a branch point.

I think that refresh rate plumbing should be asynchronous when we wire it up. It&apos;s possible that screenInfo is the wrong API to use, or that we need to change how it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544992</commentid>
    <comment_count>50</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-01-30 03:53:53 -0800</bug_when>
    <thetext>No worries. It&apos;s true that most platforms don&apos;t care about this and just use the default 60hz, so maybe we should go back to a setDisplayRate() method and have the platform code push in the right value, instead of having the compositor pull it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545206</commentid>
    <comment_count>51</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-30 10:48:29 -0800</bug_when>
    <thetext>I think we&apos;re moving to a push model for screenInfo in general, which might end up being the same thing. I think a push model for this makes sense, though, especially if we want to start supporting things like dragging a window between monitors that have different refresh rates or doing browser-side framerate throttling.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113059</attachid>
            <date>2011-10-31 09:31:10 -0700</date>
            <delta_ts>2011-10-31 09:56:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111031163108.patch</filename>
            <type>text/plain</type>
            <size>7694</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4ODU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMzEgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgV2ViQ29t
cG9zaXRvcjo6c2V0RGlzcGxheVJhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmVmYWN0b3JlZCBDQ1RocmVhZFByb3h5
IC8gQ0NMYXllclRyZWVIb3N0SW1wbCBhIGxpdHRsZSBmb3IgYmV0dGVyCisgICAgICAgIGRpc3Ry
aWJ1dGlvbiBvZiByb2xlcy4gQ0NTY3JvbGxDb250cm9sbGVyIGlzIG5vdyBpbXBsZW1lbnRlZCBi
eQorICAgICAgICBDQ1RocmVhZFByb3h5LCB3aGljaCBkZWxlZ2F0ZXMgdG8gQ0NMYXllclRyZWVI
b3N0SW1wbC4gc2V0RGlzcGxheVJhdGUKKyAgICAgICAgaXMgcGFydCBvZiB0aGUgc2FtZSBpbnRl
cmZhY2UsIGRlbGVnYXRlZCB0byBDQ1NjaGVkdWxlci4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlcjo6
c2V0RGlzcGxheVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2NoZWR1bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzY3JvbGxSb290TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aGF2
ZVdoZWVsRXZlbnRIYW5kbGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpz
ZXREaXNwbGF5UmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojppbml0aWFs
aXplTGF5ZXJSZW5kZXJlck9uSW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAyMDExLTEwLTMxICBBbmRyZWFzIEts
aW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1NSdWxlOiBEZXZpcnR1YWxpemUg
dHlwZSgpIGFuZCBpc0Zvb1J1bGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUyLDE1ICs1MiwxNCBAQCBwdWJsaWM6CiB9OwogCiAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsIG93
bnMgdGhlIENDTGF5ZXJJbXBsIHRyZWUgYXMgd2VsbCBhcyBhc3NvY2lhdGVkIHJlbmRlcmluZyBz
dGF0ZQotY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbCA6IHB1YmxpYyBDQ1Njcm9sbENvbnRyb2xs
ZXIgeworY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ0NMYXllclRyZWVIb3N0SW1wbCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlKGNvbnN0IENDU2V0dGluZ3MmLCBDQ0xheWVyVHJl
ZUhvc3RJbXBsQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+Q0NMYXllclRyZWVIb3N0SW1wbCgpOwog
Ci0gICAgLy8gQ0NTY3JvbGxDb250cm9sbGVyIGltcGxlbWVudGF0aW9uCi0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJvb3RMYXllcihjb25zdCBJbnRTaXplJik7Ci0gICAgdmlydHVhbCBib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoKTsKKyAgICB2b2lkIHNjcm9sbFJvb3RMYXllcihjb25zdCBJ
bnRTaXplJik7CisgICAgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCk7CiAKICAgICAvLyBW
aXJ0dWFsIGZvciB0ZXN0aW5nCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0KCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsMTEgQEAgQ0NTY2hlZHVsZXI6OkNDU2NoZWR1bGVyKENDU2No
ZWR1bGVyQ2xpZQogICAgIEFTU0VSVChtX2NsaWVudCk7CiB9CiAKK3ZvaWQgQ0NTY2hlZHVsZXI6
OnNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpCit7CisgICAgLy8gVE9ETzog
dXBkYXRlIG91ciBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgKHdoZW4gd2UgaGF2ZSBvbmUpLgorfQor
CiB2b2lkIENDU2NoZWR1bGVyOjpyZXF1ZXN0QW5pbWF0ZSgpCiB7CiAgICAgLy8gU3R1YiB0aHJv
dWdoIHRvIHJlcXVlc3RDb21taXQgZm9yIG5vdy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAko
cmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1NjaGVkdWxlcihjbGllbnQpKTsK
ICAgICB9CiAKKyAgICB2b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQp
OworCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0ZSgpOwogICAgIHZvaWQgcmVxdWVzdENvbW1pdCgp
OwogICAgIHZvaWQgcmVxdWVzdFJlZHJhdygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxD
b250cm9sbGVyLmgJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4NCw2ICsyODQsMjQgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhd09uSW1w
bAogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5yZXF1ZXN0UmVkcmF3KCk7CiB9CiAKK3Zv
aWQgQ0NUaHJlYWRQcm94eTo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhKQoreworICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CisgICAgbV9sYXllclRyZWVIb3N0
SW1wbC0+c2Nyb2xsUm9vdExheWVyKHNjcm9sbERlbHRhKTsKK30KKworYm9vbCBDQ1RocmVhZFBy
b3h5OjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFk
KCkpOworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3RJbXBsLT5oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKCk7Cit9CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0RGlzcGxheVJhdGUoZG91YmxlIGZy
YW1lc1BlclNlY29uZCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOworICAgIHJldHVy
biBtX3NjaGVkdWxlck9uSW1wbFRocmVhZC0+c2V0RGlzcGxheVJhdGUoZnJhbWVzUGVyU2Vjb25k
KTsKK30KKwogdm9pZCBDQ1RocmVhZFByb3h5OjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKQEAgLTQ3Nyw3ICs0OTUsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVMYXllclJlbmRlCiAgICAgaWYgKCppbml0aWFsaXplU3VjY2VlZGVkKQogICAgICAgICAq
Y2FwYWJpbGl0aWVzID0gbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcygpOwogCi0gICAgbV9pbnB1dEhhbmRsZXJPbkltcGxUaHJlYWQgPSBDQ0lucHV0SGFuZGxl
cjo6Y3JlYXRlKG1fbGF5ZXJUcmVlSG9zdEltcGwuZ2V0KCkpOworICAgIG1faW5wdXRIYW5kbGVy
T25JbXBsVGhyZWFkID0gQ0NJbnB1dEhhbmRsZXI6OmNyZWF0ZSh0aGlzKTsKICAgICAqY29tcG9z
aXRvcklkZW50aWZpZXIgPSBtX2lucHV0SGFuZGxlck9uSW1wbFRocmVhZC0+aWRlbnRpZmllcigp
OwogCiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5oCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBDQ1Njb3BlZE1haW5UaHJlYWRQcm94eTsKIGNsYXNzIENDVGhyZWFkOwogY2xh
c3MgQ0NUaHJlYWRQcm94eVNjaGVkdWxlckNsaWVudDsKIAotY2xhc3MgQ0NUaHJlYWRQcm94eSA6
IHB1YmxpYyBDQ1Byb3h5LCBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50IHsKK2NsYXNzIENDVGhy
ZWFkUHJveHkgOiBwdWJsaWMgQ0NQcm94eSwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCwgQ0NT
Y3JvbGxDb250cm9sbGVyIHsKICAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQcm94eVNjaGVkdWxl
ckNsaWVudDsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoQ0NUaHJlYWQqKTsK
QEAgLTcwLDYgKzcwLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRy
YXdPbkltcGxUaHJlYWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNDb21taXRPbkltcGxU
aHJlYWQoKTsKIAorICAgIC8vIENDU2Nyb2xsQ29udHJvbGxlciBpbXBsZW1lbnRhdGlvbgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxSb290TGF5ZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZpcnR1
YWwgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldERp
c3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpOworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IENDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5ODg1OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMzEgIElh
aW4gTWVycmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQg
V2ViQ29tcG9zaXRvcjo6c2V0RGlzcGxheVJhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRvci5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzZXREaXNwbGF5UmF0ZSk6CisKIDIwMTEtMTAtMzEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRl
cm5zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0
b3IuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChXZWJDb21wb3NpdG9yQ2xpZW50KikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNv
bmQpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvcigpIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113062</attachid>
            <date>2011-10-31 09:56:07 -0700</date>
            <delta_ts>2011-10-31 11:02:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111031165605.patch</filename>
            <type>text/plain</type>
            <size>8912</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4ODU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMzEgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgV2ViQ29t
cG9zaXRvcjo6c2V0RGlzcGxheVJhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmVmYWN0b3JlZCBDQ1RocmVhZFByb3h5
IC8gQ0NMYXllclRyZWVIb3N0SW1wbCBhIGxpdHRsZSBmb3IgYmV0dGVyCisgICAgICAgIGRpc3Ry
aWJ1dGlvbiBvZiByb2xlcy4gQ0NTY3JvbGxDb250cm9sbGVyIGlzIG5vdyBpbXBsZW1lbnRlZCBi
eQorICAgICAgICBDQ1RocmVhZFByb3h5LCB3aGljaCBkZWxlZ2F0ZXMgdG8gQ0NMYXllclRyZWVI
b3N0SW1wbC4gc2V0RGlzcGxheVJhdGUKKyAgICAgICAgaXMgcGFydCBvZiB0aGUgc2FtZSBpbnRl
cmZhY2UsIGRlbGVnYXRlZCB0byBDQ1NjaGVkdWxlci4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NjaGVkdWxlcjo6
c2V0RGlzcGxheVJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2NoZWR1bGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzY3JvbGxSb290TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aGF2
ZVdoZWVsRXZlbnRIYW5kbGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpz
ZXREaXNwbGF5UmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojppbml0aWFs
aXplTGF5ZXJSZW5kZXJlck9uSW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAyMDExLTEwLTMxICBBbmRyZWFzIEts
aW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1NSdWxlOiBEZXZpcnR1YWxpemUg
dHlwZSgpIGFuZCBpc0Zvb1J1bGUoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUyLDE1ICs1MiwxNCBAQCBwdWJsaWM6CiB9OwogCiAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsIG93
bnMgdGhlIENDTGF5ZXJJbXBsIHRyZWUgYXMgd2VsbCBhcyBhc3NvY2lhdGVkIHJlbmRlcmluZyBz
dGF0ZQotY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbCA6IHB1YmxpYyBDQ1Njcm9sbENvbnRyb2xs
ZXIgeworY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ0NMYXllclRyZWVIb3N0SW1wbCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
Q0NMYXllclRyZWVIb3N0SW1wbD4gY3JlYXRlKGNvbnN0IENDU2V0dGluZ3MmLCBDQ0xheWVyVHJl
ZUhvc3RJbXBsQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+Q0NMYXllclRyZWVIb3N0SW1wbCgpOwog
Ci0gICAgLy8gQ0NTY3JvbGxDb250cm9sbGVyIGltcGxlbWVudGF0aW9uCi0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJvb3RMYXllcihjb25zdCBJbnRTaXplJik7Ci0gICAgdmlydHVhbCBib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoKTsKKyAgICB2b2lkIHNjcm9sbFJvb3RMYXllcihjb25zdCBJ
bnRTaXplJik7CisgICAgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCk7CiAKICAgICAvLyBW
aXJ0dWFsIGZvciB0ZXN0aW5nCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0KCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NjaGVkdWxl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsMTEgQEAgQ0NTY2hlZHVsZXI6OkNDU2NoZWR1bGVyKENDU2No
ZWR1bGVyQ2xpZQogICAgIEFTU0VSVChtX2NsaWVudCk7CiB9CiAKK3ZvaWQgQ0NTY2hlZHVsZXI6
OnNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpCit7CisgICAgLy8gVE9ETzog
dXBkYXRlIG91ciBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIgKHdoZW4gd2UgaGF2ZSBvbmUpLgorfQor
CiB2b2lkIENDU2NoZWR1bGVyOjpyZXF1ZXN0QW5pbWF0ZSgpCiB7CiAgICAgLy8gU3R1YiB0aHJv
dWdoIHRvIHJlcXVlc3RDb21taXQgZm9yIG5vdy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAko
cmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NjaGVkdWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1NjaGVkdWxlcihjbGllbnQpKTsK
ICAgICB9CiAKKyAgICB2b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQp
OworCiAgICAgdm9pZCByZXF1ZXN0QW5pbWF0ZSgpOwogICAgIHZvaWQgcmVxdWVzdENvbW1pdCgp
OwogICAgIHZvaWQgcmVxdWVzdFJlZHJhdygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxD
b250cm9sbGVyLmgJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4NCw2ICsyODQsMjQgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpzZXROZWVkc1JlZHJhd09uSW1w
bAogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5yZXF1ZXN0UmVkcmF3KCk7CiB9CiAKK3Zv
aWQgQ0NUaHJlYWRQcm94eTo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhKQoreworICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CisgICAgbV9sYXllclRyZWVIb3N0
SW1wbC0+c2Nyb2xsUm9vdExheWVyKHNjcm9sbERlbHRhKTsKK30KKworYm9vbCBDQ1RocmVhZFBy
b3h5OjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFk
KCkpOworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3RJbXBsLT5oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKCk7Cit9CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0RGlzcGxheVJhdGUoZG91YmxlIGZy
YW1lc1BlclNlY29uZCkKK3sKKyAgICBBU1NFUlQoaXNJbXBsVGhyZWFkKCkpOworICAgIHJldHVy
biBtX3NjaGVkdWxlck9uSW1wbFRocmVhZC0+c2V0RGlzcGxheVJhdGUoZnJhbWVzUGVyU2Vjb25k
KTsKK30KKwogdm9pZCBDQ1RocmVhZFByb3h5OjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKQEAgLTQ3Nyw3ICs0OTUsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVMYXllclJlbmRlCiAgICAgaWYgKCppbml0aWFsaXplU3VjY2VlZGVkKQogICAgICAgICAq
Y2FwYWJpbGl0aWVzID0gbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlckNhcGFiaWxp
dGllcygpOwogCi0gICAgbV9pbnB1dEhhbmRsZXJPbkltcGxUaHJlYWQgPSBDQ0lucHV0SGFuZGxl
cjo6Y3JlYXRlKG1fbGF5ZXJUcmVlSG9zdEltcGwuZ2V0KCkpOworICAgIG1faW5wdXRIYW5kbGVy
T25JbXBsVGhyZWFkID0gQ0NJbnB1dEhhbmRsZXI6OmNyZWF0ZSh0aGlzKTsKICAgICAqY29tcG9z
aXRvcklkZW50aWZpZXIgPSBtX2lucHV0SGFuZGxlck9uSW1wbFRocmVhZC0+aWRlbnRpZmllcigp
OwogCiAgICAgY29tcGxldGlvbi0+c2lnbmFsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5oCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBDQ1Njb3BlZE1haW5UaHJlYWRQcm94eTsKIGNsYXNzIENDVGhyZWFkOwogY2xh
c3MgQ0NUaHJlYWRQcm94eVNjaGVkdWxlckNsaWVudDsKIAotY2xhc3MgQ0NUaHJlYWRQcm94eSA6
IHB1YmxpYyBDQ1Byb3h5LCBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50IHsKK2NsYXNzIENDVGhy
ZWFkUHJveHkgOiBwdWJsaWMgQ0NQcm94eSwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCwgQ0NT
Y3JvbGxDb250cm9sbGVyIHsKICAgICBmcmllbmQgY2xhc3MgQ0NUaHJlYWRQcm94eVNjaGVkdWxl
ckNsaWVudDsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRUaHJlYWQoQ0NUaHJlYWQqKTsK
QEAgLTcwLDYgKzcwLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRy
YXdPbkltcGxUaHJlYWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNDb21taXRPbkltcGxU
aHJlYWQoKTsKIAorICAgIC8vIENDU2Nyb2xsQ29udHJvbGxlciBpbXBsZW1lbnRhdGlvbgorICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxSb290TGF5ZXIoY29uc3QgSW50U2l6ZSYpOworICAgIHZpcnR1
YWwgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldERp
c3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpOworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IENDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5ODg1OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMzEgIElh
aW4gTWVycmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQg
V2ViQ29tcG9zaXRvcjo6c2V0RGlzcGxheVJhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRvci5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzZXREaXNwbGF5UmF0ZSk6CisKIDIwMTEtMTAtMzEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRl
cm5zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0
b3IuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChXZWJDb21wb3NpdG9yQ2xpZW50KikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNv
bmQpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3IoKSB7IH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1w
bC5jcHAJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29tcG9zaXRvckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYsNiArMTI2LDEyIEBAIHZv
aWQgV2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQKICAgICBtX2NsaWVudC0+ZGlk
Tm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8qIHNlbmRUb1dpZGdldCAqLyk7CiB9CiAKK3ZvaWQg
V2ViQ29tcG9zaXRvckltcGw6OnNldERpc3BsYXlSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQp
Cit7CisgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKKyAgICBtX3Njcm9sbENv
bnRyb2xsZXItPnNldERpc3BsYXlSYXRlKGZyYW1lc1BlclNlY29uZCk7Cit9CisKIGludCBXZWJD
b21wb3NpdG9ySW1wbDo6aWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKENDUHJveHk6
OmlzSW1wbFRocmVhZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNv
bXBvc2l0b3JJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViQ29tcG9zaXRvckltcGwuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2
MCw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJDb21wb3NpdG9yIGltcGxlbWVudGF0aW9uCiAgICAg
dmlydHVhbCB2b2lkIHNldENsaWVudChXZWJDb21wb3NpdG9yQ2xpZW50Kik7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYpOworICAgIHZpcnR1
YWwgdm9pZCBzZXREaXNwbGF5UmF0ZShkb3VibGUgZnJhbWVzUGVyU2Vjb25kKTsKIAogICAgIC8v
IFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyIGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCBpbnQg
aWRlbnRpZmllcigpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113068</attachid>
            <date>2011-10-31 11:03:04 -0700</date>
            <delta_ts>2011-11-03 08:49:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111031180302.patch</filename>
            <type>text/plain</type>
            <size>10198</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4ODY2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMzEgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgV2ViV2lk
Z2V0OjpzZXREaXNwbGF5UmF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnNldFJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NT
Y2hlZHVsZXI6OnNldFJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NjaGVkdWxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NT
aW5nbGVUaHJlYWRQcm94eTo6c2V0UmVmcmVzaFJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDVGhyZWFkUHJveHk6OnNldFJlZnJlc2hSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDVGhyZWFkUHJveHk6OnNldFJlZnJlc2hSYXRlT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMTAt
MzEgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIENTU1J1bGU6
IERldmlydHVhbGl6ZSBpbnNlcnRlZEludG9QYXJlbnQoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw2ICsxNjUsMTEgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRl
R3JhcGhpYwogICAgIG1fY2xpZW50LT5kaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChzdWNjZXNz
KTsKIH0KIAordm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFJlZnJlc2hSYXRlKGRvdWJsZSBmcmFt
ZXNQZXJTZWNvbmQpCit7CisgICAgbV9wcm94eS0+c2V0UmVmcmVzaFJhdGUoZnJhbWVzUGVyU2Vj
b25kKTsKK30KKwogLy8gVGVtcG9yYXJ5IGhhY2sgdW50aWwgV2ViVmlld0ltcGwgY29udGV4dCBj
cmVhdGlvbiBnZXRzIHNpbXBsaWZpZWQKIEdyYXBoaWNzQ29udGV4dDNEKiBDQ0xheWVyVHJlZUhv
c3Q6OmNvbnRleHQoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlz
aW9uIDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw2ICsxMTYsNyBAQCBw
dWJsaWM6CiAgICAgLy8gQ0NMYXllclRyZWVIb3N0IGludGVyZmFjZSB0byBXZWJWaWV3LgogICAg
IGJvb2wgYW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9hbmltYXRpbmc7IH0KICAgICB2b2lk
IHNldEFuaW1hdGluZyhib29sIGFuaW1hdGluZykgeyBtX2FuaW1hdGluZyA9IGFuaW1hdGluZzsg
fSAvLyBDYW4gYmUgcmVtb3ZlZCB3aGVuIG5vbi10aHJlYWRlZCBzY2hlZHVsaW5nIG1vdmVzIGlu
c2lkZS4KKyAgICB2b2lkIHNldFJlZnJlc2hSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpOwog
CiAgICAgQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsg
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1Byb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NQcm94eS5oCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOyAv
LyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdXNpbmcgdGhlIHByb3h5LgogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgPSAwOyAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgZGVsZXRpbmcgdGhlIHByb3h5
LgogCisgICAgdmlydHVhbCB2b2lkIHNldFJlZnJlc2hSYXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNv
bmQpID0gMDsKKwogICAgIC8vIERlYnVnIGhvb2tzCiAjaWZuZGVmIE5ERUJVRwogICAgIHN0YXRp
YyBib29sIGlzTWFpblRocmVhZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmNwcAkocmV2
aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDExIEBAIEND
U2NoZWR1bGVyOjpDQ1NjaGVkdWxlcihDQ1NjaGVkdWxlckNsaWUKICAgICBBU1NFUlQobV9jbGll
bnQpOwogfQogCit2b2lkIENDU2NoZWR1bGVyOjpzZXRSZWZyZXNoUmF0ZShkb3VibGUgZnJhbWVz
UGVyU2Vjb25kKQoreworICAgIC8vIFRPRE86IHVwZGF0ZSBvdXIgQ0NGcmFtZVJhdGVDb250cm9s
bGVyICh3aGVuIHdlIGhhdmUgb25lKS4KK30KKwogdm9pZCBDQ1NjaGVkdWxlcjo6cmVxdWVzdEFu
aW1hdGUoKQogewogICAgIC8vIFN0dWIgdGhyb3VnaCB0byByZXF1ZXN0Q29tbWl0IGZvciBub3cu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Nj
aGVkdWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2NoZWR1bGVyLmgJKHJldmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY2hlZHVsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgQ0NTY2hlZHVsZXIoY2xpZW50KSk7CiAgICAgfQogCisgICAgdm9pZCBzZXRSZWZyZXNo
UmF0ZShkb3VibGUgZnJhbWVzUGVyU2Vjb25kKTsKICAgICB2b2lkIHJlcXVlc3RBbmltYXRlKCk7
CiAgICAgdm9pZCByZXF1ZXN0Q29tbWl0KCk7CiAgICAgdm9pZCByZXF1ZXN0UmVkcmF3KCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAkocmV2aXNpb24gOTg4
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Np
bmdsZVRocmVhZFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiwxMSBAQCB2
b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnN0b3AoKQogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IDA7
CiB9CiAKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0UmVmcmVzaFJhdGUoZG91YmxlIGZy
YW1lc1BlclNlY29uZCkKK3sKKyAgICAvLyBUT0RPOiB1cGRhdGUgb3VyIENDU2NoZWR1bGVyICh3
aGVuIHdlIGhhdmUgb25lKS4KK30KKwogLy8gQ2FsbGVkIGJ5IHRoZSBsZWdhY3kgc2NoZWR1bGlu
ZyBwYXRoIChlLmcuIHdoZXJlIHJlbmRlcl93aWRnZXQgZG9lcyB0aGUgc2NoZWR1bGluZykKIHZv
aWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlSW1tZWRpYXRlbHkoKQogewpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJl
YWRQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAkocmV2aXNpb24gOTg4NDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlZnJlc2hSYXRl
KGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpOwogCiAgICAgLy8gQ0NMYXllclRyZWVIb3N0SW1wbENs
aWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBvblN3YXBCdWZmZXJzQ29tcGxl
dGVPbkltcGxUaHJlYWQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmNwcAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzE0LDYgKzMxNCwyMCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnN0b3AoKQogICAg
IG1fc3RhcnRlZCA9IGZhbHNlOwogfQogCit2b2lkIENDVGhyZWFkUHJveHk6OnNldFJlZnJlc2hS
YXRlKGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBUUkFDRV9FVkVOVCgiQ0NUaHJlYWRQcm94eTo6c2V0UmVmcmVzaFJhdGUiLCB0aGlz
LCAwKTsKKyAgICBzX2NjVGhyZWFkLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywg
JkNDVGhyZWFkUHJveHk6OnNldFJlZnJlc2hSYXRlT25JbXBsVGhyZWFkLCBmcmFtZXNQZXJTZWNv
bmQpKTsKK30KKwordm9pZCBDQ1RocmVhZFByb3h5OjpzZXRSZWZyZXNoUmF0ZU9uSW1wbFRocmVh
ZChkb3VibGUgZnJhbWVzUGVyU2Vjb25kKQoreworICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7
CisgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OnNldFJlZnJlc2hSYXRlT25JbXBsVGhy
ZWFkIiwgdGhpcywgMCk7CisgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNldFJlZnJlc2hS
YXRlKGZyYW1lc1BlclNlY29uZCk7Cit9CisKIHZvaWQgQ0NUaHJlYWRQcm94eTo6ZmluaXNoQWxs
UmVuZGVyaW5nT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uKQogewog
ICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkltcGxU
aHJlYWQiLCB0aGlzLCAwKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgJKHJldmlzaW9u
IDk4ODQzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZWZy
ZXNoUmF0ZShkb3VibGUgZnJhbWVzUGVyU2Vjb25kKTsKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9z
dEltcGxDbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVy
c0NvbXBsZXRlT25JbXBsVGhyZWFkKCk7CkBAIC05MCw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXROZWVkc0FuaW1hdGVPbkltcGxUaHJlYWQoKTsKICAgICB2b2lkIHNldE5lZWRzQ29t
bWl0VGhlblJlZHJhd09uSW1wbFRocmVhZCgpOwogICAgIHZvaWQgbGF5ZXJUcmVlSG9zdENsb3Nl
ZE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOworICAgIHZvaWQgc2V0UmVmcmVzaFJh
dGVPbkltcGxUaHJlYWQoZG91YmxlIGZyYW1lc1BlclNlY29uZCk7CiAKICAgICAvLyBBY2Nlc3Nl
ZCBvbiBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wgbV9hbmltYXRpb25SZXF1ZXN0ZWQ7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTg4NjYpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTEwLTMxICBJYWluIE1lcnJpY2sgIDxodXNreUBnb29nbGUuY29tPgorCisgICAgICAg
IFtjaHJvbWl1bV0gQWRkIFdlYldpZGdldDo6c2V0RGlzcGxheVJhdGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6c2V0UmVmcmVzaFJhdGUpOgorICAgICAgICAqIHNy
Yy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRSZWZy
ZXNoUmF0ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMTAtMzEgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRl
cm5zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHJl
dmlzaW9uIDk4ODQzKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsMTAgQEAgcHVibGljOgogICAgIC8vIHRv
IHJlbmRlciBpdHMgY29udGVudHMuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBDYWxsZWQg
dG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgb2YgdGhlIGlkZWFsIHJlZnJlc2ggcmF0ZSBmb3Igc21v
b3RoCisgICAgLy8gYW5pbWF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBzZXRSZWZyZXNoUmF0ZShk
b3VibGUgZnJhbWVzUGVyU2Vjb25kKSB7IH0KKwogcHJvdGVjdGVkOgogICAgIH5XZWJXaWRnZXQo
KSB7IH0KIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCShyZXZpc2lvbiA5ODg0MykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxOCw2ICsxNjE4LDE0IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGkKICNlbmRpZgogfQogCit2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRSZWZyZXNoUmF0ZShkb3VibGUgZnJhbWVzUGVyU2Vjb25kKQoreworI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJlZnJlc2hSYXRlKGZyYW1lc1BlclNlY29uZCk7Cisj
ZW5kaWYKK30KKwogLy8gV2ViVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJTZXR0aW5ncyogV2ViVmll
d0ltcGw6OnNldHRpbmdzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaAkocmV2aXNpb24gOTg4NDMpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBjYXJldE9yU2VsZWN0aW9uUmFuZ2Uoc2l6ZV90KiBsb2NhdGlvbiwg
c2l6ZV90KiBsZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQWN0aXZlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFJlZnJlc2hSYXRl
KGRvdWJsZSBmcmFtZXNQZXJTZWNvbmQpOwogCiAgICAgLy8gV2ViVmlldyBtZXRob2RzOgogICAg
IHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTWFpbkZyYW1lKFdlYkZyYW1lQ2xpZW50Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113498</attachid>
            <date>2011-11-03 08:49:52 -0700</date>
            <delta_ts>2011-11-03 09:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111103154950.patch</filename>
            <type>text/plain</type>
            <size>9013</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MTk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDMgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIHNjcmVl
biByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5GcmFtZXNQZXJTZWNvbmQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NTZXR0
aW5nczo6Q0NTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojpp
bml0aWFsaXplSW1wbE9uSW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAyMDExLTExLTAzICBGYWR5IFNhbXVlbCAg
PGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92aW5nIGxpbmUgaW4gY29tcHV0
ZVZpZXdwb3J0QXR0cmlidXRlcyB0aGF0IGVuZm9yY2VzIGEgbWluaW11bSBzY2FsZSBmYWN0b3Ig
dG8gbmV2ZXIgYWxsb3cgem9vbWluZyBvdXQgbW9yZSB0aGFuIHZpZXdwb3J0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgJKHJldmlzaW9uIDk5MTY1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAkod29ya2luZyBjb3B5KQpA
QCAtNTQsNiArNTQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEZsb2F0UmVjdCBzY3Jl
ZW5SZWN0KFdpZGdldCopOwogICAgIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdl
dCopOwogCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8gUmV0dXJucyAwIGlmIHRoZSBy
ZWZyZXNoIHJhdGUgaXMgdW5rbm93biwgb3Igbm90IGFwcGxpY2FibGUuCisgICAgZG91YmxlIHNj
cmVlbkZyYW1lc1BlclNlY29uZChXaWRnZXQqKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cgKik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
U2NyZWVuQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5OTE2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MSw0ICs2MSw5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCog
d2kKICAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFpbGFibGVSZWN0KHdpZGdl
dCk7CiB9CiAKK2RvdWJsZSBzY3JlZW5GcmFtZXNQZXJTZWNvbmQoV2lkZ2V0KiB3aWRnZXQpCit7
CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuRnJhbWVzUGVyU2Vjb25kKHdpZGdl
dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lvbiA5OTE2
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNiArMjM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBi
b29sIHNjcmVlbklzTW9ub2Nocm9tZShXaWRnZXQqKTsKICAgICBzdGF0aWMgSW50UmVjdCBzY3Jl
ZW5SZWN0KFdpZGdldCopOwogICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3Qo
V2lkZ2V0Kik7CisgICAgc3RhdGljIGRvdWJsZSBzY3JlZW5GcmFtZXNQZXJTZWNvbmQoV2lkZ2V0
Kik7CiAKICAgICAvLyBTaGFyZWRUaW1lcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFRpbWVy
RmlyZWRGdW5jdGlvbih2b2lkICgqZnVuYykoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzIs
MTMgKzcyLDE1IEBAIHN0cnVjdCBDQ1NldHRpbmdzIHsKICAgICAgICAgICAgICwgY29tcG9zaXRl
T2Zmc2NyZWVuKGZhbHNlKQogICAgICAgICAgICAgLCBlbmFibGVDb21wb3NpdG9yVGhyZWFkKGZh
bHNlKQogICAgICAgICAgICAgLCBzaG93RlBTQ291bnRlcihmYWxzZSkKLSAgICAgICAgICAgICwg
c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGZhbHNlKSB7IH0KKyAgICAgICAgICAgICwgc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlKGZhbHNlKQorICAgICAgICAgICAgLCBmcmFtZXNQZXJTZWNvbmQoMCkgeyB9
CiAKICAgICBib29sIGFjY2VsZXJhdGVQYWludGluZzsKICAgICBib29sIGNvbXBvc2l0ZU9mZnNj
cmVlbjsKICAgICBib29sIGVuYWJsZUNvbXBvc2l0b3JUaHJlYWQ7CiAgICAgYm9vbCBzaG93RlBT
Q291bnRlcjsKICAgICBib29sIHNob3dQbGF0Zm9ybUxheWVyVHJlZTsKKyAgICBkb3VibGUgZnJh
bWVzUGVyU2Vjb25kOwogfTsKIAogLy8gUHJvdmlkZXMgaW5mb3JtYXRpb24gb24gYW4gSW1wbCdz
IHJlbmRlcmluZyBjYXBhYmlsaXRpZXMgYmFjayB0byB0aGUgQ0NMYXllclRyZWVIb3N0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0IGRvdWJsZSBDQ1RocmVhZFByb3h5OjprRGVmYXVs
dEZyYW1lc1BlclNlY29uZCA9IDYwLjA7CiBDQ1RocmVhZCogQ0NUaHJlYWRQcm94eTo6c19jY1Ro
cmVhZCA9IDA7CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhyZWFkKiBjY1Ro
cmVhZCkKQEAgLTUwNiw3ICs1MDcsOSBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBs
T25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKICAg
ICBtX2xheWVyVHJlZUhvc3RJbXBsID0gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVMYXllclRyZWVI
b3N0SW1wbCh0aGlzKTsKLSAgICBjb25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1z
ID0gMTAwMC4wIC8gNjAuMDsKKyAgICBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncyA9IG1fbGF5
ZXJUcmVlSG9zdEltcGwtPnNldHRpbmdzKCk7CisgICAgY29uc3QgZG91YmxlIGZwcyA9IChzZXR0
aW5ncy5mcmFtZXNQZXJTZWNvbmQgPiAwKSA/IHNldHRpbmdzLmZyYW1lc1BlclNlY29uZCA6IGtE
ZWZhdWx0RnJhbWVzUGVyU2Vjb25kOworICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVzaElu
dGVydmFsTXMgPSAxMDAwLjAgLyBmcHM7CiAgICAgT3duUHRyPENDRnJhbWVSYXRlQ29udHJvbGxl
cj4gZnJhbWVSYXRlQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRyb2xs
ZXIoQ0NEZWxheUJhc2VkVGltZVNvdXJjZTo6Y3JlYXRlKGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWxN
cywgc19jY1RocmVhZCkpKTsKICAgICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZCA9IENDU2NoZWR1
bGVyOjpjcmVhdGUodGhpcywgZnJhbWVSYXRlQ29udHJvbGxlci5yZWxlYXNlKCkpOwogICAgIG1f
c2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXRWaXNpYmxlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnZp
c2libGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCShyZXZpc2lvbiA5OTE2NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gU2V0IHdoZW4gdGhlIG5leHQgZHJhdyBzaG91bGQgcG9zdCBkaWRDb21taXRBbmREcmF3RnJh
bWUgdG8gdGhlIG1haW4gdGhyZWFkLgogICAgIGJvb2wgbV9uZXh0RnJhbWVJc05ld2x5Q29tbWl0
dGVkRnJhbWVPbkltcGxUaHJlYWQ7CiAKKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIGtEZWZhdWx0
RnJhbWVzUGVyU2Vjb25kOwogICAgIHN0YXRpYyBDQ1RocmVhZCogc19jY1RocmVhZDsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5OTE5NykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMTEtMDMgIElhaW4gTWVycmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgW2Nocm9taXVtXSBQYXNzIHNjcmVlbiByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJTY3JlZW5JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm86OldlYlNjcmVl
bkluZm8pOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5GcmFtZXNQZXJTZWNvbmQpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJ
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorCiAyMDExLTEwLTI4ICBIYW5zIFdlbm5i
b3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZWN5Y2xlIGN1
cnNvciBvYmplY3RzIHdoZW4gY2FsbGluZyBjb250aW51ZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCShyZXZpc2lvbiA5OTE2NSkKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAkod29ya2luZyBj
b3B5KQpAQCAtNjMsMTAgKzYzLDE0IEBAIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsKICAgICAvLyAg
IHNvbWUgb2YgdGhlIHJlY3RhbmdsZSdzIGNvb3JkaW5hdGVzIG1heSBiZSBuZWdhdGl2ZSB2YWx1
ZXMiLgogICAgIFdlYlJlY3QgYXZhaWxhYmxlUmVjdDsKIAorICAgIC8vIFJlZnJlc2ggcmF0ZSBv
ZiB0aGUgc2NyZWVuLiAwIGlmIHRoZSByYXRlIGlzIHVua25vd24gb3Igbm90IGFwcGxpY2FibGUu
CisgICAgZG91YmxlIGZyYW1lc1BlclNlY29uZDsKKwogICAgIFdlYlNjcmVlbkluZm8oKQogICAg
ICAgICA6IGRlcHRoKDApCiAgICAgICAgICwgZGVwdGhQZXJDb21wb25lbnQoMCkKLSAgICAgICAg
LCBpc01vbm9jaHJvbWUoZmFsc2UpIHsgfQorICAgICAgICAsIGlzTW9ub2Nocm9tZShmYWxzZSkK
KyAgICAgICAgLCBmcmFtZXNQZXJTZWNvbmQoMCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBw
b3J0LmNwcAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
bGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgwLDYgKzEwODAsMTQgQEAg
SW50UmVjdCBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlbkF2YWlsYWJsZQogICAgIHJldHVybiBjbGll
bnQtPnNjcmVlbkluZm8oKS5hdmFpbGFibGVSZWN0OwogfQogCitkb3VibGUgUGxhdGZvcm1TdXBw
b3J0OjpzY3JlZW5GcmFtZXNQZXJTZWNvbmQoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lk
Z2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICgh
Y2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZv
KCkuZnJhbWVzUGVyU2Vjb25kOworfQorCiBib29sIFBsYXRmb3JtU3VwcG9ydDo6cG9wdXBzQWxs
b3dlZChOUFAgbnBwKQogewogICAgIC8vIEZJWE1FOiBHaXZlIHRoZSBlbWJlZGRlciBhIHdheSB0
byBjb250cm9sIHRoaXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCShyZXZpc2lvbiA5OTE2NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIK
QEAgLTI2MjMsNiArMjYyNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRD
b21wb3MKICAgICAgICAgY2NTZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkID0gc2V0dGlu
Z3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9yKCk7CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd0ZQ
U0NvdW50ZXIgPSBzZXR0aW5ncygpLT5zaG93RlBTQ291bnRlcigpOwogICAgICAgICBjY1NldHRp
bmdzLnNob3dQbGF0Zm9ybUxheWVyVHJlZSA9IHNldHRpbmdzKCktPnNob3dQbGF0Zm9ybUxheWVy
VHJlZSgpOworICAgICAgICBjY1NldHRpbmdzLmZyYW1lc1BlclNlY29uZCA9IHNjcmVlbkZyYW1l
c1BlclNlY29uZChwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOwogCiAgICAgICAgIG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0ID0gTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpjcmVhdGUo
V2ViVmlld0ltcGxDb250ZW50UGFpbnRlcjo6Y3JlYXRlKHRoaXMpKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywgbV9ub25Db21wb3NpdGVk
Q29udGVudEhvc3QtPnRvcExldmVsUm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgY2NTZXR0
aW5ncyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113510</attachid>
            <date>2011-11-03 09:58:19 -0700</date>
            <delta_ts>2011-11-03 11:45:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111103165818.patch</filename>
            <type>text/plain</type>
            <size>9157</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MTk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDMgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIHNjcmVl
biByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5SZWZyZXNoUmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1NldHRpbmdz
OjpDQ1NldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVJbXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMTEtMDMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZpbmcgbGluZSBpbiBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzIHRoYXQgZW5mb3JjZXMgYSBtaW5pbXVtIHNjYWxlIGZhY3RvciB0byBu
ZXZlciBhbGxvdyB6b29taW5nIG91dCBtb3JlIHRoYW4gdmlld3BvcnQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw2ICs1NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgRmxvYXRSZWN0IHNjcmVlblJl
Y3QoV2lkZ2V0Kik7CiAgICAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0Kik7
CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAvLyBNZWFzdXJlZCBpbiBmcmFtZXMgcGVy
IHNlY29uZC4gMCBpZiB0aGUgcmVmcmVzaCByYXRlIGlzIHVua25vd24sIG9yIG5vdCBhcHBsaWNh
YmxlLgorICAgIGRvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqKTsKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cg
Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2Ny
ZWVuQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5OTE2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MSw0ICs2MSw5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFi
bGVSZWN0KFdpZGdldCogd2kKICAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFp
bGFibGVSZWN0KHdpZGdldCk7CiB9CiAKK2RvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0
ZSh3aWRnZXQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNp
b24gOTkxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1
cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDYgKzIzNyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CiAgICAgc3RhdGljIEludFJl
Y3Qgc2NyZWVuUmVjdChXaWRnZXQqKTsKICAgICBzdGF0aWMgSW50UmVjdCBzY3JlZW5BdmFpbGFi
bGVSZWN0KFdpZGdldCopOworICAgIHN0YXRpYyBkb3VibGUgc2NyZWVuUmVmcmVzaFJhdGUoV2lk
Z2V0Kik7CiAKICAgICAvLyBTaGFyZWRUaW1lcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFRp
bWVyRmlyZWRGdW5jdGlvbih2b2lkICgqZnVuYykoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NzIsMTMgKzcyLDE1IEBAIHN0cnVjdCBDQ1NldHRpbmdzIHsKICAgICAgICAgICAgICwgY29tcG9z
aXRlT2Zmc2NyZWVuKGZhbHNlKQogICAgICAgICAgICAgLCBlbmFibGVDb21wb3NpdG9yVGhyZWFk
KGZhbHNlKQogICAgICAgICAgICAgLCBzaG93RlBTQ291bnRlcihmYWxzZSkKLSAgICAgICAgICAg
ICwgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGZhbHNlKSB7IH0KKyAgICAgICAgICAgICwgc2hvd1Bs
YXRmb3JtTGF5ZXJUcmVlKGZhbHNlKQorICAgICAgICAgICAgLCByZWZyZXNoUmF0ZSgwKSB7IH0K
IAogICAgIGJvb2wgYWNjZWxlcmF0ZVBhaW50aW5nOwogICAgIGJvb2wgY29tcG9zaXRlT2Zmc2Ny
ZWVuOwogICAgIGJvb2wgZW5hYmxlQ29tcG9zaXRvclRocmVhZDsKICAgICBib29sIHNob3dGUFND
b3VudGVyOwogICAgIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOworICAgIGRvdWJsZSByZWZy
ZXNoUmF0ZTsKIH07CiAKIC8vIFByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGFuIEltcGwncyByZW5k
ZXJpbmcgY2FwYWJpbGl0aWVzIGJhY2sgdG8gdGhlIENDTGF5ZXJUcmVlSG9zdApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHJldmlzaW9uIDk5MTY1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjb25zdCBkb3VibGUgQ0NUaHJlYWRQcm94eTo6a0RlZmF1bHRSZWZy
ZXNoUmF0ZSA9IDYwLjA7CiBDQ1RocmVhZCogQ0NUaHJlYWRQcm94eTo6c19jY1RocmVhZCA9IDA7
CiAKIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2V0VGhyZWFkKENDVGhyZWFkKiBjY1RocmVhZCkKQEAg
LTUwNiw4ICs1MDcsMTAgQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1w
bAogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRo
cmVhZCIsIHRoaXMsIDApOwogICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CiAgICAgbV9sYXll
clRyZWVIb3N0SW1wbCA9IG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwo
dGhpcyk7Ci0gICAgY29uc3QgZG91YmxlIGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWxNcyA9IDEwMDAu
MCAvIDYwLjA7Ci0gICAgT3duUHRyPENDRnJhbWVSYXRlQ29udHJvbGxlcj4gZnJhbWVSYXRlQ29u
dHJvbGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NEZWxheUJhc2Vk
VGltZVNvdXJjZTo6Y3JlYXRlKGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWxNcywgc19jY1RocmVhZCkp
KTsKKyAgICBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncyA9IG1fbGF5ZXJUcmVlSG9zdEltcGwt
PnNldHRpbmdzKCk7CisgICAgY29uc3QgZG91YmxlIHJlZnJlc2hSYXRlID0gKHNldHRpbmdzLnJl
ZnJlc2hSYXRlID4gMCkgPyBzZXR0aW5ncy5yZWZyZXNoUmF0ZSA6IGtEZWZhdWx0UmVmcmVzaFJh
dGU7CisgICAgY29uc3QgZG91YmxlIHJlZnJlc2hJbnRlcnZhbE1zID0gMTAwMC4wIC8gcmVmcmVz
aFJhdGU7CisgICAgT3duUHRyPENDRnJhbWVSYXRlQ29udHJvbGxlcj4gZnJhbWVSYXRlQ29udHJv
bGxlciA9IGFkb3B0UHRyKG5ldyBDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXIoQ0NEZWxheUJhc2VkVGlt
ZVNvdXJjZTo6Y3JlYXRlKHJlZnJlc2hJbnRlcnZhbE1zLCBzX2NjVGhyZWFkKSkpOwogICAgIG1f
c2NoZWR1bGVyT25JbXBsVGhyZWFkID0gQ0NTY2hlZHVsZXI6OmNyZWF0ZSh0aGlzLCBmcmFtZVJh
dGVDb250cm9sbGVyLnJlbGVhc2UoKSk7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNl
dFZpc2libGUobV9sYXllclRyZWVIb3N0SW1wbC0+dmlzaWJsZSgpKTsKICAgICBjb21wbGV0aW9u
LT5zaWduYWwoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgJKHJldmlzaW9uIDk5MTY1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBTZXQgd2hlbiB0aGUgbmV4dCBkcmF3IHNob3VsZCBwb3N0IGRpZENvbW1pdEFuZERyYXdG
cmFtZSB0byB0aGUgbWFpbiB0aHJlYWQuCiAgICAgYm9vbCBtX25leHRGcmFtZUlzTmV3bHlDb21t
aXR0ZWRGcmFtZU9uSW1wbFRocmVhZDsKIAorICAgIHN0YXRpYyBjb25zdCBkb3VibGUga0RlZmF1
bHRSZWZyZXNoUmF0ZTsKICAgICBzdGF0aWMgQ0NUaHJlYWQqIHNfY2NUaHJlYWQ7CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTkyMDMpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDExLTExLTAzICBJYWluIE1lcnJpY2sgIDxodXNreUBnb29nbGUuY29tPgorCisgICAgICAg
IFtjaHJvbWl1bV0gUGFzcyBzY3JlZW4gcmVmcmVzaCByYXRlIGludG8gY29tcG9zaXRvci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
U2NyZWVuSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTY3JlZW5JbmZvOjpXZWJTY3JlZW5J
bmZvKToKKyAgICAgICAgKiBzcmMvUGxhdGZvcm1TdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuUmVmcmVzaFJhdGUpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUpOgorCiAyMDExLTEwLTI4ICBIYW5zIFdlbm5ib3JnICA8
aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZWN5Y2xlIGN1cnNvciBv
YmplY3RzIHdoZW4gY2FsbGluZyBjb250aW51ZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCShyZXZpc2lvbiA5OTE2NSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtNjMsMTAgKzYzLDE0IEBAIHN0cnVjdCBXZWJTY3JlZW5JbmZvIHsKICAgICAvLyAgIHNvbWUg
b2YgdGhlIHJlY3RhbmdsZSdzIGNvb3JkaW5hdGVzIG1heSBiZSBuZWdhdGl2ZSB2YWx1ZXMiLgog
ICAgIFdlYlJlY3QgYXZhaWxhYmxlUmVjdDsKIAorICAgIC8vIE1lYXN1cmVkIGluIGZyYW1lcyBw
ZXIgc2Vjb25kLiAwIGlmIHRoZSByYXRlIGlzIHVua25vd24gb3Igbm90IGFwcGxpY2FibGUuCisg
ICAgZG91YmxlIHJlZnJlc2hSYXRlOworCiAgICAgV2ViU2NyZWVuSW5mbygpCiAgICAgICAgIDog
ZGVwdGgoMCkKICAgICAgICAgLCBkZXB0aFBlckNvbXBvbmVudCgwKQotICAgICAgICAsIGlzTW9u
b2Nocm9tZShmYWxzZSkgeyB9CisgICAgICAgICwgaXNNb25vY2hyb21lKGZhbHNlKQorICAgICAg
ICAsIHJlZnJlc2hSYXRlKDApIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHJl
dmlzaW9uIDk5MTY1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBw
b3J0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4MCw2ICsxMDgwLDE0IEBAIEludFJlY3QgUGxh
dGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFpbGFibGUKICAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5J
bmZvKCkuYXZhaWxhYmxlUmVjdDsKIH0KIAorZG91YmxlIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVu
UmVmcmVzaFJhdGUoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGll
bnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkucmVmcmVzaFJhdGU7
Cit9CisKIGJvb2wgUGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKE5QUCBucHApCiB7CiAg
ICAgLy8gRklYTUU6IEdpdmUgdGhlIGVtYmVkZGVyIGEgd2F5IHRvIGNvbnRyb2wgdGhpcy4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9u
IDk5MTY1KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0
U2tpYS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJQb3B1cENvbnRhaW5lci5oIgpAQCAtMjYyMyw2ICsyNjI0LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvcwogICAgICAgICBjY1Nl
dHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQgPSBzZXR0aW5ncygpLT51c2VUaHJlYWRlZENv
bXBvc2l0b3IoKTsKICAgICAgICAgY2NTZXR0aW5ncy5zaG93RlBTQ291bnRlciA9IHNldHRpbmdz
KCktPnNob3dGUFNDb3VudGVyKCk7CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5
ZXJUcmVlID0gc2V0dGluZ3MoKS0+c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCk7CisgICAgICAgIGNj
U2V0dGluZ3MucmVmcmVzaFJhdGUgPSBzY3JlZW5SZWZyZXNoUmF0ZShwYWdlKCktPm1haW5GcmFt
ZSgpLT52aWV3KCkpOwogCiAgICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0ID0gTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0OjpjcmVhdGUoV2ViVmlld0ltcGxDb250ZW50UGFpbnRlcjo6
Y3JlYXRlKHRoaXMpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0
OjpjcmVhdGUodGhpcywgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnRvcExldmVsUm9vdExh
eWVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgY2NTZXR0aW5ncyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113532</attachid>
            <date>2011-11-03 11:45:55 -0700</date>
            <delta_ts>2011-11-04 04:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111103184553.patch</filename>
            <type>text/plain</type>
            <size>9219</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MTk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDMgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIHNjcmVl
biByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5SZWZyZXNoUmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1NldHRpbmdz
OjpDQ1NldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVJbXBsT25JbXBsVGhyZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisKIDIwMTEtMTEtMDMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZpbmcgbGluZSBpbiBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzIHRoYXQgZW5mb3JjZXMgYSBtaW5pbXVtIHNjYWxlIGZhY3RvciB0byBu
ZXZlciBhbGxvdyB6b29taW5nIG91dCBtb3JlIHRoYW4gdmlld3BvcnQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw2ICs1NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgRmxvYXRSZWN0IHNjcmVlblJl
Y3QoV2lkZ2V0Kik7CiAgICAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0Kik7
CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAvLyBNZWFzdXJlZCBpbiBmcmFtZXMgcGVy
IHNlY29uZC4gMCBpZiB0aGUgcmVmcmVzaCByYXRlIGlzIHVua25vd24sIG9yIG5vdCBhcHBsaWNh
YmxlLgorICAgIGRvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqKTsKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cg
Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2Ny
ZWVuQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5OTE2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MSw0ICs2MSw5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFi
bGVSZWN0KFdpZGdldCogd2kKICAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFp
bGFibGVSZWN0KHdpZGdldCk7CiB9CiAKK2RvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0
ZSh3aWRnZXQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNp
b24gOTkxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1
cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDYgKzIzNyw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0Kik7CiAgICAgc3RhdGljIEludFJl
Y3Qgc2NyZWVuUmVjdChXaWRnZXQqKTsKICAgICBzdGF0aWMgSW50UmVjdCBzY3JlZW5BdmFpbGFi
bGVSZWN0KFdpZGdldCopOworICAgIHN0YXRpYyBkb3VibGUgc2NyZWVuUmVmcmVzaFJhdGUoV2lk
Z2V0Kik7CiAKICAgICAvLyBTaGFyZWRUaW1lcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZFRp
bWVyRmlyZWRGdW5jdGlvbih2b2lkICgqZnVuYykoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NzIsMTMgKzcyLDE1IEBAIHN0cnVjdCBDQ1NldHRpbmdzIHsKICAgICAgICAgICAgICwgY29tcG9z
aXRlT2Zmc2NyZWVuKGZhbHNlKQogICAgICAgICAgICAgLCBlbmFibGVDb21wb3NpdG9yVGhyZWFk
KGZhbHNlKQogICAgICAgICAgICAgLCBzaG93RlBTQ291bnRlcihmYWxzZSkKLSAgICAgICAgICAg
ICwgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGZhbHNlKSB7IH0KKyAgICAgICAgICAgICwgc2hvd1Bs
YXRmb3JtTGF5ZXJUcmVlKGZhbHNlKQorICAgICAgICAgICAgLCByZWZyZXNoUmF0ZSgwKSB7IH0K
IAogICAgIGJvb2wgYWNjZWxlcmF0ZVBhaW50aW5nOwogICAgIGJvb2wgY29tcG9zaXRlT2Zmc2Ny
ZWVuOwogICAgIGJvb2wgZW5hYmxlQ29tcG9zaXRvclRocmVhZDsKICAgICBib29sIHNob3dGUFND
b3VudGVyOwogICAgIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOworICAgIGRvdWJsZSByZWZy
ZXNoUmF0ZTsKIH07CiAKIC8vIFByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGFuIEltcGwncyByZW5k
ZXJpbmcgY2FwYWJpbGl0aWVzIGJhY2sgdG8gdGhlIENDTGF5ZXJUcmVlSG9zdApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHJldmlzaW9uIDk5MTY1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUwNiw3ICs1MDYsOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxp
emVJbXBsT25JbXBsCiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJ
bXBsT25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsK
ICAgICBtX2xheWVyVHJlZUhvc3RJbXBsID0gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVMYXllclRy
ZWVIb3N0SW1wbCh0aGlzKTsKLSAgICBjb25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZh
bE1zID0gMTAwMC4wIC8gNjAuMDsKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0SW1wbC0+c2V0
dGluZ3MoKS5yZWZyZXNoUmF0ZSA+IDApOworICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVz
aEludGVydmFsTXMgPSAxMDAwLjAgLyBtX2xheWVyVHJlZUhvc3RJbXBsLT5zZXR0aW5ncygpLnJl
ZnJlc2hSYXRlOwogICAgIE93blB0cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI+IGZyYW1lUmF0ZUNv
bnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgQ0NGcmFtZVJhdGVDb250cm9sbGVyKENDRGVsYXlCYXNl
ZFRpbWVTb3VyY2U6OmNyZWF0ZShkaXNwbGF5UmVmcmVzaEludGVydmFsTXMsIHNfY2NUaHJlYWQp
KSk7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQgPSBDQ1NjaGVkdWxlcjo6Y3JlYXRlKHRo
aXMsIGZyYW1lUmF0ZUNvbnRyb2xsZXIucmVsZWFzZSgpKTsKICAgICBtX3NjaGVkdWxlck9uSW1w
bFRocmVhZC0+c2V0VmlzaWJsZShtX2xheWVyVHJlZUhvc3RJbXBsLT52aXNpYmxlKCkpOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjAzKQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0xMS0wMyAgSWFpbiBNZXJyaWNrICA8aHVza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Y2hyb21pdW1dIFBhc3Mgc2NyZWVuIHJlZnJlc2ggcmF0ZSBpbnRvIGNvbXBvc2l0b3IuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNj
cmVlbkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5m
byk6CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMS0xMC0yOCAgSGFucyBXZW5uYm9yZyAgPGhh
bnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmVjeWNsZSBjdXJzb3Igb2Jq
ZWN0cyB3aGVuIGNhbGxpbmcgY29udGludWUoKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAkocmV2aXNpb24gOTkxNjUpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzLDEwICs2MywxNCBAQCBzdHJ1Y3QgV2ViU2NyZWVuSW5mbyB7CiAgICAgLy8gICBzb21lIG9m
IHRoZSByZWN0YW5nbGUncyBjb29yZGluYXRlcyBtYXkgYmUgbmVnYXRpdmUgdmFsdWVzIi4KICAg
ICBXZWJSZWN0IGF2YWlsYWJsZVJlY3Q7CiAKKyAgICAvLyBNZWFzdXJlZCBpbiBmcmFtZXMgcGVy
IHNlY29uZC4gMCBpZiB0aGUgcmF0ZSBpcyB1bmtub3duIG9yIG5vdCBhcHBsaWNhYmxlLgorICAg
IGRvdWJsZSByZWZyZXNoUmF0ZTsKKwogICAgIFdlYlNjcmVlbkluZm8oKQogICAgICAgICA6IGRl
cHRoKDApCiAgICAgICAgICwgZGVwdGhQZXJDb21wb25lbnQoMCkKLSAgICAgICAgLCBpc01vbm9j
aHJvbWUoZmFsc2UpIHsgfQorICAgICAgICAsIGlzTW9ub2Nocm9tZShmYWxzZSkKKyAgICAgICAg
LCByZWZyZXNoUmF0ZSgwKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZp
c2lvbiA5OTE2NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9y
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwODAsNiArMTA4MCwxNCBAQCBJbnRSZWN0IFBsYXRm
b3JtU3VwcG9ydDo6c2NyZWVuQXZhaWxhYmxlCiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5m
bygpLmF2YWlsYWJsZVJlY3Q7CiB9CiAKK2RvdWJsZSBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblJl
ZnJlc2hSYXRlKFdpZGdldCogd2lkZ2V0KQoreworICAgIFdlYldpZGdldENsaWVudCogY2xpZW50
ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0KTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLnJlZnJlc2hSYXRlOwor
fQorCiBib29sIFBsYXRmb3JtU3VwcG9ydDo6cG9wdXBzQWxsb3dlZChOUFAgbnBwKQogewogICAg
IC8vIEZJWE1FOiBHaXZlIHRoZSBlbWJlZGRlciBhIHdheSB0byBjb250cm9sIHRoaXMuCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA5
OTE2NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNr
aWEuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2
ZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKQEAgLTIzMSw2ICsyMzIsMTAgQEAg
c3RhdGljIGNvbnN0IFBvcHVwQ29udGFpbmVyU2V0dGluZ3MgYXV0bwogCiBzdGF0aWMgYm9vbCBz
aG91bGRVc2VFeHRlcm5hbFBvcHVwTWVudXMgPSBmYWxzZTsKIAorI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKK2NvbnN0IGRvdWJsZSBXZWJWaWV3SW1wbDo6a0RlZmF1bHRDb21wb3Np
dG9yUmVmcmVzaFJhdGUgPSA2MC4wOworI2VuZGlmCisKIC8vIFdlYlZpZXcgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBX
ZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUoV2ViVmlld0NsaWVudCogY2xpZW50KQpAQCAtMjYyMyw2
ICsyNjI4LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3MKICAg
ICAgICAgY2NTZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkID0gc2V0dGluZ3MoKS0+dXNl
VGhyZWFkZWRDb21wb3NpdG9yKCk7CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd0ZQU0NvdW50ZXIg
PSBzZXR0aW5ncygpLT5zaG93RlBTQ291bnRlcigpOwogICAgICAgICBjY1NldHRpbmdzLnNob3dQ
bGF0Zm9ybUxheWVyVHJlZSA9IHNldHRpbmdzKCktPnNob3dQbGF0Zm9ybUxheWVyVHJlZSgpOwor
ICAgICAgICBjY1NldHRpbmdzLnJlZnJlc2hSYXRlID0gc2NyZWVuUmVmcmVzaFJhdGUocGFnZSgp
LT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAgQVNTRVJUKGNjU2V0dGluZ3MucmVmcmVz
aFJhdGUgPj0gMCk7CisgICAgICAgIGlmICghY2NTZXR0aW5ncy5yZWZyZXNoUmF0ZSkKKyAgICAg
ICAgICAgIGNjU2V0dGluZ3MucmVmcmVzaFJhdGUgPSBrRGVmYXVsdENvbXBvc2l0b3JSZWZyZXNo
UmF0ZTsKIAogICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCA9IE5vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdDo6Y3JlYXRlKFdlYlZpZXdJbXBsQ29udGVudFBhaW50ZXI6OmNyZWF0ZSh0
aGlzKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
KHRoaXMsIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT50b3BMZXZlbFJvb3RMYXllcigpLT5w
bGF0Zm9ybUxheWVyKCksIGNjU2V0dGluZ3MpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA5OTE2NSkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3Miw2ICs1NzIsNyBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX21vdXNlQ2FwdHVyZU5vZGU7
CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgc3RhdGljIGNvbnN0IGRv
dWJsZSBrRGVmYXVsdENvbXBvc2l0b3JSZWZyZXNoUmF0ZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0
IG1fcm9vdExheWVyU2Nyb2xsRGFtYWdlOwogICAgIE93blB0cjxXZWJDb3JlOjpOb25Db21wb3Np
dGVkQ29udGVudEhvc3Q+IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113646</attachid>
            <date>2011-11-04 04:52:05 -0700</date>
            <delta_ts>2011-11-16 04:26:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71040-20111104115204.patch</filename>
            <type>text/plain</type>
            <size>8579</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjcyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDQgIElhaW4gTWVy
cmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIHNjcmVl
biByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5SZWZyZXNoUmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1NldHRpbmdz
OjpDQ1NldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmluaXRp
YWxpemVJbXBsT25JbXBsVGhyZWFkKToKKwogMjAxMS0xMS0wNCAgVG9tbXkgV2lkZW5mbHljaHQg
IDx0b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1lZGlhU3RyZWFtIEFQ
STogRml4aW5nIHdyb25nIHBhdGggZm9yIFBlZXJDb25uZWN0aW9uSGFuZGxlci5oIGluIFdlYkNv
cmUuZ3lwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgJKHJl
dmlzaW9uIDk5MjcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4u
aAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopOwogICAgIEZsb2F0UmVjdCBzY3JlZW5B
dmFpbGFibGVSZWN0KFdpZGdldCopOwogCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8g
TWVhc3VyZWQgaW4gZnJhbWVzIHBlciBzZWNvbmQuIDAgaWYgdGhlIHJlZnJlc2ggcmF0ZSBpcyB1
bmtub3duLCBvciBub3QgYXBwbGljYWJsZS4KKyAgICBkb3VibGUgc2NyZWVuUmVmcmVzaFJhdGUo
V2lkZ2V0Kik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBOU1NjcmVlbiAqc2Ny
ZWVuRm9yV2luZG93KE5TV2luZG93ICopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAko
cmV2aXNpb24gOTkyNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybVNjcmVlbkNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNCArNjEsOSBAQCBG
bG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdpCiAgICAgcmV0dXJuIFBsYXRm
b3JtU3VwcG9ydDo6c2NyZWVuQXZhaWxhYmxlUmVjdCh3aWRnZXQpOwogfQogCitkb3VibGUgc2Ny
ZWVuUmVmcmVzaFJhdGUoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIFBsYXRmb3JtU3Vw
cG9ydDo6c2NyZWVuUmVmcmVzaFJhdGUod2lkZ2V0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBw
b3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxh
dGZvcm1TdXBwb3J0LmgJKHJldmlzaW9uIDk5MjcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzMyw2ICsy
MzMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdl
dCopOwogICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0Kik7CiAgICAgc3RhdGlj
IEludFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKKyAgICBzdGF0aWMgZG91Ymxl
IHNjcmVlblJlZnJlc2hSYXRlKFdpZGdldCopOwogCiAgICAgLy8gU2hhcmVkVGltZXJzIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBz
dGF0aWMgdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24odm9pZCAoKmZ1bmMpKCkpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDk5MjcxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEzICs3MiwxNSBAQCBzdHJ1Y3QgQ0NTZXR0aW5ncyB7
CiAgICAgICAgICAgICAsIGNvbXBvc2l0ZU9mZnNjcmVlbihmYWxzZSkKICAgICAgICAgICAgICwg
ZW5hYmxlQ29tcG9zaXRvclRocmVhZChmYWxzZSkKICAgICAgICAgICAgICwgc2hvd0ZQU0NvdW50
ZXIoZmFsc2UpCi0gICAgICAgICAgICAsIHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkgeyB9
CisgICAgICAgICAgICAsIHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKKyAgICAgICAgICAg
ICwgcmVmcmVzaFJhdGUoMCkgeyB9CiAKICAgICBib29sIGFjY2VsZXJhdGVQYWludGluZzsKICAg
ICBib29sIGNvbXBvc2l0ZU9mZnNjcmVlbjsKICAgICBib29sIGVuYWJsZUNvbXBvc2l0b3JUaHJl
YWQ7CiAgICAgYm9vbCBzaG93RlBTQ291bnRlcjsKICAgICBib29sIHNob3dQbGF0Zm9ybUxheWVy
VHJlZTsKKyAgICBkb3VibGUgcmVmcmVzaFJhdGU7CiB9OwogCiAvLyBQcm92aWRlcyBpbmZvcm1h
dGlvbiBvbiBhbiBJbXBsJ3MgcmVuZGVyaW5nIGNhcGFiaWxpdGllcyBiYWNrIHRvIHRoZSBDQ0xh
eWVyVHJlZUhvc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCShyZXZpc2lvbiA5
OTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDYsNyArNTA2LDggQEAgdm9pZCBD
Q1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbAogICAgIFRSQUNFX0VWRU5UKCJDQ1Ro
cmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRocmVhZCIsIHRoaXMsIDApOwogICAgIEFT
U0VSVChpc0ltcGxUaHJlYWQoKSk7CiAgICAgbV9sYXllclRyZWVIb3N0SW1wbCA9IG1fbGF5ZXJU
cmVlSG9zdC0+Y3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwodGhpcyk7Ci0gICAgY29uc3QgZG91Ymxl
IGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWxNcyA9IDEwMDAuMCAvIDYwLjA7CisgICAgQVNTRVJUKG1f
bGF5ZXJUcmVlSG9zdEltcGwtPnNldHRpbmdzKCkucmVmcmVzaFJhdGUgPiAwKTsKKyAgICBjb25z
dCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1zID0gMTAwMC4wIC8gbV9sYXllclRyZWVI
b3N0SW1wbC0+c2V0dGluZ3MoKS5yZWZyZXNoUmF0ZTsKICAgICBPd25QdHI8Q0NGcmFtZVJhdGVD
b250cm9sbGVyPiBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IENDRnJhbWVSYXRl
Q29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpjcmVhdGUoZGlzcGxheVJlZnJlc2hJ
bnRlcnZhbE1zLCBzX2NjVGhyZWFkKSkpOwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkID0g
Q0NTY2hlZHVsZXI6OmNyZWF0ZSh0aGlzLCBmcmFtZVJhdGVDb250cm9sbGVyLnJlbGVhc2UoKSk7
CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNldFZpc2libGUobV9sYXllclRyZWVIb3N0
SW1wbC0+dmlzaWJsZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lv
biA5OTI3MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMDQgIElhaW4gTWVycmljayAgPGh1c2t5QGdv
b2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQYXNzIHNjcmVlbiByZWZyZXNoIHJhdGUg
aW50byBjb21wb3NpdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHB1YmxpYy9XZWJTY3JlZW5JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNj
cmVlbkluZm86OldlYlNjcmVlbkluZm8pOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0
ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisKIDIwMTEtMTEt
MDIgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBjdHJs
LWFycm93IG1vdmUgY3Vyc29yIGJ5IHdvcmQgaW4gdmlzdWFsIG9yZGVyIGluIGNyLXdpbiBieSBj
b21tYW5kIGxpbmUgZmxhZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNjcmVlbkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTY3JlZW5JbmZvLmgJKHJldmlzaW9uIDk5MjcxKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC02MywxMCArNjMs
MTQgQEAgc3RydWN0IFdlYlNjcmVlbkluZm8gewogICAgIC8vICAgc29tZSBvZiB0aGUgcmVjdGFu
Z2xlJ3MgY29vcmRpbmF0ZXMgbWF5IGJlIG5lZ2F0aXZlIHZhbHVlcyIuCiAgICAgV2ViUmVjdCBh
dmFpbGFibGVSZWN0OwogCisgICAgLy8gTWVhc3VyZWQgaW4gZnJhbWVzIHBlciBzZWNvbmQuIDAg
aWYgdGhlIHJhdGUgaXMgdW5rbm93biBvciBub3QgYXBwbGljYWJsZS4KKyAgICBkb3VibGUgcmVm
cmVzaFJhdGU7CisKICAgICBXZWJTY3JlZW5JbmZvKCkKICAgICAgICAgOiBkZXB0aCgwKQogICAg
ICAgICAsIGRlcHRoUGVyQ29tcG9uZW50KDApCi0gICAgICAgICwgaXNNb25vY2hyb21lKGZhbHNl
KSB7IH0KKyAgICAgICAgLCBpc01vbm9jaHJvbWUoZmFsc2UpCisgICAgICAgICwgcmVmcmVzaFJh
dGUoMCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAkocmV2aXNpb24gOTkyNzEp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQ5LDYgKzEwNDksMTQgQEAgSW50UmVjdCBQbGF0Zm9ybVN1cHBvcnQ6
OnNjcmVlbkF2YWlsYWJsZQogICAgIHJldHVybiBjbGllbnQtPnNjcmVlbkluZm8oKS5hdmFpbGFi
bGVSZWN0OwogfQogCitkb3VibGUgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0ZShX
aWRnZXQqIHdpZGdldCkKK3sKKyAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRvV2ViV2lk
Z2V0Q2xpZW50KHdpZGdldCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBjbGllbnQtPnNjcmVlbkluZm8oKS5yZWZyZXNoUmF0ZTsKK30KKwogYm9vbCBQ
bGF0Zm9ybVN1cHBvcnQ6OnBvcHVwc0FsbG93ZWQoTlBQIG5wcCkKIHsKICAgICAvLyBGSVhNRTog
R2l2ZSB0aGUgZW1iZWRkZXIgYSB3YXkgdG8gY29udHJvbCB0aGlzLgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gOTkyNzEpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2
ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRo
ZW1lQ2hyb21pdW1MaW51eC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgIlBvcHVwQ29udGFpbmVyLmgiCkBAIC0yNjE3LDEyICsyNjE4LDE4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3MKICAgICB9IGVsc2UgewogICAgICAgICBU
UkFDRV9FVkVOVCgiV2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2
ZSh0cnVlKSIsIHRoaXMsIDApOwogCisgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVs
dFJlZnJlc2hSYXRlID0gNjAuMDsKKwogICAgICAgICBXZWJDb3JlOjpDQ1NldHRpbmdzIGNjU2V0
dGluZ3M7CiAgICAgICAgIGNjU2V0dGluZ3MuYWNjZWxlcmF0ZVBhaW50aW5nID0gcGFnZSgpLT5z
ZXR0aW5ncygpLT5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCk7CiAgICAgICAgIGNjU2V0dGlu
Z3MuY29tcG9zaXRlT2Zmc2NyZWVuID0gc2V0dGluZ3MoKS0+Y29tcG9zaXRlVG9UZXh0dXJlRW5h
YmxlZCgpOwogICAgICAgICBjY1NldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQgPSBzZXR0
aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0b3IoKTsKICAgICAgICAgY2NTZXR0aW5ncy5zaG93
RlBTQ291bnRlciA9IHNldHRpbmdzKCktPnNob3dGUFNDb3VudGVyKCk7CiAgICAgICAgIGNjU2V0
dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2V0dGluZ3MoKS0+c2hvd1BsYXRmb3JtTGF5
ZXJUcmVlKCk7CisgICAgICAgIGNjU2V0dGluZ3MucmVmcmVzaFJhdGUgPSBzY3JlZW5SZWZyZXNo
UmF0ZShwYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBBU1NFUlQoY2NTZXR0
aW5ncy5yZWZyZXNoUmF0ZSA+PSAwKTsKKyAgICAgICAgaWYgKCFjY1NldHRpbmdzLnJlZnJlc2hS
YXRlKQorICAgICAgICAgICAgY2NTZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IGRlZmF1bHRSZWZyZXNo
UmF0ZTsKIAogICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCA9IE5vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdDo6Y3JlYXRlKFdlYlZpZXdJbXBsQ29udGVudFBhaW50ZXI6OmNyZWF0ZSh0
aGlzKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
KHRoaXMsIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT50b3BMZXZlbFJvb3RMYXllcigpLT5w
bGF0Zm9ybUxheWVyKCksIGNjU2V0dGluZ3MpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115356</attachid>
            <date>2011-11-16 04:26:18 -0800</date>
            <delta_ts>2011-11-17 05:25:40 -0800</delta_ts>
            <desc>Rebased</desc>
            <filename>bug-71040-20111116122616.patch</filename>
            <type>text/plain</type>
            <size>8441</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDQyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDExLTExLTE2ICBJYWluIE1l
cnJpY2sgIDxodXNreUBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBzY3Jl
ZW4gcmVmcmVzaCByYXRlIGludG8gY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2NyZWVuUmVmcmVzaFJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NTZXR0aW5n
czo6Q0NTZXR0aW5ncyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojppbml0
aWFsaXplSW1wbE9uSW1wbFRocmVhZCk6CisKIDIwMTEtMTEtMTYgIFNpbW9uIEhhdXNtYW5uICA8
c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMDAyNjYuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVl
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVu
LmgJKHJldmlzaW9uIDEwMDQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U2NyZWVuLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKTsKICAgICBGbG9hdFJlY3Qg
c2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQor
ICAgIC8vIE1lYXN1cmVkIGluIGZyYW1lcyBwZXIgc2Vjb25kLiAwIGlmIHRoZSByZWZyZXNoIHJh
dGUgaXMgdW5rbm93biwgb3Igbm90IGFwcGxpY2FibGUuCisgICAgZG91YmxlIHNjcmVlblJlZnJl
c2hSYXRlKFdpZGdldCopOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTY3Jl
ZW4gKnNjcmVlbkZvcldpbmRvdyhOU1dpbmRvdyAqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1
bS5jcHAJKHJldmlzaW9uIDEwMDQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw0ICs2
MSw5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCogd2kKICAgICByZXR1
cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFpbGFibGVSZWN0KHdpZGdldCk7CiB9CiAKK2Rv
dWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICByZXR1cm4gUGxh
dGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0ZSh3aWRnZXQpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybVN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMTAwNDI4KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzNCw2ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2NyZWVuSXNNb25vY2hy
b21lKFdpZGdldCopOwogICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0Kik7CiAg
ICAgc3RhdGljIEludFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKKyAgICBzdGF0
aWMgZG91YmxlIHNjcmVlblJlZnJlc2hSYXRlKFdpZGdldCopOwogCiAgICAgLy8gU2hhcmVkVGlt
ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24odm9pZCAoKmZ1
bmMpKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlzaW9uIDEwMDQy
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMyArNzMsMTUgQEAgc3RydWN0IEND
U2V0dGluZ3MgewogICAgICAgICAgICAgLCBjb21wb3NpdGVPZmZzY3JlZW4oZmFsc2UpCiAgICAg
ICAgICAgICAsIGVuYWJsZUNvbXBvc2l0b3JUaHJlYWQoZmFsc2UpCiAgICAgICAgICAgICAsIHNo
b3dGUFNDb3VudGVyKGZhbHNlKQotICAgICAgICAgICAgLCBzaG93UGxhdGZvcm1MYXllclRyZWUo
ZmFsc2UpIHsgfQorICAgICAgICAgICAgLCBzaG93UGxhdGZvcm1MYXllclRyZWUoZmFsc2UpCisg
ICAgICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQogCiAgICAgYm9vbCBhY2NlbGVyYXRlUGFp
bnRpbmc7CiAgICAgYm9vbCBjb21wb3NpdGVPZmZzY3JlZW47CiAgICAgYm9vbCBlbmFibGVDb21w
b3NpdG9yVGhyZWFkOwogICAgIGJvb2wgc2hvd0ZQU0NvdW50ZXI7CiAgICAgYm9vbCBzaG93UGxh
dGZvcm1MYXllclRyZWU7CisgICAgZG91YmxlIHJlZnJlc2hSYXRlOwogfTsKIAogLy8gUHJvdmlk
ZXMgaW5mb3JtYXRpb24gb24gYW4gSW1wbCdzIHJlbmRlcmluZyBjYXBhYmlsaXRpZXMgYmFjayB0
byB0aGUgQ0NMYXllclRyZWVIb3N0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAko
cmV2aXNpb24gMTAwNDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMiw3ICs1MDIs
OCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25JbXBsCiAgICAgVFJBQ0Vf
RVZFTlQoIkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25JbXBsVGhyZWFkIiwgdGhpcywg
MCk7CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKICAgICBtX2xheWVyVHJlZUhvc3RJbXBs
ID0gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVMYXllclRyZWVIb3N0SW1wbCh0aGlzKTsKLSAgICBj
b25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1zID0gMTAwMC4wIC8gNjAuMDsKKyAg
ICBBU1NFUlQobV9sYXllclRyZWVIb3N0SW1wbC0+c2V0dGluZ3MoKS5yZWZyZXNoUmF0ZSA+IDAp
OworICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVzaEludGVydmFsTXMgPSAxMDAwLjAgLyBt
X2xheWVyVHJlZUhvc3RJbXBsLT5zZXR0aW5ncygpLnJlZnJlc2hSYXRlOwogICAgIE93blB0cjxD
Q0ZyYW1lUmF0ZUNvbnRyb2xsZXI+IGZyYW1lUmF0ZUNvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcg
Q0NGcmFtZVJhdGVDb250cm9sbGVyKENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6OmNyZWF0ZShkaXNw
bGF5UmVmcmVzaEludGVydmFsTXMsIENDUHJveHk6OmltcGxUaHJlYWQoKSkpKTsKICAgICBtX3Nj
aGVkdWxlck9uSW1wbFRocmVhZCA9IENDU2NoZWR1bGVyOjpjcmVhdGUodGhpcywgZnJhbWVSYXRl
Q29udHJvbGxlci5yZWxlYXNlKCkpOwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXRW
aXNpYmxlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnZpc2libGUoKSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwNDI5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0xNiAg
SWFpbiBNZXJyaWNrICA8aHVza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFBh
c3Mgc2NyZWVuIHJlZnJlc2ggcmF0ZSBpbnRvIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNjcmVlbkluZm8uaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5mbyk6CisgICAgICAg
ICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1
cHBvcnQ6OnNjcmVlblJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQWN0aXZlKToKKwogMjAxMS0xMS0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMDM0MC4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTY3JlZW5JbmZvLmgJ
KHJldmlzaW9uIDEwMDQyOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNj
cmVlbkluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDE0IEBAIHN0cnVjdCBXZWJT
Y3JlZW5JbmZvIHsKICAgICAvLyAgIHNvbWUgb2YgdGhlIHJlY3RhbmdsZSdzIGNvb3JkaW5hdGVz
IG1heSBiZSBuZWdhdGl2ZSB2YWx1ZXMiLgogICAgIFdlYlJlY3QgYXZhaWxhYmxlUmVjdDsKIAor
ICAgIC8vIE1lYXN1cmVkIGluIGZyYW1lcyBwZXIgc2Vjb25kLiAwIGlmIHRoZSByYXRlIGlzIHVu
a25vd24gb3Igbm90IGFwcGxpY2FibGUuCisgICAgZG91YmxlIHJlZnJlc2hSYXRlOworCiAgICAg
V2ViU2NyZWVuSW5mbygpCiAgICAgICAgIDogZGVwdGgoMCkKICAgICAgICAgLCBkZXB0aFBlckNv
bXBvbmVudCgwKQotICAgICAgICAsIGlzTW9ub2Nocm9tZShmYWxzZSkgeyB9CisgICAgICAgICwg
aXNNb25vY2hyb21lKGZhbHNlKQorICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
bGF0Zm9ybVN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEwMDQyOCkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
NTYsNiArMTA1NiwxNCBAQCBJbnRSZWN0IFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuQXZhaWxhYmxl
CiAgICAgcmV0dXJuIGNsaWVudC0+c2NyZWVuSW5mbygpLmF2YWlsYWJsZVJlY3Q7CiB9CiAKK2Rv
dWJsZSBQbGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblJlZnJlc2hSYXRlKFdpZGdldCogd2lkZ2V0KQor
eworICAgIFdlYldpZGdldENsaWVudCogY2xpZW50ID0gdG9XZWJXaWRnZXRDbGllbnQod2lkZ2V0
KTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNsaWVu
dC0+c2NyZWVuSW5mbygpLnJlZnJlc2hSYXRlOworfQorCiBib29sIFBsYXRmb3JtU3VwcG9ydDo6
cG9wdXBzQWxsb3dlZChOUFAgbnBwKQogewogICAgIC8vIEZJWE1FOiBHaXZlIHRoZSBlbWJlZGRl
ciBhIHdheSB0byBjb250cm9sIHRoaXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiAxMDA0MjgpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51
eC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBvcHVwQ29u
dGFpbmVyLmgiCkBAIC0yNzI4LDEyICsyNzI5LDE4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElz
QWNjZWxlcmF0ZWRDb21wb3MKICAgICB9IGVsc2UgewogICAgICAgICBUUkFDRV9FVkVOVCgiV2Vi
Vmlld0ltcGw6OnNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSh0cnVlKSIsIHRoaXMs
IDApOwogCisgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFJlZnJlc2hSYXRlID0g
NjAuMDsKKwogICAgICAgICBXZWJDb3JlOjpDQ1NldHRpbmdzIGNjU2V0dGluZ3M7CiAgICAgICAg
IGNjU2V0dGluZ3MuYWNjZWxlcmF0ZVBhaW50aW5nID0gcGFnZSgpLT5zZXR0aW5ncygpLT5hY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkKCk7CiAgICAgICAgIGNjU2V0dGluZ3MuY29tcG9zaXRlT2Zm
c2NyZWVuID0gc2V0dGluZ3MoKS0+Y29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZCgpOwogICAgICAg
ICBjY1NldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQgPSBzZXR0aW5ncygpLT51c2VUaHJl
YWRlZENvbXBvc2l0b3IoKTsKICAgICAgICAgY2NTZXR0aW5ncy5zaG93RlBTQ291bnRlciA9IHNl
dHRpbmdzKCktPnNob3dGUFNDb3VudGVyKCk7CiAgICAgICAgIGNjU2V0dGluZ3Muc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlID0gc2V0dGluZ3MoKS0+c2hvd1BsYXRmb3JtTGF5ZXJUcmVlKCk7CisgICAg
ICAgIGNjU2V0dGluZ3MucmVmcmVzaFJhdGUgPSBzY3JlZW5SZWZyZXNoUmF0ZShwYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBBU1NFUlQoY2NTZXR0aW5ncy5yZWZyZXNoUmF0
ZSA+PSAwKTsKKyAgICAgICAgaWYgKCFjY1NldHRpbmdzLnJlZnJlc2hSYXRlKQorICAgICAgICAg
ICAgY2NTZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IGRlZmF1bHRSZWZyZXNoUmF0ZTsKIAogICAgICAg
ICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCA9IE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
Y3JlYXRlKFdlYlZpZXdJbXBsQ29udGVudFBhaW50ZXI6OmNyZWF0ZSh0aGlzKSk7CiAgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKHRoaXMsIGNjU2V0dGlu
Z3MpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115568</attachid>
            <date>2011-11-17 05:25:48 -0800</date>
            <delta_ts>2011-11-18 03:16:19 -0800</delta_ts>
            <desc>Fixed CCLayerTreeHostTest</desc>
            <filename>bug-71040-20111117132546.patch</filename>
            <type>text/plain</type>
            <size>9275</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTE3ICBJYWluIE1l
cnJpY2sgIDxodXNreUBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBzY3Jl
ZW4gcmVmcmVzaCByYXRlIGludG8gY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVm
cmVzaFJhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NTZXR0aW5nczo6Q0NTZXR0aW5ncyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRocmVhZCk6
CisKIDIwMTEtMTEtMTcgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TY3JlZW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVNjcmVlbi5oCShyZXZpc2lvbiAxMDA2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNjcmVlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgRmxvYXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0Kik7CiAgICAg
RmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0Kik7CiAKKyNpZiBQTEFURk9STShD
SFJPTUlVTSkKKyAgICAvLyBNZWFzdXJlZCBpbiBmcmFtZXMgcGVyIHNlY29uZC4gMCBpZiB0aGUg
cmVmcmVzaCByYXRlIGlzIHVua25vd24sIG9yIG5vdCBhcHBsaWNhYmxlLgorICAgIGRvdWJsZSBz
Y3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5kb3cgKik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU2Ny
ZWVuQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMDA2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNCArNjEsOSBAQCBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqIHdp
CiAgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuQXZhaWxhYmxlUmVjdCh3aWRnZXQp
OwogfQogCitkb3VibGUgc2NyZWVuUmVmcmVzaFJhdGUoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
cmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuUmVmcmVzaFJhdGUod2lkZ2V0KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHJldmlzaW9uIDEwMDYwMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzQsNiArMjM0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIHNjcmVl
bklzTW9ub2Nocm9tZShXaWRnZXQqKTsKICAgICBzdGF0aWMgSW50UmVjdCBzY3JlZW5SZWN0KFdp
ZGdldCopOwogICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0Kik7
CisgICAgc3RhdGljIGRvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqKTsKIAogICAgIC8v
IFNoYXJlZFRpbWVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9u
KHZvaWQgKCpmdW5jKSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCShyZXZp
c2lvbiAxMDA2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsMTMgKzczLDE1IEBA
IHN0cnVjdCBDQ1NldHRpbmdzIHsKICAgICAgICAgICAgICwgY29tcG9zaXRlT2Zmc2NyZWVuKGZh
bHNlKQogICAgICAgICAgICAgLCBlbmFibGVDb21wb3NpdG9yVGhyZWFkKGZhbHNlKQogICAgICAg
ICAgICAgLCBzaG93RlBTQ291bnRlcihmYWxzZSkKLSAgICAgICAgICAgICwgc2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlKGZhbHNlKSB7IH0KKyAgICAgICAgICAgICwgc2hvd1BsYXRmb3JtTGF5ZXJUcmVl
KGZhbHNlKQorICAgICAgICAgICAgLCByZWZyZXNoUmF0ZSgwKSB7IH0KIAogICAgIGJvb2wgYWNj
ZWxlcmF0ZVBhaW50aW5nOwogICAgIGJvb2wgY29tcG9zaXRlT2Zmc2NyZWVuOwogICAgIGJvb2wg
ZW5hYmxlQ29tcG9zaXRvclRocmVhZDsKICAgICBib29sIHNob3dGUFNDb3VudGVyOwogICAgIGJv
b2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOworICAgIGRvdWJsZSByZWZyZXNoUmF0ZTsKIH07CiAK
IC8vIFByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGFuIEltcGwncyByZW5kZXJpbmcgY2FwYWJpbGl0
aWVzIGJhY2sgdG8gdGhlIENDTGF5ZXJUcmVlSG9zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5jcHAJKHJldmlzaW9uIDEwMDYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MDIsNyArNTAyLDggQEAgdm9pZCBDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbAog
ICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5Ojppbml0aWFsaXplSW1wbE9uSW1wbFRocmVh
ZCIsIHRoaXMsIDApOwogICAgIEFTU0VSVChpc0ltcGxUaHJlYWQoKSk7CiAgICAgbV9sYXllclRy
ZWVIb3N0SW1wbCA9IG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwodGhp
cyk7Ci0gICAgY29uc3QgZG91YmxlIGRpc3BsYXlSZWZyZXNoSW50ZXJ2YWxNcyA9IDEwMDAuMCAv
IDYwLjA7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnNldHRpbmdzKCkucmVmcmVz
aFJhdGUgPiAwKTsKKyAgICBjb25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1zID0g
MTAwMC4wIC8gbV9sYXllclRyZWVIb3N0SW1wbC0+c2V0dGluZ3MoKS5yZWZyZXNoUmF0ZTsKICAg
ICBPd25QdHI8Q0NGcmFtZVJhdGVDb250cm9sbGVyPiBmcmFtZVJhdGVDb250cm9sbGVyID0gYWRv
cHRQdHIobmV3IENDRnJhbWVSYXRlQ29udHJvbGxlcihDQ0RlbGF5QmFzZWRUaW1lU291cmNlOjpj
cmVhdGUoZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1zLCBDQ1Byb3h5OjppbXBsVGhyZWFkKCkpKSk7
CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQgPSBDQ1NjaGVkdWxlcjo6Y3JlYXRlKHRoaXMs
IGZyYW1lUmF0ZUNvbnRyb2xsZXIucmVsZWFzZSgpKTsKICAgICBtX3NjaGVkdWxlck9uSW1wbFRo
cmVhZC0+c2V0VmlzaWJsZShtX2xheWVyVHJlZUhvc3RJbXBsLT52aXNpYmxlKCkpOwpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDYxMCkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTEtMTEtMTcgIElhaW4gTWVycmljayAgPGh1c2t5QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2No
cm9taXVtXSBQYXNzIHNjcmVlbiByZWZyZXNoIHJhdGUgaW50byBjb21wb3NpdG9yLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTY3Jl
ZW5JbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNjcmVlbkluZm86OldlYlNjcmVlbkluZm8p
OgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0ZSk6CisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZSk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHA6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OnJ1blRlc3QpOgorCiAy
MDExLTExLTE3ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIGRvbid0IGNhbGwgZm9udGNvbmZpZyB0d2ljZSBpbiBjb21wbGV4IHRl
eHQgcGF0aApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5m
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVl
bkluZm8uaAkocmV2aXNpb24gMTAwNjAwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2NyZWVuSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC02MywxMCArNjMsMTQgQEAgc3Ry
dWN0IFdlYlNjcmVlbkluZm8gewogICAgIC8vICAgc29tZSBvZiB0aGUgcmVjdGFuZ2xlJ3MgY29v
cmRpbmF0ZXMgbWF5IGJlIG5lZ2F0aXZlIHZhbHVlcyIuCiAgICAgV2ViUmVjdCBhdmFpbGFibGVS
ZWN0OwogCisgICAgLy8gTWVhc3VyZWQgaW4gZnJhbWVzIHBlciBzZWNvbmQuIDAgaWYgdGhlIHJh
dGUgaXMgdW5rbm93biBvciBub3QgYXBwbGljYWJsZS4KKyAgICBkb3VibGUgcmVmcmVzaFJhdGU7
CisKICAgICBXZWJTY3JlZW5JbmZvKCkKICAgICAgICAgOiBkZXB0aCgwKQogICAgICAgICAsIGRl
cHRoUGVyQ29tcG9uZW50KDApCi0gICAgICAgICwgaXNNb25vY2hyb21lKGZhbHNlKSB7IH0KKyAg
ICAgICAgLCBpc01vbm9jaHJvbWUoZmFsc2UpCisgICAgICAgICwgcmVmcmVzaFJhdGUoMCkgeyB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAkocmV2aXNpb24gMTAwNjAwKQorKysgU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA1Niw2ICsxMDU2LDE0IEBAIEludFJlY3QgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5B
dmFpbGFibGUKICAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkuYXZhaWxhYmxlUmVjdDsK
IH0KIAorZG91YmxlIFBsYXRmb3JtU3VwcG9ydDo6c2NyZWVuUmVmcmVzaFJhdGUoV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVu
dCh3aWRnZXQpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gY2xpZW50LT5zY3JlZW5JbmZvKCkucmVmcmVzaFJhdGU7Cit9CisKIGJvb2wgUGxhdGZvcm1T
dXBwb3J0Ojpwb3B1cHNBbGxvd2VkKE5QUCBucHApCiB7CiAgICAgLy8gRklYTUU6IEdpdmUgdGhl
IGVtYmVkZGVyIGEgd2F5IHRvIGNvbnRyb2wgdGhpcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDEwMDYwMCkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYs
NiArODYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGhlbWVDaHJv
bWl1bUxpbnV4LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
UG9wdXBDb250YWluZXIuaCIKQEAgLTI3NDMsMTIgKzI3NDQsMTggQEAgdm9pZCBXZWJWaWV3SW1w
bDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvcwogICAgIH0gZWxzZSB7CiAgICAgICAgIFRSQUNFX0VW
RU5UKCJXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKHRydWUp
IiwgdGhpcywgMCk7CiAKKyAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0UmVmcmVz
aFJhdGUgPSA2MC4wOworCiAgICAgICAgIFdlYkNvcmU6OkNDU2V0dGluZ3MgY2NTZXR0aW5nczsK
ICAgICAgICAgY2NTZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcgPSBwYWdlKCktPnNldHRpbmdz
KCktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKTsKICAgICAgICAgY2NTZXR0aW5ncy5jb21w
b3NpdGVPZmZzY3JlZW4gPSBzZXR0aW5ncygpLT5jb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCk7
CiAgICAgICAgIGNjU2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCA9IHNldHRpbmdzKCkt
PnVzZVRocmVhZGVkQ29tcG9zaXRvcigpOwogICAgICAgICBjY1NldHRpbmdzLnNob3dGUFNDb3Vu
dGVyID0gc2V0dGluZ3MoKS0+c2hvd0ZQU0NvdW50ZXIoKTsKICAgICAgICAgY2NTZXR0aW5ncy5z
aG93UGxhdGZvcm1MYXllclRyZWUgPSBzZXR0aW5ncygpLT5zaG93UGxhdGZvcm1MYXllclRyZWUo
KTsKKyAgICAgICAgY2NTZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IHNjcmVlblJlZnJlc2hSYXRlKHBh
Z2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CisgICAgICAgIEFTU0VSVChjY1NldHRpbmdzLnJl
ZnJlc2hSYXRlID49IDApOworICAgICAgICBpZiAoIWNjU2V0dGluZ3MucmVmcmVzaFJhdGUpCisg
ICAgICAgICAgICBjY1NldHRpbmdzLnJlZnJlc2hSYXRlID0gZGVmYXVsdFJlZnJlc2hSYXRlOwog
CiAgICAgICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0ID0gTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0OjpjcmVhdGUoV2ViVmlld0ltcGxDb250ZW50UGFpbnRlcjo6Y3JlYXRlKHRoaXMpKTsK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywg
Y2NTZXR0aW5ncyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAJKHJldmlzaW9uIDEwMDYwMCkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNiw2ICszMjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHJ1blRl
c3QoYm9vbCB0aHJlYWRlZCkKICAgICB7CiAgICAgICAgIG1fc2V0dGluZ3MuZW5hYmxlQ29tcG9z
aXRvclRocmVhZCA9IHRocmVhZGVkOworICAgICAgICBtX3NldHRpbmdzLnJlZnJlc2hSYXRlID0g
MTAwLjA7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0RGVsYXllZFRhc2soQ0NMYXllclRy
ZWVIb3N0VGVzdDo6b25CZWdpblRlc3QsIHN0YXRpY19jYXN0PHZvaWQqPih0aGlzKSwgMCk7CiAg
ICAgICAgIG1fdGltZW91dFRhc2sgPSBuZXcgVGltZW91dFRhc2sodGhpcyk7CiAgICAgICAgIHdl
YmtpdF9zdXBwb3J0OjpQb3N0RGVsYXllZFRhc2sobV90aW1lb3V0VGFzaywgNTAwMCk7IC8vIHdl
YmtpdF9zdXBwb3J0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgdGFzawo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115777</attachid>
            <date>2011-11-18 03:16:27 -0800</date>
            <delta_ts>2011-11-18 04:43:59 -0800</delta_ts>
            <desc>Fixed ChangeLog</desc>
            <filename>bug-71040-20111118111625.patch</filename>
            <type>text/plain</type>
            <size>9308</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTExLTE3ICBJYWluIE1l
cnJpY2sgIDxodXNreUBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBzY3Jl
ZW4gcmVmcmVzaCByYXRlIGludG8gY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBDQ0xheWVyVHJlZUhvc3RUZXN0Lgor
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9QbGF0Zm9ybVNjcmVlbkNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmVlblJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVN1cHBvcnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2V0dGluZ3M6OkNDU2V0dGluZ3Mp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6aW5pdGlhbGl6ZUltcGxPbklt
cGxUaHJlYWQpOgorCiAyMDExLTExLTE4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgTW92ZSBzb21lIG1lZGlhc3RyZWFtIHJlbGF0ZWQgZmlsZXMgaW50byB0aGUg
bWVkaWFzdHJlYW0gZGlyZWN0b3J5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVNjcmVlbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtU2NyZWVuLmgJKHJldmlzaW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU2NyZWVuLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKTsKICAgICBG
bG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKIAorI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQorICAgIC8vIE1lYXN1cmVkIGluIGZyYW1lcyBwZXIgc2Vjb25kLiAwIGlmIHRoZSBy
ZWZyZXNoIHJhdGUgaXMgdW5rbm93biwgb3Igbm90IGFwcGxpY2FibGUuCisgICAgZG91YmxlIHNj
cmVlblJlZnJlc2hSYXRlKFdpZGdldCopOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgTlNTY3JlZW4gKnNjcmVlbkZvcldpbmRvdyhOU1dpbmRvdyAqKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3JlZW5DaHJvbWl1bS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TY3Jl
ZW5DaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1BsYXRmb3JtU2NyZWVuQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MSw0ICs2MSw5IEBAIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCogd2kK
ICAgICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFpbGFibGVSZWN0KHdpZGdldCk7
CiB9CiAKK2RvdWJsZSBzY3JlZW5SZWZyZXNoUmF0ZShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBy
ZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5SZWZyZXNoUmF0ZSh3aWRnZXQpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMTAwNzM3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzOSw2ICsyMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2NyZWVu
SXNNb25vY2hyb21lKFdpZGdldCopOwogICAgIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3QoV2lk
Z2V0Kik7CiAgICAgc3RhdGljIEludFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsK
KyAgICBzdGF0aWMgZG91YmxlIHNjcmVlblJlZnJlc2hSYXRlKFdpZGdldCopOwogCiAgICAgLy8g
U2hhcmVkVGltZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24o
dm9pZCAoKmZ1bmMpKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgJKHJldmlz
aW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMyArNzMsMTUgQEAg
c3RydWN0IENDU2V0dGluZ3MgewogICAgICAgICAgICAgLCBjb21wb3NpdGVPZmZzY3JlZW4oZmFs
c2UpCiAgICAgICAgICAgICAsIGVuYWJsZUNvbXBvc2l0b3JUaHJlYWQoZmFsc2UpCiAgICAgICAg
ICAgICAsIHNob3dGUFNDb3VudGVyKGZhbHNlKQotICAgICAgICAgICAgLCBzaG93UGxhdGZvcm1M
YXllclRyZWUoZmFsc2UpIHsgfQorICAgICAgICAgICAgLCBzaG93UGxhdGZvcm1MYXllclRyZWUo
ZmFsc2UpCisgICAgICAgICAgICAsIHJlZnJlc2hSYXRlKDApIHsgfQogCiAgICAgYm9vbCBhY2Nl
bGVyYXRlUGFpbnRpbmc7CiAgICAgYm9vbCBjb21wb3NpdGVPZmZzY3JlZW47CiAgICAgYm9vbCBl
bmFibGVDb21wb3NpdG9yVGhyZWFkOwogICAgIGJvb2wgc2hvd0ZQU0NvdW50ZXI7CiAgICAgYm9v
bCBzaG93UGxhdGZvcm1MYXllclRyZWU7CisgICAgZG91YmxlIHJlZnJlc2hSYXRlOwogfTsKIAog
Ly8gUHJvdmlkZXMgaW5mb3JtYXRpb24gb24gYW4gSW1wbCdzIHJlbmRlcmluZyBjYXBhYmlsaXRp
ZXMgYmFjayB0byB0aGUgQ0NMYXllclRyZWVIb3N0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmNwcAkocmV2aXNpb24gMTAwNzM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUx
NSw3ICs1MTUsOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25JbXBsCiAg
ICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmluaXRpYWxpemVJbXBsT25JbXBsVGhyZWFk
IiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKGlzSW1wbFRocmVhZCgpKTsKICAgICBtX2xheWVyVHJl
ZUhvc3RJbXBsID0gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVMYXllclRyZWVIb3N0SW1wbCh0aGlz
KTsKLSAgICBjb25zdCBkb3VibGUgZGlzcGxheVJlZnJlc2hJbnRlcnZhbE1zID0gMTAwMC4wIC8g
NjAuMDsKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0SW1wbC0+c2V0dGluZ3MoKS5yZWZyZXNo
UmF0ZSA+IDApOworICAgIGNvbnN0IGRvdWJsZSBkaXNwbGF5UmVmcmVzaEludGVydmFsTXMgPSAx
MDAwLjAgLyBtX2xheWVyVHJlZUhvc3RJbXBsLT5zZXR0aW5ncygpLnJlZnJlc2hSYXRlOwogICAg
IE93blB0cjxDQ0ZyYW1lUmF0ZUNvbnRyb2xsZXI+IGZyYW1lUmF0ZUNvbnRyb2xsZXIgPSBhZG9w
dFB0cihuZXcgQ0NGcmFtZVJhdGVDb250cm9sbGVyKENDRGVsYXlCYXNlZFRpbWVTb3VyY2U6OmNy
ZWF0ZShkaXNwbGF5UmVmcmVzaEludGVydmFsTXMsIENDUHJveHk6OmltcGxUaHJlYWQoKSkpKTsK
ICAgICBtX3NjaGVkdWxlck9uSW1wbFRocmVhZCA9IENDU2NoZWR1bGVyOjpjcmVhdGUodGhpcywg
ZnJhbWVSYXRlQ29udHJvbGxlci5yZWxlYXNlKCkpOwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhy
ZWFkLT5zZXRWaXNpYmxlKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnZpc2libGUoKSk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwNzM3KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAx
MS0xMS0xNyAgSWFpbiBNZXJyaWNrICA8aHVza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hy
b21pdW1dIFBhc3Mgc2NyZWVuIHJlZnJlc2ggcmF0ZSBpbnRvIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA0MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYlNjcmVl
bkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2NyZWVuSW5mbzo6V2ViU2NyZWVuSW5mbyk6
CisgICAgICAgICogc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVN1cHBvcnQ6OnNjcmVlblJlZnJlc2hSYXRlKToKKyAgICAgICAgKiBzcmMvV2ViVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcDoKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdDo6cnVuVGVzdCk6CisKIDIw
MTEtMTEtMTcgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBQb2ludGVyIExvY2s6IFBhZ2UgU2V0dGluZ3MgdW5lY2Vzc2FyeQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNjcmVlbkluZm8uaAkocmV2aXNpb24gMTAwNzM3
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2NyZWVuSW5mby5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MywxMCArNjMsMTQgQEAgc3RydWN0IFdlYlNjcmVlbkluZm8gewogICAg
IC8vICAgc29tZSBvZiB0aGUgcmVjdGFuZ2xlJ3MgY29vcmRpbmF0ZXMgbWF5IGJlIG5lZ2F0aXZl
IHZhbHVlcyIuCiAgICAgV2ViUmVjdCBhdmFpbGFibGVSZWN0OwogCisgICAgLy8gTWVhc3VyZWQg
aW4gZnJhbWVzIHBlciBzZWNvbmQuIDAgaWYgdGhlIHJhdGUgaXMgdW5rbm93biBvciBub3QgYXBw
bGljYWJsZS4KKyAgICBkb3VibGUgcmVmcmVzaFJhdGU7CisKICAgICBXZWJTY3JlZW5JbmZvKCkK
ICAgICAgICAgOiBkZXB0aCgwKQogICAgICAgICAsIGRlcHRoUGVyQ29tcG9uZW50KDApCi0gICAg
ICAgICwgaXNNb25vY2hyb21lKGZhbHNlKSB7IH0KKyAgICAgICAgLCBpc01vbm9jaHJvbWUoZmFs
c2UpCisgICAgICAgICwgcmVmcmVzaFJhdGUoMCkgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBw
b3J0LmNwcAkocmV2aXNpb24gMTAwNzM3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
UGxhdGZvcm1TdXBwb3J0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1OCw2ICsxMDU4LDE0IEBA
IEludFJlY3QgUGxhdGZvcm1TdXBwb3J0OjpzY3JlZW5BdmFpbGFibGUKICAgICByZXR1cm4gY2xp
ZW50LT5zY3JlZW5JbmZvKCkuYXZhaWxhYmxlUmVjdDsKIH0KIAorZG91YmxlIFBsYXRmb3JtU3Vw
cG9ydDo6c2NyZWVuUmVmcmVzaFJhdGUoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgV2ViV2lkZ2V0
Q2xpZW50KiBjbGllbnQgPSB0b1dlYldpZGdldENsaWVudCh3aWRnZXQpOworICAgIGlmICghY2xp
ZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gY2xpZW50LT5zY3JlZW5JbmZvKCku
cmVmcmVzaFJhdGU7Cit9CisKIGJvb2wgUGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKE5Q
UCBucHApCiB7CiAgICAgLy8gRklYTUU6IEdpdmUgdGhlIGVtYmVkZGVyIGEgd2F5IHRvIGNvbnRy
b2wgdGhpcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAJKHJldmlzaW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgIlBs
YXRmb3JtQ29udGV4dFNraWEuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKQEAgLTI3
NDUsMTIgKzI3NDYsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBv
cwogICAgIH0gZWxzZSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJXZWJWaWV3SW1wbDo6c2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKHRydWUpIiwgdGhpcywgMCk7CiAKKyAgICAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0UmVmcmVzaFJhdGUgPSA2MC4wOworCiAgICAgICAg
IFdlYkNvcmU6OkNDU2V0dGluZ3MgY2NTZXR0aW5nczsKICAgICAgICAgY2NTZXR0aW5ncy5hY2Nl
bGVyYXRlUGFpbnRpbmcgPSBwYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQoKTsKICAgICAgICAgY2NTZXR0aW5ncy5jb21wb3NpdGVPZmZzY3JlZW4gPSBzZXR0aW5n
cygpLT5jb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKCk7CiAgICAgICAgIGNjU2V0dGluZ3MuZW5h
YmxlQ29tcG9zaXRvclRocmVhZCA9IHNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigp
OwogICAgICAgICBjY1NldHRpbmdzLnNob3dGUFNDb3VudGVyID0gc2V0dGluZ3MoKS0+c2hvd0ZQ
U0NvdW50ZXIoKTsKICAgICAgICAgY2NTZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUgPSBz
ZXR0aW5ncygpLT5zaG93UGxhdGZvcm1MYXllclRyZWUoKTsKKyAgICAgICAgY2NTZXR0aW5ncy5y
ZWZyZXNoUmF0ZSA9IHNjcmVlblJlZnJlc2hSYXRlKHBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXco
KSk7CisgICAgICAgIEFTU0VSVChjY1NldHRpbmdzLnJlZnJlc2hSYXRlID49IDApOworICAgICAg
ICBpZiAoIWNjU2V0dGluZ3MucmVmcmVzaFJhdGUpCisgICAgICAgICAgICBjY1NldHRpbmdzLnJl
ZnJlc2hSYXRlID0gZGVmYXVsdFJlZnJlc2hSYXRlOwogCiAgICAgICAgIG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0ID0gTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpjcmVhdGUoV2ViVmlld0lt
cGxDb250ZW50UGFpbnRlcjo6Y3JlYXRlKHRoaXMpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0
ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywgY2NTZXR0aW5ncyk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAJKHJldmlzaW9uIDEwMDczNykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Myw2ICszNjMsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHJ1blRlc3QoYm9vbCB0aHJlYWRlZCkKICAgICB7
CiAgICAgICAgIG1fc2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCA9IHRocmVhZGVkOwor
ICAgICAgICBtX3NldHRpbmdzLnJlZnJlc2hSYXRlID0gMTAwLjA7CiAgICAgICAgIHdlYmtpdF9z
dXBwb3J0OjpQb3N0RGVsYXllZFRhc2soQ0NMYXllclRyZWVIb3N0VGVzdDo6b25CZWdpblRlc3Qs
IHN0YXRpY19jYXN0PHZvaWQqPih0aGlzKSwgMCk7CiAgICAgICAgIG1fdGltZW91dFRhc2sgPSBu
ZXcgVGltZW91dFRhc2sodGhpcyk7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0RGVsYXll
ZFRhc2sobV90aW1lb3V0VGFzaywgNTAwMCk7IC8vIHdlYmtpdF9zdXBwb3J0IHRha2VzIG93bmVy
c2hpcCBvZiB0aGUgdGFzawo=
</data>

          </attachment>
      

    </bug>

</bugzilla>