<?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>96335</bug_id>
          
          <creation_ts>2012-09-10 16:25:32 -0700</creation_ts>
          <short_desc>Clicking a scrollbar unfocuses the current activeElement</short_desc>
          <delta_ts>2022-04-24 13:56:57 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=239524</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716660</commentid>
    <comment_count>0</comment_count>
      <attachid>163242</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-10 16:25:32 -0700</bug_when>
    <thetext>Created attachment 163242
Reduction

If you activate a textbox and then scroll a div the textbox loses focus. There&apos;s special code in EventHandler for the frame&apos;s scrollbar to not move the focus, but overflow scrollbars are not handled properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716665</commentid>
    <comment_count>1</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-10 16:26:44 -0700</bug_when>
    <thetext>Note: There&apos;s a catch here. We *should* move the focus when clicking the scrollbar in a &lt;textarea&gt;, but not for other elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716819</commentid>
    <comment_count>2</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-10 21:31:11 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Note: There&apos;s a catch here. We *should* move the focus when clicking the scrollbar in a &lt;textarea&gt;, but not for other elements.

This is actually true for all form controls, not just textarea. ex. Clicking the scrollbar in a multi select.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716834</commentid>
    <comment_count>3</comment_count>
      <attachid>163277</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-10 21:59:23 -0700</bug_when>
    <thetext>Created attachment 163277
Patch

Don&apos;t move focus when clicking scrollbars unless inside an enabled form control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717546</commentid>
    <comment_count>4</comment_count>
      <attachid>163435</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-11 14:20:26 -0700</bug_when>
    <thetext>Created attachment 163435
Patch

Pass the IntPoint instead of the whole PlatformMouseEvent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719511</commentid>
    <comment_count>5</comment_count>
      <attachid>163435</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-13 08:16:23 -0700</bug_when>
    <thetext>Comment on attachment 163435
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        This patch also simplifies handleMousePressEvent and removes some dead code related to
&gt; +        widget based input controls that no longer exist.

can the removal be on its own patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720021</commentid>
    <comment_count>6</comment_count>
      <attachid>163435</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-13 15:24:15 -0700</bug_when>
    <thetext>Comment on attachment 163435
Patch

Yeah, this patch does too much. We need to separate the two changes. Historically, this code is very under-tested so making a big change like this is likely to cause a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722944</commentid>
    <comment_count>7</comment_count>
      <attachid>164596</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-18 11:44:30 -0700</bug_when>
    <thetext>Created attachment 164596
Patch

Remove all the cleanup code. Only fix the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723594</commentid>
    <comment_count>8</comment_count>
      <attachid>164596</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-19 08:55:26 -0700</bug_when>
    <thetext>Comment on attachment 164596
Patch

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

Implementation looks good. Most important thing now is to decide that is the behavior we want. Could you add to your changelog other browsers&apos; behavior we now match/dismatch?

One question below:

&gt; Source/WebCore/page/EventHandler.cpp:2298
&gt; +    if (FrameView* view = m_frame-&gt;view()) {
&gt; +        if (view-&gt;scrollbarAtPoint(windowPoint))
&gt; +            return true;
&gt; +    }
&gt; +
&gt; +    if (RenderView* renderView = m_frame-&gt;contentRenderer()) {
&gt; +        HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active);
&gt; +        HitTestResult result(windowPoint);
&gt; +        renderView-&gt;hitTest(request, result);
&gt; +        return result.scrollbar();
&gt; +    }
&gt; +
&gt; +    return false;

Do we need both ifs? when would one fail and the other not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723738</commentid>
    <comment_count>9</comment_count>
      <attachid>164596</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-09-19 13:01:29 -0700</bug_when>
    <thetext>Comment on attachment 164596
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:2263
&gt; +        // Don&apos;t change the focus if the click is inside a scrollbar unless it&apos;s in a form control.

Interpreting a sentence that contains a negation tends to be more difficult than interpreting a sentence that is written in a positive form (i.e. doesn&apos;t contain with a negation). This is exacerbated when such a sentence contains more than one negation, especially a &quot;unless&quot; clause. See my remark below for one idea how we can encode the content of this comment into a more readable for by taking advantage of the flow control structure (below) to provide context for an inline comment.

&gt; Source/WebCore/page/EventHandler.cpp:2266
&gt; +        Element* element = node &amp;&amp; node-&gt;isElementNode() ? toElement(node) : 0;
&gt; +        if (!(element &amp;&amp; element-&gt;isFormControlElement()) &amp;&amp; isInsideScrollbar(mouseEvent.position()))
&gt; +            return true;

This code is OK as-is. We can simplify this code, noticing that element is null when either node is null or node-&gt;isElementNode() evaluates to false, to read:

if (node &amp;&amp; node-&gt;isElementNode()) {
    if (!toElement(node)-&gt;isFormControlElement() &amp;&amp; isInsideScrollbar(mouseEvent.position()))
        return true; // Don&apos;t change focus.
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723795</commentid>
    <comment_count>10</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 13:47:27 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 164596 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164596&amp;action=review
&gt; 
&gt; ... 
&gt; Do we need both ifs? when would one fail and the other not?

I&apos;m not sure if it&apos;s possible. If you look at FrameLoader::open we can create a Frame and set a FrameView, but it&apos;s not clear that the document will be attached immediately, or if you could have a lazy attach on a loading frame.

It also looks like anything that goes through FrameLoader::clear will have document set to 0, removing the RenderView, but it would still have a FrameView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723854</commentid>
    <comment_count>11</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 14:52:18 -0700</bug_when>
    <thetext>Downstream Chrome bug: http://code.google.com/p/chromium/issues/detail?id=51469

After testing it appears that we match IE9 and Opera with our current behavior, and it&apos;s Gecko that doesn&apos;t move the focus. Hmm... so which one should we match?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723855</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 14:58:51 -0700</bug_when>
    <thetext>&gt; After testing it appears that we match IE9 and Opera with our current behavior, and it&apos;s Gecko that doesn&apos;t move the focus. Hmm... so which one should we match?

It might be worth talking with folks in #developers on irc.mozilla.org to see if they&apos;re interested in changing.  If Gecko changed, then all the browsers would work the same way, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723868</commentid>
    <comment_count>13</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 15:13:15 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; After testing it appears that we match IE9 and Opera with our current behavior, and it&apos;s Gecko that doesn&apos;t move the focus. Hmm... so which one should we match?
&gt; 
&gt; It might be worth talking with folks in #developers on irc.mozilla.org to see if they&apos;re interested in changing.  If Gecko changed, then all the browsers would work the same way, right?

The original bug referenced this stackoverflow post that mentions IE8, Firefox and Safari didn&apos;t have this behavior, but I just tested IE8/WinXP and IE9/Win7 and it does move the focus:

http://stackoverflow.com/questions/1345473/google-chrome-focus-issue-with-the-scrollbar

Firefox&apos;s behavior of not moving the focus seems more logical to me. Just because I scrolled down a form doesn&apos;t mean I wanted to unfocus the input I was typing into. It&apos;s also weird that the FrameView&apos;s scrollbars are special, it means you don&apos;t get the same behavior from a full height div with an overflow scrollbar (ex. Google+).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723874</commentid>
    <comment_count>14</comment_count>
      <attachid>164784</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 15:19:13 -0700</bug_when>
    <thetext>Created attachment 164784
Patch

Review comment changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723953</commentid>
    <comment_count>15</comment_count>
      <attachid>164784</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 16:34:40 -0700</bug_when>
    <thetext>Comment on attachment 164784
Patch

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

New failing tests:
scrollbars/scrollbar-iframe-click-does-not-blur-content.html
scrollbars/scrollbar-click-does-not-blur-content.html
fast/events/mousedown-in-subframe-scrollbar.html
fast/overflow/scrollbar-click-retains-focus.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723987</commentid>
    <comment_count>16</comment_count>
      <attachid>164596</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 17:10:35 -0700</bug_when>
    <thetext>Comment on attachment 164596
Patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2266
&gt;&gt; +            return true;
&gt; 
&gt; This code is OK as-is. We can simplify this code, noticing that element is null when either node is null or node-&gt;isElementNode() evaluates to false, to read:
&gt; 
&gt; if (node &amp;&amp; node-&gt;isElementNode()) {
&gt;     if (!toElement(node)-&gt;isFormControlElement() &amp;&amp; isInsideScrollbar(mouseEvent.position()))
&gt;         return true; // Don&apos;t change focus.
&gt; }

Your suggested code is not correct and is not logically equivalent to the original code. It now fails for cases where there is no node, but the click is inside a scrollbar (ie. it&apos;s the FrameView&apos;s scrollbar).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724006</commentid>
    <comment_count>17</comment_count>
      <attachid>164807</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-09-19 17:44:49 -0700</bug_when>
    <thetext>Created attachment 164807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724042</commentid>
    <comment_count>18</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-09-19 18:19:46 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; [...]
&gt; Your suggested code is not correct and is not logically equivalent to the original code. It now fails for cases where there is no node, but the click is inside a scrollbar (ie. it&apos;s the FrameView&apos;s scrollbar).

You&apos;re right. Disregard my suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724045</commentid>
    <comment_count>19</comment_count>
      <attachid>164807</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-19 18:24:18 -0700</bug_when>
    <thetext>Comment on attachment 164807
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:2265
&gt; +        if ((!element || !element-&gt;isFormControlElement()) &amp;&amp; isInsideScrollbar(mouseEvent.position()))

We probably also want to move focus for contentEditable elements?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724049</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-19 18:33:35 -0700</bug_when>
    <thetext>The OS X, Windows and Ubuntu native UIs don&apos;t move focus when you click on a scrollbar and WebKit doesn&apos;t move focus if you click on the viewport scrollbar. So, it seems like the most consistent thing is to not move focus when clicking on scrollbars.

It&apos;s not clear to me if we should be moving focus when you click on a textarea/contentEditable scrollbar. Seems more consistent to not do so. I&apos;m not sure if there&apos;s a native platform convention here. Would be nice to get consensus on this in a spec somewhere. HTML talks about activeElements. Maybe WHATWG?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755701</commentid>
    <comment_count>21</comment_count>
      <attachid>164807</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-31 16:10:42 -0700</bug_when>
    <thetext>Comment on attachment 164807
Patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2265
&gt;&gt; +        if ((!element || !element-&gt;isFormControlElement()) &amp;&amp; isInsideScrollbar(mouseEvent.position()))
&gt; 
&gt; We probably also want to move focus for contentEditable elements?

Firefox actually looks at whether the element is mouseFocusable. So, if we&apos;re going to have a check here, it should be that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781858</commentid>
    <comment_count>22</comment_count>
      <attachid>177323</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-12-03 13:57:18 -0800</bug_when>
    <thetext>Created attachment 177323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781859</commentid>
    <comment_count>23</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-12-03 13:57:49 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Created an attachment (id=177323) [details]
&gt; Patch

Updated to now check isMouseFocusable and made the test cover these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782020</commentid>
    <comment_count>24</comment_count>
      <attachid>177323</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-03 16:32:44 -0800</bug_when>
    <thetext>Comment on attachment 177323
Patch

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

Please make sure to address the non-nits before committing.

&gt; Source/WebCore/page/EventHandler.cpp:2398
&gt; +        if ((!node || !node-&gt;isMouseFocusable()) &amp;&amp; isInsideScrollbar(mouseEvent.position()))

Looks like you can remove the null checks in the code below now that you&apos;re null-checking node here.

&gt; Source/WebCore/page/EventHandler.cpp:2420
&gt; +        HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active);

I don&apos;t think you need HitTestRequest::Active here. I know a bunch of places pass both ReadOnly and Active, but looking at the code, I expect they&apos;re all wrong. Not sure. Did you find something broke without the Active?

&gt; LayoutTests/fast/overflow/scrollbar-click-retains-focus.html:50
&gt; +function click(x, y) {

Nit: curly should go on new line. The de-facto style for JS is that we put the curly on new lines for names functions, but not anonymous ones.

&gt; LayoutTests/fast/overflow/scrollbar-click-retains-focus.html:79
&gt; +    shouldBeEqualToString(&quot;document.activeElement.tagName&quot;, &quot;INPUT&quot;);

Won&apos;t these fail on platforms that use overlay scrollbars or do overlay scrollbars always show up for overflow:scroll? I&apos;m not sure if there&apos;s a way to test overlay scrollbars at all. You could make the test work by measuring the width of the scrollbar (subtract clientWidth from offsetWidth on an overflow:scroll element). Or you could WONTFIX it for platforms with overlay scrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782046</commentid>
    <comment_count>25</comment_count>
      <attachid>177323</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-12-03 16:56:45 -0800</bug_when>
    <thetext>Comment on attachment 177323
Patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2398
&gt;&gt; +        if ((!node || !node-&gt;isMouseFocusable()) &amp;&amp; isInsideScrollbar(mouseEvent.position()))
&gt; 
&gt; Looks like you can remove the null checks in the code below now that you&apos;re null-checking node here.

You can&apos;t because this null check only counts if the click is inside a scrollbar, notice the parens.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2420
&gt;&gt; +        HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active);
&gt; 
&gt; I don&apos;t think you need HitTestRequest::Active here. I know a bunch of places pass both ReadOnly and Active, but looking at the code, I expect they&apos;re all wrong. Not sure. Did you find something broke without the Active?

Oh wow, it seems the code has changed quite a big since I originally uploaded this patch. At one point you needed to pass both.

&gt;&gt; LayoutTests/fast/overflow/scrollbar-click-retains-focus.html:79
&gt;&gt; +    shouldBeEqualToString(&quot;document.activeElement.tagName&quot;, &quot;INPUT&quot;);
&gt; 
&gt; Won&apos;t these fail on platforms that use overlay scrollbars or do overlay scrollbars always show up for overflow:scroll? I&apos;m not sure if there&apos;s a way to test overlay scrollbars at all. You could make the test work by measuring the width of the scrollbar (subtract clientWidth from offsetWidth on an overflow:scroll element). Or you could WONTFIX it for platforms with overlay scrollbars.

DRT always uses regular scrollbars unless you do setUsesOverlayScrollbars so that shouldn&apos;t be the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782106</commentid>
    <comment_count>26</comment_count>
      <attachid>177389</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-12-03 18:22:07 -0800</bug_when>
    <thetext>Created attachment 177389
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783402</commentid>
    <comment_count>27</comment_count>
      <attachid>177389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 22:24:10 -0800</bug_when>
    <thetext>Comment on attachment 177389
Patch for landing

Clearing flags on attachment: 177389

Committed r136642: &lt;http://trac.webkit.org/changeset/136642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783403</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 22:24:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>163242</attachid>
            <date>2012-09-10 16:25:32 -0700</date>
            <delta_ts>2012-09-10 16:25:32 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>Scrollbar Focus Reduction.html</filename>
            <type>text/html</type>
            <size>532</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+Cgo8ZGl2IGlkPSJ4IiB0YWJpbmRleD0iMSI+Q2xpY2tpbmcgdGhlIHdp
bmRvdyBzY3JvbGxiYXIgZG9lc24ndCBjaGFuZ2UgdGhlIGZvY3VzLCBidXQgdGhlIG92ZXJmbG93
IHNjcm9sbGJhciBiZWxvdyB3aWxsLiBUaGUgcGFnZSBzaG91bGQgbm90IHR1cm4gcmVkLjwvZGl2
PgoKPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDEwMHB4OyBvdmVyZmxvdzogc2Ny
b2xsOyBib3JkZXI6IDFweCBzb2xpZCByZWQ7Ij4KICAgIDxkaXYgc3R5bGU9ImhlaWdodDogNTAw
cHg7IHdpZHRoOiA1MDBweDsiPklubmVyIHRleHQuPC9kaXY+CiAgICBGb28gYmFyIGJhei4KPC9k
aXY+Cgo8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMDAwMHB4OyI+PC9kaXY+Cgo8c2NyaXB0PgogIHZh
ciB4ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKTsKICB4LmZvY3VzKCk7CiAgeC5vbmJs
dXIgPSBmdW5jdGlvbigpIHsKICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZCA9ICdy
ZWQnOwogIH0KPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163277</attachid>
            <date>2012-09-10 21:59:23 -0700</date>
            <delta_ts>2012-09-11 14:20:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-20120910215859.patch</filename>
            <type>text/plain</type>
            <size>13842</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU4MTk5OWU5ZDg4NmJm
