<?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>81355</bug_id>
          
          <creation_ts>2012-03-16 08:23:56 -0700</creation_ts>
          <short_desc>Add a &quot;preview&quot; state to Page Visibility API implementation</short_desc>
          <delta_ts>2012-03-30 07:05:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81154</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>komoroske</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580538</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-16 08:23:56 -0700</bug_when>
    <thetext>According to new version of this spec (http://www.w3.org/TR/page-visibility/), the prerender state is now obsolete and a new one - preview - was added. We should update this API support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580539</commentid>
    <comment_count>1</comment_count>
      <attachid>132289</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-16 08:30:02 -0700</bug_when>
    <thetext>Created attachment 132289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580546</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 08:37:27 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580827</commentid>
    <comment_count>3</comment_count>
      <attachid>132289</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 12:56:33 -0700</bug_when>
    <thetext>Comment on attachment 132289
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No need for no new tests as we are just updating the spec implementation.

I might have said that this change is covered by fast/events/page-visibility-transition-test.html

&gt; Source/WebKit/chromium/public/WebPageVisibilityState.h:41
&gt; -    WebPageVisibilityStatePrerender
&gt; +    WebPageVisibilityStatePreview

Does this need a Chromium-side change to avoid breaking downstream?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580883</commentid>
    <comment_count>4</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-16 13:30:11 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I might have said that this change is covered by fast/events/page-visibility-transition-test.html

I will fix it before landing, thanks.

&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebPageVisibilityState.h:41
&gt; &gt; -    WebPageVisibilityStatePrerender
&gt; &gt; +    WebPageVisibilityStatePreview
&gt; 
&gt; Does this need a Chromium-side change to avoid breaking downstream?

Does it?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580887</commentid>
    <comment_count>5</comment_count>
      <attachid>132289</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 13:33:53 -0700</bug_when>
    <thetext>Comment on attachment 132289
Patch

Looks like there&apos;s one instance in src/chrome/renderer/chrome_content_renderer_client.cc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580889</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 13:34:31 -0700</bug_when>
    <thetext>http://code.google.com/codesearch#OAMlx_jo-ck/src/chrome/renderer/chrome_content_renderer_client.cc&amp;exact_package=chromium&amp;q=WebPageVisibilityStatePrerender&amp;type=cs&amp;l=761</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580900</commentid>
    <comment_count>7</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-16 13:43:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 132289 [details])
&gt; Looks like there&apos;s one instance in src/chrome/renderer/chrome_content_renderer_client.cc

=/

How do you guys usually handle this? Should I:

1- Keep WebPageVisibilityStatePrerender in WebKit/chromium/public/ and add a check to its WebViewImpl for backward compatibility?

2- Wait for a patch to land in Chrome&apos;s trunk before landing this?

or
3- Patch chrome_content_renderer_client.cc and submit it somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580913</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 13:51:44 -0700</bug_when>
    <thetext>There&apos;s a common pattern:

1) Land this patch with an ifdef to select between the new and old names (defaulting to the old name).
2) Wait for a WebKit roll.
3) Change downstream to use the new name (and to set the define in the files that need it).
4) Remove the define from WebKit.
5) Wait for a WebKit roll.
6) Remove the define from downstream.

In some cases, you might need to update the version of Chromium in http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/DEPS between steps (3) and (4).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580916</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 13:52:10 -0700</bug_when>
    <thetext>&gt; In some cases, you might need to update the version of Chromium in http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/DEPS between steps (3) and (4).

Note: This step isn&apos;t necessary for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580947</commentid>
    <comment_count>10</comment_count>
    <who name="">komoroske</who>
    <bug_when>2012-03-16 14:21:53 -0700</bug_when>
    <thetext>This patch implements functionality that disagrees with the spec.

The spec says the following about the PREVIEW state:

&gt; This attribute is optional. This attribute may return document.PAGE_PREVIEW if the Document contained by the top level browsing context is not visible at all and a preview of the the Document is visible.

Note that it says &quot;AND a preview of the Document is visible.&quot;  That is not what&apos;s going on with prerender--the document is not visible, but it is also not visible in ANY form.

If anything, the change according to the spec should be to change it to return &quot;webkit-prerender&quot;, according to section 4.4.

