<?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>52211</bug_id>
          
          <creation_ts>2011-01-11 07:57:36 -0800</creation_ts>
          <short_desc>FrameLoader::isProcessingUserGesture is wrong in dispatchWillPerformClientRedirect</short_desc>
          <delta_ts>2011-05-07 19:50:29 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joe Mason">joenotcharles</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>jnd</cc>
    
    <cc>tabbott</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>332336</commentid>
    <comment_count>0</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-01-11 07:57:36 -0800</bug_when>
    <thetext>If frame-&gt;loader()-&gt;isProcessingUserGesture() is called while in the dispatchWillPerformClientRedirect callback, it returns &quot;true&quot; if the redirect is caused by a meta refresh tag.  It should return &quot;false&quot; in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332462</commentid>
    <comment_count>1</comment_count>
      <attachid>78555</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-01-11 11:06:33 -0800</bug_when>
    <thetext>Created attachment 78555
fix with layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332650</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-11 14:16:45 -0800</bug_when>
    <thetext>jnd is our user gesture expert.  Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332956</commentid>
    <comment_count>3</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2011-01-12 00:49:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; jnd is our user gesture expert.  Thoughts?

I think Joe&apos;s patch is on the right way to fix this issue.
My only question is:
Is that necessary to restore the gesture state when calling clientRedirectCancelledOrFinished?
what scenarios need to know the gesture state of canceled redirection in the didCancelClientRedirect callback?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333086</commentid>
    <comment_count>4</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-01-12 07:52:24 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; jnd is our user gesture expert.  Thoughts?
&gt; 
&gt; I think Joe&apos;s patch is on the right way to fix this issue.
&gt; My only question is:
&gt; Is that necessary to restore the gesture state when calling clientRedirectCancelledOrFinished?
&gt; what scenarios need to know the gesture state of canceled redirection in the didCancelClientRedirect callback?

Actually I meant to take that out.  In fact, didCancelClientRedirect gets called from several completely different code paths, and in at least one other - namely when the redirect actually succeeds and the new page finishes loading - the gesture state isn&apos;t set, and it&apos;s unclear how it could be set.

So if we set it here, the gesture state in didCancelClientRedirect will be inconsistent - sometimes it will be the same as when the redirect started, and sometimes not.  This isn&apos;t useful to anybody.

The correct thing for the client to do if they want to know the gesture state in didCancelClientRedirect is to save it in willPerformClientRedirect and check (and clear) the saved state in didCancelClientRedirect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333091</commentid>
    <comment_count>5</comment_count>
      <attachid>78692</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-01-12 08:03:06 -0800</bug_when>
    <thetext>Created attachment 78692