NTUzYmMwMmNhMTA2NTY4YTgxN2M2ZmZkNC4uNjI2YWUzZWIyMzRiNzZkMjQzMjczNzNmMGZlMDk1
ZTU3YWU4OTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEwICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugb25seSB0
ZXN0ZWQgZm9yIGNsaWNrcyBpbnNpZGUgZnJhbWUgc2Nyb2xsYmFycyBiZWZvcmUgbW92aW5nIHRo
ZSBmb2N1cywKKyAgICAgICAgdGhpcyBwYXRjaCBleHBhbmRzIHRoZSBjaGVjayB0byBvdmVyZmxv
dyBzY3JvbGxiYXJzLiBOb3cgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyCisgICAgICAgIHdp
bGwgbm90IG1vdmUgdGhlIGZvY3VzIGZyb20gYW4gaW5wdXQgb3Igb3RoZXIgZm9jdXNlZCBlbGVt
ZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBzaW1wbGlmaWVzIGhhbmRsZU1vdXNlUHJl
c3NFdmVudCBhbmQgcmVtb3ZlcyBzb21lIGRlYWQgY29kZSByZWxhdGVkIHRvCisgICAgICAgIHdp
ZGdldCBiYXNlZCBpbnB1dCBjb250cm9scyB0aGF0IG5vIGxvbmdlciBleGlzdC4KKworICAgICAg
ICBUZXN0OiBmYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwK
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgICBSZW1vdmUgZGVh
ZCBjb2RlIGFuZCBlbnN1cmUgc2Nyb2xsYmFycyBzd2FsbG93IGV2ZW50cy4gIAorICAgICAgICAg
IE5ldmVyIHN0YXJ0IHNlbGVjdGlvbnMgaW5zaWRlIHNjcm9sbGJhcnMuIFRoaXMgY2F1c2VzIGFz
c2VydHMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVu
dCk6IENoZWNrIHRoYXQgdGhlIGNsaWNrIGlzIG5vdCBpbnNpZGUgYSBzY3JvbGxiYXIgYmVmb3Jl
IG1vdmluZyB0aGUgZm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzQ2xp
Y2tJbnNpZGVTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50KTogTmV2ZXIgc3RhcnQgc2VsZWN0
aW9ucyBpbnNpZGUgc2Nyb2xsYmFycy4gVGhpcyBjYXVzZXMgYXNzZXJ0cy4KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKToKKwogMjAxMi0wOS0wNiAgTGF1cm8gTmV0byAgPGxh
dXJvLm5ldG9Ab3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIERlcHJlY2F0ZSBTdHJpbmcg
Kz0gb3BlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwMDFmZDZk
OWU5ZTExNjI5NWQyMGM1MDkyMzAxOTI3YTA1ZDdkZjkwLi5jYTE4YjI2NTM3ZDBmYTU4NzE1MzM1
Y2U4NDE4ZTEwYTNjYjcyZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC01NzgsOCArNTc4LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVu
dChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKICAgICBib29sIHNpbmds
ZUNsaWNrID0gZXZlbnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPD0gMTsKIAogICAgIC8vIElmIHdl
IGdvdCB0aGUgZXZlbnQgYmFjaywgdGhhdCBtdXN0IG1lYW4gaXQgd2Fzbid0IHByZXZlbnRlZCwK
LSAgICAvLyBzbyBpdCdzIGFsbG93ZWQgdG8gc3RhcnQgYSBkcmFnIG9yIHNlbGVjdGlvbi4KLSAg
ICBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0ID0gY2FuTW91c2VEb3duU3RhcnRTZWxlY3QoZXZl
bnQudGFyZ2V0Tm9kZSgpKTsKKyAgICAvLyBzbyBpdCdzIGFsbG93ZWQgdG8gc3RhcnQgYSBkcmFn
IG9yIHNlbGVjdGlvbiBpZiBpdCB3YXNuJ3QgaW4gYSBzY3JvbGxiYXIuCisgICAgbV9tb3VzZURv
d25NYXlTdGFydFNlbGVjdCA9IGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGV2ZW50LnRhcmdldE5v
ZGUoKSkgJiYgIWV2ZW50LnNjcm9sbGJhcigpOwogICAgIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAgICAgLy8gQ2FyZWZ1bCB0aGF0IHRoZSBkcmFnIHN0YXJ0aW5nIGxvZ2ljIHN0YXlzIGlu
IHN5bmMgd2l0aCBldmVudE1heVN0YXJ0RHJhZygpCkBAIC0xNTQyLDYgKzE1NDIsOSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgbW91c2VFdmVudCkKIAogICAgIC8vIElmIHRoZSBoaXQgdGVzdGluZyBvcmlnaW5hbGx5
IGRldGVybWluZWQgdGhlIGV2ZW50IHdhcyBpbiBhIHNjcm9sbGJhciwgcmVmZXRjaCB0aGUgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cwogICAgIC8vIGluIGNhc2UgdGhlIHNjcm9sbGJhciB3
aWRnZXQgd2FzIGRlc3Ryb3llZCB3aGVuIHRoZSBtb3VzZSBldmVudCB3YXMgaGFuZGxlZC4KKyAg
ICAvLworICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMgd3JvbmcgYmVjYXVzZSBpZiB0aGUgZXZl
bnQgaGFuZGxlciBtYWRlIGEgbmV3IHNjcm9sbGJhciBhcHBlYXIgdGhlIGV2ZW50CisgICAgLy8g
d29uJ3QgYmUgcGFzc2VkIHRvIGl0LgogICAgIGlmIChtZXYuc2Nyb2xsYmFyKCkpIHsKICAgICAg
ICAgY29uc3QgYm9vbCB3YXNMYXN0U2Nyb2xsQmFyID0gbWV2LnNjcm9sbGJhcigpID09IG1fbGFz
dFNjcm9sbGJhclVuZGVyTW91c2UuZ2V0KCk7CiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CkBA
IC0xNTUwLDM4ICsxNTUzLDE3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgICAgICAgICAg
bV9sYXN0U2Nyb2xsYmFyVW5kZXJNb3VzZSA9IDA7CiAgICAgfQogCi0gICAgaWYgKHN3YWxsb3dF
dmVudCkgewotICAgICAgICAvLyBzY3JvbGxiYXJzIHNob3VsZCBnZXQgZXZlbnRzIGFueXdheSwg
ZXZlbiBkaXNhYmxlZCBjb250cm9scyBtaWdodCBiZSBzY3JvbGxhYmxlCi0gICAgICAgIFNjcm9s
bGJhciogc2Nyb2xsYmFyID0gbWV2LnNjcm9sbGJhcigpOwotCi0gICAgICAgIHVwZGF0ZUxhc3RT
Y3JvbGxiYXJVbmRlck1vdXNlKHNjcm9sbGJhciwgdHJ1ZSk7Ci0KLSAgICAgICAgaWYgKHNjcm9s
bGJhcikKLSAgICAgICAgICAgIHBhc3NNb3VzZVByZXNzRXZlbnRUb1Njcm9sbGJhcihtZXYsIHNj
cm9sbGJhcik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gUmVmZXRjaCB0aGUgZXZlbnQgdGFy
Z2V0IG5vZGUgaWYgaXQgY3VycmVudGx5IGlzIHRoZSBzaGFkb3cgbm9kZSBpbnNpZGUgYW4gPGlu
cHV0PiBlbGVtZW50LgotICAgICAgICAvLyBJZiBhIG1vdXNlIGV2ZW50IGhhbmRsZXIgY2hhbmdl
cyB0aGUgaW5wdXQgZWxlbWVudCB0eXBlIHRvIG9uZSB0aGF0IGhhcyBhIHdpZGdldCBhc3NvY2lh
dGVkLAotICAgICAgICAvLyB3ZSdkIGxpa2UgdG8gRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVBy
ZXNzRXZlbnQgdG8gcGFzcyB0aGUgZXZlbnQgdG8gdGhlIHdpZGdldCBhbmQgdGh1cyB0aGUKLSAg
ICAgICAgLy8gZXZlbnQgdGFyZ2V0IG5vZGUgY2FuJ3Qgc3RpbGwgYmUgdGhlIHNoYWRvdyBub2Rl
LgotICAgICAgICBpZiAobWV2LnRhcmdldE5vZGUoKS0+aXNTaGFkb3dSb290KCkgJiYgdG9TaGFk
b3dSb290KG1ldi50YXJnZXROb2RlKCkpLT5ob3N0KCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7
Ci0gICAgICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwotICAgICAgICAgICAgbWV2ID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+cHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgZG9jdW1lbnRQb2ludCwg
bW91c2VFdmVudCk7Ci0gICAgICAgIH0KLQotICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2Zy
YW1lLT52aWV3KCk7Ci0gICAgICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyID0gdmlldyA/IHZpZXct
PnNjcm9sbGJhckF0UG9pbnQobW91c2VFdmVudC5wb3NpdGlvbigpKSA6IDA7Ci0gICAgICAgIGlm
ICghc2Nyb2xsYmFyKQotICAgICAgICAgICAgc2Nyb2xsYmFyID0gbWV2LnNjcm9sbGJhcigpOwor
ICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKKyAgICBTY3JvbGxiYXIqIHNj
cm9sbGJhciA9IHZpZXcgPyB2aWV3LT5zY3JvbGxiYXJBdFBvaW50KG1vdXNlRXZlbnQucG9zaXRp
b24oKSkgOiAwOworICAgIGlmICghc2Nyb2xsYmFyKQorICAgICAgICBzY3JvbGxiYXIgPSBtZXYu
c2Nyb2xsYmFyKCk7CiAKLSAgICAgICAgdXBkYXRlTGFzdFNjcm9sbGJhclVuZGVyTW91c2Uoc2Ny
b2xsYmFyLCB0cnVlKTsKKyAgICB1cGRhdGVMYXN0U2Nyb2xsYmFyVW5kZXJNb3VzZShzY3JvbGxi
YXIsIHRydWUpOwogCi0gICAgICAgIGlmIChzY3JvbGxiYXIgJiYgcGFzc01vdXNlUHJlc3NFdmVu
dFRvU2Nyb2xsYmFyKG1ldiwgc2Nyb2xsYmFyKSkKLSAgICAgICAgICAgIHN3YWxsb3dFdmVudCA9
IHRydWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN3YWxsb3dFdmVudCA9IGhhbmRsZU1v
dXNlUHJlc3NFdmVudChtZXYpOwotICAgIH0KKyAgICBpZiAoc2Nyb2xsYmFyICYmIHBhc3NNb3Vz
ZVByZXNzRXZlbnRUb1Njcm9sbGJhcihtZXYsIHNjcm9sbGJhcikpCisgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgcmV0dXJuIHN3YWxsb3dFdmVudDsKKyAgICByZXR1cm4gc3dhbGxvd0V2ZW50
IHx8IGhhbmRsZU1vdXNlUHJlc3NFdmVudChtZXYpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBvbmx5
IGV4aXN0cyBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qga25vdyBob3cgdG8gZGVsaXZlciAKQEAg
LTIxOTksMTMgKzIxODEsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3VzZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZQogICAgICAgICBzd2Fs
bG93RXZlbnQgPSBtX25vZGVVbmRlck1vdXNlLT5kaXNwYXRjaE1vdXNlRXZlbnQobW91c2VFdmVu
dCwgZXZlbnRUeXBlLCBjbGlja0NvdW50KTsKIAogICAgIGlmICghc3dhbGxvd0V2ZW50ICYmIGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHsKLQotICAgICAgICAvLyBJ
ZiBjbGlja2luZyBvbiBhIGZyYW1lIHNjcm9sbGJhciwgZG8gbm90IG1lc3MgdXAgd2l0aCBjb250
ZW50IGZvY3VzLgotICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygp
KSB7Ci0gICAgICAgICAgICBpZiAodmlldy0+c2Nyb2xsYmFyQXRQb2ludChtb3VzZUV2ZW50LnBv
c2l0aW9uKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCiAg
ICAgICAgIC8vIFRoZSBsYXlvdXQgbmVlZHMgdG8gYmUgdXAgdG8gZGF0ZSB0byBkZXRlcm1pbmUg
aWYgYW4gZWxlbWVudCBpcyBmb2N1c2FibGUuCiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCkt
PnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0yMjMzLDYgKzIy
MDgsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UKICAgICAgICAgICAgIG5vZGUgPSBub2Rl
LT5wYXJlbnRPckhvc3ROb2RlKCk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBEb24ndCBjaGFu
Z2UgdGhlIGZvY3VzIGlmIHRoZSBjbGljayBpcyBpbnNpZGUgYSBzY3JvbGxiYXIgdW5sZXNzIGl0
J3MgaW4gYSBmb3JtIGNvbnRyb2wuCisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlKSA6IDA7CisgICAgICAgIGlm
ICghKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkgJiYgaXNDbGlj
a0luc2lkZVNjcm9sbGJhcihtb3VzZUV2ZW50KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
CiAgICAgICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUgZXZlbnQu
ICBOb3RlIHdlIHNob3VsZCBuZXZlciBjbGVhciBzd2FsbG93RXZlbnQKICAgICAgICAgLy8gaWYg
dGhlIHBhZ2UgYWxyZWFkeSBzZXQgaXQgKGUuZy4sIGJ5IGNhbmNlbGluZyBkZWZhdWx0IGJlaGF2
aW9yKS4KICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKQEAgLTIy
NDksNiArMjIyOSwyMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZQogICAgIHJldHVybiBzd2Fs
bG93RXZlbnQ7CiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjppc0NsaWNrSW5zaWRlU2Nyb2xsYmFy
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkgY29uc3QKK3sKKyAgICBpZiAo
RnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CisgICAgICAgIGlmICh2aWV3LT5z
Y3JvbGxiYXJBdFBvaW50KG1vdXNlRXZlbnQucG9zaXRpb24oKSkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IG1fZnJh
bWUtPmNvbnRlbnRSZW5kZXJlcigpKSB7CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3Qo
SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7CisgICAg
ICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1vdXNlRXZlbnQucG9zaXRpb24oKSk7CisgICAgICAg
IHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdC5zY3JvbGxiYXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNpZiAh
UExBVEZPUk0oR1RLKSAmJiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoT1MoVU5JWCkgJiYgIU9T
KERBUldJTikpKQogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50
b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpIGNvbnN0CiB7CkBAIC0yNTU1LDYgKzI1NTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6c2Vu
ZENvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIAogICAg
IGlmIChtX2ZyYW1lLT5lZGl0b3IoKS0+YmVoYXZpb3IoKS5zaG91bGRTZWxlY3RPbkNvbnRleHR1
YWxNZW51Q2xpY2soKQogICAgICAgICAmJiAhbV9mcmFtZS0+c2VsZWN0aW9uKCktPmNvbnRhaW5z
KHZpZXdwb3J0UG9zKQorICAgICAgICAmJiAhbWV2LnNjcm9sbGJhcigpCiAgICAgICAgIC8vIEZJ
WE1FOiBJbiB0aGUgZWRpdGFibGUgY2FzZSwgd29yZCBzZWxlY3Rpb24gc29tZXRpbWVzIHNlbGVj
dHMgY29udGVudCB0aGF0IGlzbid0IHVuZGVybmVhdGggdGhlIG1vdXNlLgogICAgICAgICAvLyBJ
ZiB0aGUgc2VsZWN0aW9uIGlzIG5vbi1lZGl0YWJsZSwgd2UgZG8gd29yZCBzZWxlY3Rpb24gdG8g
bWFrZSBpdCBlYXNpZXIgdG8gdXNlIHRoZSBjb250ZXh0dWFsIG1lbnUgaXRlbXMKICAgICAgICAg
Ly8gYXZhaWxhYmxlIGZvciB0ZXh0IHNlbGVjdGlvbnMuICBCdXQgb25seSBpZiB3ZSdyZSBhYm92
ZSB0ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNmQ4YTBhYjc2NzNhOGM4
ZmRmYjRjOWE5NWRiZmMxYWFkOTU1ZDQ4Ny4uZjg4YzM0NmMxNzM4ODg0MGViY2NjODhjMjc3Mzll
NTgxYjkyNzg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNzUsNiArMjc1
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGlt
ZXI8RXZlbnRIYW5kbGVyPiopOwogICAgIHZvaWQgY2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCk7
CiAKKyAgICBib29sIGlzQ2xpY2tJbnNpZGVTY3JvbGxiYXIoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JikgY29uc3Q7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgZGlzcGF0
Y2hTeW50aGV0aWNUb3VjaEV2ZW50SWZFbmFibGVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA2
MDBiZTdiMDdhNzJhMGE4OGVkOTMyOTg4YTNkNjE1YzlkYjhjZDM1Li44ZDk5NTE2OTk3OTM5MDZl
MzdjN2IxNjFhZmQ2MjQ5YzAwNWZkZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKQEAgLTI4NTMsNiArMjg1Myw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmhpdFRl
c3RPdmVyZmxvd0NvbnRyb2xzKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSW50UG9pbnQm
CiAKICAgICBpbnQgcmVzaXplQ29udHJvbFNpemUgPSBtYXgocmVzaXplQ29udHJvbFJlY3QuaGVp
Z2h0KCksIDApOwogCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoaXQgdGVzdCB0aGUgbV9zY3Jv
bGxDb3JuZXIgYW5kIHBhc3MgaXQgYmFjayB0aHJvdWdoIHRoZSByZXN1bHQuCisKICAgICBpZiAo
bV92QmFyICYmIG1fdkJhci0+c2hvdWxkUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoKSkgewogICAg
ICAgICBMYXlvdXRSZWN0IHZCYXJSZWN0KHZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoMCwgYm94LT53
aWR0aCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtPmJvcmRlclRvcCgpLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDk0MTFjMTM2NDc5Y2UzNzRkNmY0YTQzNjc5MDc5MzJhNjcwNzJmM2UuLjk3NmI2YTI1
OGExZjRlMWRlYzM3Y2MwMjIwNGU3MWE0YjY0NWEwY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wOS0xMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBDbGlja2luZyBhIHNjcm9sbGJhciB1bmZvY3VzZXMgdGhlIGN1cnJlbnQgYWN0aXZlRWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYz
MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
dGVzdHMgdGhhdCBlbnN1cmUgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyIGRvZXNuJ3QgbW92
ZSB0aGUKKyAgICAgICAgZm9jdXMgdW5sZXNzIHRoZSBzY3JvbGxiYXIgaXMgaW5zaWRlIGFuIGVu
YWJsZWQgZm9ybSBjb250cm9sLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXIt
Y2xpY2stcmV0YWlucy1mb2N1cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
b3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbDogQWRkZWQuCisKIDIw
MTItMDktMDYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJv
bWl1bSBMaW51eCBFV1MgYm90cyBhbmQgQ1EgYm90cyBhcmUgZmxha3kKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0
YWlucy1mb2N1cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcwMDIxZWFkMDU2OWFiMWViYTRj
MzRkYTZkYThlZDBlZjk1NDM2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKK1RoaXMgdGVzdHMgY2xpY2tpbmcgc2Nyb2xsYmFycywgd2hpY2ggc2hvdWxk
IG9ubHkgbW92ZSB0aGUgZm9jdXMgb24gZm9ybSBjb250cm9scy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKworRm9jdXMgc2hvdWxkIHJlbWFpbiBpbiB0aGUgaW5wdXQKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJJTlBVVCIKKworRm9ybSBjb250cm9s
cyBzaG91bGQgbW92ZSB0aGUgZm9jdXMKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdO
YW1lIGlzICJURVhUQVJFQSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlz
ICJTRUxFQ1QiCisKK0Rpc2FibGVkIGZvcm0gY29udHJvbHMgc2hvdWxkIG5vdCBtb3ZlIHRoZSBm
b2N1cworUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIklOUFVUIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKyAgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5z
LWZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1y
ZXRhaW5zLWZvY3VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ViNWE3MTRjMDIxMGU0NzE2NzY2YmI5Zjdl
YjRkNjUwZmI1NDMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZs
b3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbApAQCAtMCwwICsxLDgzIEBACis8
IURPQ1RZUEUgaHRtbD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisKKzxpbnB1dD4KKworPHNlY3Rpb24gc3R5bGU9ImhlaWdodDogMTAw
cHg7IHdpZHRoOiAxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPjwvc2VjdGlvbj4KKworPHRleHRh
cmVhIHJvd3M9IjUiPgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQu
CisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0Lgor
ICAgIFRleHQuCis8L3RleHRhcmVhPgorCis8c2VsZWN0IG11bHRpcGxlPgorICAgIDxvcHRpb24+
IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRp
b24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxv
cHRpb24+IFRleHQuCis8L3NlbGVjdD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY2xpY2soeCwgeSkg
eworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBjbGlja1ZlcnRp
Y2FsU2Nyb2xsYmFyKHR5cGUpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IodHlwZSk7CisgICAgY2xpY2soZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAtIDUsIGVsZW1lbnQub2Zmc2V0VG9wICsgNSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNr
SG9yaXpvbnRhbFNjcm9sbGJhcih0eXBlKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKHR5cGUpOworICAgIGNsaWNrKGVsZW1lbnQub2Zmc2V0TGVmdCArIDUsIGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLSA1KTsKK30KKworZnVuY3Rp
b24gdGVzdChuYW1lLCBmbikgeworICAgIGRlYnVnKCI8YnI+IiArIG5hbWUpOworICAgIGZuKCk7
Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNsaWNraW5nIHNjcm9sbGJhcnMsIHdoaWNo
IHNob3VsZCBvbmx5IG1vdmUgdGhlIGZvY3VzIG9uIGZvcm0gY29udHJvbHMuIik7CisKK3Rlc3Qo
IkZvY3VzIHNob3VsZCByZW1haW4gaW4gdGhlIGlucHV0IiwgZnVuY3Rpb24oKSB7CisgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpOworICAgIGNsaWNrVmVydGljYWxT
Y3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBjbGlja0hvcml6b250YWxTY3JvbGxiYXIoInNlY3Rp
b24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
dGFnTmFtZSIsICJJTlBVVCIpOworfSk7CisKK3Rlc3QoIkZvcm0gY29udHJvbHMgc2hvdWxkIG1v
dmUgdGhlIGZvY3VzIiwgZnVuY3Rpb24oKSB7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigi
dGV4dGFyZWEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQudGFnTmFtZSIsICJURVhUQVJFQSIpOworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIo
InNlbGVjdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC50YWdOYW1lIiwgIlNFTEVDVCIpOworfSk7CisKK3Rlc3QoIkRpc2FibGVkIGZvcm0gY29u
dHJvbHMgc2hvdWxkIG5vdCBtb3ZlIHRoZSBmb2N1cyIsIGZ1bmN0aW9uKCkgeworICAgIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJzZWxlY3QiKS5kaXNhYmxlZCA9IHRydWU7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9s
bGJhcigic2VsZWN0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LnRhZ05hbWUiLCAiSU5QVVQiKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163435</attachid>
            <date>2012-09-11 14:20:26 -0700</date>
            <delta_ts>2012-09-18 11:44:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-20120911142000.patch</filename>
            <type>text/plain</type>
            <size>13830</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU4MTk5OWU5ZDg4NmJm