However, even that change would have implications for sites that have already started expecting the &quot;prerender&quot; return value. As one example, if you inspect the minified Google Analytics code (http://www.google-analytics.com/ga.js) you&apos;ll see that it has logic around the &quot;prerender&quot; return value. There are surely many other sites that have already come to expect the &quot;prerender&quot; value that was in earlier forms of the spec.  This does not imply that we shouldn&apos;t make the change--only that there are ramifications to be aware of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580963</commentid>
    <comment_count>11</comment_count>
      <attachid>132289</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-16 14:30:44 -0700</bug_when>
    <thetext>Comment on attachment 132289
Patch

Clearing the review flag while we discuss the above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582002</commentid>
    <comment_count>12</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-19 11:47:22 -0700</bug_when>
    <thetext>Thanks for the feedback and reviews!

(In reply to comment #10)
&gt; This patch implements functionality that disagrees with the spec.

I tend to disagree. I&apos;m not trying to replace prerender with preview, but to update our implementation of this spec. For doing that then we do have to remove the prerender state and add the preview one.

Perhaps I&apos;m just missing something but I don&apos;t see where this patch can possibly be disagreeing with the spec.


&gt; Note that it says &quot;AND a preview of the Document is visible.&quot;  That is not what&apos;s going on with prerender--the document is not visible, but it is also not visible in ANY form.

When to set a given visibility state is a per-port decision, isn&apos;t it? That is why chromium and efl have API for it. Again, the patch is just updating the enums and keywords all over, but it doesn&apos;t affect the ports&apos; decision to when apply each state. Therefore, it can&apos;t be not following the spec.


&gt; This does not imply that we shouldn&apos;t make the change--only that there are ramifications to be aware of.

Ok, got it. This is my first attempt to fix/implement a HTML5 spec/feature, so I&apos;m not sure how we should handle this situation. I would just go to the &quot;let&apos;s stick to the spec&quot; approach, but maybe we should add webkit-prerender and keep compatibility. However, as you said, sites that were using &quot;prerender&quot; still would need to be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585804</commentid>
    <comment_count>13</comment_count>
    <who name="">komoroske</who>
    <bug_when>2012-03-22 15:45:28 -0700</bug_when>
    <thetext>Note that I did not implement this feature, so I&apos;m not aware of all of the details of its implementation.

Chrome must return &quot;prerender&quot; (or &quot;webkit-prerender&quot;) because it is important for web developers to know if their page is being prerendered or not. If my understanding is correct, there is very little Chrome-specific code to do so; it lives in WebKit. This change as-is would thus require a fair bit of hackery on the Chrome side to return &quot;prerender&quot;.

Again, I don&apos;t know this code, but it seems like it would be preferable to _add_ a &quot;preview&quot; value to be returned if a port wants to, but still allow ports that decide to return &quot;prerender&quot;.

I&apos;m not sure how best to transition web developers from &quot;prerender&quot; to &quot;webkit-prerender&quot; as a return value. We could start by updating the code samples to check for if the return value _contains_ &quot;prerender&quot;, but presumably we&apos;d want to give sites a chance to change their code before this goes live for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587093</commentid>
    <comment_count>14</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-24 07:18:12 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Chrome must return &quot;prerender&quot; (or &quot;webkit-prerender&quot;) because it is important for web developers to know if their page is being prerendered or not. If my understanding is correct, there is very little Chrome-specific code to do so; it lives in WebKit. This change as-is would thus require a fair bit of hackery on the Chrome side to return &quot;prerender&quot;.

As I told you already, I&apos;m not against the prerender state, I just want to update our implementation so we follow the spec. Currently, just by looking at http://www.w3.org/TR/page-visibility/ I can&apos;t find a single mention to neither the terms &quot;prerender&quot; or &quot;webkit-prerender&quot;. So maybe I&apos;m just missing something but the spec as it is now published covers only &quot;visible&quot;, &quot;hidden&quot; and &quot;preview&quot;. And I&apos;m not raising the usefulness of &quot;preview&quot; or &quot;prerender&quot; from web developer perspective.

&gt; 
&gt; Again, I don&apos;t know this code, but it seems like it would be preferable to _add_ a &quot;preview&quot; value to be returned if a port wants to, but still allow ports that decide to return &quot;prerender&quot;.
&gt; 
&gt; I&apos;m not sure how best to transition web developers from &quot;prerender&quot; to &quot;webkit-prerender&quot; as a return value. We could start by updating the code samples to check for if the return value _contains_ &quot;prerender&quot;, but presumably we&apos;d want to give sites a chance to change their code before this goes live for everyone.


Ok, so the way to go would be keeping &quot;prerender&quot; (or modifying it to &quot;webkit-prerender&quot;?) and adding &quot;preview&quot; as one more visibility state?

Thanks for the help so far!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590294</commentid>
    <comment_count>15</comment_count>
    <who name="">komoroske</who>
    <bug_when>2012-03-28 12:45:46 -0700</bug_when>
    <thetext>(In reply to comment #14)

&gt; As I told you already, I&apos;m not against the prerender state, I just want to update our implementation so we follow the spec. Currently, just by looking at http://www.w3.org/TR/page-visibility/ I can&apos;t find a single mention to neither the terms &quot;prerender&quot; or &quot;webkit-prerender&quot;. So maybe I&apos;m just missing something but the spec as it is now published covers only &quot;visible&quot;, &quot;hidden&quot; and &quot;preview&quot;. And I&apos;m not raising the usefulness of &quot;preview&quot; or &quot;prerender&quot; from web developer perspective.
&gt; 

That&apos;s because prerender isn&apos;t (currently) part of the spec. However, prerender is a value that ports of WebKit (in particular, Chrome) will return. The spec explicitly defines the way for experimental or non-standard return values to be returned (prefix with the vendor ID).

Note also that there are currently discussions about adding prerender back into the spec.

&gt; 
&gt; Ok, so the way to go would be keeping &quot;prerender&quot; (or modifying it to &quot;webkit-prerender&quot;?) and adding &quot;preview&quot; as one more visibility state?

Making it so we can return &quot;preview&quot; in _addition_ to &quot;prerender&quot; should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591470</commentid>
    <comment_count>16</comment_count>
      <attachid>134651</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-29 13:08:40 -0700</bug_when>
    <thetext>Created attachment 134651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591474</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 13:11:36 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591644</commentid>
    <comment_count>18</comment_count>
      <attachid>134651</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-29 15:32:30 -0700</bug_when>
    <thetext>Comment on attachment 134651
Patch

Looks great.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592098</commentid>
    <comment_count>19</comment_count>
      <attachid>134651</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-30 05:45:31 -0700</bug_when>
    <thetext>Comment on attachment 134651
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592133</commentid>
    <comment_count>20</comment_count>
      <attachid>134651</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-30 07:05:11 -0700</bug_when>
    <thetext>Comment on attachment 134651
Patch

Clearing flags on attachment: 134651

Committed r112664: &lt;http://trac.webkit.org/changeset/112664&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592134</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-30 07:05:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132289</attachid>
            <date>2012-03-16 08:30:02 -0700</date>
            <delta_ts>2012-03-29 13:08:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81355-20120316122927.patch</filename>
            <type>text/plain</type>
            <size>13238</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4MDRkN2E3Mzc5ZjFi
OTc3OTBkZjE3MWMzZGRkZDdiMDQyODJhMi4uNDc1OThlNTdiOGU3OGYwODc5NDYwZWQ5ZjE2MTBl
ZGQ0ZmY2NWUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTE2ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBBZGQgYSAicHJldmlldyIgc3RhdGUgYW5kIHJlbW92ZSBvdXRkYXRlZCAicHJlcmVuZGVy
IiBzdGF0ZSBvZiBQYWdlIFZpc2liaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgxMzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmVlZCBmb3Igbm8gbmV3IHRlc3RzIGFzIHdlIGFyZSBqdXN0
IHVwZGF0aW5nIHRoZSBzcGVjIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogcGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VWaXNpYmlsaXR5U3Rh
dGVTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oOgorCiAyMDEy
LTAzLTE2ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBU
aGUgSURMIHBhcnNlciBzaG91bGQgc3VwcG9ydCBzZXF1ZW5jZTxUPiB0eXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGNkNjhiMWUyMzZiOTk1YmRjZGI4YTJlMGMzNjBiNGQ4YTUzOGVk
ZjUuLmU2NWQzZTJhN2U3MThlOWViYzRkMzM4OTYyNDMxMWI1ZWEzNjMwMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMtMTYgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEFk
ZCBhICJwcmV2aWV3IiBzdGF0ZSBhbmQgcmVtb3ZlIG91dGRhdGVkICJwcmVyZW5kZXIiIHN0YXRl
IG9mIFBhZ2UgVmlzaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODEzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGluZyB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBsZW1lbnRhdGlv
biB0byB0aGUgY3VycmVudCBzcGVjIHZlcnNpb24uCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKwogMjAxMi0wMy0xNiAgSWFuIFZvbGxpY2sg
IDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFRocmVhZGVkIG9w
YWNpdHkgYW5pbWF0aW9uIGp1bXAgdG8gb3BhY2l0eSBvZiAwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXgg
MTQ3MThkYmFiZTBkYzI1ZDNiNGM4MTA3ZGUwYjQ1MTIxY2I0YWU2Zi4uZDc5NDE2MTlmODcyYzMz
ZDRjODllMmVhNzhjMmU0NGVhZWJlN2U3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEyLTAzLTE2ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBBZGQgYSAicHJldmlldyIgc3RhdGUgYW5kIHJlbW92
ZSBvdXRkYXRlZCAicHJlcmVuZGVyIiBzdGF0ZSBvZiBQYWdlIFZpc2liaWxpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRpbmcgdGhlIFBhZ2Ug
VmlzaWJpbGl0eSBBUEkgaW1wbGVtZW50YXRpb24gdG8gdGhlIGN1cnJlbnQgc3BlYyB2ZXJzaW9u
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6Cisg
ICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDMtMTYgIEtpaG9uZyBLd29uICA8a2lo
b25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgU3VwcG9ydCBmb3IgQmF0dGVyeSBTdGF0
dXMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAppbmRl
eCAwOWZhNjAzYmQwODQwNDk1ODk2N2I4M2E0ZmI2YjM3ZDEwZThmODgwLi5mMTY1MDJhMTEwZjIx
MmE4ZGNmNWM4YzAzM2MyNDA0MzE1MmIwYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZVZpc2liaWxpdHlTdGF0ZS5jcHAKQEAgLTM5LDE1ICszOSwxNSBAQCBTdHJpbmcgcGFnZVZpc2li
aWxpdHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlKQogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2aXNpYmxlLCAoInZpc2libGUiKSk7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKCJoaWRkZW4iKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHByZXJlbmRlciwgKCJwcmVyZW5k
ZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHByZXZpZXcsICgi
cHJldmlldyIpKTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIFBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlOgogICAgICAgICByZXR1cm4gdmlzaWJsZTsKICAgICBjYXNlIFBhZ2VW
aXNpYmlsaXR5U3RhdGVIaWRkZW46CiAgICAgICAgIHJldHVybiBoaWRkZW47Ci0gICAgY2FzZSBQ
YWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyOgotICAgICAgICByZXR1cm4gcHJlcmVuZGVyOwor
ICAgIGNhc2UgUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXc6CisgICAgICAgIHJldHVybiBwcmV2
aWV3OwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaAppbmRleCAzZmFiMmU0MmE5MDg3YjNjNTJlZTgwOGIx
MTg5ODI0YjQzNmI4MGNiLi5iMTJhOTNkZDA2MzRmOGY2MTFhNjEwNGVhODNlNmQ4YWVlZDQ1MjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIFBhZ2VWaXNpYmlsaXR5U3RhdGUgewog
ICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLAogICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGVI
aWRkZW4sCi0gICAgUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcgorICAgIFBhZ2VWaXNpYmls
aXR5U3RhdGVQcmV2aWV3CiB9OwogCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0
eVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQYWdlVmlzaWJpbGl0
eVN0YXRlLmgKaW5kZXggYmU3NzA1YzBkMGRhMzE5NTMwNTRmMWU1ODMyYjgzZTk1YTY1NGZiMi4u
NGRjOWQ3ODRiNDliNzViYjk1NGRlNDExYWE2MmRjN2NjMzcxNjRmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaApA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGVudW0gV2ViUGFnZVZpc2liaWxp
dHlTdGF0ZSB7CiAgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCiAgICAgV2ViUGFn
ZVZpc2liaWxpdHlTdGF0ZUhpZGRlbiwKLSAgICBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVu
ZGVyCisgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXcKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0
TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcAppbmRleCBjMTg0MTZmNTkyNGFhZWEwN2FlNjgwZjA2ZjE2ZWU3NjgwNDgz
MmJmLi5mZTljZjM0NDg3ZWFkM2I5YmFhMzU1NTZiZTI1ZjI0MjcxZmJiMzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAt
NDkzLDcgKzQ5Myw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGhlbWVFbmdp
bmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxheWVyLCBQbGF0Zm9yCiAKIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsIFBhZ2VWaXNpYmls
aXR5U3RhdGVWaXNpYmxlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZUhpZGRlbiwgUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbik7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIsIFBh
Z2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJldmlldywgUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZp
ZXcpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVBdWRpbywgTWVkaWFTdHJlYW1Tb3VyY2U6
OlR5cGVBdWRpbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggNDg5MDZlYTVmOTUzNTlkNzEwNGZmMTA4Mjk2ZDk0NmFlYjExZmNjOC4uNzgxYjg4Yjk3
MTc0OTA1NjVjMzFhODNiZTBmM2Y4ZmNlMGMwZGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzM1NSw3ICszMzU1LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0
eVN0YXRlLAogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQogICAgIEFTU0VSVCh2aXNp
YmlsaXR5U3RhdGUgPT0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUKICAgICAgICAgICAg
fHwgdmlzaWJpbGl0eVN0YXRlID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4KLSAgICAg
ICAgICAgfHwgdmlzaWJpbGl0eVN0YXRlID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5k
ZXIpOworICAgICAgICAgICB8fCB2aXNpYmlsaXR5U3RhdGUgPT0gV2ViUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXZpZXcpOwogICAgIG1fcGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHN0YXRpY19jYXN0
PFBhZ2VWaXNpYmlsaXR5U3RhdGU+KHN0YXRpY19jYXN0PGludD4odmlzaWJpbGl0eVN0YXRlKSks
IGlzSW5pdGlhbFN0YXRlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDE1OGNmMDEy
MzgzOWUwN2JmNjQ4NDc4MGZmMzUwNTA3ODE5MjBhOTYuLjdhNGQxYWEzYTdiYTU5NWIxZjJkMWM4
N2IwNmU3ZWNmMzkzZWE4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVfVklTSUJMRSwgUGFnZVZpc2liaWxpdHlTdGF0
ZVZpc2libGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfUEFHRV9WSVNJQklM
SVRZX1NUQVRFX0hJRERFTiwgUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbik7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVfUFJFUkVOREVSLCBQ
YWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oRVdLX1BBR0VfVklTSUJJTElUWV9TVEFURV9QUkVWSUVXLCBQYWdlVmlzaWJpbGl0eVN0YXRl
UHJldmlldyk7CiAjZW5kaWYKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfVEVY
VF9TRUxFQ1RJT05fTk9ORSwgVmlzaWJsZVNlbGVjdGlvbjo6Tm9TZWxlY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuaAppbmRleCA3ZGUwZTQ2MmYxN2M1YWFhMzQyODc2MzJjMmQzNGVmMTU0
N2E3MzdhLi4wYWI2N2YxMzMzNmFjOTgzNDdiMDA3MGFkZDc0YjE3ZDYzYTE1NjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMjI2MSw3ICsyMjYxLDcgQEAgRUFQSSBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFzX09iamVjdCAqbywgRXdrX0pTX09iamVjdCAqb2Jq
LCBjb25zdAogZW51bSBfRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZSB7CiAgICAgRVdLX1BBR0Vf
VklTSUJJTElUWV9TVEFURV9WSVNJQkxFLAogICAgIEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVf
SElEREVOLAotICAgIEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVfUFJFUkVOREVSCisgICAgRVdL
X1BBR0VfVklTSUJJTElUWV9TVEFURV9QUkVWSUVXCiB9OwogLy8vIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIEBhIF9Fd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlLgogdHlwZWRlZiBlbnVtIF9Fd2tf
UGFnZV9WaXNpYmlsaXR5X1N0YXRlIEV3a19QYWdlX1Zpc2liaWxpdHlfU3RhdGU7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmVmYjI0OWJjZDM1
OTRkMjdjZTYyMWZlNzQ1ZGJlYWYwYzg3NzJlNi4uM2ZiZmVjYjBmYmQwNGMwMmMwMzBhNTRlMzAy
ZTI0ZjMyZWVjNjYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTE2ICBKZXN1cyBTYW5jaGV6LVBhbGVu
Y2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBBZGQgYSAicHJl
dmlldyIgc3RhdGUgYW5kIHJlbW92ZSBvdXRkYXRlZCAicHJlcmVuZGVyIiBzdGF0ZSBvZiBQYWdl
IFZpc2liaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgxMzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRpbmcgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkgaW1wbGVtZW50YXRpb24gdG8gdGhl
IGN1cnJlbnQgc3BlYyB2ZXJzaW9uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFBhZ2VWaXNpYmlsaXR5KToKKwogMjAxMi0wMy0wMiAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdEljb25EYXRhYmFzZSBkb2Vzbid0
IGtlZXAgaWNvbnMgY2FjaGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYWY1NjM2MDk2NTljZDk4OTVkNTNl
OGM4YmJmYTY1Y2E4M2UzODRkYi4uNGQyZGRhYWUyMDE5N2M5MDExN2NlYTUyY2E1OGM4MTZhNjJk
ODRiMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMjE5MSw4ICsyMTkxLDggQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIEMKICAgICAgICAgICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0
YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBmYWxzZSk7CiAgICAgICAgIGVsc2Ug
aWYgKG5ld1Zpc2liaWxpdHkgPT0gImhpZGRlbiIpCiAgICAgICAgICAgICBtX3NoZWxsLT53ZWJW
aWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuLCBm
YWxzZSk7Ci0gICAgICAgIGVsc2UgaWYgKG5ld1Zpc2liaWxpdHkgPT0gInByZXJlbmRlciIpCi0g
ICAgICAgICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyLCBmYWxzZSk7CisgICAgICAgIGVsc2UgaWYgKG5ld1Zp
c2liaWxpdHkgPT0gInByZXZpZXciKQorICAgICAgICAgICAgbV9zaGVsbC0+d2ViVmlldygpLT5z
ZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXcsIGZhbHNlKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBmZmE2NDAxMjgzMjU2M2NiMTM2NDg1MjBiOTU3OGY3MDZiYWM3
N2UyLi41MWYxNmE5ZmNjODcyYzljMmFjYTM4NjE2NDc5MmE5NTE0NjQzYWY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTItMDMtMTYgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5w
YWxlbmNpYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEFkZCBhICJwcmV2aWV3IiBzdGF0ZSBh
bmQgcmVtb3ZlIG91dGRhdGVkICJwcmVyZW5kZXIiIHN0YXRlIG9mIFBhZ2UgVmlzaWJpbGl0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGluZyB0
aGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY3VycmVudCBzcGVj
IHZlcnNpb24uCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNp
dGlvbi10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlLXZpc2li
aWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWw6CisKIDIwMTItMDMtMTYgIFlvc2hpZnVtaSBJbm91
ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRm9ybXNdIGxhYmVsLmZvcm0gYXR0
cmlidXRlIGRvZXNuJ3Qgd29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0LWV4cGVjdGVkLnR4
dAppbmRleCBjOTI2NjViMmRkMDk1Y2U1MDU5YzZjNTc2NjE2NjI3NWFiZmE4YmI0Li5lZTllYzI5
MmVlNGNjOWJmMmYyMDc5MGQwYmVjNDYyM2ZlMGIyMGVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlv
bi10ZXN0LWV4cGVjdGVkLnR4dApAQCAtOSw3ICs5LDcgQEAgUEFTUyBkb2N1bWVudC53ZWJraXRW
aXNpYmlsaXR5U3RhdGUgaXMgImhpZGRlbiIKIFBBU1MgZG9jdW1lbnQud2Via2l0SGlkZGVuIGlz
IHRydWUKIFBBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJoaWRkZW4iCiBQ
QVNTIGRvY3VtZW50LndlYmtpdEhpZGRlbiBpcyB0cnVlCi1QQVNTIGRvY3VtZW50LndlYmtpdFZp
c2liaWxpdHlTdGF0ZSBpcyAicHJlcmVuZGVyIgorUEFTUyBkb2N1bWVudC53ZWJraXRWaXNpYmls
aXR5U3RhdGUgaXMgInByZXZpZXciCiBQQVNTIGRvY3VtZW50LndlYmtpdEhpZGRlbiBpcyB0cnVl
CiBQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKIFBBU1Mg
ZG9jdW1lbnQud2Via2l0SGlkZGVuIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKaW5k
ZXggNGFhZmE2NDU5ZThkZTAwNDJmMzAyN2YyMGI2ZjBjYzI0NmIzMmE0MC4uMjljYmQ1YjY3NWI3
YWNjMjE5MTgxMmM4MDgxNTAxYzE5MjI2MzM2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbApA
QCAtMTksOSArMTksOSBAQCBmdW5jdGlvbiBtYWtlUGFnZUhpZGRlbigpIHsKICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOwogfQogCi1mdW5j
dGlvbiBtYWtlUGFnZVByZXJlbmRlcigpIHsKK2Z1bmN0aW9uIG1ha2VQYWdlUHJldmlldygpIHsK
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgicHJlcmVuZGVyIik7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFBhZ2VWaXNpYmlsaXR5KCJwcmV2aWV3Iik7CiB9CiAKIGZ1bmN0
aW9uIGNoZWNrSXNQYWdlVmlzaWJsZSgpIHsKQEAgLTM0LDggKzM0LDggQEAgZnVuY3Rpb24gY2hl
Y2tJc1BhZ2VIaWRkZW4oKSB7CiAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJraXRIaWRk
ZW4iKTsKIH0KIAotZnVuY3Rpb24gY2hlY2tJc1BhZ2VQcmVyZW5kZXJpbmcoKSB7Ci0gICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAicHJl
cmVuZGVyIik7CitmdW5jdGlvbiBjaGVja0lzUGFnZUluUHJldmlldygpIHsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSIsICJwcmV2aWV3
Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC53ZWJraXRIaWRkZW4iKTsKIH0KIApAQCAt
NDMsNyArNDMsNyBAQCBmdW5jdGlvbiBjaGVja0lzUGFnZVByZXJlbmRlcmluZygpIHsKIC8vICAw
IC0gdmlzaWJsZS4gKEluaXRpYWwgLSBpLmUuIG9uIGxvYWQpLgogLy8gIDEgLSBoaWRkZW4gKHNo
b3VsZCBmaXJlIGV2ZW50KS4KIC8vICAyIC0gaGlkZGVuIChubyBldmVudCkuCi0vLyAgMyAtIHBy
ZXJlbmRlciAoc2hvdWxkIGZpcmUgZXZlbnQpLgorLy8gIDMgLSBwcmV2aWV3IChzaG91bGQgZmly
ZSBldmVudCkuCiAvLyAgNCAtIHZpc2libGUgKHNob3VsZCBmaXJlIGV2ZW50KS4KIHZhciBudW1W
aXNpYmlsaXR5Q2hhbmdlcyA9IDA7CiAKQEAgLTY5LDE0ICs2OSwxNCBAQCBmdW5jdGlvbiBvblZp
c2liaWxpdHlDaGFuZ2UoKSB7CiAgICAgICAgIG1ha2VQYWdlSGlkZGVuKCk7CiAgICAgICAgIGNo
ZWNrSXNQYWdlSGlkZGVuKCk7CiAgICAgICAgIG51bVZpc2liaWxpdHlDaGFuZ2VzKys7Ci0gICAg
ICAgIG1ha2VQYWdlUHJlcmVuZGVyKCk7CisgICAgICAgIG1ha2VQYWdlUHJldmlldygpOwogICAg
ICAgICByZXR1cm47CiAgICAgfSBlbHNlIGlmIChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSAyKSB7
CiAgICAgICAgIHRlc3RGYWlsZWQoIkludmFsaWQgZXZlbnQgZmlyZWQgb24gc2FtZSBzdGF0ZSBj
aGFuZ2UuIik7CiAgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0g
ZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gMykgewotICAgICAgICBjaGVja0lzUGFn
ZVByZXJlbmRlcmluZygpOworICAgICAgICBjaGVja0lzUGFnZUluUHJldmlldygpOwogICAgICAg
ICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOwogICAgICAgICBtYWtlUGFnZVZpc2libGUoKTsKICAg
ICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134651</attachid>
            <date>2012-03-29 13:08:40 -0700</date>
            <delta_ts>2012-03-30 07:05:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81355-20120329170803.patch</filename>
            <type>text/plain</type>
            <size>13170</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQyNjc2ZTA1NzdmNzIy
MzRlZGMxMDk4ZjY2ODU4ZjBlYjU5ZjA3Zi4uYWZkOWVjZmY2MTg3YjQ1ODVhYWI0NTU4YTE5MTM3
OTczMmFjZWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTI5ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBBZGQgYSAicHJldmlldyIgc3RhdGUgdG8gUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODEzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGluZyB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY3Vy
cmVudCBzcGVjIHZlcnNpb24uCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgY292ZXJlZCBieSBm
YXN0L2V2ZW50cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwsCisgICAgICAg
IHNvIG5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VWaXNpYmlsaXR5
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyk6
CisgICAgICAgICogcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmg6CisKIDIwMTItMDMtMjkgIFRv
bnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBOZWVkIHRvIGltcGxlbWVu
dCBmbGV4LWxpbmUtcGFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyOTU0OWI1YzIz
OWYyY2UwNjcwMDc4YjdkODA5NDhkNjg4Y2FhYTk2Li5mNjA4YmZkMTQxNzVmNmIxZDVmZTA4YTdi
N2ZiZDBiM2Q3MzRjOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTAzLTI5ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBBZGQgYSAicHJldmlldyIgc3RhdGUgdG8gUGFnZSBW
aXNpYmlsaXR5IEFQSSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGluZyB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBs
ZW1lbnRhdGlvbiB0byB0aGUgY3VycmVudCBzcGVjIHZlcnNpb24uCisKKyAgICAgICAgKiBwdWJs
aWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0VmlzaWJpbGl0eVN0YXRlKToKKwogMjAxMi0wMy0yOSAgRGly
ayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIEludHJvZHVjZSBDU1NQYXJz
ZXJNb2RlIGluIGFsbCBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYTE1MzNiY2Q2YmVlMGQ5
MjgzMzQ1MTEyOTU5MjY2OTU1OWRkNGIxOC4uZDk0ZGMyMzliYzY1Zjg4ZGVlYzQ2ZmEyNWY2Zjg2
NWZhMGMwZTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTI5
ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBBZGQgYSAicHJldmlldyIgc3RhdGUgdG8gUGFnZSBWaXNpYmlsaXR5IEFQSSBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODEzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGluZyB0aGUgUGFnZSBWaXNpYmlsaXR5IEFQSSBpbXBsZW1lbnRhdGlvbiB0byB0
aGUgY3VycmVudCBzcGVjIHZlcnNpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Bc3Nl
cnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0w
My0yOCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92
ZSBkaXNwYXRjaERpZExvYWRNYWluUmVzb3VyY2UgY2FsbGJhY2ssIHNpbmNlIG5vCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAppbmRleCAwOWZhNjAzYmQwODQw
NDk1ODk2N2I4M2E0ZmI2YjM3ZDEwZThmODgwLi5kZTExOTZlODNjZjBhYjkxNzMxZWNiMjUwYTAz
NDg5MmViNGNmYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmls
aXR5U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0
ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAgU3RyaW5nIHBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmco
UGFnZVZpc2liaWxpdHlTdGF0ZSBzdGF0ZSkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgdmlzaWJsZSwgKCJ2aXNpYmxlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBoaWRkZW4sICgiaGlkZGVuIikpOwogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwcmVyZW5kZXIsICgicHJlcmVuZGVyIikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmV2aWV3LCAoInByZXZpZXciKSk7CiAKICAgICBz
d2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToKQEAg
LTQ4LDYgKzQ5LDggQEAgU3RyaW5nIHBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZpc2li
aWxpdHlTdGF0ZSBzdGF0ZSkKICAgICAgICAgcmV0dXJuIGhpZGRlbjsKICAgICBjYXNlIFBhZ2VW
aXNpYmlsaXR5U3RhdGVQcmVyZW5kZXI6CiAgICAgICAgIHJldHVybiBwcmVyZW5kZXI7CisgICAg
Y2FzZSBQYWdlVmlzaWJpbGl0eVN0YXRlUHJldmlldzoKKyAgICAgICAgcmV0dXJuIHByZXZpZXc7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVZpc2liaWxpdHlTdGF0ZS5oCmluZGV4IDNmYWIyZTQyYTkwODdiM2M1MmVlODA4YjExODk4
MjRiNDM2YjgwY2IuLjUxMDU1NDA0MGYwNDJjZGY3NmRlMWEwMTYxNTQ4ZGZlMGQ3YmE3NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oCkBAIC00MCw3ICs0MCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gUGFnZVZpc2liaWxpdHlTdGF0ZSB7CiAgICAg
UGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsCiAgICAgUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRl
biwKLSAgICBQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyCisgICAgUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXJlbmRlciwKKyAgICBQYWdlVmlzaWJpbGl0eVN0YXRlUHJldmlldwogfTsKIAogI2lm
IEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oCmluZGV4IGJlNzcwNWMwZDBk
YTMxOTUzMDU0ZjFlNTgzMmI4M2U5NWE2NTRmYjIuLjhlYjg2N2ZhMjAxYjc4ZGYzODFjZDU2NTk2
ODM3NDk5ODE1N2Q0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlBhZ2VWaXNpYmlsaXR5U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJQYWdlVmlzaWJpbGl0eVN0YXRlLmgKQEAgLTM4LDcgKzM4LDggQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBlbnVtIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUgewogICAgIFdlYlBhZ2VWaXNp
YmlsaXR5U3RhdGVWaXNpYmxlLAogICAgIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4sCi0g
ICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcgorICAgIFdlYlBhZ2VWaXNpYmlsaXR5
U3RhdGVQcmVyZW5kZXIsCisgICAgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXcKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCAzOGM4MGI5MjM1YjgxNjgyZGVlM2Y1YjYx
NmYxYmNhMDllZDNlOTA2Li5lMjJkZGI2YzNhOWIxM2QwN2JhZGQ5NzNkNmUzNzFlNGRjZGUyN2Rj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcApAQCAtNTA0LDYgKzUwNCw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViVGhlbWVFbmdpbmU6OlNjcm9sbGJhclBhcmVudFJlbmRlckxheWVyLCBQbGF0Zm9yCiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4sIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4p
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJl
cmVuZGVyLCBQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKTsKK0NPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXcsIFBhZ2VWaXNpYmlsaXR5
U3RhdGVQcmV2aWV3KTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYk1lZGlhU3RyZWFtU291cmNlOjpUeXBlQXVkaW8sIE1lZGlhU3Ry
ZWFtU291cmNlOjpUeXBlQXVkaW8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IDFiM2FiNTg5ZDZmN2M0ZTdhYmRjMTExNDQ5ZDI3YTgxYmVmMjMxMjUu
LmMzODI1YTFjNTNmNTc4YTQyNjIxMjJkMTllODQzOGQ2MTY0NDQzNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM0NzUsNyArMzQ3NSw4IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRl
IHZpc2liaWxpdHlTdGF0ZSwKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKICAgICBB
U1NFUlQodmlzaWJpbGl0eVN0YXRlID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlCiAg
ICAgICAgICAgIHx8IHZpc2liaWxpdHlTdGF0ZSA9PSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlk
ZGVuCi0gICAgICAgICAgIHx8IHZpc2liaWxpdHlTdGF0ZSA9PSBXZWJQYWdlVmlzaWJpbGl0eVN0
YXRlUHJlcmVuZGVyKTsKKyAgICAgICAgICAgfHwgdmlzaWJpbGl0eVN0YXRlID09IFdlYlBhZ2VW
aXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIKKyAgICAgICAgICAgfHwgdmlzaWJpbGl0eVN0YXRlID09
IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVQcmV2aWV3KTsKICAgICBtX3BhZ2UtPnNldFZpc2liaWxp
dHlTdGF0ZShzdGF0aWNfY2FzdDxQYWdlVmlzaWJpbGl0eVN0YXRlPihzdGF0aWNfY2FzdDxpbnQ+
KHZpc2liaWxpdHlTdGF0ZSkpLCBpc0luaXRpYWxTdGF0ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAppbmRleCAxNThjZjAxMjM4MzllMDdiZjY0ODQ3ODBmZjM1MDUwNzgxOTIwYTk2Li40YTQ5
ZjVmZTkxNDRlYTM2NDQ2M2U5ODI5NGYyY2NjZWUyOGIwZTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApA
QCAtNDMsNiArNDMsNyBAQAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfUEFHRV9W
SVNJQklMSVRZX1NUQVRFX1ZJU0lCTEUsIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlKTsKIENP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVdLX1BBR0VfVklTSUJJTElUWV9TVEFURV9ISURE
RU4sIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShFV0tfUEFHRV9WSVNJQklMSVRZX1NUQVRFX1BSRVJFTkRFUiwgUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXJlbmRlcik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKEVXS19QQUdFX1ZJ
U0lCSUxJVFlfU1RBVEVfUFJFVklFVywgUGFnZVZpc2liaWxpdHlTdGF0ZVByZXZpZXcpOwogI2Vu
ZGlmCiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVdLX1RFWFRfU0VMRUNUSU9OX05P
TkUsIFZpc2libGVTZWxlY3Rpb246Ok5vU2VsZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmgKaW5kZXggMWM1MzMzNTVlNzY0MDVlNDcxZTYyZGQyYTk3MjM4MmZkODU3OTM1ZS4uMjUzOTc4
ZDM3M2RhMDc1MGM2MjE2NmYxN2U4MzA3MjJhNzVkMWI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmgKQEAgLTIyNjIsNyArMjI2Miw4IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X2pzX29i
amVjdF9hZGQoRXZhc19PYmplY3QgKm8sIEV3a19KU19PYmplY3QgKm9iaiwgY29uc3QKIGVudW0g
X0V3a19QYWdlX1Zpc2liaWxpdHlfU3RhdGUgewogICAgIEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RB
VEVfVklTSUJMRSwKICAgICBFV0tfUEFHRV9WSVNJQklMSVRZX1NUQVRFX0hJRERFTiwKLSAgICBF
V0tfUEFHRV9WSVNJQklMSVRZX1NUQVRFX1BSRVJFTkRFUgorICAgIEVXS19QQUdFX1ZJU0lCSUxJ
VFlfU1RBVEVfUFJFUkVOREVSLAorICAgIEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVfUFJFVklF
VwogfTsKIC8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX1BhZ2VfVmlzaWJpbGl0
eV9TdGF0ZS4KIHR5cGVkZWYgZW51bSBfRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZSBFd2tfUGFn
ZV9WaXNpYmlsaXR5X1N0YXRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDA1OWRlY2E4OTZkZDg3NWQwYWI1YjMwZDdhYmU3MDgxODIzMDQ2NGYu
Ljg0NzgyYTcxNDJmNjI3MDI5ZjYwZGNkODcxNjkzYzU2NzdiMWUwZjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wMy0yOSAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3Nz
YS5vcmc+CisKKyAgICAgICAgQWRkIGEgInByZXZpZXciIHN0YXRlIHRvIFBhZ2UgVmlzaWJpbGl0
eSBBUEkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgxMzU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRpbmcgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkgaW1wbGVtZW50YXRp
b24gdG8gdGhlIGN1cnJlbnQgc3BlYyB2ZXJzaW9uLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmlsaXR5KToKKwogMjAxMi0wMy0yOSAgVmluZWV0IENo
YXVkaGFyeSAgPHJnZjc0OEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGN1c3RvbSBi
aW5kaW5ncyBmb3JtIEludGVybmFscy5pZGwgb2YgYXR0cmlidXRlIHR5cGUgQXJyYXkuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggMGJhYWVkZWFmNWZkMjlmZjQ5MWRmYTMxMzg3YTJiMzUzMmZmZWFiZC4uMjI2
NTc4YjI0NTVkY2U4MjkyMWZjOWMwYzRkZjVkYmUyYTg0MWI4YSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
MjE4Nyw2ICsyMTg3LDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2li
aWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIEMKICAgICAgICAgICAgIG1f
c2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3Rh
dGVIaWRkZW4sIGZhbHNlKTsKICAgICAgICAgZWxzZSBpZiAobmV3VmlzaWJpbGl0eSA9PSAicHJl
cmVuZGVyIikKICAgICAgICAgICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0VmlzaWJpbGl0eVN0
YXRlKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIsIGZhbHNlKTsKKyAgICAgICAgZWxz
ZSBpZiAobmV3VmlzaWJpbGl0eSA9PSAicHJldmlldyIpCisgICAgICAgICAgICBtX3NoZWxsLT53
ZWJWaWV3KCktPnNldFZpc2liaWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJldmll
dywgZmFsc2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhiOGMxZDAzNmJkMjU2MWEzMjk4YjZjOWJj
ZGIzMmQ1YmU2ZmE4MDEuLjI0ODc3YjdiMGIyOTMwMDNiZDNiYTk0YzkyYzhhN2Q0OWYyMTc5YmYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMy0yOSAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgQWRkIGEgInByZXZp
ZXciIHN0YXRlIHRvIFBhZ2UgVmlzaWJpbGl0eSBBUEkgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMzU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRpbmcgdGhlIFBhZ2Ug
VmlzaWJpbGl0eSBBUEkgaW1wbGVtZW50YXRpb24gdG8gdGhlIGN1cnJlbnQgc3BlYyB2ZXJzaW9u
LgorCisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVz
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRy
YW5zaXRpb24tdGVzdC5odG1sOgorCiAyMDEyLTAzLTI5ICBUb255IENoYW5nICA8dG9ueUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTmVlZCB0byBpbXBsZW1lbnQgZmxleC1saW5lLXBhY2sKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eS10cmFuc2l0
aW9uLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQKaW5kZXggYzkyNjY1YjJkZDA5NWNl
NTA1OWM2YzU3NjYxNjYyNzVhYmZhOGJiNC4uNjllZjg2Y2ViYTljOGY4MDhiOWE3Y2MyY2VlM2Fi
MmE0ZmNkZDI4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12aXNp
YmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC1leHBlY3RlZC50eHQKQEAg
LTEzLDYgKzEzLDEwIEBAIFBBU1MgZG9jdW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJw
cmVyZW5kZXIiCiBQQVNTIGRvY3VtZW50LndlYmtpdEhpZGRlbiBpcyB0cnVlCiBQQVNTIGRvY3Vt
ZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBpcyAidmlzaWJsZSIKIFBBU1MgZG9jdW1lbnQud2Vi
a2l0SGlkZGVuIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50LndlYmtpdFZpc2liaWxpdHlTdGF0ZSBp
cyAicHJldmlldyIKK1BBU1MgZG9jdW1lbnQud2Via2l0SGlkZGVuIGlzIHRydWUKK1BBU1MgZG9j
dW1lbnQud2Via2l0VmlzaWJpbGl0eVN0YXRlIGlzICJ2aXNpYmxlIgorUEFTUyBkb2N1bWVudC53
ZWJraXRIaWRkZW4gaXMgZmFsc2UKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZS12
aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
cGFnZS12aXNpYmlsaXR5LXRyYW5zaXRpb24tdGVzdC5odG1sCmluZGV4IDRhYWZhNjQ1OWU4ZGUw
MDQyZjMwMjdmMjBiNmYwY2MyNDZiMzJhNDAuLmIwZGQxNTBlOTVhOGI5ZDJiOWRkNzQxNWM4NWUw
MGYyYWU1NjA2YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2Utdmlz
aWJpbGl0eS10cmFuc2l0aW9uLXRlc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9wYWdlLXZpc2liaWxpdHktdHJhbnNpdGlvbi10ZXN0Lmh0bWwKQEAgLTI0LDYgKzI0LDExIEBA
IGZ1bmN0aW9uIG1ha2VQYWdlUHJlcmVuZGVyKCkgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRQYWdlVmlzaWJpbGl0eSgicHJlcmVuZGVyIik7CiB9CiAKK2Z1bmN0aW9uIG1ha2VQ
YWdlUHJldmlldygpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQYWdlVmlzaWJpbGl0eSgicHJldmlldyIpOwor
fQorCiBmdW5jdGlvbiBjaGVja0lzUGFnZVZpc2libGUoKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJkb2N1bWVudC53ZWJraXRWaXNpYmlsaXR5U3RhdGUiLCAidmlzaWJsZSIpOwogICAg
IHNob3VsZEJlRmFsc2UoImRvY3VtZW50LndlYmtpdEhpZGRlbiIpOwpAQCAtMzksMTIgKzQ0LDE5
IEBAIGZ1bmN0aW9uIGNoZWNrSXNQYWdlUHJlcmVuZGVyaW5nKCkgewogICAgIHNob3VsZEJlVHJ1
ZSgiZG9jdW1lbnQud2Via2l0SGlkZGVuIik7CiB9CiAKK2Z1bmN0aW9uIGNoZWNrSXNQYWdlSW5Q
cmV2aWV3KCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQud2Via2l0Vmlz
aWJpbGl0eVN0YXRlIiwgInByZXZpZXciKTsKKyAgICBzaG91bGRCZVRydWUoImRvY3VtZW50Lndl
YmtpdEhpZGRlbiIpOworfQorCiAvLyBXZSB3aWxsIHRyeSB0byBjaGFuZ2UgdGhlIHZpc2liaWxp
dHkgc3RhdGVzIGFzOgogLy8gIDAgLSB2aXNpYmxlLiAoSW5pdGlhbCAtIGkuZS4gb24gbG9hZCku
CiAvLyAgMSAtIGhpZGRlbiAoc2hvdWxkIGZpcmUgZXZlbnQpLgogLy8gIDIgLSBoaWRkZW4gKG5v
IGV2ZW50KS4KIC8vICAzIC0gcHJlcmVuZGVyIChzaG91bGQgZmlyZSBldmVudCkuCiAvLyAgNCAt
IHZpc2libGUgKHNob3VsZCBmaXJlIGV2ZW50KS4KKy8vICA1IC0gcHJldmlldyAoc2hvdWxkIGZp
cmUgZXZlbnQpLgorLy8gIDYgLSB2aXNpYmxlIChzaG91bGQgZmlyZSBldmVudCkuCiB2YXIgbnVt
VmlzaWJpbGl0eUNoYW5nZXMgPSAwOwogCiBmdW5jdGlvbiBzdGFydFRlc3QoKSB7CkBAIC04Myw2
ICs5NSwxNiBAQCBmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CiAgICAgfSBlbHNlIGlm
IChudW1WaXNpYmlsaXR5Q2hhbmdlcyA9PSA0KSB7CiAgICAgICAgIGNoZWNrSXNQYWdlVmlzaWJs
ZSgpOwogICAgICAgICBudW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBtYWtlUGFnZVBy
ZXZpZXcoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNo
YW5nZXMgPT0gNSkgeworICAgICAgICBjaGVja0lzUGFnZUluUHJldmlldygpOworICAgICAgICBu
dW1WaXNpYmlsaXR5Q2hhbmdlcysrOworICAgICAgICBtYWtlUGFnZVZpc2libGUoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobnVtVmlzaWJpbGl0eUNoYW5nZXMgPT0gNikgewor
ICAgICAgICBjaGVja0lzUGFnZVZpc2libGUoKTsKKyAgICAgICAgbnVtVmlzaWJpbGl0eUNoYW5n
ZXMrKzsKICAgICAgICAgZmluaXNoVGVzdCgpOwogICAgICAgICByZXR1cm47CiAgICAgfSBlbHNl
IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>