fixed review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333506</commentid>
    <comment_count>6</comment_count>
    <who name="Johnny(Jianning) Ding">jnd</who>
    <bug_when>2011-01-12 18:55:44 -0800</bug_when>
    <thetext>(In reply to comment #4)

&gt; Actually I meant to take that out.  In fact, didCancelClientRedirect gets called from several completely different code paths, and in at least one other - namely when the redirect actually succeeds and the new page finishes loading - the gesture state isn&apos;t set, and it&apos;s unclear how it could be set.
&gt; 
&gt; So if we set it here, the gesture state in didCancelClientRedirect will be inconsistent - sometimes it will be the same as when the redirect started, and sometimes not.  This isn&apos;t useful to anybody.
&gt; 
&gt; The correct thing for the client to do if they want to know the gesture state in didCancelClientRedirect is to save it in willPerformClientRedirect and check (and clear) the saved state in didCancelClientRedirect.

That was my concern. Thanks to clearly comment and fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392967</commentid>
    <comment_count>7</comment_count>
      <attachid>78692</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-04-26 16:17:25 -0700</bug_when>
    <thetext>Comment on attachment 78692
fixed review comments

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

This patch looks sane to me and Johnny Ding.

&gt; Source/WebCore/loader/NavigationScheduler.cpp:126
&gt; +        // do not set a UserGestureIndicator because there are other paths to dispatchDidCancelClientRedirect where the gesture state is not set, and we should be consistent with them

dispatchDidCancelClientRedirect =&gt; dispatchDidCancelClientRedirect()
(notice the added parentheses to indicate to the reader that this is a function call)

Nit: We prefer full and complete sentences for comments. Also this comment is very long, so please break it into two or more lines.

Also, can you include in this comment an example of a path that ends up calling dispatchDidCancelClientRedirect() where the gesture state isn&apos;t set.

&gt; Source/WebCore/loader/NavigationScheduler.cpp:241
&gt; +        // do not set a UserGestureIndicator because there are other paths to dispatchDidCancelClientRedirect where the gesture state is not set, and we should be consistent with them

Please update this comment according to the feedback I left for line 126 (above).

&gt; Tools/ChangeLog:9
&gt; +        (For the mac and chromium ports - other ports don&apos;t support dumping user gestures in DRT.)

Nit: Both Mac and Chromium are proper names and should be capitalized.

&gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:832
&gt; -    if (!m_shell-&gt;shouldDumpFrameLoadCallbacks())
&gt; -        return;
&gt; -    printFrameDescription(frame);
&gt; -    printf(&quot; - willPerformClientRedirectToURL: %s \n&quot;, to.spec().data());
&gt; +    if (m_shell-&gt;shouldDumpFrameLoadCallbacks()) {
&gt; +        printFrameDescription(frame);
&gt; +        printf(&quot; - willPerformClientRedirectToURL: %s \n&quot;, to.spec().data());
&gt; +    }
&gt; +
&gt; +    if (m_shell-&gt;shouldDumpUserGestureInFrameLoadCallbacks())
&gt; +        printFrameUserGestureStatus(frame, &quot; - in willPerformClientRedirect\n&quot;);

The name shouldDumpUserGestureInFrameLoadCallbacks(), in particular the suffix &quot;InFrameLoadCallbacks&quot;, implies to me that we should only print the user gesture status when both shouldDumpFrameLoadCallbacks() and shouldDumpUserGestureInFrameLoadCallbacks() evaluates to true. That is, a code structure similar to:

if (!m_shell-&gt;shouldDumpFrameLoadCallbacks())
     return;
printFrameDescription(frame);
...
if (m_shell-&gt;shouldDumpUserGestureInFrameLoadCallbacks())
    printFrameUserGestureStatus(frame, &quot; - in willPerformClientRedirect\n&quot;);

&gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:859
&gt; +    if (m_shell-&gt;shouldDumpUserGestureInFrameLoadCallbacks())
&gt; +        printFrameUserGestureStatus(frame, &quot; - in didStartProvisionalLoadForFrame\n&quot;);
&gt; +

Based on the comments above about the name shouldDumpUserGestureInFrameLoadCallbacks(), I would move this code inside the body of the if-statement &quot;if (m_shell-&gt;shouldDumpFrameLoadCallbacks())&quot; so that we only print the user gesture status when both shouldDumpFrameLoadCallbacks() and shouldDumpUserGestureInFrameLoadCallbacks() to true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395307</commentid>
    <comment_count>8</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-04-29 09:46:52 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; The name shouldDumpUserGestureInFrameLoadCallbacks(), in particular the suffix &quot;InFrameLoadCallbacks&quot;, implies to me that we should only print the user gesture status when both shouldDumpFrameLoadCallbacks() and shouldDumpUserGestureInFrameLoadCallbacks() evaluates to true. That is, a code structure similar to:
&gt; 
&gt; if (!m_shell-&gt;shouldDumpFrameLoadCallbacks())
&gt;      return;
&gt; printFrameDescription(frame);
&gt; ...
&gt; if (m_shell-&gt;shouldDumpUserGestureInFrameLoadCallbacks())
&gt;     printFrameUserGestureStatus(frame, &quot; - in willPerformClientRedirect\n&quot;);

I disagree.  This isn&apos;t how the existing uses of shouldDumpUserGestureInFrameLoadCallbacks are structured.  See FrameLoaderClientQt::dispatchDidStartProvisionalLoad() for instance:

     if (dumpFrameLoaderCallbacks)
         printf(&quot;%s - didStartProvisionalLoadForFrame\n&quot;, qPrintable(drtDescriptionSuitableForTestResult(m_frame)));

     if (dumpUserGestureInFrameLoaderCallbacks)
         printf(&quot;%s - in didStartProvisionalLoadForFrame\n&quot;, qPrintable(drtPrintFrameUserGestureStatus(m_frame)));

Treating it differently in willPerformClientRedirect() would be inconsistent, and changing it for all cases is out of scope of this bug.

I will update the comments and put up a new patch this weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399351</commentid>
    <comment_count>9</comment_count>
      <attachid>92546</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-05-05 23:20:39 -0700</bug_when>
    <thetext>Created attachment 92546
reworded comments as Dan suggested</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399354</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-05 23:23:29 -0700</bug_when>
    <thetext>Attachment 92546 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/loader/NavigationScheduler.cpp:130:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WebCore/loader/NavigationScheduler.cpp:249:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399362</commentid>
    <comment_count>11</comment_count>
      <attachid>92549</attachid>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2011-05-05 23:36:02 -0700</bug_when>
    <thetext>Created attachment 92549
fixed style error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400093</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-05-07 12:54:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; [...] 
&gt; I disagree.  This isn&apos;t how the existing uses of shouldDumpUserGestureInFrameLoadCallbacks are structured.  See FrameLoaderClientQt::dispatchDidStartProvisionalLoad() for instance:

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400125</commentid>
    <comment_count>13</comment_count>
      <attachid>92549</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-07 16:37:46 -0700</bug_when>
    <thetext>Comment on attachment 92549
fixed style error

Clearing flags on attachment: 92549

Committed r86013: &lt;http://trac.webkit.org/changeset/86013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400126</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-07 16:37:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400130</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-07 16:51:34 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 92549:

http/tests/xmlhttprequest/open-async-overload.html bug 51594 (author: morrita@google.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400183</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-07 19:50:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/86013 might have broken GTK Linux 32-bit Debug
The following tests are not passing:
svg/W3C-SVG-1.1/animate-elem-46-t.svg</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78555</attachid>
            <date>2011-01-11 11:06:33 -0800</date>
            <delta_ts>2011-01-12 08:03:06 -0800</delta_ts>
            <desc>fix with layout tests</desc>
            <filename>bug52211.patch</filename>
            <type>text/plain</type>
            <size>9476</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc1NTE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMTEgIEpvZSBNYXNv
biAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9u
ZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQ3JlYXRlIGEg
VXNlckdlc3R1cmVJbmRpY2F0b3Igd2hlbiBjYWxsaW5nIHRoZSBjbGllbnRSZWRpcmVjdGVkIGNh
bGxiYWNrLgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkVVJMTmF2aWdhdGlvbjo6ZGlkU3RhcnRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uOjpkaWRTdG9wVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0YXJ0VGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0b3BUaW1l
cik6CisKIDIwMTEtMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDc1
NDc1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEzLDggQEAgcHJvdGVjdGVkOgogICAgICAgICBpZiAo
bV9oYXZlVG9sZENsaWVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9oYXZlVG9s
ZENsaWVudCA9IHRydWU7CisKKyAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUlu
ZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwogICAgICAgICBmcmFtZS0+
bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0ZWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwg
ZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLT5uZXh0RmlyZUludGVydmFsKCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSk7CiAgICAgfQogCkBAIC0xMjAsNiArMTIyLDggQEAgcHJvdGVjdGVk
OgogICAgIHsKICAgICAgICAgaWYgKCFtX2hhdmVUb2xkQ2xpZW50KQogICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2Fz
VXNlckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0
ZWx5Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5j
bGllbnRSZWRpcmVjdENhbmNlbGxlZE9yRmluaXNoZWQobmV3TG9hZEluUHJvZ3Jlc3MpOwogICAg
IH0KIApAQCAtMjI0LDYgKzIyOCw4IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1faGF2ZVRvbGRD
bGllbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1faGF2ZVRvbGRDbGllbnQgPSB0
cnVlOworCisgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2Fz
VXNlckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0
ZWx5Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5j
bGllbnRSZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBjdXJy
ZW50VGltZSgpICsgdGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlz
dCgpKTsKICAgICB9CiAKQEAgLTIzMSw2ICsyMzcsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBpZiAoIW1faGF2ZVRvbGRDbGllbnQpCiAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8g
RGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5n
VXNlckdlc3R1cmUpOwogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0Q2Fu
Y2VsbGVkT3JGaW5pc2hlZChuZXdMb2FkSW5Qcm9ncmVzcyk7CiAgICAgfQogCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NTUx
OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDExLTAxLTExICBKb2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6aXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgaXMgd3JvbmcgaW4gZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxMQor
CisgICAgICAgIER1bXAgaXNVc2VyUHJvY2Vzc2luZ0dlc3R1cmUgaW4gd2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCBzbyB0aGF0IHRoZSBsYXlvdXQgdGVzdHMgY2FuIGJlIGV4dGVuZGVkLgorICAg
ICAgICAoRm9yIHRoZSBtYWMgYW5kIGNocm9taXVtIHBvcnRzIC0gb3RoZXIgcG9ydHMgZG9uJ3Qg
c3VwcG9ydCBkdW1waW5nIHVzZXIgZ2VzdHVyZXMgaW4gRFJULikKKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0
Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZCk6IE1ha2UgdGhlIG91dHB1dCBvcmRlciBtYXRjaCBvdGhlciBw
b3J0cy4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUubW06
CisgICAgICAgICgtW0ZyYW1lTG9hZERlbGVnYXRlIHdlYlZpZXc6d2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMOmRlbGF5OmZpcmVEYXRlOmZvckZyYW1lOl0pOgorCiAyMDExLTAxLTExICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUm9sbCByNzU0NzQgYmFjayBp
bi4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5j
cHAJKHJldmlzaW9uIDc1NDc1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjMsMTAgKzgyMywxMyBAQCB2b2lkIFdl
YlZpZXdIb3N0Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljCiB2b2lkIFdlYlZpZXdIb3N0Ojp3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViVVJMJiBmcm9t
LCBjb25zdCBXZWJVUkwmIHRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlX3RpbWUpCiB7Ci0gICAgaWYgKCFt
X3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCi0gICAgICAgIHJldHVybjsK
LSAgICBwcmludEZyYW1lRGVzY3JpcHRpb24oZnJhbWUpOwotICAgIHByaW50ZigiIC0gd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAlcyBcbiIsIHRvLnNwZWMoKS5kYXRhKCkpOworICAg
IGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAg
cHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKKyAgICAgICAgcHJpbnRmKCIgLSB3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ICVzIFxuIiwgdG8uc3BlYygpLmRhdGEoKSk7CisgICAg
fQorCisgICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkpCisgICAgICAgIHByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhmcmFtZSwgIiAt
IGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RcbiIpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0
OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdChXZWJGcmFtZSogZnJhbWUpCkBAIC04NDYsMTMgKzg0
OSwxNCBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRDcmVhdGVEYXRhU291cmNlKFdlCiAKIHZvaWQg
V2ViVmlld0hvc3Q6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKFdlYkZyYW1lKiBmcmFtZSkKIHsK
LSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3MoKSkKLSAgICAgICAgcHJpbnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVzKGZyYW1lLCAiIC0gaW4g
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIik7CiAgICAgaWYgKG1fc2hlbGwtPnNo
b3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewogICAgICAgICBwcmludEZyYW1lRGVzY3Jp
cHRpb24oZnJhbWUpOwogICAgICAgICBmcHV0cygiIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZVxuIiwgc3Rkb3V0KTsKICAgICB9CiAKKyAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVt
cFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRGcmFtZVVz
ZXJHZXN0dXJlU3RhdHVzKGZyYW1lLCAiIC0gaW4gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZVxuIik7CisKICAgICBpZiAoIW1fdG9wTG9hZGluZ0ZyYW1lKQogICAgICAgICBtX3RvcExv
YWRpbmdGcmFtZSA9IGZyYW1lOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJh
bWVMb2FkRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0ZyYW1lTG9hZERlbGVnYXRlLm1tCShyZXZpc2lvbiA3NTQ3NSkKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUzLDYg
KzM1MywxMSBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgd2lsbFBlCiAgICAg
ICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAIC0g
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOiAlQCAiLCBbZnJhbWUgX2RydF9kZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdF0sIFtVUkwgX2RydF9kZXNjcmlwdGlvblN1aXRhYmxl
Rm9yVGVzdFJlc3VsdF1dOwogICAgICAgICBwcmludGYgKCIlc1xuIiwgW3N0cmluZyBVVEY4U3Ry
aW5nXSk7CiAgICAgfQorCisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+
ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBOU1N0cmlu
ZyAqc3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCAtIGluIHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3QiLCBbZnJhbWUgX2RydF9wcmludEZyYW1lVXNlckdlc3R1cmVTdGF0
dXNdXTsKKyAgICAgICAgcHJpbnRmICgiJXNcbiIsIFtzdHJpbmcgVVRGOFN0cmluZ10pOworICAg
IH0KIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUKSW5kZXg6IFdlYktpdC9xdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzU1MTgp
CisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDEtMTEgIEpvZSBNYXNvbiAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3Np
bmdVc2VyR2VzdHVyZSBpcyB3cm9uZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjEx
CisKKyAgICAgICAgRHVtcCBpc1VzZXJQcm9jZXNzaW5nR2VzdHVyZSBpbiB3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0IHNvIHRoYXQgdGhlIGxheW91dCB0ZXN0cyBjYW4gYmUgZXh0ZW5kZWQuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCk6CisKIDIwMTEtMDEtMTEgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1
cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDc1NDc1KQorKysgV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsNiAr
MzcyLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaFdpbGxQZQogICAgIGlm
IChkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3MpCiAgICAgICAgIHByaW50ZigiJXMgLSB3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ICVzIFxuIiwgcVByaW50YWJsZShkcnREZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChtX2ZyYW1lKSksIHFQcmludGFibGUoZHJ0RGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQodXJsKSkpOwogCisgICAgaWYgKGR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkZXJDYWxsYmFja3MpCisgICAgICAgIHByaW50ZigiJXMgLSBpbiB3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0XG4iLCBxUHJpbnRhYmxlKGRydFByaW50RnJhbWVVc2VyR2VzdHVy
ZVN0YXR1cyhtX2ZyYW1lKSkpOworCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNzU1MTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0xMSAgSm9lIE1hc29uICA8am1hc29uQHJpbS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJh
bWVMb2FkZXI6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIGlzIHdyb25nIGluIGRpc3BhdGNoV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTIyMTEKKworICAgICAgICBBZGQgd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdCB0byB0aGUgdXNlci1nZXN0dXJlIHRlc3RzLgorCisgICAgICAgICogZmFzdC9mcmFtZXMv
bG9jYXRpb24tcmVkaXJlY3QtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2ZyYW1lcy9tZXRhLXJlZnJlc2gtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDoKKwogMjAx
MS0wMS0xMSAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkOyBjaHJvbWl1bS1ncHUgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbG9jYXRpb24tcmVkaXJlY3QtdXNlci1nZXN0
dXJlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9s
b2NhdGlvbi1yZWRpcmVjdC11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NTQ3
NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2xvY2F0aW9uLXJlZGlyZWN0LXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitGcmFtZSB3
aXRoIHVzZXIgZ2VzdHVyZSAiZmFsc2UiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdAog
RnJhbWUgd2l0aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbWV0YS1yZWZyZXNo
LXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDc1NDc1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitGcmFtZSB3
aXRoIHVzZXIgZ2VzdHVyZSAiZmFsc2UiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdAog
RnJhbWUgd2l0aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78692</attachid>
            <date>2011-01-12 08:03:06 -0800</date>
            <delta_ts>2011-05-05 23:20:39 -0700</delta_ts>
            <desc>fixed review comments</desc>
            <filename>bug52211.patch</filename>
            <type>text/plain</type>
            <size>9531</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc1NTE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMTEgIEpvZSBNYXNv
biAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9u
ZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQ3JlYXRlIGEg
VXNlckdlc3R1cmVJbmRpY2F0b3Igd2hlbiBjYWxsaW5nIHRoZSBjbGllbnRSZWRpcmVjdGVkIGNh
bGxiYWNrLgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkVVJMTmF2aWdhdGlvbjo6ZGlkU3RhcnRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uOjpkaWRTdG9wVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0YXJ0VGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0b3BUaW1l
cik6CisKIDIwMTEtMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDc1
NDc1KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEzLDggQEAgcHJvdGVjdGVkOgogICAgICAgICBpZiAo
bV9oYXZlVG9sZENsaWVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9oYXZlVG9s
ZENsaWVudCA9IHRydWU7CisKKyAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUlu
ZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwogICAgICAgICBmcmFtZS0+
bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0ZWQoS1VSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwg
ZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLT5uZXh0RmlyZUludGVydmFsKCksIGxvY2tC
YWNrRm9yd2FyZExpc3QoKSk7CiAgICAgfQogCkBAIC0xMjAsNiArMTIyLDggQEAgcHJvdGVjdGVk
OgogICAgIHsKICAgICAgICAgaWYgKCFtX2hhdmVUb2xkQ2xpZW50KQogICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIC8vIGRvIG5vdCBzZXQgYSBVc2VyR2VzdHVyZUluZGljYXRvciBiZWNh
dXNlIHRoZXJlIGFyZSBvdGhlciBwYXRocyB0byBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGly
ZWN0IHdoZXJlIHRoZSBnZXN0dXJlIHN0YXRlIGlzIG5vdCBzZXQsIGFuZCB3ZSBzaG91bGQgYmUg
Y29uc2lzdGVudCB3aXRoIHRoZW0KICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnRSZWRp
cmVjdENhbmNlbGxlZE9yRmluaXNoZWQobmV3TG9hZEluUHJvZ3Jlc3MpOwogICAgIH0KIApAQCAt
MjI0LDYgKzIyOCw4IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1faGF2ZVRvbGRDbGllbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1faGF2ZVRvbGRDbGllbnQgPSB0cnVlOworCisg
ICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdlc3R1
cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnRSZWRp
cmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBjdXJyZW50VGltZSgp
ICsgdGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKICAg
ICB9CiAKQEAgLTIzMSw2ICsyMzcsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIW1f
aGF2ZVRvbGRDbGllbnQpCiAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gZG8gbm90
IHNldCBhIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGJlY2F1c2UgdGhlcmUgYXJlIG90aGVyIHBhdGhz
IHRvIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Qgd2hlcmUgdGhlIGdlc3R1cmUgc3Rh
dGUgaXMgbm90IHNldCwgYW5kIHdlIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlbQogICAg
ICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChu
ZXdMb2FkSW5Qcm9ncmVzcyk7CiAgICAgfQogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NTUxOCkKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDExLTAxLTExICBKb2UgTWFz
b24gIDxqbWFzb25AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgaXMgd3Jv
bmcgaW4gZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxMQorCisgICAgICAgIER1bXAgaXNV
c2VyUHJvY2Vzc2luZ0dlc3R1cmUgaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCBzbyB0aGF0
IHRoZSBsYXlvdXQgdGVzdHMgY2FuIGJlIGV4dGVuZGVkLgorICAgICAgICAoRm9yIHRoZSBtYWMg
YW5kIGNocm9taXVtIHBvcnRzIC0gb3RoZXIgcG9ydHMgZG9uJ3Qgc3VwcG9ydCBkdW1waW5nIHVz
ZXIgZ2VzdHVyZXMgaW4gRFJULikKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0Ojp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tOgor
ICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0ZSB3ZWJWaWV3OndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTDpkZWxheTpmaXJlRGF0ZTpmb3JGcmFtZTpdKToKKwogMjAxMS0wMS0xMSAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJvbGwgcjc1NDc0IGJhY2sgaW4u
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
CShyZXZpc2lvbiA3NTQ3NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIzLDEwICs4MjMsMTMgQEAgdm9pZCBXZWJW
aWV3SG9zdDo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpYwogdm9pZCBXZWJWaWV3SG9zdDo6d2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdChXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlVSTCYgZnJvbSwg
Y29uc3QgV2ViVVJMJiB0bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZV90aW1lKQogewotICAgIGlmICghbV9z
aGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQotICAgICAgICByZXR1cm47Ci0g
ICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKLSAgICBwcmludGYoIiAtIHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogJXMgXG4iLCB0by5zcGVjKCkuZGF0YSgpKTsKKyAgICBp
ZiAobV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIHBy
aW50RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7CisgICAgICAgIHByaW50ZigiIC0gd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMOiAlcyBcbiIsIHRvLnNwZWMoKS5kYXRhKCkpOworICAgIH0K
KworICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxi
YWNrcygpKQorICAgICAgICBwcmludEZyYW1lVXNlckdlc3R1cmVTdGF0dXMoZnJhbWUsICIgLSBp
biB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0XG4iKTsKIH0KIAogdm9pZCBXZWJWaWV3SG9zdDo6
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoV2ViRnJhbWUqIGZyYW1lKQpAQCAtODQ2LDEzICs4NDks
MTQgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZGlkQ3JlYXRlRGF0YVNvdXJjZShXZQogCiB2b2lkIFdl
YlZpZXdIb3N0OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZChXZWJGcmFtZSogZnJhbWUpCiB7Ci0g
ICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tz
KCkpCi0gICAgICAgIHByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhmcmFtZSwgIiAtIGluIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIpOwogICAgIGlmIChtX3NoZWxsLT5zaG91
bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKICAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0
aW9uKGZyYW1lKTsKICAgICAgICAgZnB1dHMoIiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVcbiIsIHN0ZG91dCk7CiAgICAgfQogCisgICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBV
c2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50RnJhbWVVc2Vy
R2VzdHVyZVN0YXR1cyhmcmFtZSwgIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVcbiIpOworCiAgICAgaWYgKCFtX3RvcExvYWRpbmdGcmFtZSkKICAgICAgICAgbV90b3BMb2Fk
aW5nRnJhbWUgPSBmcmFtZTsKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1l
TG9hZERlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9G
cmFtZUxvYWREZWxlZ2F0ZS5tbQkocmV2aXNpb24gNzU0NzUpCisrKyBUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICsz
NTMsMTEgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIHdpbGxQZQogICAgICAg
ICBOU1N0cmluZyAqc3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCAtIHdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogJUAgIiwgW2ZyYW1lIF9kcnRfZGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHRdLCBbVVJMIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHRdXTsKICAgICAgICAgcHJpbnRmICgiJXNcbiIsIFtzdHJpbmcgVVRGOFN0cmlu
Z10pOwogICAgIH0KKworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1
bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgTlNTdHJpbmcg
KnN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgLSBpbiB3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0IiwgW2ZyYW1lIF9kcnRfcHJpbnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVz
XV07CisgICAgICAgIHByaW50ZiAoIiVzXG4iLCBbc3RyaW5nIFVURjhTdHJpbmddKTsKKyAgICB9
CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdEZvckZyYW1lOihXZWJGcmFtZSAqKWZyYW1lCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc1NTE4KQor
KysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDExLTAxLTExICBKb2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6aXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgaXMgd3JvbmcgaW4gZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxMQor
CisgICAgICAgIER1bXAgaXNVc2VyUHJvY2Vzc2luZ0dlc3R1cmUgaW4gd2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCBzbyB0aGF0IHRoZSBsYXlvdXQgdGVzdHMgY2FuIGJlIGV4dGVuZGVkLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3QpOgorCiAyMDExLTAxLTExICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJj
b3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3NTQ3NSkKKysrIFdlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcyLDYgKzM3
Miw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hXaWxsUGUKICAgICBpZiAo
ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzKQogICAgICAgICBwcmludGYoIiVzIC0gd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFRvVVJMOiAlcyBcbiIsIHFQcmludGFibGUoZHJ0RGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQobV9mcmFtZSkpLCBxUHJpbnRhYmxlKGRydERlc2NyaXB0aW9u
U3VpdGFibGVGb3JUZXN0UmVzdWx0KHVybCkpKTsKIAorICAgIGlmIChkdW1wVXNlckdlc3R1cmVJ
bkZyYW1lTG9hZGVyQ2FsbGJhY2tzKQorICAgICAgICBwcmludGYoIiVzIC0gaW4gd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdFxuIiwgcVByaW50YWJsZShkcnRQcmludEZyYW1lVXNlckdlc3R1cmVT
dGF0dXMobV9mcmFtZSkpKTsKKwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDc1NTE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDEtMTEgIEpvZSBNYXNvbiAgPGptYXNvbkByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1l
TG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9uZyBpbiBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQWRkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QgdG8gdGhlIHVzZXItZ2VzdHVyZSB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvZnJhbWVzL2xv
Y2F0aW9uLXJlZGlyZWN0LXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQ6CisKIDIwMTEt
MDEtMTEgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZDsgY2hyb21pdW0tZ3B1IHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2xvY2F0aW9uLXJlZGlyZWN0LXVzZXItZ2VzdHVy
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbG9j
YXRpb24tcmVkaXJlY3QtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzU0NzUp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9sb2NhdGlvbi1yZWRpcmVjdC11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorRnJhbWUgd2l0
aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKIEZy
YW1lIHdpdGggdXNlciBnZXN0dXJlICJmYWxzZSIgLSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL21ldGEtcmVmcmVzaC11
c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL21ldGEtcmVmcmVzaC11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3
NTQ3NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL21ldGEtcmVmcmVzaC11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorRnJhbWUgd2l0
aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKIEZy
YW1lIHdpdGggdXNlciBnZXN0dXJlICJmYWxzZSIgLSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiAK
</data>
<flag name="review"
          id="70049"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="70050"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92546</attachid>
            <date>2011-05-05 23:20:39 -0700</date>
            <delta_ts>2011-05-05 23:36:02 -0700</delta_ts>
            <desc>reworded comments as Dan suggested</desc>
            <filename>meta-redirect-usergesture.patch</filename>
            <type>text/plain</type>
            <size>10046</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1OTA4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMTEgIEpvZSBNYXNv
biAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9u
ZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQ3JlYXRlIGEg
VXNlckdlc3R1cmVJbmRpY2F0b3Igd2hlbiBjYWxsaW5nIHRoZSBjbGllbnRSZWRpcmVjdGVkIGNh
bGxiYWNrLgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkVVJMTmF2aWdhdGlvbjo6ZGlkU3RhcnRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uOjpkaWRTdG9wVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0YXJ0VGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0b3BUaW1l
cik6CisKIDIwMTEtMDUtMDUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gODU5MTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNCw2ICsxMTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGlmIChtX2hhdmVUb2xkQ2xpZW50
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsK
KworICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJH
ZXN0dXJlKCkgPyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5v
dFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
UmVkaXJlY3RlZChLVVJMKFBhcnNlZFVSTFN0cmluZywgbV91cmwpLCBkZWxheSgpLCBjdXJyZW50
VGltZSgpICsgdGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
KTsKICAgICB9CiAKQEAgLTEyMSw2ICsxMjMsMTMgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAg
ICAgaWYgKCFtX2hhdmVUb2xkQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IC8vIERvIG5vdCBzZXQgYSBVc2VyR2VzdHVyZUluZGljYXRvciBiZWNhdXNlCisgICAgICAgIC8v
IGNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZCgpIGlzIGFsc28gY2FsbGVkIGZyb20g
bWFueSBwbGFjZXMKKyAgICAgICAgLy8gaW5zaWRlIEZyYW1lTG9hZGVyLCB3aGVyZSB0aGUgZ2Vz
dHVyZSBzdGF0ZSBpcyBub3Qgc2V0IGFuZCBpcyBpbgorICAgICAgICAvLyBmYWN0IHVuYXZhaWxh
YmxlLiAgV2UgbmVlZCB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlbSwgb3RoZXJ3aXNlIHRoZQor
ICAgICAgICAvLyBnZXN0dXJlIHN0YXRlIHdpbGwgc29tZXRpbWVzIGJlIHNldCBhbmQgc29tZXRp
bWVzIG5vdCB3aXRoaW4KKyAgICAgICAgLy8gZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVj
dCgpLgogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JG
aW5pc2hlZChuZXdMb2FkSW5Qcm9ncmVzcyk7CiAgICAgfQogCkBAIC0yMjQsNiArMjMzLDggQEAg
cHVibGljOgogICAgICAgICBpZiAobV9oYXZlVG9sZENsaWVudCkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgbV9oYXZlVG9sZENsaWVudCA9IHRydWU7CisKKyAgICAgICAgVXNlckdlc3R1
cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVs
eVByb2Nlc3NpbmdVc2VyR2VzdHVyZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1
cmUpOwogICAgICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudFJlZGlyZWN0ZWQobV9zdWJtaXNz
aW9uLT5yZXF1ZXN0VVJMKCksIGRlbGF5KCksIGN1cnJlbnRUaW1lKCkgKyB0aW1lci0+bmV4dEZp
cmVJbnRlcnZhbCgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwogICAgIH0KIApAQCAtMjMxLDYg
KzI0MiwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIW1faGF2ZVRvbGRDbGllbnQp
CiAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gRG8gbm90IHNldCBhIFVzZXJHZXN0
dXJlSW5kaWNhdG9yIGJlY2F1c2UKKyAgICAgICAgLy8gY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRP
ckZpbmlzaGVkKCkgaXMgYWxzbyBjYWxsZWQgZnJvbSBtYW55IHBsYWNlcworICAgICAgICAvLyBp
bnNpZGUgRnJhbWVMb2FkZXIsIHdoZXJlIHRoZSBnZXN0dXJlIHN0YXRlIGlzIG5vdCBzZXQgYW5k
IGlzIGluCisgICAgICAgIC8vIGZhY3QgdW5hdmFpbGFibGUuICBXZSBuZWVkIHRvIGJlIGNvbnNp
c3RlbnQgd2l0aCB0aGVtLCBvdGhlcndpc2UgdGhlCisgICAgICAgIC8vIGdlc3R1cmUgc3RhdGUg
d2lsbCBzb21ldGltZXMgYmUgc2V0IGFuZCBzb21ldGltZXMgbm90IHdpdGhpbgorICAgICAgICAv
LyBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkuCiAgICAgICAgIGZyYW1lLT5sb2Fk
ZXIoKS0+Y2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKG5ld0xvYWRJblByb2dyZXNz
KTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTkxMykKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMDEtMTEgIEpvZSBNYXNvbiAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZSBpcyB3cm9uZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisK
KyAgICAgICAgRHVtcCBpc1VzZXJQcm9jZXNzaW5nR2VzdHVyZSBpbiB3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0IHNvIHRoYXQgdGhlIGxheW91dCB0ZXN0cyBjYW4gYmUgZXh0ZW5kZWQuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCk6CisKIDIwMTEtMDUtMDUgIFByYXNhbnRoIFVsbGF0dGlsICA8cHJhc2FudGgudWxs
YXR0aWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJ
bmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA4NTkxMykKKysrIFNvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3NSw2ICszNzUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoV2lsbFBl
CiAgICAgaWYgKGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcykKICAgICAgICAgcHJpbnRmKCIlcyAt
IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDogJXMgXG4iLCBxUHJpbnRhYmxlKGRydERl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KG1fZnJhbWUpKSwgcVByaW50YWJsZShkcnRE
ZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmwpKSk7CiAKKyAgICBpZiAoZHVtcFVz
ZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxiYWNrcykKKyAgICAgICAgcHJpbnRmKCIlcyAtIGlu
IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RcbiIsIHFQcmludGFibGUoZHJ0UHJpbnRGcmFtZVVz
ZXJHZXN0dXJlU3RhdHVzKG1fZnJhbWUpKSk7CisKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA4NTkxMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE5IEBACisyMDExLTAxLTExICBKb2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6
aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgaXMgd3JvbmcgaW4gZGlzcGF0Y2hXaWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MjIxMQorCisgICAgICAgIER1bXAgaXNVc2VyUHJvY2Vzc2luZ0dlc3R1cmUgaW4gd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdCBzbyB0aGF0IHRoZSBsYXlvdXQgdGVzdHMgY2FuIGJlIGV4
dGVuZGVkLgorICAgICAgICAoRm9yIHRoZSBNYWMgYW5kIENocm9taXVtIHBvcnRzIC0gb3RoZXIg
cG9ydHMgZG9uJ3Qgc3VwcG9ydCBkdW1waW5nIHVzZXIgZ2VzdHVyZXMgaW4gRFJULikKKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAg
KFdlYlZpZXdIb3N0Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYlZp
ZXdIb3N0OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoLVtGcmFtZUxvYWREZWxlZ2F0
ZSB3ZWJWaWV3OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDpkZWxheTpmaXJlRGF0ZTpm
b3JGcmFtZTpdKToKKwogMjAxMS0wNS0wNSAgU3RldmUgTGFjZXkgIDxzamxAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA4NTkxMykKKysr
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODU1LDEwICs4NTUsMTMgQEAgdm9pZCBXZWJWaWV3SG9zdDo6dW5hYmxlVG9JbXBs
ZW1lbnRQb2xpYwogdm9pZCBXZWJWaWV3SG9zdDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChX
ZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlVSTCYgZnJvbSwgY29uc3QgV2ViVVJMJiB0bywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGludGVydmFs
LCBkb3VibGUgZmlyZV90aW1lKQogewotICAgIGlmICghbV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpKQotICAgICAgICByZXR1cm47Ci0gICAgcHJpbnRGcmFtZURlc2NyaXB0
aW9uKGZyYW1lKTsKLSAgICBwcmludGYoIiAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VS
TDogJXMgXG4iLCB0by5zcGVjKCkuZGF0YSgpKTsKKyAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihm
cmFtZSk7CisgICAgICAgIHByaW50ZigiIC0gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
OiAlcyBcbiIsIHRvLnNwZWMoKS5kYXRhKCkpOworICAgIH0KKworICAgIGlmIChtX3NoZWxsLT5z
aG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpKQorICAgICAgICBwcmlu
dEZyYW1lVXNlckdlc3R1cmVTdGF0dXMoZnJhbWUsICIgLSBpbiB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0XG4iKTsKIH0KIAogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3QoV2ViRnJhbWUqIGZyYW1lKQpAQCAtODc4LDEzICs4ODEsMTQgQEAgdm9pZCBXZWJWaWV3SG9z
dDo6ZGlkQ3JlYXRlRGF0YVNvdXJjZShXZQogCiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZChXZWJGcmFtZSogZnJhbWUpCiB7Ci0gICAgaWYgKG1fc2hlbGwtPnNob3Vs
ZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCi0gICAgICAgIHByaW50RnJh
bWVVc2VyR2VzdHVyZVN0YXR1cyhmcmFtZSwgIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVcbiIpOwogICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKCkpIHsKICAgICAgICAgcHJpbnRGcmFtZURlc2NyaXB0aW9uKGZyYW1lKTsKICAgICAgICAg
ZnB1dHMoIiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIsIHN0ZG91dCk7CiAg
ICAgfQogCisgICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhmcmFtZSwg
IiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIpOworCiAgICAgaWYgKCFt
X3RvcExvYWRpbmdGcmFtZSkKICAgICAgICAgbV90b3BMb2FkaW5nRnJhbWUgPSBmcmFtZTsKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQko
cmV2aXNpb24gODU5MTMpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVs
ZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICszNTMsMTEgQEAgLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIHdpbGxQZQogICAgICAgICBOU1N0cmluZyAqc3RyaW5nID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTDogJUAgIiwgW2ZyYW1lIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1
bHRdLCBbVVJMIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHRdXTsKICAgICAg
ICAgcHJpbnRmICgiJXNcbiIsIFtzdHJpbmcgVVRGOFN0cmluZ10pOwogICAgIH0KKworICAgIGlm
ICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJUAgLSBpbiB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0IiwgW2Zy
YW1lIF9kcnRfcHJpbnRGcmFtZVVzZXJHZXN0dXJlU3RhdHVzXV07CisgICAgICAgIHByaW50ZiAo
IiVzXG4iLCBbc3RyaW5nIFVURjhTdHJpbmddKTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXNlbmRlciBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOihXZWJG
cmFtZSAqKWZyYW1lCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTkwOCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTExICBKb2Ug
TWFzb24gIDxqbWFzb25AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0
ZXMuCisKKyAgICAgICAgRnJhbWVMb2FkZXI6OmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIGlzIHdy
b25nIGluIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMTEKKworICAgICAgICBBZGQgd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdCB0byB0aGUgdXNlci1nZXN0dXJlIHRlc3RzLgorCisgICAg
ICAgICogZmFzdC9mcmFtZXMvbG9jYXRpb24tcmVkaXJlY3QtdXNlci1nZXN0dXJlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9tZXRhLXJlZnJlc2gtdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dDoKKwogMjAxMS0wNS0wNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCBwYXJ0aWFsIHJvbGxvdXQgb2Ygcjg1ODQzIGFuZCBy
ODU4MjQuICByODU4OTcgbWFkZSB0aGVzZSBleHBlY3RlZCByZXN1bHRzIHVubmVjZXNzYXJ5LgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbG9jYXRpb24tcmVkaXJlY3QtdXNlci1nZXN0
dXJlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9s
b2NhdGlvbi1yZWRpcmVjdC11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4NTkx
MykKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2xvY2F0aW9uLXJlZGlyZWN0LXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitGcmFtZSB3
aXRoIHVzZXIgZ2VzdHVyZSAiZmFsc2UiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdAog
RnJhbWUgd2l0aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbWV0YS1yZWZyZXNo
LXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDg1OTEzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2Vz
dHVyZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitGcmFtZSB3
aXRoIHVzZXIgZ2VzdHVyZSAiZmFsc2UiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdAog
RnJhbWUgd2l0aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92549</attachid>
            <date>2011-05-05 23:36:02 -0700</date>
            <delta_ts>2011-05-07 16:37:46 -0700</delta_ts>
            <desc>fixed style error</desc>
            <filename>meta-redirect-usergesture.patch</filename>
            <type>text/plain</type>
            <size>10044</size>
            <attacher name="Joe Mason">joenotcharles</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1OTA4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDEtMTEgIEpvZSBNYXNv
biAgPGptYXNvbkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9u
ZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQ3JlYXRlIGEg
VXNlckdlc3R1cmVJbmRpY2F0b3Igd2hlbiBjYWxsaW5nIHRoZSBjbGllbnRSZWRpcmVjdGVkIGNh
bGxiYWNrLgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkVVJMTmF2aWdhdGlvbjo6ZGlkU3RhcnRUaW1lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRVUkxOYXZpZ2F0aW9uOjpkaWRTdG9wVGltZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0YXJ0VGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkRm9ybVN1Ym1pc3Npb246OmRpZFN0b3BUaW1l
cik6CisKIDIwMTEtMDUtMDUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAkocmV2aXNpb24gODU5MTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNCw2ICsxMTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGlmIChtX2hhdmVUb2xkQ2xpZW50
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsK
KworICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJH
ZXN0dXJlKCkgPyBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5v
dFByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
UmVkaXJlY3RlZChLVVJMKFBhcnNlZFVSTFN0cmluZywgbV91cmwpLCBkZWxheSgpLCBjdXJyZW50
VGltZSgpICsgdGltZXItPm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
KTsKICAgICB9CiAKQEAgLTEyMSw2ICsxMjMsMTMgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAg
ICAgaWYgKCFtX2hhdmVUb2xkQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IC8vIERvIG5vdCBzZXQgYSBVc2VyR2VzdHVyZUluZGljYXRvciBiZWNhdXNlCisgICAgICAgIC8v
IGNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZCgpIGlzIGFsc28gY2FsbGVkIGZyb20g
bWFueSBwbGFjZXMKKyAgICAgICAgLy8gaW5zaWRlIEZyYW1lTG9hZGVyLCB3aGVyZSB0aGUgZ2Vz
dHVyZSBzdGF0ZSBpcyBub3Qgc2V0IGFuZCBpcyBpbgorICAgICAgICAvLyBmYWN0IHVuYXZhaWxh
YmxlLiBXZSBuZWVkIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGVtLCBvdGhlcndpc2UgdGhlCisg
ICAgICAgIC8vIGdlc3R1cmUgc3RhdGUgd2lsbCBzb21ldGltZXMgYmUgc2V0IGFuZCBzb21ldGlt
ZXMgbm90IHdpdGhpbgorICAgICAgICAvLyBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0
KCkuCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZp
bmlzaGVkKG5ld0xvYWRJblByb2dyZXNzKTsKICAgICB9CiAKQEAgLTIyNCw2ICsyMzMsOCBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChtX2hhdmVUb2xkQ2xpZW50KQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsKKworICAgICAgICBVc2VyR2VzdHVy
ZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHdhc1VzZXJHZXN0dXJlKCkgPyBEZWZpbml0ZWx5
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIDogRGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSk7CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50UmVkaXJlY3RlZChtX3N1Ym1pc3Np
b24tPnJlcXVlc3RVUkwoKSwgZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLT5uZXh0Rmly
ZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CiAgICAgfQogCkBAIC0yMzEsNiAr
MjQyLDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghbV9oYXZlVG9sZENsaWVudCkK
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBEbyBub3Qgc2V0IGEgVXNlckdlc3R1
cmVJbmRpY2F0b3IgYmVjYXVzZQorICAgICAgICAvLyBjbGllbnRSZWRpcmVjdENhbmNlbGxlZE9y
RmluaXNoZWQoKSBpcyBhbHNvIGNhbGxlZCBmcm9tIG1hbnkgcGxhY2VzCisgICAgICAgIC8vIGlu
c2lkZSBGcmFtZUxvYWRlciwgd2hlcmUgdGhlIGdlc3R1cmUgc3RhdGUgaXMgbm90IHNldCBhbmQg
aXMgaW4KKyAgICAgICAgLy8gZmFjdCB1bmF2YWlsYWJsZS4gV2UgbmVlZCB0byBiZSBjb25zaXN0
ZW50IHdpdGggdGhlbSwgb3RoZXJ3aXNlIHRoZQorICAgICAgICAvLyBnZXN0dXJlIHN0YXRlIHdp
bGwgc29tZXRpbWVzIGJlIHNldCBhbmQgc29tZXRpbWVzIG5vdCB3aXRoaW4KKyAgICAgICAgLy8g
ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpLgogICAgICAgICBmcmFtZS0+bG9hZGVy
KCktPmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChuZXdMb2FkSW5Qcm9ncmVzcyk7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gODU5MTMpCisrKyBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEx
LTAxLTExICBKb2UgTWFzb24gIDxqbWFzb25AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmFtZUxvYWRlcjo6aXNQcm9jZXNzaW5nVXNl
ckdlc3R1cmUgaXMgd3JvbmcgaW4gZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxMQorCisg
ICAgICAgIER1bXAgaXNVc2VyUHJvY2Vzc2luZ0dlc3R1cmUgaW4gd2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCBzbyB0aGF0IHRoZSBsYXlvdXQgdGVzdHMgY2FuIGJlIGV4dGVuZGVkLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3QpOgorCiAyMDExLTA1LTA1ICBQcmFzYW50aCBVbGxhdHRpbCAgPHByYXNhbnRoLnVsbGF0
dGlsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcAkocmV2aXNpb24gODU5MTMpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzUsNiArMzc1LDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaFdpbGxQZQog
ICAgIGlmIChkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3MpCiAgICAgICAgIHByaW50ZigiJXMgLSB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ICVzIFxuIiwgcVByaW50YWJsZShkcnREZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChtX2ZyYW1lKSksIHFQcmludGFibGUoZHJ0RGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQodXJsKSkpOwogCisgICAgaWYgKGR1bXBVc2Vy
R2VzdHVyZUluRnJhbWVMb2FkZXJDYWxsYmFja3MpCisgICAgICAgIHByaW50ZigiJXMgLSBpbiB3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0XG4iLCBxUHJpbnRhYmxlKGRydFByaW50RnJhbWVVc2Vy
R2VzdHVyZVN0YXR1cyhtX2ZyYW1lKSkpOworCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gODU5MTMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMS0wMS0xMSAgSm9lIE1hc29uICA8am1hc29uQHJpbS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJhbWVMb2FkZXI6Omlz
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlIGlzIHdyb25nIGluIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTIyMTEKKworICAgICAgICBEdW1wIGlzVXNlclByb2Nlc3NpbmdHZXN0dXJlIGluIHdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3Qgc28gdGhhdCB0aGUgbGF5b3V0IHRlc3RzIGNhbiBiZSBleHRl
bmRlZC4KKyAgICAgICAgKEZvciB0aGUgTWFjIGFuZCBDaHJvbWl1bSBwb3J0cyAtIG90aGVyIHBv
cnRzIGRvbid0IHN1cHBvcnQgZHVtcGluZyB1c2VyIGdlc3R1cmVzIGluIERSVC4pCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChX
ZWJWaWV3SG9zdDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJWaWV3
SG9zdDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bRnJhbWVMb2FkRGVsZWdhdGUg
d2ViVmlldzp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6ZmlyZURhdGU6Zm9y
RnJhbWU6XSk6CisKIDIwMTEtMDUtMDUgIFN0ZXZlIExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAkocmV2aXNpb24gODU5MTMpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1NSwxMCArODU1LDEzIEBAIHZvaWQgV2ViVmlld0hvc3Q6OnVuYWJsZVRvSW1wbGVt
ZW50UG9saWMKIHZvaWQgV2ViVmlld0hvc3Q6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBXZWJVUkwmIGZyb20sIGNvbnN0IFdlYlVSTCYgdG8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBpbnRlcnZhbCwg
ZG91YmxlIGZpcmVfdGltZSkKIHsKLSAgICBpZiAoIW1fc2hlbGwtPnNob3VsZER1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHByaW50RnJhbWVEZXNjcmlwdGlv
bihmcmFtZSk7Ci0gICAgcHJpbnRmKCIgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6
ICVzIFxuIiwgdG8uc3BlYygpLmRhdGEoKSk7CisgICAgaWYgKG1fc2hlbGwtPnNob3VsZER1bXBG
cmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBwcmludEZyYW1lRGVzY3JpcHRpb24oZnJh
bWUpOworICAgICAgICBwcmludGYoIiAtIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDog
JXMgXG4iLCB0by5zcGVjKCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICBpZiAobV9zaGVsbC0+c2hv
dWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRG
cmFtZVVzZXJHZXN0dXJlU3RhdHVzKGZyYW1lLCAiIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdFxuIik7CiB9CiAKIHZvaWQgV2ViVmlld0hvc3Q6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0
KFdlYkZyYW1lKiBmcmFtZSkKQEAgLTg3OCwxMyArODgxLDE0IEBAIHZvaWQgV2ViVmlld0hvc3Q6
OmRpZENyZWF0ZURhdGFTb3VyY2UoV2UKIAogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkU3RhcnRQcm92
aXNpb25hbExvYWQoV2ViRnJhbWUqIGZyYW1lKQogewotICAgIGlmIChtX3NoZWxsLT5zaG91bGRE
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpKQotICAgICAgICBwcmludEZyYW1l
VXNlckdlc3R1cmVTdGF0dXMoZnJhbWUsICIgLSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lXG4iKTsKICAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNr
cygpKSB7CiAgICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7CiAgICAgICAgIGZw
dXRzKCIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lXG4iLCBzdGRvdXQpOwogICAg
IH0KIAorICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENh
bGxiYWNrcygpKQorICAgICAgICBwcmludEZyYW1lVXNlckdlc3R1cmVTdGF0dXMoZnJhbWUsICIg
LSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lXG4iKTsKKwogICAgIGlmICghbV90
b3BMb2FkaW5nRnJhbWUpCiAgICAgICAgIG1fdG9wTG9hZGluZ0ZyYW1lID0gZnJhbWU7CiAKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRnJhbWVMb2FkRGVsZWdhdGUubW0JKHJl
dmlzaW9uIDg1OTEzKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVn
YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMsNiArMzUzLDExIEBAIC0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXNlbmRlciB3aWxsUGUKICAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgLSB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
VG9VUkw6ICVAICIsIFtmcmFtZSBfZHJ0X2Rlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0
XSwgW1VSTCBfZHJ0X2Rlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0XV07CiAgICAgICAg
IHByaW50ZiAoIiVzXG4iLCBbc3RyaW5nIFVURjhTdHJpbmddKTsKICAgICB9CisKKyAgICBpZiAo
IWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9h
ZENhbGxiYWNrcygpKSB7CisgICAgICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIiVAIC0gaW4gd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCIsIFtmcmFt
ZSBfZHJ0X3ByaW50RnJhbWVVc2VyR2VzdHVyZVN0YXR1c11dOworICAgICAgICBwcmludGYgKCIl
c1xuIiwgW3N0cmluZyBVVEY4U3RyaW5nXSk7CisgICAgfQogfQogCiAtICh2b2lkKXdlYlZpZXc6
KFdlYlZpZXcgKilzZW5kZXIgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTooV2ViRnJh
bWUgKilmcmFtZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODU5MDgpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0xMSAgSm9lIE1h
c29uICA8am1hc29uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVz
LgorCisgICAgICAgIEZyYW1lTG9hZGVyOjppc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSBpcyB3cm9u
ZyBpbiBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjExCisKKyAgICAgICAgQWRkIHdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QgdG8gdGhlIHVzZXItZ2VzdHVyZSB0ZXN0cy4KKworICAgICAg
ICAqIGZhc3QvZnJhbWVzL2xvY2F0aW9uLXJlZGlyZWN0LXVzZXItZ2VzdHVyZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvbWV0YS1yZWZyZXNoLXVzZXItZ2VzdHVyZS1leHBl
Y3RlZC50eHQ6CisKIDIwMTEtMDUtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcGFydGlhbCByb2xsb3V0IG9mIHI4NTg0MyBhbmQgcjg1
ODI0LiAgcjg1ODk3IG1hZGUgdGhlc2UgZXhwZWN0ZWQgcmVzdWx0cyB1bm5lY2Vzc2FyeS4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2xvY2F0aW9uLXJlZGlyZWN0LXVzZXItZ2VzdHVy
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvbG9j
YXRpb24tcmVkaXJlY3QtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODU5MTMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9sb2NhdGlvbi1yZWRpcmVjdC11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorRnJhbWUgd2l0
aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKIEZy
YW1lIHdpdGggdXNlciBnZXN0dXJlICJmYWxzZSIgLSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL21ldGEtcmVmcmVzaC11
c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL21ldGEtcmVmcmVzaC11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4
NTkxMykKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL21ldGEtcmVmcmVzaC11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorRnJhbWUgd2l0
aCB1c2VyIGdlc3R1cmUgImZhbHNlIiAtIGluIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QKIEZy
YW1lIHdpdGggdXNlciBnZXN0dXJlICJmYWxzZSIgLSBpbiBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>