NTUzYmMwMmNhMTA2NTY4YTgxN2M2ZmZkNC4uNjBmMTc5MWEzNzI3OTQ1MDlhYmUyNzAwMzAyMjdl
NGZkMTY5NWNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEwICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugb25seSB0
ZXN0ZWQgZm9yIGNsaWNrcyBpbnNpZGUgZnJhbWUgc2Nyb2xsYmFycyBiZWZvcmUgbW92aW5nIHRo
ZSBmb2N1cywKKyAgICAgICAgdGhpcyBwYXRjaCBleHBhbmRzIHRoZSBjaGVjayB0byBvdmVyZmxv
dyBzY3JvbGxiYXJzLiBOb3cgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyCisgICAgICAgIHdp
bGwgbm90IG1vdmUgdGhlIGZvY3VzIGZyb20gYW4gaW5wdXQgb3Igb3RoZXIgZm9jdXNlZCBlbGVt
ZW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBzaW1wbGlmaWVzIGhhbmRsZU1vdXNlUHJl
c3NFdmVudCBhbmQgcmVtb3ZlcyBzb21lIGRlYWQgY29kZSByZWxhdGVkIHRvCisgICAgICAgIHdp
ZGdldCBiYXNlZCBpbnB1dCBjb250cm9scyB0aGF0IG5vIGxvbmdlciBleGlzdC4KKworICAgICAg
ICBUZXN0OiBmYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwK
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgICBSZW1vdmUgZGVh
ZCBjb2RlIGFuZCBlbnN1cmUgc2Nyb2xsYmFycyBzd2FsbG93IGV2ZW50cy4gIAorICAgICAgICAg
IE5ldmVyIHN0YXJ0IHNlbGVjdGlvbnMgaW5zaWRlIHNjcm9sbGJhcnMuIFRoaXMgY2F1c2VzIGFz
c2VydHMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVu
dCk6IENoZWNrIHRoYXQgdGhlIGNsaWNrIGlzIG5vdCBpbnNpZGUgYSBzY3JvbGxiYXIgYmVmb3Jl
IG1vdmluZyB0aGUgZm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzSW5z
aWRlU2Nyb2xsYmFyKTogVGVzdHMgaWYgYSBwb2ludCBpcyBpbiBhIHNjcm9sbGJhci4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4
dE1lbnVFdmVudCk6IE5ldmVyIHN0YXJ0IHNlbGVjdGlvbnMgaW5zaWRlIHNjcm9sbGJhcnMuIFRo
aXMgY2F1c2VzIGFzc2VydHMuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKEV2ZW50SGFuZGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyk6
CisKIDIwMTItMDktMDYgIExhdXJvIE5ldG8gIDxsYXVyby5uZXRvQG9wZW5ib3NzYS5vcmc+CiAK
ICAgICAgICAgW1F0XSBEZXByZWNhdGUgU3RyaW5nICs9IG9wZXJhdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDAxZmQ2ZDllOWUxMTYyOTVkMjBjNTA5MjMwMTkyN2Ew
NWQ3ZGY5MC4uOTg5OTViYjE3YjA5MWNjYzhhNDgwMDEyM2M0NTY5MWQ0OTVjMTgwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNTc4LDggKzU3OCw4IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYgZXZlCiAgICAgYm9vbCBzaW5nbGVDbGljayA9IGV2ZW50LmV2ZW50KCkuY2xp
Y2tDb3VudCgpIDw9IDE7CiAKICAgICAvLyBJZiB3ZSBnb3QgdGhlIGV2ZW50IGJhY2ssIHRoYXQg
bXVzdCBtZWFuIGl0IHdhc24ndCBwcmV2ZW50ZWQsCi0gICAgLy8gc28gaXQncyBhbGxvd2VkIHRv
IHN0YXJ0IGEgZHJhZyBvciBzZWxlY3Rpb24uCi0gICAgbV9tb3VzZURvd25NYXlTdGFydFNlbGVj
dCA9IGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGV2ZW50LnRhcmdldE5vZGUoKSk7CisgICAgLy8g
c28gaXQncyBhbGxvd2VkIHRvIHN0YXJ0IGEgZHJhZyBvciBzZWxlY3Rpb24gaWYgaXQgd2Fzbid0
IGluIGEgc2Nyb2xsYmFyLgorICAgIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgPSBjYW5Nb3Vz
ZURvd25TdGFydFNlbGVjdChldmVudC50YXJnZXROb2RlKCkpICYmICFldmVudC5zY3JvbGxiYXIo
KTsKICAgICAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIC8vIENhcmVmdWwgdGhhdCB0
aGUgZHJhZyBzdGFydGluZyBsb2dpYyBzdGF5cyBpbiBzeW5jIHdpdGggZXZlbnRNYXlTdGFydERy
YWcoKQpAQCAtMTU0Miw2ICsxNTQyLDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
UHJlc3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiAKICAgICAv
LyBJZiB0aGUgaGl0IHRlc3Rpbmcgb3JpZ2luYWxseSBkZXRlcm1pbmVkIHRoZSBldmVudCB3YXMg
aW4gYSBzY3JvbGxiYXIsIHJlZmV0Y2ggdGhlIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMK
ICAgICAvLyBpbiBjYXNlIHRoZSBzY3JvbGxiYXIgd2lkZ2V0IHdhcyBkZXN0cm95ZWQgd2hlbiB0
aGUgbW91c2UgZXZlbnQgd2FzIGhhbmRsZWQuCisgICAgLy8KKyAgICAvLyBGSVhNRTogVGhpcyBj
b2RlIGlzIHdyb25nIGJlY2F1c2UgaWYgdGhlIGV2ZW50IGhhbmRsZXIgbWFkZSBhIG5ldyBzY3Jv
bGxiYXIgYXBwZWFyIHRoZSBldmVudAorICAgIC8vIHdvbid0IGJlIHBhc3NlZCB0byBpdC4KICAg
ICBpZiAobWV2LnNjcm9sbGJhcigpKSB7CiAgICAgICAgIGNvbnN0IGJvb2wgd2FzTGFzdFNjcm9s
bEJhciA9IG1ldi5zY3JvbGxiYXIoKSA9PSBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlLmdldCgp
OwogICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwpAQCAtMTU1MCwzOCArMTU1MywxNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgbW91c2VFdmVudCkKICAgICAgICAgICAgIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2Ug
PSAwOwogICAgIH0KIAotICAgIGlmIChzd2FsbG93RXZlbnQpIHsKLSAgICAgICAgLy8gc2Nyb2xs
YmFycyBzaG91bGQgZ2V0IGV2ZW50cyBhbnl3YXksIGV2ZW4gZGlzYWJsZWQgY29udHJvbHMgbWln
aHQgYmUgc2Nyb2xsYWJsZQotICAgICAgICBTY3JvbGxiYXIqIHNjcm9sbGJhciA9IG1ldi5zY3Jv
bGxiYXIoKTsKLQotICAgICAgICB1cGRhdGVMYXN0U2Nyb2xsYmFyVW5kZXJNb3VzZShzY3JvbGxi
YXIsIHRydWUpOwotCi0gICAgICAgIGlmIChzY3JvbGxiYXIpCi0gICAgICAgICAgICBwYXNzTW91
c2VQcmVzc0V2ZW50VG9TY3JvbGxiYXIobWV2LCBzY3JvbGxiYXIpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8vIFJlZmV0Y2ggdGhlIGV2ZW50IHRhcmdldCBub2RlIGlmIGl0IGN1cnJlbnRseSBp
cyB0aGUgc2hhZG93IG5vZGUgaW5zaWRlIGFuIDxpbnB1dD4gZWxlbWVudC4KLSAgICAgICAgLy8g
SWYgYSBtb3VzZSBldmVudCBoYW5kbGVyIGNoYW5nZXMgdGhlIGlucHV0IGVsZW1lbnQgdHlwZSB0
byBvbmUgdGhhdCBoYXMgYSB3aWRnZXQgYXNzb2NpYXRlZCwKLSAgICAgICAgLy8gd2UnZCBsaWtl
IHRvIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50IHRvIHBhc3MgdGhlIGV2ZW50
IHRvIHRoZSB3aWRnZXQgYW5kIHRodXMgdGhlCi0gICAgICAgIC8vIGV2ZW50IHRhcmdldCBub2Rl
IGNhbid0IHN0aWxsIGJlIHRoZSBzaGFkb3cgbm9kZS4KLSAgICAgICAgaWYgKG1ldi50YXJnZXRO
b2RlKCktPmlzU2hhZG93Um9vdCgpICYmIHRvU2hhZG93Um9vdChtZXYudGFyZ2V0Tm9kZSgpKS0+
aG9zdCgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewotICAgICAgICAgICAgSGl0VGVzdFJlcXVl
c3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlKTsKLSAgICAgICAgICAgIG1ldiA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnByZXBhcmVNb3Vz
ZUV2ZW50KHJlcXVlc3QsIGRvY3VtZW50UG9pbnQsIG1vdXNlRXZlbnQpOwotICAgICAgICB9Ci0K
LSAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwotICAgICAgICBTY3Jv
bGxiYXIqIHNjcm9sbGJhciA9IHZpZXcgPyB2aWV3LT5zY3JvbGxiYXJBdFBvaW50KG1vdXNlRXZl
bnQucG9zaXRpb24oKSkgOiAwOwotICAgICAgICBpZiAoIXNjcm9sbGJhcikKLSAgICAgICAgICAg
IHNjcm9sbGJhciA9IG1ldi5zY3JvbGxiYXIoKTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2Zy
YW1lLT52aWV3KCk7CisgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSB2aWV3ID8gdmlldy0+c2Ny
b2xsYmFyQXRQb2ludChtb3VzZUV2ZW50LnBvc2l0aW9uKCkpIDogMDsKKyAgICBpZiAoIXNjcm9s
bGJhcikKKyAgICAgICAgc2Nyb2xsYmFyID0gbWV2LnNjcm9sbGJhcigpOwogCi0gICAgICAgIHVw
ZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKHNjcm9sbGJhciwgdHJ1ZSk7CisgICAgdXBkYXRl
TGFzdFNjcm9sbGJhclVuZGVyTW91c2Uoc2Nyb2xsYmFyLCB0cnVlKTsKIAotICAgICAgICBpZiAo
c2Nyb2xsYmFyICYmIHBhc3NNb3VzZVByZXNzRXZlbnRUb1Njcm9sbGJhcihtZXYsIHNjcm9sbGJh
cikpCi0gICAgICAgICAgICBzd2FsbG93RXZlbnQgPSB0cnVlOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnQobWV2KTsKLSAgICB9
CisgICAgaWYgKHNjcm9sbGJhciAmJiBwYXNzTW91c2VQcmVzc0V2ZW50VG9TY3JvbGxiYXIobWV2
LCBzY3JvbGxiYXIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBzd2FsbG93
RXZlbnQ7CisgICAgcmV0dXJuIHN3YWxsb3dFdmVudCB8fCBoYW5kbGVNb3VzZVByZXNzRXZlbnQo
bWV2KTsKIH0KIAogLy8gVGhpcyBtZXRob2Qgb25seSBleGlzdHMgZm9yIHBsYXRmb3JtcyB0aGF0
IGRvbid0IGtub3cgaG93IHRvIGRlbGl2ZXIgCkBAIC0yMTk5LDEzICsyMTgxLDYgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgTm9kZSogdGFyZ2UKICAgICAgICAgc3dhbGxvd0V2ZW50ID0gbV9ub2RlVW5kZXJNb3Vz
ZS0+ZGlzcGF0Y2hNb3VzZUV2ZW50KG1vdXNlRXZlbnQsIGV2ZW50VHlwZSwgY2xpY2tDb3VudCk7
CiAKICAgICBpZiAoIXN3YWxsb3dFdmVudCAmJiBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50KSB7Ci0KLSAgICAgICAgLy8gSWYgY2xpY2tpbmcgb24gYSBmcmFtZSBzY3Jv
bGxiYXIsIGRvIG5vdCBtZXNzIHVwIHdpdGggY29udGVudCBmb2N1cy4KLSAgICAgICAgaWYgKEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkgewotICAgICAgICAgICAgaWYgKHZpZXct
PnNjcm9sbGJhckF0UG9pbnQobW91c2VFdmVudC5wb3NpdGlvbigpKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQogICAgICAgICAvLyBUaGUgbGF5b3V0IG5lZWRz
IHRvIGJlIHVwIHRvIGRhdGUgdG8gZGV0ZXJtaW5lIGlmIGFuIGVsZW1lbnQgaXMgZm9jdXNhYmxl
LgogICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKIApAQCAtMjIzMyw2ICsyMjA4LDExIEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUq
IHRhcmdlCiAgICAgICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpOwogICAg
ICAgICB9CiAKKyAgICAgICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBmb2N1cyBpZiB0aGUgY2xpY2sg
aXMgaW5zaWRlIGEgc2Nyb2xsYmFyIHVubGVzcyBpdCdzIGluIGEgZm9ybSBjb250cm9sLgorICAg
ICAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0
b0VsZW1lbnQobm9kZSkgOiAwOworICAgICAgICBpZiAoIShlbGVtZW50ICYmIGVsZW1lbnQtPmlz
Rm9ybUNvbnRyb2xFbGVtZW50KCkpICYmIGlzSW5zaWRlU2Nyb2xsYmFyKG1vdXNlRXZlbnQucG9z
aXRpb24oKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgICAgICAvLyBJZiBmb2N1
cyBzaGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LiAgTm90ZSB3ZSBzaG91bGQgbmV2
ZXIgY2xlYXIgc3dhbGxvd0V2ZW50CiAgICAgICAgIC8vIGlmIHRoZSBwYWdlIGFscmVhZHkgc2V0
IGl0IChlLmcuLCBieSBjYW5jZWxpbmcgZGVmYXVsdCBiZWhhdmlvcikuCiAgICAgICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CkBAIC0yMjQ5LDYgKzIyMjksMjMgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSogdGFyZ2UKICAgICByZXR1cm4gc3dhbGxvd0V2ZW50OwogfQogCitib29s
IEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29uc3QgSW50UG9pbnQmIHdpbmRvd1Bv
aW50KSBjb25zdAoreworICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCkp
IHsKKyAgICAgICAgaWYgKHZpZXctPnNjcm9sbGJhckF0UG9pbnQod2luZG93UG9pbnQpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkgeworICAgICAgICBIaXRUZXN0UmVx
dWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUpOworICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh3aW5kb3dQb2ludCk7CisgICAg
ICAgIHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdC5zY3JvbGxiYXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhKFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoT1MoVU5JWCkgJiYg
IU9TKERBUldJTikpKQogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tz
SW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0CiB7CkBAIC0yNTU1LDYgKzI1NTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
c2VuZENvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIAog
ICAgIGlmIChtX2ZyYW1lLT5lZGl0b3IoKS0+YmVoYXZpb3IoKS5zaG91bGRTZWxlY3RPbkNvbnRl
eHR1YWxNZW51Q2xpY2soKQogICAgICAgICAmJiAhbV9mcmFtZS0+c2VsZWN0aW9uKCktPmNvbnRh
aW5zKHZpZXdwb3J0UG9zKQorICAgICAgICAmJiAhbWV2LnNjcm9sbGJhcigpCiAgICAgICAgIC8v
IEZJWE1FOiBJbiB0aGUgZWRpdGFibGUgY2FzZSwgd29yZCBzZWxlY3Rpb24gc29tZXRpbWVzIHNl
bGVjdHMgY29udGVudCB0aGF0IGlzbid0IHVuZGVybmVhdGggdGhlIG1vdXNlLgogICAgICAgICAv
LyBJZiB0aGUgc2VsZWN0aW9uIGlzIG5vbi1lZGl0YWJsZSwgd2UgZG8gd29yZCBzZWxlY3Rpb24g
dG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIHRoZSBjb250ZXh0dWFsIG1lbnUgaXRlbXMKICAgICAg
ICAgLy8gYXZhaWxhYmxlIGZvciB0ZXh0IHNlbGVjdGlvbnMuICBCdXQgb25seSBpZiB3ZSdyZSBh
Ym92ZSB0ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNmQ4YTBhYjc2NzNh
OGM4ZmRmYjRjOWE5NWRiZmMxYWFkOTU1ZDQ4Ny4uZjI5MGNkN2IxZDAxY2E0NTdmNjIwNDIyNjA5
MmUxY2Y1ZjA0NTczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNzUsNiAr
Mjc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQo
VGltZXI8RXZlbnRIYW5kbGVyPiopOwogICAgIHZvaWQgY2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50
KCk7CiAKKyAgICBib29sIGlzSW5zaWRlU2Nyb2xsYmFyKGNvbnN0IEludFBvaW50JikgY29uc3Q7
CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgZGlzcGF0Y2hTeW50aGV0aWNU
b3VjaEV2ZW50SWZFbmFibGVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA2MDBiZTdiMDdhNzJh
MGE4OGVkOTMyOTg4YTNkNjE1YzlkYjhjZDM1Li44ZDk5NTE2OTk3OTM5MDZlMzdjN2IxNjFhZmQ2
MjQ5YzAwNWZkZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
QEAgLTI4NTMsNiArMjg1Myw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0Nv
bnRyb2xzKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSW50UG9pbnQmCiAKICAgICBpbnQg
cmVzaXplQ29udHJvbFNpemUgPSBtYXgocmVzaXplQ29udHJvbFJlY3QuaGVpZ2h0KCksIDApOwog
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoaXQgdGVzdCB0aGUgbV9zY3JvbGxDb3JuZXIgYW5k
IHBhc3MgaXQgYmFjayB0aHJvdWdoIHRoZSByZXN1bHQuCisKICAgICBpZiAobV92QmFyICYmIG1f
dkJhci0+c2hvdWxkUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoKSkgewogICAgICAgICBMYXlvdXRS
ZWN0IHZCYXJSZWN0KHZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoMCwgYm94LT53aWR0aCgpKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtPmJvcmRlclRvcCgpLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0MTFj
MTM2NDc5Y2UzNzRkNmY0YTQzNjc5MDc5MzJhNjcwNzJmM2UuLjk3NmI2YTI1OGExZjRlMWRlYzM3
Y2MwMjIwNGU3MWE0YjY0NWEwY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0xMCAg
RWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KKworICAgICAgICBDbGlja2lu
ZyBhIHNjcm9sbGJhciB1bmZvY3VzZXMgdGhlIGN1cnJlbnQgYWN0aXZlRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYzMzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdGhhdCBl
bnN1cmUgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyIGRvZXNuJ3QgbW92ZSB0aGUKKyAgICAg
ICAgZm9jdXMgdW5sZXNzIHRoZSBzY3JvbGxiYXIgaXMgaW5zaWRlIGFuIGVuYWJsZWQgZm9ybSBj
b250cm9sLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlu
cy1mb2N1cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Ny
b2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMDYgIFRv
bnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bSBMaW51eCBF
V1MgYm90cyBhbmQgQ1EgYm90cyBhcmUgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcwMDIxZWFkMDU2OWFiMWViYTRjMzRkYTZkYThlZDBl
Zjk1NDM2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Ny
b2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAK
K1RoaXMgdGVzdHMgY2xpY2tpbmcgc2Nyb2xsYmFycywgd2hpY2ggc2hvdWxkIG9ubHkgbW92ZSB0
aGUgZm9jdXMgb24gZm9ybSBjb250cm9scy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKKworRm9jdXMgc2hvdWxkIHJlbWFpbiBpbiB0aGUgaW5wdXQKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC50YWdOYW1lIGlzICJJTlBVVCIKKworRm9ybSBjb250cm9scyBzaG91bGQgbW92
ZSB0aGUgZm9jdXMKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJURVhU
QVJFQSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJTRUxFQ1QiCisK
K0Rpc2FibGVkIGZvcm0gY29udHJvbHMgc2hvdWxkIG5vdCBtb3ZlIHRoZSBmb2N1cworUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIklOUFVUIgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKyAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3Vz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2ViNWE3MTRjMDIxMGU0NzE2NzY2YmI5ZjdlYjRkNjUwZmI1NDMz
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFy
LWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRt
bD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CisKKzxpbnB1dD4KKworPHNlY3Rpb24gc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAx
MDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPjwvc2VjdGlvbj4KKworPHRleHRhcmVhIHJvd3M9IjUi
PgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4K
KyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCis8
L3RleHRhcmVhPgorCis8c2VsZWN0IG11bHRpcGxlPgorICAgIDxvcHRpb24+IFRleHQuCisgICAg
PG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCisg
ICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQu
Cis8L3NlbGVjdD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY2xpY2soeCwgeSkgeworICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBjbGlja1ZlcnRpY2FsU2Nyb2xsYmFy
KHR5cGUpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodHlwZSk7
CisgICAgY2xpY2soZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAtIDUs
IGVsZW1lbnQub2Zmc2V0VG9wICsgNSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrSG9yaXpvbnRhbFNj
cm9sbGJhcih0eXBlKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KHR5cGUpOworICAgIGNsaWNrKGVsZW1lbnQub2Zmc2V0TGVmdCArIDUsIGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLSA1KTsKK30KKworZnVuY3Rpb24gdGVzdChuYW1l
LCBmbikgeworICAgIGRlYnVnKCI8YnI+IiArIG5hbWUpOworICAgIGZuKCk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIGNsaWNraW5nIHNjcm9sbGJhcnMsIHdoaWNoIHNob3VsZCBvbmx5
IG1vdmUgdGhlIGZvY3VzIG9uIGZvcm0gY29udHJvbHMuIik7CisKK3Rlc3QoIkZvY3VzIHNob3Vs
ZCByZW1haW4gaW4gdGhlIGlucHV0IiwgZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpOworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInNl
Y3Rpb24iKTsKKyAgICBjbGlja0hvcml6b250YWxTY3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJJ
TlBVVCIpOworfSk7CisKK3Rlc3QoIkZvcm0gY29udHJvbHMgc2hvdWxkIG1vdmUgdGhlIGZvY3Vz
IiwgZnVuY3Rpb24oKSB7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigidGV4dGFyZWEiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFt
ZSIsICJURVhUQVJFQSIpOworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInNlbGVjdCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1l
IiwgIlNFTEVDVCIpOworfSk7CisKK3Rlc3QoIkRpc2FibGVkIGZvcm0gY29udHJvbHMgc2hvdWxk
IG5vdCBtb3ZlIHRoZSBmb2N1cyIsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzZWxl
Y3QiKS5kaXNhYmxlZCA9IHRydWU7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigic2VsZWN0
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRh
Z05hbWUiLCAiSU5QVVQiKTsKK30pOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164596</attachid>
            <date>2012-09-18 11:44:30 -0700</date>
            <delta_ts>2012-09-19 17:10:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-20120918114357.patch</filename>
            <type>text/plain</type>
            <size>11070</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMDE5M2MxZGEyNmE0
NTNhNDVjN2JkZWEzNmY0NzQ2ZjYwMDUwZC4uOWI3ZWZlMjRjY2Q4MGM1N2U5OTUzMDg5ZTI4OTk4
OWYxZGJhNDRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA5LTE4ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAKKyAgICAgICAgUHJldmlvdXNseSB3ZSBvbmx5
IHRlc3RlZCBmb3IgY2xpY2tzIGluc2lkZSBmcmFtZSBzY3JvbGxiYXJzIGJlZm9yZSBtb3Zpbmcg
dGhlIGZvY3VzLAorICAgICAgICB0aGlzIHBhdGNoIGV4cGFuZHMgdGhlIGNoZWNrIHRvIG92ZXJm
bG93IHNjcm9sbGJhcnMuIE5vdyBjbGlja2luZyBpbnNpZGUgYSBzY3JvbGxiYXIKKyAgICAgICAg
d2lsbCBub3QgbW92ZSB0aGUgZm9jdXMgZnJvbSBhbiBpbnB1dCBvciBvdGhlciBmb2N1c2VkIGVs
ZW1lbnQuCisgCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJl
dGFpbnMtZm9jdXMuaHRtbAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAg
ICAgICAgIE5ldmVyIHN0YXJ0IHNlbGVjdGlvbnMgaW5zaWRlIHNjcm9sbGJhcnMgYmVjYXVzZSBp
dCB3b3VsZCBjYXVzZSBhc3NlcnRzLiAKKyAgICAgICAgICBUaGlzIHdhc24ndCBhIHByb2JsZW0g
YmVmb3JlIGJlY2F1c2Ugd2UgYWx3YXlzIG1vdmVkIHRoZSBmb2N1cyB3aGVuIGNsaWNraW5nIGEg
c2Nyb2xsYmFyLiAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3Bh
dGNoTW91c2VFdmVudCk6IAorICAgICAgICAgIENoZWNrIHRoYXQgdGhlIGNsaWNrIGlzIG5vdCBp
bnNpZGUgYSBzY3JvbGxiYXIgYmVmb3JlIG1vdmluZyB0aGUgZm9jdXMuCisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmlzSW5zaWRlU2Nyb2xsYmFyKTogVGVzdHMgaWYgYSBwb2ludCBp
cyBpbiBhIHNjcm9sbGJhci4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgICAgTmV2ZXIgc3Rh
cnQgc2VsZWN0aW9ucyBpbnNpZGUgc2Nyb2xsYmFycyBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlIGFz
c2VydHMuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFu
ZGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyk6CisKIDIwMTItMDkt
MTggIEpvaG4gSi4gQmFydG9uICA8am9obmpiYXJ0b25AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFNldCBmb2N1cyBvbiB0aGUgRXh0ZW5zaW9uUGFuZWwncyBpZnJhbWUg
d2hlbiBpdCBpcyBzZWxlY3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4
IDkxOWY4ZTQ1Y2M0Njg4YTNhMzkzMmU5ZTllODkxNDhmN2JhZDUxNjQuLjA3ZDMyMGQwZTc0YWVh
OTFjN2MyN2NlZTRjODk1OGIxYmYxN2QyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTU5Miw4ICs1OTIsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQ
cmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGJv
b2wgc2luZ2xlQ2xpY2sgPSBldmVudC5ldmVudCgpLmNsaWNrQ291bnQoKSA8PSAxOwogCiAgICAg
Ly8gSWYgd2UgZ290IHRoZSBldmVudCBiYWNrLCB0aGF0IG11c3QgbWVhbiBpdCB3YXNuJ3QgcHJl
dmVudGVkLAotICAgIC8vIHNvIGl0J3MgYWxsb3dlZCB0byBzdGFydCBhIGRyYWcgb3Igc2VsZWN0
aW9uLgotICAgIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgPSBjYW5Nb3VzZURvd25TdGFydFNl
bGVjdChldmVudC50YXJnZXROb2RlKCkpOworICAgIC8vIHNvIGl0J3MgYWxsb3dlZCB0byBzdGFy
dCBhIGRyYWcgb3Igc2VsZWN0aW9uIGlmIGl0IHdhc24ndCBpbiBhIHNjcm9sbGJhci4KKyAgICBt
X21vdXNlRG93bk1heVN0YXJ0U2VsZWN0ID0gY2FuTW91c2VEb3duU3RhcnRTZWxlY3QoZXZlbnQu
dGFyZ2V0Tm9kZSgpKSAmJiAhZXZlbnQuc2Nyb2xsYmFyKCk7CiAgICAgCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKICAgICAvLyBDYXJlZnVsIHRoYXQgdGhlIGRyYWcgc3RhcnRpbmcgbG9naWMg
c3RheXMgaW4gc3luYyB3aXRoIGV2ZW50TWF5U3RhcnREcmFnKCkKQEAgLTIyMzMsMTMgKzIyMzMs
NiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZQogICAgICAgICBzd2FsbG93RXZlbnQgPSBtX25v
ZGVVbmRlck1vdXNlLT5kaXNwYXRjaE1vdXNlRXZlbnQobW91c2VFdmVudCwgZXZlbnRUeXBlLCBj
bGlja0NvdW50KTsKIAogICAgIGlmICghc3dhbGxvd0V2ZW50ICYmIGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHsKLQotICAgICAgICAvLyBJZiBjbGlja2luZyBvbiBh
IGZyYW1lIHNjcm9sbGJhciwgZG8gbm90IG1lc3MgdXAgd2l0aCBjb250ZW50IGZvY3VzLgotICAg
ICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgICAg
ICBpZiAodmlldy0+c2Nyb2xsYmFyQXRQb2ludChtb3VzZUV2ZW50LnBvc2l0aW9uKCkpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCiAgICAgICAgIC8vIFRoZSBs
YXlvdXQgbmVlZHMgdG8gYmUgdXAgdG8gZGF0ZSB0byBkZXRlcm1pbmUgaWYgYW4gZWxlbWVudCBp
cyBmb2N1c2FibGUuCiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0yMjY3LDYgKzIyNjAsMTEgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgTm9kZSogdGFyZ2UKICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3RO
b2RlKCk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIGZvY3VzIGlm
IHRoZSBjbGljayBpcyBpbnNpZGUgYSBzY3JvbGxiYXIgdW5sZXNzIGl0J3MgaW4gYSBmb3JtIGNv
bnRyb2wuCisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlICYmIG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSA/IHRvRWxlbWVudChub2RlKSA6IDA7CisgICAgICAgIGlmICghKGVsZW1lbnQgJiYg
ZWxlbWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkgJiYgaXNJbnNpZGVTY3JvbGxiYXIobW91
c2VFdmVudC5wb3NpdGlvbigpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgICAg
IC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUgZXZlbnQuICBOb3RlIHdl
IHNob3VsZCBuZXZlciBjbGVhciBzd2FsbG93RXZlbnQKICAgICAgICAgLy8gaWYgdGhlIHBhZ2Ug
YWxyZWFkeSBzZXQgaXQgKGUuZy4sIGJ5IGNhbmNlbGluZyBkZWZhdWx0IGJlaGF2aW9yKS4KICAg
ICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKQEAgLTIyODMsNiArMjI4
MSwyMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZQogICAgIHJldHVybiBzd2FsbG93RXZlbnQ7
CiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9pbnQpIGNvbnN0Cit7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJh
bWUtPnZpZXcoKSkgeworICAgICAgICBpZiAodmlldy0+c2Nyb2xsYmFyQXRQb2ludCh3aW5kb3dQ
b2ludCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoUmVuZGVy
VmlldyogcmVuZGVyVmlldyA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKSB7CisgICAgICAg
IEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVz
dFJlcXVlc3Q6OkFjdGl2ZSk7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHdpbmRvd1Bv
aW50KTsKKyAgICAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAg
ICAgICByZXR1cm4gcmVzdWx0LnNjcm9sbGJhcigpOworICAgIH0KKworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogI2lmICFQTEFURk9STShHVEspICYmICEoUExBVEZPUk0oQ0hST01JVU0pICYmIChP
UyhVTklYKSAmJiAhT1MoREFSV0lOKSkpCiBib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkVHVyblZl
cnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKQEAgLTI2MDIsNiArMjYxNyw3IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50KQogCiAgICAgaWYgKG1fZnJhbWUtPmVkaXRvcigpLT5iZWhhdmlvcigpLnNob3VsZFNl
bGVjdE9uQ29udGV4dHVhbE1lbnVDbGljaygpCiAgICAgICAgICYmICFtX2ZyYW1lLT5zZWxlY3Rp
b24oKS0+Y29udGFpbnModmlld3BvcnRQb3MpCisgICAgICAgICYmICFtZXYuc2Nyb2xsYmFyKCkK
ICAgICAgICAgLy8gRklYTUU6IEluIHRoZSBlZGl0YWJsZSBjYXNlLCB3b3JkIHNlbGVjdGlvbiBz
b21ldGltZXMgc2VsZWN0cyBjb250ZW50IHRoYXQgaXNuJ3QgdW5kZXJuZWF0aCB0aGUgbW91c2Uu
CiAgICAgICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgbm9uLWVkaXRhYmxlLCB3ZSBkbyB3b3Jk
IHNlbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgdGhlIGNvbnRleHR1YWwgbWVudSBp
dGVtcwogICAgICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5
IGlmIHdlJ3JlIGFib3ZlIHRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA2
ZDhhMGFiNzY3M2E4YzhmZGZiNGM5YTk1ZGJmYzFhYWQ5NTVkNDg3Li5mMjkwY2Q3YjFkMDFjYTQ1
N2Y2MjA0MjI2MDkyZTFjZjVmMDQ1NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
QEAgLTI3NSw2ICsyNzUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50
VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7CiAgICAgdm9pZCBjYW5jZWxGYWtlTW91
c2VNb3ZlRXZlbnQoKTsKIAorICAgIGJvb2wgaXNJbnNpZGVTY3JvbGxiYXIoY29uc3QgSW50UG9p
bnQmKSBjb25zdDsKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBkaXNwYXRj
aFN5bnRoZXRpY1RvdWNoRXZlbnRJZkVuYWJsZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGE0
OTU0NGRmMWNmYjY3YWI1YTA1ODM4ZTk0YjBhOGYzNDRmYmI3YmUuLmI2YTdmN2Q1NGYzZjQ4Yjc4
NzY5MTM1NDk5MzI0MDQ3NTdiYzYyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtMjgzNyw2ICsyODM3LDggQEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVz
dE92ZXJmbG93Q29udHJvbHMoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJbnRQb2ludCYK
IAogICAgIGludCByZXNpemVDb250cm9sU2l6ZSA9IG1heChyZXNpemVDb250cm9sUmVjdC5oZWln
aHQoKSwgMCk7CiAKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhpdCB0ZXN0IHRoZSBtX3Njcm9s
bENvcm5lciBhbmQgcGFzcyBpdCBiYWNrIHRocm91Z2ggdGhlIHJlc3VsdC4KKwogICAgIGlmICht
X3ZCYXIgJiYgbV92QmFyLT5zaG91bGRQYXJ0aWNpcGF0ZUluSGl0VGVzdGluZygpKSB7CiAgICAg
ICAgIExheW91dFJlY3QgdkJhclJlY3QodmVydGljYWxTY3JvbGxiYXJTdGFydCgwLCBib3gtPndp
ZHRoKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC0+Ym9yZGVyVG9wKCksCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMjU3YzgwYTQ3NTY3OWNiZWJlNzUxZDk3Zjk4ZjNiOTQwMzY3MzA3ZS4uNGI4MTI0ZTE3
YWVlMjZkM2RiN2JiNmRkZmFkMjdiYWU1NjFkYWI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA5LTE4ICBFbGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENsaWNraW5nIGEgc2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMz
NQorIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAKKyAgICAgICAgQWRk
IHRlc3RzIHRoYXQgZW5zdXJlIGNsaWNraW5nIGluc2lkZSBhIHNjcm9sbGJhciBkb2Vzbid0IG1v
dmUgdGhlCisgICAgICAgIGZvY3VzIHVubGVzcyB0aGUgc2Nyb2xsYmFyIGlzIGluc2lkZSBhbiBl
bmFibGVkIGZvcm0gY29udHJvbC4KKworICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFy
LWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTA5LTE4ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVi
YXNlbGluZSB0ZXN0cy4gTW9zdGx5IGZhaWxpbmcgZHVlIHRvIHNsaWdodCBwaXhlbCBkaWZmZXJl
bmNlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNs
aWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxv
dy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjcwMDIxZWFkMDU2OWFiMWViYTRjMzRkYTZkYThlZDBlZjk1NDM2MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9j
dXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMgdGVzdHMgY2xpY2tpbmcgc2Ny
b2xsYmFycywgd2hpY2ggc2hvdWxkIG9ubHkgbW92ZSB0aGUgZm9jdXMgb24gZm9ybSBjb250cm9s
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworRm9jdXMgc2hvdWxkIHJlbWFp
biBpbiB0aGUgaW5wdXQKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJJ
TlBVVCIKKworRm9ybSBjb250cm9scyBzaG91bGQgbW92ZSB0aGUgZm9jdXMKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJURVhUQVJFQSIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC50YWdOYW1lIGlzICJTRUxFQ1QiCisKK0Rpc2FibGVkIGZvcm0gY29udHJvbHMg
c2hvdWxkIG5vdCBtb3ZlIHRoZSBmb2N1cworUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRh
Z05hbWUgaXMgIklOUFVUIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKKyAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Nj
cm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJm
bG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ViNWE3
MTRjMDIxMGU0NzE2NzY2YmI5ZjdlYjRkNjUwZmI1NDMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRt
bApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKworPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxpbnB1dD4KKworPHNlY3Rp
b24gc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsi
Pjwvc2VjdGlvbj4KKworPHRleHRhcmVhIHJvd3M9IjUiPgorICAgIFRleHQuCisgICAgVGV4dC4K
KyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisg
ICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCis8L3RleHRhcmVhPgorCis8c2VsZWN0IG11
bHRpcGxlPgorICAgIDxvcHRpb24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0
aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8
b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCis8L3NlbGVjdD4KKworPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwor
ZnVuY3Rpb24gY2xpY2soeCwgeSkgeworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorfQor
CitmdW5jdGlvbiBjbGlja1ZlcnRpY2FsU2Nyb2xsYmFyKHR5cGUpIHsKKyAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodHlwZSk7CisgICAgY2xpY2soZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAtIDUsIGVsZW1lbnQub2Zmc2V0VG9wICsgNSk7
Cit9CisKK2Z1bmN0aW9uIGNsaWNrSG9yaXpvbnRhbFNjcm9sbGJhcih0eXBlKSB7CisgICAgdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHR5cGUpOworICAgIGNsaWNrKGVsZW1l
bnQub2Zmc2V0TGVmdCArIDUsIGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLSA1KTsKK30KKworZnVuY3Rpb24gdGVzdChuYW1lLCBmbikgeworICAgIGRlYnVnKCI8YnI+
IiArIG5hbWUpOworICAgIGZuKCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNsaWNr
aW5nIHNjcm9sbGJhcnMsIHdoaWNoIHNob3VsZCBvbmx5IG1vdmUgdGhlIGZvY3VzIG9uIGZvcm0g
Y29udHJvbHMuIik7CisKK3Rlc3QoIkZvY3VzIHNob3VsZCByZW1haW4gaW4gdGhlIGlucHV0Iiwg
ZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygp
OworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBjbGlja0hvcml6
b250YWxTY3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJJTlBVVCIpOworfSk7CisKK3Rlc3QoIkZv
cm0gY29udHJvbHMgc2hvdWxkIG1vdmUgdGhlIGZvY3VzIiwgZnVuY3Rpb24oKSB7CisgICAgY2xp
Y2tWZXJ0aWNhbFNjcm9sbGJhcigidGV4dGFyZWEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJURVhUQVJFQSIpOworICAgIGNs
aWNrVmVydGljYWxTY3JvbGxiYXIoInNlbGVjdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIlNFTEVDVCIpOworfSk7CisKK3Rl
c3QoIkRpc2FibGVkIGZvcm0gY29udHJvbHMgc2hvdWxkIG5vdCBtb3ZlIHRoZSBmb2N1cyIsIGZ1
bmN0aW9uKCkgeworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTsK
KyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzZWxlY3QiKS5kaXNhYmxlZCA9IHRydWU7Cisg
ICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigic2VsZWN0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUiLCAiSU5QVVQiKTsKK30pOwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164784</attachid>
            <date>2012-09-19 15:19:13 -0700</date>
            <delta_ts>2012-09-19 17:44:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-20120919151839.patch</filename>
            <type>text/plain</type>
            <size>11006</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMDE5M2MxZGEyNmE0
NTNhNDVjN2JkZWEzNmY0NzQ2ZjYwMDUwZC4uOGJkZjJlMjZhMzY1YWVkOGRlYjExZTYyMjFlODFk
ZGM4ODFkMDBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTE4ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugb25seSB0
ZXN0ZWQgZm9yIGNsaWNrcyBpbnNpZGUgZnJhbWUgc2Nyb2xsYmFycyBiZWZvcmUgbW92aW5nIHRo
ZSBmb2N1cywKKyAgICAgICAgdGhpcyBwYXRjaCBleHBhbmRzIHRoZSBjaGVjayB0byBvdmVyZmxv
dyBzY3JvbGxiYXJzLiBOb3cgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyCisgICAgICAgIG9u
bHkgbW92ZXMgdGhlIGZvY3VzIGZvciBmb3JtIGNvbnRyb2xzLgorCisgICAgICAgIFRoaXMgbWF0
Y2hlcyBHZWNrbyBiZWhhdmlvciBvbiBhbGwgcGxhdGZvcm1zLgorCisgICAgICAgIFRlc3Q6IGZh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbAorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAgIE5ldmVyIHN0YXJ0IHNlbGVjdGlv
bnMgaW5zaWRlIHNjcm9sbGJhcnMgYmVjYXVzZSBpdCB3b3VsZCBjYXVzZSBhc3NlcnRzLiAKKyAg
ICAgICAgICBUaGlzIHdhc24ndCBhIHByb2JsZW0gYmVmb3JlIGJlY2F1c2Ugd2UgYWx3YXlzIG1v
dmVkIHRoZSBmb2N1cyB3aGVuIGNsaWNraW5nIGEgc2Nyb2xsYmFyLiAgICAgICAgCisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudCk6IAorICAgICAgICAg
IENoZWNrIHRoYXQgdGhlIGNsaWNrIGlzIG5vdCBpbnNpZGUgYSBzY3JvbGxiYXIgYmVmb3JlIG1v
dmluZyB0aGUgZm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzSW5zaWRl
U2Nyb2xsYmFyKTogVGVzdHMgaWYgYSBwb2ludCBpcyBpbiBhIHNjcm9sbGJhci4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1l
bnVFdmVudCk6CisgICAgICAgICAgTmV2ZXIgc3RhcnQgc2VsZWN0aW9ucyBpbnNpZGUgc2Nyb2xs
YmFycyBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlIGFzc2VydHMuCisgICAgICAgICogcGFnZS9FdmVu
dEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0
T3ZlcmZsb3dDb250cm9scyk6CisKIDIwMTItMDktMTggIEpvaG4gSi4gQmFydG9uICA8am9obmpi
YXJ0b25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNldCBmb2N1cyBv
biB0aGUgRXh0ZW5zaW9uUGFuZWwncyBpZnJhbWUgd2hlbiBpdCBpcyBzZWxlY3RlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkxOWY4ZTQ1Y2M0Njg4YTNhMzkzMmU5ZTll
ODkxNDhmN2JhZDUxNjQuLjZhYjRhNjJiN2YzYjVmN2FmMWY3NDM2M2ZlZGEwNzQ1NzhiYWI0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTU5Miw4ICs1OTIsOCBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGJvb2wgc2luZ2xlQ2xpY2sgPSBldmVudC5ldmVu
dCgpLmNsaWNrQ291bnQoKSA8PSAxOwogCiAgICAgLy8gSWYgd2UgZ290IHRoZSBldmVudCBiYWNr
LCB0aGF0IG11c3QgbWVhbiBpdCB3YXNuJ3QgcHJldmVudGVkLAotICAgIC8vIHNvIGl0J3MgYWxs
b3dlZCB0byBzdGFydCBhIGRyYWcgb3Igc2VsZWN0aW9uLgotICAgIG1fbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QgPSBjYW5Nb3VzZURvd25TdGFydFNlbGVjdChldmVudC50YXJnZXROb2RlKCkpOwor
ICAgIC8vIHNvIGl0J3MgYWxsb3dlZCB0byBzdGFydCBhIGRyYWcgb3Igc2VsZWN0aW9uIGlmIGl0
IHdhc24ndCBpbiBhIHNjcm9sbGJhci4KKyAgICBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0ID0g
Y2FuTW91c2VEb3duU3RhcnRTZWxlY3QoZXZlbnQudGFyZ2V0Tm9kZSgpKSAmJiAhZXZlbnQuc2Ny
b2xsYmFyKCk7CiAgICAgCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAvLyBDYXJlZnVs
IHRoYXQgdGhlIGRyYWcgc3RhcnRpbmcgbG9naWMgc3RheXMgaW4gc3luYyB3aXRoIGV2ZW50TWF5
U3RhcnREcmFnKCkKQEAgLTIyMzMsMTMgKzIyMzMsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJn
ZQogICAgICAgICBzd2FsbG93RXZlbnQgPSBtX25vZGVVbmRlck1vdXNlLT5kaXNwYXRjaE1vdXNl
RXZlbnQobW91c2VFdmVudCwgZXZlbnRUeXBlLCBjbGlja0NvdW50KTsKIAogICAgIGlmICghc3dh
bGxvd0V2ZW50ICYmIGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHsK
LQotICAgICAgICAvLyBJZiBjbGlja2luZyBvbiBhIGZyYW1lIHNjcm9sbGJhciwgZG8gbm90IG1l
c3MgdXAgd2l0aCBjb250ZW50IGZvY3VzLgotICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0g
bV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgICAgICBpZiAodmlldy0+c2Nyb2xsYmFyQXRQb2lu
dChtb3VzZUV2ZW50LnBvc2l0aW9uKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQotCiAgICAgICAgIC8vIFRoZSBsYXlvdXQgbmVlZHMgdG8gYmUgdXAgdG8gZGF0
ZSB0byBkZXRlcm1pbmUgaWYgYW4gZWxlbWVudCBpcyBmb2N1c2FibGUuCiAgICAgICAgIG1fZnJh
bWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
CkBAIC0yMjY3LDYgKzIyNjAsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UKICAgICAgICAg
ICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7CiAgICAgICAgIH0KIAorICAgICAg
ICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIGlmICgh
dG9FbGVtZW50KG5vZGUpLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpICYmIGlzSW5zaWRlU2Nyb2xs
YmFyKG1vdXNlRXZlbnQucG9zaXRpb24oKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OyAvLyBEb24ndCBjaGFuZ2UgdGhlIGZvY3VzLgorICAgICAgICB9CisKICAgICAgICAgLy8gSWYg
Zm9jdXMgc2hpZnQgaXMgYmxvY2tlZCwgd2UgZWF0IHRoZSBldmVudC4gIE5vdGUgd2Ugc2hvdWxk
IG5ldmVyIGNsZWFyIHN3YWxsb3dFdmVudAogICAgICAgICAvLyBpZiB0aGUgcGFnZSBhbHJlYWR5
IHNldCBpdCAoZS5nLiwgYnkgY2FuY2VsaW5nIGRlZmF1bHQgYmVoYXZpb3IpLgogICAgICAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewpAQCAtMjI4Myw2ICsyMjgxLDIzIEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAgICAgcmV0dXJuIHN3YWxsb3dFdmVudDsKIH0KIAor
Ym9vbCBFdmVudEhhbmRsZXI6OmlzSW5zaWRlU2Nyb2xsYmFyKGNvbnN0IEludFBvaW50JiB3aW5k
b3dQb2ludCkgY29uc3QKK3sKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmll
dygpKSB7CisgICAgICAgIGlmICh2aWV3LT5zY3JvbGxiYXJBdFBvaW50KHdpbmRvd1BvaW50KSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpIHsKKyAgICAgICAgSGl0VGVz
dFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVz
dDo6QWN0aXZlKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQod2luZG93UG9pbnQpOwor
ICAgICAgICByZW5kZXJWaWV3LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgICAgIHJl
dHVybiByZXN1bHQuc2Nyb2xsYmFyKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgKE9TKFVOSVgp
ICYmICFPUyhEQVJXSU4pKSkKIGJvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRUdXJuVmVydGljYWxU
aWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKSBjb25zdAogewpAQCAtMjYwMiw2ICsyNjE3LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQp
CiAKICAgICBpZiAobV9mcmFtZS0+ZWRpdG9yKCktPmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0T25D
b250ZXh0dWFsTWVudUNsaWNrKCkKICAgICAgICAgJiYgIW1fZnJhbWUtPnNlbGVjdGlvbigpLT5j
b250YWlucyh2aWV3cG9ydFBvcykKKyAgICAgICAgJiYgIW1ldi5zY3JvbGxiYXIoKQogICAgICAg
ICAvLyBGSVhNRTogSW4gdGhlIGVkaXRhYmxlIGNhc2UsIHdvcmQgc2VsZWN0aW9uIHNvbWV0aW1l
cyBzZWxlY3RzIGNvbnRlbnQgdGhhdCBpc24ndCB1bmRlcm5lYXRoIHRoZSBtb3VzZS4KICAgICAg
ICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBub24tZWRpdGFibGUsIHdlIGRvIHdvcmQgc2VsZWN0
aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSB0aGUgY29udGV4dHVhbCBtZW51IGl0ZW1zCiAg
ICAgICAgIC8vIGF2YWlsYWJsZSBmb3IgdGV4dCBzZWxlY3Rpb25zLiAgQnV0IG9ubHkgaWYgd2Un
cmUgYWJvdmUgdGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDZkOGEwYWI3
NjczYThjOGZkZmI0YzlhOTVkYmZjMWFhZDk1NWQ0ODcuLmYyOTBjZDdiMWQwMWNhNDU3ZjYyMDQy
MjYwOTJlMWNmNWYwNDU3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjc1
LDYgKzI3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZp
cmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKTsKICAgICB2b2lkIGNhbmNlbEZha2VNb3VzZU1vdmVF
dmVudCgpOwogCisgICAgYm9vbCBpc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYpIGNv
bnN0OworCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIGRpc3BhdGNoU3ludGhl
dGljVG91Y2hFdmVudElmRW5hYmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYTQ5NTQ0ZGYx
Y2ZiNjdhYjVhMDU4MzhlOTRiMGE4ZjM0NGZiYjdiZS4uYjZhN2Y3ZDU0ZjNmNDhiNzg3NjkxMzU0
OTkzMjQwNDc1N2JjNjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC0yODM3LDYgKzI4MzcsOCBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZs
b3dDb250cm9scyhIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiAgICAg
aW50IHJlc2l6ZUNvbnRyb2xTaXplID0gbWF4KHJlc2l6ZUNvbnRyb2xSZWN0LmhlaWdodCgpLCAw
KTsKIAorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGl0IHRlc3QgdGhlIG1fc2Nyb2xsQ29ybmVy
IGFuZCBwYXNzIGl0IGJhY2sgdGhyb3VnaCB0aGUgcmVzdWx0LgorCiAgICAgaWYgKG1fdkJhciAm
JiBtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpIHsKICAgICAgICAgTGF5
b3V0UmVjdCB2QmFyUmVjdCh2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KDAsIGJveC0+d2lkdGgoKSks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LT5ib3JkZXJUb3AoKSwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
NTdjODBhNDc1Njc5Y2JlYmU3NTFkOTdmOThmM2I5NDAzNjczMDdlLi40YjgxMjRlMTdhZWUyNmQz
ZGI3YmI2ZGRmYWQyN2JhZTU2MWRhYjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDkt
MTggIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xp
Y2tpbmcgYSBzY3JvbGxiYXIgdW5mb2N1c2VzIHRoZSBjdXJyZW50IGFjdGl2ZUVsZW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzM1CisgCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorIAorICAgICAgICBBZGQgdGVzdHMg
dGhhdCBlbnN1cmUgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyIGRvZXNuJ3QgbW92ZSB0aGUK
KyAgICAgICAgZm9jdXMgdW5sZXNzIHRoZSBzY3JvbGxiYXIgaXMgaW5zaWRlIGFuIGVuYWJsZWQg
Zm9ybSBjb250cm9sLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2st
cmV0YWlucy1mb2N1cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZs
b3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDkt
MTggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWJhc2VsaW5l
IHRlc3RzLiBNb3N0bHkgZmFpbGluZyBkdWUgdG8gc2xpZ2h0IHBpeGVsIGRpZmZlcmVuY2VzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0
YWlucy1mb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9s
bGJhci1jbGljay1yZXRhaW5zLWZvY3VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzAwMjFl
YWQwNTY5YWIxZWJhNGMzNGRhNmRhOGVkMGVmOTU0MzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorVGhpcyB0ZXN0cyBjbGlja2luZyBzY3JvbGxiYXJz
LCB3aGljaCBzaG91bGQgb25seSBtb3ZlIHRoZSBmb2N1cyBvbiBmb3JtIGNvbnRyb2xzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitGb2N1cyBzaG91bGQgcmVtYWluIGluIHRo
ZSBpbnB1dAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIklOUFVUIgor
CitGb3JtIGNvbnRyb2xzIHNob3VsZCBtb3ZlIHRoZSBmb2N1cworUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LnRhZ05hbWUgaXMgIlRFWFRBUkVBIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LnRhZ05hbWUgaXMgIlNFTEVDVCIKKworRGlzYWJsZWQgZm9ybSBjb250cm9scyBzaG91bGQg
bm90IG1vdmUgdGhlIGZvY3VzCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBp
cyAiSU5QVVQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFy
LWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Ny
b2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWI1YTcxNGMwMjEw
ZTQ3MTY3NjZiYjlmN2ViNGQ2NTBmYjU0MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy5odG1sCkBAIC0w
LDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPGlucHV0PgorCis8c2VjdGlvbiBzdHls
ZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyI+PC9zZWN0
aW9uPgorCis8dGV4dGFyZWEgcm93cz0iNSI+CisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRl
eHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0
LgorICAgIFRleHQuCisgICAgVGV4dC4KKzwvdGV4dGFyZWE+CisKKzxzZWxlY3QgbXVsdGlwbGU+
CisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRl
eHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+
IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKzwvc2VsZWN0PgorCis8c2NyaXB0PgoraWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlv
biBjbGljayh4LCB5KSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIGNsaWNrVmVydGljYWxTY3JvbGxiYXIodHlwZSkgeworICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQucXVlcnlTZWxlY3Rvcih0eXBlKTsKKyAgICBjbGljayhlbGVtZW50Lm9mZnNldExlZnQg
KyBlbGVtZW50Lm9mZnNldFdpZHRoIC0gNSwgZWxlbWVudC5vZmZzZXRUb3AgKyA1KTsKK30KKwor
ZnVuY3Rpb24gY2xpY2tIb3Jpem9udGFsU2Nyb2xsYmFyKHR5cGUpIHsKKyAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodHlwZSk7CisgICAgY2xpY2soZWxlbWVudC5vZmZz
ZXRMZWZ0ICsgNSwgZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAtIDUp
OworfQorCitmdW5jdGlvbiB0ZXN0KG5hbWUsIGZuKSB7CisgICAgZGVidWcoIjxicj4iICsgbmFt
ZSk7CisgICAgZm4oKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2xpY2tpbmcgc2Ny
b2xsYmFycywgd2hpY2ggc2hvdWxkIG9ubHkgbW92ZSB0aGUgZm9jdXMgb24gZm9ybSBjb250cm9s
cy4iKTsKKwordGVzdCgiRm9jdXMgc2hvdWxkIHJlbWFpbiBpbiB0aGUgaW5wdXQiLCBmdW5jdGlv
bigpIHsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAg
Y2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigic2VjdGlvbiIpOworICAgIGNsaWNrSG9yaXpvbnRhbFNj
cm9sbGJhcigic2VjdGlvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIklOUFVUIik7Cit9KTsKKwordGVzdCgiRm9ybSBjb250
cm9scyBzaG91bGQgbW92ZSB0aGUgZm9jdXMiLCBmdW5jdGlvbigpIHsKKyAgICBjbGlja1ZlcnRp
Y2FsU2Nyb2xsYmFyKCJ0ZXh0YXJlYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIlRFWFRBUkVBIik7CisgICAgY2xpY2tWZXJ0
aWNhbFNjcm9sbGJhcigic2VsZWN0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1
bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUiLCAiU0VMRUNUIik7Cit9KTsKKwordGVzdCgiRGlz
YWJsZWQgZm9ybSBjb250cm9scyBzaG91bGQgbm90IG1vdmUgdGhlIGZvY3VzIiwgZnVuY3Rpb24o
KSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpOworICAgIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNlbGVjdCIpLmRpc2FibGVkID0gdHJ1ZTsKKyAgICBjbGlj
a1ZlcnRpY2FsU2Nyb2xsYmFyKCJzZWxlY3QiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJJTlBVVCIpOworfSk7Cis8L3Njcmlw
dD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0Pgo=
</data>
<flag name="commit-queue"
          id="176673"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164807</attachid>
            <date>2012-09-19 17:44:49 -0700</date>
            <delta_ts>2012-12-03 13:57:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-v1.patch</filename>
            <type>text/plain</type>
            <size>11111</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkxMDE5M2MxZGEyNmE0
NTNhNDVjN2JkZWEzNmY0NzQ2ZjYwMDUwZC4uOGJkZjJlMjZhMzY1YWVkOGRlYjExZTYyMjFlODFk
ZGM4ODFkMDBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTE4ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugb25seSB0
ZXN0ZWQgZm9yIGNsaWNrcyBpbnNpZGUgZnJhbWUgc2Nyb2xsYmFycyBiZWZvcmUgbW92aW5nIHRo
ZSBmb2N1cywKKyAgICAgICAgdGhpcyBwYXRjaCBleHBhbmRzIHRoZSBjaGVjayB0byBvdmVyZmxv
dyBzY3JvbGxiYXJzLiBOb3cgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyCisgICAgICAgIG9u
bHkgbW92ZXMgdGhlIGZvY3VzIGZvciBmb3JtIGNvbnRyb2xzLgorCisgICAgICAgIFRoaXMgbWF0
Y2hlcyBHZWNrbyBiZWhhdmlvciBvbiBhbGwgcGxhdGZvcm1zLgorCisgICAgICAgIFRlc3Q6IGZh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbAorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAgIE5ldmVyIHN0YXJ0IHNlbGVjdGlv
bnMgaW5zaWRlIHNjcm9sbGJhcnMgYmVjYXVzZSBpdCB3b3VsZCBjYXVzZSBhc3NlcnRzLiAKKyAg
ICAgICAgICBUaGlzIHdhc24ndCBhIHByb2JsZW0gYmVmb3JlIGJlY2F1c2Ugd2UgYWx3YXlzIG1v
dmVkIHRoZSBmb2N1cyB3aGVuIGNsaWNraW5nIGEgc2Nyb2xsYmFyLiAgICAgICAgCisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudCk6IAorICAgICAgICAg
IENoZWNrIHRoYXQgdGhlIGNsaWNrIGlzIG5vdCBpbnNpZGUgYSBzY3JvbGxiYXIgYmVmb3JlIG1v
dmluZyB0aGUgZm9jdXMuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzSW5zaWRl
U2Nyb2xsYmFyKTogVGVzdHMgaWYgYSBwb2ludCBpcyBpbiBhIHNjcm9sbGJhci4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1l
bnVFdmVudCk6CisgICAgICAgICAgTmV2ZXIgc3RhcnQgc2VsZWN0aW9ucyBpbnNpZGUgc2Nyb2xs
YmFycyBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlIGFzc2VydHMuCisgICAgICAgICogcGFnZS9FdmVu
dEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0
T3ZlcmZsb3dDb250cm9scyk6CisKIDIwMTItMDktMTggIEpvaG4gSi4gQmFydG9uICA8am9obmpi
YXJ0b25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNldCBmb2N1cyBv
biB0aGUgRXh0ZW5zaW9uUGFuZWwncyBpZnJhbWUgd2hlbiBpdCBpcyBzZWxlY3RlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkxOWY4ZTQ1Y2M0Njg4YTNhMzkzMmU5ZTll
ODkxNDhmN2JhZDUxNjQuLjZhYjRhNjJiN2YzYjVmN2FmMWY3NDM2M2ZlZGEwNzQ1NzhiYWI0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTU5Miw4ICs1OTIsOCBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGJvb2wgc2luZ2xlQ2xpY2sgPSBldmVudC5ldmVu
dCgpLmNsaWNrQ291bnQoKSA8PSAxOwogCiAgICAgLy8gSWYgd2UgZ290IHRoZSBldmVudCBiYWNr
LCB0aGF0IG11c3QgbWVhbiBpdCB3YXNuJ3QgcHJldmVudGVkLAotICAgIC8vIHNvIGl0J3MgYWxs
b3dlZCB0byBzdGFydCBhIGRyYWcgb3Igc2VsZWN0aW9uLgotICAgIG1fbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3QgPSBjYW5Nb3VzZURvd25TdGFydFNlbGVjdChldmVudC50YXJnZXROb2RlKCkpOwor
ICAgIC8vIHNvIGl0J3MgYWxsb3dlZCB0byBzdGFydCBhIGRyYWcgb3Igc2VsZWN0aW9uIGlmIGl0
IHdhc24ndCBpbiBhIHNjcm9sbGJhci4KKyAgICBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0ID0g
Y2FuTW91c2VEb3duU3RhcnRTZWxlY3QoZXZlbnQudGFyZ2V0Tm9kZSgpKSAmJiAhZXZlbnQuc2Ny
b2xsYmFyKCk7CiAgICAgCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAvLyBDYXJlZnVs
IHRoYXQgdGhlIGRyYWcgc3RhcnRpbmcgbG9naWMgc3RheXMgaW4gc3luYyB3aXRoIGV2ZW50TWF5
U3RhcnREcmFnKCkKQEAgLTIyMzMsMTMgKzIyMzMsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJn
ZQogICAgICAgICBzd2FsbG93RXZlbnQgPSBtX25vZGVVbmRlck1vdXNlLT5kaXNwYXRjaE1vdXNl
RXZlbnQobW91c2VFdmVudCwgZXZlbnRUeXBlLCBjbGlja0NvdW50KTsKIAogICAgIGlmICghc3dh
bGxvd0V2ZW50ICYmIGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQpIHsK
LQotICAgICAgICAvLyBJZiBjbGlja2luZyBvbiBhIGZyYW1lIHNjcm9sbGJhciwgZG8gbm90IG1l
c3MgdXAgd2l0aCBjb250ZW50IGZvY3VzLgotICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0g
bV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgICAgICBpZiAodmlldy0+c2Nyb2xsYmFyQXRQb2lu
dChtb3VzZUV2ZW50LnBvc2l0aW9uKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQotCiAgICAgICAgIC8vIFRoZSBsYXlvdXQgbmVlZHMgdG8gYmUgdXAgdG8gZGF0
ZSB0byBkZXRlcm1pbmUgaWYgYW4gZWxlbWVudCBpcyBmb2N1c2FibGUuCiAgICAgICAgIG1fZnJh
bWUtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
CkBAIC0yMjY3LDYgKzIyNjAsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UKICAgICAgICAg
ICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7CiAgICAgICAgIH0KIAorICAgICAg
ICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0Vs
ZW1lbnQobm9kZSkgOiAwOworICAgICAgICAvLyBJZiBjbGlja2luZyBpbnNpZGUgYSBzY3JvbGxi
YXIsIG9ubHkgbW92ZSB0aGUgZm9jdXMgZm9yIGZvcm0gY29udHJvbHMuCisgICAgICAgIGlmICgo
IWVsZW1lbnQgfHwgIWVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpICYmIGlzSW5zaWRl
U2Nyb2xsYmFyKG1vdXNlRXZlbnQucG9zaXRpb24oKSkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIERvbid0IGNoYW5nZSB0aGUgZm9jdXMuCisKICAgICAgICAgLy8gSWYgZm9jdXMgc2hp
ZnQgaXMgYmxvY2tlZCwgd2UgZWF0IHRoZSBldmVudC4gIE5vdGUgd2Ugc2hvdWxkIG5ldmVyIGNs
ZWFyIHN3YWxsb3dFdmVudAogICAgICAgICAvLyBpZiB0aGUgcGFnZSBhbHJlYWR5IHNldCBpdCAo
ZS5nLiwgYnkgY2FuY2VsaW5nIGRlZmF1bHQgYmVoYXZpb3IpLgogICAgICAgICBpZiAoUGFnZSog
cGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewpAQCAtMjI4Myw2ICsyMjgxLDIzIEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIE5vZGUqIHRhcmdlCiAgICAgcmV0dXJuIHN3YWxsb3dFdmVudDsKIH0KIAorYm9vbCBFdmVu
dEhhbmRsZXI6OmlzSW5zaWRlU2Nyb2xsYmFyKGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkg
Y29uc3QKK3sKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7Cisg
ICAgICAgIGlmICh2aWV3LT5zY3JvbGxiYXJBdFBvaW50KHdpbmRvd1BvaW50KSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3
ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpIHsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Qg
cmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZl
KTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQod2luZG93UG9pbnQpOworICAgICAgICBy
ZW5kZXJWaWV3LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1
bHQuc2Nyb2xsYmFyKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjaWYgIVBM
QVRGT1JNKEdUSykgJiYgIShQTEFURk9STShDSFJPTUlVTSkgJiYgKE9TKFVOSVgpICYmICFPUyhE
QVJXSU4pKSkKIGJvb2wgRXZlbnRIYW5kbGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9I
b3Jpem9udGFsKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSBjb25zdAogewpAQCAtMjYwMiw2ICsyNjE3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRD
b250ZXh0TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAgICBp
ZiAobV9mcmFtZS0+ZWRpdG9yKCktPmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0T25Db250ZXh0dWFs
TWVudUNsaWNrKCkKICAgICAgICAgJiYgIW1fZnJhbWUtPnNlbGVjdGlvbigpLT5jb250YWlucyh2
aWV3cG9ydFBvcykKKyAgICAgICAgJiYgIW1ldi5zY3JvbGxiYXIoKQogICAgICAgICAvLyBGSVhN
RTogSW4gdGhlIGVkaXRhYmxlIGNhc2UsIHdvcmQgc2VsZWN0aW9uIHNvbWV0aW1lcyBzZWxlY3Rz
IGNvbnRlbnQgdGhhdCBpc24ndCB1bmRlcm5lYXRoIHRoZSBtb3VzZS4KICAgICAgICAgLy8gSWYg
dGhlIHNlbGVjdGlvbiBpcyBub24tZWRpdGFibGUsIHdlIGRvIHdvcmQgc2VsZWN0aW9uIHRvIG1h
a2UgaXQgZWFzaWVyIHRvIHVzZSB0aGUgY29udGV4dHVhbCBtZW51IGl0ZW1zCiAgICAgICAgIC8v
IGF2YWlsYWJsZSBmb3IgdGV4dCBzZWxlY3Rpb25zLiAgQnV0IG9ubHkgaWYgd2UncmUgYWJvdmUg
dGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDZkOGEwYWI3NjczYThjOGZk
ZmI0YzlhOTVkYmZjMWFhZDk1NWQ0ODcuLmYyOTBjZDdiMWQwMWNhNDU3ZjYyMDQyMjYwOTJlMWNm
NWYwNDU3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjc1LDYgKzI3NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVy
PEV2ZW50SGFuZGxlcj4qKTsKICAgICB2b2lkIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwog
CisgICAgYm9vbCBpc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYpIGNvbnN0OworCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIGRpc3BhdGNoU3ludGhldGljVG91Y2hF
dmVudElmRW5hYmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYTQ5NTQ0ZGYxY2ZiNjdhYjVh
MDU4MzhlOTRiMGE4ZjM0NGZiYjdiZS4uYjZhN2Y3ZDU0ZjNmNDhiNzg3NjkxMzU0OTkzMjQwNDc1
N2JjNjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0y
ODM3LDYgKzI4MzcsOCBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9s
cyhIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiAgICAgaW50IHJlc2l6
ZUNvbnRyb2xTaXplID0gbWF4KHJlc2l6ZUNvbnRyb2xSZWN0LmhlaWdodCgpLCAwKTsKIAorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgaGl0IHRlc3QgdGhlIG1fc2Nyb2xsQ29ybmVyIGFuZCBwYXNz
IGl0IGJhY2sgdGhyb3VnaCB0aGUgcmVzdWx0LgorCiAgICAgaWYgKG1fdkJhciAmJiBtX3ZCYXIt
PnNob3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2
QmFyUmVjdCh2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KDAsIGJveC0+d2lkdGgoKSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm94LT5ib3JkZXJUb3AoKSwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNTdjODBhNDc1
Njc5Y2JlYmU3NTFkOTdmOThmM2I5NDAzNjczMDdlLi40YjgxMjRlMTdhZWUyNmQzZGI3YmI2ZGRm
YWQyN2JhZTU2MWRhYjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMTggIEVsbGlv
dHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xpY2tpbmcgYSBz
Y3JvbGxiYXIgdW5mb2N1c2VzIHRoZSBjdXJyZW50IGFjdGl2ZUVsZW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzM1CisgCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorIAorICAgICAgICBBZGQgdGVzdHMgdGhhdCBlbnN1
cmUgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyIGRvZXNuJ3QgbW92ZSB0aGUKKyAgICAgICAg
Zm9jdXMgdW5sZXNzIHRoZSBzY3JvbGxiYXIgaXMgaW5zaWRlIGFuIGVuYWJsZWQgZm9ybSBjb250
cm9sLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1m
b2N1cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xs
YmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMTggIE9qYW4g
VmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWJhc2VsaW5lIHRlc3RzLiBN
b3N0bHkgZmFpbGluZyBkdWUgdG8gc2xpZ2h0IHBpeGVsIGRpZmZlcmVuY2VzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGlj
ay1yZXRhaW5zLWZvY3VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzAwMjFlYWQwNTY5YWIx
ZWJhNGMzNGRhNmRhOGVkMGVmOTU0MzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorVGhpcyB0ZXN0cyBjbGlja2luZyBzY3JvbGxiYXJzLCB3aGljaCBz
aG91bGQgb25seSBtb3ZlIHRoZSBmb2N1cyBvbiBmb3JtIGNvbnRyb2xzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworCitGb2N1cyBzaG91bGQgcmVtYWluIGluIHRoZSBpbnB1dAor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIklOUFVUIgorCitGb3JtIGNv
bnRyb2xzIHNob3VsZCBtb3ZlIHRoZSBmb2N1cworUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LnRhZ05hbWUgaXMgIlRFWFRBUkVBIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05h
bWUgaXMgIlNFTEVDVCIKKworRGlzYWJsZWQgZm9ybSBjb250cm9scyBzaG91bGQgbm90IG1vdmUg
dGhlIGZvY3VzCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBpcyAiSU5QVVQi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworICAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJl
dGFpbnMtZm9jdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNs
aWNrLXJldGFpbnMtZm9jdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWI1YTcxNGMwMjEwZTQ3MTY3NjZi
YjlmN2ViNGQ2NTBmYjU0MzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy5odG1sCkBAIC0wLDAgKzEsODMg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKworPGlucHV0PgorCis8c2VjdGlvbiBzdHlsZT0iaGVpZ2h0
OiAxMDBweDsgd2lkdGg6IDEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyI+PC9zZWN0aW9uPgorCis8
dGV4dGFyZWEgcm93cz0iNSI+CisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAg
VGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRl
eHQuCisgICAgVGV4dC4KKzwvdGV4dGFyZWE+CisKKzxzZWxlY3QgbXVsdGlwbGU+CisgICAgPG9w
dGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCisgICAg
PG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCisg
ICAgPG9wdGlvbj4gVGV4dC4KKzwvc2VsZWN0PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBjbGljayh4
LCB5KSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNsaWNr
VmVydGljYWxTY3JvbGxiYXIodHlwZSkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3Rvcih0eXBlKTsKKyAgICBjbGljayhlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50
Lm9mZnNldFdpZHRoIC0gNSwgZWxlbWVudC5vZmZzZXRUb3AgKyA1KTsKK30KKworZnVuY3Rpb24g
Y2xpY2tIb3Jpem9udGFsU2Nyb2xsYmFyKHR5cGUpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IodHlwZSk7CisgICAgY2xpY2soZWxlbWVudC5vZmZzZXRMZWZ0ICsg
NSwgZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAtIDUpOworfQorCitm
dW5jdGlvbiB0ZXN0KG5hbWUsIGZuKSB7CisgICAgZGVidWcoIjxicj4iICsgbmFtZSk7CisgICAg
Zm4oKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2xpY2tpbmcgc2Nyb2xsYmFycywg
d2hpY2ggc2hvdWxkIG9ubHkgbW92ZSB0aGUgZm9jdXMgb24gZm9ybSBjb250cm9scy4iKTsKKwor
dGVzdCgiRm9jdXMgc2hvdWxkIHJlbWFpbiBpbiB0aGUgaW5wdXQiLCBmdW5jdGlvbigpIHsKKyAg
ICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAgY2xpY2tWZXJ0
aWNhbFNjcm9sbGJhcigic2VjdGlvbiIpOworICAgIGNsaWNrSG9yaXpvbnRhbFNjcm9sbGJhcigi
c2VjdGlvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC50YWdOYW1lIiwgIklOUFVUIik7Cit9KTsKKwordGVzdCgiRm9ybSBjb250cm9scyBzaG91
bGQgbW92ZSB0aGUgZm9jdXMiLCBmdW5jdGlvbigpIHsKKyAgICBjbGlja1ZlcnRpY2FsU2Nyb2xs
YmFyKCJ0ZXh0YXJlYSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC50YWdOYW1lIiwgIlRFWFRBUkVBIik7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9s
bGJhcigic2VsZWN0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LnRhZ05hbWUiLCAiU0VMRUNUIik7Cit9KTsKKwordGVzdCgiRGlzYWJsZWQgZm9y
bSBjb250cm9scyBzaG91bGQgbm90IG1vdmUgdGhlIGZvY3VzIiwgZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpOworICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoInNlbGVjdCIpLmRpc2FibGVkID0gdHJ1ZTsKKyAgICBjbGlja1ZlcnRpY2Fs
U2Nyb2xsYmFyKCJzZWxlY3QiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJJTlBVVCIpOworfSk7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177323</attachid>
            <date>2012-12-03 13:57:18 -0800</date>
            <delta_ts>2012-12-03 18:22:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96335-20121203135444.patch</filename>
            <type>text/plain</type>
            <size>11739</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNjQwMzBlNGNmOWRm
NmE0NjhjM2YyOTAxYTAzZjdhZDgyMDlmOS4uZjY5NTVmNzk0NDVjNDEwMDQxYTA0YjNiMzQyNmJl
YWIwZTQzNzhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEyLTAzICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgd2Ugb25seSB0
ZXN0ZWQgZm9yIGNsaWNrcyBpbnNpZGUgZnJhbWUgc2Nyb2xsYmFycyBiZWZvcmUKKyAgICAgICAg
bW92aW5nIHRoZSBmb2N1cywgdGhpcyBwYXRjaCBleHBhbmRzIHRoZSBjaGVjayB0byBvdmVyZmxv
dyBzY3JvbGxiYXJzLgorICAgICAgICBOb3cgY2xpY2tpbmcgaW5zaWRlIGEgc2Nyb2xsYmFyIG9u
bHkgbW92ZXMgdGhlIGZvY3VzIHdoZW4gdGhlIHNjcm9sbGJhcgorICAgICAgICBoYXMgYW4gYW5j
ZXN0b3IgdGhhdCBpcyBtb3VzZSBmb2N1c2FibGUuCisKKyAgICAgICAgVGhpcyBtYXRjaGVzIEdl
Y2tvIGJlaGF2aW9yLCBhbmQgd2FzIGFncmVlZCB0byBiZSB0aGUgbW9zdCBzZW5zaWJsZSBmb3Ig
bm93OgorICAgICAgICBodHRwOi8vbGlzdHMud2hhdHdnLm9yZy9odGRpZy5jZ2kvd2hhdHdnLXdo
YXR3Zy5vcmcvMjAxMi1PY3RvYmVyLzAzNzc1OS5odG1sCisKKyAgICAgICAgVGVzdDogZmFzdC9v
dmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy5odG1sCisKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgICAgTmV2ZXIgc3RhcnQgc2VsZWN0aW9ucyBp
bnNpZGUgc2Nyb2xsYmFycyBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlIGFzc2VydHMuIAorICAgICAg
ICAgIFRoaXMgd2Fzbid0IGEgcHJvYmxlbSBiZWZvcmUgYmVjYXVzZSB3ZSBhbHdheXMgbW92ZWQg
dGhlIGZvY3VzIHdoZW4gY2xpY2tpbmcgYSBzY3JvbGxiYXIuICAgICAgICAKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hNb3VzZUV2ZW50KTogCisgICAgICAgICAgQ2hl
Y2sgdGhhdCB0aGUgY2xpY2sgaXMgbm90IGluc2lkZSBhIHNjcm9sbGJhciBiZWZvcmUgbW92aW5n
IHRoZSBmb2N1cy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3Jv
bGxiYXIpOiBUZXN0cyBpZiBhIHBvaW50IGlzIGluIGEgc2Nyb2xsYmFyLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2
ZW50KToKKyAgICAgICAgICBOZXZlciBzdGFydCBzZWxlY3Rpb25zIGluc2lkZSBzY3JvbGxiYXJz
IGJlY2F1c2UgaXQgd291bGQgY2F1c2UgYXNzZXJ0cy4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVy
Zmxvd0NvbnRyb2xzKToKKwogMjAxMi0xMi0wMyAgRXVnZW5lIEtseXVjaG5pa292ICA8ZXVzdGFz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtlIG1haW4tdGhyZWFk
IG1vbml0b3JpbmcgZ28gdGhyb3VnaCBJbnNwZWN0b3JDb250cm9sbGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZGE3ZDIyMzhjMzQyYjZmZjM3NTQwOWZhODBhZWJjZmQw
NzAyNDRjMy4uZGE4Mzg1MjE5MTVhMWUwZTg3OTY0ZTAzMzdlZjc1OTFlZTBjZTYzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNjQ1LDggKzY0NSw4IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYgZXZlCiAgICAgYm9vbCBzaW5nbGVDbGljayA9IGV2ZW50LmV2ZW50KCkuY2xp
Y2tDb3VudCgpIDw9IDE7CiAKICAgICAvLyBJZiB3ZSBnb3QgdGhlIGV2ZW50IGJhY2ssIHRoYXQg
bXVzdCBtZWFuIGl0IHdhc24ndCBwcmV2ZW50ZWQsCi0gICAgLy8gc28gaXQncyBhbGxvd2VkIHRv
IHN0YXJ0IGEgZHJhZyBvciBzZWxlY3Rpb24uCi0gICAgbV9tb3VzZURvd25NYXlTdGFydFNlbGVj
dCA9IGNhbk1vdXNlRG93blN0YXJ0U2VsZWN0KGV2ZW50LnRhcmdldE5vZGUoKSk7CisgICAgLy8g
c28gaXQncyBhbGxvd2VkIHRvIHN0YXJ0IGEgZHJhZyBvciBzZWxlY3Rpb24gaWYgaXQgd2Fzbid0
IGluIGEgc2Nyb2xsYmFyLgorICAgIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgPSBjYW5Nb3Vz
ZURvd25TdGFydFNlbGVjdChldmVudC50YXJnZXROb2RlKCkpICYmICFldmVudC5zY3JvbGxiYXIo
KTsKICAgICAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIC8vIENhcmVmdWwgdGhhdCB0
aGUgZHJhZyBzdGFydGluZyBsb2dpYyBzdGF5cyBpbiBzeW5jIHdpdGggZXZlbnRNYXlTdGFydERy
YWcoKQpAQCAtMjM5NSw2ICsyMzk1LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UKICAgICAg
ICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7CiAgICAgICAgIH0KIAorICAg
ICAgICBpZiAoKCFub2RlIHx8ICFub2RlLT5pc01vdXNlRm9jdXNhYmxlKCkpICYmIGlzSW5zaWRl
U2Nyb2xsYmFyKG1vdXNlRXZlbnQucG9zaXRpb24oKSkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIERvbid0IGNoYW5nZSB0aGUgZm9jdXMuCisKICAgICAgICAgLy8gSWYgZm9jdXMgc2hp
ZnQgaXMgYmxvY2tlZCwgd2UgZWF0IHRoZSBldmVudC4gIE5vdGUgd2Ugc2hvdWxkIG5ldmVyIGNs
ZWFyIHN3YWxsb3dFdmVudAogICAgICAgICAvLyBpZiB0aGUgcGFnZSBhbHJlYWR5IHNldCBpdCAo
ZS5nLiwgYnkgY2FuY2VsaW5nIGRlZmF1bHQgYmVoYXZpb3IpLgogICAgICAgICBpZiAoUGFnZSog
cGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewpAQCAtMjQxMSw2ICsyNDE0LDE4IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIE5vZGUqIHRhcmdlCiAgICAgcmV0dXJuICFzd2FsbG93RXZlbnQ7CiB9CiAKK2Jvb2wgRXZl
bnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQp
IGNvbnN0Cit7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBtX2ZyYW1lLT5jb250
ZW50UmVuZGVyZXIoKSkgeworICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RS
ZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOworICAgICAgICBIaXRU
ZXN0UmVzdWx0IHJlc3VsdCh3aW5kb3dQb2ludCk7CisgICAgICAgIHJlbmRlclZpZXctPmhpdFRl
c3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5zY3JvbGxiYXIoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAh
KFBMQVRGT1JNKENIUk9NSVVNKSAmJiAoT1MoVU5JWCkgJiYgIU9TKERBUldJTikpKQogYm9vbCBF
dmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250YWwoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0CiB7CkBAIC0y
ODM0LDYgKzI4NDksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnQo
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIAogICAgIGlmIChtX2ZyYW1lLT5lZGl0
b3IoKS0+YmVoYXZpb3IoKS5zaG91bGRTZWxlY3RPbkNvbnRleHR1YWxNZW51Q2xpY2soKQogICAg
ICAgICAmJiAhbV9mcmFtZS0+c2VsZWN0aW9uKCktPmNvbnRhaW5zKHZpZXdwb3J0UG9zKQorICAg
ICAgICAmJiAhbWV2LnNjcm9sbGJhcigpCiAgICAgICAgIC8vIEZJWE1FOiBJbiB0aGUgZWRpdGFi
bGUgY2FzZSwgd29yZCBzZWxlY3Rpb24gc29tZXRpbWVzIHNlbGVjdHMgY29udGVudCB0aGF0IGlz
bid0IHVuZGVybmVhdGggdGhlIG1vdXNlLgogICAgICAgICAvLyBJZiB0aGUgc2VsZWN0aW9uIGlz
IG5vbi1lZGl0YWJsZSwgd2UgZG8gd29yZCBzZWxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8g
dXNlIHRoZSBjb250ZXh0dWFsIG1lbnUgaXRlbXMKICAgICAgICAgLy8gYXZhaWxhYmxlIGZvciB0
ZXh0IHNlbGVjdGlvbnMuICBCdXQgb25seSBpZiB3ZSdyZSBhYm92ZSB0ZXh0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggYzE1ODk4YTAyNjQ5ZGVhYzFhOTFjOWM3YjBlM2UyOTdl
ODEyODM4OS4uNDVkZTE2ZWEwMDQ2ZjdmYTZhYjUzMjFjNzZiYzA1YWYyNDhkZDYyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yOTAsNiArMjkwLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1l
cjxFdmVudEhhbmRsZXI+Kik7CiAgICAgdm9pZCBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsK
IAorICAgIGJvb2wgaXNJbnNpZGVTY3JvbGxiYXIoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKKwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBkaXNwYXRjaFN5bnRoZXRpY1RvdWNo
RXZlbnRJZkVuYWJsZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDNjN2NmNmU1NmRjNzdiMjFi
NDI5ODE5ODVjMDNkMGEwZTA5ODdhMmQuLmE2Yzg0MTZmZjYxNDdhZWJjZjgzY2FlNzAwNmM2Mjg0
NWZjNDM1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
Mjk3MSw2ICsyOTcxLDggQEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdE92ZXJmbG93Q29udHJv
bHMoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJbnRQb2ludCYKIAogICAgIGludCByZXNp
emVDb250cm9sU2l6ZSA9IG1heChyZXNpemVDb250cm9sUmVjdC5oZWlnaHQoKSwgMCk7CiAKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhpdCB0ZXN0IHRoZSBtX3Njcm9sbENvcm5lciBhbmQgcGFz
cyBpdCBiYWNrIHRocm91Z2ggdGhlIHJlc3VsdC4KKwogICAgIGlmIChtX3ZCYXIgJiYgbV92QmFy
LT5zaG91bGRQYXJ0aWNpcGF0ZUluSGl0VGVzdGluZygpKSB7CiAgICAgICAgIExheW91dFJlY3Qg
dkJhclJlY3QodmVydGljYWxTY3JvbGxiYXJTdGFydCgwLCBib3gtPndpZHRoKCkpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJveC0+Ym9yZGVyVG9wKCksCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTU4YzBkYWRl
YTg4ZTg4ZWYwZmQxYTA1MTcwMWMzODExMDRiYjViMS4uYmE1YWM2NjQyNjQ0NmY2OTBiNThmYjY1
MTc2MTk4OWY0MjU2NTU1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEyLTAzICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAKKyAgICAgICAgQWRkIHRlc3QgdGhhdCBlbnN1
cmVzIGNsaWNraW5nIGluc2lkZSBhIHNjcm9sbGJhciBkb2Vzbid0IG1vdmUgdGhlCisgICAgICAg
IGZvY3VzIHVubGVzcyB0aGUgc2Nyb2xsYmFyIGlzIGluc2lkZSBhIG1vdXNlIGZvY3VzYWJsZSBl
bGVtZW50LgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlu
cy1mb2N1cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Ny
b2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMDMgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBFbmFibGUg
Q1NTMyBiYWNrZ3JvdW5kLXBvc2l0aW9uIG9mZnNldHMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2st
cmV0YWlucy1mb2N1cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxNjg5MjVjODE2MDFhMDc0
OTU4OGIyMDk4MzJkOTIyM2Q1NTQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjggQEAKK1RoaXMgdGVzdHMgY2xpY2tpbmcgc2Nyb2xsYmFycywgd2hpY2ggc2hv
dWxkIG9ubHkgbW92ZSB0aGUgZm9jdXMgaWYgYW4gYW5jZXN0b3IgaXMgbW91c2UgZm9jdXNhYmxl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitGb2N1cyBzaG91bGQgcmVtYWlu
IGluIHRoZSBpbnB1dAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIklO
UFVUIgorCitGb2N1cyBzaG91bGQgbW92ZSBpZiBhbmNlc3RvciBpcyBtb3VzZSBmb2N1c2FibGUK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJESVYiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBpcyAiRElWIgorCitGb2N1cyBzaG91bGQgbW92ZSBp
ZiBhbmNlc3RvciBpcyBjb250ZW50IGVkaXRhYmxlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQudGFnTmFtZSBpcyAiU1BBTiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1l
IGlzICJTUEFOIgorCitGb3JtIGNvbnRyb2xzIHNob3VsZCBtb3ZlIHRoZSBmb2N1cworUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIlRFWFRBUkVBIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIlNFTEVDVCIKKworRGlzYWJsZWQgZm9ybSBjb250
cm9scyBzaG91bGQgbm90IG1vdmUgdGhlIGZvY3VzCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQudGFnTmFtZSBpcyAiSU5QVVQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L292
ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM1
OTk5OWYxZjJmNzJjZDdkNTlmOWFiM2ZjZDU4MzcxN2VkZGYyOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMu
aHRtbApAQCAtMCwwICsxLDExNSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8c3R5bGU+CisgICAg
c2VjdGlvbiwgZm9vdGVyLCBzcGFuLCB0ZXh0YXJlYSwgc2VsZWN0IHsgZmxvYXQ6IGxlZnQ7IH0K
Kzwvc3R5bGU+CisKKzxmb290ZXI+CisgICAgPGlucHV0PgorPC9mb290ZXI+CisKKzxzZWN0aW9u
IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogMTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7Ij48
L3NlY3Rpb24+CisKKzxkaXYgdGFiaW5kZXg9IjEiPgorICAgIDxoZWFkZXIgc3R5bGU9ImhlaWdo
dDogMTAwcHg7IHdpZHRoOiAxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPjwvaGVhZGVyPgorPC9k
aXY+CisKKzxzcGFuIGNvbnRlbnRlZGl0YWJsZT4KKyAgICA8dSBzdHlsZT0iaGVpZ2h0OiAxMDBw
eDsgd2lkdGg6IDEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsiPjwvdT4K
Kzwvc3Bhbj4KKworPHRleHRhcmVhIHJvd3M9IjUiPgorICAgIFRleHQuCisgICAgVGV4dC4KKyAg
ICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAg
VGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCis8L3RleHRhcmVhPgorCis8c2VsZWN0IG11bHRp
cGxlPgorICAgIDxvcHRpb24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9u
PiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0
aW9uPiBUZXh0LgorICAgIDxvcHRpb24+IFRleHQuCis8L3NlbGVjdD4KKworPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gY2xpY2soeCwgeSkgeworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorfQorCitm
dW5jdGlvbiBjbGlja1ZlcnRpY2FsU2Nyb2xsYmFyKHR5cGUpIHsKKyAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodHlwZSk7CisgICAgY2xpY2soZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAtIDUsIGVsZW1lbnQub2Zmc2V0VG9wICsgNSk7Cit9
CisKK2Z1bmN0aW9uIGNsaWNrSG9yaXpvbnRhbFNjcm9sbGJhcih0eXBlKSB7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHR5cGUpOworICAgIGNsaWNrKGVsZW1lbnQu
b2Zmc2V0TGVmdCArIDUsIGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LSA1KTsKK30KKworZnVuY3Rpb24gdGVzdChuYW1lLCBmbikgeworICAgIGRlYnVnKCI8YnI+IiAr
IG5hbWUpOworICAgIGZuKCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNsaWNraW5n
IHNjcm9sbGJhcnMsIHdoaWNoIHNob3VsZCBvbmx5IG1vdmUgdGhlIGZvY3VzIGlmIGFuIGFuY2Vz
dG9yIGlzIG1vdXNlIGZvY3VzYWJsZS4iKTsKKwordGVzdCgiRm9jdXMgc2hvdWxkIHJlbWFpbiBp
biB0aGUgaW5wdXQiLCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
bnB1dCIpLmZvY3VzKCk7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigic2VjdGlvbiIpOwor
ICAgIGNsaWNrSG9yaXpvbnRhbFNjcm9sbGJhcigic2VjdGlvbiIpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIklOUFVUIik7Cit9
KTsKKwordGVzdCgiRm9jdXMgc2hvdWxkIG1vdmUgaWYgYW5jZXN0b3IgaXMgbW91c2UgZm9jdXNh
YmxlIiwgZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5m
b2N1cygpOworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoImhlYWRlciIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIkRJViIp
OworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICBjbGlj
a0hvcml6b250YWxTY3JvbGxiYXIoImhlYWRlciIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIkRJViIpOworfSk7CisKK3Rlc3Qo
IkZvY3VzIHNob3VsZCBtb3ZlIGlmIGFuY2VzdG9yIGlzIGNvbnRlbnQgZWRpdGFibGUiLCBmdW5j
dGlvbigpIHsKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7Cisg
ICAgY2xpY2tWZXJ0aWNhbFNjcm9sbGJhcigidSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIiwgIlNQQU4iKTsKKyAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAgY2xpY2tIb3Jpem9udGFsU2Ny
b2xsYmFyKCJ1Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVF
bGVtZW50LnRhZ05hbWUiLCAiU1BBTiIpOworfSk7CisKK3Rlc3QoIkZvcm0gY29udHJvbHMgc2hv
dWxkIG1vdmUgdGhlIGZvY3VzIiwgZnVuY3Rpb24oKSB7CisgICAgY2xpY2tWZXJ0aWNhbFNjcm9s
bGJhcigidGV4dGFyZWEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQudGFnTmFtZSIsICJURVhUQVJFQSIpOworICAgIGNsaWNrVmVydGljYWxTY3Jv
bGxiYXIoInNlbGVjdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC50YWdOYW1lIiwgIlNFTEVDVCIpOworfSk7CisKK3Rlc3QoIkRpc2FibGVkIGZv
cm0gY29udHJvbHMgc2hvdWxkIG5vdCBtb3ZlIHRoZSBmb2N1cyIsIGZ1bmN0aW9uKCkgeworICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJzZWxlY3QiKS5kaXNhYmxlZCA9IHRydWU7CisgICAgY2xpY2tWZXJ0aWNh
bFNjcm9sbGJhcigic2VsZWN0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LnRhZ05hbWUiLCAiSU5QVVQiKTsKK30pOworPC9zY3JpcHQ+CisKKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177389</attachid>
            <date>2012-12-03 18:22:07 -0800</date>
            <delta_ts>2012-12-04 22:24:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96335-20121203181933.patch</filename>
            <type>text/plain</type>
            <size>11839</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1NDBjODViZjg2NGE3
ZTE2MWYyOGVjMGM2ZTMyNTYzZjQ0MDQ0YS4uYWIyNjk3YzQ5MzMzMjllNWU4ZDc4ZGU1ZWRlYWFh
MjRmODc5N2E4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEyLTAzICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENsaWNraW5nIGEg
c2Nyb2xsYmFyIHVuZm9jdXNlcyB0aGUgY3VycmVudCBhY3RpdmVFbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjMzNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE9qYW4gVmFmYWkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBvbmx5IHRlc3Rl
ZCBmb3IgY2xpY2tzIGluc2lkZSBmcmFtZSBzY3JvbGxiYXJzIGJlZm9yZQorICAgICAgICBtb3Zp
bmcgdGhlIGZvY3VzLCB0aGlzIHBhdGNoIGV4cGFuZHMgdGhlIGNoZWNrIHRvIG92ZXJmbG93IHNj
cm9sbGJhcnMuCisgICAgICAgIE5vdyBjbGlja2luZyBpbnNpZGUgYSBzY3JvbGxiYXIgb25seSBt
b3ZlcyB0aGUgZm9jdXMgd2hlbiB0aGUgc2Nyb2xsYmFyCisgICAgICAgIGhhcyBhbiBhbmNlc3Rv
ciB0aGF0IGlzIG1vdXNlIGZvY3VzYWJsZS4KKworICAgICAgICBUaGlzIG1hdGNoZXMgR2Vja28g
YmVoYXZpb3IsIGFuZCB3YXMgYWdyZWVkIHRvIGJlIHRoZSBtb3N0IHNlbnNpYmxlIGZvciBub3c6
CisgICAgICAgIGh0dHA6Ly9saXN0cy53aGF0d2cub3JnL2h0ZGlnLmNnaS93aGF0d2ctd2hhdHdn
Lm9yZy8yMDEyLU9jdG9iZXIvMDM3NzU5Lmh0bWwKKworICAgICAgICBUZXN0OiBmYXN0L292ZXJm
bG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3VzLmh0bWwKKworICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VQcmVzc0V2ZW50KToKKyAgICAgICAgICBOZXZlciBzdGFydCBzZWxlY3Rpb25zIGluc2lk
ZSBzY3JvbGxiYXJzIGJlY2F1c2UgaXQgd291bGQgY2F1c2UgYXNzZXJ0cy4gCisgICAgICAgICAg
VGhpcyB3YXNuJ3QgYSBwcm9ibGVtIGJlZm9yZSBiZWNhdXNlIHdlIGFsd2F5cyBtb3ZlZCB0aGUg
Zm9jdXMgd2hlbiBjbGlja2luZyBhIHNjcm9sbGJhci4gICAgICAgIAorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiAKKyAgICAgICAgICBDaGVjayB0
aGF0IHRoZSBjbGljayBpcyBub3QgaW5zaWRlIGEgc2Nyb2xsYmFyIGJlZm9yZSBtb3ZpbmcgdGhl
IGZvY3VzLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJh
cik6IFRlc3RzIGlmIGEgcG9pbnQgaXMgaW4gYSBzY3JvbGxiYXIuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnQp
OgorICAgICAgICAgIE5ldmVyIHN0YXJ0IHNlbGVjdGlvbnMgaW5zaWRlIHNjcm9sbGJhcnMgYmVj
YXVzZSBpdCB3b3VsZCBjYXVzZSBhc3NlcnRzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
Lmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdE92ZXJmbG93
Q29udHJvbHMpOgorCiAyMDEyLTEyLTAzICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGxpbnV4IHRoZW1lIHJlbGF0ZWQgZmlsZXMg
YW5kIHN3aXRjaCB0byBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggZGE3ZDIyMzhjMzQyYjZmZjM3NTQwOWZhODBhZWJjZmQwNzAyNDRjMy4uODk0NjJiODNhYmNi
MjY2ZjUxNzAwZTFhZDA2Mzk1ZTBjYzU1ZGFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNjQ1LDggKzY0NSw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAgICAg
Ym9vbCBzaW5nbGVDbGljayA9IGV2ZW50LmV2ZW50KCkuY2xpY2tDb3VudCgpIDw9IDE7CiAKICAg
ICAvLyBJZiB3ZSBnb3QgdGhlIGV2ZW50IGJhY2ssIHRoYXQgbXVzdCBtZWFuIGl0IHdhc24ndCBw
cmV2ZW50ZWQsCi0gICAgLy8gc28gaXQncyBhbGxvd2VkIHRvIHN0YXJ0IGEgZHJhZyBvciBzZWxl
Y3Rpb24uCi0gICAgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCA9IGNhbk1vdXNlRG93blN0YXJ0
U2VsZWN0KGV2ZW50LnRhcmdldE5vZGUoKSk7CisgICAgLy8gc28gaXQncyBhbGxvd2VkIHRvIHN0
YXJ0IGEgZHJhZyBvciBzZWxlY3Rpb24gaWYgaXQgd2Fzbid0IGluIGEgc2Nyb2xsYmFyLgorICAg
IG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgPSBjYW5Nb3VzZURvd25TdGFydFNlbGVjdChldmVu
dC50YXJnZXROb2RlKCkpICYmICFldmVudC5zY3JvbGxiYXIoKTsKICAgICAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgIC8vIENhcmVmdWwgdGhhdCB0aGUgZHJhZyBzdGFydGluZyBsb2dp
YyBzdGF5cyBpbiBzeW5jIHdpdGggZXZlbnRNYXlTdGFydERyYWcoKQpAQCAtMjM5NSw2ICsyMzk1
LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAgICAgICAgICAgICBub2RlID0gbm9kZS0+
cGFyZW50T3JIb3N0Tm9kZSgpOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gT25seSBjaGFuZ2Ug
dGhlIGZvY3VzIHdoZW4gY2xpY2tpbmcgc2Nyb2xsYmFycyBpZiBpdCBjYW4gdHJhbnNmZXJlZCB0
byBhIG1vdXNlIGZvY3VzYWJsZSBub2RlLgorICAgICAgICBpZiAoKCFub2RlIHx8ICFub2RlLT5p
c01vdXNlRm9jdXNhYmxlKCkpICYmIGlzSW5zaWRlU2Nyb2xsYmFyKG1vdXNlRXZlbnQucG9zaXRp
b24oKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgLy8gSWYgZm9jdXMg
c2hpZnQgaXMgYmxvY2tlZCwgd2UgZWF0IHRoZSBldmVudC4gIE5vdGUgd2Ugc2hvdWxkIG5ldmVy
IGNsZWFyIHN3YWxsb3dFdmVudAogICAgICAgICAvLyBpZiB0aGUgcGFnZSBhbHJlYWR5IHNldCBp
dCAoZS5nLiwgYnkgY2FuY2VsaW5nIGRlZmF1bHQgYmVoYXZpb3IpLgogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewpAQCAtMjQxMSw2ICsyNDE1LDE4IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIE5vZGUqIHRhcmdlCiAgICAgcmV0dXJuICFzd2FsbG93RXZlbnQ7CiB9CiAKK2Jvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0Cit7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBtX2ZyYW1lLT5j
b250ZW50UmVuZGVyZXIoKSkgeworICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRl
c3RSZXF1ZXN0OjpSZWFkT25seSk7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHdpbmRv
d1BvaW50KTsKKyAgICAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0LnNjcm9sbGJhcigpOworICAgIH0KKworICAgIHJldHVybiBm
YWxzZTsKK30KKwogI2lmICFQTEFURk9STShHVEspICYmICEoUExBVEZPUk0oQ0hST01JVU0pICYm
IChPUyhVTklYKSAmJiAhT1MoREFSV0lOKSkpCiBib29sIEV2ZW50SGFuZGxlcjo6c2hvdWxkVHVy
blZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JiwgY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKQEAgLTI4MzQsNiArMjg1MCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmIGV2ZW50KQogCiAgICAgaWYgKG1fZnJhbWUtPmVkaXRvcigpLT5iZWhhdmlvcigpLnNob3Vs
ZFNlbGVjdE9uQ29udGV4dHVhbE1lbnVDbGljaygpCiAgICAgICAgICYmICFtX2ZyYW1lLT5zZWxl
Y3Rpb24oKS0+Y29udGFpbnModmlld3BvcnRQb3MpCisgICAgICAgICYmICFtZXYuc2Nyb2xsYmFy
KCkKICAgICAgICAgLy8gRklYTUU6IEluIHRoZSBlZGl0YWJsZSBjYXNlLCB3b3JkIHNlbGVjdGlv
biBzb21ldGltZXMgc2VsZWN0cyBjb250ZW50IHRoYXQgaXNuJ3QgdW5kZXJuZWF0aCB0aGUgbW91
c2UuCiAgICAgICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgbm9uLWVkaXRhYmxlLCB3ZSBkbyB3
b3JkIHNlbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgdGhlIGNvbnRleHR1YWwgbWVu
dSBpdGVtcwogICAgICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBv
bmx5IGlmIHdlJ3JlIGFib3ZlIHRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCBjMTU4OThhMDI2NDlkZWFjMWE5MWM5YzdiMGUzZTI5N2U4MTI4Mzg5Li40NWRlMTZlYTAwNDZm
N2ZhNmFiNTMyMWM3NmJjMDVhZjI0OGRkNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKQEAgLTI5MCw2ICsyOTAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEV2ZW50SGFuZGxlcj4qKTsKICAg
ICB2b2lkIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwogCisgICAgYm9vbCBpc0luc2lkZVNj
cm9sbGJhcihjb25zdCBJbnRQb2ludCYpIGNvbnN0OworCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICBib29sIGRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElmRW5hYmxlZChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKaW5kZXggNWY1YmEzMjZhODNkNDJiMzcwNjU1MDM2MGNlMTdkNDVjYThkMzU3
YS4uNjY1MGYwYTVhYWIxYjM4YmJhZWE5NjM5OTlmMmMyMDJiMWE5OGNjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yOTcxLDYgKzI5NzEsOCBAQCBib29s
IFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyhIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIGNvbnN0IEludFBvaW50JgogCiAgICAgaW50IHJlc2l6ZUNvbnRyb2xTaXplID0gbWF4KHJl
c2l6ZUNvbnRyb2xSZWN0LmhlaWdodCgpLCAwKTsKIAorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
aGl0IHRlc3QgdGhlIG1fc2Nyb2xsQ29ybmVyIGFuZCBwYXNzIGl0IGJhY2sgdGhyb3VnaCB0aGUg
cmVzdWx0LgorCiAgICAgaWYgKG1fdkJhciAmJiBtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRlSW5I
aXRUZXN0aW5nKCkpIHsKICAgICAgICAgTGF5b3V0UmVjdCB2QmFyUmVjdCh2ZXJ0aWNhbFNjcm9s
bGJhclN0YXJ0KDAsIGJveC0+d2lkdGgoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym94LT5ib3JkZXJUb3AoKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MWFmNzMxMmFmZjFhNDg2OGYzOTEyOTkxM2NlZTlk
ZGU3MGI5OTY3Li4xZDIzMTFlNzMzZjI2ZDkyNjUxNjAxNzc0ZTAyMzJjMzEwZWE4OTU4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTItMDMgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2xpY2tpbmcgYSBzY3JvbGxiYXIgdW5mb2N1c2VzIHRo
ZSBjdXJyZW50IGFjdGl2ZUVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk2MzM1CisgCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CisgCisgICAgICAgIEFkZCB0ZXN0IHRoYXQgZW5zdXJlcyBjbGlja2luZyBpbnNpZGUgYSBzY3Jv
bGxiYXIgZG9lc24ndCBtb3ZlIHRoZQorICAgICAgICBmb2N1cyB1bmxlc3MgdGhlIHNjcm9sbGJh
ciBpcyBpbnNpZGUgYSBtb3VzZSBmb2N1c2FibGUgZWxlbWVudC4KKworICAgICAgICAqIGZhc3Qv
b3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGljay1yZXRhaW5zLWZvY3Vz
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTAzICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBXZWJLaXQgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1m
b2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbGJhci1j
bGljay1yZXRhaW5zLWZvY3VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTE2ODkyNWM4MTYw
MWEwNzQ5NTg4YjIwOTgzMmQ5MjIzZDU1NDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1mb2N1cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyOCBAQAorVGhpcyB0ZXN0cyBjbGlja2luZyBzY3JvbGxiYXJzLCB3aGlj
aCBzaG91bGQgb25seSBtb3ZlIHRoZSBmb2N1cyBpZiBhbiBhbmNlc3RvciBpcyBtb3VzZSBmb2N1
c2FibGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0ZvY3VzIHNob3VsZCBy
ZW1haW4gaW4gdGhlIGlucHV0CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBp
cyAiSU5QVVQiCisKK0ZvY3VzIHNob3VsZCBtb3ZlIGlmIGFuY2VzdG9yIGlzIG1vdXNlIGZvY3Vz
YWJsZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUgaXMgIkRJViIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIGlzICJESVYiCisKK0ZvY3VzIHNob3VsZCBt
b3ZlIGlmIGFuY2VzdG9yIGlzIGNvbnRlbnQgZWRpdGFibGUKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC50YWdOYW1lIGlzICJTUEFOIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRh
Z05hbWUgaXMgIlNQQU4iCisKK0Zvcm0gY29udHJvbHMgc2hvdWxkIG1vdmUgdGhlIGZvY3VzCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBpcyAiVEVYVEFSRUEiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSBpcyAiU0VMRUNUIgorCitEaXNhYmxlZCBmb3Jt
IGNvbnRyb2xzIHNob3VsZCBub3QgbW92ZSB0aGUgZm9jdXMKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC50YWdOYW1lIGlzICJJTlBVVCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvb3Zl
cmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLWNsaWNrLXJldGFpbnMtZm9jdXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDg5ODYyY2EyOWE2MzVjNjg1YTNlNmJkNDM4MDBjZjU2NWVkZjY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItY2xpY2stcmV0YWlucy1m
b2N1cy5odG1sCkBAIC0wLDAgKzEsMTIwIEBACis8IURPQ1RZUEUgaHRtbD4KKworPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxzdHlsZT4K
KyAgICAvKiBGbG9hdCBldmVyeXRoaW5nIHNvIHRoZXkgZml0IGluc2lkZSB0aGUgdmlld3BvcnQg
Zm9yIHVzaW5nIGV2ZW50U2VuZGVyIHRvIGNsaWNrICovCisgICAgc2VjdGlvbiwgZm9vdGVyLCBz
cGFuLCB0ZXh0YXJlYSwgc2VsZWN0IHsgZmxvYXQ6IGxlZnQ7IH0KKzwvc3R5bGU+CisKKzxmb290
ZXI+CisgICAgPGlucHV0PgorPC9mb290ZXI+CisKKzxzZWN0aW9uIHN0eWxlPSJoZWlnaHQ6IDEw
MHB4OyB3aWR0aDogMTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7Ij48L3NlY3Rpb24+CisKKzxkaXYg
dGFiaW5kZXg9IjEiPgorICAgIDxoZWFkZXIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAx
MDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPjwvaGVhZGVyPgorPC9kaXY+CisKKzxzcGFuIGNvbnRl
bnRlZGl0YWJsZT4KKyAgICA8dSBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDEwMHB4OyBv
dmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsiPjwvdT4KKzwvc3Bhbj4KKworPHRleHRh
cmVhIHJvd3M9IjUiPgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQu
CisgICAgVGV4dC4KKyAgICBUZXh0LgorICAgIFRleHQuCisgICAgVGV4dC4KKyAgICBUZXh0Lgor
ICAgIFRleHQuCis8L3RleHRhcmVhPgorCis8c2VsZWN0IG11bHRpcGxlPgorICAgIDxvcHRpb24+
IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxvcHRp
b24+IFRleHQuCisgICAgPG9wdGlvbj4gVGV4dC4KKyAgICA8b3B0aW9uPiBUZXh0LgorICAgIDxv
cHRpb24+IFRleHQuCis8L3NlbGVjdD4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY2xpY2soeCwgeSkK
K3sKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30KKworZnVuY3Rpb24gY2xpY2tWZXJ0
aWNhbFNjcm9sbGJhcih0eXBlKQoreworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3Rvcih0eXBlKTsKKyAgICBjbGljayhlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9m
ZnNldFdpZHRoIC0gNSwgZWxlbWVudC5vZmZzZXRUb3AgKyA1KTsKK30KKworZnVuY3Rpb24gY2xp
Y2tIb3Jpem9udGFsU2Nyb2xsYmFyKHR5cGUpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKHR5cGUpOworICAgIGNsaWNrKGVsZW1lbnQub2Zmc2V0TGVmdCArIDUs
IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLSA1KTsKK30KKworZnVu
Y3Rpb24gdGVzdChuYW1lLCBmbikKK3sKKyAgICBkZWJ1ZygiPGJyPiIgKyBuYW1lKTsKKyAgICBm
bigpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjbGlja2luZyBzY3JvbGxiYXJzLCB3
aGljaCBzaG91bGQgb25seSBtb3ZlIHRoZSBmb2N1cyBpZiBhbiBhbmNlc3RvciBpcyBtb3VzZSBm
b2N1c2FibGUuIik7CisKK3Rlc3QoIkZvY3VzIHNob3VsZCByZW1haW4gaW4gdGhlIGlucHV0Iiwg
ZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygp
OworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBjbGlja0hvcml6
b250YWxTY3JvbGxiYXIoInNlY3Rpb24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJJTlBVVCIpOworfSk7CisKK3Rlc3QoIkZv
Y3VzIHNob3VsZCBtb3ZlIGlmIGFuY2VzdG9yIGlzIG1vdXNlIGZvY3VzYWJsZSIsIGZ1bmN0aW9u
KCkgeworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICBj
bGlja1ZlcnRpY2FsU2Nyb2xsYmFyKCJoZWFkZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZSIsICJESVYiKTsKKyAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAgY2xpY2tIb3Jpem9udGFsU2Ny
b2xsYmFyKCJoZWFkZXIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQudGFnTmFtZSIsICJESVYiKTsKK30pOworCit0ZXN0KCJGb2N1cyBzaG91bGQg
bW92ZSBpZiBhbmNlc3RvciBpcyBjb250ZW50IGVkaXRhYmxlIiwgZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKS5mb2N1cygpOworICAgIGNsaWNrVmVydGlj
YWxTY3JvbGxiYXIoInUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQudGFnTmFtZSIsICJTUEFOIik7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW5wdXQiKS5mb2N1cygpOworICAgIGNsaWNrSG9yaXpvbnRhbFNjcm9sbGJhcigidSIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1l
IiwgIlNQQU4iKTsKK30pOworCit0ZXN0KCJGb3JtIGNvbnRyb2xzIHNob3VsZCBtb3ZlIHRoZSBm
b2N1cyIsIGZ1bmN0aW9uKCkgeworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInRleHRhcmVh
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRh
Z05hbWUiLCAiVEVYVEFSRUEiKTsKKyAgICBjbGlja1ZlcnRpY2FsU2Nyb2xsYmFyKCJzZWxlY3Qi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFn
TmFtZSIsICJTRUxFQ1QiKTsKK30pOworCit0ZXN0KCJEaXNhYmxlZCBmb3JtIGNvbnRyb2xzIHNo
b3VsZCBub3QgbW92ZSB0aGUgZm9jdXMiLCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
c2VsZWN0IikuZGlzYWJsZWQgPSB0cnVlOworICAgIGNsaWNrVmVydGljYWxTY3JvbGxiYXIoInNl
bGVjdCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC50YWdOYW1lIiwgIklOUFVUIik7Cit9KTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>