<?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>49543</bug_id>
          
          <creation_ts>2010-11-15 07:45:53 -0800</creation_ts>
          <short_desc>[GTK] Improve FrameLoader signals. Resource loading</short_desc>
          <delta_ts>2012-02-24 08:41:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>309273</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 07:45:53 -0800</bug_when>
    <thetext>This bug is about implementing resource loading signals proposed by Martin here:

https://lists.webkit.org/pipermail/webkit-gtk/2010-May/000240.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309281</commentid>
    <comment_count>1</comment_count>
      <attachid>73896</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:05:42 -0800</bug_when>
    <thetext>Created attachment 73896
dispatchWillSendRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309282</commentid>
    <comment_count>2</comment_count>
      <attachid>73897</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:06:33 -0800</bug_when>
    <thetext>Created attachment 73897
didReceiveResponse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309283</commentid>
    <comment_count>3</comment_count>
      <attachid>73898</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:07:02 -0800</bug_when>
    <thetext>Created attachment 73898
didFinishLoading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309285</commentid>
    <comment_count>4</comment_count>
      <attachid>73899</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:08:09 -0800</bug_when>
    <thetext>Created attachment 73899
didReceiveContentLength</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309286</commentid>
    <comment_count>5</comment_count>
      <attachid>73900</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:08:43 -0800</bug_when>
    <thetext>Created attachment 73900
didFailLoading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309287</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-15 08:10:10 -0800</bug_when>
    <thetext>I&apos;m sure Martin would like to know about his :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313211</commentid>
    <comment_count>7</comment_count>
      <attachid>74739</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-24 04:10:58 -0800</bug_when>
    <thetext>Created attachment 74739
dispatchWillSendRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313213</commentid>
    <comment_count>8</comment_count>
      <attachid>74741</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-24 04:11:23 -0800</bug_when>
    <thetext>Created attachment 74741
didReceiveResponse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313214</commentid>
    <comment_count>9</comment_count>
      <attachid>74742</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-24 04:12:56 -0800</bug_when>
    <thetext>Created attachment 74742
didFinishLoading

Additionally marking 73897 as obsolete. Forgot to do that before</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313215</commentid>
    <comment_count>10</comment_count>
      <attachid>74743</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-24 04:13:41 -0800</bug_when>
    <thetext>Created attachment 74743
didReceiveContentLength</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313216</commentid>
    <comment_count>11</comment_count>
      <attachid>74744</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2010-11-24 04:14:20 -0800</bug_when>
    <thetext>Created attachment 74744
didFailLoading

same here with 73899</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313268</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-24 06:44:11 -0800</bug_when>
    <thetext>I think it makes sense to make this one big patch and to unskip / change results layout tests at the same time. That way we can land the code and have it tested at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389943</commentid>
    <comment_count>13</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-21 05:19:59 -0700</bug_when>
    <thetext>I&apos;m going to work on this, if Sergio isn&apos;t already!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390073</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-04-21 09:09:00 -0700</bug_when>
    <thetext>I updated the patches and started looking at unskipping tests. But there are some issues to match with mac&apos;s resource load delegate dumping. Hopefully next week or the week after I&apos;ll have more time to work on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400427</commentid>
    <comment_count>15</comment_count>
      <attachid>92776</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-09 03:43:46 -0700</bug_when>
    <thetext>Created attachment 92776
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400428</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-09 03:46:05 -0700</bug_when>
    <thetext>Attachment 92776 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/plat...&quot; exit_code: 1

Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:175:  Missing spaces around |  [whitespace/operators] [3]
Total errors found: 2 in 13 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>400430</commentid>
    <comment_count>17</comment_count>
      <attachid>92777</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-09 03:49:59 -0700</bug_when>
    <thetext>Created attachment 92777
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>400432</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-09 03:53:17 -0700</bug_when>
    <thetext>Attachment 92777 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/plat...&quot; exit_code: 1

Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:175:  Missing spaces around |  [whitespace/operators] [3]
Total errors found: 1 in 13 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>400561</commentid>
    <comment_count>19</comment_count>
      <attachid>92777</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-09 09:55:09 -0700</bug_when>
    <thetext>Comment on attachment 92777
proposed patch

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

Awesome! This looks good to me. Please see my comments below, which comprise mostly stylistic nits. We need to get tha approval of another GTK+ reviewer for this.

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-389
&gt; -    if (!redirectResponse.isNull()) {
&gt; -        // This is a redirect, so we need to update the WebResource&apos;s knowledge
&gt; -        // of the URI.
&gt; -        g_free(webResource-&gt;priv-&gt;uri);
&gt; -        webResource-&gt;priv-&gt;uri = g_strdup(request.url().string().utf8().data());
&gt; -    }
&gt; -    

In this ChangeLog you should describe why you removed this bit in the FrameLoaderClient::dispatchWillSendRequest method line.

&gt; Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:174
&gt; +                                                        NULL,

NULL -&gt; 0 here.

&gt; Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:306
&gt; +    WebKitNetworkRequestPrivate* priv = request-&gt;priv;
&gt; +
&gt; +    return priv-&gt;mainURI;

Please just say request-&gt;priv-&gt;mainURI here. :)

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:332
&gt; +     * the lifetime of the resource, but the contents may change from
&gt; +     * inbetween signal emissions.

&quot;from inbetween&quot; should just be &quot;between&quot; Awesome doc!

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:340
&gt; +            NULL, NULL,

NULL -&gt; 0 here.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:353
&gt; +     * Emitted when the first byte of data arrives

Period needed here.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:361
&gt; +            NULL, NULL,

NULL -&gt; 0.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:372
&gt; +     * Emitted when all the data for the resource was loaded

Period necessary.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:380
&gt; +            NULL, NULL,

NULL -&gt; 0.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:391
&gt; +     * Emitted when all the data for the resource was loaded

Period.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:399
&gt; +            NULL, NULL,

NULL -&gt; 0.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:411
&gt; +     * Invoked when a resource failed to load

Period.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:419
&gt; +            NULL, NULL,

NULL -&gt; 0.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1058
&gt; +static char* urlPath(SoupURI* uri)

Please call this convertSoupURIToURLPath or something equally descriptive, to meet the style guidelines.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1068
&gt; +    gchar* basename = g_path_get_basename(uri-&gt;path);
&gt; +    gchar* dirname = g_path_get_basename(g_path_get_dirname(uri-&gt;path));
&gt; +    return g_strdup_printf(&quot;%s/%s&quot;, dirname, basename);

Please just make this one line. Might want to investigate whether it is possible to use CString here without leaking memory. That would avoid needing to use GOwnPtr. If not, no worries.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1071
&gt; +static char* urlPath(SoupMessage* soupMessage)

Please make the method name more descriptive, per the style guidelines.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1080
&gt; +    if (soupMessage) {
&gt; +        SoupURI* requestURI = soup_message_get_uri(soupMessage);
&gt; +        if (requestURI)
&gt; +            path = urlPath(requestURI);
&gt; +    }
&gt; +    return path;

Please use early returns here with something like this:

if (!soupMessage)
    return 0;
if (SoupURI* requestURI = soup_message_get_uri(soupMessage))
    return urlPath(requestURI);
return 0;

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1083
&gt; +static char* urlPath(WebKitNetworkRequest* request)

Please make the helper name more descriptive.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1086
&gt; +    SoupMessage* soupMessage = webkit_network_request_get_message(request);
&gt; +    return urlPath(soupMessage);

Please make this one line.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1092
&gt; +    SoupURI* uri = soup_uri_new(webkit_web_resource_get_uri(webResource));
&gt; +    return urlPath(uri);

Ditto.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1171
&gt; +    if (!g_ascii_strncasecmp(errorDomain, &quot;webkit-network-error-quark&quot;, 26))

Wouldn&apos;t it be better to use g_str_equal here or is there a chance that error-&gt;domain may not be null escaped or have weird case?

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1210
&gt; +    char* description;

You can eliminate this variable entirely.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1218
&gt; +    description = g_strdup_printf(&quot;&lt;NSURLResponse %s, http status code %d&gt;&quot;, path.get(), statusCode);
&gt; +    return description;

See above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401289</commentid>
    <comment_count>20</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2011-05-10 10:18:41 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 92777 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92777&amp;action=review
&gt; 
&gt; Awesome! This looks good to me. Please see my comments below, which comprise mostly stylistic nits. We need to get tha approval of another GTK+ reviewer for this.
&gt; 
&gt; &gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:-389
&gt; &gt; -    if (!redirectResponse.isNull()) {
&gt; &gt; -        // This is a redirect, so we need to update the WebResource&apos;s knowledge
&gt; &gt; -        // of the URI.
&gt; &gt; -        g_free(webResource-&gt;priv-&gt;uri);
&gt; &gt; -        webResource-&gt;priv-&gt;uri = g_strdup(request.url().string().utf8().data());
&gt; &gt; -    }
&gt; &gt; -    

I don&apos;t remember the exact details here but when I checked with test results it looked like all of them were assuming that web resources should have the original URL and not the redirected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401406</commentid>
    <comment_count>21</comment_count>
      <attachid>92992</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-10 12:04:43 -0700</bug_when>
    <thetext>Created attachment 92992
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401420</commentid>
    <comment_count>22</comment_count>
      <attachid>92992</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-10 12:28:41 -0700</bug_when>
    <thetext>Comment on attachment 92992
updated patch

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

Thank you very much for updating the patch! I still have a few concerns though. See below.

&gt; LayoutTests/platform/gtk/Skipped:907
&gt;  fast/loader/recursive-before-unload-crash.html 

What&apos;s missing for this one still?

&gt; Source/WebKit/gtk/ChangeLog:23
&gt; +        Based on patch by Sergio Villar Senin &lt;svillar@igalia.com&gt;

Please just put this in the top line:

2011-05-09  Philippe Normand  &lt;pnormand@igalia.com&gt; and Sergio Villar Senin  &lt;svillar@igalia.com&gt;

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:389
&gt; -        // This is a redirect, so we need to update the WebResource&apos;s knowledge
&gt; -        // of the URI.
&gt; -        g_free(webResource-&gt;priv-&gt;uri);
&gt; -        webResource-&gt;priv-&gt;uri = g_strdup(request.url().string().utf8().data());
&gt; -    }
&gt; -    
&gt; +         // This is a redirect, so we need to update the WebResource&apos;s knowledge
&gt; +         // of the URI.
&gt; +         g_free(webResource-&gt;priv-&gt;uri);
&gt; +         webResource-&gt;priv-&gt;uri = g_strdup(request.url().string().utf8().data());
&gt; +     }
&gt; +

This change was probably accidental?

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:1178
&gt; +    // Notify listeners

You can just omit this comment, in my opinion. :)

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:1195
&gt; +    // Notify listeners

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:169
&gt; +    /**
&gt; +     * WebKitNetworkRequest:main-uri:
&gt; +     *
&gt; +     * The #ResourceRequest that backs the request.
&gt; +     *
&gt; +     * Since: 1.5.1
&gt; +     */

I&apos;m not sure I understand the difference between the URI and MainURI.  The comment above doesn&apos;t seem to explain it either. Why is this property necessary? I don&apos;t see a similar one on the Mac port&apos;s API surface.

&gt; Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp:300
&gt; +const gchar*
&gt; +webkit_network_request_get_main_uri(WebKitNetworkRequest* request)

Should just be one line here.

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:138
&gt; +            NULL, NULL,

Should turn these NULLs into 0.

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:156
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:173
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:190
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:2766
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:2787
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:2808
&gt; +            NULL, NULL,

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:2830
&gt; +            NULL, NULL,

Ditto.

&gt; Tools/ChangeLog:10
&gt; +        Based on patch by Sergio Villar Senin &lt;svillar@igalia.com&gt;

Please move this one up as well.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:70
&gt; +extern WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView*);

It&apos;s unfortuante that we are still using private APIs here. :( Hopefully a later patch can push whatever is needed into the public API. See below where I&apos;ve suggested an alternative approach though.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1062
&gt; +    GOwnPtr&lt;gchar&gt; urlPath(g_strdup_printf(&quot;%s/%s&quot;, g_path_get_basename(g_path_get_dirname(uri-&gt;path)), g_path_get_basename(uri-&gt;path)));

This is a memory leak because g_path_get_basename returns a newly allocated string.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1082
&gt; +    return convertSoupURIToURLPath(soup_uri_new(webkit_web_resource_get_uri(webResource)));

Doesn&apos;t this leak the SoupURI?

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1090
&gt; +    return CString(g_path_get_basename(uriString));

This is a memory leak, because the g_path_get_basename returns a newly allocated string.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1107
&gt; +    if (webResource == webkit_web_view_get_main_resource(webView)

Couldn&apos;t you use the public API here by doing: webkit_web_frame_get_data_source  and then webkit_web_data_source_get_main_resource?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401827</commentid>
    <comment_count>23</comment_count>
      <attachid>93083</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-11 00:58:49 -0700</bug_when>
    <thetext>Created attachment 93083
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401828</commentid>
    <comment_count>24</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-05-11 01:00:29 -0700</bug_when>
    <thetext>I removed the main-uri property, doesn&apos;t seem needed, at least for now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402469</commentid>
    <comment_count>25</comment_count>
      <attachid>93083</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-11 17:29:35 -0700</bug_when>
    <thetext>Comment on attachment 93083
updated patch

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

This looks pretty good to me, in general. I think Gustavo or Xan should sign off on the API changes now.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:185
&gt;      DATABASE_QUOTA_EXCEEDED,
&gt; -    RESOURCE_REQUEST_STARTING,
&gt;      DOCUMENT_LOAD_FINISHED,

I think reordering the signals is an ABI break unfortunatley.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:2803
&gt; +    /*
&gt; +     * WebKitWebView::resource-content-length-received
&gt; +     * @webView: the object which received the signal
&gt; +     * @webFrame: the #WebKitWebFrame the response was received for
&gt; +     * @webResource: the #WebKitWebResource that was loaded
&gt; +     * @lengthReceived: the resource data length in bytes
&gt; +     *
&gt; +     * Emitted when all the data for the resource was loaded
&gt; +     *
&gt; +     * Since: 1.5.1
&gt; +     */

This documentation appears to be incorrect.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1115
&gt; +    if (webResource == webkit_web_data_source_get_main_resource(dataSource)
&gt; +        &amp;&amp; (!webkit_web_view_get_progress(webView) || g_str_equal(uri-&gt;scheme, &quot;file&quot;)))
&gt; +        description = CString(&quot;&lt;unknown&gt;&quot;);

This is slightly different than before where you were getting the main resource from the main frame, right? I&apos;m not sure which is correct, because I&apos;m not sure exactly what this is doing. Why do we only return &quot;&lt;unknown&gt;&quot; if this is the main data source of the frame? This probably needs a comment.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1184
&gt; +        printf(&quot;%s - willSendRequest %s redirectResponse %s\n&quot;, path.data(),
&gt; +               requestDescription.data(), responseDescription.data());

Can just be:
 printf(&quot;%s - willSendRequest %s redirectResponse %s\n&quot;,
        convertNetworkRequestToURLPath(request).data(),
        requestDescription(descriptionSuitableForTestResult(request)).data(),
        responseDescription(descriptionSuitableForTestResult(response)).data());

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1223
&gt; +    // TODO: add &quot;has MIME type&quot; whenever dumpResourceResponseMIMETypes()

I think this one is missing a word. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545462</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-30 15:14:02 -0800</bug_when>
    <thetext>8 months since last comment.  Can we close this or is this moving forward silently? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545621</commentid>
    <comment_count>27</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-30 17:08:17 -0800</bug_when>
    <thetext>Philippe, do you mind deciding whether you want to invest the time in this or wait for these features in WebKit2? I think your patch is very close to being done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545811</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-30 23:44:54 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; Philippe, do you mind deciding whether you want to invest the time in this or wait for these features in WebKit2? I think your patch is very close to being done!

Indeed I totally forgot about this patch. I&apos;ll update it today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545935</commentid>
    <comment_count>29</comment_count>
      <attachid>93083</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-31 04:07:34 -0800</bug_when>
    <thetext>Comment on attachment 93083
updated patch

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

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:106
&gt; +    RESOURCE_LOADING_FINISHED,

It all looks OK to me, the only thing that bothered me was using &apos;loading&apos; only for this signal, I think we should be consistent and use load everywhere?

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:51
&gt; +    LOADING_FINISHED,

Ditto.

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:185
&gt;&gt;      DOCUMENT_LOAD_FINISHED,
&gt; 
&gt; I think reordering the signals is an ABI break unfortunatley.

I don&apos;t think so, the enum is only used internally isn&apos;t it?

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:205
&gt; +    RESOURCE_LOADING_FINISHED,

And here...

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1051
&gt; +static CString convertSoupURIToURLPath(SoupURI* uri)

How about pathFromSoupURI?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546011</commentid>
    <comment_count>30</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-31 06:54:17 -0800</bug_when>
    <thetext>*** Bug 62585 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546014</commentid>
    <comment_count>31</comment_count>
      <attachid>124721</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-01-31 06:58:54 -0800</bug_when>
    <thetext>Created attachment 124721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546020</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 07:02:06 -0800</bug_when>
    <thetext>Attachment 124721 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   7fbc464..f5e58c7  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 106357 = 7fbc464108a336b4b5cc9d5561e013ca51529334
r106358 = f5e58c7fca5f55729d43f04848daca0e72ec5075
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546452</commentid>
    <comment_count>33</comment_count>
      <attachid>124721</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-01-31 13:43:36 -0800</bug_when>
    <thetext>Comment on attachment 124721
Patch

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

Okay. Thanks!

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:344
&gt; +            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),

Please use static_cast here.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:365
&gt; +            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),

Ditto.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:384
&gt; +            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),

Ditto and for the rest of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546891</commentid>
    <comment_count>34</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-01 01:31:12 -0800</bug_when>
    <thetext>Committed r106445: &lt;http://trac.webkit.org/changeset/106445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546893</commentid>
    <comment_count>35</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-01 01:32:02 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 124721 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124721&amp;action=review
&gt; 
&gt; Okay. Thanks!
&gt; 
&gt; &gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:344
&gt; &gt; +            (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
&gt; 
&gt; Please use static_cast here.

G_SIGNAL_ACTION wasn&apos;t needed, so I just removed it and the casts as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564141</commentid>
    <comment_count>36</comment_count>
      <attachid>124721</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-24 02:41:47 -0800</bug_when>
    <thetext>Comment on attachment 124721
Patch

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

I know this already landed, but I&apos;ve found some issues with the patch.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:353
&gt; +    /*

Double * missing here

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:354
&gt; +     * WebKitWebFrame::resource-response-received

Trailing : missing

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:355
&gt; +     * @webFrame: the #WebKitWebFrame the response was received for

web_frame

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:356
&gt; +     * @webResource: the #WebKitWebResource being loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:359
&gt; +     * Emitted when the first byte of data arrives

Are you sure, this is emitted when the response is received from the server, when the first byte of data arrives, received-content-length is emitted.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:373
&gt; +    /*

Double * missing here too

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:374
&gt; +     * WebKitWebFrame::resource-load-finished

And trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:375
&gt; +     * @webFrame: the #WebKitWebFrame the response was received for

web_frame

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:376
&gt; +     * @webResource: the #WebKitWebResource being loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:391
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:393
&gt; +     * @webFrame: the #WebKitWebFrame the response was received for

web_frame

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:394
&gt; +     * @webResource: the #WebKitWebResource that was loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:395
&gt; +     * @lengthReceived: the resource data length in bytes

length_received. It&apos;s not the length of the resource, it the bytes received in this moment

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:397
&gt; +     * Emitted when all the data for the resource was loaded.

Received every time data is received. This is called every time data has been received and length_received is the amount of bytes received. This is useful to provide progress information about the resource load operation.

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:411
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:412
&gt; +     * WebKitWebFrame::resource-load-failed

Trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:413
&gt; +     * @webFrame: the #WebKitWebFrame the response was received for

web_frame

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:414
&gt; +     * @webResource: the #WebKitWebResource that was loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebframe.cpp:415
&gt; +     * @webError: the #GError that was triggered

error

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:125
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:126
&gt; +     * WebKitWebResource::response-received

Trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:127
&gt; +     * @webResource: the #WebKitWebResource being loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:130
&gt; +     * Emitted when the first byte of data arrives

Same comment here about the first byte of data

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:143
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:144
&gt; +     * WebKitWebResource::load-failed

Trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:145
&gt; +     * @webResource: the #WebKitWebResource that was loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:146
&gt; +     * @webError: the #GError that was triggered

error

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:148
&gt; +     * Invoked when a resource failed to load

This is emitted on the resource object, it should probably say &apos;Invoked when the resource failed to load&apos; or even &apos;Invoked when @resource failed to load&apos;

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:161
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:162
&gt; +     * WebKitWebResource::load-finished

Trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:163
&gt; +     * @webResource: the #WebKitWebResource being loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:177
&gt; +    /*

Double *

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:178
&gt; +     * WebKitWebResource::content-length-received

Trailing :

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:179
&gt; +     * @webResource: the #WebKitWebResource that was loaded

web_resource

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:180
&gt; +     * @lengthReceived: the resource data length in bytes

length_received

&gt; Source/WebKit/gtk/webkit/webkitwebresource.cpp:182
&gt; +     * Emitted when all the data for the resource was loaded

Same comment here about what this signal is for.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:214
&gt; +    RESOURCE_RESPONSE_RECEIVED,
&gt; +    RESOURCE_LOAD_FINISHED,
&gt; +    RESOURCE_CONTENT_LENGTH_RECEIVED,
&gt; +    RESOURCE_LOAD_FAILED,

Same comments for this file too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564144</commentid>
    <comment_count>37</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-24 02:48:35 -0800</bug_when>
    <thetext>Can this be fixed in a new patch/bugzilla entry?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564344</commentid>
    <comment_count>38</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-24 08:41:00 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; Can this be fixed in a new patch/bugzilla entry?

Please, add me to the CC if you open a new bug for this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73896</attachid>
            <date>2010-11-15 08:05:42 -0800</date>
            <delta_ts>2010-11-24 04:10:58 -0800</delta_ts>
            <desc>dispatchWillSendRequest</desc>
            <filename>0001-dispatchWillSendRequest.patch</filename>
            <type>text/plain</type>
            <size>10726</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSA5OTJjODZiYzJkMGMyMGNlYTk3MGU2OGMyNWU3MTk4ZWZlNGRiYjEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFdlZCwgMjcgT2N0IDIwMTAgMTg6MDI6MTcgKzAyMDAKU3ViamVjdDogW1BBVENI
IDEvNV0gZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QKICsgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNl
LXJlcXVlc3Qtc3RhcnRpbmcKCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCB8ICAgIDUgKy0KIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcCAgICAgICAgICAgICAgIHwgICA0NCArKysrKysrKysrKysrCiBXZWJL
aXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0K
IFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NCArKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
ICB8ICAgNjcgKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhYTBjMGRhLi4wNDI0NGRhIDEwMDY0NAot
LS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEwLTExLTE1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudGVkIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5n
CisKKyAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0Mwor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3Qp
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRf
d2ViX2ZyYW1lX2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdG1hcnNoYWwubGlzdDoKKwog
MjAxMC0xMS0xMSAgSm9vbmUgSHVyICA8am9vbmVAa2xkcC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggYjIzYmQ3MC4uNDU4NmUyOCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysr
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAg
LTMxMywxNCArMzEzLDE1IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgV2ViS2l0V2Vi
UmVzb3VyY2UqIHdlYlJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJW
aWV3LCBpZGVudGlmaWVyU3RyaW5nLmdldCgpKTsKICAgICBQbGF0Zm9ybVJlZlB0cjxXZWJLaXRO
ZXR3b3JrUmVxdWVzdD4gbmV0d29ya1JlcXVlc3QoYWRvcHRQbGF0Zm9ybVJlZih3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdChyZXF1ZXN0KSkpOwogCisgICAgZ19z
aWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwg
bV9mcmFtZSwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9u
c2UuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2Ut
cmVxdWVzdC1zdGFydGluZyIsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVxdWVzdC5nZXQoKSwgbmV0
d29ya1Jlc3BvbnNlLmdldCgpKTsKKwogICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwo
KSkgewogICAgICAgICAvLyBUaGlzIGlzIGEgcmVkaXJlY3QsIHNvIHdlIG5lZWQgdG8gdXBkYXRl
IHRoZSBXZWJSZXNvdXJjZSdzIGtub3dsZWRnZQogICAgICAgICAvLyBvZiB0aGUgVVJJLgogICAg
ICAgICBnX2ZyZWUod2ViUmVzb3VyY2UtPnByaXYtPnVyaSk7CiAgICAgICAgIHdlYlJlc291cmNl
LT5wcml2LT51cmkgPSBnX3N0cmR1cChyZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgIH0KLSAgICAKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJl
c291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jl
cXVlc3QuZ2V0KCksIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CiAKICAgICAvLyBGZWVkIGFueSBj
aGFuZ2VzIGJhY2sgaW50byB0aGUgUmVzb3VyY2VSZXF1ZXN0IG9iamVjdC4KICAgICBTb3VwTWVz
c2FnZSogbWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UobmV0d29y
a1JlcXVlc3QuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IDYz
YTI0MTMuLjI0OGQxYWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTI3
LDYgKzI3LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIndlYmtpdGVudW10
eXBlcy5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCisjaW5jbHVkZSAid2Vi
a2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNs
dWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgpAQCAtOTMs
NiArOTUsOCBAQCBlbnVtIHsKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJf
TElOSywKICAgICBTQ1JPTExCQVJTX1BPTElDWV9DSEFOR0VELAorICAgIC8vIFJlc291cmNlIGxv
YWRpbmcgc2lnbmFscworICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcsCiAgICAgTEFTVF9T
SUdOQUwKIH07CiAKQEAgLTI4Niw2ICsyOTAsNDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9m
cmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAgICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19WT0lELAogICAgICAgICAgICAgR19UWVBFX0JP
T0xFQU4sIDApOwogCisKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2Ut
cmVxdWVzdC1zdGFydGluZzoKKyAgICAgKiBAd2ViX2ZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1l
IHdob3NlIGxvYWQgZGlzcGF0Y2hlZCB0aGlzIHJlcXVlc3QKKyAgICAgKiBAd2ViX3Jlc291cmNl
OiBhbiBlbXB0eSAjV2ViS2l0V2ViUmVzb3VyY2Ugb2JqZWN0CisgICAgICogQHJlcXVlc3Q6IHRo
ZSAjV2ViS2l0TmV0d29ya1JlcXVlc3QgdGhhdCB3aWxsIGJlIGRpc3BhdGNoZWQKKyAgICAgKiBA
cmVzcG9uc2U6IHRoZSAjV2ViS2l0TmV0d29ya1Jlc3BvbnNlIHJlcHJlc2VudGluZyB0aGUgcmVk
aXJlY3QKKyAgICAgKiByZXNwb25zZSwgaWYgYW55CisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdo
ZW4gYSByZXF1ZXN0IGlzIGFib3V0IHRvIGJlIHNlbnQuIFlvdSBjYW4gbW9kaWZ5IHRoZQorICAg
ICAqIHJlcXVlc3Qgd2hpbGUgaGFuZGxpbmcgdGhpcyBzaWduYWwuIFlvdSBjYW4gc2V0IHRoZSBV
UkkgaW4gdGhlCisgICAgICogI1dlYktpdE5ldHdvcmtSZXF1ZXN0IG9iamVjdCBpdHNlbGYsIGFu
ZCBhZGQvcmVtb3ZlL3JlcGxhY2UKKyAgICAgKiBoZWFkZXJzIHVzaW5nIHRoZSAjU291cE1lc3Nh
Z2Ugb2JqZWN0IGl0IGNhcnJpZXMsIGlmIGl0IGlzCisgICAgICogcHJlc2VudC4gU2VlIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoKS4gU2V0dGluZyB0aGUKKyAgICAgKiByZXF1
ZXN0IFVSSSB0byAiYWJvdXQ6YmxhbmsiIHdpbGwgZWZmZWN0aXZlbHkgY2F1c2UgdGhlIHJlcXVl
c3QKKyAgICAgKiB0byBsb2FkIG5vdGhpbmcsIGFuZCBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRo
ZSBsb2FkaW5nIG9mCisgICAgICogc3BlY2lmaWMgcmVzb3VyY2VzLgorICAgICAqCisgICAgICog
Tm90aWNlIHRoYXQgaW5mb3JtYXRpb24gYWJvdXQgYW4gZXZlbnR1YWwgcmVkaXJlY3QgaXMgYXZh
aWxhYmxlCisgICAgICogaW4gQHJlc3BvbnNlJ3MgI1NvdXBNZXNzYWdlLCBub3QgaW4gdGhlICNT
b3VwTWVzc2FnZSBjYXJyaWVkIGJ5CisgICAgICogdGhlIEByZXF1ZXN0LiBJZiBAcmVzcG9uc2Ug
aXMgJU5VTEwsIHRoZW4gdGhpcyBpcyBub3QgYQorICAgICAqIHJlZGlyZWN0ZWQgcmVxdWVzdC4K
KyAgICAgKgorICAgICAqIFRoZSAjV2ViS2l0V2ViUmVzb3VyY2Ugb2JqZWN0IHdpbGwgYmUgdGhl
IHNhbWUgdGhyb3VnaG91dCBhbGwKKyAgICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIHJlc291cmNl
LCBidXQgdGhlIGNvbnRlbnRzIG1heSBjaGFuZ2UgZnJvbQorICAgICAqIGluYmV0d2VlbiBzaWdu
YWwgZW1pc3Npb25zLgorICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdl
YmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9SRVFVRVNUX1NUQVJUSU5HXSA9IGdfc2ln
bmFsX25ldygicmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsCisgICAgICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAg
ICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNU
X09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAg
IFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdP
UktfUkVRVUVTVCwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwor
CiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAg
ICovCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCBiL1dlYktpdC9n
dGsvd2Via2l0bWFyc2hhbC5saXN0CmluZGV4IDAyNmE4YWYuLjAzZGFmNTQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CisrKyBiL1dlYktpdC9ndGsvd2Via2l0bWFy
c2hhbC5saXN0CkBAIC0xNCw5ICsxNCw5IEBAIE9CSkVDVDpPQkpFQ1QKIE9CSkVDVDpTVFJJTkcs
U1RSSU5HLFBPSU5URVIKIE9CSkVDVDpWT0lECiBWT0lEOk9CSkVDVCxPQkpFQ1QKK1ZPSUQ6T0JK
RUNULE9CSkVDVCxPQkpFQ1QKIFZPSUQ6T0JKRUNULE9CSkVDVCxPQkpFQ1QsT0JKRUNUCiBWT0lE
Ok9CSkVDVCxQT0lOVEVSLFBPSU5URVIKIFZPSUQ6T0JKRUNULFNUUklORwogVk9JRDpTVFJJTkcK
IFZPSUQ6U1RSSU5HLFNUUklORwotCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMWVmNjE5ZS4uN2YyY2FkNyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEwLTExLTE1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERSVCBsaXN0ZW5zIHRvIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0
aW5nCisKKyAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2Fk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0
MworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAg
ICAgICAgKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KToKKyAgICAgICAgKHdpbGxT
ZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRpbmcpOgorCiAyMDEw
LTExLTE0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYW5pZWwgQmF0ZXMuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1YWE2MWUzLi45MjQ4NDQ1IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTcw
LDYgKzcwLDcgQEAgZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1
Z2luX2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2aWV3LAogZXh0ZXJuIGdjaGFyKiB3ZWJraXRf
d2ViX2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsK
IGV4dGVybiB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xlYXJfbWFpbl9mcmFtZV9uYW1lKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSk7CiBleHRlcm4gdm9pZCB3ZWJraXRfcmVzZXRfb3JpZ2luX2FjY2Vz
c193aGl0ZV9saXN0cygpOworZXh0ZXJuIFdlYktpdFdlYlJlc291cmNlKiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X21haW5fcmVzb3VyY2UoV2ViS2l0V2ViVmlldyopOwogfQogCiB2b2xhdGlsZSBib29s
IGRvbmU7CkBAIC05OTMsNiArOTk0LDcxIEBAIHN0YXRpYyB2b2lkIGZyYW1lQ3JlYXRlZENhbGxi
YWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtCiAgICAg
Z19zaWduYWxfY29ubmVjdCh3ZWJGcmFtZSwgIm5vdGlmeTo6bG9hZC1zdGF0dXMiLCBHX0NBTExC
QUNLKHdlYkZyYW1lTG9hZFN0YXR1c05vdGlmaWVkKSwgTlVMTCk7CiB9CiAKK3N0YXRpYyBjaGFy
KiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpCit7CisgICAg
aWYgKCF1cmkpCisgICAgICAgIHJldHVybiBnX3N0cmR1cCgiIik7CisKKyAgICBpZiAoZ19hc2Np
aV9zdHJuY2FzZWNtcCh1cmktPnNjaGVtZSwgU09VUF9VUklfU0NIRU1FX0ZJTEUsIDQpKQorICAg
ICAgICByZXR1cm4gc291cF91cmlfdG9fc3RyaW5nKHVyaSwgZmFsc2UpOworCisgICAgLy8gRklY
TUUKKyAgICByZXR1cm4gc291cF91cmlfdG9fc3RyaW5nKHVyaSwgZmFsc2UpOworfQorCitzdGF0
aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1Jl
cXVlc3QqIHJlcXVlc3QpCit7CisgICAgR093blB0cjxjaGFyPiByZXF1ZXN0VVJJU3RyaW5nOwor
ICAgIEdPd25QdHI8Y2hhcj4gbWFpbkRvY3VtZW50VVJJU3RyaW5nOworICAgIFNvdXBNZXNzYWdl
KiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVz
dCk7CisKKyAgICBpZiAoc291cE1lc3NhZ2UpIHsKKyAgICAgICAgU291cFVSSSogcmVxdWVzdFVS
SSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKTsKKyAgICAgICAgU291cFVSSSog
bWFpbkRvY3VtZW50VVJJID0gc291cF9tZXNzYWdlX2dldF9maXJzdF9wYXJ0eShzb3VwTWVzc2Fn
ZSk7CisgICAgICAgIHJlcXVlc3RVUklTdHJpbmcuc2V0KGRlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KHJlcXVlc3RVUkkpKTsKKyAgICAgICAgbWFpbkRvY3VtZW50VVJJU3RyaW5nLnNl
dChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChtYWluRG9jdW1lbnRVUkkpKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICByZXF1ZXN0VVJJU3RyaW5nLnNldChnX3N0cmR1cCh3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpKTsKKyAgICAgICAgbWFpbkRvY3VtZW50
VVJJU3RyaW5nLnNldChnX3N0cmR1cCh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVx
dWVzdCkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ19zdHJkdXBfcHJpbnRmKCI8TlNVUkxSZXF1
ZXN0IFVSTCAlcywgbWFpbiBkb2N1bWVudCBVUkwgJXMsIGh0dHAgbWV0aG9kICVzPiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VVJJU3RyaW5nLmdldCgpLCBtYWluRG9jdW1l
bnRVUklTdHJpbmcuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VwTWVzc2Fn
ZSA/IHNvdXBNZXNzYWdlLT5tZXRob2QgOiAibnVsbCIpOworfQorCitzdGF0aWMgY2hhciogZGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNw
b25zZSkKK3sKKyAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19y
ZXNwb25zZV9nZXRfbWVzc2FnZShyZXNwb25zZSk7CisgICAgU291cFVSSSogcmVzcG9uc2VVUkkg
PSBzb3VwX21lc3NhZ2VfZ2V0X3VyaShzb3VwTWVzc2FnZSk7CisgICAgR093blB0cjxjaGFyPiBy
ZXNwb25zZVVSSVN0cmluZyhkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25z
ZVVSSSkpOworCisgICAgcmV0dXJuIGdfc3RyZHVwX3ByaW50ZigiPE5TVVJMUmVzcG9uc2UgVVJM
ICVzLCBodHRwIHN0YXR1cyBjb2RlICVkPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNwb25zZVVSSVN0cmluZy5nZXQoKSwgc291cE1lc3NhZ2UtPnN0YXR1c19jb2RlKTsKK30KKwor
c3RhdGljIGNvbnN0IGdjaGFyKiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJL
aXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UsIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7Cisg
ICAgaWYgKHdlYlJlc291cmNlID09IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZSh3
ZWJWaWV3KSkKKyAgICAgICAgcmV0dXJuICI8dW5rbm93bj4iOworCisgICAgcmV0dXJuIHdlYmtp
dF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSk7Cit9CisKKworc3RhdGljIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2Vi
RnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdE5ldHdvcmtSZXF1ZXN0
KiByZXF1ZXN0LCBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIGlmIChk
b25lIHx8ICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR093blB0cjxjaGFyPiByZXF1ZXN0RGVzY3JpcHRp
b24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVxdWVzdCkpOworICAgIEdPd25Q
dHI8Y2hhcj4gcmVzcG9uc2VEZXNjcmlwdGlvbighcmVzcG9uc2UgPyBnX3N0cmR1cCgiKG51bGwp
IikgOiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkpOworCisgICAg
cHJpbnRmKCIlcyAtIHdpbGxTZW5kUmVxdWVzdCAlcyByZWRpcmVjdFJlc3BvbnNlICVzXG4iLAor
ICAgICAgICAgICBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNvdXJjZSwgd2Vi
VmlldyksIHJlcXVlc3REZXNjcmlwdGlvbi5nZXQoKSwKKyAgICAgICAgICAgcmVzcG9uc2VEZXNj
cmlwdGlvbi5nZXQoKSk7Cit9CisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3
KCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93
ZWJfdmlld19uZXcoKSk7CkBAIC0xMDIwLDYgKzEwODYsNyBAQCBzdGF0aWMgV2ViS2l0V2ViVmll
dyogY3JlYXRlV2ViVmlldygpCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpkcmFnLWVu
ZCIsIGRyYWdFbmRDYWxsYmFjaywgMCwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmRy
YWctZmFpbGVkIiwgZHJhZ0ZhaWxlZENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAg
InNpZ25hbDo6ZnJhbWUtY3JlYXRlZCIsIGZyYW1lQ3JlYXRlZENhbGxiYWNrLCAwLAorICAgICAg
ICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdpbGxT
ZW5kUmVxdWVzdENhbGxiYWNrLCAwLAogCiAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAot
LSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73897</attachid>
            <date>2010-11-15 08:06:33 -0800</date>
            <delta_ts>2010-11-24 04:12:56 -0800</delta_ts>
            <desc>didReceiveResponse</desc>
            <filename>0002-didReceiveResponse.patch</filename>
            <type>text/plain</type>
            <size>11291</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSAwYmJiNTNlZjA3Zjc4OGE2NDNiZDcyZTgwNTE1Y2JmYTRkNmM4Yzg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFRodSwgMjggT2N0IDIwMTAgMTk6MjY6NTYgKzAyMDAKU3ViamVjdDogW1BBVENI
IDIvNV0gZGlkUmVjZWl2ZVJlc3BvbnNlCiArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLXJlc3Bv
bnNlLXJlY2VpdmVkCiArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZl
ZAogKyBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9uc2UtcmVjZWl2ZWQKCi0tLQogV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysr
KysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
fCAgIDEyICsrKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAg
ICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAzNSArKysrKysrKysrKysrKysrKy0tCiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAgMjQgKysr
KysrKysrKysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE2ICsrKysrKysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcCAgfCAgIDEyICsrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTM3IGlu
c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwNDI0NGRhLi5hODNmY2VkIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDI4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQWRkZWQgbmV3IHNpZ25hbHM6CisgICAgICAgICsgV2ViS2l0V2ViVmlldzo6cmVz
b3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVzb3Vy
Y2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgKyBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9u
c2UtcmVjZWl2ZWQKKworICAgICAgICBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291
cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ5NTQzCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnJlc291cmNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfZmluYWxp
emUpOgorICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xh
c3NfaW5pdCk6CisKKzIwMTAtMTEtMTUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGln
YWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAg
ICAgSW1wbGVtZW50ZWQgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmcK
IAogICAgICAgICBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKaW5kZXggNDU4NmUyOC4uYWI2NmJiMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM3NywxMyArMzc3LDIzIEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUg
dGhpczsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVz
cG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVy
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQogewogICAgIC8vIFVwZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFn
cyAtIHNvbWUgYXJlIG9ubHkgc2V0CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4K
ICAgICBsb2FkZXItPnJlcXVlc3QoKS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBN
ZXNzYWdlRmxhZ3MoKSk7CiAKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3du
UHRyPGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291
cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworICAgIFBsYXRmb3JtUmVmUHRy
PFdlYktpdE5ldHdvcmtSZXNwb25zZT4gbmV0d29ya1Jlc3BvbnNlOworICAgIG5ldHdvcmtSZXNw
b25zZSA9IGFkb3B0UGxhdGZvcm1SZWYod2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3X3dpdGhf
Y29yZV9yZXNwb25zZShyZXNwb25zZSkpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdl
YlJlc291cmNlLCAicmVzcG9uc2UtcmVjZWl2ZWQiLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwor
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtcmVzcG9uc2UtcmVj
ZWl2ZWQiLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgbV9m
cmFtZSwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CiB9CiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoRnJhbWVQb2xp
Y3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5jcHAKaW5kZXggMjQ4ZDFhZi4uZDVhM2FhZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcApAQCAtOTcsNiArOTcsNyBAQCBlbnVtIHsKICAgICBTQ1JPTExCQVJTX1BPTElD
WV9DSEFOR0VELAogICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscwogICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCiAgICAg
TEFTVF9TSUdOQUwKIH07CiAKQEAgLTMzMSw2ICszMzIsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAg
ICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAogICAgIC8qCisgICAg
ICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICogQHdl
YkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9y
CisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIGJlaW5nIGxvYWRl
ZAorICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2UgdGhhdCB3YXMg
cmVjZWl2ZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgZmlyc3QgYnl0ZSBvZiBk
YXRhIGFycml2ZXMKKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3ZWJr
aXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWdu
YWxfbmV3KCJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAg
ICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNU
X09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgV0VCS0lU
X1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQ
T05TRSk7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhv
ZHMKICAgICAgKi8KICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xB
U1MoZnJhbWVDbGFzcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJy
ZXNvdXJjZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKaW5k
ZXggZmIwYWNmYy4uYjE2YjZjMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2VicmVzb3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNl
LmNwcApAQCAtMTksOCArMTksOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRl
ICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5o
IgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJj
ZS5oIgogCiAjaW5jbHVkZSAiQXJjaGl2ZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpA
QCAtNDcsMTQgKzQ4LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogZW51bSB7Ci0gICAgUFJPUF8wLAorICAgIC8vIFJlc291cmNlIGxvYWRp
bmcKKyAgICBSRVNQT05TRV9SRUNFSVZFRCwKIAorICAgIExBU1RfU0lHTkFMCit9OworCitlbnVt
IHsKKyAgICBQUk9QXzAsCiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9NSU1FX1RZUEUsCiAgICAg
UFJPUF9FTkNPRElORywKICAgICBQUk9QX0ZSQU1FX05BTUUKIH07CiAKK3N0YXRpYyBndWludCB3
ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBHX0RF
RklORV9UWVBFKFdlYktpdFdlYlJlc291cmNlLCB3ZWJraXRfd2ViX3Jlc291cmNlLCBHX1RZUEVf
T0JKRUNUKTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYyk7CkBAIC0xMDMsMTUgKzExMiwzMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jl
c291cmNlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfd2ViX3Jlc291cmNlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJj
ZUNsYXNzKiBrbGFzcykKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5p
dChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiB3ZWJSZXNvdXJjZUNsYXNzKQogewotICAgIEdPYmpl
Y3RDbGFzcyogZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHT2Jq
ZWN0Q2xhc3MqIGdvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNz
KTsKIAogICAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Rp
c3Bvc2U7CiAgICAgZ29iamVjdF9jbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3Jlc291cmNl
X2ZpbmFsaXplOwogICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJf
cmVzb3VyY2VfZ2V0X3Byb3BlcnR5OwogICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9
IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2V0X3Byb3BlcnR5OwogCisgICAgLyoKKyAgICAgKiBXZWJL
aXRXZWJSZXNvdXJjZTo6cmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRo
ZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUg
I1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICog
RW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAg
ICogU2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tS
RVNQT05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc3BvbnNlLXJlY2VpdmVkIiwKKyAg
ICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpLAorICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAor
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBnX2Nj
bG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEs
CisgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKKwogICAgIC8qKgog
ICAgICAqIFdlYktpdFdlYlJlc291cmNlOnVyaToKICAgICAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAppbmRleCA2NTMxZWUxLi5lMzk0N2I1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtMTczLDYgKzE3Myw4IEBAIGVudW0gewogICAgIEdFT0xPQ0FUSU9OX1BP
TElDWV9ERUNJU0lPTl9DQU5DRUxMRUQsCiAgICAgT05MT0FEX0VWRU5ULAogICAgIEZSQU1FX0NS
RUFURUQsCisgICAgLy8gUmVzb3VyY2UgbG9hZGluZworICAgIFJFU09VUkNFX1JFU1BPTlNFX1JF
Q0VJVkVELAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yNTkyLDYgKzI1OTQsMjggQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3
ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwogCiAgICAg
LyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAg
ICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAg
KiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZl
ZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcg
bG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0
IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRl
IG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAg
IHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdf
c2lnbmFsX25ldygicmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19U
WVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3Mp
KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisg
ICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9f
T0JKRUNUX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAg
ICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwor
CisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAg
ICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdf
cmVhbF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggN2YyY2FkNy4uMmM3ZTk3ZCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAt
Miw2ICsyLDIyIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAg
ICAgICAgRFRSIG5vdyBsaXN0ZW5zIHRvOgorICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291
cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICAgICsgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNl
LXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICAgICsgV2ViS2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNl
LXJlY2VpdmVkCisKKyAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJj
ZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00OTU0MworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cDoKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZVdl
YlZpZXcpOgorCisyMDEwLTExLTE1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAg
IERSVCBsaXN0ZW5zIHRvIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5n
CiAKICAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5n
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cAppbmRleCA5MjQ4NDQ1Li5kZDI2YWQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwNTksNiArMTA1OSwxNyBAQCBzdGF0
aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXRXZWJGcmFtZSosIFdlYgogICAgICAgICAgICByZXNwb25zZURlc2NyaXB0aW9uLmdldCgp
KTsKIH0KIAorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlLCBX
ZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5
b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAg
ICBHT3duUHRyPGNoYXI+IHJlc3BvbnNlRGVzY3JpcHRpb24oIXJlc3BvbnNlID8gZ19zdHJkdXAo
IihudWxsKSIpIDogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpKTsK
KworICAgICAgICBwcmludGYoIiVzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlICVzXG4iLCBkZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJSZXNvdXJjZSwgd2ViVmlldyksIHJlc3BvbnNl
RGVzY3JpcHRpb24uZ2V0KCkpOworICAgIH0KKworICAgIC8vIFRPRE86IGFkZCAiaGFzIE1JTUUg
dHlwZSIgd2hlbmV2ZXIgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKQorfQorCiBzdGF0
aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiB7CiAgICAgV2ViS2l0V2ViVmlldyog
dmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwpAQCAtMTA4Nyw2
ICsxMDk4LDcgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogICAgICAg
ICAgICAgICAgICAgICAgInNpZ25hbDo6ZHJhZy1mYWlsZWQiLCBkcmFnRmFpbGVkQ2FsbGJhY2ss
IDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpmcmFtZS1jcmVhdGVkIiwgZnJhbWVD
cmVhdGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJj
ZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2ssIDAsCisgICAgICAg
ICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIGRpZFJl
Y2VpdmVSZXNwb25zZSwgMCwKIAogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKLS0gCjEu
Ny4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73898</attachid>
            <date>2010-11-15 08:07:02 -0800</date>
            <delta_ts>2010-11-24 04:12:56 -0800</delta_ts>
            <desc>didFinishLoading</desc>
            <filename>0003-didFinishLoading.patch</filename>
            <type>text/plain</type>
            <size>8922</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSAyYzE2YzVlMmE1ZjRkYzU2NmMyMGJjZmIwZWRmNDFhN2NmOGE0NzY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFdlZCwgMTAgTm92IDIwMTAgMTg6NTM6MDIgKzAxMDAKU3ViamVjdDogW1BBVENI
IDMvNV0gZGlkRmluaXNoTG9hZGluZwogKyBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkaW5n
LWZpbmlzaGVkCiArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCiAr
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCgotLS0KIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysr
KysrKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAgfCAgICA5ICsrKystLS0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAg
ICAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKysrKysr
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAg
MjEgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrKysrKysrKysKIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgIHwgICAgOCArKysrKysrCiA3IGZp
bGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTgz
ZmNlZC4uN2I4MGZkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTMsNiArMywyNyBAQAogICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KIAogICAgICAgICBBZGRlZCBuZXcgc2lnbmFsczoKKyAgICAgICAgKyBX
ZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCisgICAgICAgICsgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgICAgKyBXZWJLaXRXZWJS
ZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorCisgICAgICAgIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfcmVz
b3VyY2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorCisyMDEwLTExLTE1ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyBzaWduYWxzOgogICAgICAg
ICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCiAgICAgICAgICsg
V2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCiAgICAgICAgICsgV2Vi
S2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNlLXJlY2VpdmVkCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGFiNjZiYjMuLjUyMDM4
MjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCkBAIC0xMDg0LDEwICsxMDg0LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVy
CiAKICAgICB3ZWJraXRfd2ViX3Jlc291cmNlX2luaXRfd2l0aF9jb3JlX3Jlc291cmNlKHdlYlJl
c291cmNlLCBjb3JlUmVzb3VyY2UuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rp
b24gc2hvdWxkIG5vdGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgcmVzb3VyY2UKLSAgICAv
LyBmaW5pc2hlZCBsb2FkaW5nLCBtYXliZSB1c2luZyBhIGxvYWQtc3RhdHVzIHByb3BlcnR5IGlu
IHRoZQotICAgIC8vIFdlYktpdFdlYlJlc291cmNlIG9iamVjdCwgc2ltaWxhciB0byB3aGF0IHdl
IGRvIGZvciBXZWJLaXRXZWJGcmFtZScKLSAgICAvLyBzaWduYWwuCisgICAgLy8gTm90aWZ5IGxp
c3Rlcm5lcnMKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkaW5n
LWZpbmlzaGVkIik7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJj
ZS1sb2FkaW5nLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIG1fZnJhbWUsIHdlYlJl
c291cmNlKTsKKwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcAppbmRleCBkNWEzYWFkLi4xODAwYjc1IDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwCkBAIC05OCw2ICs5OCw3IEBAIGVudW0gewogICAgIC8vIFJlc291cmNl
IGxvYWRpbmcgc2lnbmFscwogICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcsCiAgICAgUkVT
T1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hFRCwK
ICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMzUyLDYgKzM1MywyNCBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFz
cykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwogCiAgICAgLyoK
KyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZAorICAgICAq
IEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVk
IGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBs
b2FkZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSBy
ZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTogPz8/CisgICAgICovCisg
ICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0g
Z19zaWduYWxfbmV3KCJyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9J
RF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJL
SVRfVFlQRV9XRUJfUkVTT1VSQ0UpOworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGZyYW1lQ2xhc3MpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
cmVzb3VyY2UuY3BwCmluZGV4IGIxNmI2YzEuLjk5OWJkMzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIGVudW0gewogICAgIC8vIFJlc291cmNlIGxvYWRpbmcKICAgICBSRVNQT05TRV9SRUNF
SVZFRCwKKyAgICBMT0FESU5HX0ZJTklTSEVELAogCiAgICAgTEFTVF9TSUdOQUwKIH07CkBAIC0x
MzksNiArMTQwLDIyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5p
dChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiB3ZWJSZXNvdXJjZUNsCiAgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgMSwKICAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwog
CisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAg
ICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAg
ICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3
YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTogPz8/CisgICAgICovCisgICAgd2Via2l0
X3dlYl9yZXNvdXJjZV9zaWduYWxzW0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJs
b2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291
cmNlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1Qg
fCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5V
TEwsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKKyAgICAgICAg
ICAgIEdfVFlQRV9OT05FLCAwKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlJlc291cmNl
OnVyaToKICAgICAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCBlMzk0N2I1
Li41ZmJjYzUzIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTc1LDYgKzE3
NSw3IEBAIGVudW0gewogICAgIEZSQU1FX0NSRUFURUQsCiAgICAgLy8gUmVzb3VyY2UgbG9hZGlu
ZwogICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAorICAgIFJFU09VUkNFX0xPQURJTkdf
RklOSVNIRUQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTI2MTYsNiArMjYxNywyNiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3Mq
IHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0Up
OwogCiAgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlz
aGVkCisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25h
bAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2Fz
IHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJj
ZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRh
dGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTogPz8/
CisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfTE9BRElOR19G
SU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWRpbmctZmluaXNoZWQiLAorICAg
ICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAg
ICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21h
cnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAor
ICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX1JFU09VUkNFKTsKKworICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZp
cnR1YWwgbWV0aG9kcwogICAgICAqLwogICAgIHdlYlZpZXdDbGFzcy0+Y3JlYXRlX3dlYl92aWV3
ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY3JlYXRlX3dlYl92aWV3OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJjN2U5N2Qu
LmYxNzBkNjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyMiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIERSVCBub3cgbGlzdGVucyB0bzoKKyAgICAgICAgKyBX
ZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCisgICAgICAgICsgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgICAgKyBXZWJLaXRXZWJS
ZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorCisgICAgICAgIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAoY3JlYXRlV2ViVmlldyk6CisKKzIwMTAtMTEtMTUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKICAgICAgICAgRFRSIG5vdyBsaXN0ZW5zIHRvOgogICAgICAgICArIFdlYktpdFdlYlZpZXc6
OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCiAgICAgICAgICsgV2ViS2l0V2ViRnJhbWU6OnJl
c291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBkZDI2YWQxLi5jNjBjOTQ3IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAg
LTEwNzAsNiArMTA3MCwxMyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZQogICAgIC8vIFRPRE86
IGFkZCAiaGFzIE1JTUUgdHlwZSIgd2hlbmV2ZXIgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoKQogfQogCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlKQor
eworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZpbmlzaExvYWRpbmdcbiIs
IGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYlJlc291cmNlLCB3ZWJWaWV3KSk7
Cit9CisKKwogc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogewogICAgIFdl
YktpdFdlYlZpZXcqIHZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygp
KTsKQEAgLTEwOTksNiArMTEwNiw3IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJW
aWV3KCkKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmZyYW1lLWNyZWF0ZWQiLCBmcmFt
ZUNyZWF0ZWRDYWxsYmFjaywgMCwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291
cmNlLXJlcXVlc3Qtc3RhcnRpbmciLCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjaywgMCwKICAgICAg
ICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgZGlk
UmVjZWl2ZVJlc3BvbnNlLCAwLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZCIsIGRpZEZpbmlzaExvYWRpbmcsIDAsCiAKICAgICAgICAgICAg
ICAgICAgICAgIE5VTEwpOwogCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73899</attachid>
            <date>2010-11-15 08:08:09 -0800</date>
            <delta_ts>2010-11-24 04:14:20 -0800</delta_ts>
            <desc>didReceiveContentLength</desc>
            <filename>0004-dispatchDidReceiveContentLength.patch</filename>
            <type>text/plain</type>
            <size>7925</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSA1NjE3NDY0ZTA4NjY5YTNkZjNmMGI3NTk5ZjAwY2E5YmQ1YWE1MDhhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFRodSwgMTEgTm92IDIwMTAgMjA6NDA6MTkgKzAxMDAKU3ViamVjdDogW1BBVENI
IDQvNV0gLSBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoCiAgICAgKCspIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkKEZyYW1lLCBSZXNvdXJjZSwg
TGVuZ3RoKQogICAgICgrKSBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgt
cmVjZWl2ZWQoUmVzb3VyY2UsIExlbmd0aCkKICAgICAoKykgV2ViS2l0V2ViUmVzb3VyY2U6Omxv
YWRpbmctZmluaXNoZWQoTGVuZ3RoKQoKLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysrKysrKysrKwogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA4ICsrKysr
Ky0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291
cmNlLmNwcCAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysrKysrCiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0ICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCA3YjgwZmQzLi4wY2Q4NjA4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0No
YW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMyw2ICszLDI4IEBACiAgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCiAgICAgICAgIEFkZGVkIG5ldyBzaWdu
YWxzOgorICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJl
Y2VpdmVkKEZyYW1lLCBSZXNvdXJjZSwgTGVuZ3RoKQorICAgICAgICArIFdlYktpdFdlYkZyYW1l
OjpyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZChSZXNvdXJjZSwgTGVuZ3RoKQorICAg
ICAgICArIFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkKExlbmd0aCkKKworICAg
ICAgICBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3Vy
Y2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0bWFyc2hhbC5saXN0OgorCisyMDEwLTExLTE1
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyBzaWduYWxzOgog
ICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKICAgICAg
ICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZAogICAgICAgICAr
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDUyMDM4MjEuLjI4
NTcyZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCkBAIC0xMDU1LDcgKzEwNTUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgS1VSTCYgdXJsKQogCiB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBp
ZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJSZXNv
dXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcs
IGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdl
YlJlc291cmNlLCAiY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLCBsZW5ndGhSZWNlaXZlZCk7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0
aC1yZWNlaXZlZCIsIHdlYlJlc291cmNlLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIs
IG1fZnJhbWUsIHdlYlJlc291cmNlLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExv
YWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHAKaW5kZXggMTgwMGI3NS4uNWZhMThmZCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcApAQCAtOTksNiArOTksNyBAQCBlbnVtIHsKICAgICBSRVNPVVJDRV9S
RVFVRVNUX1NUQVJUSU5HLAogICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAogICAgIFJF
U09VUkNFX0xPQURJTkdfRklOSVNIRUQsCisgICAgUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVD
RUlWRUQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTM3MSw2ICszNzIsMjYgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZy
YW1lQ2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UpOwogCiAgICAg
LyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2
ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdh
cyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0aGUgcmVzb3VyY2Ug
ZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhl
IGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTog
Pz8/CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX0NPTlRF
TlRfTEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtY29udGVudC1sZW5n
dGgtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyks
CisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAg
ICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9JTlQsCisgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAg
ICAgICAgIEdfVFlQRV9JTlQpOworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2Yg
dmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKGZyYW1lQ2xhc3MpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2VicmVzb3VyY2UuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVz
b3VyY2UuY3BwCmluZGV4IDk5OWJkMzIuLjI3NmJlYjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAgZW51bSB7CiAgICAgLy8gUmVzb3Vy
Y2UgbG9hZGluZwogICAgIFJFU1BPTlNFX1JFQ0VJVkVELAogICAgIExPQURJTkdfRklOSVNIRUQs
CisgICAgQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAg
LTE1Niw2ICsxNTcsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19p
bml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIHdlYlJlc291cmNlQ2wKICAgICAgICAgICAgIGdf
Y2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDAp
OwogCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVj
ZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3
YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0aGUgcmVzb3VyY2UgZGF0YSBsZW5n
dGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9y
IHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTogPz8/CisgICAg
ICovCisgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW0NPTlRFTlRfTEVOR1RIX1JFQ0VJ
VkVEXSA9IGdfc2lnbmFsX25ldygiY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAgICAgICAgICAoR1Np
Z25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVf
bWFyc2hhbF9WT0lEX19JTlQsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAg
ICAgIEdfVFlQRV9JTlQpOworCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViUmVzb3VyY2U6dXJp
OgogICAgICAqCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDVmYmNjNTMuLmI0
ZWJjZmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisr
KyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0xNzYsNiArMTc2LDcg
QEAgZW51bSB7CiAgICAgLy8gUmVzb3VyY2UgbG9hZGluZwogICAgIFJFU09VUkNFX1JFU1BPTlNF
X1JFQ0VJVkVELAogICAgIFJFU09VUkNFX0xPQURJTkdfRklOSVNIRUQsCisgICAgUkVTT1VSQ0Vf
Q09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTI2Mzcs
NiArMjYzOCwyOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJL
aXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSk7CiAKICAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNv
bnRlbnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2gg
cmVjZWl2ZWQgdGhlIHNpZ25hbAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFt
ZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhl
ICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2
ZWQ6IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1p
dHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAg
KgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFs
c1tSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291
cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9S
VU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
TlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpF
Q1RfSU5ULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRf
VFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisg
ICAgICAgICAgICBHX1RZUEVfSU5UKTsKKworICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25z
IG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwogICAgIHdlYlZpZXdDbGFzcy0+Y3JlYXRlX3dl
Yl92aWV3ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY3JlYXRlX3dlYl92aWV3OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgYi9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNo
YWwubGlzdAppbmRleCAwM2RhZjU0Li4yMGYzY2Q5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dl
YmtpdG1hcnNoYWwubGlzdAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdApAQCAt
MTQsOSArMTQsMTEgQEAgT0JKRUNUOk9CSkVDVAogT0JKRUNUOlNUUklORyxTVFJJTkcsUE9JTlRF
UgogT0JKRUNUOlZPSUQKIFZPSUQ6T0JKRUNULE9CSkVDVAorVk9JRDpPQkpFQ1QsT0JKRUNULElO
VAogVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVAogVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVCxP
QkpFQ1QKIFZPSUQ6T0JKRUNULFBPSU5URVIsUE9JTlRFUgorVk9JRDpPQkpFQ1QsSU5UCiBWT0lE
Ok9CSkVDVCxTVFJJTkcKIFZPSUQ6U1RSSU5HCiBWT0lEOlNUUklORyxTVFJJTkcKLS0gCjEuNy4x
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73900</attachid>
            <date>2010-11-15 08:08:43 -0800</date>
            <delta_ts>2010-11-24 04:14:20 -0800</delta_ts>
            <desc>didFailLoading</desc>
            <filename>0005-dispatchDidFailLoading.patch</filename>
            <type>text/plain</type>
            <size>12003</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSBmYjFhZDhiZDgxMzgxOTQ3NjU5YTQ3ZjM5NGUyODZhNTRiYzE4MGFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IEZyaSwgMTIgTm92IDIwMTAgMTM6NDE6NDAgKzAxMDAKU3ViamVjdDogW1BBVENI
IDUvNV0gLSBkaXNwYXRjaERpZEZhaWxMb2FkaW5nCiAgICAgKCspIFdlYktpdFdlYlZpZXc6OnJl
c291cmNlLWxvYWQtZmFpbGVkKEZyYW1lLCBSZXNvdXJjZSwgRXJyb3IpCiAgICAgKCspIFdlYktp
dFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZChSZXNvdXJjZSwgRXJyb3IpCiAgICAgKCsp
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZChFcnJvcikKCi0tLQogV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysrKysr
KysrKysrKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcCB8ICAgMTYgKysrKysrKysrKy0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJh
bWUuY3BwICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKysrKysKIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAxOSArKysrKysr
KysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0bWFyc2hh
bC5saXN0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXRUb29scy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKysrKysKIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgIHwgICAyMSAr
KysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDQg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCAwY2Q4NjA4Li4xNDkyZWJmIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMyw2ICszLDI5IEBA
CiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCiAgICAgICAgIEFkZGVkIG5l
dyBzaWduYWxzOgorICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmFpbGVk
KEZyYW1lLCBSZXNvdXJjZSwgRXJyb3IpCisgICAgICAgICsgV2ViS2l0V2ViRnJhbWU6OnJlc291
cmNlLWxvYWQtZmFpbGVkKFJlc291cmNlLCBFcnJvcikKKyAgICAgICAgKyBXZWJLaXRXZWJSZXNv
dXJjZTo6bG9hZC1mYWlsZWQoRXJyb3IpCisKKyAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBz
aWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2Vi
X3Jlc291cmNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJr
aXRtYXJzaGFsLmxpc3Q6CisKKzIwMTAtMTEtMTUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgbmV3IHNpZ25hbHM6CiAgICAgICAgICsgV2ViS2l0V2ViVmlldzo6cmVz
b3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQoRnJhbWUsIFJlc291cmNlLCBMZW5ndGgpCiAg
ICAgICAgICsgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVk
KFJlc291cmNlLCBMZW5ndGgpCiAgICAgICAgICsgV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWRpbmct
ZmluaXNoZWQoTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCAyODU3MmQwLi5mMzY3NTVkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMTA5
MCw3ICsxMDkwLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hM
b2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIKIAogICAgIHdlYmtpdF93ZWJf
cmVzb3VyY2VfaW5pdF93aXRoX2NvcmVfcmVzb3VyY2Uod2ViUmVzb3VyY2UsIGNvcmVSZXNvdXJj
ZS5nZXQoKSk7CiAKLSAgICAvLyBOb3RpZnkgbGlzdGVybmVycworICAgIC8vIE5vdGlmeSBsaXN0
ZW5lcnMKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkaW5nLWZp
bmlzaGVkIik7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1s
b2FkaW5nLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOwogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIG1fZnJhbWUsIHdlYlJlc291
cmNlKTsKQEAgLTExMDIsOSArMTEwMiwxNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiB7CiAg
ICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpEb2N1bWVudExvYWRlcio+KGxvYWRlciktPmRlY3JlYXNl
TG9hZENvdW50KGlkZW50aWZpZXIpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hv
dWxkIG5vdGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgcmVzb3VyY2UgZmFpbGVkCi0gICAg
Ly8gbG9hZGluZywgbWF5YmUgYSAnbG9hZC1lcnJvcicgc2lnbmFsIGluIHRoZSBXZWJLaXRXZWJS
ZXNvdXJjZSBvYmplY3QuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdjaGFy
PiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJS
ZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZp
ZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworICAgIEdPd25QdHI8R0Vycm9yPiB3ZWJFcnJv
cihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9tYWluKCku
dXRmOCgpLmRhdGEoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXJyb3IuZXJyb3JDb2RlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKSk7CisKKyAgICAvLyBOb3RpZnkgbGlzdGVuZXJzCisgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKHdlYlJlc291cmNlLCAibG9hZC1mYWlsZWQiLCB3ZWJFcnJvci5nZXQoKSk7CisgICAg
Z19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIHdl
YlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdl
YlZpZXcsICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCB3ZWJF
cnJvci5nZXQoKSk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9h
ZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggNWZhMThmZC4uYzZkMWE1MSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtMTAwLDYgKzEwMCw4IEBAIGVudW0g
ewogICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAogICAgIFJFU09VUkNFX0xPQURJTkdf
RklOSVNIRUQsCiAgICAgUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCisgICAgUkVT
T1VSQ0VfTE9BRF9GQUlMRUQsCisKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMzkyLDYgKzM5
NCwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2Vi
RnJhbWVDbGFzcyogZnJhbWVDbGFzcykKICAgICAgICAgICAgIEdfVFlQRV9JTlQpOwogCiAgICAg
LyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgKiBA
d2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBm
b3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMg
bG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQK
KyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkCisg
ICAgICoKKyAgICAgKiBTaW5jZTogPz8/CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9z
aWduYWxzW1JFU09VUkNFX0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9h
ZC1mYWlsZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisg
ICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FD
VElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAg
ICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9QT0lOVEVSLAorICAgICAgICAgICAgR19U
WVBFX05PTkUsIDIsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAg
ICAgICAgICBHX1RZUEVfUE9JTlRFUik7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9u
cyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENs
YXNzID0gR19PQkpFQ1RfQ0xBU1MoZnJhbWVDbGFzcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJyZXNvdXJjZS5jcHAKaW5kZXggMjc2YmViNy4uMGU2Y2M1MSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnJlc291cmNlLmNwcApAQCAtNTIsNiArNTIsNyBAQCBlbnVtIHsKICAgICBSRVNQ
T05TRV9SRUNFSVZFRCwKICAgICBMT0FESU5HX0ZJTklTSEVELAogICAgIENPTlRFTlRfTEVOR1RI
X1JFQ0VJVkVELAorICAgIExPQURfRkFJTEVELAogCiAgICAgTEFTVF9TSUdOQUwKIH07CkBAIC0x
NDIsNiArMTQzLDI0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5p
dChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiB3ZWJSZXNvdXJjZUNsCiAgICAgICAgICAgICBXRUJL
SVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAogICAgIC8qCisgICAgICogV2ViS2l0V2ViUmVz
b3VyY2U6OmxvYWQtZmFpbGVkCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJl
c291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAqIEB3ZWJFcnJvcjogdGhlICNHRXJyb3IgdGhh
dCB3YXMgdHJpZ2dlcmVkCisgICAgICoKKyAgICAgKiBJbnZva2VkIHdoZW4gYSByZXNvdXJjZSBm
YWlsZWQgdG8gbG9hZAorICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdl
YmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tMT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoImxv
YWQtZmFpbGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisg
ICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAg
R19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBHX1RZUEVfUE9JTlRFUik7CisKKyAgICAvKgog
ICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCiAgICAgICogQHdlYlJl
c291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIGJlaW5nIGxvYWRlZAogICAgICAqCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGI0ZWJjZmYuLmNmZTY3YjIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0xNzcsNiArMTc3LDcgQEAgZW51bSB7CiAgICAg
UkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCiAgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hF
RCwKICAgICBSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9M
T0FEX0ZBSUxFRCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMjY2MCw2ICsyNjYxLDI4IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFz
cyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgR19UWVBFX0lOVCk7CiAKICAgICAvKgorICAg
ICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmFpbGVkCisgICAgICogQHdlYlZpZXc6
IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAorICAgICAqIEB3ZWJGcmFtZTog
dGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAq
IEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAg
ICAgKiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAorICAgICAqCisg
ICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAgICAgKgorICAg
ICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tSRVNP
VVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWQtZmFpbGVkIiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAg
ICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisg
ICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtp
dF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1RfUE9JTlRFUiwKKyAgICAgICAgICAgIEdfVFlQ
RV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIp
OworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAg
ICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdG1h
cnNoYWwubGlzdCBiL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CmluZGV4IDIwZjNjZDku
Ljk2ZTg5NDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CisrKyBi
L1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CkBAIC0xNiw5ICsxNiwxMSBAQCBPQkpFQ1Q6
Vk9JRAogVk9JRDpPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxPQkpFQ1QsSU5UCiBWT0lEOk9C
SkVDVCxPQkpFQ1QsT0JKRUNUCitWT0lEOk9CSkVDVCxPQkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpF
Q1QsT0JKRUNULE9CSkVDVCxPQkpFQ1QKIFZPSUQ6T0JKRUNULFBPSU5URVIsUE9JTlRFUgogVk9J
RDpPQkpFQ1QsSU5UCitWT0lEOk9CSkVDVCxQT0lOVEVSCiBWT0lEOk9CSkVDVCxTVFJJTkcKIFZP
SUQ6U1RSSU5HCiBWT0lEOlNUUklORyxTVFJJTkcKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBmMTcwZDY2Li4zMDFhZDE0IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCkBAIC0yLDYgKzIsMjMgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KIAorICAgICAgICAtIGRpc3BhdGNoRGlkRmFpbExvYWRpbmcKKyAgICAgICAgICAgICgrKSBX
ZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkLWZhaWxlZChGcmFtZSwgUmVzb3VyY2UsIEVycm9y
KQorICAgICAgICAgICAgKCspIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZChS
ZXNvdXJjZSwgRXJyb3IpCisgICAgICAgICAgICAoKykgV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWQt
ZmFpbGVkKEVycm9yKQorCisgICAgICAgIEltcHJvdmUgRnJhbWVMb2FkZXIgc2lnbmFscy4gUmVz
b3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk1NDMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJl
ZS5jcHA6CisgICAgICAgIChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAg
ICAgIChkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcik6CisgICAgICAgIChjcmVhdGVXZWJWaWV3KToK
KworMjAxMC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBEUlQgbm93
IGxpc3RlbnMgdG86CiAgICAgICAgICsgV2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtbG9hZGluZy1m
aW5pc2hlZAogICAgICAgICArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlz
aGVkCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCBjNjBjOTQ3Li5hMDBkNjA5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwMDYsNiArMTAwNiwxOCBAQCBz
dGF0aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoU291cFVSSSogdXJp
KQogICAgIHJldHVybiBzb3VwX3VyaV90b19zdHJpbmcodXJpLCBmYWxzZSk7CiB9CiAKK3N0YXRp
YyBjaGFyKiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChHRXJyb3IqIGVycm9yLCBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgY29uc3QgZ2NoYXIqIGVycm9y
RG9tYWluID0gZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbik7CisKKyAgICBpZiAoIWdf
YXNjaWlfc3RybmNhc2VjbXAoZXJyb3JEb21haW4sICJ3ZWJraXQtbmV0d29yay1lcnJvci1xdWFy
ayIsIDI2KSkKKyAgICAgICAgZXJyb3JEb21haW4gPSAiTlNVUkxFcnJvckRvbWFpbiI7CisKKyAg
ICAvLyBUT0RPOiB0aGUgb3RoZXIgcG9ydHMgZ2V0IHRoZSBmYWlsaW5nVVJMIGZyb20gdGhlIFJl
c291cmNlRXJyb3IKKyAgICByZXR1cm4gZ19zdHJkdXBfcHJpbnRmKCI8TlNFcnJvciBkb21haW4g
JXMsIGNvZGUgJWQsIGZhaWxpbmcgVVJMIFwiJXNcIj4iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JEb21haW4sIGVycm9yLT5jb2RlLCB3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91
cmkod2ViUmVzb3VyY2UpKTsKK30KKwogc3RhdGljIGNoYXIqIGRlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEdPd25Q
dHI8Y2hhcj4gcmVxdWVzdFVSSVN0cmluZzsKQEAgLTEwNzYsNiArMTA4OCwxNCBAQCBzdGF0aWMg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZy
YW1lKiwgV2ViS2l0V2ViUgogICAgICAgICBwcmludGYoIiVzIC0gZGlkRmluaXNoTG9hZGluZ1xu
IiwgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQod2ViUmVzb3VyY2UsIHdlYlZpZXcp
KTsKIH0KIAorc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmdXaXRoRXJyb3IoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3Vy
Y2UsIEdFcnJvciogd2ViRXJyb3IpCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29u
dHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIEdPd25QdHI8
Y2hhcj53ZWJFcnJvclN0cmluZyhkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJF
cnJvciwgd2ViUmVzb3VyY2UpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZhaWxMb2FkaW5n
V2l0aEVycm9yOiAlc1xuIiwgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQod2ViUmVz
b3VyY2UsIHdlYlZpZXcpLAorICAgICAgICAgICAgICAgd2ViRXJyb3JTdHJpbmcuZ2V0KCkpOwor
ICAgIH0KK30KIAogc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogewpAQCAt
MTEwNyw2ICsxMTI3LDcgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQog
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIs
IHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQiLCBkaWRSZWNlaXZlUmVzcG9uc2UsIDAsCiAg
ICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwg
ZGlkRmluaXNoTG9hZGluZywgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291
cmNlLWxvYWQtZmFpbGVkIiwgZGlkRmFpbExvYWRpbmdXaXRoRXJyb3IsIDAsCiAKICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOwogCi0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74739</attachid>
            <date>2010-11-24 04:10:58 -0800</date>
            <delta_ts>2011-05-09 03:43:46 -0700</delta_ts>
            <desc>dispatchWillSendRequest</desc>
            <filename>0001-dispatchWillSendRequest.patch</filename>
            <type>text/plain</type>
            <size>16639</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSA2ZTk1Y2RjZWM1MmJmZGFiMDVkYWNhNjc2OTEzMzZlOGI2N2Q5NWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFdlZCwgMjcgT2N0IDIwMTAgMTg6MDI6MTcgKzAyMDAKU3ViamVjdDogW1BBVENI
IDEvNV0gZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QKICsgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNl
LXJlcXVlc3Qtc3RhcnRpbmcKCkFkZGVkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5f
dXJpIHByaXZhdGUgQVBJCi0tLQogV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIHwgICAgOCArLS0KIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCAgICAgICAgIHwgICAzOCArKysrKysrKystCiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwICAgICAgICAgICAgICAgfCAgIDQ0ICsr
KysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDIgKy0KIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxNCArKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVt
cFJlbmRlclRyZWUuY3BwICB8ICAgNzYgKysrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hh
bmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dl
YktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMzMwNWJjYi4u
MDdlNzg1NSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBT
ZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNl
IGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ5NTQzCisKKyAgICAgICAgSW1wbGVtZW50ZWQgV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJl
cXVlc3Qtc3RhcnRpbmcKKworICAgICAgICBBZGRlZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dl
dF9tYWluX3VyaSBwcml2YXRlIEFQSQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3Jr
cmVxdWVzdC5jcHA6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKToK
KyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAg
KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1
ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdCk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1
ZXN0X2dldF9tYWluX3VyaSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9m
cmFtZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxpc3Q6CisKIDIwMTAt
MTEtMjEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBmZGVmOWRjLi42MzkwYTRk
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcApAQCAtMzE0LDE0ICszMTQsOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLAogICAg
IFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVz
b3VyY2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7CiAgICAgUGxhdGZvcm1SZWZQ
dHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+IG5ldHdvcmtSZXF1ZXN0KGFkb3B0UGxhdGZvcm1SZWYo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVlc3QocmVxdWVzdCkpKTsK
IAotICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkgewotICAgICAgICAvLyBUaGlz
IGlzIGEgcmVkaXJlY3QsIHNvIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBXZWJSZXNvdXJjZSdzIGtu
b3dsZWRnZQotICAgICAgICAvLyBvZiB0aGUgVVJJLgotICAgICAgICBnX2ZyZWUod2ViUmVzb3Vy
Y2UtPnByaXYtPnVyaSk7Ci0gICAgICAgIHdlYlJlc291cmNlLT5wcml2LT51cmkgPSBnX3N0cmR1
cChyZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLSAgICAKICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLXJlcXVlc3Qtc3RhcnRp
bmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1JlcXVlc3QuZ2V0KCksIG5ldHdvcmtS
ZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNv
dXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0LmdldCgp
LCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogCiAgICAgLy8gRmVlZCBhbnkgY2hhbmdlcyBiYWNr
IGludG8gdGhlIFJlc291cmNlUmVxdWVzdCBvYmplY3QuCiAgICAgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKG5ldHdvcmtSZXF1ZXN0Lmdl
dCgpKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcAppbmRleCA2
MTgwZWZhLi42MTI2OWU4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVl
c3QuY3BwCkBAIC00Niw2ICs0Niw3IEBAIEdfREVGSU5FX1RZUEUoV2ViS2l0TmV0d29ya1JlcXVl
c3QsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpOwogc3RydWN0IF9XZWJL
aXROZXR3b3JrUmVxdWVzdFByaXZhdGUgewogICAgIGdjaGFyKiB1cmk7CiAgICAgU291cE1lc3Nh
Z2UqIG1lc3NhZ2U7CisgICAgZ2NoYXIqIG1haW5VUkk7CiB9OwogCiAjZGVmaW5lIFdFQktJVF9O
RVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKChvYmopLCBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsIFdlYktpdE5ldHdvcmtSZXF1
ZXN0UHJpdmF0ZSkpCkBAIC01NSw2ICs1Niw3IEBAIGVudW0gewogCiAgICAgUFJPUF9VUkksCiAg
ICAgUFJPUF9NRVNTQUdFLAorICAgIFBST1BfTUFJTl9VUkksCiB9OwogCiBzdGF0aWMgdm9pZCB3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQpAQCAtNzYsNiAr
NzgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmpl
Y3QqIG9iamVjdCkKICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OwogCiAgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgZ19mcmVlKHByaXYtPm1h
aW5VUkkpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X25ldHdvcmtfcmVxdWVzdF9wYXJl
bnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQpAQCAtODMsNiArODYsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHN0
YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJRCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMp
CiB7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19S
RVFVRVNUKG9iamVjdCk7CisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKIAogICAgIHN3aXRjaChwcm9wZXJ0eUlEKSB7CiAgICAgY2FzZSBQUk9Q
X1VSSToKQEAgLTkxLDYgKzk1LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVz
dF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUkKICAgICBjYXNl
IFBST1BfTUVTU0FHRToKICAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX01BSU5fVVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHByaXYtPm1haW5VUkkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBwc3Bl
Yyk7CiAgICAgfQpAQCAtMTA4LDYgKzExNSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3Rfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJCiAg
ICAgY2FzZSBQUk9QX01FU1NBR0U6CiAgICAgICAgIHByaXYtPm1lc3NhZ2UgPSBTT1VQX01FU1NB
R0UoZ192YWx1ZV9kdXBfb2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UFJPUF9NQUlOX1VSSToKKyAgICAgICAgcHJpdi0+bWFpblVSSSA9IGdfdmFsdWVfZHVwX3N0cmlu
Zyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNU
X1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKICAg
ICB9CkBAIC0xNTIsNiArMTYyLDIwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfY2xhc3NfaW5pdChXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzKiByZXF1ZXN0CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfVFlQ
RV9NRVNTQUdFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9D
T05TVFJVQ1RfT05MWSkpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0
Om1haW4tdXJpOgorICAgICAqCisgICAgICogVGhlICNSZXNvdXJjZVJlcXVlc3QgdGhhdCBiYWNr
cyB0aGUgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX01BSU5fVVJJ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmlu
ZygibWFpbi11cmkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJNYWluVVJJIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBSZXNvdXJjZVJlcXVlc3QgbWFpbiBV
UkkuIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFN
X0NPTlNUUlVDVF9PTkxZKSkpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVl
c3RDbGFzcywgc2l6ZW9mKFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpOwogfQogCkBAIC0x
NjYsOSArMTkwLDkgQEAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfbmV3X3dpdGhfY29yZV9yZXF1ZXN0KGNvbnN0IFdlYkNvcmUKIHsKICAgICBQbGF0Zm9ybVJl
ZlB0cjxTb3VwTWVzc2FnZT4gc291cE1lc3NhZ2UoYWRvcHRQbGF0Zm9ybVJlZihyZXNvdXJjZVJl
cXVlc3QudG9Tb3VwTWVzc2FnZSgpKSk7CiAgICAgaWYgKHNvdXBNZXNzYWdlKQotICAgICAgICBy
ZXR1cm4gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVU
V09SS19SRVFVRVNULCAibWVzc2FnZSIsIHNvdXBNZXNzYWdlLmdldCgpLCBOVUxMKSk7CisgICAg
ICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgc291cE1lc3NhZ2UuZ2V0KCksICJtYWluLXVy
aSIsIHJlc291cmNlUmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIE5VTEwpKTsKIAotICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJ1cmkiLCByZXNvdXJjZVJl
cXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCkpOworICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JF
UVVFU1QsICJ1cmkiLCByZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgIm1haW4tdXJpIiwgcmVzb3VyY2VSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCkpOwogfQogCiAvKioKQEAgLTI2MCwzICsyODQsMTMg
QEAgU291cE1lc3NhZ2UqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0
TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCiAKICAgICByZXR1cm4gcHJpdi0+bWVzc2FnZTsKIH0K
KworY29uc3QgZ2NoYXIqCit3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tYWluX3VyaShXZWJL
aXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpLCBOVUxMKTsKKworICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICByZXR1cm4g
cHJpdi0+bWFpblVSSTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCA3Mzg1Njc3
Li5jN2I4MjhjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgK
KysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0zMzAsNiArMzMwLDkg
QEAgZXh0ZXJuICJDIiB7CiAgICAgV0VCS0lUX0FQSSBTb3VwTWVzc2FnZSoKICAgICB3ZWJraXRf
bmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0
KTsKIAorICAgIGNvbnN0IGdjaGFyKgorICAgIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21h
aW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKKwogICAgIC8vIEZJWE1FOiBt
b3ZlIHRoaXMgZnVuY3Rpb25hbGl0eSBpbnRvIGEgJ1dlYktpdFdlYkRhdGFTb3VyY2UnIG9uY2Ug
aW1wbGVtZW50ZWQKICAgICBXRUJLSVRfQVBJIGdjaGFyKgogICAgIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4IGZjYjUxOTcuLjVmMzFmNTMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKIAogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgorI2luY2x1ZGUgIndlYmtpdG5l
dHdvcmtyZXF1ZXN0LmgiCisjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5j
bHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5j
bHVkZSAid2Via2l0bWFyc2hhbC5oIgpAQCAtOTQsNiArOTYsOCBAQCBlbnVtIHsKICAgICBUSVRM
RV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKICAgICBTQ1JPTExCQVJTX1BPTElD
WV9DSEFOR0VELAorICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscworICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTI5MSw2ICsyOTUs
NDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZy
YW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFO
X19WT0lELAogICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDApOwogCisKKyAgICAvKioKKyAg
ICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZzoKKyAgICAgKiBA
d2ViX2ZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHdob3NlIGxvYWQgZGlzcGF0Y2hlZCB0aGlz
IHJlcXVlc3QKKyAgICAgKiBAd2ViX3Jlc291cmNlOiBhbiBlbXB0eSAjV2ViS2l0V2ViUmVzb3Vy
Y2Ugb2JqZWN0CisgICAgICogQHJlcXVlc3Q6IHRoZSAjV2ViS2l0TmV0d29ya1JlcXVlc3QgdGhh
dCB3aWxsIGJlIGRpc3BhdGNoZWQKKyAgICAgKiBAcmVzcG9uc2U6IHRoZSAjV2ViS2l0TmV0d29y
a1Jlc3BvbnNlIHJlcHJlc2VudGluZyB0aGUgcmVkaXJlY3QKKyAgICAgKiByZXNwb25zZSwgaWYg
YW55CisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYSByZXF1ZXN0IGlzIGFib3V0IHRvIGJl
IHNlbnQuIFlvdSBjYW4gbW9kaWZ5IHRoZQorICAgICAqIHJlcXVlc3Qgd2hpbGUgaGFuZGxpbmcg
dGhpcyBzaWduYWwuIFlvdSBjYW4gc2V0IHRoZSBVUkkgaW4gdGhlCisgICAgICogI1dlYktpdE5l
dHdvcmtSZXF1ZXN0IG9iamVjdCBpdHNlbGYsIGFuZCBhZGQvcmVtb3ZlL3JlcGxhY2UKKyAgICAg
KiBoZWFkZXJzIHVzaW5nIHRoZSAjU291cE1lc3NhZ2Ugb2JqZWN0IGl0IGNhcnJpZXMsIGlmIGl0
IGlzCisgICAgICogcHJlc2VudC4gU2VlIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3Nh
Z2UoKS4gU2V0dGluZyB0aGUKKyAgICAgKiByZXF1ZXN0IFVSSSB0byAiYWJvdXQ6YmxhbmsiIHdp
bGwgZWZmZWN0aXZlbHkgY2F1c2UgdGhlIHJlcXVlc3QKKyAgICAgKiB0byBsb2FkIG5vdGhpbmcs
IGFuZCBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRoZSBsb2FkaW5nIG9mCisgICAgICogc3BlY2lm
aWMgcmVzb3VyY2VzLgorICAgICAqCisgICAgICogTm90aWNlIHRoYXQgaW5mb3JtYXRpb24gYWJv
dXQgYW4gZXZlbnR1YWwgcmVkaXJlY3QgaXMgYXZhaWxhYmxlCisgICAgICogaW4gQHJlc3BvbnNl
J3MgI1NvdXBNZXNzYWdlLCBub3QgaW4gdGhlICNTb3VwTWVzc2FnZSBjYXJyaWVkIGJ5CisgICAg
ICogdGhlIEByZXF1ZXN0LiBJZiBAcmVzcG9uc2UgaXMgJU5VTEwsIHRoZW4gdGhpcyBpcyBub3Qg
YQorICAgICAqIHJlZGlyZWN0ZWQgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIFRoZSAjV2ViS2l0
V2ViUmVzb3VyY2Ugb2JqZWN0IHdpbGwgYmUgdGhlIHNhbWUgdGhyb3VnaG91dCBhbGwKKyAgICAg
KiB0aGUgbGlmZXRpbWUgb2YgdGhlIHJlc291cmNlLCBidXQgdGhlIGNvbnRlbnRzIG1heSBjaGFu
Z2UgZnJvbQorICAgICAqIGluYmV0d2VlbiBzaWduYWwgZW1pc3Npb25zLgorICAgICAqCisgICAg
ICogU2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNP
VVJDRV9SRVFVRVNUX1NUQVJUSU5HXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtcmVxdWVzdC1z
dGFydGluZyIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAg
ICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAg
ICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwK
KyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwKKyAgICAgICAgICAgIFdF
QktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRh
dGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L3dlYmtpdG1hcnNoYWwubGlzdCBiL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CmluZGV4
IDAyNmE4YWYuLjAzZGFmNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5s
aXN0CisrKyBiL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CkBAIC0xNCw5ICsxNCw5IEBA
IE9CSkVDVDpPQkpFQ1QKIE9CSkVDVDpTVFJJTkcsU1RSSU5HLFBPSU5URVIKIE9CSkVDVDpWT0lE
CiBWT0lEOk9CSkVDVCxPQkpFQ1QKK1ZPSUQ6T0JKRUNULE9CSkVDVCxPQkpFQ1QKIFZPSUQ6T0JK
RUNULE9CSkVDVCxPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIKIFZP
SUQ6T0JKRUNULFNUUklORwogVk9JRDpTVFJJTkcKIFZPSUQ6U1RSSU5HLFNUUklORwotCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggNGEwMTZjMS4uNjNiZGZhYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTE1ICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERSVCBsaXN0ZW5zIHRvIFdlYktpdFdl
YkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nCisKKyAgICAgICAgSW1wcm92ZSBGcmFt
ZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGRlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KToKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAg
ICAgKGRpZEZpbmlzaExvYWRpbmcpOgorCiAyMDEwLTExLTIyICBKb8OjbyBQYXVsbyBSZWNoaSBW
aXRhICA8anBydml0YUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGJjYjVkNmIuLjliOTQyOTUgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAt
NzAsNiArNzAsOCBAQCBleHRlcm4gdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9w
bHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZpZXcqIHZpZXcsCiBleHRlcm4gZ2NoYXIqIHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUp
OwogZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGVhcl9tYWluX2ZyYW1lX25hbWUoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKTsKIGV4dGVybiB2b2lkIHdlYmtpdF9yZXNldF9vcmlnaW5fYWNj
ZXNzX3doaXRlX2xpc3RzKCk7CitleHRlcm4gV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJf
dmlld19nZXRfbWFpbl9yZXNvdXJjZShXZWJLaXRXZWJWaWV3Kik7CitleHRlcm4gY29uc3QgZ2No
YXIqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1
ZXN0Kik7CiB9CiAKIHZvbGF0aWxlIGJvb2wgZG9uZTsKQEAgLTk5Myw2ICs5OTUsNzkgQEAgc3Rh
dGljIHZvaWQgZnJhbWVDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
S2l0V2ViRnJhbWUqIHdlYkZyYW0KICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYkZyYW1lLCAibm90
aWZ5Ojpsb2FkLXN0YXR1cyIsIEdfQ0FMTEJBQ0sod2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQp
LCBOVUxMKTsKIH0KIAorc3RhdGljIGNoYXIqIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25z
dCBjaGFyKiB1cmlTdHJpbmcpCit7CisgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4KHVyaVN0cmlu
ZywgImZpbGU6Ly8iKSkKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVwKHVyaVN0cmluZyk7CisKKyAg
ICByZXR1cm4gZ19wYXRoX2dldF9iYXNlbmFtZSAodXJpU3RyaW5nKTsKK30KKworc3RhdGljIGNo
YXIqIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFNvdXBVUkkqIHVyaSkKK3sKKyAg
ICBpZiAoIXVyaSkKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVwKCIiKTsKKworICAgIEdPd25QdHI8
Y2hhcj4gdXJpU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIGZhbHNlKSk7CisgICAgcmV0
dXJuIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmlTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0
aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0V2ViUmVzb3Vy
Y2UqIHdlYlJlc291cmNlLCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGlmICh3ZWJS
ZXNvdXJjZSA9PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fcmVzb3VyY2Uod2ViVmlldykpCisg
ICAgICAgIHJldHVybiBnX3N0cmR1cCgiPHVua25vd24+Iik7CisKKyAgICByZXR1cm4gdXJsU3Vp
dGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJj
ZSkpOworfQorCitzdGF0aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQo
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgR093blB0cjxjaGFyPiByZXF1
ZXN0VVJJU3RyaW5nOworICAgIEdPd25QdHI8Y2hhcj4gbWFpbkRvY3VtZW50VVJJU3RyaW5nOwor
ICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0
X21lc3NhZ2UocmVxdWVzdCk7CisKKyAgICBpZiAoc291cE1lc3NhZ2UpIHsKKyAgICAgICAgU291
cFVSSSogcmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKTsKKyAg
ICAgICAgU291cFVSSSogbWFpbkRvY3VtZW50VVJJID0gc291cF9tZXNzYWdlX2dldF9maXJzdF9w
YXJ0eShzb3VwTWVzc2FnZSk7CisgICAgICAgIHJlcXVlc3RVUklTdHJpbmcuc2V0KGRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3RVUkkpKTsKKyAgICAgICAgbWFpbkRvY3Vt
ZW50VVJJU3RyaW5nLnNldChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChtYWluRG9j
dW1lbnRVUkkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXF1ZXN0VVJJU3RyaW5nLnNldCh1
cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKHJl
cXVlc3QpKSk7CisgICAgICAgIG1haW5Eb2N1bWVudFVSSVN0cmluZy5zZXQodXJsU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKHJlcXVlc3Qp
KSk7CisgICAgfQorCisgICAgcmV0dXJuIGdfc3RyZHVwX3ByaW50ZigiPE5TVVJMUmVxdWVzdCBV
UkwgJXMsIG1haW4gZG9jdW1lbnQgVVJMICVzLCBodHRwIG1ldGhvZCAlcz4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdFVSSVN0cmluZy5nZXQoKSwgbWFpbkRvY3VtZW50VVJJ
U3RyaW5nLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cE1lc3NhZ2UgPyBz
b3VwTWVzc2FnZS0+bWV0aG9kIDogIihub25lKSIpOworfQorCitzdGF0aWMgY2hhciogZGVzY3Jp
cHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25z
ZSkKK3sKKyAgICBpZiAoIXJlc3BvbnNlKQorICAgICAgICByZXR1cm4gZ19zdHJkdXAoIihudWxs
KSIpOworCisgICAgaW50IHN0YXR1c0NvZGUgPSAwOworICAgIEdPd25QdHI8Y2hhcj4gcmVzcG9u
c2VVUklTdHJpbmcodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3Jlc3Bv
bnNlX2dldF91cmkocmVzcG9uc2UpKSk7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0g
d2Via2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0X21lc3NhZ2UocmVzcG9uc2UpOworICAgIGlmIChz
b3VwTWVzc2FnZSkKKyAgICAgICAgc3RhdHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5zdGF0dXNfY29k
ZTsKKworICAgIHJldHVybiBnX3N0cmR1cF9wcmludGYoIjxOU1VSTFJlc3BvbnNlICVzLCBodHRw
IHN0YXR1cyBjb2RlICVkPiIsIHJlc3BvbnNlVVJJU3RyaW5nLmdldCgpLCBzdGF0dXNDb2RlKTsK
K30KKworc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdl
YktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3Bv
bnNlKQoreworICAgIGlmIChkb25lIHx8ICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNv
dXJjZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR093blB0cjxjaGFy
PiByZXF1ZXN0RGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVx
dWVzdCkpOworICAgIEdPd25QdHI8Y2hhcj4gcmVzcG9uc2VEZXNjcmlwdGlvbihkZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkpOworCisgICAgcHJpbnRmKCIlcyAtIHdp
bGxTZW5kUmVxdWVzdCAlcyByZWRpcmVjdFJlc3BvbnNlICVzXG4iLAorICAgICAgICAgICBkZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNvdXJjZSwgd2ViVmlldyksIHJlcXVlc3RE
ZXNjcmlwdGlvbi5nZXQoKSwKKyAgICAgICAgICAgcmVzcG9uc2VEZXNjcmlwdGlvbi5nZXQoKSk7
Cit9CisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICBXZWJL
aXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7
CkBAIC0xMDIwLDYgKzEwOTUsNyBAQCBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmll
dygpCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpkcmFnLWVuZCIsIGRyYWdFbmRDYWxs
YmFjaywgMCwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmRyYWctZmFpbGVkIiwgZHJh
Z0ZhaWxlZENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZnJhbWUt
Y3JlYXRlZCIsIGZyYW1lQ3JlYXRlZENhbGxiYWNrLCAwLAorICAgICAgICAgICAgICAgICAgICAg
InNpZ25hbDo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdpbGxTZW5kUmVxdWVzdENhbGxi
YWNrLCAwLAogCiAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKIAotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74741</attachid>
            <date>2010-11-24 04:11:23 -0800</date>
            <delta_ts>2011-05-09 03:43:46 -0700</delta_ts>
            <desc>didReceiveResponse</desc>
            <filename>0002-didReceiveResponse.patch</filename>
            <type>text/plain</type>
            <size>11255</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSA3NTU2YzU2MDgwYjFiMzgxZmNkOWUwMWVjODRjNjFlMzM1MTUyMTJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFRodSwgMjggT2N0IDIwMTAgMTk6MjY6NTYgKzAyMDAKU3ViamVjdDogW1BBVENI
IDIvNV0gZGlkUmVjZWl2ZVJlc3BvbnNlCiArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLXJlc3Bv
bnNlLXJlY2VpdmVkCiArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZl
ZAogKyBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9uc2UtcmVjZWl2ZWQKCi0tLQogV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysr
KysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
fCAgIDEyICsrKysrKy0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAg
ICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAzNSArKysrKysrKysrKysrKysrKy0tCiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAgMjQgKysr
KysrKysrKysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE2ICsrKysrKysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcCAgfCAgIDEyICsrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTM3IGlu
c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAwN2U3ODU1Li5jODg4NmVkIDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDI4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2Fk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0
MworCisgICAgICAgIEFkZGVkIG5ldyBzaWduYWxzCisgICAgICAgICsgV2ViS2l0V2ViVmlldzo6
cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVz
b3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgKyBXZWJLaXRXZWJSZXNvdXJjZTo6cmVz
cG9uc2UtcmVjZWl2ZWQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9m
aW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19jbGFzc19pbml0KToKKworMjAxMC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwog
ICAgICAgICBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAK
aW5kZXggNjM5MGE0ZC4uODhlYWIyZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM3MSwxMyArMzcxLDIzIEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhp
czsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogewogICAgIC8vIFVwZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAt
IHNvbWUgYXJlIG9ubHkgc2V0CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KICAg
ICBsb2FkZXItPnJlcXVlc3QoKS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBNZXNz
YWdlRmxhZ3MoKSk7CiAKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRy
PGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJL
aXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNl
KHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworICAgIFBsYXRmb3JtUmVmUHRyPFdl
YktpdE5ldHdvcmtSZXNwb25zZT4gbmV0d29ya1Jlc3BvbnNlOworICAgIG5ldHdvcmtSZXNwb25z
ZSA9IGFkb3B0UGxhdGZvcm1SZWYod2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3X3dpdGhfY29y
ZV9yZXNwb25zZShyZXNwb25zZSkpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJl
c291cmNlLCAicmVzcG9uc2UtcmVjZWl2ZWQiLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOworICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2
ZWQiLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKKyAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgbV9mcmFt
ZSwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CiB9CiAKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoRnJhbWVQb2xpY3lG
dW5jdGlvbiBwb2xpY3lGdW5jdGlvbiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAKaW5kZXggNWYzMWY1My4uYmY1ZTY5YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcApAQCAtOTgsNiArOTgsNyBAQCBlbnVtIHsKICAgICBTQ1JPTExCQVJTX1BPTElDWV9D
SEFOR0VELAogICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscwogICAgIFJFU09VUkNFX1JF
UVVFU1RfU1RBUlRJTkcsCisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCiAgICAgTEFT
VF9TSUdOQUwKIH07CiAKQEAgLTMzNiw2ICszMzcsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9mcmFtZV9jbGFzc19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAogICAgIC8qCisgICAgICog
V2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICogQHdlYkZy
YW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCisg
ICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIGJlaW5nIGxvYWRlZAor
ICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2UgdGhhdCB3YXMgcmVj
ZWl2ZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgZmlyc3QgYnl0ZSBvZiBkYXRh
IGFycml2ZXMKKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3ZWJraXRf
d2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxf
bmV3KCJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09C
SkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05T
RSk7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMK
ICAgICAgKi8KICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
ZnJhbWVDbGFzcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNv
dXJjZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKaW5kZXgg
ZmIwYWNmYy4uYjE2YjZjMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
cmVzb3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNw
cApAQCAtMTksOCArMTksOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpbmNsdWRlICJ3
ZWJraXR3ZWJyZXNvdXJjZS5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgog
I2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5o
IgogCiAjaW5jbHVkZSAiQXJjaGl2ZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAt
NDcsMTQgKzQ4LDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAogZW51bSB7Ci0gICAgUFJPUF8wLAorICAgIC8vIFJlc291cmNlIGxvYWRpbmcK
KyAgICBSRVNQT05TRV9SRUNFSVZFRCwKIAorICAgIExBU1RfU0lHTkFMCit9OworCitlbnVtIHsK
KyAgICBQUk9QXzAsCiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9NSU1FX1RZUEUsCiAgICAgUFJP
UF9FTkNPRElORywKICAgICBQUk9QX0ZSQU1FX05BTUUKIH07CiAKK3N0YXRpYyBndWludCB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBHX0RFRklO
RV9UWVBFKFdlYktpdFdlYlJlc291cmNlLCB3ZWJraXRfd2ViX3Jlc291cmNlLCBHX1RZUEVfT0JK
RUNUKTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBw
c3BlYyk7CkBAIC0xMDMsMTUgKzExMiwzMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291
cmNlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRf
d2ViX3Jlc291cmNlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKLXN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNs
YXNzKiBrbGFzcykKK3N0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChX
ZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiB3ZWJSZXNvdXJjZUNsYXNzKQogewotICAgIEdPYmplY3RD
bGFzcyogZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHT2JqZWN0
Q2xhc3MqIGdvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKTsK
IAogICAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Rpc3Bv
c2U7CiAgICAgZ29iamVjdF9jbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Zp
bmFsaXplOwogICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVz
b3VyY2VfZ2V0X3Byb3BlcnR5OwogICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdl
YmtpdF93ZWJfcmVzb3VyY2Vfc2V0X3Byb3BlcnR5OwogCisgICAgLyoKKyAgICAgKiBXZWJLaXRX
ZWJSZXNvdXJjZTo6cmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAj
V2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dl
YktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1p
dHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICog
U2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tSRVNQ
T05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc3BvbnNlLXJlY2VpdmVkIiwKKyAgICAg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBnX2NjbG9z
dXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisg
ICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKKwogICAgIC8qKgogICAg
ICAqIFdlYktpdFdlYlJlc291cmNlOnVyaToKICAgICAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcAppbmRleCAwZGMxOWYzLi45NzllODgzIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcApAQCAtMTczLDYgKzE3Myw4IEBAIGVudW0gewogICAgIEdFT0xPQ0FUSU9OX1BPTElD
WV9ERUNJU0lPTl9DQU5DRUxMRUQsCiAgICAgT05MT0FEX0VWRU5ULAogICAgIEZSQU1FX0NSRUFU
RUQsCisgICAgLy8gUmVzb3VyY2UgbG9hZGluZworICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJ
VkVELAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0yNjA0LDYgKzI2MDYsMjggQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJW
aWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwogCiAgICAgLyoK
KyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAq
IEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBA
d2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBm
b3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9h
ZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdh
cyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9m
IGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdl
YmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdfc2ln
bmFsX25ldygicmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JK
RUNUX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAg
ICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9S
RVNPVVJDRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOworCisg
ICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICov
CiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVh
bF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNjNiZGZhYy4uZTRmZjU4MiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMiw2
ICsyLDIyIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAg
ICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAg
IERUUiBub3cgbGlzdGVucyB0bzoKKyAgICAgICAgKyBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1y
ZXNwb25zZS1yZWNlaXZlZAorICAgICAgICArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXNw
b25zZS1yZWNlaXZlZAorICAgICAgICArIFdlYktpdFdlYlJlc291cmNlOjpyZXNwb25zZS1yZWNl
aXZlZAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZVdlYlZp
ZXcpOgorCisyMDEwLTExLTE1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIERS
VCBsaXN0ZW5zIHRvIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nCiAK
ICAgICAgICAgSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCA5Yjk0Mjk1Li5hOTEzMDQ5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwNjgsNiArMTA2OCwxNyBAQCBzdGF0aWMg
dm9pZCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRXZWJGcmFtZSosIFdlYgogICAgICAgICAgICByZXNwb25zZURlc2NyaXB0aW9uLmdldCgpKTsK
IH0KIAorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlLCBXZWJL
aXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0
VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBH
T3duUHRyPGNoYXI+IHJlc3BvbnNlRGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQocmVzcG9uc2UpKTsKKworICAgICAgICBwcmludGYoIiVzIC0gZGlkUmVjZWl2ZVJl
c3BvbnNlICVzXG4iLCBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJSZXNvdXJj
ZSwgd2ViVmlldyksIHJlc3BvbnNlRGVzY3JpcHRpb24uZ2V0KCkpOworICAgIH0KKworICAgIC8v
IFRPRE86IGFkZCAiaGFzIE1JTUUgdHlwZSIgd2hlbmV2ZXIgZHVtcFJlc291cmNlUmVzcG9uc2VN
SU1FVHlwZXMoKQorfQorCiBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiB7
CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3Zp
ZXdfbmV3KCkpOwpAQCAtMTA5Niw2ICsxMTA3LDcgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNy
ZWF0ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZHJhZy1mYWlsZWQi
LCBkcmFnRmFpbGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpm
cmFtZS1jcmVhdGVkIiwgZnJhbWVDcmVhdGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAg
ICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2lsbFNlbmRSZXF1ZXN0
Q2FsbGJhY2ssIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXNw
b25zZS1yZWNlaXZlZCIsIGRpZFJlY2VpdmVSZXNwb25zZSwgMCwKIAogICAgICAgICAgICAgICAg
ICAgICAgTlVMTCk7CiAKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74742</attachid>
            <date>2010-11-24 04:12:56 -0800</date>
            <delta_ts>2011-05-09 03:43:46 -0700</delta_ts>
            <desc>didFinishLoading</desc>
            <filename>0003-didFinishLoading.patch</filename>
            <type>text/plain</type>
            <size>8977</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSAyZmNkYmJmNzQyY2FlNWIzOGU3NDlhZDQzM2E4ODg1NWQxMjk4ZDc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFdlZCwgMTAgTm92IDIwMTAgMTg6NTM6MDIgKzAxMDAKU3ViamVjdDogW1BBVENI
IDMvNV0gZGlkRmluaXNoTG9hZGluZwogKyBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkaW5n
LWZpbmlzaGVkCiArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCiAr
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCgotLS0KIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysr
KysrKysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAgfCAgICA5ICsrKystLS0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAg
ICAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKysrKysr
CiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAg
MjEgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKysrKysrCiBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwICB8ICAgIDggKysrKysrKwogNyBm
aWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGM4
ODg2ZWQuLmU1MzFmZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMjcgQEAKICAgICAgICAgW0dUS10gSW1wcm92
ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0MwogCisgICAgICAgIEFkZGVkIG5l
dyBzaWduYWxzOgorICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWRpbmctZmlu
aXNoZWQKKyAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hl
ZAorICAgICAgICArIFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6
CisgICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19p
bml0KToKKworMjAxMC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKICAgICAg
ICAgQWRkZWQgbmV3IHNpZ25hbHMKICAgICAgICAgKyBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1y
ZXNwb25zZS1yZWNlaXZlZAogICAgICAgICArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXNw
b25zZS1yZWNlaXZlZApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAppbmRleCA4OGVhYjJlLi43NDIzYTAzIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMTA3OSwx
MCArMTA3OSwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExv
YWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlcgogCiAgICAgd2Via2l0X3dlYl9y
ZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNvdXJjZSh3ZWJSZXNvdXJjZSwgY29yZVJlc291cmNl
LmdldCgpKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3RpZnkgdGhl
IGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJlc291cmNlCi0gICAgLy8gZmluaXNoZWQgbG9hZGluZywg
bWF5YmUgdXNpbmcgYSBsb2FkLXN0YXR1cyBwcm9wZXJ0eSBpbiB0aGUKLSAgICAvLyBXZWJLaXRX
ZWJSZXNvdXJjZSBvYmplY3QsIHNpbWlsYXIgdG8gd2hhdCB3ZSBkbyBmb3IgV2ViS2l0V2ViRnJh
bWUnCi0gICAgLy8gc2lnbmFsLgorICAgIC8vIE5vdGlmeSBsaXN0ZXJuZXJzCisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAibG9hZGluZy1maW5pc2hlZCIpOworICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIs
IHdlYlJlc291cmNlKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291
cmNlLWxvYWRpbmctZmluaXNoZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSk7CisKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXgg
YmY1ZTY5Yi4uMzBkZDZmMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAt
OTksNiArOTksNyBAQCBlbnVtIHsKICAgICAvLyBSZXNvdXJjZSBsb2FkaW5nIHNpZ25hbHMKICAg
ICBSRVNPVVJDRV9SRVFVRVNUX1NUQVJUSU5HLAogICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJ
VkVELAorICAgIFJFU09VUkNFX0xPQURJTkdfRklOSVNIRUQsCiAgICAgTEFTVF9TSUdOQUwKIH07
CiAKQEAgLTM1Nyw2ICszNTgsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGFz
c19pbml0KFdlYktpdFdlYkZyYW1lQ2xhc3MqIGZyYW1lQ2xhc3MpCiAgICAgICAgICAgICBXRUJL
SVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAogICAgIC8qCisgICAgICogV2ViS2l0V2ViRnJh
bWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2Vi
S2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVz
b3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICoKKyAgICAg
KiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZAor
ICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tSRVNPVVJDRV9MT0FESU5HX0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFt
ZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwg
R19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxM
LAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAgICAgICAg
ICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNF
KTsKKworICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwog
ICAgICAqLwogICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhm
cmFtZUNsYXNzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291
cmNlLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAppbmRleCBi
MTZiNmMxLi45OTliZDMyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJy
ZXNvdXJjZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3Bw
CkBAIC01MCw2ICs1MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBlbnVtIHsKICAgICAv
LyBSZXNvdXJjZSBsb2FkaW5nCiAgICAgUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgTE9BRElOR19G
SU5JU0hFRCwKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMTM5LDYgKzE0MCwyMiBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQoV2ViS2l0V2ViUmVzb3VyY2VD
bGFzcyogd2ViUmVzb3VyY2VDbAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAorICAgIC8qCisgICAgICogV2Vi
S2l0V2ViUmVzb3VyY2U6OmxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRo
ZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICoKKyAgICAgKiBFbWl0dGVk
IHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZAorICAgICAqCisg
ICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFs
c1tMT0FESU5HX0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygibG9hZGluZy1maW5pc2hlZCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAgICAg
ICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwK
KyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgZ19j
Y2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7
CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTp1cmk6CiAgICAgICoKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggOTc5ZTg4My4uNWZiNDg3ZCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE3NSw2ICsxNzUsNyBAQCBlbnVtIHsKICAgICBG
UkFNRV9DUkVBVEVELAogICAgIC8vIFJlc291cmNlIGxvYWRpbmcKICAgICBSRVNPVVJDRV9SRVNQ
T05TRV9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FESU5HX0ZJTklTSEVELAogICAgIExBU1Rf
U0lHTkFMCiB9OwogCkBAIC0yNjI4LDYgKzI2MjksMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKIAogICAgIC8qCisgICAgICog
V2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJWaWV3
OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBAd2ViRnJhbWU6
IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAg
KiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisg
ICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ug
d2FzIGxvYWRlZAorICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAgIHdlYmtp
dF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxf
bmV3KCJyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAg
ICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9P
QkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9U
WVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7CisK
KyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAg
Ki8KICAgICB3ZWJWaWV3Q2xhc3MtPmNyZWF0ZV93ZWJfdmlldyA9IHdlYmtpdF93ZWJfdmlld19y
ZWFsX2NyZWF0ZV93ZWJfdmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBi
L1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBlNGZmNTgyLi44Yjk3M2VhIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0y
LDYgKzIsMjMgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAg
ICAgICBbR1RLXSBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisK
KyAgICAgICAgRFJUIG5vdyBsaXN0ZW5zIHRvOgorICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJl
c291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZAorICAgICAgICArIFdlYktpdFdlYlJlc291cmNlOjpsb2FkaW5n
LWZpbmlzaGVkCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwOgorICAgICAgICAod2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2spOgorICAgICAgICAoZGlkUmVj
ZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXcpOgorCisyMDEwLTExLTE1ICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEltcHJvdmUgRnJhbWVMb2FkZXIgc2ln
bmFscy4gUmVzb3VyY2UgbG9hZGluZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDk1NDMKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggYTkxMzA0OS4uMjAxNzFhZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0x
MDc5LDYgKzEwNzksMTMgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2UKICAgICAvLyBUT0RPOiBh
ZGQgImhhcyBNSU1FIHR5cGUiIHdoZW5ldmVyIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVz
KCkKIH0KIAorc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKK3sK
KyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkaW5nXG4iLCBk
ZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJSZXNvdXJjZSwgd2ViVmlldykpOwor
fQorCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICBXZWJL
aXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7
CkBAIC0xMTA4LDYgKzExMTUsNyBAQCBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmll
dygpCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpmcmFtZS1jcmVhdGVkIiwgZnJhbWVD
cmVhdGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJj
ZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2ssIDAsCiAgICAgICAg
ICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIGRpZFJl
Y2VpdmVSZXNwb25zZSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291cmNl
LWxvYWRpbmctZmluaXNoZWQiLCBkaWRGaW5pc2hMb2FkaW5nLCAwLAogCiAgICAgICAgICAgICAg
ICAgICAgICBOVUxMKTsKIAotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74743</attachid>
            <date>2010-11-24 04:13:41 -0800</date>
            <delta_ts>2011-05-09 03:43:46 -0700</delta_ts>
            <desc>didReceiveContentLength</desc>
            <filename>0004-dispatchDidReceiveContentLength.patch</filename>
            <type>text/plain</type>
            <size>7849</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSBlMGYzNDc5YjQ3NDgyY2I2NWFmYTkzNjNmOGEyMWYzODg2ODkwZTc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IFRodSwgMTEgTm92IDIwMTAgMjA6NDA6MTkgKzAxMDAKU3ViamVjdDogW1BBVENI
IDQvNV0gLSBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoCiAgICAgKCspIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkKEZyYW1lLCBSZXNvdXJjZSwg
TGVuZ3RoKQogICAgICgrKSBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgt
cmVjZWl2ZWQoUmVzb3VyY2UsIExlbmd0aCkKICAgICAoKykgV2ViS2l0V2ViUmVzb3VyY2U6Omxv
YWRpbmctZmluaXNoZWQoTGVuZ3RoKQoKLS0tCiBXZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysrKysrKysrKwogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgfCAgICA4ICsrKysr
Ky0KIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgICAgICAgIHwg
ICAyMSArKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291
cmNlLmNwcCAgICAgICAgICAgIHwgICAxOSArKysrKysrKysrKysrKysrCiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysr
KysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0ICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDEgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCBlNTMxZmZlLi4zNDM1MDAwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0No
YW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEw
LTExLTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhcjIwMTAtMTEtMTUgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFtZUxvYWRlciBzaWdu
YWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgIEFkZGVkIG5ldyBzaWduYWxzOgorICAgICAg
ICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkKEZyYW1l
LCBSZXNvdXJjZSwgTGVuZ3RoKQorICAgICAgICArIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1j
b250ZW50LWxlbmd0aC1yZWNlaXZlZChSZXNvdXJjZSwgTGVuZ3RoKQorICAgICAgICArIFdlYktp
dFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkKExlbmd0aCkKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0
KToKKyAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxpc3Q6CisKIDIwMTAtMTEtMTUgIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDc0MjNhMDMuLmMyM2JlNDcgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0xMDUw
LDcgKzEwNTAsMTMgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgS1VSTCYgdXJsKQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21G
cmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3Ry
aW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0
KCkpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAiY29udGVudC1s
ZW5ndGgtcmVjZWl2ZWQiLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9u
YW1lKG1fZnJhbWUsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsIHdlYlJlc291
cmNlLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcs
ICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNl
LCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXgg
MzBkZDZmMS4uYWFiYThlNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAt
MTAwLDYgKzEwMCw3IEBAIGVudW0gewogICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcsCiAg
ICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCiAgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5J
U0hFRCwKKyAgICBSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKICAgICBMQVNUX1NJ
R05BTAogfTsKIApAQCAtMzc2LDYgKzM3NywyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2Zy
YW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFzcykKICAgICAgICAg
ICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7CiAKICAgICAvKgorICAgICAqIFdlYktpdFdl
YkZyYW1lOjpyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAqIEB3ZWJGcmFt
ZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAg
ICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQK
KyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0aCBpbiBieXRl
cworICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291
cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3
ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRURd
ID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCisgICAg
ICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2ln
bmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAg
ICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNo
YWxfVk9JRF9fT0JKRUNUX0lOVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7
CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAg
ICAgKi8KICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZnJh
bWVDbGFzcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJj
ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKaW5kZXggOTk5
YmQzMi4uMjc2YmViNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVz
b3VyY2UuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcApA
QCAtNTEsNiArNTEsNyBAQCBlbnVtIHsKICAgICAvLyBSZXNvdXJjZSBsb2FkaW5nCiAgICAgUkVT
UE9OU0VfUkVDRUlWRUQsCiAgICAgTE9BRElOR19GSU5JU0hFRCwKKyAgICBDT05URU5UX0xFTkdU
SF9SRUNFSVZFRCwKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMTU2LDYgKzE1NywyNCBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQoV2ViS2l0V2ViUmVzb3Vy
Y2VDbGFzcyogd2ViUmVzb3VyY2VDbAogICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZP
SURfX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CiAKKyAgICAvKgorICAgICAq
IFdlYktpdFdlYlJlc291cmNlOjpjb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAqIEB3ZWJS
ZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBA
bGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0aCBpbiBieXRlcworICAgICAq
CisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBs
b2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAgICAgKi8KKyAgICB3ZWJraXRfd2Vi
X3Jlc291cmNlX3NpZ25hbHNbQ09OVEVOVF9MRU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3
KCJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
Uyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0lOVCwK
KyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisK
ICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTp1cmk6CiAgICAgICoKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggNWZiNDg3ZC4uMTI4MmZmNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTE3Niw2ICsxNzYsNyBAQCBlbnVtIHsKICAgICAvLyBS
ZXNvdXJjZSBsb2FkaW5nCiAgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCiAgICAgUkVT
T1VSQ0VfTE9BRElOR19GSU5JU0hFRCwKKyAgICBSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNF
SVZFRCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMjY0OSw2ICsyNjUwLDI4IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2Vi
Vmlld0NsYXNzKQogICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFKTsKIAogICAg
IC8qCisgICAgICogV2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2
ZWQKKyAgICAgKiBAd2ViVmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFs
CisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMg
cmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNl
IHRoYXQgd2FzIGxvYWRlZAorICAgICAqIEBsZW5ndGhSZWNlaXZlZDogdGhlIHJlc291cmNlIGRh
dGEgbGVuZ3RoIGluIGJ5dGVzCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBk
YXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZAorICAgICAqCisgICAgICogU2luY2U6ID8/
PworICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0NPTlRFTlRf
TEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtY29udGVudC1sZW5ndGgt
cmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9JTlQsCisgICAgICAgICAg
ICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAg
ICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAgICAgIEdfVFlQRV9J
TlQpOworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2Rz
CiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2Vi
X3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dG1hcnNoYWwubGlzdCBiL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CmluZGV4IDAzZGFm
NTQuLjIwZjNjZDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0Cisr
KyBiL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CkBAIC0xNCw5ICsxNCwxMSBAQCBPQkpF
Q1Q6T0JKRUNUCiBPQkpFQ1Q6U1RSSU5HLFNUUklORyxQT0lOVEVSCiBPQkpFQ1Q6Vk9JRAogVk9J
RDpPQkpFQ1QsT0JKRUNUCitWT0lEOk9CSkVDVCxPQkpFQ1QsSU5UCiBWT0lEOk9CSkVDVCxPQkpF
Q1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxPQkpFQ1QsT0JKRUNULE9CSkVDVAogVk9JRDpPQkpFQ1Qs
UE9JTlRFUixQT0lOVEVSCitWT0lEOk9CSkVDVCxJTlQKIFZPSUQ6T0JKRUNULFNUUklORwogVk9J
RDpTVFJJTkcKIFZPSUQ6U1RSSU5HLFNUUklORwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74744</attachid>
            <date>2010-11-24 04:14:20 -0800</date>
            <delta_ts>2011-05-09 03:43:46 -0700</delta_ts>
            <desc>didFailLoading</desc>
            <filename>0005-dispatchDidFailLoading.patch</filename>
            <type>text/plain</type>
            <size>12090</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">RnJvbSBlZGQwODUxYmE0MzFiOTQ2ZDM5ZTE5N2U1YWE2Yzg4N2ViZDZjNGM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTZXJnaW8gVmlsbGFyIFNlbmluIDxzdmlsbGFyQGlnYWxpYS5j
b20+CkRhdGU6IEZyaSwgMTIgTm92IDIwMTAgMTM6NDE6NDAgKzAxMDAKU3ViamVjdDogW1BBVENI
IDUvNV0gLSBkaXNwYXRjaERpZEZhaWxMb2FkaW5nCiAgICAgKCspIFdlYktpdFdlYlZpZXc6OnJl
c291cmNlLWxvYWQtZmFpbGVkKEZyYW1lLCBSZXNvdXJjZSwgRXJyb3IpCiAgICAgKCspIFdlYktp
dFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZChSZXNvdXJjZSwgRXJyb3IpCiAgICAgKCsp
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZChFcnJvcikKCi0tLQogV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysrKysr
KysrKysrKysrCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcCB8ICAgMTYgKysrKysrKysrKy0tLQogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJh
bWUuY3BwICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKysrKysKIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcCAgICAgICAgICAgIHwgICAxOSArKysrKysr
KysrKysrKysrCiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgICAg
ICAgICB8ICAgMjMgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdC9ndGsvd2Via2l0bWFyc2hh
bC5saXN0ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJLaXRUb29scy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKysrKysKIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgIHwgICAyMiAr
KysrKysrKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggMzQzNTAwMC4uZTkzNzA3NCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBA
QAorMjAxMC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBJ
bXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKKyAgICAgICAgQWRk
ZWQgbmV3IHNpZ25hbHM6CisgICAgICAgICsgV2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtbG9hZC1m
YWlsZWQoRnJhbWUsIFJlc291cmNlLCBFcnJvcikKKyAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6
cmVzb3VyY2UtbG9hZC1mYWlsZWQoUmVzb3VyY2UsIEVycm9yKQorICAgICAgICArIFdlYktpdFdl
YlJlc291cmNlOjpsb2FkLWZhaWxlZChFcnJvcikKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0
KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgorICAgICAgICAod2Vi
a2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogd2Via2l0bWFyc2hhbC5saXN0OgorCiAyMDEwLTExLTE5ICBTZXJnaW8gVmlsbGFyIFNlbmlu
ICA8c3ZpbGxhcjIwMTAtMTEtMTUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGMy
M2JlNDcuLjc0NTI3ZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0xMDg1LDcgKzEwODUsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcgogCiAgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNv
dXJjZSh3ZWJSZXNvdXJjZSwgY29yZVJlc291cmNlLmdldCgpKTsKIAotICAgIC8vIE5vdGlmeSBs
aXN0ZXJuZXJzCisgICAgLy8gTm90aWZ5IGxpc3RlbmVycwogICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZSh3ZWJSZXNvdXJjZSwgImxvYWRpbmctZmluaXNoZWQiKTsKICAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV9mcmFtZSwgInJlc291cmNlLWxvYWRpbmctZmluaXNoZWQiLCB3ZWJSZXNvdXJj
ZSk7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1sb2FkaW5n
LWZpbmlzaGVkIiwgbV9mcmFtZSwgd2ViUmVzb3VyY2UpOwpAQCAtMTA5Nyw5ICsxMDk3LDE3IEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwKIHsKICAgICBzdGF0aWNfY2FzdDxXZWJLaXQ6OkRvY3Vt
ZW50TG9hZGVyKj4obG9hZGVyKS0+ZGVjcmVhc2VMb2FkQ291bnQoaWRlbnRpZmllcik7CiAKLSAg
ICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90aWZ5IHRoZSBhcHBsaWNhdGlvbiB0
aGF0IHRoZSByZXNvdXJjZSBmYWlsZWQKLSAgICAvLyBsb2FkaW5nLCBtYXliZSBhICdsb2FkLWVy
cm9yJyBzaWduYWwgaW4gdGhlIFdlYktpdFdlYlJlc291cmNlIG9iamVjdC4KLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1l
KG1fZnJhbWUpOworICAgIEdPd25QdHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmco
aWRlbnRpZmllcikpOworICAgIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtp
dF93ZWJfdmlld19nZXRfcmVzb3VyY2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7
CisgICAgR093blB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFy
a19mcm9tX3N0cmluZyhlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5lcnJvckNvZGUoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKworICAgIC8vIE5vdGlmeSBs
aXN0ZW5lcnMKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkLWZh
aWxlZCIsIHdlYkVycm9yLmdldCgpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFt
ZSwgInJlc291cmNlLWxvYWQtZmFpbGVkIiwgd2ViUmVzb3VyY2UsIHdlYkVycm9yLmdldCgpKTsK
KyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLWxvYWQtZmFpbGVk
IiwgbV9mcmFtZSwgd2ViUmVzb3VyY2UsIHdlYkVycm9yLmdldCgpKTsKIH0KIAogYm9vbCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAppbmRleCBhYWJhOGU2Li4wNzU2ZWRjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
Y3BwCkBAIC0xMDEsNiArMTAxLDggQEAgZW51bSB7CiAgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVD
RUlWRUQsCiAgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hFRCwKICAgICBSRVNPVVJDRV9DT05U
RU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FEX0ZBSUxFRCwKKwogICAgIExB
U1RfU0lHTkFMCiB9OwogCkBAIC0zOTcsNiArMzk5LDI2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRXZWJGcmFtZUNsYXNzKiBmcmFtZUNsYXNzKQogICAg
ICAgICAgICAgR19UWVBFX0lOVCk7CiAKICAgICAvKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpy
ZXNvdXJjZS1sb2FkLWZhaWxlZAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFt
ZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhl
ICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAd2ViRXJyb3I6IHRo
ZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAorICAgICAqCisgICAgICogSW52b2tlZCB3aGVu
IGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAgICAgKgorICAgICAqIFNpbmNlOiA/Pz8KKyAg
ICAgKi8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfTE9BRF9GQUlMRURd
ID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsCisgICAgICAgICAgICBHX1RZ
UEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JK
RUNUX1BPSU5URVIsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdF
QktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAgICAgIEdfVFlQRV9QT0lOVEVSKTsKKwor
ICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAq
LwogICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhmcmFtZUNs
YXNzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNw
cCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAppbmRleCAyNzZiZWI3
Li4wZTZjYzUxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJj
ZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCkBAIC01
Miw2ICs1Miw3IEBAIGVudW0gewogICAgIFJFU1BPTlNFX1JFQ0VJVkVELAogICAgIExPQURJTkdf
RklOSVNIRUQsCiAgICAgQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCisgICAgTE9BRF9GQUlMRUQs
CiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTE0Miw2ICsxNDMsMjQgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIHdl
YlJlc291cmNlQ2wKICAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwog
CiAgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZC1mYWlsZWQKKyAgICAgKiBA
d2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAg
ICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKKyAgICAgKgorICAg
ICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkCisgICAgICoKKyAgICAg
KiBTaW5jZTogPz8/CisgICAgICovCisgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW0xP
QURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygibG9hZC1mYWlsZWQiLAorICAgICAgICAgICAgR19U
WVBFX0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAw
LAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hh
bF9WT0lEX19PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAg
IEdfVFlQRV9QT0lOVEVSKTsKKworICAgIC8qCiAgICAgICogV2ViS2l0V2ViUmVzb3VyY2U6Omxv
YWRpbmctZmluaXNoZWQKICAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgYmVpbmcgbG9hZGVkCiAgICAgICoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5k
ZXggMTI4MmZmNS4uOTg0ZTZkZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAg
LTE3Nyw2ICsxNzcsNyBAQCBlbnVtIHsKICAgICBSRVNPVVJDRV9SRVNQT05TRV9SRUNFSVZFRCwK
ICAgICBSRVNPVVJDRV9MT0FESU5HX0ZJTklTSEVELAogICAgIFJFU09VUkNFX0NPTlRFTlRfTEVO
R1RIX1JFQ0VJVkVELAorICAgIFJFU09VUkNFX0xPQURfRkFJTEVELAogICAgIExBU1RfU0lHTkFM
CiB9OwogCkBAIC0yNjcyLDYgKzI2NzMsMjggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAg
ICBHX1RZUEVfSU5UKTsKIAogICAgIC8qCisgICAgICogV2ViS2l0V2ViVmlldzo6cmVzb3VyY2Ut
bG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViVmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0
aGUgc2lnbmFsCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNw
b25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdl
YlJlc291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAqIEB3ZWJFcnJvcjogdGhlICNHRXJyb3Ig
dGhhdCB3YXMgdHJpZ2dlcmVkCisgICAgICoKKyAgICAgKiBJbnZva2VkIHdoZW4gYSByZXNvdXJj
ZSBmYWlsZWQgdG8gbG9hZAorICAgICAqCisgICAgICogU2luY2U6ID8/PworICAgICAqLworICAg
IHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0xPQURfRkFJTEVEXSA9IGdfc2lnbmFs
X25ldygicmVzb3VyY2UtbG9hZC1mYWlsZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xB
U1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBO
VUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVD
VF9QT0lOVEVSLAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJL
SVRfVFlQRV9XRUJfRlJBTUUsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0Us
CisgICAgICAgICAgICBHX1RZUEVfUE9JTlRFUik7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVu
dGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICB3ZWJWaWV3Q2xhc3MtPmNy
ZWF0ZV93ZWJfdmlldyA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmlldzsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0IGIvV2ViS2l0L2d0ay93ZWJr
aXRtYXJzaGFsLmxpc3QKaW5kZXggMjBmM2NkOS4uOTZlODk0NSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKKysrIGIvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxp
c3QKQEAgLTE2LDkgKzE2LDExIEBAIE9CSkVDVDpWT0lECiBWT0lEOk9CSkVDVCxPQkpFQ1QKIFZP
SUQ6T0JKRUNULE9CSkVDVCxJTlQKIFZPSUQ6T0JKRUNULE9CSkVDVCxPQkpFQ1QKK1ZPSUQ6T0JK
RUNULE9CSkVDVCxQT0lOVEVSCiBWT0lEOk9CSkVDVCxPQkpFQ1QsT0JKRUNULE9CSkVDVAogVk9J
RDpPQkpFQ1QsUE9JTlRFUixQT0lOVEVSCiBWT0lEOk9CSkVDVCxJTlQKK1ZPSUQ6T0JKRUNULFBP
SU5URVIKIFZPSUQ6T0JKRUNULFNUUklORwogVk9JRDpTVFJJTkcKIFZPSUQ6U1RSSU5HLFNUUklO
RwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDhiOTczZWEuLmI2OTA1OTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTUsNiArNSwyMyBAQAogICAgICAg
ICBbR1RLXSBJbXByb3ZlIEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCiAKKyAg
ICAgICAgLSBkaXNwYXRjaERpZEZhaWxMb2FkaW5nCisgICAgICAgICAgICAoKykgV2ViS2l0V2Vi
Vmlldzo6cmVzb3VyY2UtbG9hZC1mYWlsZWQoRnJhbWUsIFJlc291cmNlLCBFcnJvcikKKyAgICAg
ICAgICAgICgrKSBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZC1mYWlsZWQoUmVzb3VyY2Us
IEVycm9yKQorICAgICAgICAgICAgKCspIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZChF
cnJvcikKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAgIChk
aWRGYWlsTG9hZGluZ1dpdGhFcnJvcik6CisgICAgICAgIChjcmVhdGVXZWJWaWV3KToKKworMjAx
MC0xMS0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBJbXByb3Zl
IEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKICAgICAgICAgRFJUIG5vdyBs
aXN0ZW5zIHRvOgogICAgICAgICArIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWRpbmctZmlu
aXNoZWQKICAgICAgICAgKyBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hl
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggMjAxNzFhZi4uYjAzMjQ5NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMDIwLDYgKzEwMjAsMTkgQEAgc3Rh
dGljIGNoYXIqIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdFdlYlJlc291
cmNlKiB3ZWJSZXNvdXJjZSwgV2UKICAgICByZXR1cm4gdXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0
KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkpOwogfQogCitzdGF0aWMg
Y2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoR0Vycm9yKiBlcnJvciwgV2Vi
S2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlKQoreworICAgIGNvbnN0IGdjaGFyKiBlcnJvckRv
bWFpbiA9IGdfcXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pOworICAgIEdPd25QdHI8Y2hh
cj4gcmVzb3VyY2VVUklTdHJpbmcodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF93ZWJf
cmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkpKTsKKworICAgIGlmICghZ19hc2NpaV9zdHJu
Y2FzZWNtcChlcnJvckRvbWFpbiwgIndlYmtpdC1uZXR3b3JrLWVycm9yLXF1YXJrIiwgMjYpKQor
ICAgICAgICBlcnJvckRvbWFpbiA9ICJOU1VSTEVycm9yRG9tYWluIjsKKworICAgIC8vIFRPRE86
IHRoZSBvdGhlciBwb3J0cyBnZXQgdGhlIGZhaWxpbmdVUkwgZnJvbSB0aGUgUmVzb3VyY2VFcnJv
cgorICAgIHJldHVybiBnX3N0cmR1cF9wcmludGYoIjxOU0Vycm9yIGRvbWFpbiAlcywgY29kZSAl
ZCwgZmFpbGluZyBVUkwgXCIlc1wiPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv
ckRvbWFpbiwgZXJyb3ItPmNvZGUsIHJlc291cmNlVVJJU3RyaW5nLmdldCgpKTsKK30KKwogc3Rh
dGljIGNoYXIqIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtS
ZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEdPd25QdHI8Y2hhcj4gcmVxdWVzdFVSSVN0cmluZzsK
QEAgLTEwODUsNiArMTA5OCwxNCBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUgogICAgICAgICBw
cmludGYoIiVzIC0gZGlkRmluaXNoTG9hZGluZ1xuIiwgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQod2ViUmVzb3VyY2UsIHdlYlZpZXcpKTsKIH0KIAorc3RhdGljIHZvaWQgZGlkRmFp
bExvYWRpbmdXaXRoRXJyb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUq
LCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UsIEdFcnJvciogd2ViRXJyb3IpCit7Cisg
ICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcygpKSB7CisgICAgICAgIEdPd25QdHI8Y2hhcj53ZWJFcnJvclN0cmluZyhkZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJFcnJvciwgd2ViUmVzb3VyY2UpKTsKKyAgICAg
ICAgcHJpbnRmKCIlcyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiAlc1xuIiwgZGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQod2ViUmVzb3VyY2UsIHdlYlZpZXcpLAorICAgICAgICAg
ICAgICAgd2ViRXJyb3JTdHJpbmcuZ2V0KCkpOworICAgIH0KK30KIAogc3RhdGljIFdlYktpdFdl
YlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogewpAQCAtMTExNiw2ICsxMTM3LDcgQEAgc3RhdGljIFdl
YktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrLCAw
LAogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2
ZWQiLCBkaWRSZWNlaXZlUmVzcG9uc2UsIDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFs
OjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwgZGlkRmluaXNoTG9hZGluZywgMCwKKyAgICAg
ICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291cmNlLWxvYWQtZmFpbGVkIiwgZGlkRmFpbExv
YWRpbmdXaXRoRXJyb3IsIDAsCiAKICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCi0tIAox
LjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92776</attachid>
            <date>2011-05-09 03:43:46 -0700</date>
            <delta_ts>2011-05-09 03:49:59 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>43647</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBhOWFhODMyZDFlODYxM2U3NWVkYjk5NGQ3NWQ1YWI0OWQxYzY0ZDk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIxIEFwciAyMDExIDE0OjU1OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCAgICAgICAgICAgICAgICAgICB8ICAgIDcgLQogLi4uL2xvYWRlci9maWxlLXByb3RvY29sLWZy
YWdtZW50LWV4cGVjdGVkLnR4dCAgICAgfCAgICA3ICsKIC4uLmlsbENhY2hlUmVzcG9uc2UtZGVs
ZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDYgKysrKysKIC4uLi9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwICAgIHwgICA1MCArKysrLS0KIFNv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgIHwgICAzOCAr
KysrLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggICAg
fCAgICA0ICsKIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgICAg
ICAgIHwgIDEyNyArKysrKysrKysrKysrKwogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnJlc291cmNlLmNwcCAgICAgfCAgIDg4ICsrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgIHwgICA5MiArKysrKysrKysrLQogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0ICAgICAgICAgICAgICAgfCAgICA2ICst
CiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjEgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwICAgICAg
ICB8ICAxODMgKysrKysrKysrKysrKysrKysrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDY0OSBpbnNl
cnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3Rl
ZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOWNkNmNmYy4uYzkwMjdiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDExLTA1LTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBJbXByb3Zl
IEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKKyAgICAgICAgVW5za2lwIHRl
c3RzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9taXNj
L3dpbGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDoKKwogMjAx
MS0wNS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByODYwNDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmlu
ZGV4IDgyZmNlZmIuLjVkNjA3NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC00MDQs
MTIgKzQwNCw2IEBAIGZhc3QvaHRtbC90YWItb3JkZXIuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdh
dGVzOgogIyBOZWVkIHByb3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotIyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTcwCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9lbXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwK
LWZhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbAotIyBUZXN0cyBmYWlsaW5n
IGJlY2F1c2Ugb2YgbWlzc2luZyByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIGNhbGxiYWNrcy4KLWZh
c3QvbG9hZGVyL21haW4tZG9jdW1lbnQtdXJsLWZvci1ub24taHR0cC1sb2Fkcy5odG1sCi1odHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKICMgVGVzdHMgZmFpbGlu
ZyBiZWNhdXNlIG9mIG1pc3NpbmcgcG9saWN5IGRlbGVnYXRlIGNhbGxiYWNrcy4KIGZhc3QvbG9h
ZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCiBmYXN0L2xvYWRlci9wb2xp
Y3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpvb21lZC5odG1sCkBAIC05MDgsNyArOTAyLDYg
QEAgZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAuaHRtbAogIyBOZXcgdGVzdCBuZWVk
cyBlbmhhbmNlZCBmcmFtZWxvYWRlciBkZWxlZ2F0ZSBsb2dnaW5nIGluIERSVAogIyBEaXNjdXNz
ZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTI4CiBmYXN0
L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sIAotZmFzdC9sb2FkZXIv
bnVsbC1yZXF1ZXN0LWFmdGVyLXdpbGxTZW5kUmVxdWVzdC5odG1sCiAKICMgTmVlZCB0byBkdW1w
IGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSkuCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVy
L2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjFjZDBkMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACityZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MgLSB3aWxsU2VuZFJl
cXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzLCBtYWluIGRv
Y3VtZW50IFVSTCBmaWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4g
cmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIHdpbGxT
ZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MsIG1h
aW4gZG9jdW1lbnQgVVJMIGZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGlu
ZworcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJl
c3BvbnNlIHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVz
b3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNl
IHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVzb3VyY2Vz
L3N0eWxlc2hlZXQuY3NzIC0gZGlkRmluaXNoTG9hZGluZworVGhpcyB0ZXN0cyB0aGF0IGZpbGU6
IFVSTCBhcmUgbG9hZGVkIHNlcGFyYXRlbHkgZXZlbiBpZiB0aGV5IGRpZmZlciBieSB0aGUgZnJh
Z21lbnQgb25seS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rl
c3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNw
b25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKaW5kZXggYjdlYTU3ZC4uYTRmMTdi
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93
aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNwb25zZS1k
ZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1s
IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNwb25zZS1zdWNjZXNzLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRl
bGVnYXRlLWNhbGxiYWNrLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAo
bnVsbCkKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNw
b25zZS1zdWNjZXNzLmh0bWwgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dpbGxDYWNoZVJlc3BvbnNlLXN1Y2Nl
c3MuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBUaGlzIHRlc3RzIGZvciB0aGUgd2lsbENh
Y2hlUmVzcG9uc2UgcmVzb3VyY2UgZGVsZWdhdGUgY2FsbGJhY2sgYXMgYWRkZWQgZm9yIHJhZGFy
IDUwMDg5MjUuCiBUaGUgdGVzdCBpcyBvbmx5IG1lYW5pbmdmdWwgaWYgeW91IGFyZSBydW5uaW5n
IGl0IHVuZGVyIER1bXBSZW5kZXJUcmVlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAxNTNmMmYzLi45
OWRkY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDUtMDkgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBOZXcgc2lnbmFsczoKKyAgICAgICAg
V2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmcKKyAgICAgICAgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYkZy
YW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYkZyYW1lOjpy
ZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJGcmFtZTo6
cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNl
LXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZAorICAgICAg
ICBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJS
ZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6
cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1jb250
ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2Fk
LWZhaWxlZAorCisgICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4g
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcp
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6CisgICAgICAgICh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
c2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY2xhc3NfaW5p
dCk6CisgICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tYWluX3VyaSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1
ZXN0Lmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJl
c291cmNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdG1hcnNoYWwubGlzdDoKKwogMjAxMS0w
NS0wNiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDc4MjY5OTAuLmNjZjQx
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM4MCwxNCArMzgwLDggQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwKICAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOwog
ICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+IG5ldHdvcmtSZXF1ZXN0KGFkb3B0R1Jl
ZihraXROZXcocmVxdWVzdCkpKTsKIAotICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwo
KSkgewotICAgICAgICAvLyBUaGlzIGlzIGEgcmVkaXJlY3QsIHNvIHdlIG5lZWQgdG8gdXBkYXRl
IHRoZSBXZWJSZXNvdXJjZSdzIGtub3dsZWRnZQotICAgICAgICAvLyBvZiB0aGUgVVJJLgotICAg
ICAgICBnX2ZyZWUod2ViUmVzb3VyY2UtPnByaXYtPnVyaSk7Ci0gICAgICAgIHdlYlJlc291cmNl
LT5wcml2LT51cmkgPSBnX3N0cmR1cChyZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgIH0KLSAgICAKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJl
c291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jl
cXVlc3QuZ2V0KCksIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2ViUmVzb3VyY2Us
IG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogCiAgICAgLy8g
RmVlZCBhbnkgY2hhbmdlcyBiYWNrIGludG8gdGhlIFJlc291cmNlUmVxdWVzdCBvYmplY3QuCiAg
ICAgU291cE1lc3NhZ2UqIG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNz
YWdlKG5ldHdvcmtSZXF1ZXN0LmdldCgpKTsKQEAgLTQ1MSwxMyArNDQ1LDIyIEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2Uo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewogICAgIC8vIFVwZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAtIHNv
bWUgYXJlIG9ubHkgc2V0CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KICAgICBs
b2FkZXItPnJlcXVlc3QoKS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBNZXNzYWdl
RmxhZ3MoKSk7CiAKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdj
aGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRX
ZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdl
YlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworICAgIEdSZWZQdHI8V2ViS2l0TmV0d29y
a1Jlc3BvbnNlPiBuZXR3b3JrUmVzcG9uc2UoYWRvcHRHUmVmKGtpdE5ldyhyZXNwb25zZSkpKTsK
KworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgInJlc3BvbnNlLXJlY2Vp
dmVkIiwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV9mcmFtZSwgInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2UsIG5ldHdv
cmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJy
ZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBuZXR3b3Jr
UmVzcG9uc2UuZ2V0KCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24s
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKQEAgLTExMzAsNyArMTEzMywxMyBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3Qg
S1VSTCYgdQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIEdPd25Q
dHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOworICAgIFdl
YktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3Vy
Y2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7CisKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUod2ViUmVzb3VyY2UsICJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsIGRhdGFMZW5n
dGgpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQiLCB3ZWJSZXNvdXJjZSwgZGF0YUxlbmd0aCk7CisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZl
ZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBkYXRhTGVuZ3RoKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTExNTksMjAgKzExNjgs
MjcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIKIAogICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vf
aW5pdF93aXRoX2NvcmVfcmVzb3VyY2Uod2ViUmVzb3VyY2UsIGNvcmVSZXNvdXJjZS5nZXQoKSk7
CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90aWZ5IHRoZSBhcHBsaWNh
dGlvbiB0aGF0IHRoZSByZXNvdXJjZQotICAgIC8vIGZpbmlzaGVkIGxvYWRpbmcsIG1heWJlIHVz
aW5nIGEgbG9hZC1zdGF0dXMgcHJvcGVydHkgaW4gdGhlCi0gICAgLy8gV2ViS2l0V2ViUmVzb3Vy
Y2Ugb2JqZWN0LCBzaW1pbGFyIHRvIHdoYXQgd2UgZG8gZm9yIFdlYktpdFdlYkZyYW1lJwotICAg
IC8vIHNpZ25hbC4KLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIE5vdGlmeSBsaXN0ZW5l
cnMKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkaW5nLWZpbmlz
aGVkIik7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1sb2Fk
aW5nLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3
ZWJWaWV3LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNl
KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIHN0YXRpY19jYXN0PFdlYktpdDo6
RG9jdW1lbnRMb2FkZXIqPihsb2FkZXIpLT5kZWNyZWFzZUxvYWRDb3VudChpZGVudGlmaWVyKTsK
IAotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3RpZnkgdGhlIGFwcGxpY2F0
aW9uIHRoYXQgdGhlIHJlc291cmNlIGZhaWxlZAotICAgIC8vIGxvYWRpbmcsIG1heWJlIGEgJ2xv
YWQtZXJyb3InIHNpZ25hbCBpbiB0aGUgV2ViS2l0V2ViUmVzb3VyY2Ugb2JqZWN0LgotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9t
RnJhbWUobV9mcmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmluZyh0b1N0
cmluZyhpZGVudGlmaWVyKSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlID0g
d2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3RyaW5nLmdl
dCgpKTsKKyAgICBHT3duUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmVycm9yQ29k
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgLy8gTm90
aWZ5IGxpc3RlbmVycworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgImxv
YWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSht
X2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0
KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZC1m
YWlsZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0KCkpOwogfQogCiBib29s
IEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKaW5kZXggNzAwNTYzNy4uM2MzZWEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3Qu
Y3BwCkBAIC00Niw2ICs0Niw3IEBAIEdfREVGSU5FX1RZUEUoV2ViS2l0TmV0d29ya1JlcXVlc3Qs
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpOwogc3RydWN0IF9XZWJLaXRO
ZXR3b3JrUmVxdWVzdFByaXZhdGUgewogICAgIGdjaGFyKiB1cmk7CiAgICAgU291cE1lc3NhZ2Uq
IG1lc3NhZ2U7CisgICAgZ2NoYXIqIG1haW5VUkk7CiB9OwogCiBlbnVtIHsKQEAgLTUzLDYgKzU0
LDcgQEAgZW51bSB7CiAKICAgICBQUk9QX1VSSSwKICAgICBQUk9QX01FU1NBR0UsCisgICAgUFJP
UF9NQUlOX1VSSSwKIH07CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZGlz
cG9zZShHT2JqZWN0KiBvYmplY3QpCkBAIC03NCw2ICs3Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAKICAgICBnX2ZyZWUo
cHJpdi0+dXJpKTsKKyAgICBnX2ZyZWUocHJpdi0+bWFpblVSSSk7CiAKICAgICBHX09CSkVDVF9D
TEFTUyh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7CiB9CkBAIC04MSw2ICs4NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlELCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXROZXR3b3JrUmVx
dWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2JqZWN0KTsKKyAgICBXZWJL
aXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCiAgICAgc3dp
dGNoKHByb3BlcnR5SUQpIHsKICAgICBjYXNlIFBST1BfVVJJOgpAQCAtODksNiArOTMsOSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BlcnR5SQogICAgIGNhc2UgUFJPUF9NRVNTQUdFOgogICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3Nh
Z2UocmVxdWVzdCkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfTUFJTl9VUkk6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJpdi0+bWFpblVSSSk7CisgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKICAgICB9CkBAIC0xMDYsNiArMTEz
LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUkKICAgICBjYXNlIFBST1BfTUVTU0FHRToKICAg
ICAgICAgcHJpdi0+bWVzc2FnZSA9IFNPVVBfTUVTU0FHRShnX3ZhbHVlX2R1cF9vYmplY3QodmFs
dWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX01BSU5fVVJJOgorICAgICAgICBw
cml2LT5tYWluVVJJID0gZ192YWx1ZV9kdXBfc3RyaW5nKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOwogICAgIH0KQEAgLTE1MCw2ICsxNjAsMjAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdE5ldHdv
cmtSZXF1ZXN0Q2xhc3MqIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9UWVBFX01FU1NBR0UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncyko
V0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwogCisgICAg
LyoqCisgICAgICogV2ViS2l0TmV0d29ya1JlcXVlc3Q6bWFpbi11cmk6CisgICAgICoKKyAgICAg
KiBUaGUgI1Jlc291cmNlUmVxdWVzdCB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0LgorICAgICAqCisg
ICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9NQUlOX1VSSSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoIm1haW4tdXJpIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTWFpblVS
SSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJUaGUgUmVzb3VyY2VSZXF1ZXN0IG1haW4gVVJJLiIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1BhcmFtRmxh
Z3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKKwog
ICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihXZWJLaXRO
ZXR3b3JrUmVxdWVzdFByaXZhdGUpKTsKIH0KIApAQCAtMjU1LDkgKzI3OSw5IEBAIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiBraXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QpCiB7CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gc291cE1lc3NhZ2UoYWRv
cHRHUmVmKHJlc291cmNlUmVxdWVzdC50b1NvdXBNZXNzYWdlKCkpKTsKICAgICBpZiAoc291cE1l
c3NhZ2UpCi0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgc291cE1lc3NhZ2UuZ2V0
KCksIE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBzb3VwTWVzc2Fn
ZS5nZXQoKSwgIm1haW4tdXJpIiwgcmVzb3VyY2VSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVz
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCkpOwogCi0gICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwg
InVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxM
KSk7CisgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJ
VF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCAibWFpbi11cmkiLCByZXNvdXJjZVJlcXVlc3QuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7CiB9CiAKIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb3JlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQpA
QCAtMjcxLDMgKzI5NSwxMyBAQCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29yZShXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKIH0KIAogfQorCitjb25zdCBnY2hhcioKK3dlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0
KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1Qo
cmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2
ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIHJldHVybiBwcml2LT5tYWluVVJJOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaAppbmRleCA4MjVj
YTllLi4wN2VlYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0
d29ya3JlcXVlc3QuaApAQCAtNjksNiArNjksMTAgQEAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9n
ZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBTb3Vw
TWVzc2FnZSAqCiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiByZXF1ZXN0KTsKIAorCitXRUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFy
ICoKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1
ZXN0KiByZXF1ZXN0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBhMGU0MGIzLi5mNGYyNGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTU0LDEwICs1
NCwxMiBAQAogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGds
b2JhbHNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndl
YmtpdG5ldHdvcmtyZXNwb25zZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJm
cmFtZXByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KQEAgLTk4LDYgKzEwMCwxMyBAQCBlbnVt
IHsKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKICAgICBTQ1JP
TExCQVJTX1BPTElDWV9DSEFOR0VELAorICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscwor
ICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcsCisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVD
RUlWRUQsCisgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hFRCwKKyAgICBSRVNPVVJDRV9DT05U
RU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FEX0ZBSUxFRCwKKwogICAgIExB
U1RfU0lHTkFMCiB9OwogCkBAIC0yOTUsNiArMzA0LDEyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFzcykKICAg
ICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQsCiAgICAgICAgICAgICBHX1RZ
UEVfQk9PTEVBTiwgMCk7CiAKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpyZXNv
dXJjZS1yZXF1ZXN0LXN0YXJ0aW5nOgorICAgICAqIEB3ZWJfZnJhbWU6IHRoZSAjV2ViS2l0V2Vi
RnJhbWUgd2hvc2UgbG9hZCBkaXNwYXRjaGVkIHRoaXMgcmVxdWVzdAorICAgICAqIEB3ZWJfcmVz
b3VyY2U6IGFuIGVtcHR5ICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3QKKyAgICAgKiBAcmVxdWVz
dDogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZAorICAg
ICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2UgcmVwcmVzZW50aW5nIHRo
ZSByZWRpcmVjdAorICAgICAqIHJlc3BvbnNlLCBpZiBhbnkKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhIHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudC4gWW91IGNhbiBtb2RpZnkgdGhl
CisgICAgICogcmVxdWVzdCB3aGlsZSBoYW5kbGluZyB0aGlzIHNpZ25hbC4gWW91IGNhbiBzZXQg
dGhlIFVSSSBpbiB0aGUKKyAgICAgKiAjV2ViS2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0IGl0c2Vs
ZiwgYW5kIGFkZC9yZW1vdmUvcmVwbGFjZQorICAgICAqIGhlYWRlcnMgdXNpbmcgdGhlICNTb3Vw
TWVzc2FnZSBvYmplY3QgaXQgY2FycmllcywgaWYgaXQgaXMKKyAgICAgKiBwcmVzZW50LiBTZWUg
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZSgpLiBTZXR0aW5nIHRoZQorICAgICAq
IHJlcXVlc3QgVVJJIHRvICJhYm91dDpibGFuayIgd2lsbCBlZmZlY3RpdmVseSBjYXVzZSB0aGUg
cmVxdWVzdAorICAgICAqIHRvIGxvYWQgbm90aGluZywgYW5kIGNhbiBiZSB1c2VkIHRvIGRpc2Fi
bGUgdGhlIGxvYWRpbmcgb2YKKyAgICAgKiBzcGVjaWZpYyByZXNvdXJjZXMuCisgICAgICoKKyAg
ICAgKiBOb3RpY2UgdGhhdCBpbmZvcm1hdGlvbiBhYm91dCBhbiBldmVudHVhbCByZWRpcmVjdCBp
cyBhdmFpbGFibGUKKyAgICAgKiBpbiBAcmVzcG9uc2UncyAjU291cE1lc3NhZ2UsIG5vdCBpbiB0
aGUgI1NvdXBNZXNzYWdlIGNhcnJpZWQgYnkKKyAgICAgKiB0aGUgQHJlcXVlc3QuIElmIEByZXNw
b25zZSBpcyAlTlVMTCwgdGhlbiB0aGlzIGlzIG5vdCBhCisgICAgICogcmVkaXJlY3RlZCByZXF1
ZXN0LgorICAgICAqCisgICAgICogVGhlICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3Qgd2lsbCBi
ZSB0aGUgc2FtZSB0aHJvdWdob3V0IGFsbAorICAgICAqIHRoZSBsaWZldGltZSBvZiB0aGUgcmVz
b3VyY2UsIGJ1dCB0aGUgY29udGVudHMgbWF5IGNoYW5nZSBmcm9tCisgICAgICogaW5iZXR3ZWVu
IHNpZ25hbCBlbWlzc2lvbnMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8K
KyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElOR10g
PSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLAorICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURf
X09CSkVDVF9PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDMsCisgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFUVVFU1QsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BP
TlNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNl
LXJlY2VpdmVkCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNw
b25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdl
YlJlc291cmNlIGJlaW5nIGxvYWRlZAorICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3
b3JrUmVzcG9uc2UgdGhhdCB3YXMgcmVjZWl2ZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hl
biB0aGUgZmlyc3QgYnl0ZSBvZiBkYXRhIGFycml2ZXMKKyAgICAgKgorICAgICAqIFNpbmNlOiAx
LjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9SRVNQ
T05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVk
IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAor
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDIsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBX
RUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2Vi
RnJhbWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAj
V2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2Vi
UmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICoKKyAg
ICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRl
ZAorICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9m
cmFtZV9zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJy
ZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEws
IE5VTEwsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVT
T1VSQ0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUg
dGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAj
V2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVk
OiB0aGUgcmVzb3VyY2UgZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoK
KyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25h
bHNbUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNv
dXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBO
VUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0lOVCwK
KyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VC
X1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisKKyAgICAvKgorICAgICAqIFdl
YktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZAorICAgICAqIEB3ZWJGcmFtZTogdGhl
ICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3
ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAg
KiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAorICAgICAqCisgICAg
ICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAgICAgKgorICAgICAq
IFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNP
VVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWQtZmFpbGVkIiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRf
bWFyc2hhbF9WT0lEX19PQkpFQ1RfUE9JTlRFUiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAy
LAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19U
WVBFX1BPSU5URVIpOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVh
bCBtZXRob2RzCiAgICAgICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2VicmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlLmNwcAppbmRleCBiN2Y0MDM2Li42YTFkYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRuZXR3b3Jr
cmVzcG9uc2UuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCIKICNpbmNs
dWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KQEAgLTQ1LDE0ICs0Niwy
NSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewotICAgIFBST1BfMCwKKyAg
ICAvLyBSZXNvdXJjZSBsb2FkaW5nCisgICAgUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgTE9BRElO
R19GSU5JU0hFRCwKKyAgICBDT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBMT0FEX0ZBSUxF
RCwKKworICAgIExBU1RfU0lHTkFMCit9OwogCitlbnVtIHsKKyAgICBQUk9QXzAsCiAgICAgUFJP
UF9VUkksCiAgICAgUFJPUF9NSU1FX1RZUEUsCiAgICAgUFJPUF9FTkNPRElORywKICAgICBQUk9Q
X0ZSQU1FX05BTUUKIH07CiAKK3N0YXRpYyBndWludCB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBHX0RFRklORV9UWVBFKFdlYktpdFdlYlJlc291
cmNlLCB3ZWJraXRfd2ViX3Jlc291cmNlLCBHX1RZUEVfT0JKRUNUKTsKIAogc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYyk7CkBAIC0xMDEsMTUgKzEx
Myw4NSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplKEdPYmplY3Qq
IG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3Jlc291cmNlX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVz
b3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiBrbGFzcykKK3N0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNsYXNz
KiB3ZWJSZXNvdXJjZUNsYXNzKQogewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9jbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RfY2xhc3Mg
PSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKTsKIAogICAgIGdvYmplY3RfY2xhc3Mt
PmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Rpc3Bvc2U7CiAgICAgZ29iamVjdF9jbGFz
cy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplOwogICAgIGdvYmplY3Rf
Y2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Byb3BlcnR5Owog
ICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2V0
X3Byb3BlcnR5OwogCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9uc2Ut
cmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVp
bmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0
aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBi
eXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICov
CisgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdf
c2lnbmFsX25ldygicmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19P
QkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgIFdFQktJVF9U
WVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJj
ZTo6bG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdh
cyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxl
ZCB0byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTE9BRF9GQUlMRURdID0gZ19zaWduYWxfbmV3KCJsb2Fk
LWZhaWxlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNz
KSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAg
ICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAgICAgICAgICAgIEdf
VFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKKyAg
ICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJSZXNv
dXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKgorICAgICAq
IEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisg
ICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Jlc291
cmNlX3NpZ25hbHNbTE9BRElOR19GSU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWRpbmctZmlu
aXNoZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyks
CisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAgR19UWVBF
X05PTkUsIDApOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6Y29udGVudC1s
ZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0aGUgcmVzb3VyY2Ug
ZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhl
IGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbQ09OVEVOVF9M
RU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIs
CisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAg
Z19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0lOVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAx
LAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJS
ZXNvdXJjZTp1cmk6CiAgICAgICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcAppbmRleCBmZmQyOGYzLi5kZTEwYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0xODMsNyArMTgzLDYgQEAgZW51bSB7CiAgICAgVU5E
TywKICAgICBSRURPLAogICAgIERBVEFCQVNFX1FVT1RBX0VYQ0VFREVELAotICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCiAgICAgRE9DVU1FTlRfTE9BRF9GSU5JU0hFRCwKICAgICBHRU9M
T0NBVElPTl9QT0xJQ1lfREVDSVNJT05fUkVRVUVTVEVELAogICAgIEdFT0xPQ0FUSU9OX1BPTElD
WV9ERUNJU0lPTl9DQU5DRUxMRUQsCkBAIC0yMDIsNiArMjAxLDExIEBAIGVudW0gewogICAgIEVE
SVRJTkdfRU5ERUQsCiAgICAgVklFV1BPUlRfQVRUUklCVVRFU19SRUNPTVBVVEVfUkVRVUVTVEVE
LAogICAgIFZJRVdQT1JUX0FUVFJJQlVURVNfQ0hBTkdFRCwKKyAgICBSRVNPVVJDRV9SRVFVRVNU
X1NUQVJUSU5HLAorICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAorICAgIFJFU09VUkNF
X0xPQURJTkdfRklOSVNIRUQsCisgICAgUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQs
CisgICAgUkVTT1VSQ0VfTE9BRF9GQUlMRUQsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTI3
NTAsNiArMjc1NCw5MiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChX
ZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBF
X1ZJRVdQT1JUX0FUVFJJQlVURVMpOwogCiAgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojpy
ZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdo
aWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2Vi
RnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6
IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0
aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAg
ICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisg
ICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNb
UkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXNw
b25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisg
ICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZS
QU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAg
V0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViVmlldzogdGhlIG9i
amVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dl
YktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJl
c291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAqCisg
ICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2Fk
ZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJf
dmlld19zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJy
ZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVM
TCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1Qs
CisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7CisKKyAgICAv
KgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVk
CisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAor
ICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJl
Y2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0
aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRh
IGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0
YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUu
MQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0NPTlRFTlRf
TEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtY29udGVudC1sZW5ndGgt
cmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9JTlQsCisgICAgICAgICAg
ICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAg
ICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAgICAgIEdfVFlQRV9J
TlQpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkLWZhaWxl
ZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwK
KyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyBy
ZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2Ug
dGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0
cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0
byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tSRVNPVVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJl
c291cmNlLWxvYWQtZmFpbGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVM
TCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1RfUE9JTlRF
UiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAg
ICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2Vi
X3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXRtYXJzaGFsLmxpc3QKaW5kZXggNTM3MmM1Ny4uYjc4OTA4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdG1hcnNoYWwubGlzdApAQCAtMTcsOSArMTcsMTMgQEAgT0JKRUNUOk9CSkVDVAog
T0JKRUNUOlNUUklORyxTVFJJTkcsUE9JTlRFUgogT0JKRUNUOlZPSUQKIFZPSUQ6T0JKRUNULE9C
SkVDVAorVk9JRDpPQkpFQ1QsT0JKRUNULElOVAorVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVAor
Vk9JRDpPQkpFQ1QsT0JKRUNULFBPSU5URVIKIFZPSUQ6T0JKRUNULE9CSkVDVCxPQkpFQ1QsT0JK
RUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIKK1ZPSUQ6T0JKRUNULElOVAorVk9JRDpP
QkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpFQ1QsU1RSSU5HCiBWT0lEOlNUUklORwogVk9JRDpTVFJJ
TkcsU1RSSU5HCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAzMDA1YmQyLi45Mjk3YmI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDUtMDkgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIgc2lnbmFs
cy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBTdXBwb3J0IGZvciB0aGUgbmV3IGxvYWRlciBz
aWduYWxzIGluIERSVC4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBieSBTZXJnaW8gVmlsbGFy
IFNlbmluIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAodXJsUGF0aCk6CisgICAgICAgICh3aWxs
U2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgICh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQp
OgorICAgICAgICAoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAo
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRpbmcpOgorICAgICAg
ICAoZGlkRmFpbExvYWRpbmdXaXRoRXJyb3IpOgorICAgICAgICAoY3JlYXRlV2ViVmlldyk6CisK
IDIwMTEtMDUtMDcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGE2NzFlMWYuLmYzODhjM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjcsNiArNjcsNyBAQCBleHRlcm4gZ2Jv
b2xlYW4gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1faXNfdGFyZ2V0X2l0ZW0oV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qKTsKIGV4dGVybiBHTGlzdCogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X2No
aWxkcmVuKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CiBleHRlcm4gdm9pZCB3ZWJraXRfd2ViX3Nl
dHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZpZXcqIHZpZXcsIGNv
bnN0IGdjaGFyKiBkaXJlY3RvcnkpOwogZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKK2V4dGVybiBXZWJL
aXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKFdlYktpdFdl
YlZpZXcqKTsKIH0KIAogdm9sYXRpbGUgYm9vbCBkb25lOwpAQCAtOTUsNiArOTYsMTIgQEAgc3Rh
dGljIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBwcmV2VGVzdEJGSXRlbSA9IE5VTEw7CiBjb25zdCB1
bnNpZ25lZCBoaXN0b3J5SXRlbUluZGVudCA9IDg7CiAKIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29u
c3Qgc3RyaW5nJiB0ZXN0UGF0aE9yVVJMKTsKK3N0YXRpYyBjaGFyKiBkZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpOworc3RhdGljIGNoYXIqIGRlc2NyaXB0aW9u
U3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlJl
c291cmNlKiB3ZWJSZXNvdXJjZSk7CitzdGF0aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworc3RhdGljIGNoYXIq
IGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXNwb25zZSog
cmVzcG9uc2UpOworc3RhdGljIGNoYXIqIHVybFBhdGgoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJl
cXVlc3QpOworc3RhdGljIGNoYXIqIHVybFBhdGgoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKTsK
IAogc3RhdGljIGJvb2wgc2hvdWxkTG9nRnJhbWVMb2FkRGVsZWdhdGVzKGNvbnN0IHN0cmluZyYg
cGF0aE9yVVJMKQogewpAQCAtMTA0Nyw4ICsxMDU0LDU0IEBAIHN0YXRpYyB2b2lkIGZyYW1lQ3Jl
YXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJG
cmFtCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJGcmFtZSwgIm5vdGlmeTo6bG9hZC1zdGF0dXMi
LCBHX0NBTExCQUNLKHdlYkZyYW1lTG9hZFN0YXR1c05vdGlmaWVkKSwgTlVMTCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3VyY2UqLCBXZWJLaXROZXR3b3JrUmVxdWVz
dCogcmVxdWVzdCwgV2ViS2l0TmV0d29ya1Jlc3BvbnNlKikKKworc3RhdGljIGNoYXIqIHVybFBh
dGgoU291cFVSSSogdXJpKQoreworICAgIGlmICghdXJpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPnNjaGVtZSwgImh0dHAiKSkKKyAgICAgICAgcmV0dXJu
IHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIEZBTFNFKTsKKworICAgIGdjaGFyKiBiYXNlbmFtZSA9
IGdfcGF0aF9nZXRfYmFzZW5hbWUodXJpLT5wYXRoKTsKKyAgICBnY2hhciogZGlybmFtZSA9IGdf
cGF0aF9nZXRfYmFzZW5hbWUoZ19wYXRoX2dldF9kaXJuYW1lKHVyaS0+cGF0aCkpOworICAgIHJl
dHVybiBnX3N0cmR1cF9wcmludGYoIiVzLyVzIiwgZGlybmFtZSwgYmFzZW5hbWUpOworfQorCitz
dGF0aWMgY2hhciogdXJsUGF0aChTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpCit7CisgICAgY2hh
ciogcGF0aCA9IDA7CisKKyAgICBpZiAoc291cE1lc3NhZ2UpIHsKKyAgICAgICAgU291cFVSSSog
cmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKTsKKyAgICAgICAg
aWYgKHJlcXVlc3RVUkkpCisgICAgICAgICAgICBwYXRoID0gdXJsUGF0aChyZXF1ZXN0VVJJKTsK
KyAgICB9CisgICAgcmV0dXJuIHBhdGg7Cit9CisKK3N0YXRpYyBjaGFyKiB1cmxQYXRoKFdlYktp
dE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisgICAgcmV0
dXJuIHVybFBhdGgoc291cE1lc3NhZ2UpOworfQorCitzdGF0aWMgY2hhciogdXJsUGF0aChXZWJL
aXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgU291cFVSSSogdXJpID0gc291cF91
cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkpOworICAgIHJl
dHVybiB1cmxQYXRoKHVyaSk7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxi
YWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2Vi
S2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwg
V2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZSkKIHsKKyAgICBpZiAoIWRvbmUgJiYgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAg
ICAgR093blB0cjxjaGFyPiByZXF1ZXN0RGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQocmVxdWVzdCkpOworICAgICAgICBHT3duUHRyPGNoYXI+IHJlc3BvbnNlRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpKTsKKyAg
ICAgICAgR093blB0cjxjaGFyPiBwYXRoKHVybFBhdGgocmVxdWVzdCkpOworICAgICAgICBwcmlu
dGYoIiVzIC0gd2lsbFNlbmRSZXF1ZXN0ICVzIHJlZGlyZWN0UmVzcG9uc2UgJXNcbiIsIHBhdGgu
Z2V0KCksCisgICAgICAgICAgICAgICByZXF1ZXN0RGVzY3JpcHRpb24uZ2V0KCksIHJlc3BvbnNl
RGVzY3JpcHRpb24uZ2V0KCkpOworICAgIH0KKwogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMTA1OSwxMSArMTExMiwxNSBAQCBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3RD
YWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYgogICAg
ICAgICAmJiBnX3N0cmNtcDAodXJpLT5ob3N0LCAiMjU1LjI1NS4yNTUuMjU1IikKICAgICAgICAg
JiYgZ19hc2NpaV9zdHJuY2FzZWNtcCh1cmktPmhvc3QsICJsb2NhbGhvc3QiLCA5KSkgewogICAg
ICAgICBwcmludGYoIkJsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCAlc1xuIiwgc291cF91
cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0UpKTsKKyAgICAgICAgLy8gQ2FuY2VsIGxvYWQgb2YgYmxv
Y2tlZCByZXNvdXJjZSB0byBhdm9pZCBwb3RlbnRpYWwKKyAgICAgICAgLy8gbmV0d29yay1yZWxh
dGVkIHRpbWVvdXRzIGluIHRlc3RzLgorICAgICAgICB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3Nl
dF91cmkocmVxdWVzdCwgImFib3V0OmJsYW5rIik7CiAgICAgICAgIHNvdXBfdXJpX2ZyZWUodXJp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAodXJpKQotICAgICAgICBzb3VwX3Vy
aV9mcmVlKHVyaSk7CisKKyAgIGlmICh1cmkpCisgICAgICAgc291cF91cmlfZnJlZSh1cmkpOwog
CiAgICAgaWYgKHNvdXBNZXNzYWdlKSB7CiAgICAgICAgIGNvbnN0IHNldDxzdHJpbmc+JiBjbGVh
ckhlYWRlcnMgPSBnTGF5b3V0VGVzdENvbnRyb2xsZXItPndpbGxTZW5kUmVxdWVzdENsZWFySGVh
ZGVycygpOwpAQCAtMTA3Miw2ICsxMTI5LDEyMiBAQCBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVl
c3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYgog
ICAgIH0KIH0KIAorc3RhdGljIGNoYXIqIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBj
aGFyKiB1cmlTdHJpbmcpCit7CisgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4KHVyaVN0cmluZywg
ImZpbGU6Ly8iKSkKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVwKHVyaVN0cmluZyk7CisKKyAgICBy
ZXR1cm4gZ19wYXRoX2dldF9iYXNlbmFtZSh1cmlTdHJpbmcpOworfQorCitzdGF0aWMgY2hhciog
ZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoU291cFVSSSogdXJpKQoreworICAgIGlm
ICghdXJpKQorICAgICAgICByZXR1cm4gZ19zdHJkdXAoIiIpOworCisgICAgR093blB0cjxjaGFy
PiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgZmFsc2UpKTsKKyAgICByZXR1cm4g
dXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHVyaVN0cmluZy5nZXQoKSk7Cit9CisKK3N0YXRpYyBj
aGFyKiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgU291cFVSSSogdXJp
ID0gc291cF91cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkp
OworICAgIGNoYXIqIGRlc2NyaXB0aW9uOworCisgICAgaWYgKHdlYlJlc291cmNlID09IHdlYmtp
dF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZSh3ZWJWaWV3KQorICAgICAgICAmJiAoIXdlYmtp
dF93ZWJfdmlld19nZXRfcHJvZ3Jlc3Mod2ViVmlldykgfHwgZ19zdHJfZXF1YWwodXJpLT5zY2hl
bWUsICJmaWxlIikpKQorICAgICAgICBkZXNjcmlwdGlvbiA9IGdfc3RyZHVwKCI8dW5rbm93bj4i
KTsKKyAgICBlbHNlCisgICAgICAgIGRlc2NyaXB0aW9uID0gdXJsUGF0aCh3ZWJSZXNvdXJjZSk7
CisKKyAgICBpZiAodXJpKQorICAgICAgICBzb3VwX3VyaV9mcmVlKHVyaSk7CisKKyAgICByZXR1
cm4gZGVzY3JpcHRpb247Cit9CisKK3N0YXRpYyBjaGFyKiBkZXNjcmlwdGlvblN1aXRhYmxlRm9y
VGVzdFJlc3VsdChHRXJyb3IqIGVycm9yLCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2Up
Cit7CisgICAgY29uc3QgZ2NoYXIqIGVycm9yRG9tYWluID0gZ19xdWFya190b19zdHJpbmcoZXJy
b3ItPmRvbWFpbik7CisgICAgR093blB0cjxjaGFyPiByZXNvdXJjZVVSSVN0cmluZyh1cmxTdWl0
YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKHdlYlJlc291cmNl
KSkpOworCisgICAgaWYgKCFnX2FzY2lpX3N0cm5jYXNlY21wKGVycm9yRG9tYWluLCAid2Via2l0
LW5ldHdvcmstZXJyb3ItcXVhcmsiLCAyNikpCisgICAgICAgIGVycm9yRG9tYWluID0gIk5TVVJM
RXJyb3JEb21haW4iOworCisgICAgLy8gVE9ETzogdGhlIG90aGVyIHBvcnRzIGdldCB0aGUgZmFp
bGluZ1VSTCBmcm9tIHRoZSBSZXNvdXJjZUVycm9yCisgICAgcmV0dXJuIGdfc3RyZHVwX3ByaW50
ZigiPE5TRXJyb3IgZG9tYWluICVzLCBjb2RlICVkLCBmYWlsaW5nIFVSTCBcIiVzXCI+IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yRG9tYWluLCBlcnJvci0+Y29kZSwgcmVzb3Vy
Y2VVUklTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJs
ZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgR093
blB0cjxjaGFyPiByZXF1ZXN0VVJJU3RyaW5nOworICAgIEdPd25QdHI8Y2hhcj4gbWFpbkRvY3Vt
ZW50VVJJU3RyaW5nOworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisKKyAgICBpZiAoc291cE1lc3NhZ2Up
IHsKKyAgICAgICAgU291cFVSSSogcmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNv
dXBNZXNzYWdlKTsKKyAgICAgICAgU291cFVSSSogbWFpbkRvY3VtZW50VVJJID0gc291cF9tZXNz
YWdlX2dldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSk7CisgICAgICAgIHJlcXVlc3RVUklTdHJp
bmcuc2V0KGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3RVUkkpKTsKKyAg
ICAgICAgbWFpbkRvY3VtZW50VVJJU3RyaW5nLnNldChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVz
dFJlc3VsdChtYWluRG9jdW1lbnRVUkkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXF1ZXN0
VVJJU3RyaW5nLnNldCh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfdXJpKHJlcXVlc3QpKSk7CisgICAgICAgIG1haW5Eb2N1bWVudFVSSVN0cmluZy5z
ZXQodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21h
aW5fdXJpKHJlcXVlc3QpKSk7CisgICAgfQorCisgICAgR093blB0cjxjaGFyPiBwYXRoKHVybFBh
dGgocmVxdWVzdCkpOworICAgIHJldHVybiBnX3N0cmR1cF9wcmludGYoIjxOU1VSTFJlcXVlc3Qg
VVJMICVzLCBtYWluIGRvY3VtZW50IFVSTCAlcywgaHR0cCBtZXRob2QgJXM+IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhdGguZ2V0KCksIG1haW5Eb2N1bWVudFVSSVN0cmluZy5nZXQo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXBNZXNzYWdlID8gc291cE1lc3NhZ2Ut
Pm1ldGhvZCA6ICIobm9uZSkiKTsKK30KKworc3RhdGljIGNoYXIqIGRlc2NyaXB0aW9uU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAg
aWYgKCFyZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIGdfc3RyZHVwKCIobnVsbCkiKTsKKworICAg
IGludCBzdGF0dXNDb2RlID0gMDsKKyAgICBHT3duUHRyPGNoYXI+IHJlc3BvbnNlVVJJU3RyaW5n
KHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfdXJp
KHJlc3BvbnNlKSkpOworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3
b3JrX3Jlc3BvbnNlX2dldF9tZXNzYWdlKHJlc3BvbnNlKTsKKyAgICBHT3duUHRyPGNoYXI+IHBh
dGg7CisgICAgY2hhciogZGVzY3JpcHRpb247CisgICAgaWYgKHNvdXBNZXNzYWdlKSB7CisgICAg
ICAgIHN0YXR1c0NvZGUgPSBzb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGU7CisgICAgICAgIHBhdGgu
c2V0KHVybFBhdGgoc291cE1lc3NhZ2UpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aC5zZXQo
Z19zdHJkdXAoIiIpKTsKKworICAgIGRlc2NyaXB0aW9uID0gZ19zdHJkdXBfcHJpbnRmKCI8TlNV
UkxSZXNwb25zZSAlcywgaHR0cCBzdGF0dXMgY29kZSAlZD4iLCBwYXRoLmdldCgpLCBzdGF0dXND
b2RlKTsKKyAgICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisKK3N0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYktp
dFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSwgV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25z
ZSkKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgR093blB0cjxjaGFyPiByZXNwb25zZURlc2Ny
aXB0aW9uKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNlKSk7CisgICAg
ICAgIEdPd25QdHI8Y2hhcj4gcGF0aCh1cmxQYXRoKHdlYlJlc291cmNlKSk7CisgICAgICAgIHBy
aW50ZigiJXMgLSBkaWRSZWNlaXZlUmVzcG9uc2UgJXNcbiIsIHBhdGguZ2V0KCksIHJlc3BvbnNl
RGVzY3JpcHRpb24uZ2V0KCkpOworICAgIH0KKworICAgIC8vIFRPRE86IGFkZCAiaGFzIE1JTUUg
dHlwZSIgd2hlbmV2ZXIgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKQorICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgyMjIuCit9CisKK3N0
YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0
V2ViRnJhbWUqIHdlYkZyYW1lLCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7Cisg
ICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcygpKQorICAgICAgICBwcmludGYoIiVzIC0gZGlkRmluaXNoTG9hZGluZ1xuIiwgZGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQod2ViVmlldywgd2ViUmVzb3VyY2UpKTsKK30K
Kworc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmdXaXRoRXJyb3IoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UsIEdF
cnJvciogd2ViRXJyb3IpCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxl
ci0+ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIEdPd25QdHI8Y2hhcj53
ZWJFcnJvclN0cmluZyhkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJFcnJvciwg
d2ViUmVzb3VyY2UpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVy
cm9yOiAlc1xuIiwgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQod2ViVmlldywgd2Vi
UmVzb3VyY2UpLAorICAgICAgICAgICAgICAgd2ViRXJyb3JTdHJpbmcuZ2V0KCkpOworICAgIH0K
K30KKwogc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogewogICAgIFdlYktp
dFdlYlZpZXcqIHZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsK
QEAgLTExMDEsNyArMTI3NCw5IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3
KCkKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmRyYWctZmFpbGVkIiwgZHJhZ0ZhaWxl
ZENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZnJhbWUtY3JlYXRl
ZCIsIGZyYW1lQ3JlYXRlZENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrLCAw
LAotCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNl
aXZlZCIsIGRpZFJlY2VpdmVSZXNwb25zZSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWdu
YWw6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQiLCBkaWRGaW5pc2hMb2FkaW5nLCAwLAorICAg
ICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtbG9hZC1mYWlsZWQiLCBkaWRGYWls
TG9hZGluZ1dpdGhFcnJvciwgMCwKICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgIGNv
bm5lY3RFZGl0aW5nQ2FsbGJhY2tzKHZpZXcpOwogCi0tIAoxLjcuNC40
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92777</attachid>
            <date>2011-05-09 03:49:59 -0700</date>
            <delta_ts>2011-05-10 12:04:43 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>43484</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlODQ4MjYzMWU1NTg5YmFkNTMzZGM5YWExZjFhYzVkMjAzMThiODcyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIxIEFwciAyMDExIDE0OjU1OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCAgICAgICAgICAgICAgICAgICB8ICAgIDcgLQogLi4uL2xvYWRlci9maWxlLXByb3RvY29sLWZy
YWdtZW50LWV4cGVjdGVkLnR4dCAgICAgfCAgICA3ICsKIC4uLmlsbENhY2hlUmVzcG9uc2UtZGVs
ZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDYgKysrKysKIC4uLi9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwICAgIHwgICA1MCArKysrLS0KIFNv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgIHwgICAzOCAr
KysrLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggICAg
fCAgICA0ICsKIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgICAg
ICAgIHwgIDEyNyArKysrKysrKysrKysrKwogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnJlc291cmNlLmNwcCAgICAgfCAgIDg4ICsrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgIHwgICA5MiArKysrKysrKysrLQogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0ICAgICAgICAgICAgICAgfCAgICA2ICst
CiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MjEgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwICAgICAg
ICB8ICAxNzkgKysrKysrKysrKysrKysrKysrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDY0NyBpbnNl
cnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3Rl
ZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOWNkNmNmYy4uYzkwMjdiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDExLTA1LTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBJbXByb3Zl
IEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCisKKyAgICAgICAgVW5za2lwIHRl
c3RzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9taXNj
L3dpbGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDoKKwogMjAx
MS0wNS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByODYwNDIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmlu
ZGV4IDgyZmNlZmIuLjVkNjA3NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC00MDQs
MTIgKzQwNCw2IEBAIGZhc3QvaHRtbC90YWItb3JkZXIuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdh
dGVzOgogIyBOZWVkIHByb3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotIyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTcwCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9lbXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwK
LWZhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbAotIyBUZXN0cyBmYWlsaW5n
IGJlY2F1c2Ugb2YgbWlzc2luZyByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIGNhbGxiYWNrcy4KLWZh
c3QvbG9hZGVyL21haW4tZG9jdW1lbnQtdXJsLWZvci1ub24taHR0cC1sb2Fkcy5odG1sCi1odHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKICMgVGVzdHMgZmFpbGlu
ZyBiZWNhdXNlIG9mIG1pc3NpbmcgcG9saWN5IGRlbGVnYXRlIGNhbGxiYWNrcy4KIGZhc3QvbG9h
ZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCiBmYXN0L2xvYWRlci9wb2xp
Y3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpvb21lZC5odG1sCkBAIC05MDgsNyArOTAyLDYg
QEAgZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAuaHRtbAogIyBOZXcgdGVzdCBuZWVk
cyBlbmhhbmNlZCBmcmFtZWxvYWRlciBkZWxlZ2F0ZSBsb2dnaW5nIGluIERSVAogIyBEaXNjdXNz
ZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTI4CiBmYXN0
L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sIAotZmFzdC9sb2FkZXIv
bnVsbC1yZXF1ZXN0LWFmdGVyLXdpbGxTZW5kUmVxdWVzdC5odG1sCiAKICMgTmVlZCB0byBkdW1w
IGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSkuCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVy
L2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjFjZDBkMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACityZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MgLSB3aWxsU2VuZFJl
cXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzLCBtYWluIGRv
Y3VtZW50IFVSTCBmaWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4g
cmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIHdpbGxT
ZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MsIG1h
aW4gZG9jdW1lbnQgVVJMIGZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGlu
ZworcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJl
c3BvbnNlIHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVz
b3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNl
IHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVzb3VyY2Vz
L3N0eWxlc2hlZXQuY3NzIC0gZGlkRmluaXNoTG9hZGluZworVGhpcyB0ZXN0cyB0aGF0IGZpbGU6
IFVSTCBhcmUgbG9hZGVkIHNlcGFyYXRlbHkgZXZlbiBpZiB0aGV5IGRpZmZlciBieSB0aGUgZnJh
Z21lbnQgb25seS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rl
c3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNw
b25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKaW5kZXggYjdlYTU3ZC4uYTRmMTdi
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93
aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNwb25zZS1k
ZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1s
IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNwb25zZS1zdWNjZXNzLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRl
bGVnYXRlLWNhbGxiYWNrLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAo
bnVsbCkKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNw
b25zZS1zdWNjZXNzLmh0bWwgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dpbGxDYWNoZVJlc3BvbnNlLXN1Y2Nl
c3MuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBUaGlzIHRlc3RzIGZvciB0aGUgd2lsbENh
Y2hlUmVzcG9uc2UgcmVzb3VyY2UgZGVsZWdhdGUgY2FsbGJhY2sgYXMgYWRkZWQgZm9yIHJhZGFy
IDUwMDg5MjUuCiBUaGUgdGVzdCBpcyBvbmx5IG1lYW5pbmdmdWwgaWYgeW91IGFyZSBydW5uaW5n
IGl0IHVuZGVyIER1bXBSZW5kZXJUcmVlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAxNTNmMmYzLi45
OWRkY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDUtMDkgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBOZXcgc2lnbmFsczoKKyAgICAgICAg
V2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmcKKyAgICAgICAgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYkZy
YW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYkZyYW1lOjpy
ZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJGcmFtZTo6
cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNl
LXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZAorICAgICAg
ICBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJS
ZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6
cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1jb250
ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2Fk
LWZhaWxlZAorCisgICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4g
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcp
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6CisgICAgICAgICh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
c2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY2xhc3NfaW5p
dCk6CisgICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tYWluX3VyaSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1
ZXN0Lmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJl
c291cmNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdG1hcnNoYWwubGlzdDoKKwogMjAxMS0w
NS0wNiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDc4MjY5OTAuLmNjZjQx
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTM4MCwxNCArMzgwLDggQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwKICAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOwog
ICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+IG5ldHdvcmtSZXF1ZXN0KGFkb3B0R1Jl
ZihraXROZXcocmVxdWVzdCkpKTsKIAotICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwo
KSkgewotICAgICAgICAvLyBUaGlzIGlzIGEgcmVkaXJlY3QsIHNvIHdlIG5lZWQgdG8gdXBkYXRl
IHRoZSBXZWJSZXNvdXJjZSdzIGtub3dsZWRnZQotICAgICAgICAvLyBvZiB0aGUgVVJJLgotICAg
ICAgICBnX2ZyZWUod2ViUmVzb3VyY2UtPnByaXYtPnVyaSk7Ci0gICAgICAgIHdlYlJlc291cmNl
LT5wcml2LT51cmkgPSBnX3N0cmR1cChyZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgIH0KLSAgICAKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJl
c291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jl
cXVlc3QuZ2V0KCksIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9i
eV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2ViUmVzb3VyY2Us
IG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogCiAgICAgLy8g
RmVlZCBhbnkgY2hhbmdlcyBiYWNrIGludG8gdGhlIFJlc291cmNlUmVxdWVzdCBvYmplY3QuCiAg
ICAgU291cE1lc3NhZ2UqIG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNz
YWdlKG5ldHdvcmtSZXF1ZXN0LmdldCgpKTsKQEAgLTQ1MSwxMyArNDQ1LDIyIEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2Uo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewogICAgIC8vIFVwZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAtIHNv
bWUgYXJlIG9ubHkgc2V0CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KICAgICBs
b2FkZXItPnJlcXVlc3QoKS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBNZXNzYWdl
RmxhZ3MoKSk7CiAKICAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdj
aGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRX
ZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdl
YlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworICAgIEdSZWZQdHI8V2ViS2l0TmV0d29y
a1Jlc3BvbnNlPiBuZXR3b3JrUmVzcG9uc2UoYWRvcHRHUmVmKGtpdE5ldyhyZXNwb25zZSkpKTsK
KworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgInJlc3BvbnNlLXJlY2Vp
dmVkIiwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV9mcmFtZSwgInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2UsIG5ldHdv
cmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJy
ZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBuZXR3b3Jr
UmVzcG9uc2UuZ2V0KCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24s
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKQEAgLTExMzAsNyArMTEzMywxMyBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3Qg
S1VSTCYgdQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250
ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIEdPd25Q
dHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOworICAgIFdl
YktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3Vy
Y2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7CisKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUod2ViUmVzb3VyY2UsICJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsIGRhdGFMZW5n
dGgpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQiLCB3ZWJSZXNvdXJjZSwgZGF0YUxlbmd0aCk7CisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZl
ZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBkYXRhTGVuZ3RoKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKQEAgLTExNTksMjAgKzExNjgs
MjcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIKIAogICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vf
aW5pdF93aXRoX2NvcmVfcmVzb3VyY2Uod2ViUmVzb3VyY2UsIGNvcmVSZXNvdXJjZS5nZXQoKSk7
CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90aWZ5IHRoZSBhcHBsaWNh
dGlvbiB0aGF0IHRoZSByZXNvdXJjZQotICAgIC8vIGZpbmlzaGVkIGxvYWRpbmcsIG1heWJlIHVz
aW5nIGEgbG9hZC1zdGF0dXMgcHJvcGVydHkgaW4gdGhlCi0gICAgLy8gV2ViS2l0V2ViUmVzb3Vy
Y2Ugb2JqZWN0LCBzaW1pbGFyIHRvIHdoYXQgd2UgZG8gZm9yIFdlYktpdFdlYkZyYW1lJwotICAg
IC8vIHNpZ25hbC4KLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIE5vdGlmeSBsaXN0ZW5l
cnMKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkaW5nLWZpbmlz
aGVkIik7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1sb2Fk
aW5nLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3
ZWJWaWV3LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNl
KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIHN0YXRpY19jYXN0PFdlYktpdDo6
RG9jdW1lbnRMb2FkZXIqPihsb2FkZXIpLT5kZWNyZWFzZUxvYWRDb3VudChpZGVudGlmaWVyKTsK
IAotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3RpZnkgdGhlIGFwcGxpY2F0
aW9uIHRoYXQgdGhlIHJlc291cmNlIGZhaWxlZAotICAgIC8vIGxvYWRpbmcsIG1heWJlIGEgJ2xv
YWQtZXJyb3InIHNpZ25hbCBpbiB0aGUgV2ViS2l0V2ViUmVzb3VyY2Ugb2JqZWN0LgotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9t
RnJhbWUobV9mcmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmluZyh0b1N0
cmluZyhpZGVudGlmaWVyKSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlID0g
d2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3RyaW5nLmdl
dCgpKTsKKyAgICBHT3duUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLmVycm9yQ29k
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworCisgICAgLy8gTm90
aWZ5IGxpc3RlbmVycworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgImxv
YWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSht
X2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0
KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZC1m
YWlsZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0KCkpOwogfQogCiBib29s
IEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAKaW5kZXggNzAwNTYzNy4uM2MzZWEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3Qu
Y3BwCkBAIC00Niw2ICs0Niw3IEBAIEdfREVGSU5FX1RZUEUoV2ViS2l0TmV0d29ya1JlcXVlc3Qs
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpOwogc3RydWN0IF9XZWJLaXRO
ZXR3b3JrUmVxdWVzdFByaXZhdGUgewogICAgIGdjaGFyKiB1cmk7CiAgICAgU291cE1lc3NhZ2Uq
IG1lc3NhZ2U7CisgICAgZ2NoYXIqIG1haW5VUkk7CiB9OwogCiBlbnVtIHsKQEAgLTUzLDYgKzU0
LDcgQEAgZW51bSB7CiAKICAgICBQUk9QX1VSSSwKICAgICBQUk9QX01FU1NBR0UsCisgICAgUFJP
UF9NQUlOX1VSSSwKIH07CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZGlz
cG9zZShHT2JqZWN0KiBvYmplY3QpCkBAIC03NCw2ICs3Niw3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdE5l
dHdvcmtSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAKICAgICBnX2ZyZWUo
cHJpdi0+dXJpKTsKKyAgICBnX2ZyZWUocHJpdi0+bWFpblVSSSk7CiAKICAgICBHX09CSkVDVF9D
TEFTUyh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7CiB9CkBAIC04MSw2ICs4NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlELCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXROZXR3b3JrUmVx
dWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2JqZWN0KTsKKyAgICBXZWJL
aXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCiAgICAgc3dp
dGNoKHByb3BlcnR5SUQpIHsKICAgICBjYXNlIFBST1BfVVJJOgpAQCAtODksNiArOTMsOSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW50IHByb3BlcnR5SQogICAgIGNhc2UgUFJPUF9NRVNTQUdFOgogICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3Nh
Z2UocmVxdWVzdCkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfTUFJTl9VUkk6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgcHJpdi0+bWFpblVSSSk7CisgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKICAgICB9CkBAIC0xMDYsNiArMTEz
LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUkKICAgICBjYXNlIFBST1BfTUVTU0FHRToKICAg
ICAgICAgcHJpdi0+bWVzc2FnZSA9IFNPVVBfTUVTU0FHRShnX3ZhbHVlX2R1cF9vYmplY3QodmFs
dWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX01BSU5fVVJJOgorICAgICAgICBw
cml2LT5tYWluVVJJID0gZ192YWx1ZV9kdXBfc3RyaW5nKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOwogICAgIH0KQEAgLTE1MCw2ICsxNjAsMjAgQEAg
c3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdE5ldHdv
cmtSZXF1ZXN0Q2xhc3MqIHJlcXVlc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9UWVBFX01FU1NBR0UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncyko
V0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwogCisgICAg
LyoqCisgICAgICogV2ViS2l0TmV0d29ya1JlcXVlc3Q6bWFpbi11cmk6CisgICAgICoKKyAgICAg
KiBUaGUgI1Jlc291cmNlUmVxdWVzdCB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0LgorICAgICAqCisg
ICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9NQUlOX1VSSSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoIm1haW4tdXJpIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTWFpblVS
SSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJUaGUgUmVzb3VyY2VSZXF1ZXN0IG1haW4gVVJJLiIpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1BhcmFtRmxh
Z3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKKwog
ICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihXZWJLaXRO
ZXR3b3JrUmVxdWVzdFByaXZhdGUpKTsKIH0KIApAQCAtMjU1LDkgKzI3OSw5IEBAIFdlYktpdE5l
dHdvcmtSZXF1ZXN0KiBraXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QpCiB7CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gc291cE1lc3NhZ2UoYWRv
cHRHUmVmKHJlc291cmNlUmVxdWVzdC50b1NvdXBNZXNzYWdlKCkpKTsKICAgICBpZiAoc291cE1l
c3NhZ2UpCi0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFVRVNUKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwgc291cE1lc3NhZ2UuZ2V0
KCksIE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3NhZ2UiLCBzb3VwTWVzc2Fn
ZS5nZXQoKSwgIm1haW4tdXJpIiwgcmVzb3VyY2VSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVz
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCkpOwogCi0gICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwg
InVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxM
KSk7CisgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJ
VF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCAibWFpbi11cmkiLCByZXNvdXJjZVJlcXVlc3QuZmlyc3RQYXJ0
eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7CiB9CiAKIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBjb3JlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQpA
QCAtMjcxLDMgKzI5NSwxMyBAQCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgY29yZShXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKIH0KIAogfQorCitjb25zdCBnY2hhcioKK3dlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0
KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1Qo
cmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2
ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIHJldHVybiBwcml2LT5tYWluVVJJOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaAppbmRleCA4MjVj
YTllLi4wN2VlYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0
d29ya3JlcXVlc3QuaApAQCAtNjksNiArNjksMTAgQEAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9n
ZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QpOwogV0VCS0lUX0FQSSBTb3Vw
TWVzc2FnZSAqCiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiByZXF1ZXN0KTsKIAorCitXRUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFy
ICoKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtSZXF1
ZXN0KiByZXF1ZXN0KTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRleCBhMGU0MGIzLi5mNGYyNGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTU0LDEwICs1
NCwxMiBAQAogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGds
b2JhbHNwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndl
YmtpdG5ldHdvcmtyZXNwb25zZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJp
dmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCIKICNpbmNs
dWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJm
cmFtZXByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUg
IndlYmtpdHdlYnZpZXcuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KQEAgLTk4LDYgKzEwMCwxMyBAQCBlbnVt
IHsKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKICAgICBTQ1JP
TExCQVJTX1BPTElDWV9DSEFOR0VELAorICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscwor
ICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcsCisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVD
RUlWRUQsCisgICAgUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hFRCwKKyAgICBSRVNPVVJDRV9DT05U
RU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FEX0ZBSUxFRCwKKwogICAgIExB
U1RfU0lHTkFMCiB9OwogCkBAIC0yOTUsNiArMzA0LDEyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRf
d2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFzcykKICAg
ICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQsCiAgICAgICAgICAgICBHX1RZ
UEVfQk9PTEVBTiwgMCk7CiAKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpyZXNv
dXJjZS1yZXF1ZXN0LXN0YXJ0aW5nOgorICAgICAqIEB3ZWJfZnJhbWU6IHRoZSAjV2ViS2l0V2Vi
RnJhbWUgd2hvc2UgbG9hZCBkaXNwYXRjaGVkIHRoaXMgcmVxdWVzdAorICAgICAqIEB3ZWJfcmVz
b3VyY2U6IGFuIGVtcHR5ICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3QKKyAgICAgKiBAcmVxdWVz
dDogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZAorICAg
ICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2UgcmVwcmVzZW50aW5nIHRo
ZSByZWRpcmVjdAorICAgICAqIHJlc3BvbnNlLCBpZiBhbnkKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhIHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudC4gWW91IGNhbiBtb2RpZnkgdGhl
CisgICAgICogcmVxdWVzdCB3aGlsZSBoYW5kbGluZyB0aGlzIHNpZ25hbC4gWW91IGNhbiBzZXQg
dGhlIFVSSSBpbiB0aGUKKyAgICAgKiAjV2ViS2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0IGl0c2Vs
ZiwgYW5kIGFkZC9yZW1vdmUvcmVwbGFjZQorICAgICAqIGhlYWRlcnMgdXNpbmcgdGhlICNTb3Vw
TWVzc2FnZSBvYmplY3QgaXQgY2FycmllcywgaWYgaXQgaXMKKyAgICAgKiBwcmVzZW50LiBTZWUg
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZSgpLiBTZXR0aW5nIHRoZQorICAgICAq
IHJlcXVlc3QgVVJJIHRvICJhYm91dDpibGFuayIgd2lsbCBlZmZlY3RpdmVseSBjYXVzZSB0aGUg
cmVxdWVzdAorICAgICAqIHRvIGxvYWQgbm90aGluZywgYW5kIGNhbiBiZSB1c2VkIHRvIGRpc2Fi
bGUgdGhlIGxvYWRpbmcgb2YKKyAgICAgKiBzcGVjaWZpYyByZXNvdXJjZXMuCisgICAgICoKKyAg
ICAgKiBOb3RpY2UgdGhhdCBpbmZvcm1hdGlvbiBhYm91dCBhbiBldmVudHVhbCByZWRpcmVjdCBp
cyBhdmFpbGFibGUKKyAgICAgKiBpbiBAcmVzcG9uc2UncyAjU291cE1lc3NhZ2UsIG5vdCBpbiB0
aGUgI1NvdXBNZXNzYWdlIGNhcnJpZWQgYnkKKyAgICAgKiB0aGUgQHJlcXVlc3QuIElmIEByZXNw
b25zZSBpcyAlTlVMTCwgdGhlbiB0aGlzIGlzIG5vdCBhCisgICAgICogcmVkaXJlY3RlZCByZXF1
ZXN0LgorICAgICAqCisgICAgICogVGhlICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3Qgd2lsbCBi
ZSB0aGUgc2FtZSB0aHJvdWdob3V0IGFsbAorICAgICAqIHRoZSBsaWZldGltZSBvZiB0aGUgcmVz
b3VyY2UsIGJ1dCB0aGUgY29udGVudHMgbWF5IGNoYW5nZSBmcm9tCisgICAgICogaW5iZXR3ZWVu
IHNpZ25hbCBlbWlzc2lvbnMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8K
KyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElOR10g
PSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLAorICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURf
X09CSkVDVF9PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDMsCisgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFUVVFU1QsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BP
TlNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNl
LXJlY2VpdmVkCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNw
b25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdl
YlJlc291cmNlIGJlaW5nIGxvYWRlZAorICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3
b3JrUmVzcG9uc2UgdGhhdCB3YXMgcmVjZWl2ZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hl
biB0aGUgZmlyc3QgYnl0ZSBvZiBkYXRhIGFycml2ZXMKKyAgICAgKgorICAgICAqIFNpbmNlOiAx
LjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9SRVNQ
T05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVk
IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAor
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDIsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBX
RUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2Vi
RnJhbWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAj
V2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2Vi
UmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICoKKyAg
ICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRl
ZAorICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9m
cmFtZV9zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJy
ZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEws
IE5VTEwsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVT
T1VSQ0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUg
dGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAj
V2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVk
OiB0aGUgcmVzb3VyY2UgZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoK
KyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25h
bHNbUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNv
dXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBO
VUxMLCBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0lOVCwK
KyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VC
X1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisKKyAgICAvKgorICAgICAqIFdl
YktpdFdlYkZyYW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZAorICAgICAqIEB3ZWJGcmFtZTogdGhl
ICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3
ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAg
KiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAorICAgICAqCisgICAg
ICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAgICAgKgorICAgICAq
IFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNP
VVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWQtZmFpbGVkIiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRf
bWFyc2hhbF9WT0lEX19PQkpFQ1RfUE9JTlRFUiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAy
LAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19U
WVBFX1BPSU5URVIpOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVh
bCBtZXRob2RzCiAgICAgICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2VicmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlLmNwcAppbmRleCBiN2Y0MDM2Li42YTFkYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0
ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRuZXR3b3Jr
cmVzcG9uc2UuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCIKICNpbmNs
dWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KQEAgLTQ1LDE0ICs0Niwy
NSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewotICAgIFBST1BfMCwKKyAg
ICAvLyBSZXNvdXJjZSBsb2FkaW5nCisgICAgUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgTE9BRElO
R19GSU5JU0hFRCwKKyAgICBDT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBMT0FEX0ZBSUxF
RCwKKworICAgIExBU1RfU0lHTkFMCit9OwogCitlbnVtIHsKKyAgICBQUk9QXzAsCiAgICAgUFJP
UF9VUkksCiAgICAgUFJPUF9NSU1FX1RZUEUsCiAgICAgUFJPUF9FTkNPRElORywKICAgICBQUk9Q
X0ZSQU1FX05BTUUKIH07CiAKK3N0YXRpYyBndWludCB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBHX0RFRklORV9UWVBFKFdlYktpdFdlYlJlc291
cmNlLCB3ZWJraXRfd2ViX3Jlc291cmNlLCBHX1RZUEVfT0JKRUNUKTsKIAogc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYyk7CkBAIC0xMDEsMTUgKzEx
Myw4NSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplKEdPYmplY3Qq
IG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3Jlc291cmNlX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVz
b3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiBrbGFzcykKK3N0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNsYXNz
KiB3ZWJSZXNvdXJjZUNsYXNzKQogewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9jbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RfY2xhc3Mg
PSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKTsKIAogICAgIGdvYmplY3RfY2xhc3Mt
PmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Rpc3Bvc2U7CiAgICAgZ29iamVjdF9jbGFz
cy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplOwogICAgIGdvYmplY3Rf
Y2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Byb3BlcnR5Owog
ICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2V0
X3Byb3BlcnR5OwogCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9uc2Ut
cmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVp
bmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0
aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBi
eXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICov
CisgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdf
c2lnbmFsX25ldygicmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19P
QkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgIFdFQktJVF9U
WVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJj
ZTo6bG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdh
cyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxl
ZCB0byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTE9BRF9GQUlMRURdID0gZ19zaWduYWxfbmV3KCJsb2Fk
LWZhaWxlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNz
KSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAg
ICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAgICAgICAgICAgIEdf
VFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKKyAg
ICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJSZXNv
dXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKgorICAgICAq
IEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisg
ICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Jlc291
cmNlX3NpZ25hbHNbTE9BRElOR19GSU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWRpbmctZmlu
aXNoZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyks
CisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAgR19UWVBF
X05PTkUsIDApOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6Y29udGVudC1s
ZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0aGUgcmVzb3VyY2Ug
ZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhl
IGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTog
MS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbQ09OVEVOVF9M
RU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIs
CisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAg
Z19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0lOVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAx
LAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJS
ZXNvdXJjZTp1cmk6CiAgICAgICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcAppbmRleCBmZmQyOGYzLi5kZTEwYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0xODMsNyArMTgzLDYgQEAgZW51bSB7CiAgICAgVU5E
TywKICAgICBSRURPLAogICAgIERBVEFCQVNFX1FVT1RBX0VYQ0VFREVELAotICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCiAgICAgRE9DVU1FTlRfTE9BRF9GSU5JU0hFRCwKICAgICBHRU9M
T0NBVElPTl9QT0xJQ1lfREVDSVNJT05fUkVRVUVTVEVELAogICAgIEdFT0xPQ0FUSU9OX1BPTElD
WV9ERUNJU0lPTl9DQU5DRUxMRUQsCkBAIC0yMDIsNiArMjAxLDExIEBAIGVudW0gewogICAgIEVE
SVRJTkdfRU5ERUQsCiAgICAgVklFV1BPUlRfQVRUUklCVVRFU19SRUNPTVBVVEVfUkVRVUVTVEVE
LAogICAgIFZJRVdQT1JUX0FUVFJJQlVURVNfQ0hBTkdFRCwKKyAgICBSRVNPVVJDRV9SRVFVRVNU
X1NUQVJUSU5HLAorICAgIFJFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAorICAgIFJFU09VUkNF
X0xPQURJTkdfRklOSVNIRUQsCisgICAgUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQs
CisgICAgUkVTT1VSQ0VfTE9BRF9GQUlMRUQsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTI3
NTAsNiArMjc1NCw5MiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChX
ZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBF
X1ZJRVdQT1JUX0FUVFJJQlVURVMpOwogCiAgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojpy
ZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdo
aWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2Vi
RnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6
IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0
aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAg
ICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisg
ICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNb
UkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXNw
b25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xh
c3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisg
ICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZS
QU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAg
V0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgKiBAd2ViVmlldzogdGhlIG9i
amVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dl
YktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJl
c291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAqCisg
ICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2Fk
ZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJf
dmlld19zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJy
ZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVM
TCwgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1Qs
CisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7CisKKyAgICAv
KgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVk
CisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAor
ICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJl
Y2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0
aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRh
IGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0
YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUu
MQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0NPTlRFTlRf
TEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtY29udGVudC1sZW5ndGgt
cmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9JTlQsCisgICAgICAgICAg
ICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAg
ICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAgICAgIEdfVFlQRV9J
TlQpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2FkLWZhaWxl
ZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwK
KyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyBy
ZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2Ug
dGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0
cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0
byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tSRVNPVVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJl
c291cmNlLWxvYWQtZmFpbGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVM
TCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1RfUE9JTlRF
UiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAg
ICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2Vi
X3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXRtYXJzaGFsLmxpc3QKaW5kZXggNTM3MmM1Ny4uYjc4OTA4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdG1hcnNoYWwubGlzdApAQCAtMTcsOSArMTcsMTMgQEAgT0JKRUNUOk9CSkVDVAog
T0JKRUNUOlNUUklORyxTVFJJTkcsUE9JTlRFUgogT0JKRUNUOlZPSUQKIFZPSUQ6T0JKRUNULE9C
SkVDVAorVk9JRDpPQkpFQ1QsT0JKRUNULElOVAorVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVAor
Vk9JRDpPQkpFQ1QsT0JKRUNULFBPSU5URVIKIFZPSUQ6T0JKRUNULE9CSkVDVCxPQkpFQ1QsT0JK
RUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIKK1ZPSUQ6T0JKRUNULElOVAorVk9JRDpP
QkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpFQ1QsU1RSSU5HCiBWT0lEOlNUUklORwogVk9JRDpTVFJJ
TkcsU1RSSU5HCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAzMDA1YmQyLi45Mjk3YmI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDUtMDkgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIgc2lnbmFs
cy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBTdXBwb3J0IGZvciB0aGUgbmV3IGxvYWRlciBz
aWduYWxzIGluIERSVC4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBieSBTZXJnaW8gVmlsbGFy
IFNlbmluIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAodXJsUGF0aCk6CisgICAgICAgICh3aWxs
U2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgICh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQp
OgorICAgICAgICAoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAo
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRpbmcpOgorICAgICAg
ICAoZGlkRmFpbExvYWRpbmdXaXRoRXJyb3IpOgorICAgICAgICAoY3JlYXRlV2ViVmlldyk6CisK
IDIwMTEtMDUtMDcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGE2NzFlMWYuLjY1OTQxN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjcsNiArNjcsNyBAQCBleHRlcm4gZ2Jv
b2xlYW4gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1faXNfdGFyZ2V0X2l0ZW0oV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qKTsKIGV4dGVybiBHTGlzdCogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X2No
aWxkcmVuKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CiBleHRlcm4gdm9pZCB3ZWJraXRfd2ViX3Nl
dHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdlYlZpZXcqIHZpZXcsIGNv
bnN0IGdjaGFyKiBkaXJlY3RvcnkpOwogZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKK2V4dGVybiBXZWJL
aXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKFdlYktpdFdl
YlZpZXcqKTsKIH0KIAogdm9sYXRpbGUgYm9vbCBkb25lOwpAQCAtOTUsNiArOTYsMTIgQEAgc3Rh
dGljIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBwcmV2VGVzdEJGSXRlbSA9IE5VTEw7CiBjb25zdCB1
bnNpZ25lZCBoaXN0b3J5SXRlbUluZGVudCA9IDg7CiAKIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29u
c3Qgc3RyaW5nJiB0ZXN0UGF0aE9yVVJMKTsKK3N0YXRpYyBjaGFyKiBkZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpOworc3RhdGljIGNoYXIqIGRlc2NyaXB0aW9u
U3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlJl
c291cmNlKiB3ZWJSZXNvdXJjZSk7CitzdGF0aWMgY2hhciogZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworc3RhdGljIGNoYXIq
IGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXNwb25zZSog
cmVzcG9uc2UpOworc3RhdGljIGNoYXIqIHVybFBhdGgoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJl
cXVlc3QpOworc3RhdGljIGNoYXIqIHVybFBhdGgoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKTsK
IAogc3RhdGljIGJvb2wgc2hvdWxkTG9nRnJhbWVMb2FkRGVsZWdhdGVzKGNvbnN0IHN0cmluZyYg
cGF0aE9yVVJMKQogewpAQCAtMTA0Nyw4ICsxMDU0LDU0IEBAIHN0YXRpYyB2b2lkIGZyYW1lQ3Jl
YXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJG
cmFtCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJGcmFtZSwgIm5vdGlmeTo6bG9hZC1zdGF0dXMi
LCBHX0NBTExCQUNLKHdlYkZyYW1lTG9hZFN0YXR1c05vdGlmaWVkKSwgTlVMTCk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3VyY2UqLCBXZWJLaXROZXR3b3JrUmVxdWVz
dCogcmVxdWVzdCwgV2ViS2l0TmV0d29ya1Jlc3BvbnNlKikKKworc3RhdGljIGNoYXIqIHVybFBh
dGgoU291cFVSSSogdXJpKQoreworICAgIGlmICghdXJpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGlmIChnX3N0cl9lcXVhbCh1cmktPnNjaGVtZSwgImh0dHAiKSkKKyAgICAgICAgcmV0dXJu
IHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIEZBTFNFKTsKKworICAgIGdjaGFyKiBiYXNlbmFtZSA9
IGdfcGF0aF9nZXRfYmFzZW5hbWUodXJpLT5wYXRoKTsKKyAgICBnY2hhciogZGlybmFtZSA9IGdf
cGF0aF9nZXRfYmFzZW5hbWUoZ19wYXRoX2dldF9kaXJuYW1lKHVyaS0+cGF0aCkpOworICAgIHJl
dHVybiBnX3N0cmR1cF9wcmludGYoIiVzLyVzIiwgZGlybmFtZSwgYmFzZW5hbWUpOworfQorCitz
dGF0aWMgY2hhciogdXJsUGF0aChTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpCiB7CisgICAgY2hh
ciogcGF0aCA9IDA7CisKKyAgICBpZiAoc291cE1lc3NhZ2UpIHsKKyAgICAgICAgU291cFVSSSog
cmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKTsKKyAgICAgICAg
aWYgKHJlcXVlc3RVUkkpCisgICAgICAgICAgICBwYXRoID0gdXJsUGF0aChyZXF1ZXN0VVJJKTsK
KyAgICB9CisgICAgcmV0dXJuIHBhdGg7Cit9CisKK3N0YXRpYyBjaGFyKiB1cmxQYXRoKFdlYktp
dE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisgICAgcmV0
dXJuIHVybFBhdGgoc291cE1lc3NhZ2UpOworfQorCitzdGF0aWMgY2hhciogdXJsUGF0aChXZWJL
aXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgU291cFVSSSogdXJpID0gc291cF91
cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkpOworICAgIHJl
dHVybiB1cmxQYXRoKHVyaSk7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxi
YWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2Vi
S2l0V2ViUmVzb3VyY2UqIHJlc291cmNlLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwg
V2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAg
ICAgR093blB0cjxjaGFyPiByZXF1ZXN0RGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQocmVxdWVzdCkpOworICAgICAgICBHT3duUHRyPGNoYXI+IHJlc3BvbnNlRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpKTsKKyAg
ICAgICAgR093blB0cjxjaGFyPiBwYXRoKHVybFBhdGgocmVxdWVzdCkpOworICAgICAgICBwcmlu
dGYoIiVzIC0gd2lsbFNlbmRSZXF1ZXN0ICVzIHJlZGlyZWN0UmVzcG9uc2UgJXNcbiIsIHBhdGgu
Z2V0KCksCisgICAgICAgICAgICAgICByZXF1ZXN0RGVzY3JpcHRpb24uZ2V0KCksIHJlc3BvbnNl
RGVzY3JpcHRpb24uZ2V0KCkpOworICAgIH0KKwogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPndpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMTA1OSw5ICsxMTEyLDEzIEBAIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENh
bGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViCiAgICAg
ICAgICYmIGdfc3RyY21wMCh1cmktPmhvc3QsICIyNTUuMjU1LjI1NS4yNTUiKQogICAgICAgICAm
JiBnX2FzY2lpX3N0cm5jYXNlY21wKHVyaS0+aG9zdCwgImxvY2FsaG9zdCIsIDkpKSB7CiAgICAg
ICAgIHByaW50ZigiQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMICVzXG4iLCBzb3VwX3Vy
aV90b19zdHJpbmcodXJpLCBGQUxTRSkpOworICAgICAgICAvLyBDYW5jZWwgbG9hZCBvZiBibG9j
a2VkIHJlc291cmNlIHRvIGF2b2lkIHBvdGVudGlhbAorICAgICAgICAvLyBuZXR3b3JrLXJlbGF0
ZWQgdGltZW91dHMgaW4gdGVzdHMuCisgICAgICAgIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0
X3VyaShyZXF1ZXN0LCAiYWJvdXQ6YmxhbmsiKTsKICAgICAgICAgc291cF91cmlfZnJlZSh1cmkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAgaWYgKHVyaSkKICAgICAgICAgc291cF91
cmlfZnJlZSh1cmkpOwogCkBAIC0xMDcyLDYgKzExMjksMTIyIEBAIHN0YXRpYyB2b2lkIHdpbGxT
ZW5kUmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1l
KiwgV2ViCiAgICAgfQogfQogCitzdGF0aWMgY2hhciogdXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0
KGNvbnN0IGNoYXIqIHVyaVN0cmluZykKK3sKKyAgICBpZiAoIWdfc3RyX2hhc19wcmVmaXgodXJp
U3RyaW5nLCAiZmlsZTovLyIpKQorICAgICAgICByZXR1cm4gZ19zdHJkdXAodXJpU3RyaW5nKTsK
KworICAgIHJldHVybiBnX3BhdGhfZ2V0X2Jhc2VuYW1lKHVyaVN0cmluZyk7Cit9CisKK3N0YXRp
YyBjaGFyKiBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpCit7
CisgICAgaWYgKCF1cmkpCisgICAgICAgIHJldHVybiBnX3N0cmR1cCgiIik7CisKKyAgICBHT3du
UHRyPGNoYXI+IHVyaVN0cmluZyhzb3VwX3VyaV90b19zdHJpbmcodXJpLCBmYWxzZSkpOworICAg
IHJldHVybiB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQodXJpU3RyaW5nLmdldCgpKTsKK30KKwor
c3RhdGljIGNoYXIqIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKK3sKKyAgICBTb3Vw
VVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKHdlYlJl
c291cmNlKSk7CisgICAgY2hhciogZGVzY3JpcHRpb247CisKKyAgICBpZiAod2ViUmVzb3VyY2Ug
PT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKHdlYlZpZXcpCisgICAgICAgICYm
ICghd2Via2l0X3dlYl92aWV3X2dldF9wcm9ncmVzcyh3ZWJWaWV3KSB8fCBnX3N0cl9lcXVhbCh1
cmktPnNjaGVtZSwgImZpbGUiKSkpCisgICAgICAgIGRlc2NyaXB0aW9uID0gZ19zdHJkdXAoIjx1
bmtub3duPiIpOworICAgIGVsc2UKKyAgICAgICAgZGVzY3JpcHRpb24gPSB1cmxQYXRoKHdlYlJl
c291cmNlKTsKKworICAgIGlmICh1cmkpCisgICAgICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsKKwor
ICAgIHJldHVybiBkZXNjcmlwdGlvbjsKK30KKworc3RhdGljIGNoYXIqIGRlc2NyaXB0aW9uU3Vp
dGFibGVGb3JUZXN0UmVzdWx0KEdFcnJvciogZXJyb3IsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJS
ZXNvdXJjZSkKK3sKKyAgICBjb25zdCBnY2hhciogZXJyb3JEb21haW4gPSBnX3F1YXJrX3RvX3N0
cmluZyhlcnJvci0+ZG9tYWluKTsKKyAgICBHT3duUHRyPGNoYXI+IHJlc291cmNlVVJJU3RyaW5n
KHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkod2Vi
UmVzb3VyY2UpKSk7CisKKyAgICBpZiAoIWdfYXNjaWlfc3RybmNhc2VjbXAoZXJyb3JEb21haW4s
ICJ3ZWJraXQtbmV0d29yay1lcnJvci1xdWFyayIsIDI2KSkKKyAgICAgICAgZXJyb3JEb21haW4g
PSAiTlNVUkxFcnJvckRvbWFpbiI7CisKKyAgICAvLyBUT0RPOiB0aGUgb3RoZXIgcG9ydHMgZ2V0
IHRoZSBmYWlsaW5nVVJMIGZyb20gdGhlIFJlc291cmNlRXJyb3IKKyAgICByZXR1cm4gZ19zdHJk
dXBfcHJpbnRmKCI8TlNFcnJvciBkb21haW4gJXMsIGNvZGUgJWQsIGZhaWxpbmcgVVJMIFwiJXNc
Ij4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JEb21haW4sIGVycm9yLT5jb2Rl
LCByZXNvdXJjZVVSSVN0cmluZy5nZXQoKSk7Cit9CisKK3N0YXRpYyBjaGFyKiBkZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKK3sK
KyAgICBHT3duUHRyPGNoYXI+IHJlcXVlc3RVUklTdHJpbmc7CisgICAgR093blB0cjxjaGFyPiBt
YWluRG9jdW1lbnRVUklTdHJpbmc7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKKworICAgIGlmIChzb3Vw
TWVzc2FnZSkgeworICAgICAgICBTb3VwVVJJKiByZXF1ZXN0VVJJID0gc291cF9tZXNzYWdlX2dl
dF91cmkoc291cE1lc3NhZ2UpOworICAgICAgICBTb3VwVVJJKiBtYWluRG9jdW1lbnRVUkkgPSBz
b3VwX21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKTsKKyAgICAgICAgcmVxdWVz
dFVSSVN0cmluZy5zZXQoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVxdWVzdFVS
SSkpOworICAgICAgICBtYWluRG9jdW1lbnRVUklTdHJpbmcuc2V0KGRlc2NyaXB0aW9uU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KG1haW5Eb2N1bWVudFVSSSkpOworICAgIH0gZWxzZSB7CisgICAgICAg
IHJlcXVlc3RVUklTdHJpbmcuc2V0KHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkpKTsKKyAgICAgICAgbWFpbkRvY3VtZW50VVJJ
U3RyaW5nLnNldCh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X25ldHdvcmtfcmVxdWVz
dF9nZXRfbWFpbl91cmkocmVxdWVzdCkpKTsKKyAgICB9CisKKyAgICBHT3duUHRyPGNoYXI+IHBh
dGgodXJsUGF0aChyZXF1ZXN0KSk7CisgICAgcmV0dXJuIGdfc3RyZHVwX3ByaW50ZigiPE5TVVJM
UmVxdWVzdCBVUkwgJXMsIG1haW4gZG9jdW1lbnQgVVJMICVzLCBodHRwIG1ldGhvZCAlcz4iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5nZXQoKSwgbWFpbkRvY3VtZW50VVJJU3Ry
aW5nLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cE1lc3NhZ2UgPyBzb3Vw
TWVzc2FnZS0+bWV0aG9kIDogIihub25lKSIpOworfQorCitzdGF0aWMgY2hhciogZGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZSkK
K3sKKyAgICBpZiAoIXJlc3BvbnNlKQorICAgICAgICByZXR1cm4gZ19zdHJkdXAoIihudWxsKSIp
OworCisgICAgaW50IHN0YXR1c0NvZGUgPSAwOworICAgIEdPd25QdHI8Y2hhcj4gcmVzcG9uc2VV
UklTdHJpbmcodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNl
X2dldF91cmkocmVzcG9uc2UpKSk7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Vi
a2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0X21lc3NhZ2UocmVzcG9uc2UpOworICAgIEdPd25QdHI8
Y2hhcj4gcGF0aDsKKyAgICBjaGFyKiBkZXNjcmlwdGlvbjsKKyAgICBpZiAoc291cE1lc3NhZ2Up
IHsKKyAgICAgICAgc3RhdHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZTsKKyAgICAg
ICAgcGF0aC5zZXQodXJsUGF0aChzb3VwTWVzc2FnZSkpOworICAgIH0gZWxzZQorICAgICAgICBw
YXRoLnNldChnX3N0cmR1cCgiIikpOworCisgICAgZGVzY3JpcHRpb24gPSBnX3N0cmR1cF9wcmlu
dGYoIjxOU1VSTFJlc3BvbnNlICVzLCBodHRwIHN0YXR1cyBjb2RlICVkPiIsIHBhdGguZ2V0KCks
IHN0YXR1c0NvZGUpOworICAgIHJldHVybiBkZXNjcmlwdGlvbjsKK30KKworc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1l
KiwgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlLCBXZWJLaXROZXR3b3JrUmVzcG9uc2Uq
IHJlc3BvbnNlKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBHT3duUHRyPGNoYXI+IHJlc3Bv
bnNlRGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2Up
KTsKKyAgICAgICAgR093blB0cjxjaGFyPiBwYXRoKHVybFBhdGgod2ViUmVzb3VyY2UpKTsKKyAg
ICAgICAgcHJpbnRmKCIlcyAtIGRpZFJlY2VpdmVSZXNwb25zZSAlc1xuIiwgcGF0aC5nZXQoKSwg
cmVzcG9uc2VEZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgfQorCisgICAgLy8gVE9ETzogYWRkICJo
YXMgTUlNRSB0eXBlIiB3aGVuZXZlciBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpCisg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODIyMi4K
K30KKworc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRXZWJGcmFtZSogd2ViRnJhbWUsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJj
ZSkKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkaW5n
XG4iLCBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJWaWV3LCB3ZWJSZXNvdXJj
ZSkpOworfQorCitzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcihXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNv
dXJjZSwgR0Vycm9yKiB3ZWJFcnJvcikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgR093blB0
cjxjaGFyPndlYkVycm9yU3RyaW5nKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdl
YkVycm9yLCB3ZWJSZXNvdXJjZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmFpbExvYWRp
bmdXaXRoRXJyb3I6ICVzXG4iLCBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJW
aWV3LCB3ZWJSZXNvdXJjZSksCisgICAgICAgICAgICAgICB3ZWJFcnJvclN0cmluZy5nZXQoKSk7
CisgICAgfQorfQorCiBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiB7CiAg
ICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOwpAQCAtMTEwMSw3ICsxMjc0LDkgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0
ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZHJhZy1mYWlsZWQiLCBk
cmFnRmFpbGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpmcmFt
ZS1jcmVhdGVkIiwgZnJhbWVDcmVhdGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAg
ICAic2lnbmFsOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2lsbFNlbmRSZXF1ZXN0Q2Fs
bGJhY2ssIDAsCi0KKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnJlc291cmNlLXJlc3Bv
bnNlLXJlY2VpdmVkIiwgZGlkUmVjZWl2ZVJlc3BvbnNlLCAwLAorICAgICAgICAgICAgICAgICAg
ICAgInNpZ25hbDo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIGRpZEZpbmlzaExvYWRpbmcs
IDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1sb2FkLWZhaWxlZCIs
IGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yLCAwLAogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7
CiAgICAgY29ubmVjdEVkaXRpbmdDYWxsYmFja3Modmlldyk7CiAKLS0gCjEuNy40LjQ=
</data>
<flag name="review"
          id="85802"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92992</attachid>
            <date>2011-05-10 12:04:43 -0700</date>
            <delta_ts>2011-05-11 00:58:49 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>43907</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA1MTMzODAwYTE4ZWU3NmZhMzBkYzU2ZTYwZDMzM2IyYmQxZjRkYjFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIxIEFwciAyMDExIDE0OjU1OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
dXBkYXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
ICAgICAgICAgICAgICAgICAgIHwgICAgNyAtCiAuLi4vbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0ICAgICB8ICAgIDcgKwogLi4uaWxsQ2FjaGVSZXNwb25zZS1kZWxl
Z2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0NiArKysrKysKIC4uLi9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwICAgIHwgICA1NSArKysrKy0tCiBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwICB8ICAgMzgg
KysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oICAg
IHwgICAgNCArCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwICAg
ICAgICB8ICAxMjcgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2VicmVzb3VyY2UuY3BwICAgICB8ICAgODggKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAgICAgICAgIHwgICA5MiArKysrKysrKysrKy0K
IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCAgICAgICAgICAgICAgIHwgICAg
NiArLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDIxICsrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCAg
ICAgICAgfCAgMTcyICsrKysrKysrKysrKysrKysrKystCiAxNCBmaWxlcyBjaGFuZ2VkLCA2NDUg
aW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGJhNDM1NjMuLjc2YjU5ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMS0wNS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1w
cm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgIFVuc2tp
cCB0ZXN0cyBub3cgcGFzc2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9mYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMv
bWlzYy93aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQ6CisK
IDIwMTEtMDUtMTAgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmlu
ZGV4IDdlOTJmMzUuLjY4OGMxY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC00MDQs
MTIgKzQwNCw2IEBAIGZhc3QvaHRtbC90YWItb3JkZXIuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdh
dGVzOgogIyBOZWVkIHByb3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotIyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTcwCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9lbXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwK
LWZhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbAotIyBUZXN0cyBmYWlsaW5n
IGJlY2F1c2Ugb2YgbWlzc2luZyByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIGNhbGxiYWNrcy4KLWZh
c3QvbG9hZGVyL21haW4tZG9jdW1lbnQtdXJsLWZvci1ub24taHR0cC1sb2Fkcy5odG1sCi1odHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKICMgVGVzdHMgZmFpbGlu
ZyBiZWNhdXNlIG9mIG1pc3NpbmcgcG9saWN5IGRlbGVnYXRlIGNhbGxiYWNrcy4KIGZhc3QvbG9h
ZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCiBmYXN0L2xvYWRlci9wb2xp
Y3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpvb21lZC5odG1sCkBAIC05MTEsNyArOTA1LDYg
QEAgZmFzdC9yZXBsYWNlZC9ib3JkZXItcmFkaXVzLWNsaXAuaHRtbAogIyBOZXcgdGVzdCBuZWVk
cyBlbmhhbmNlZCBmcmFtZWxvYWRlciBkZWxlZ2F0ZSBsb2dnaW5nIGluIERSVAogIyBEaXNjdXNz
ZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTI4CiBmYXN0
L2xvYWRlci9yZWN1cnNpdmUtYmVmb3JlLXVubG9hZC1jcmFzaC5odG1sIAotZmFzdC9sb2FkZXIv
bnVsbC1yZXF1ZXN0LWFmdGVyLXdpbGxTZW5kUmVxdWVzdC5odG1sCiAKICMgTmVlZCB0byBkdW1w
IGNvbnRleHQgbWVudSBpdGVtcyBvbiBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sodHJ1ZSkuCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTEwMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVy
L2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjFjZDBkMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACityZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MgLSB3aWxsU2VuZFJl
cXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzLCBtYWluIGRv
Y3VtZW50IFVSTCBmaWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4g
cmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIHdpbGxT
ZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MsIG1h
aW4gZG9jdW1lbnQgVVJMIGZpbGUtcHJvdG9jb2wtZnJhZ21lbnQuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGlu
ZworcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJl
c3BvbnNlIHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVz
b3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNl
IHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywgaHR0cCBzdGF0dXMgY29kZSAwPgorcmVzb3VyY2Vz
L3N0eWxlc2hlZXQuY3NzIC0gZGlkRmluaXNoTG9hZGluZworVGhpcyB0ZXN0cyB0aGF0IGZpbGU6
IFVSTCBhcmUgbG9hZGVkIHNlcGFyYXRlbHkgZXZlbiBpZiB0aGV5IGRpZmZlciBieSB0aGUgZnJh
Z21lbnQgb25seS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rl
c3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNw
b25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKaW5kZXggYjdlYTU3ZC4uYTRmMTdi
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93
aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNwb25zZS1k
ZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1s
IC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNwb25zZS1zdWNjZXNzLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRl
bGVnYXRlLWNhbGxiYWNrLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAo
bnVsbCkKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNw
b25zZS1zdWNjZXNzLmh0bWwgLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dpbGxDYWNoZVJlc3BvbnNlLXN1Y2Nl
c3MuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBUaGlzIHRlc3RzIGZvciB0aGUgd2lsbENh
Y2hlUmVzcG9uc2UgcmVzb3VyY2UgZGVsZWdhdGUgY2FsbGJhY2sgYXMgYWRkZWQgZm9yIHJhZGFy
IDUwMDg5MjUuCiBUaGUgdGVzdCBpcyBvbmx5IG1lYW5pbmdmdWwgaWYgeW91IGFyZSBydW5uaW5n
IGl0IHVuZGVyIER1bXBSZW5kZXJUcmVlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2NmEwYTcxLi42
NGIzZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDUtMDkgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBOZXcgc2lnbmFsczoKKyAgICAgICAg
V2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmcKKyAgICAgICAgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYkZy
YW1lOjpyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYkZyYW1lOjpy
ZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJGcmFtZTo6
cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNl
LXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZAorICAgICAg
ICBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJS
ZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6
cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3Vy
Y2UtbG9hZGluZy1maW5pc2hlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1jb250
ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1sb2Fk
LWZhaWxlZAorCisgICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4g
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcp
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6CisgICAgICAgICh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
c2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY2xhc3NfaW5p
dCk6CisgICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6CisgICAgICAgICh3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tYWluX3VyaSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1
ZXN0Lmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJl
c291cmNlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAqIHdlYmtpdG1hcnNoYWwubGlzdDoKKwogMjAxMS0w
NS0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
Rml4IGEgdGVzdCBhZnRlciByODYxMDIuIFNjcm9sbGJhcnMgdXBkYXRlIGFzeW5jaHJvbm91c2x5
LCBzbyB3ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGMwMjcwZTIuLjAyNTQwZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHAKQEAgLTM4MSwxMyArMzgxLDE0IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIs
CiAgICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4gbmV0d29ya1JlcXVlc3QoYWRvcHRH
UmVmKGtpdE5ldyhyZXF1ZXN0KSkpOwogCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVs
bCgpKSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgYSByZWRpcmVjdCwgc28gd2UgbmVlZCB0byB1cGRh
dGUgdGhlIFdlYlJlc291cmNlJ3Mga25vd2xlZGdlCi0gICAgICAgIC8vIG9mIHRoZSBVUkkuCi0g
ICAgICAgIGdfZnJlZSh3ZWJSZXNvdXJjZS0+cHJpdi0+dXJpKTsKLSAgICAgICAgd2ViUmVzb3Vy
Y2UtPnByaXYtPnVyaSA9IGdfc3RyZHVwKHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgfQotICAgIAorICAgICAgICAgLy8gVGhpcyBpcyBhIHJlZGlyZWN0LCBzbyB3
ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgV2ViUmVzb3VyY2UncyBrbm93bGVkZ2UKKyAgICAgICAgIC8v
IG9mIHRoZSBVUkkuCisgICAgICAgICBnX2ZyZWUod2ViUmVzb3VyY2UtPnByaXYtPnVyaSk7Cisg
ICAgICAgICB3ZWJSZXNvdXJjZS0+cHJpdi0+dXJpID0gZ19zdHJkdXAocmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgfQorCiAgICAgZ19zaWduYWxfZW1pdF9ieV9u
YW1lKHdlYlZpZXcsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgbV9mcmFtZSwgd2ViUmVz
b3VyY2UsIG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOworICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtcmVxdWVzdC1zdGFydGlu
ZyIsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVxdWVzdC5nZXQoKSwgbmV0d29ya1Jlc3BvbnNlLmdl
dCgpKTsKIAogICAgIC8vIEZlZWQgYW55IGNoYW5nZXMgYmFjayBpbnRvIHRoZSBSZXNvdXJjZVJl
cXVlc3Qgb2JqZWN0LgogICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlID0gd2Via2l0X25ldHdvcmtf
cmVxdWVzdF9nZXRfbWVzc2FnZShuZXR3b3JrUmVxdWVzdC5nZXQoKSk7CkBAIC00NTEsMTMgKzQ1
MiwyMiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpCiAg
ICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVk
IGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKIHsKICAgICAvLyBVcGRhdGUgb3VyIGtub3dsZWRnZSBvZiByZXF1ZXN0
IHNvdXAgZmxhZ3MgLSBzb21lIGFyZSBvbmx5IHNldAogICAgIC8vIGFmdGVyIHRoZSByZXF1ZXN0
IGlzIGRvbmUuCiAgICAgbG9hZGVyLT5yZXF1ZXN0KCkuc2V0U291cE1lc3NhZ2VGbGFncyhyZXNw
b25zZS5zb3VwTWVzc2FnZUZsYWdzKCkpOwogCiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwor
CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7
CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmluZyh0b1N0cmluZyhpZGVudGlmaWVy
KSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlID0gd2Via2l0X3dlYl92aWV3
X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3RyaW5nLmdldCgpKTsKKyAgICBHUmVm
UHRyPFdlYktpdE5ldHdvcmtSZXNwb25zZT4gbmV0d29ya1Jlc3BvbnNlKGFkb3B0R1JlZihraXRO
ZXcocmVzcG9uc2UpKSk7CisKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2Us
ICJyZXNwb25zZS1yZWNlaXZlZCIsIG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIHdl
YlJlc291cmNlLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQiLCBtX2ZyYW1lLCB3ZWJS
ZXNvdXJjZSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bmN0aW9u
IHBvbGljeUZ1bmN0aW9uLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCkBAIC0xMTMwLDcgKzExNDAsMTMgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGl0bGUsIGNvbnN0IEtVUkwmIHUKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2Zy
YW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50
aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOworCisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAiY29udGVudC1sZW5ndGgtcmVj
ZWl2ZWQiLCBkYXRhTGVuZ3RoKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwg
InJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2UsIGRhdGFMZW5n
dGgpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgZGF0YUxlbmd0aCk7CiB9
CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJD
b3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCkBA
IC0xMTU5LDIwICsxMTc1LDI3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyCiAKICAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX2luaXRfd2l0aF9jb3JlX3Jlc291cmNlKHdlYlJlc291cmNlLCBjb3Jl
UmVzb3VyY2UuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5v
dGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgcmVzb3VyY2UKLSAgICAvLyBmaW5pc2hlZCBs
b2FkaW5nLCBtYXliZSB1c2luZyBhIGxvYWQtc3RhdHVzIHByb3BlcnR5IGluIHRoZQotICAgIC8v
IFdlYktpdFdlYlJlc291cmNlIG9iamVjdCwgc2ltaWxhciB0byB3aGF0IHdlIGRvIGZvciBXZWJL
aXRXZWJGcmFtZScKLSAgICAvLyBzaWduYWwuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAv
LyBOb3RpZnkgbGlzdGVuZXJzCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNl
LCAibG9hZGluZy1maW5pc2hlZCIpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1l
LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIHdlYlJlc291cmNlKTsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLWxvYWRpbmctZmluaXNoZWQiLCBtX2Zy
YW1lLCB3ZWJSZXNvdXJjZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBzdGF0
aWNfY2FzdDxXZWJLaXQ6OkRvY3VtZW50TG9hZGVyKj4obG9hZGVyKS0+ZGVjcmVhc2VMb2FkQ291
bnQoaWRlbnRpZmllcik7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90
aWZ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IHRoZSByZXNvdXJjZSBmYWlsZWQKLSAgICAvLyBsb2Fk
aW5nLCBtYXliZSBhICdsb2FkLWVycm9yJyBzaWduYWwgaW4gdGhlIFdlYktpdFdlYlJlc291cmNl
IG9iamVjdC4KLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIEdPd25QdHI8Z2NoYXI+IGlkZW50
aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOworICAgIFdlYktpdFdlYlJlc291cmNl
KiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uod2ViVmlldywgaWRl
bnRpZmllclN0cmluZy5nZXQoKSk7CisgICAgR093blB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJy
b3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhlcnJvci5kb21haW4oKS51dGY4KCku
ZGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkp
KTsKKworICAgIC8vIE5vdGlmeSBsaXN0ZW5lcnMKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
d2ViUmVzb3VyY2UsICJsb2FkLWZhaWxlZCIsIHdlYkVycm9yLmdldCgpKTsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInJlc291cmNlLWxvYWQtZmFpbGVkIiwgd2ViUmVzb3Vy
Y2UsIHdlYkVycm9yLmdldCgpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywg
InJlc291cmNlLWxvYWQtZmFpbGVkIiwgbV9mcmFtZSwgd2ViUmVzb3VyY2UsIHdlYkVycm9yLmdl
dCgpKTsKIH0KIAogYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRMb2FkUmVzb3Vy
Y2VGcm9tTWVtb3J5Q2FjaGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwCmluZGV4IDcw
MDU2MzcuLmIxMzg1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRuZXR3b3JrcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dG5ldHdvcmtyZXF1ZXN0LmNwcApAQCAtNDYsNiArNDYsNyBAQCBHX0RFRklORV9UWVBFKFdlYktp
dE5ldHdvcmtSZXF1ZXN0LCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0LCBHX1RZUEVfT0JKRUNUKTsK
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIHsKICAgICBnY2hhciogdXJpOwog
ICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlOworICAgIGdjaGFyKiBtYWluVVJJOwogfTsKIAogZW51
bSB7CkBAIC01Myw2ICs1NCw3IEBAIGVudW0gewogCiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9N
RVNTQUdFLAorICAgIFBST1BfTUFJTl9VUkksCiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQpAQCAtNzQsNiArNzYsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVj
dCkKICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OwogCiAgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgZ19mcmVlKHByaXYtPm1haW5VUkkpOwog
CiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X25ldHdvcmtfcmVxdWVzdF9wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOwogfQpAQCAtODEsNiArODQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHN0YXRpYyB2b2lk
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcGVydHlJRCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCiB7CiAgICAg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKG9i
amVjdCk7CisgICAgV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+
cHJpdjsKIAogICAgIHN3aXRjaChwcm9wZXJ0eUlEKSB7CiAgICAgY2FzZSBQUk9QX1VSSToKQEAg
LTg5LDYgKzkzLDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUkKICAgICBjYXNlIFBST1BfTUVT
U0FHRToKICAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
Uk9QX01BSU5fVVJJOgorICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYtPm1h
aW5VUkkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBwc3BlYyk7CiAgICAg
fQpAQCAtMTA2LDYgKzExMyw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJCiAgICAgY2FzZSBQ
Uk9QX01FU1NBR0U6CiAgICAgICAgIHByaXYtPm1lc3NhZ2UgPSBTT1VQX01FU1NBR0UoZ192YWx1
ZV9kdXBfb2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9NQUlO
X1VSSToKKyAgICAgICAgcHJpdi0+bWFpblVSSSA9IGdfdmFsdWVfZHVwX3N0cmluZyh2YWx1ZSk7
CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKICAgICB9CkBAIC0x
MzMsNyArMTQzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19p
bml0KFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MqIHJlcXVlc3QKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInVyaSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlVSSSIpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJUaGUgVVJJIHRvIHdoaWNoIHRoZSByZXF1ZXN0IHdpbGwgYmUgbWFkZS4iKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSkpOwogCiAgICAgLyoqCkBAIC0x
NTAsNiArMTYwLDIwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY2xhc3Nf
aW5pdChXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzKiByZXF1ZXN0CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVBfVFlQRV9NRVNTQUdF
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9DT05TVFJVQ1Rf
T05MWSkpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdE5ldHdvcmtSZXF1ZXN0Om1haW4tdXJp
OgorICAgICAqCisgICAgICogVGhlICNSZXNvdXJjZVJlcXVlc3QgdGhhdCBiYWNrcyB0aGUgcmVx
dWVzdC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfTUFJTl9VUkksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJtYWlu
LXVyaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIk1haW5VUkkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFJlc291cmNlUmVxdWVzdCBtYWluIFVSSS4iKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJV
Q1RfT05MWSkpKTsKKwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3Ms
IHNpemVvZihXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUpKTsKIH0KIApAQCAtMjU1LDkgKzI3
OSw5IEBAIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiBraXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4g
c291cE1lc3NhZ2UoYWRvcHRHUmVmKHJlc291cmNlUmVxdWVzdC50b1NvdXBNZXNzYWdlKCkpKTsK
ICAgICBpZiAoc291cE1lc3NhZ2UpCi0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVFV
RVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsICJtZXNzYWdlIiwg
c291cE1lc3NhZ2UuZ2V0KCksIE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JL
X1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgIm1lc3Nh
Z2UiLCBzb3VwTWVzc2FnZS5nZXQoKSwgIm1haW4tdXJpIiwgcmVzb3VyY2VSZXF1ZXN0LmZpcnN0
UGFydHlGb3JDb29raWVzKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgTlVMTCkpOwogCi0gICAg
cmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05F
VFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBOVUxMKSk7CisgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgInVyaSIsIHJlc291cmNlUmVx
dWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAibWFpbi11cmkiLCByZXNvdXJjZVJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxM
KSk7CiB9CiAKIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb3JlKFdlYktpdE5ldHdvcmtSZXF1
ZXN0KiByZXF1ZXN0KQpAQCAtMjcxLDMgKzI5NSwxMSBAQCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgY29yZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKIH0KIAogfQorCitjb25zdCBn
Y2hhcioKK3dlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5fdXJpKFdlYktpdE5ldHdvcmtS
ZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19O
RVRXT1JLX1JFUVVFU1QocmVxdWVzdCksIE5VTEwpOworCisgICAgcmV0dXJuIHJlcXVlc3QtPnBy
aXYtPm1haW5VUkk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0bmV0d29ya3JlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5oCmluZGV4IDgyNWNhOWUuLjA3ZWViY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oCkBAIC02OSw2ICs2OSwxMCBAQCB3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkgIChXZWJLaXROZXR3b3JrUmVxdWVzdCAqcmVx
dWVzdCk7CiBXRUJLSVRfQVBJIFNvdXBNZXNzYWdlICoKIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
Z2V0X21lc3NhZ2UoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCisKK1dFQktJVF9B
UEkgR19DT05TVF9SRVRVUk4gZ2NoYXIgKgord2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWFp
bl91cmkoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworCiBHX0VORF9ERUNMUwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmluZGV4
IGEwZTQwYjMuLjJjODRjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcApAQCAtNTQsMTAgKzU0LDEyIEBACiAjaW5jbHVkZSAid2Via2l0ZW51bXR5cGVz
LmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRt
YXJzaGFsLmgiCisjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCiAjaW5jbHVkZSAi
d2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0bmV0d29ya3Jl
c3BvbnNlcHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdHdl
YnJlc291cmNlLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndlYmtp
dHdlYnZpZXdwcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgpA
QCAtOTgsNiArMTAwLDEzIEBAIGVudW0gewogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJ
TkdfT1ZFUl9MSU5LLAogICAgIFNDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRUQsCisgICAgLy8gUmVz
b3VyY2UgbG9hZGluZyBzaWduYWxzCisgICAgUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElORywKKyAg
ICBSRVNPVVJDRV9SRVNQT05TRV9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FESU5HX0ZJTklT
SEVELAorICAgIFJFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVELAorICAgIFJFU09VUkNF
X0xPQURfRkFJTEVELAorCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTI5NSw2ICszMDQsMTI0
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRXZWJGcmFt
ZUNsYXNzKiBmcmFtZUNsYXNzKQogICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9f
Vk9JRCwKICAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAwKTsKIAorCisgICAgLyoqCisgICAg
ICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmc6CisgICAgICogQHdl
Yl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB3aG9zZSBsb2FkIGRpc3BhdGNoZWQgdGhpcyBy
ZXF1ZXN0CisgICAgICogQHdlYl9yZXNvdXJjZTogYW4gZW1wdHkgI1dlYktpdFdlYlJlc291cmNl
IG9iamVjdAorICAgICAqIEByZXF1ZXN0OiB0aGUgI1dlYktpdE5ldHdvcmtSZXF1ZXN0IHRoYXQg
d2lsbCBiZSBkaXNwYXRjaGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtS
ZXNwb25zZSByZXByZXNlbnRpbmcgdGhlIHJlZGlyZWN0CisgICAgICogcmVzcG9uc2UsIGlmIGFu
eQorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGEgcmVxdWVzdCBpcyBhYm91dCB0byBiZSBz
ZW50LiBZb3UgY2FuIG1vZGlmeSB0aGUKKyAgICAgKiByZXF1ZXN0IHdoaWxlIGhhbmRsaW5nIHRo
aXMgc2lnbmFsLiBZb3UgY2FuIHNldCB0aGUgVVJJIGluIHRoZQorICAgICAqICNXZWJLaXROZXR3
b3JrUmVxdWVzdCBvYmplY3QgaXRzZWxmLCBhbmQgYWRkL3JlbW92ZS9yZXBsYWNlCisgICAgICog
aGVhZGVycyB1c2luZyB0aGUgI1NvdXBNZXNzYWdlIG9iamVjdCBpdCBjYXJyaWVzLCBpZiBpdCBp
cworICAgICAqIHByZXNlbnQuIFNlZSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdl
KCkuIFNldHRpbmcgdGhlCisgICAgICogcmVxdWVzdCBVUkkgdG8gImFib3V0OmJsYW5rIiB3aWxs
IGVmZmVjdGl2ZWx5IGNhdXNlIHRoZSByZXF1ZXN0CisgICAgICogdG8gbG9hZCBub3RoaW5nLCBh
bmQgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgbG9hZGluZyBvZgorICAgICAqIHNwZWNpZmlj
IHJlc291cmNlcy4KKyAgICAgKgorICAgICAqIE5vdGljZSB0aGF0IGluZm9ybWF0aW9uIGFib3V0
IGFuIGV2ZW50dWFsIHJlZGlyZWN0IGlzIGF2YWlsYWJsZQorICAgICAqIGluIEByZXNwb25zZSdz
ICNTb3VwTWVzc2FnZSwgbm90IGluIHRoZSAjU291cE1lc3NhZ2UgY2FycmllZCBieQorICAgICAq
IHRoZSBAcmVxdWVzdC4gSWYgQHJlc3BvbnNlIGlzICVOVUxMLCB0aGVuIHRoaXMgaXMgbm90IGEK
KyAgICAgKiByZWRpcmVjdGVkIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBUaGUgI1dlYktpdFdl
YlJlc291cmNlIG9iamVjdCB3aWxsIGJlIHRoZSBzYW1lIHRocm91Z2hvdXQgYWxsCisgICAgICog
dGhlIGxpZmV0aW1lIG9mIHRoZSByZXNvdXJjZSwgYnV0IHRoZSBjb250ZW50cyBtYXkgY2hhbmdl
CisgICAgICogYmV0d2VlbiBzaWduYWwgZW1pc3Npb25zLgorICAgICAqCisgICAgICogU2luY2U6
IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX1JF
UVVFU1RfU1RBUlRJTkddID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5n
IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAor
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3ZWJraXRfbWFy
c2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05F
LCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAg
V0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVU
V09SS19SRVNQT05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJj
ZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFt
ZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhl
ICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKiBAcmVzcG9uc2U6IHRoZSAj
V2ViS2l0TmV0d29ya1Jlc3BvbnNlIHRoYXQgd2FzIHJlY2VpdmVkLgorICAgICAqCisgICAgICog
RW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAg
ICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JF
U09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtcmVzcG9u
c2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyks
CisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAg
IHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVf
Tk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAgICAgICAg
ICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAgKiBXZWJL
aXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJGcmFtZTog
dGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAq
IEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAg
KgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMg
bG9hZGVkLgorICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0
X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX0xPQURJTkdfRklOSVNIRURdID0gZ19zaWduYWxf
bmV3KCJyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxf
UlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAg
IDAsIDAsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVT
T1VSQ0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVu
dC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUg
dGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAj
V2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVk
OiB0aGUgcmVzb3VyY2UgZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkLgorICAgICAq
CisgICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWdu
YWxzW1JFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVz
b3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9S
VU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
MCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9JTlQsCisgICAg
ICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNP
VVJDRSwKKyAgICAgICAgICAgIEdfVFlQRV9JTlQpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRX
ZWJGcmFtZTo6cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2Vi
S2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVz
b3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdl
YkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIElu
dm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkLgorICAgICAqCisgICAgICogU2lu
Y2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNF
X0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9hZC1mYWlsZWQiLAorICAg
ICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1Np
Z25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZP
SURfX09CSkVDVF9QT0lOVEVSLAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAg
ICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBHX1RZUEVfUE9JTlRF
Uik7CisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMK
ICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJy
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2Uu
Y3BwCmluZGV4IGI3ZjQwMzYuLjZhMWRiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIndl
YmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCiAjaW5j
bHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5o
IgogI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIu
aD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgpAQCAtNDUsMTQgKzQ2LDI1IEBACiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogZW51bSB7Ci0gICAgUFJPUF8wLAorICAgIC8vIFJlc291
cmNlIGxvYWRpbmcKKyAgICBSRVNQT05TRV9SRUNFSVZFRCwKKyAgICBMT0FESU5HX0ZJTklTSEVE
LAorICAgIENPTlRFTlRfTEVOR1RIX1JFQ0VJVkVELAorICAgIExPQURfRkFJTEVELAorCisgICAg
TEFTVF9TSUdOQUwKK307CiAKK2VudW0geworICAgIFBST1BfMCwKICAgICBQUk9QX1VSSSwKICAg
ICBQUk9QX01JTUVfVFlQRSwKICAgICBQUk9QX0VOQ09ESU5HLAogICAgIFBST1BfRlJBTUVfTkFN
RQogfTsKIAorc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tMQVNUX1NJ
R05BTF0gPSB7IDAsIH07CisKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViUmVzb3VyY2UsIHdlYmtp
dF93ZWJfcmVzb3VyY2UsIEdfVFlQRV9PQkpFQ1QpOwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3Jlc291cmNlX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdW
YWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKQEAgLTEwMSwxNSArMTEzLDg1IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQog
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfcmVzb3VyY2VfcGFyZW50X2NsYXNzKS0+Zmlu
YWxpemUob2JqZWN0KTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9jbGFz
c19pbml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIHdlYlJlc291
cmNlQ2xhc3MpCiB7Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0X2NsYXNzID0gR19PQkpFQ1Rf
Q0xBU1Moa2xhc3MpOworICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpOwogCiAgICAgZ29iamVjdF9jbGFzcy0+ZGlzcG9zZSA9
IHdlYmtpdF93ZWJfcmVzb3VyY2VfZGlzcG9zZTsKICAgICBnb2JqZWN0X2NsYXNzLT5maW5hbGl6
ZSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZmluYWxpemU7CiAgICAgZ29iamVjdF9jbGFzcy0+Z2V0
X3Byb3BlcnR5ID0gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHk7CiAgICAgZ29iamVj
dF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X3dlYl9yZXNvdXJjZV9zZXRfcHJvcGVydHk7
CiAKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpyZXNwb25zZS1yZWNlaXZlZAor
ICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQK
KyAgICAgKiBAcmVzcG9uc2U6IHRoZSAjV2ViS2l0TmV0d29ya1Jlc3BvbnNlIHRoYXQgd2FzIHJl
Y2VpdmVkCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGZpcnN0IGJ5dGUgb2YgZGF0
YSBhcnJpdmVzCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3
KCJyZXNwb25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJS
ZXNvdXJjZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9M
QVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxM
LCBOVUxMLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09S
S19SRVNQT05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZh
aWxlZAorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdh
cyBsb2FkZWQKKyAgICAgKiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJl
ZAorICAgICAqCisgICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQK
KyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVz
b3VyY2Vfc2lnbmFsc1tMT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZmFpbGVkIiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04p
LAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBn
X2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDEsCisgICAgICAgICAgICBHX1RZUEVfUE9JTlRFUik7CisKKyAgICAvKgorICAgICAqIFdlYktp
dFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCisgICAgICogQHdlYlJlc291cmNlOiB0aGUg
I1dlYktpdFdlYlJlc291cmNlIGJlaW5nIGxvYWRlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3
aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAg
ICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFs
c1tMT0FESU5HX0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygibG9hZGluZy1maW5pc2hlZCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAgICAg
ICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwK
KyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAgICAgICAgZ19j
Y2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7
CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpjb250ZW50LWxlbmd0aC1yZWNl
aXZlZAorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdh
cyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0
aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3Ig
dGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAg
ICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tDT05URU5UX0xFTkdUSF9SRUNF
SVZFRF0gPSBnX3NpZ25hbF9uZXcoImNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwKKyAgICAgICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpLAorICAgICAgICAgICAgKEdT
aWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICBnX2NjbG9zdXJl
X21hcnNoYWxfVk9JRF9fSU5ULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAg
ICAgICBHX1RZUEVfSU5UKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlJlc291cmNlOnVy
aToKICAgICAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmlu
ZGV4IDkyNTA0OTMuLjBmY2M0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKQEAgLTE4Miw3ICsxODIsNiBAQCBlbnVtIHsKICAgICBVTkRPLAogICAgIFJF
RE8sCiAgICAgREFUQUJBU0VfUVVPVEFfRVhDRUVERUQsCi0gICAgUkVTT1VSQ0VfUkVRVUVTVF9T
VEFSVElORywKICAgICBET0NVTUVOVF9MT0FEX0ZJTklTSEVELAogICAgIEdFT0xPQ0FUSU9OX1BP
TElDWV9ERUNJU0lPTl9SRVFVRVNURUQsCiAgICAgR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9O
X0NBTkNFTExFRCwKQEAgLTIwMSw2ICsyMDAsMTEgQEAgZW51bSB7CiAgICAgRURJVElOR19FTkRF
RCwKICAgICBWSUVXUE9SVF9BVFRSSUJVVEVTX1JFQ09NUFVURV9SRVFVRVNURUQsCiAgICAgVklF
V1BPUlRfQVRUUklCVVRFU19DSEFOR0VELAorICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcs
CisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgUkVTT1VSQ0VfTE9BRElOR19G
SU5JU0hFRCwKKyAgICBSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBSRVNP
VVJDRV9MT0FEX0ZBSUxFRCwKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMjc0NSw2ICsyNzQ5
LDkyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZp
ZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgV0VCS0lUX1RZUEVfVklFV1BPUlRf
QVRUUklCVVRFUyk7CiAKICAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLXJl
c3BvbnNlLXJlY2VpdmVkCisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2
ZWQgdGhlIHNpZ25hbAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUg
cmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJL
aXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKiBAcmVzcG9uc2U6IHRoZSAjV2ViS2l0
TmV0d29ya1Jlc3BvbnNlIHRoYXQgd2FzIHJlY2VpdmVkCisgICAgICoKKyAgICAgKiBFbWl0dGVk
IHdoZW4gdGhlIGZpcnN0IGJ5dGUgb2YgZGF0YSBhcnJpdmVzCisgICAgICoKKyAgICAgKiBTaW5j
ZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tSRVNPVVJDRV9S
RVNQT05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJlc3BvbnNlLXJlY2Vp
dmVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAg
ICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElP
TiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwgTlVMTCwKKyAgICAgICAgICAg
IHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1RfT0JKRUNULAorICAgICAgICAgICAg
R19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCisgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFU1BPTlNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2ViVmlldzo6cmVz
b3VyY2UtbG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNo
IHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJh
bWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRo
ZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBFbWl0
dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZAorICAgICAq
CisgICAgICogU2luY2U6IDEuNS4xCisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25h
bHNbUkVTT1VSQ0VfTE9BRElOR19GSU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxv
YWRpbmctZmluaXNoZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0Ns
YXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAor
ICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVCwKKyAgICAgICAg
ICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAor
ICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFKTsKKworICAgIC8qCisgICAgICog
V2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBA
d2ViVmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAgICogQHdl
YkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9y
CisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQgd2FzIGxv
YWRlZAorICAgICAqIEBsZW5ndGhSZWNlaXZlZDogdGhlIHJlc291cmNlIGRhdGEgbGVuZ3RoIGlu
IGJ5dGVzCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUg
cmVzb3VyY2Ugd2FzIGxvYWRlZAorICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisgICAgICov
CisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVD
RUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIs
CisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAor
ICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX0lOVCwKKyAgICAgICAgICAgIEdfVFlQRV9O
T05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAgICAg
V0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7CisKKyAg
ICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmFpbGVkCisgICAgICog
QHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAorICAgICAqIEB3
ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZv
cgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBs
b2FkZWQKKyAgICAgKiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAor
ICAgICAqCisgICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAg
ICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19z
aWduYWxzW1JFU09VUkNFX0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9h
ZC1mYWlsZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLCBOVUxMLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9QT0lOVEVSLAorICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUs
CisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBHX1RZ
UEVfUE9JTlRFUik7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFs
IG1ldGhvZHMKICAgICAgKi8KICAgICB3ZWJWaWV3Q2xhc3MtPmNyZWF0ZV93ZWJfdmlldyA9IHdl
YmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1h
cnNoYWwubGlzdAppbmRleCA1MzcyYzU3Li5iNzg5MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
bWFyc2hhbC5saXN0CkBAIC0xNyw5ICsxNywxMyBAQCBPQkpFQ1Q6T0JKRUNUCiBPQkpFQ1Q6U1RS
SU5HLFNUUklORyxQT0lOVEVSCiBPQkpFQ1Q6Vk9JRAogVk9JRDpPQkpFQ1QsT0JKRUNUCitWT0lE
Ok9CSkVDVCxPQkpFQ1QsSU5UCitWT0lEOk9CSkVDVCxPQkpFQ1QsT0JKRUNUCitWT0lEOk9CSkVD
VCxPQkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVCxPQkpFQ1QKIFZPSUQ6
T0JKRUNULFBPSU5URVIsUE9JTlRFUgorVk9JRDpPQkpFQ1QsSU5UCitWT0lEOk9CSkVDVCxQT0lO
VEVSCiBWT0lEOk9CSkVDVCxTVFJJTkcKIFZPSUQ6U1RSSU5HCiBWT0lEOlNUUklORyxTVFJJTkcK
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVh
MjRjNmYuLmQzMWI5YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wNS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxzLiBSZXNvdXJj
ZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00OTU0MworCisgICAgICAgIFN1cHBvcnQgZm9yIHRoZSBuZXcgbG9hZGVyIHNpZ25hbHMgaW4g
RFJULgorCisgICAgICAgIEJhc2VkIG9uIHBhdGNoIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4gPHN2
aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgICh1cmxQYXRoKToKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVz
dENhbGxiYWNrKToKKyAgICAgICAgKHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAg
IChkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAgIChkaWRSZWNlaXZl
UmVzcG9uc2UpOgorICAgICAgICAoZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChkaWRGYWls
TG9hZGluZ1dpdGhFcnJvcik6CisgICAgICAgIChjcmVhdGVXZWJWaWV3KToKKwogMjAxMS0wNS0x
MCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHNvbWUg
cGx1Z2luIHRlc3RzIHRvIHdvcmsgd2l0aCBXZWJLaXQyJ3MgYXN5bmNocm9ub3VzIHdpbmRvd2Vk
IHBsdWdpbiBwb3NpdGlvbmluZyBvbiBXaW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBhNjcxZTFmLi40NDcyY2Y2IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAgZXh0
ZXJuIGdib29sZWFuIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9pdGVtKFdlYktp
dFdlYkhpc3RvcnlJdGVtKik7CiBleHRlcm4gR0xpc3QqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVt
X2dldF9jaGlsZHJlbihXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwogZXh0ZXJuIHZvaWQgd2Via2l0
X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2
aWV3LCBjb25zdCBnY2hhciogZGlyZWN0b3J5KTsKIGV4dGVybiBnY2hhciogd2Via2l0X3dlYl9m
cmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CitleHRl
cm4gV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZShX
ZWJLaXRXZWJWaWV3Kik7CiB9CiAKIHZvbGF0aWxlIGJvb2wgZG9uZTsKQEAgLTEwNDcsOCArMTA0
OCwxNDEgQEAgc3RhdGljIHZvaWQgZnJhbWVDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW0KICAgICBnX3NpZ25hbF9jb25uZWN0KHdl
YkZyYW1lLCAibm90aWZ5Ojpsb2FkLXN0YXR1cyIsIEdfQ0FMTEJBQ0sod2ViRnJhbWVMb2FkU3Rh
dHVzTm90aWZpZWQpLCBOVUxMKTsKIH0KIAotc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0Q2Fs
bGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJS
ZXNvdXJjZSosIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXROZXR3b3JrUmVz
cG9uc2UqKQorCitzdGF0aWMgQ1N0cmluZyBjb252ZXJ0U291cFVSSVRvVVJMUGF0aChTb3VwVVJJ
KiB1cmkpCit7CisgICAgaWYgKCF1cmkpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisKKyAg
ICBpZiAoZ19zdHJfZXF1YWwodXJpLT5zY2hlbWUsICJodHRwIikpIHsKKyAgICAgICAgR093blB0
cjxjaGFyPiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0UpKTsKKyAgICAg
ICAgcmV0dXJuIENTdHJpbmcodXJpU3RyaW5nLmdldCgpKTsKKyAgICB9CisKKyAgICBHT3duUHRy
PGdjaGFyPiB1cmxQYXRoKGdfc3RyZHVwX3ByaW50ZigiJXMvJXMiLCBnX3BhdGhfZ2V0X2Jhc2Vu
YW1lKGdfcGF0aF9nZXRfZGlybmFtZSh1cmktPnBhdGgpKSwgZ19wYXRoX2dldF9iYXNlbmFtZSh1
cmktPnBhdGgpKSk7CisgICAgcmV0dXJuIENTdHJpbmcodXJsUGF0aC5nZXQoKSk7Cit9CisKK3N0
YXRpYyBDU3RyaW5nIGNvbnZlcnRTb3VwTWVzc2FnZVRvVVJMUGF0aChTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UpCit7CisgICAgaWYgKCFzb3VwTWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIENTdHJp
bmcoKTsKKyAgICBpZiAoU291cFVSSSogcmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJp
KHNvdXBNZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRTb3VwVVJJVG9VUkxQYXRoKHJl
cXVlc3RVUkkpOworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIGNv
bnZlcnROZXR3b3JrUmVxdWVzdFRvVVJMUGF0aChXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVz
dCkKK3sKKyAgICByZXR1cm4gY29udmVydFNvdXBNZXNzYWdlVG9VUkxQYXRoKHdlYmtpdF9uZXR3
b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCkpOworfQorCitzdGF0aWMgQ1N0cmluZyBj
b252ZXJ0V2ViUmVzb3VyY2VUb1VSTFBhdGgoV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNl
KQoreworICAgIHJldHVybiBjb252ZXJ0U291cFVSSVRvVVJMUGF0aChzb3VwX3VyaV9uZXcod2Vi
a2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKHdlYlJlc291cmNlKSkpOworfQorCitzdGF0aWMgQ1N0
cmluZyB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3QgY2hhciogdXJpU3RyaW5nKQorewor
ICAgIGlmICghZ19zdHJfaGFzX3ByZWZpeCh1cmlTdHJpbmcsICJmaWxlOi8vIikpCisgICAgICAg
IHJldHVybiBDU3RyaW5nKHVyaVN0cmluZyk7CisKKyAgICByZXR1cm4gQ1N0cmluZyhnX3BhdGhf
Z2V0X2Jhc2VuYW1lKHVyaVN0cmluZykpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpCit7CisgICAgaWYgKCF1cmkpCisg
ICAgICAgIHJldHVybiBDU3RyaW5nKCIiKTsKKworICAgIEdPd25QdHI8Y2hhcj4gdXJpU3RyaW5n
KHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIGZhbHNlKSk7CisgICAgcmV0dXJuIHVybFN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh1cmlTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgU291cFVSSSogdXJpID0gc291cF91
cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSkpOworICAgIENT
dHJpbmcgZGVzY3JpcHRpb247CisKKyAgICBpZiAod2ViUmVzb3VyY2UgPT0gd2Via2l0X3dlYl92
aWV3X2dldF9tYWluX3Jlc291cmNlKHdlYlZpZXcpCisgICAgICAgICYmICghd2Via2l0X3dlYl92
aWV3X2dldF9wcm9ncmVzcyh3ZWJWaWV3KSB8fCBnX3N0cl9lcXVhbCh1cmktPnNjaGVtZSwgImZp
bGUiKSkpCisgICAgICAgIGRlc2NyaXB0aW9uID0gQ1N0cmluZygiPHVua25vd24+Iik7CisgICAg
ZWxzZQorICAgICAgICBkZXNjcmlwdGlvbiA9IGNvbnZlcnRXZWJSZXNvdXJjZVRvVVJMUGF0aCh3
ZWJSZXNvdXJjZSk7CisKKyAgICBpZiAodXJpKQorICAgICAgICBzb3VwX3VyaV9mcmVlKHVyaSk7
CisKKyAgICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisKK3N0YXRpYyBDU3RyaW5nIGRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KEdFcnJvciogZXJyb3IsIFdlYktpdFdlYlJlc291cmNl
KiB3ZWJSZXNvdXJjZSkKK3sKKyAgICBjb25zdCBnY2hhciogZXJyb3JEb21haW4gPSBnX3F1YXJr
X3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKTsKKyAgICBDU3RyaW5nIHJlc291cmNlVVJJU3RyaW5n
KHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkod2Vi
UmVzb3VyY2UpKSk7CisKKyAgICBpZiAoZ19zdHJfZXF1YWwoZXJyb3JEb21haW4sICJ3ZWJraXQt
bmV0d29yay1lcnJvci1xdWFyayIpKQorICAgICAgICBlcnJvckRvbWFpbiA9ICJOU1VSTEVycm9y
RG9tYWluIjsKKworICAgIC8vIFRPRE86IHRoZSBvdGhlciBwb3J0cyBnZXQgdGhlIGZhaWxpbmdV
UkwgZnJvbSB0aGUgUmVzb3VyY2VFcnJvcgorICAgIEdPd25QdHI8Y2hhcj4gZXJyb3JTdHJpbmco
Z19zdHJkdXBfcHJpbnRmKCI8TlNFcnJvciBkb21haW4gJXMsIGNvZGUgJWQsIGZhaWxpbmcgVVJM
IFwiJXNcIj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9yRG9tYWluLCBlcnJvci0+Y29kZSwgcmVzb3VyY2VVUklTdHJpbmcuZGF0YSgpKSk7Cisg
ICAgcmV0dXJuIENTdHJpbmcoZXJyb3JTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0cmlu
ZyBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXROZXR3b3JrUmVxdWVzdCog
cmVxdWVzdCkKK3sKKyAgICBDU3RyaW5nIHJlcXVlc3RVUklTdHJpbmc7CisgICAgQ1N0cmluZyBt
YWluRG9jdW1lbnRVUklTdHJpbmc7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKKworICAgIGlmIChzb3Vw
TWVzc2FnZSkgeworICAgICAgICBTb3VwVVJJKiByZXF1ZXN0VVJJID0gc291cF9tZXNzYWdlX2dl
dF91cmkoc291cE1lc3NhZ2UpOworICAgICAgICBTb3VwVVJJKiBtYWluRG9jdW1lbnRVUkkgPSBz
b3VwX21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKTsKKyAgICAgICAgcmVxdWVz
dFVSSVN0cmluZyA9IGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3RVUkkp
OworICAgICAgICBtYWluRG9jdW1lbnRVUklTdHJpbmcgPSBkZXNjcmlwdGlvblN1aXRhYmxlRm9y
VGVzdFJlc3VsdChtYWluRG9jdW1lbnRVUkkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlcXVl
c3RVUklTdHJpbmcgPSB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfdXJpKHJlcXVlc3QpKTsKKyAgICAgICAgbWFpbkRvY3VtZW50VVJJU3RyaW5nID0g
dXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21haW5f
dXJpKHJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBDU3RyaW5nIHBhdGgoY29udmVydE5ldHdvcmtS
ZXF1ZXN0VG9VUkxQYXRoKHJlcXVlc3QpKTsKKyAgICBHT3duUHRyPGNoYXI+IGRlc2NyaXB0aW9u
KGdfc3RyZHVwX3ByaW50ZigiPE5TVVJMUmVxdWVzdCBVUkwgJXMsIG1haW4gZG9jdW1lbnQgVVJM
ICVzLCBodHRwIG1ldGhvZCAlcz4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGguZGF0YSgpLCBtYWluRG9jdW1lbnRVUklTdHJpbmcuZGF0YSgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXBNZXNzYWdl
ID8gc291cE1lc3NhZ2UtPm1ldGhvZCA6ICIobm9uZSkiKSk7CisgICAgcmV0dXJuIENTdHJpbmco
ZGVzY3JpcHRpb24uZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQoreworICAg
IGlmICghcmVzcG9uc2UpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCIobnVsbCkiKTsKKworICAg
IGludCBzdGF0dXNDb2RlID0gMDsKKyAgICBDU3RyaW5nIHJlc3BvbnNlVVJJU3RyaW5nKHVybFN1
aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfdXJpKHJlc3Bv
bnNlKSkpOworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9uZXR3b3JrX3Jl
c3BvbnNlX2dldF9tZXNzYWdlKHJlc3BvbnNlKTsKKyAgICBDU3RyaW5nIHBhdGg7CisKKyAgICBp
ZiAoc291cE1lc3NhZ2UpIHsKKyAgICAgICAgc3RhdHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5zdGF0
dXNfY29kZTsKKyAgICAgICAgcGF0aCA9IGNvbnZlcnRTb3VwTWVzc2FnZVRvVVJMUGF0aChzb3Vw
TWVzc2FnZSk7CisgICAgfSBlbHNlCisgICAgICAgIHBhdGggPSBDU3RyaW5nKCIiKTsKKworICAg
IEdPd25QdHI8Y2hhcj4gZGVzY3JpcHRpb24oZ19zdHJkdXBfcHJpbnRmKCI8TlNVUkxSZXNwb25z
ZSAlcywgaHR0cCBzdGF0dXMgY29kZSAlZD4iLCBwYXRoLmRhdGEoKSwgc3RhdHVzQ29kZSkpOwor
ICAgIHJldHVybiBDU3RyaW5nKGRlc2NyaXB0aW9uLmdldCgpKTsKK30KKworc3RhdGljIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2Vi
RnJhbWUqIHdlYkZyYW1lLCBXZWJLaXRXZWJSZXNvdXJjZSogcmVzb3VyY2UsIFdlYktpdE5ldHdv
cmtSZXF1ZXN0KiByZXF1ZXN0LCBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlKQogewor
ICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKSkgeworICAgICAgICBDU3RyaW5nIHJlcXVlc3REZXNjcmlwdGlvbihkZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0KSk7CisgICAgICAgIENTdHJpbmcgcmVz
cG9uc2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXNwb25z
ZSkpOworICAgICAgICBDU3RyaW5nIHBhdGgoY29udmVydE5ldHdvcmtSZXF1ZXN0VG9VUkxQYXRo
KHJlcXVlc3QpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIHdpbGxTZW5kUmVxdWVzdCAlcyByZWRp
cmVjdFJlc3BvbnNlICVzXG4iLCBwYXRoLmRhdGEoKSwKKyAgICAgICAgICAgICAgIHJlcXVlc3RE
ZXNjcmlwdGlvbi5kYXRhKCksIHJlc3BvbnNlRGVzY3JpcHRpb24uZGF0YSgpKTsKKyAgICB9CisK
ICAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT53aWxsU2VuZFJlcXVlc3RS
ZXR1cm5zTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNTksOSArMTE5MywxMyBAQCBz
dGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXRXZWJGcmFtZSosIFdlYgogICAgICAgICAmJiBnX3N0cmNtcDAodXJpLT5ob3N0LCAi
MjU1LjI1NS4yNTUuMjU1IikKICAgICAgICAgJiYgZ19hc2NpaV9zdHJuY2FzZWNtcCh1cmktPmhv
c3QsICJsb2NhbGhvc3QiLCA5KSkgewogICAgICAgICBwcmludGYoIkJsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCAlc1xuIiwgc291cF91cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0UpKTsKKyAg
ICAgICAgLy8gQ2FuY2VsIGxvYWQgb2YgYmxvY2tlZCByZXNvdXJjZSB0byBhdm9pZCBwb3RlbnRp
YWwKKyAgICAgICAgLy8gbmV0d29yay1yZWxhdGVkIHRpbWVvdXRzIGluIHRlc3RzLgorICAgICAg
ICB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF91cmkocmVxdWVzdCwgImFib3V0OmJsYW5rIik7
CiAgICAgICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwog
ICAgIGlmICh1cmkpCiAgICAgICAgIHNvdXBfdXJpX2ZyZWUodXJpKTsKIApAQCAtMTA3Miw2ICsx
MjEwLDM0IEBAIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViCiAgICAgfQogfQogCisKK3N0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJG
cmFtZSosIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSwgV2ViS2l0TmV0d29ya1Jlc3Bv
bnNlKiByZXNwb25zZSkKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgQ1N0cmluZyByZXNwb25z
ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlc3BvbnNlKSk7
CisgICAgICAgIENTdHJpbmcgcGF0aChjb252ZXJ0V2ViUmVzb3VyY2VUb1VSTFBhdGgod2ViUmVz
b3VyY2UpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZFJlY2VpdmVSZXNwb25zZSAlc1xuIiwg
cGF0aC5kYXRhKCksIHJlc3BvbnNlRGVzY3JpcHRpb24uZGF0YSgpKTsKKyAgICB9CisKKyAgICAv
LyBUT0RPOiBhZGQgImhhcyBNSU1FIHR5cGUiIHdoZW5ldmVyIGR1bXBSZXNvdXJjZVJlc3BvbnNl
TUlNRVR5cGVzKCkKKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU4MjIyLgorfQorCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2ViS2l0V2ViUmVzb3Vy
Y2UqIHdlYlJlc291cmNlKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRp
ZEZpbmlzaExvYWRpbmdcbiIsIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYlZp
ZXcsIHdlYlJlc291cmNlKS5kYXRhKCkpOworfQorCitzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZGlu
Z1dpdGhFcnJvcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSosIFdlYktp
dFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSwgR0Vycm9yKiB3ZWJFcnJvcikKK3sKKyAgICBpZiAo
IWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KCkpIHsKKyAgICAgICAgQ1N0cmluZyB3ZWJFcnJvclN0cmluZyhkZXNjcmlwdGlvblN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh3ZWJFcnJvciwgd2ViUmVzb3VyY2UpKTsKKyAgICAgICAgcHJpbnRmKCIl
cyAtIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yOiAlc1xuIiwgZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQod2ViVmlldywgd2ViUmVzb3VyY2UpLmRhdGEoKSwKKyAgICAgICAgICAgICAg
IHdlYkVycm9yU3RyaW5nLmRhdGEoKSk7CisgICAgfQorfQorCiBzdGF0aWMgV2ViS2l0V2ViVmll
dyogY3JlYXRlV2ViVmlldygpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9X
RUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwpAQCAtMTEwMSw3ICsxMjY3LDkgQEAgc3Rh
dGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAg
InNpZ25hbDo6ZHJhZy1mYWlsZWQiLCBkcmFnRmFpbGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAg
ICAgICAgICAgICAic2lnbmFsOjpmcmFtZS1jcmVhdGVkIiwgZnJhbWVDcmVhdGVkQ2FsbGJhY2ss
IDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0
aW5nIiwgd2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2ssIDAsCi0KKyAgICAgICAgICAgICAgICAgICAg
ICJzaWduYWw6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgZGlkUmVjZWl2ZVJlc3BvbnNl
LCAwLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtbG9hZGluZy1maW5p
c2hlZCIsIGRpZEZpbmlzaExvYWRpbmcsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFs
OjpyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yLCAwLAogICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRpbmdDYWxsYmFja3Modmll
dyk7CiAKLS0gCjEuNy40LjQ=
</data>
<flag name="review"
          id="86056"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93083</attachid>
            <date>2011-05-11 00:58:49 -0700</date>
            <delta_ts>2012-01-31 06:58:54 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>updated-patch.patch</filename>
            <type>text/plain</type>
            <size>37181</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBjYThjNzgwMDZlZWNiYzIxNGVlMzNhNmFkZTAyNzRlOWRhNjk4YTc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUaHUsIDIxIEFwciAyMDExIDE0OjU1OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
dXBkYXRlZCBwYXRjaAoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTMgKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
ICAgICAgICAgICAgICAgICAgIHwgICAxMSAtLQogLi4uL2xvYWRlci9maWxlLXByb3RvY29sLWZy
YWdtZW50LWV4cGVjdGVkLnR4dCAgICAgfCAgICA3ICsKIC4uLmlsbENhY2hlUmVzcG9uc2UtZGVs
ZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKwogLi4uL2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgICAgfCAgIDQzICsrKystLQogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgfCAgMTI3ICsr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2Uu
Y3BwICAgICB8ICAgODggKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcCAgICAgICAgIHwgICA5MiArKysrKysrKysrLQogU291cmNlL1dlYktpdC9n
dGsvd2Via2l0bWFyc2hhbC5saXN0ICAgICAgICAgICAgICAgfCAgICA2ICstCiBUb29scy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysKIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgICAgICAgIHwgIDE3MyArKysr
KysrKysrKysrKysrKysrLQogMTIgZmlsZXMgY2hhbmdlZCwgNTg4IGluc2VydGlvbnMoKyksIDI5
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50LWV4cGVjdGVkLnR4dAoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiYTQzNTYzLi43NmI1OTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDUtMDkgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIg
c2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKworICAgICAgICBVbnNraXAgdGVzdHMgbm93IHBhc3Np
bmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2Mvd2lsbENhY2hlUmVz
cG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0OgorCiAyMDExLTA1LTEwICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA3ZTkyZjM1Li4xN2Fk
OTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDA0LDEyICs0MDQsNiBAQCBmYXN0
L2h0bWwvdGFiLW9yZGVyLmh0bWwKIAogIyBNaXNzaW5nIGRlbGVnYXRlczoKICMgTmVlZCBwcm9w
ZXIgZnJhbWUgbG9hZGVyIGNhbGxiYWNrcyByZXBvcnRpbmcKLSMgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjE3MAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvZW1wdHktdXJsLXBsdWdpbi1pbi1mcmFtZS5odG1sCi1mYXN0L2xvYWRlci9maWxl
LXByb3RvY29sLWZyYWdtZW50Lmh0bWwKLSMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIG9mIG1pc3Np
bmcgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSBjYWxsYmFja3MuCi1mYXN0L2xvYWRlci9tYWluLWRv
Y3VtZW50LXVybC1mb3Itbm9uLWh0dHAtbG9hZHMuaHRtbAotaHR0cC90ZXN0cy9taXNjL2xpbmst
cmVsLWljb24tYmVmb3JlbG9hZC5odG1sCiAjIFRlc3RzIGZhaWxpbmcgYmVjYXVzZSBvZiBtaXNz
aW5nIHBvbGljeSBkZWxlZ2F0ZSBjYWxsYmFja3MuCiBmYXN0L2xvYWRlci9vbmxvYWQtcG9saWN5
LWlnbm9yZS1mb3ItZnJhbWUuaHRtbAogZmFzdC9sb2FkZXIvcG9saWN5LWRlbGVnYXRlLWFjdGlv
bi1oaXQtdGVzdC16b29tZWQuaHRtbApAQCAtOTA4LDExICs5MDIsNiBAQCBmYXN0L3RleHQvY2Fw
aXRhbGl6ZS1ib3VuZGFyaWVzLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU0MTg5CiBmYXN0L3JlcGxhY2VkL2JvcmRlci1yYWRpdXMtY2xpcC5odG1sCiAK
LSMgTmV3IHRlc3QgbmVlZHMgZW5oYW5jZWQgZnJhbWVsb2FkZXIgZGVsZWdhdGUgbG9nZ2luZyBp
biBEUlQKLSMgRGlzY3Vzc2VkIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODkyOAotZmFzdC9sb2FkZXIvcmVjdXJzaXZlLWJlZm9yZS11bmxvYWQtY3Jhc2guaHRt
bCAKLWZhc3QvbG9hZGVyL251bGwtcmVxdWVzdC1hZnRlci13aWxsU2VuZFJlcXVlc3QuaHRtbAot
CiAjIE5lZWQgdG8gZHVtcCBjb250ZXh0IG1lbnUgaXRlbXMgb24gZXZlbnRTZW5kZXIuY29udGV4
dENsaWNrKHRydWUpLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzkxMDIKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2xvYWRlci9maWxlLXByb3Rv
Y29sLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0
L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2QwZDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzIC0gd2ls
bFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIHJlc291cmNlcy9zdHlsZXNoZWV0LmNzcywg
bWFpbiBkb2N1bWVudCBVUkwgZmlsZS1wcm90b2NvbC1mcmFnbWVudC5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCityZXNvdXJjZXMvc3R5bGVzaGVldC5jc3Mg
LSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgcmVzb3VyY2VzL3N0eWxlc2hlZXQu
Y3NzLCBtYWluIGRvY3VtZW50IFVSTCBmaWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwsIGh0dHAg
bWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKKzx1bmtub3duPiAtIGRpZEZpbmlz
aExvYWRpbmcKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRpZFJlY2VpdmVSZXNwb25zZSA8
TlNVUkxSZXNwb25zZSByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MsIGh0dHAgc3RhdHVzIGNvZGUg
MD4KK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxS
ZXNwb25zZSByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MsIGh0dHAgc3RhdHVzIGNvZGUgMD4KK3Jl
c291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRpZEZpbmlzaExvYWRpbmcKK1RoaXMgdGVzdHMgdGhh
dCBmaWxlOiBVUkwgYXJlIGxvYWRlZCBzZXBhcmF0ZWx5IGV2ZW4gaWYgdGhleSBkaWZmZXIgYnkg
dGhlIGZyYWdtZW50IG9ubHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
aHR0cC90ZXN0cy9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNhbGxiYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2Mvd2lsbENh
Y2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0CmluZGV4IGI3ZWE1N2Qu
LmE0ZjE3YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3Rz
L21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2Mvd2lsbENhY2hlUmVz
cG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAoraHR0
cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dpbGxDYWNoZVJlc3BvbnNlLXN1Y2Nl
c3MuaHRtbCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1sLCBt
YWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93aWxsQ2FjaGVSZXNw
b25zZS1kZWxlZ2F0ZS1jYWxsYmFjay5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVz
cG9uc2UgKG51bGwpCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENh
Y2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1sIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3Bv
bnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93aWxsQ2FjaGVSZXNwb25z
ZS1zdWNjZXNzLmh0bWwsIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgogVGhpcyB0ZXN0cyBmb3IgdGhl
IHdpbGxDYWNoZVJlc3BvbnNlIHJlc291cmNlIGRlbGVnYXRlIGNhbGxiYWNrIGFzIGFkZGVkIGZv
ciByYWRhciA1MDA4OTI1LgogVGhlIHRlc3QgaXMgb25seSBtZWFuaW5nZnVsIGlmIHlvdSBhcmUg
cnVubmluZyBpdCB1bmRlciBEdW1wUmVuZGVyVHJlZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNjZh
MGE3MS4uMThlNTczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTA1
LTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIFNlcmdpbyBW
aWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFtZUxvYWRlciBzaWdu
YWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgIE5ldyBzaWduYWxzOgorICAgICAgICBXZWJL
aXRXZWJGcmFtZTo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZworICAgICAgICBXZWJLaXRXZWJG
cmFtZTo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViRnJhbWU6
OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAgICAgICAgV2ViS2l0V2ViRnJhbWU6OnJlc291
cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYkZyYW1lOjpyZXNv
dXJjZS1sb2FkLWZhaWxlZAorICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZTo6cmVzcG9uc2UtcmVj
ZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWQtZmFpbGVkCisgICAgICAgIFdl
YktpdFdlYlJlc291cmNlOjpsb2FkaW5nLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYlJlc291
cmNlOjpjb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNv
dXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1s
b2FkaW5nLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQt
bGVuZ3RoLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmFp
bGVkCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19p
bml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgorICAgICAgICAo
d2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAg
ICAgICogd2Via2l0bWFyc2hhbC5saXN0OgorCiAyMDExLTA1LTA5ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggYSB0ZXN0IGFmdGVyIHI4NjEw
Mi4gU2Nyb2xsYmFycyB1cGRhdGUgYXN5bmNocm9ub3VzbHksIHNvIHdlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKaW5kZXggYzAyNzBlMi4uZGY2OTYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzg2LDgg
KzM4Niw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgIGdfZnJlZSh3ZWJSZXNv
dXJjZS0+cHJpdi0+dXJpKTsKICAgICAgICAgd2ViUmVzb3VyY2UtPnByaXYtPnVyaSA9IGdfc3Ry
ZHVwKHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQotICAgIAor
CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1yZXF1ZXN0LXN0
YXJ0aW5nIiwgbV9mcmFtZSwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3
b3JrUmVzcG9uc2UuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAi
cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVxdWVzdC5n
ZXQoKSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKIAogICAgIC8vIEZlZWQgYW55IGNoYW5nZXMg
YmFjayBpbnRvIHRoZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0LgogICAgIFNvdXBNZXNzYWdlKiBt
ZXNzYWdlID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShuZXR3b3JrUmVxdWVz
dC5nZXQoKSk7CkBAIC00NTEsMTMgKzQ1MiwyMiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpm
cmFtZUxvYWRlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICAvLyBVcGRhdGUg
b3VyIGtub3dsZWRnZSBvZiByZXF1ZXN0IHNvdXAgZmxhZ3MgLSBzb21lIGFyZSBvbmx5IHNldAog
ICAgIC8vIGFmdGVyIHRoZSByZXF1ZXN0IGlzIGRvbmUuCiAgICAgbG9hZGVyLT5yZXF1ZXN0KCku
c2V0U291cE1lc3NhZ2VGbGFncyhyZXNwb25zZS5zb3VwTWVzc2FnZUZsYWdzKCkpOwogCiAgICAg
bV9yZXNwb25zZSA9IHJlc3BvbnNlOworCisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdl
dFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRpZmllclN0
cmluZyh0b1N0cmluZyhpZGVudGlmaWVyKSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJl
c291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVy
U3RyaW5nLmdldCgpKTsKKyAgICBHUmVmUHRyPFdlYktpdE5ldHdvcmtSZXNwb25zZT4gbmV0d29y
a1Jlc3BvbnNlKGFkb3B0R1JlZihraXROZXcocmVzcG9uc2UpKSk7CisKKyAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJyZXNwb25zZS1yZWNlaXZlZCIsIG5ldHdvcmtSZXNw
b25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJj
ZS1yZXNwb25zZS1yZWNlaXZlZCIsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkp
OworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtcmVzcG9uc2Ut
cmVjZWl2ZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsK
IH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShGcmFtZVBvbGljeUZ1bmN0aW9uIHBvbGljeUZ1bmN0aW9uLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qp
CkBAIC0xMTMwLDcgKzExNDAsMTMgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUo
Y29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUsIGNvbnN0IEtVUkwmIHUKIAogdm9pZCBG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5n
dGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBpZGVudGlm
aWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJSZXNvdXJjZSog
d2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50
aWZpZXJTdHJpbmcuZ2V0KCkpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291
cmNlLCAiY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLCBkYXRhTGVuZ3RoKTsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVk
Iiwgd2ViUmVzb3VyY2UsIGRhdGFMZW5ndGgpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3
ZWJWaWV3LCAicmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLCBtX2ZyYW1lLCB3ZWJS
ZXNvdXJjZSwgZGF0YUxlbmd0aCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpCkBAIC0xMTU5LDIwICsxMTc1LDI1IEBAIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExv
YWRlciogbG9hZGVyCiAKICAgICB3ZWJraXRfd2ViX3Jlc291cmNlX2luaXRfd2l0aF9jb3JlX3Jl
c291cmNlKHdlYlJlc291cmNlLCBjb3JlUmVzb3VyY2UuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6
IFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCB0aGUgcmVz
b3VyY2UKLSAgICAvLyBmaW5pc2hlZCBsb2FkaW5nLCBtYXliZSB1c2luZyBhIGxvYWQtc3RhdHVz
IHByb3BlcnR5IGluIHRoZQotICAgIC8vIFdlYktpdFdlYlJlc291cmNlIG9iamVjdCwgc2ltaWxh
ciB0byB3aGF0IHdlIGRvIGZvciBXZWJLaXRXZWJGcmFtZScKLSAgICAvLyBzaWduYWwuCi0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2Us
ICJsb2FkaW5nLWZpbmlzaGVkIik7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUs
ICJyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOworICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsIG1fZnJh
bWUsIHdlYlJlc291cmNlKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIHN0YXRp
Y19jYXN0PFdlYktpdDo6RG9jdW1lbnRMb2FkZXIqPihsb2FkZXIpLT5kZWNyZWFzZUxvYWRDb3Vu
dChpZGVudGlmaWVyKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3Rp
ZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJlc291cmNlIGZhaWxlZAotICAgIC8vIGxvYWRp
bmcsIG1heWJlIGEgJ2xvYWQtZXJyb3InIHNpZ25hbCBpbiB0aGUgV2ViS2l0V2ViUmVzb3VyY2Ug
b2JqZWN0LgotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRp
ZmllclN0cmluZyh0b1N0cmluZyhpZGVudGlmaWVyKSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2Uq
IHdlYlJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVu
dGlmaWVyU3RyaW5nLmdldCgpKTsKKyAgICBHT3duUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJv
cl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5k
YXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9yLmVycm9yQ29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkp
OworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAibG9hZC1mYWlsZWQi
LCB3ZWJFcnJvci5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJy
ZXNvdXJjZS1sb2FkLWZhaWxlZCIsIHdlYlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7CisgICAg
Z19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIG1f
ZnJhbWUsIHdlYlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7CiB9CiAKIGJvb2wgRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGludCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAppbmRleCBhMGU0MGIzLi4yYzg0Yzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKQEAgLTU0LDEwICs1NCwxMiBAQAogI2luY2x1ZGUg
IndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCiAj
aW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25z
ZS5oIgogI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRzZWN1cml0
eW9yaWdpbnByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIK
ICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KQEAgLTk4LDYgKzEwMCwxMyBAQCBlbnVtIHsKICAgICBUSVRMRV9DSEFO
R0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKICAgICBTQ1JPTExCQVJTX1BPTElDWV9DSEFO
R0VELAorICAgIC8vIFJlc291cmNlIGxvYWRpbmcgc2lnbmFscworICAgIFJFU09VUkNFX1JFUVVF
U1RfU1RBUlRJTkcsCisgICAgUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRUQsCisgICAgUkVTT1VS
Q0VfTE9BRElOR19GSU5JU0hFRCwKKyAgICBSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZF
RCwKKyAgICBSRVNPVVJDRV9MT0FEX0ZBSUxFRCwKKwogICAgIExBU1RfU0lHTkFMCiB9OwogCkBA
IC0yOTUsNiArMzA0LDEyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2lu
aXQoV2ViS2l0V2ViRnJhbWVDbGFzcyogZnJhbWVDbGFzcykKICAgICAgICAgICAgIHdlYmtpdF9t
YXJzaGFsX0JPT0xFQU5fX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7CiAK
KworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0
aW5nOgorICAgICAqIEB3ZWJfZnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgd2hvc2UgbG9hZCBk
aXNwYXRjaGVkIHRoaXMgcmVxdWVzdAorICAgICAqIEB3ZWJfcmVzb3VyY2U6IGFuIGVtcHR5ICNX
ZWJLaXRXZWJSZXNvdXJjZSBvYmplY3QKKyAgICAgKiBAcmVxdWVzdDogdGhlICNXZWJLaXROZXR3
b3JrUmVxdWVzdCB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZAorICAgICAqIEByZXNwb25zZTogdGhl
ICNXZWJLaXROZXR3b3JrUmVzcG9uc2UgcmVwcmVzZW50aW5nIHRoZSByZWRpcmVjdAorICAgICAq
IHJlc3BvbnNlLCBpZiBhbnkKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhIHJlcXVlc3Qg
aXMgYWJvdXQgdG8gYmUgc2VudC4gWW91IGNhbiBtb2RpZnkgdGhlCisgICAgICogcmVxdWVzdCB3
aGlsZSBoYW5kbGluZyB0aGlzIHNpZ25hbC4gWW91IGNhbiBzZXQgdGhlIFVSSSBpbiB0aGUKKyAg
ICAgKiAjV2ViS2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0IGl0c2VsZiwgYW5kIGFkZC9yZW1vdmUv
cmVwbGFjZQorICAgICAqIGhlYWRlcnMgdXNpbmcgdGhlICNTb3VwTWVzc2FnZSBvYmplY3QgaXQg
Y2FycmllcywgaWYgaXQgaXMKKyAgICAgKiBwcmVzZW50LiBTZWUgd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfbWVzc2FnZSgpLiBTZXR0aW5nIHRoZQorICAgICAqIHJlcXVlc3QgVVJJIHRvICJh
Ym91dDpibGFuayIgd2lsbCBlZmZlY3RpdmVseSBjYXVzZSB0aGUgcmVxdWVzdAorICAgICAqIHRv
IGxvYWQgbm90aGluZywgYW5kIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhlIGxvYWRpbmcgb2YK
KyAgICAgKiBzcGVjaWZpYyByZXNvdXJjZXMuCisgICAgICoKKyAgICAgKiBOb3RpY2UgdGhhdCBp
bmZvcm1hdGlvbiBhYm91dCBhbiBldmVudHVhbCByZWRpcmVjdCBpcyBhdmFpbGFibGUKKyAgICAg
KiBpbiBAcmVzcG9uc2UncyAjU291cE1lc3NhZ2UsIG5vdCBpbiB0aGUgI1NvdXBNZXNzYWdlIGNh
cnJpZWQgYnkKKyAgICAgKiB0aGUgQHJlcXVlc3QuIElmIEByZXNwb25zZSBpcyAlTlVMTCwgdGhl
biB0aGlzIGlzIG5vdCBhCisgICAgICogcmVkaXJlY3RlZCByZXF1ZXN0LgorICAgICAqCisgICAg
ICogVGhlICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3Qgd2lsbCBiZSB0aGUgc2FtZSB0aHJvdWdo
b3V0IGFsbAorICAgICAqIHRoZSBsaWZldGltZSBvZiB0aGUgcmVzb3VyY2UsIGJ1dCB0aGUgY29u
dGVudHMgbWF5IGNoYW5nZQorICAgICAqIGJldHdlZW4gc2lnbmFsIGVtaXNzaW9ucy4KKyAgICAg
KgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2ln
bmFsc1tSRVNPVVJDRV9SRVFVRVNUX1NUQVJUSU5HXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2Ut
cmVxdWVzdC1zdGFydGluZyIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNs
YXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLCAwLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9PQkpFQ1QsCisgICAgICAg
ICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJD
RSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwKKyAgICAgICAgICAg
IFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRX
ZWJGcmFtZTo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRo
ZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBA
d2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICog
QHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZC4K
KyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgZmlyc3QgYnl0ZSBvZiBkYXRhIGFycml2
ZXMKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJf
ZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9SRVNQT05TRV9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXco
InJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVO
X0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAs
IDAsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAorICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVT
T1VSQ0UsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFKTsKKworICAg
IC8qCisgICAgICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLWxvYWRpbmctZmluaXNoZWQKKyAg
ICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNl
aXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVp
bmcgbG9hZGVkCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0
aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAg
ICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9MT0FESU5HX0ZJTklT
SEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9hZGluZy1maW5pc2hlZCIsCisgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICAwLCAwLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZP
SURfX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgV0VC
S0lUX1RZUEVfV0VCX1JFU09VUkNFKTsKKworICAgIC8qCisgICAgICogV2ViS2l0V2ViRnJhbWU6
OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICogQHdlYkZyYW1lOiB0aGUg
I1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdl
YlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAq
IEBsZW5ndGhSZWNlaXZlZDogdGhlIHJlc291cmNlIGRhdGEgbGVuZ3RoIGluIGJ5dGVzCisgICAg
ICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2Fz
IGxvYWRlZC4KKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtp
dF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRF0gPSBn
X3NpZ25hbF9uZXcoInJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwKKyAgICAgICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxG
bGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19P
QkpFQ1RfSU5ULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICBXRUJL
SVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBHX1RZUEVfSU5UKTsKKworICAgIC8q
CisgICAgICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLWxvYWQtZmFpbGVkCisgICAgICogQHdl
YkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9y
CisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQgd2FzIGxv
YWRlZAorICAgICAqIEB3ZWJFcnJvcjogdGhlICNHRXJyb3IgdGhhdCB3YXMgdHJpZ2dlcmVkCisg
ICAgICoKKyAgICAgKiBJbnZva2VkIHdoZW4gYSByZXNvdXJjZSBmYWlsZWQgdG8gbG9hZC4KKyAg
ICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tSRVNPVVJDRV9MT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxv
YWQtZmFpbGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAor
ICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9B
Q1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3
ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfUE9JTlRFUiwKKyAgICAgICAgICAgIEdfVFlQRV9O
T05FLCAyLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAg
ICAgR19UWVBFX1BPSU5URVIpOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2Yg
dmlydHVhbCBtZXRob2RzCiAgICAgICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnJlc291cmNlLmNwcAppbmRleCBiN2Y0MDM2Li5jMjVjNWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxz
cHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRu
ZXR3b3JrcmVzcG9uc2UuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCIK
ICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KQEAgLTQ1LDE0
ICs0NiwyNSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIGVudW0gewotICAgIFBST1Bf
MCwKKyAgICAvLyBSZXNvdXJjZSBsb2FkaW5nCisgICAgUkVTUE9OU0VfUkVDRUlWRUQsCisgICAg
TE9BRElOR19GSU5JU0hFRCwKKyAgICBDT05URU5UX0xFTkdUSF9SRUNFSVZFRCwKKyAgICBMT0FE
X0ZBSUxFRCwKKworICAgIExBU1RfU0lHTkFMCit9OwogCitlbnVtIHsKKyAgICBQUk9QXzAsCiAg
ICAgUFJPUF9VUkksCiAgICAgUFJPUF9NSU1FX1RZUEUsCiAgICAgUFJPUF9FTkNPRElORywKICAg
ICBQUk9QX0ZSQU1FX05BTUUKIH07CiAKK3N0YXRpYyBndWludCB3ZWJraXRfd2ViX3Jlc291cmNl
X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBHX0RFRklORV9UWVBFKFdlYktpdFdl
YlJlc291cmNlLCB3ZWJraXRfd2ViX3Jlc291cmNlLCBHX1RZUEVfT0JKRUNUKTsKIAogc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYyk7CkBAIC0xMDEs
MTUgKzExMyw4NSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplKEdP
YmplY3QqIG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3Jlc291cmNlX3Bh
cmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKiBrbGFzcykKK3N0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJSZXNvdXJj
ZUNsYXNzKiB3ZWJSZXNvdXJjZUNsYXNzKQogewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9j
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3Rf
Y2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKTsKIAogICAgIGdvYmplY3Rf
Y2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2Rpc3Bvc2U7CiAgICAgZ29iamVj
dF9jbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplOwogICAgIGdv
YmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Byb3Bl
cnR5OwogICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3Vy
Y2Vfc2V0X3Byb3BlcnR5OwogCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6cmVz
cG9uc2UtcmVjZWl2ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNw
b25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBm
aXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6IDEuNS4xCisg
ICAgICovCisgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW1JFU1BPTlNFX1JFQ0VJVkVE
XSA9IGdfc2lnbmFsX25ldygicmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19P
QkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgIFdFQktJVF9U
WVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJj
ZTo6bG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdh
cyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hlbiBhIHJlc291cmNlIGZhaWxl
ZCB0byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTE9BRF9GQUlMRURdID0gZ19zaWduYWxfbmV3KCJsb2Fk
LWZhaWxlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNz
KSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdO
QUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLCAwLAorICAgICAgICAg
ICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9O
T05FLCAxLAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKKyAgICAgKiBX
ZWJLaXRXZWJSZXNvdXJjZTo6bG9hZGluZy1maW5pc2hlZAorICAgICAqIEB3ZWJSZXNvdXJjZTog
dGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKgorICAgICAqIEVtaXR0
ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoK
KyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3Jlc291cmNlX3Np
Z25hbHNbTE9BRElOR19GSU5JU0hFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWRpbmctZmluaXNoZWQi
LAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViUmVzb3VyY2VDbGFzcyksCisgICAg
ICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElP
TiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIGdfY2Ns
b3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOwor
CisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVjZWl2
ZWQKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMg
bG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0aGUgcmVzb3VyY2UgZGF0YSBsZW5ndGgg
aW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRo
ZSByZXNvdXJjZSB3YXMgbG9hZGVkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEKKyAgICAg
Ki8KKyAgICB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbQ09OVEVOVF9MRU5HVEhfUkVDRUlW
RURdID0gZ19zaWduYWxfbmV3KCJjb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCisgICAgICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2ln
bmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAg
ICAgIDAsCisgICAgICAgICAgICAwLCAwLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFs
X1ZPSURfX0lOVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19U
WVBFX0lOVCk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTp1cmk6CiAgICAg
ICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA5MjUw
NDkzLi5hMWU2YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwCkBAIC0xODIsNyArMTgyLDYgQEAgZW51bSB7CiAgICAgVU5ETywKICAgICBSRURPLAogICAg
IERBVEFCQVNFX1FVT1RBX0VYQ0VFREVELAotICAgIFJFU09VUkNFX1JFUVVFU1RfU1RBUlRJTkcs
CiAgICAgRE9DVU1FTlRfTE9BRF9GSU5JU0hFRCwKICAgICBHRU9MT0NBVElPTl9QT0xJQ1lfREVD
SVNJT05fUkVRVUVTVEVELAogICAgIEdFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTl9DQU5DRUxM
RUQsCkBAIC0yMDEsNiArMjAwLDExIEBAIGVudW0gewogICAgIEVESVRJTkdfRU5ERUQsCiAgICAg
VklFV1BPUlRfQVRUUklCVVRFU19SRUNPTVBVVEVfUkVRVUVTVEVELAogICAgIFZJRVdQT1JUX0FU
VFJJQlVURVNfQ0hBTkdFRCwKKyAgICBSRVNPVVJDRV9SRVFVRVNUX1NUQVJUSU5HLAorICAgIFJF
U09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVELAorICAgIFJFU09VUkNFX0xPQURJTkdfRklOSVNIRUQs
CisgICAgUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCisgICAgUkVTT1VSQ0VfTE9B
RF9GQUlMRUQsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTI3NDUsNiArMjc0OSw5MiBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3Mq
IHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX1ZJRVdQT1JUX0FUVFJJQlVU
RVMpOwogCiAgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1yZXNwb25zZS1y
ZWNlaXZlZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBz
aWduYWwKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNl
IHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVz
b3VyY2UgYmVpbmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtS
ZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRo
ZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6IDEuNS4x
CisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfUkVTUE9OU0Vf
UkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hh
bF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAz
LAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lU
X1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQ
T05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWRpbmct
ZmluaXNoZWQKKyAgICAgKiBAd2ViVmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUg
c2lnbmFsCisgICAgICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25z
ZSB3YXMgcmVjZWl2ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJl
c291cmNlIHRoYXQgd2FzIGxvYWRlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0
aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNl
OiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0xP
QURJTkdfRklOSVNIRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1sb2FkaW5nLWZpbmlzaGVk
IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAg
ICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiks
CisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9t
YXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwK
KyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9U
WVBFX1dFQl9SRVNPVVJDRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291
cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qg
d2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRX
ZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJj
ZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3Ro
UmVjZWl2ZWQ6IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAg
ICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQK
KyAgICAgKgorICAgICAqIFNpbmNlOiAxLjUuMQorICAgICAqLworICAgIHdlYmtpdF93ZWJfdmll
d19zaWduYWxzW1JFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25l
dygicmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAg
ICAgICAgICAwLCAwLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09C
SkVDVF9JTlQsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywKKyAgICAgICAgICAgIFdFQktJ
VF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwK
KyAgICAgICAgICAgIEdfVFlQRV9JTlQpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3
OjpyZXNvdXJjZS1sb2FkLWZhaWxlZAorICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNo
IHJlY2VpdmVkIHRoZSBzaWduYWwKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJh
bWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRo
ZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVycm9yOiB0
aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9rZWQgd2hl
biBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkCisgICAgICoKKyAgICAgKiBTaW5jZTogMS41LjEK
KyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tSRVNPVVJDRV9MT0FEX0ZBSUxF
RF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWQtZmFpbGVkIiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVD
VF9PQkpFQ1RfUE9JTlRFUiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JF
U09VUkNFLAorICAgICAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoKICAgICAgKiBp
bXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCiAgICAgd2ViVmlld0Ns
YXNzLT5jcmVhdGVfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3Zp
ZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKaW5kZXggNTM3MmM1Ny4uYjc4OTA4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5saXN0CisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdApAQCAtMTcsOSArMTcsMTMgQEAg
T0JKRUNUOk9CSkVDVAogT0JKRUNUOlNUUklORyxTVFJJTkcsUE9JTlRFUgogT0JKRUNUOlZPSUQK
IFZPSUQ6T0JKRUNULE9CSkVDVAorVk9JRDpPQkpFQ1QsT0JKRUNULElOVAorVk9JRDpPQkpFQ1Qs
T0JKRUNULE9CSkVDVAorVk9JRDpPQkpFQ1QsT0JKRUNULFBPSU5URVIKIFZPSUQ6T0JKRUNULE9C
SkVDVCxPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxQT0lOVEVSLFBPSU5URVIKK1ZPSUQ6T0JK
RUNULElOVAorVk9JRDpPQkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpFQ1QsU1RSSU5HCiBWT0lEOlNU
UklORwogVk9JRDpTVFJJTkcsU1RSSU5HCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYTI0YzZmLi43ZGUzYjgzIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEt
MDUtMDkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgU2VyZ2lv
IFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBJbXByb3ZlIEZyYW1lTG9hZGVyIHNp
Z25hbHMuIFJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5NTQzCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdGhlIG5ldyBsb2Fk
ZXIgc2lnbmFscyBpbiBEUlQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWUuY3BwOgorICAgICAgICAodXJsUGF0aCk6CisgICAgICAgICh3aWxsU2VuZFJlcXVl
c3RDYWxsYmFjayk6CisgICAgICAgICh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAg
ICAoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAoZGlkUmVjZWl2
ZVJlc3BvbnNlKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoZGlkRmFp
bExvYWRpbmdXaXRoRXJyb3IpOgorICAgICAgICAoY3JlYXRlV2ViVmlldyk6CisKIDIwMTEtMDUt
MTAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBzb21l
IHBsdWdpbiB0ZXN0cyB0byB3b3JrIHdpdGggV2ViS2l0MidzIGFzeW5jaHJvbm91cyB3aW5kb3dl
ZCBwbHVnaW4gcG9zaXRpb25pbmcgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggYTY3MWUxZi4uZTljNWYwNiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMDQ3LDggKzEwNDcsMTQz
IEBAIHN0YXRpYyB2b2lkIGZyYW1lQ3JlYXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJGcmFt
ZSwgIm5vdGlmeTo6bG9hZC1zdGF0dXMiLCBHX0NBTExCQUNLKHdlYkZyYW1lTG9hZFN0YXR1c05v
dGlmaWVkKSwgTlVMTCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNr
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiwgV2ViS2l0V2ViUmVzb3Vy
Y2UqLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0TmV0d29ya1Jlc3BvbnNl
KikKKworc3RhdGljIENTdHJpbmcgY29udmVydFNvdXBVUklUb1VSTFBhdGgoU291cFVSSSogdXJp
KQoreworICAgIGlmICghdXJpKQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOworCisgICAgaWYg
KGdfc3RyX2VxdWFsKHVyaS0+c2NoZW1lLCAiaHR0cCIpKSB7CisgICAgICAgIEdPd25QdHI8Y2hh
cj4gdXJpU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIEZBTFNFKSk7CisgICAgICAgIHJl
dHVybiBDU3RyaW5nKHVyaVN0cmluZy5nZXQoKSk7CisgICAgfQorCisgICAgR093blB0cjxnY2hh
cj4gcGF0aERpcm5hbWUoZ19wYXRoX2dldF9iYXNlbmFtZShnX3BhdGhfZ2V0X2Rpcm5hbWUodXJp
LT5wYXRoKSkpOworICAgIEdPd25QdHI8Z2NoYXI+IHBhdGhCYXNlbmFtZShnX3BhdGhfZ2V0X2Jh
c2VuYW1lKHVyaS0+cGF0aCkpOworICAgIEdPd25QdHI8Z2NoYXI+IHVybFBhdGgoZ19zdHJkdXBf
cHJpbnRmKCIlcy8lcyIsIHBhdGhEaXJuYW1lLmdldCgpLCBwYXRoQmFzZW5hbWUuZ2V0KCkpKTsK
KyAgICByZXR1cm4gQ1N0cmluZyh1cmxQYXRoLmdldCgpKTsKK30KKworc3RhdGljIENTdHJpbmcg
Y29udmVydFNvdXBNZXNzYWdlVG9VUkxQYXRoKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSkKK3sK
KyAgICBpZiAoIXNvdXBNZXNzYWdlKQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgIGlm
IChTb3VwVVJJKiByZXF1ZXN0VVJJID0gc291cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3NhZ2Up
KQorICAgICAgICByZXR1cm4gY29udmVydFNvdXBVUklUb1VSTFBhdGgocmVxdWVzdFVSSSk7Cisg
ICAgcmV0dXJuIENTdHJpbmcoKTsKK30KKworc3RhdGljIENTdHJpbmcgY29udmVydE5ldHdvcmtS
ZXF1ZXN0VG9VUkxQYXRoKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIHJl
dHVybiBjb252ZXJ0U291cE1lc3NhZ2VUb1VSTFBhdGgod2Via2l0X25ldHdvcmtfcmVxdWVzdF9n
ZXRfbWVzc2FnZShyZXF1ZXN0KSk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIGNvbnZlcnRXZWJSZXNv
dXJjZVRvVVJMUGF0aChXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7CisgICAgU291
cFVSSSogdXJpID0gc291cF91cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3ZWJS
ZXNvdXJjZSkpOworICAgIENTdHJpbmcgdXJsUGF0aChjb252ZXJ0U291cFVSSVRvVVJMUGF0aCh1
cmkpKTsKKyAgICBzb3VwX3VyaV9mcmVlKHVyaSk7CisgICAgcmV0dXJuIHVybFBhdGg7Cit9CisK
K3N0YXRpYyBDU3RyaW5nIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBjaGFyKiB1cmlT
dHJpbmcpCit7CisgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4KHVyaVN0cmluZywgImZpbGU6Ly8i
KSkKKyAgICAgICAgcmV0dXJuIENTdHJpbmcodXJpU3RyaW5nKTsKKworICAgIEdPd25QdHI8Z2No
YXI+IGJhc2VuYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodXJpU3RyaW5nKSk7CisgICAgcmV0dXJu
IENTdHJpbmcoYmFzZW5hbWUuZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChTb3VwVVJJKiB1cmkpCit7CisgICAgaWYgKCF1cmkpCisg
ICAgICAgIHJldHVybiBDU3RyaW5nKCIiKTsKKworICAgIEdPd25QdHI8Y2hhcj4gdXJpU3RyaW5n
KHNvdXBfdXJpX3RvX3N0cmluZyh1cmksIGZhbHNlKSk7CisgICAgcmV0dXJuIHVybFN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh1cmlTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0cmluZyBkZXNj
cmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRXZWJGcmFtZSogd2ViRnJhbWUsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKK3sK
KyAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRf
dXJpKHdlYlJlc291cmNlKSk7CisgICAgQ1N0cmluZyBkZXNjcmlwdGlvbjsKKyAgICBXZWJLaXRX
ZWJEYXRhU291cmNlKiBkYXRhU291cmNlID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9zb3Vy
Y2Uod2ViRnJhbWUpOworCisgICAgaWYgKHdlYlJlc291cmNlID09IHdlYmtpdF93ZWJfZGF0YV9z
b3VyY2VfZ2V0X21haW5fcmVzb3VyY2UoZGF0YVNvdXJjZSkKKyAgICAgICAgJiYgKCF3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3Byb2dyZXNzKHdlYlZpZXcpIHx8IGdfc3RyX2VxdWFsKHVyaS0+c2NoZW1l
LCAiZmlsZSIpKSkKKyAgICAgICAgZGVzY3JpcHRpb24gPSBDU3RyaW5nKCI8dW5rbm93bj4iKTsK
KyAgICBlbHNlCisgICAgICAgIGRlc2NyaXB0aW9uID0gY29udmVydFdlYlJlc291cmNlVG9VUkxQ
YXRoKHdlYlJlc291cmNlKTsKKworICAgIGlmICh1cmkpCisgICAgICAgIHNvdXBfdXJpX2ZyZWUo
dXJpKTsKKworICAgIHJldHVybiBkZXNjcmlwdGlvbjsKK30KKworc3RhdGljIENTdHJpbmcgZGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoR0Vycm9yKiBlcnJvciwgV2ViS2l0V2ViUmVz
b3VyY2UqIHdlYlJlc291cmNlKQoreworICAgIGNvbnN0IGdjaGFyKiBlcnJvckRvbWFpbiA9IGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pOworICAgIENTdHJpbmcgcmVzb3VyY2VVUklT
dHJpbmcodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Vy
aSh3ZWJSZXNvdXJjZSkpKTsKKworICAgIGlmIChnX3N0cl9lcXVhbChlcnJvckRvbWFpbiwgIndl
YmtpdC1uZXR3b3JrLWVycm9yLXF1YXJrIikpCisgICAgICAgIGVycm9yRG9tYWluID0gIk5TVVJM
RXJyb3JEb21haW4iOworCisgICAgLy8gVE9ETzogdGhlIG90aGVyIHBvcnRzIGdldCB0aGUgZmFp
bGluZ1VSTCBmcm9tIHRoZSBSZXNvdXJjZUVycm9yCisgICAgR093blB0cjxjaGFyPiBlcnJvclN0
cmluZyhnX3N0cmR1cF9wcmludGYoIjxOU0Vycm9yIGRvbWFpbiAlcywgY29kZSAlZCwgZmFpbGlu
ZyBVUkwgXCIlc1wiPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JEb21haW4sIGVycm9yLT5jb2RlLCByZXNvdXJjZVVSSVN0cmluZy5kYXRhKCkp
KTsKKyAgICByZXR1cm4gQ1N0cmluZyhlcnJvclN0cmluZy5nZXQoKSk7Cit9CisKK3N0YXRpYyBD
U3RyaW5nIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXF1
ZXN0KiByZXF1ZXN0KQoreworICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSA9IHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UocmVxdWVzdCk7CisKKyAgICBpZiAoIXNvdXBNZXNz
YWdlKQorICAgICAgICByZXR1cm4gQ1N0cmluZygiIik7CisKKyAgICBTb3VwVVJJKiByZXF1ZXN0
VVJJID0gc291cF9tZXNzYWdlX2dldF91cmkoc291cE1lc3NhZ2UpOworICAgIFNvdXBVUkkqIG1h
aW5Eb2N1bWVudFVSSSA9IHNvdXBfbWVzc2FnZV9nZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2Up
OworICAgIENTdHJpbmcgcmVxdWVzdFVSSVN0cmluZyhkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVz
dFJlc3VsdChyZXF1ZXN0VVJJKSk7CisgICAgQ1N0cmluZyBtYWluRG9jdW1lbnRVUklTdHJpbmco
ZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQobWFpbkRvY3VtZW50VVJJKSk7CisgICAg
Q1N0cmluZyBwYXRoKGNvbnZlcnROZXR3b3JrUmVxdWVzdFRvVVJMUGF0aChyZXF1ZXN0KSk7Cisg
ICAgR093blB0cjxjaGFyPiBkZXNjcmlwdGlvbihnX3N0cmR1cF9wcmludGYoIjxOU1VSTFJlcXVl
c3QgVVJMICVzLCBtYWluIGRvY3VtZW50IFVSTCAlcywgaHR0cCBtZXRob2QgJXM+IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmRhdGEoKSwgbWFp
bkRvY3VtZW50VVJJU3RyaW5nLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzb3VwTWVzc2FnZSA/IHNvdXBNZXNzYWdlLT5tZXRob2QgOiAiKG5v
bmUpIikpOworICAgIHJldHVybiBDU3RyaW5nKGRlc2NyaXB0aW9uLmdldCgpKTsKK30KKworc3Rh
dGljIENTdHJpbmcgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0TmV0d29y
a1Jlc3BvbnNlKiByZXNwb25zZSkKK3sKKyAgICBpZiAoIXJlc3BvbnNlKQorICAgICAgICByZXR1
cm4gQ1N0cmluZygiKG51bGwpIik7CisKKyAgICBpbnQgc3RhdHVzQ29kZSA9IDA7CisgICAgQ1N0
cmluZyByZXNwb25zZVVSSVN0cmluZyh1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQod2Via2l0X25l
dHdvcmtfcmVzcG9uc2VfZ2V0X3VyaShyZXNwb25zZSkpKTsKKyAgICBTb3VwTWVzc2FnZSogc291
cE1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfbWVzc2FnZShyZXNwb25zZSk7
CisgICAgQ1N0cmluZyBwYXRoOworCisgICAgaWYgKHNvdXBNZXNzYWdlKSB7CisgICAgICAgIHN0
YXR1c0NvZGUgPSBzb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGU7CisgICAgICAgIHBhdGggPSBjb252
ZXJ0U291cE1lc3NhZ2VUb1VSTFBhdGgoc291cE1lc3NhZ2UpOworICAgIH0gZWxzZQorICAgICAg
ICBwYXRoID0gQ1N0cmluZygiIik7CisKKyAgICBHT3duUHRyPGNoYXI+IGRlc2NyaXB0aW9uKGdf
c3RyZHVwX3ByaW50ZigiPE5TVVJMUmVzcG9uc2UgJXMsIGh0dHAgc3RhdHVzIGNvZGUgJWQ+Iiwg
cGF0aC5kYXRhKCksIHN0YXR1c0NvZGUpKTsKKyAgICByZXR1cm4gQ1N0cmluZyhkZXNjcmlwdGlv
bi5nZXQoKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2ViS2l0V2ViUmVz
b3VyY2UqIHJlc291cmNlLCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgV2ViS2l0TmV0
d29ya1Jlc3BvbnNlKiByZXNwb25zZSkKIHsKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgQ1N0cmlu
ZyByZXF1ZXN0RGVzY3JpcHRpb24oZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVx
dWVzdCkpOworICAgICAgICBDU3RyaW5nIHJlc3BvbnNlRGVzY3JpcHRpb24oZGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQocmVzcG9uc2UpKTsKKyAgICAgICAgQ1N0cmluZyBwYXRoKGNv
bnZlcnROZXR3b3JrUmVxdWVzdFRvVVJMUGF0aChyZXF1ZXN0KSk7CisgICAgICAgIHByaW50Zigi
JXMgLSB3aWxsU2VuZFJlcXVlc3QgJXMgcmVkaXJlY3RSZXNwb25zZSAlc1xuIiwgcGF0aC5kYXRh
KCksCisgICAgICAgICAgICAgICByZXF1ZXN0RGVzY3JpcHRpb24uZGF0YSgpLCByZXNwb25zZURl
c2NyaXB0aW9uLmRhdGEoKSk7CisgICAgfQorCiAgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xMDU5LDkgKzExOTQsMTMgQEAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0Q2Fs
bGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWIKICAgICAg
ICAgJiYgZ19zdHJjbXAwKHVyaS0+aG9zdCwgIjI1NS4yNTUuMjU1LjI1NSIpCiAgICAgICAgICYm
IGdfYXNjaWlfc3RybmNhc2VjbXAodXJpLT5ob3N0LCAibG9jYWxob3N0IiwgOSkpIHsKICAgICAg
ICAgcHJpbnRmKCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgJXNcbiIsIHNvdXBfdXJp
X3RvX3N0cmluZyh1cmksIEZBTFNFKSk7CisgICAgICAgIC8vIENhbmNlbCBsb2FkIG9mIGJsb2Nr
ZWQgcmVzb3VyY2UgdG8gYXZvaWQgcG90ZW50aWFsCisgICAgICAgIC8vIG5ldHdvcmstcmVsYXRl
ZCB0aW1lb3V0cyBpbiB0ZXN0cy4KKyAgICAgICAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRf
dXJpKHJlcXVlc3QsICJhYm91dDpibGFuayIpOwogICAgICAgICBzb3VwX3VyaV9mcmVlKHVyaSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBpZiAodXJpKQogICAgICAgICBzb3VwX3Vy
aV9mcmVlKHVyaSk7CiAKQEAgLTEwNzIsNiArMTIxMSwzNCBAQCBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSos
IFdlYgogICAgIH0KIH0KIAorCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogd2Vi
UmVzb3VyY2UsIFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgaWYgKCFk
b25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygp
KSB7CisgICAgICAgIENTdHJpbmcgcmVzcG9uc2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkpOworICAgICAgICBDU3RyaW5nIHBhdGgoY29udmVy
dFdlYlJlc291cmNlVG9VUkxQYXRoKHdlYlJlc291cmNlKSk7CisgICAgICAgIHByaW50ZigiJXMg
LSBkaWRSZWNlaXZlUmVzcG9uc2UgJXNcbiIsIHBhdGguZGF0YSgpLCByZXNwb25zZURlc2NyaXB0
aW9uLmRhdGEoKSk7CisgICAgfQorCisgICAgLy8gVE9ETzogYWRkICJoYXMgTUlNRSB0eXBlIiB3
aGVuZXZlciBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpCisgICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODIyMi4KK30KKworc3RhdGljIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFt
ZSogd2ViRnJhbWUsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKK3sKKyAgICBpZiAo
IWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
KCkpCisgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkaW5nXG4iLCBkZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJWaWV3LCB3ZWJGcmFtZSwgd2ViUmVzb3VyY2UpLmRh
dGEoKSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2ViS2l0V2ViUmVzb3Vy
Y2UqIHdlYlJlc291cmNlLCBHRXJyb3IqIHdlYkVycm9yKQoreworICAgIGlmICghZG9uZSAmJiBn
TGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAg
ICAgICBDU3RyaW5nIHdlYkVycm9yU3RyaW5nKGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVz
dWx0KHdlYkVycm9yLCB3ZWJSZXNvdXJjZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmFp
bExvYWRpbmdXaXRoRXJyb3I6ICVzXG4iLCBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3Vs
dCh3ZWJWaWV3LCB3ZWJGcmFtZSwgd2ViUmVzb3VyY2UpLmRhdGEoKSwKKyAgICAgICAgICAgICAg
IHdlYkVycm9yU3RyaW5nLmRhdGEoKSk7CisgICAgfQorfQorCiBzdGF0aWMgV2ViS2l0V2ViVmll
dyogY3JlYXRlV2ViVmlldygpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9X
RUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwpAQCAtMTEwMSw3ICsxMjY4LDkgQEAgc3Rh
dGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAg
InNpZ25hbDo6ZHJhZy1mYWlsZWQiLCBkcmFnRmFpbGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAg
ICAgICAgICAgICAic2lnbmFsOjpmcmFtZS1jcmVhdGVkIiwgZnJhbWVDcmVhdGVkQ2FsbGJhY2ss
IDAsCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0
aW5nIiwgd2lsbFNlbmRSZXF1ZXN0Q2FsbGJhY2ssIDAsCi0KKyAgICAgICAgICAgICAgICAgICAg
ICJzaWduYWw6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgZGlkUmVjZWl2ZVJlc3BvbnNl
LCAwLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtbG9hZGluZy1maW5p
c2hlZCIsIGRpZEZpbmlzaExvYWRpbmcsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFs
OjpyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIGRpZEZhaWxMb2FkaW5nV2l0aEVycm9yLCAwLAogICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRpbmdDYWxsYmFja3Modmll
dyk7CiAKLS0gCjEuNy40LjQ=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124721</attachid>
            <date>2012-01-31 06:58:54 -0800</date>
            <delta_ts>2012-02-24 02:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>38279</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBlYWUyZTVjOTI1YjE4ODNiYjhiN2IxZjBkZTVlOWRhMDMyY2Q1MWUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDMxIEphbiAyMDEyIDE1OjU3OjQ0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDEzICsrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAg
ICAgICAgICAgICB8ICAgMjEgKy0tLQogLi4uL2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50
LWV4cGVjdGVkLnR4dCAgICAgfCAgICA4ICsKIC4uLmlsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKwogLi4uL2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgICAgfCAgIDQzICsrKystLQogU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgfCAgMTI3ICsrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwICAg
ICB8ICAgODggKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcCAgICAgICAgIHwgICA5MSArKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXRtYXJzaGFsLmxpc3QgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFRvb2xzL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKwogVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCAgICAgICAgfCAgMTc1ICsrKysrKysrKysr
KysrKysrKystCiAxMiBmaWxlcyBjaGFuZ2VkLCA1OTIgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3Qv
bG9hZGVyL2ZpbGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJkMjM3
NzAuLmJkMDQwZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNS0wOSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFtZUxvYWRlciBzaWduYWxz
LiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTU0MworCisgICAgICAgIFVuc2tpcCB0ZXN0cyBub3cgcGFzc2luZy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9m
YXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNwb25zZS1k
ZWxlZ2F0ZS1jYWxsYmFjay1leHBlY3RlZC50eHQ6CisKIDIwMTItMDEtMzEgIFl1em8gRnVqaXNo
aW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCB0
ZXN0IGV4cGVjdGF0aW9uIGNoYW5nZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMDc2
ZDBmMy4uNmU4NzRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTQ1NywxMiArNDU3
LDcgQEAgZmFzdC9mb3Jtcy9zZWxlY3Qtc2NyaXB0LW9uY2hhbmdlLmh0bWwKIGZhc3QvaHRtbC90
YWItb3JkZXIuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdhdGVzOgotIyBOZWVkIHByb3BlciBmcmFt
ZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMyMTcwCi1mYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdt
ZW50Lmh0bWwKLSMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIG9mIG1pc3NpbmcgcmVzb3VyY2UgbG9h
ZCBkZWxlZ2F0ZSBjYWxsYmFja3MuCi1mYXN0L2xvYWRlci9tYWluLWRvY3VtZW50LXVybC1mb3It
bm9uLWh0dHAtbG9hZHMuaHRtbAotaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3Jl
bG9hZC5odG1sCisKICMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIG9mIG1pc3NpbmcgcG9saWN5IGRl
bGVnYXRlIGNhbGxiYWNrcy4KIGZhc3QvbG9hZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1m
cmFtZS5odG1sCiBmYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpv
b21lZC5odG1sCkBAIC02OTQsMTMgKzY4OSw4IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU1NjgyCiBmYXN0L2ltYWdlcy9zdXBwb3J0LWJyb2tlbi1pbWFn
ZS1kZWxlZ2F0ZS5odG1sCiAKLSMgRmFpbCBkdWUgdG8gYW4gZXh0cmEgIkNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IiCi1mYXN0L2xvYWRlci9vbmxvYWQt
d2lsbFNlbmRSZXF1ZXN0LW51bGwtZm9yLXNjcmlwdC5odG1sCi1mYXN0L2xvYWRlci93aWxsU2Vu
ZFJlcXVlc3QtbnVsbC1mb3ItcHJlbG9hZC5odG1sCi0KICMgUmVxdWlyZXMgd2lsbFNlbmRSZXF1
ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0ICsgd2lsbFNlbmRSZXF1ZXN0ICsgZGlkRmluaXNoTG9h
ZGluZwogaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1y
ZWRpcmVjdC5odG1sCi1odHRwL3Rlc3RzL21pc2MvZmF2aWNvbi1sb2Fkcy13aXRoLWljb24tbG9h
ZGluZy1vdmVycmlkZS5odG1sCiAjIFJlcXVpcmVzIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RU
b1VSTAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg1MjYKIGh0
dHAvdGVzdHMvbG9hZGluZy9vbmxvYWQtdnMtaW1tZWRpYXRlLXJlZnJlc2gucGwKQEAgLTgwOCwx
MSArNzk4LDYgQEAgZmFzdC90ZXh0L2NhcGl0YWxpemUtYm91bmRhcmllcy5odG1sCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4OQogZmFzdC9yZXBsYWNlZC9i
b3JkZXItcmFkaXVzLWNsaXAuaHRtbAogCi0jIE5ldyB0ZXN0IG5lZWRzIGVuaGFuY2VkIGZyYW1l
bG9hZGVyIGRlbGVnYXRlIGxvZ2dpbmcgaW4gRFJUCi0jIERpc2N1c3NlZCBpbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MjgKLWZhc3QvbG9hZGVyL3JlY3Vyc2l2
ZS1iZWZvcmUtdW5sb2FkLWNyYXNoLmh0bWwgCi1mYXN0L2xvYWRlci9udWxsLXJlcXVlc3QtYWZ0
ZXItd2lsbFNlbmRSZXF1ZXN0Lmh0bWwKLQogIyBOZWVkIHRvIGR1bXAgY29udGV4dCBtZW51IGl0
ZW1zIG9uIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljayh0cnVlKS4KICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQt
bWVudS1zdWdnZXN0aW9ucy5odG1sCkBAIC0xMzAxLDEwICsxMjg2LDYgQEAgaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Bvc3QtMzA3LXJlc3BvbnNlLmh0bWwKIGZhc3QvZXZlbnRzL2Ryb3B6b25lLTAw
Mi5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDUuaHRtbAogCi0jIFtHVEtdIER1bXBSZW5k
ZXJUcmVlIGRvZXNuJ3QgYmxvY2sgZXh0ZXJuYWwgcmVxdWVzdHMKLSMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNTg1Ci1mYXN0L3dvcmtlcnMvd29ya2VyLWNyYXNo
LXdpdGgtaW52YWxpZC1sb2NhdGlvbi5odG1sCi0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MDg1CiBodHRwL3Rlc3RzL21pc2MvaWZyYW1lLXJlcGFyZW50aW5n
LWlkLWNvbGxpc2lvbi5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTIyMGI1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbG9hZGVyL2Zp
bGUtcHJvdG9jb2wtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorcmVzb3Vy
Y2VzL3N0eWxlc2hlZXQuY3NzIC0gd2lsbFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMIHJl
c291cmNlcy9zdHlsZXNoZWV0LmNzcywgbWFpbiBkb2N1bWVudCBVUkwgZmlsZS1wcm90b2NvbC1m
cmFnbWVudC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCity
ZXNvdXJjZXMvc3R5bGVzaGVldC5jc3MgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBV
UkwgcmVzb3VyY2VzL3N0eWxlc2hlZXQuY3NzLCBtYWluIGRvY3VtZW50IFVSTCBmaWxlLXByb3Rv
Y29sLWZyYWdtZW50Lmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVs
bCkKKzx1bmtub3duPiAtIGRpZEZpbmlzaExvYWRpbmcKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNz
cyAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSByZXNvdXJjZXMvc3R5bGVzaGVl
dC5jc3MsIGh0dHAgc3RhdHVzIGNvZGUgMD4KK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRp
ZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSByZXNvdXJjZXMvc3R5bGVzaGVldC5jc3Ms
IGh0dHAgc3RhdHVzIGNvZGUgMD4KK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRpZEZpbmlz
aExvYWRpbmcKK3Jlc291cmNlcy9zdHlsZXNoZWV0LmNzcyAtIGRpZEZpbmlzaExvYWRpbmcKK1Ro
aXMgdGVzdHMgdGhhdCBmaWxlOiBVUkwgYXJlIGxvYWRlZCBzZXBhcmF0ZWx5IGV2ZW4gaWYgdGhl
eSBkaWZmZXIgYnkgdGhlIGZyYWdtZW50IG9ubHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9taXNjL3dpbGxDYWNoZVJlc3BvbnNlLWRlbGVnYXRlLWNh
bGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3Rz
L21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cmlu
ZGV4IGI3ZWE1N2QuLmE0ZjE3YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9odHRwL3Rlc3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2Mv
d2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsNSBAQAoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dpbGxDYWNoZVJl
c3BvbnNlLXN1Y2Nlc3MuaHRtbCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3Vj
Y2Vzcy5odG1sLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy93
aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay5odG1sLCBodHRwIG1ldGhvZCBHRVQ+
IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNv
dXJjZXMvd2lsbENhY2hlUmVzcG9uc2Utc3VjY2Vzcy5odG1sIC0gZGlkUmVjZWl2ZVJlc3BvbnNl
IDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93aWxs
Q2FjaGVSZXNwb25zZS1zdWNjZXNzLmh0bWwsIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgogVGhpcyB0
ZXN0cyBmb3IgdGhlIHdpbGxDYWNoZVJlc3BvbnNlIHJlc291cmNlIGRlbGVnYXRlIGNhbGxiYWNr
IGFzIGFkZGVkIGZvciByYWRhciA1MDA4OTI1LgogVGhlIHRlc3QgaXMgb25seSBtZWFuaW5nZnVs
IGlmIHlvdSBhcmUgcnVubmluZyBpdCB1bmRlciBEdW1wUmVuZGVyVHJlZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggZDQ0OTQ2NC4uNzRhMzRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
IEBACisyMDExLTA1LTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4g
YW5kIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGcmFt
ZUxvYWRlciBzaWduYWxzLiBSZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTU0MworCisgICAgICAgIE5ldyBzaWduYWxzOgor
ICAgICAgICBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZworICAgICAg
ICBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2Vi
S2l0V2ViRnJhbWU6OnJlc291cmNlLWxvYWQtZmluaXNoZWQKKyAgICAgICAgV2ViS2l0V2ViRnJh
bWU6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYkZy
YW1lOjpyZXNvdXJjZS1sb2FkLWZhaWxlZAorICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZTo6cmVz
cG9uc2UtcmVjZWl2ZWQKKyAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWQtZmFpbGVkCisg
ICAgICAgIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdl
YlJlc291cmNlOjpjb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3
OjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAgICBXZWJLaXRXZWJWaWV3OjpyZXNv
dXJjZS1sb2FkLWZpbmlzaGVkCisgICAgICAgIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRl
bnQtbGVuZ3RoLXJlY2VpdmVkCisgICAgICAgIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQt
ZmFpbGVkCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5k
UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFz
c19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgorICAgICAg
ICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Cisg
ICAgICAgICogd2Via2l0bWFyc2hhbC5saXN0OgorCiAyMDEyLTAxLTIzICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZWZhY3RvciBH
VEsncyBhY2Nlc3NpYmlsaXRpdHkgY29kZSB0byBiZSBtb3JlIG1vZHVsYXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcAppbmRleCBkOTA3YjJiLi5mY2NlYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0yMzMs
OCArMjMzLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3QoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwKICAgICAgICAgZ19mcmVlKHdlYlJl
c291cmNlLT5wcml2LT51cmkpOwogICAgICAgICB3ZWJSZXNvdXJjZS0+cHJpdi0+dXJpID0gZ19z
dHJkdXAocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9Ci0gICAg
CisKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLXJlcXVlc3Qt
c3RhcnRpbmciLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgbmV0d29ya1JlcXVlc3QuZ2V0KCksIG5l
dHdvcmtSZXNwb25zZS5nZXQoKSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUs
ICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0
LmdldCgpLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwogCiAgICAgLy8gRmVlZCBhbnkgY2hhbmdl
cyBiYWNrIGludG8gdGhlIFJlc291cmNlUmVxdWVzdCBvYmplY3QuCiAgICAgU291cE1lc3NhZ2Uq
IG1lc3NhZ2UgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKG5ldHdvcmtSZXF1
ZXN0LmdldCgpKTsKQEAgLTI5OCwxMyArMjk5LDIyIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVSZXNw
b25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIC8vIFVwZGF0
ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAtIHNvbWUgYXJlIG9ubHkgc2V0
CiAgICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KICAgICBsb2FkZXItPnJlcXVlc3Qo
KS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBNZXNzYWdlRmxhZ3MoKSk7CiAKICAg
ICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7CisKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0g
Z2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKyAgICBHT3duUHRyPGdjaGFyPiBpZGVudGlmaWVy
U3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKKyAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2Vi
UmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKHdlYlZpZXcsIGlkZW50aWZp
ZXJTdHJpbmcuZ2V0KCkpOworICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1Jlc3BvbnNlPiBuZXR3
b3JrUmVzcG9uc2UoYWRvcHRHUmVmKGtpdE5ldyhyZXNwb25zZSkpKTsKKworICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgInJlc3BvbnNlLXJlY2VpdmVkIiwgbmV0d29ya1Jl
c3BvbnNlLmdldCgpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInJlc291
cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXNwb25zZS5nZXQo
KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1yZXNwb25z
ZS1yZWNlaXZlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVzcG9uc2UuZ2V0KCkp
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24sIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCkKQEAgLTk5Miw3ICsxMDAyLDEzIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxl
KGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdGxlLCBjb25zdCBLVVJMJiB1CiAKIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVu
Z3RoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CisgICAgR093blB0cjxnY2hhcj4gaWRlbnRp
ZmllclN0cmluZyh0b1N0cmluZyhpZGVudGlmaWVyKSk7CisgICAgV2ViS2l0V2ViUmVzb3VyY2Uq
IHdlYlJlc291cmNlID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVu
dGlmaWVyU3RyaW5nLmdldCgpKTsKKworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNv
dXJjZSwgImNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwgZGF0YUxlbmd0aCk7CisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZl
ZCIsIHdlYlJlc291cmNlLCBkYXRhTGVuZ3RoKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
d2ViVmlldywgInJlc291cmNlLWNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwgbV9mcmFtZSwgd2Vi
UmVzb3VyY2UsIGRhdGFMZW5ndGgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKQpAQCAtMTAyMSwyMCArMTAzNywyNSBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqIGxvYWRlcgogCiAgICAgd2Via2l0X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9y
ZXNvdXJjZSh3ZWJSZXNvdXJjZSwgY29yZVJlc291cmNlLmdldCgpKTsKIAotICAgIC8vIEZJWE1F
OiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJl
c291cmNlCi0gICAgLy8gZmluaXNoZWQgbG9hZGluZywgbWF5YmUgdXNpbmcgYSBsb2FkLXN0YXR1
cyBwcm9wZXJ0eSBpbiB0aGUKLSAgICAvLyBXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3QsIHNpbWls
YXIgdG8gd2hhdCB3ZSBkbyBmb3IgV2ViS2l0V2ViRnJhbWUnCi0gICAgLy8gc2lnbmFsLgotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNl
LCAibG9hZC1maW5pc2hlZCIpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAi
cmVzb3VyY2UtbG9hZC1maW5pc2hlZCIsIHdlYlJlc291cmNlKTsKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUod2ViVmlldywgInJlc291cmNlLWxvYWQtZmluaXNoZWQiLCBtX2ZyYW1lLCB3ZWJS
ZXNvdXJjZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExv
YWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBzdGF0aWNfY2FzdDxX
ZWJLaXQ6OkRvY3VtZW50TG9hZGVyKj4obG9hZGVyKS0+ZGVjcmVhc2VMb2FkQ291bnQoaWRlbnRp
Zmllcik7CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90aWZ5IHRoZSBh
cHBsaWNhdGlvbiB0aGF0IHRoZSByZXNvdXJjZSBmYWlsZWQKLSAgICAvLyBsb2FkaW5nLCBtYXli
ZSBhICdsb2FkLWVycm9yJyBzaWduYWwgaW4gdGhlIFdlYktpdFdlYlJlc291cmNlIG9iamVjdC4K
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRW
aWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIEdPd25QdHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJp
bmcodG9TdHJpbmcoaWRlbnRpZmllcikpOworICAgIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNv
dXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uod2ViVmlldywgaWRlbnRpZmllclN0
cmluZy5nZXQoKSk7CisgICAgR093blB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xp
dGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5l
cnJvckNvZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKworICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJy
b3IuZ2V0KCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2Ut
bG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0KCkpOworICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCBtX2ZyYW1lLCB3
ZWJSZXNvdXJjZSwgd2ViRXJyb3IuZ2V0KCkpOwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHAKaW5kZXggNDdiODg4MS4uZjBlNGZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwCkBAIC02MCwxMCArNjAsMTIgQEAKICNpbmNsdWRlICJ3ZWJraXRl
bnVtdHlwZXMuaCIKICNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgogI2luY2x1ZGUg
IndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCIKICNp
bmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXRu
ZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0c2VjdXJpdHlvcmlnaW5w
cml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCisjaW5jbHVkZSAi
d2Via2l0d2VicmVzb3VyY2UuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCiAjaW5jbHVk
ZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElD
YXN0Lmg+CkBAIC0xMDQsNiArMTA2LDEzIEBAIGVudW0gewogICAgIFRJVExFX0NIQU5HRUQsCiAg
ICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAogICAgIFNDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRUQsCisg
ICAgLy8gUmVzb3VyY2UgbG9hZGluZyBzaWduYWxzCisgICAgUkVTT1VSQ0VfUkVRVUVTVF9TVEFS
VElORywKKyAgICBSRVNPVVJDRV9SRVNQT05TRV9SRUNFSVZFRCwKKyAgICBSRVNPVVJDRV9MT0FE
X0ZJTklTSEVELAorICAgIFJFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVELAorICAgIFJF
U09VUkNFX0xPQURfRkFJTEVELAorCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTMwMSw2ICsz
MTAsMTI0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRX
ZWJGcmFtZUNsYXNzKiBmcmFtZUNsYXNzKQogICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9P
TEVBTl9fVk9JRCwKICAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAwKTsKIAorCisgICAgLyoq
CisgICAgICogV2ViS2l0V2ViRnJhbWU6OnJlc291cmNlLXJlcXVlc3Qtc3RhcnRpbmc6CisgICAg
ICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB3aG9zZSBsb2FkIGRpc3BhdGNoZWQg
dGhpcyByZXF1ZXN0CisgICAgICogQHdlYl9yZXNvdXJjZTogYW4gZW1wdHkgI1dlYktpdFdlYlJl
c291cmNlIG9iamVjdAorICAgICAqIEByZXF1ZXN0OiB0aGUgI1dlYktpdE5ldHdvcmtSZXF1ZXN0
IHRoYXQgd2lsbCBiZSBkaXNwYXRjaGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5l
dHdvcmtSZXNwb25zZSByZXByZXNlbnRpbmcgdGhlIHJlZGlyZWN0CisgICAgICogcmVzcG9uc2Us
IGlmIGFueQorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGEgcmVxdWVzdCBpcyBhYm91dCB0
byBiZSBzZW50LiBZb3UgY2FuIG1vZGlmeSB0aGUKKyAgICAgKiByZXF1ZXN0IHdoaWxlIGhhbmRs
aW5nIHRoaXMgc2lnbmFsLiBZb3UgY2FuIHNldCB0aGUgVVJJIGluIHRoZQorICAgICAqICNXZWJL
aXROZXR3b3JrUmVxdWVzdCBvYmplY3QgaXRzZWxmLCBhbmQgYWRkL3JlbW92ZS9yZXBsYWNlCisg
ICAgICogaGVhZGVycyB1c2luZyB0aGUgI1NvdXBNZXNzYWdlIG9iamVjdCBpdCBjYXJyaWVzLCBp
ZiBpdCBpcworICAgICAqIHByZXNlbnQuIFNlZSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9t
ZXNzYWdlKCkuIFNldHRpbmcgdGhlCisgICAgICogcmVxdWVzdCBVUkkgdG8gImFib3V0OmJsYW5r
IiB3aWxsIGVmZmVjdGl2ZWx5IGNhdXNlIHRoZSByZXF1ZXN0CisgICAgICogdG8gbG9hZCBub3Ro
aW5nLCBhbmQgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGUgbG9hZGluZyBvZgorICAgICAqIHNw
ZWNpZmljIHJlc291cmNlcy4KKyAgICAgKgorICAgICAqIE5vdGljZSB0aGF0IGluZm9ybWF0aW9u
IGFib3V0IGFuIGV2ZW50dWFsIHJlZGlyZWN0IGlzIGF2YWlsYWJsZQorICAgICAqIGluIEByZXNw
b25zZSdzICNTb3VwTWVzc2FnZSwgbm90IGluIHRoZSAjU291cE1lc3NhZ2UgY2FycmllZCBieQor
ICAgICAqIHRoZSBAcmVxdWVzdC4gSWYgQHJlc3BvbnNlIGlzICVOVUxMLCB0aGVuIHRoaXMgaXMg
bm90IGEKKyAgICAgKiByZWRpcmVjdGVkIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBUaGUgI1dl
YktpdFdlYlJlc291cmNlIG9iamVjdCB3aWxsIGJlIHRoZSBzYW1lIHRocm91Z2hvdXQgYWxsCisg
ICAgICogdGhlIGxpZmV0aW1lIG9mIHRoZSByZXNvdXJjZSwgYnV0IHRoZSBjb250ZW50cyBtYXkg
Y2hhbmdlCisgICAgICogYmV0d2VlbiBzaWduYWwgZW1pc3Npb25zLgorICAgICAqCisgICAgICog
U2luY2U6IDEuNy41CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09V
UkNFX1JFUVVFU1RfU1RBUlRJTkddID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXF1ZXN0LXN0
YXJ0aW5nIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAg
ICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJ
T04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQ
RV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULAorICAgICAgICAgICAgV0VCS0lUX1RZ
UEVfTkVUV09SS19SRVNQT05TRSk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYkZyYW1lOjpy
ZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRX
ZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJj
ZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAgKiBAcmVzcG9uc2U6
IHRoZSAjV2ViS2l0TmV0d29ya1Jlc3BvbnNlIHRoYXQgd2FzIHJlY2VpdmVkLgorICAgICAqCisg
ICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAq
CisgICAgICogU2luY2U6IDEuNy41CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWdu
YWxzW1JFU09VUkNFX1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2Ut
cmVzcG9uc2UtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVD
bGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAg
ICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCisgICAgICAgICAgICBH
X1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSwKKyAg
ICAgICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOworCisgICAgLyoKKyAgICAg
KiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZC1maW5pc2hlZAorICAgICAqIEB3ZWJGcmFt
ZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgorICAg
ICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAg
ICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3
YXMgbG9hZGVkLgorICAgICAqCisgICAgICogU2luY2U6IDEuNy41CisgICAgICovCisgICAgd2Vi
a2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX0xPQURfRklOSVNIRURdID0gZ19zaWduYWxf
bmV3KCJyZXNvdXJjZS1sb2FkLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVO
X0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAs
IDAsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAorICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VS
Q0UpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1s
ZW5ndGgtcmVjZWl2ZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhl
IHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2Vi
S2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQGxlbmd0aFJlY2VpdmVkOiB0
aGUgcmVzb3VyY2UgZGF0YSBsZW5ndGggaW4gYnl0ZXMKKyAgICAgKgorICAgICAqIEVtaXR0ZWQg
d2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkLgorICAgICAqCisg
ICAgICogU2luY2U6IDEuNy41CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxz
W1JFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3Vy
Y2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xB
U1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwg
MCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9JTlQsCisgICAgICAg
ICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJD
RSwKKyAgICAgICAgICAgIEdfVFlQRV9JTlQpOworCisgICAgLyoKKyAgICAgKiBXZWJLaXRXZWJG
cmFtZTo6cmVzb3VyY2UtbG9hZC1mYWlsZWQKKyAgICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0
V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3Vy
Y2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCisgICAgICogQHdlYkVy
cm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKKyAgICAgKgorICAgICAqIEludm9r
ZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkLgorICAgICAqCisgICAgICogU2luY2U6
IDEuNy41CisgICAgICovCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNFX0xP
QURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9hZC1mYWlsZWQiLAorICAgICAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25h
bEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAg
ICAwLAorICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURf
X09CSkVDVF9QT0lOVEVSLAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBHX1RZUEVfUE9JTlRFUik7
CisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAg
ICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3Bw
CmluZGV4IDg3MGI5YzguLmQ2NTc5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnJlc291cmNlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIndlYmtp
dGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCiAjaW5jbHVk
ZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgog
I2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIuaD4K
ICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgpAQCAtNDUsMTQgKzQ2LDI1IEBACiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogZW51bSB7Ci0gICAgUFJPUF8wLAorICAgIC8vIFJlc291cmNl
IGxvYWRpbmcKKyAgICBSRVNQT05TRV9SRUNFSVZFRCwKKyAgICBMT0FEX0ZJTklTSEVELAorICAg
IENPTlRFTlRfTEVOR1RIX1JFQ0VJVkVELAorICAgIExPQURfRkFJTEVELAorCisgICAgTEFTVF9T
SUdOQUwKK307CiAKK2VudW0geworICAgIFBST1BfMCwKICAgICBQUk9QX1VSSSwKICAgICBQUk9Q
X01JTUVfVFlQRSwKICAgICBQUk9QX0VOQ09ESU5HLAogICAgIFBST1BfRlJBTUVfTkFNRQogfTsK
IAorc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tMQVNUX1NJR05BTF0g
PSB7IDAsIH07CisKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViUmVzb3VyY2UsIHdlYmtpdF93ZWJf
cmVzb3VyY2UsIEdfVFlQRV9PQkpFQ1QpOwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291
cmNlX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSog
dmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKQEAgLTEwMSwxNSArMTEzLDg1IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIEdf
T0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfcmVzb3VyY2VfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUo
b2JqZWN0KTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0
KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgd2Via2l0X3dlYl9y
ZXNvdXJjZV9jbGFzc19pbml0KFdlYktpdFdlYlJlc291cmNlQ2xhc3MqIHdlYlJlc291cmNlQ2xh
c3MpCiB7Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOworICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNT
KHdlYlJlc291cmNlQ2xhc3MpOwogCiAgICAgZ29iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IHdlYmtp
dF93ZWJfcmVzb3VyY2VfZGlzcG9zZTsKICAgICBnb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHdl
YmtpdF93ZWJfcmVzb3VyY2VfZmluYWxpemU7CiAgICAgZ29iamVjdF9jbGFzcy0+Z2V0X3Byb3Bl
cnR5ID0gd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHk7CiAgICAgZ29iamVjdF9jbGFz
cy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X3dlYl9yZXNvdXJjZV9zZXRfcHJvcGVydHk7CiAKKyAg
ICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpyZXNwb25zZS1yZWNlaXZlZAorICAgICAq
IEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSBiZWluZyBsb2FkZWQKKyAgICAg
KiBAcmVzcG9uc2U6IHRoZSAjV2ViS2l0TmV0d29ya1Jlc3BvbnNlIHRoYXQgd2FzIHJlY2VpdmVk
CisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGZpcnN0IGJ5dGUgb2YgZGF0YSBhcnJp
dmVzCisgICAgICoKKyAgICAgKiBTaW5jZTogMS43LjUKKyAgICAgKi8KKyAgICB3ZWJraXRfd2Vi
X3Jlc291cmNlX3NpZ25hbHNbUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNw
b25zZS1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJj
ZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwg
R19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLCAwLAorICAg
ICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKKyAgICAgICAgICAgIEdf
VFlQRV9OT05FLCAxLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSk7
CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZAorICAgICAq
IEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAg
ICAgKiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdnZXJlZAorICAgICAqCisg
ICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQKKyAgICAgKgorICAg
ICAqIFNpbmNlOiAxLjcuNQorICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFs
c1tMT0FEX0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZmFpbGVkIiwKKyAgICAgICAgICAg
IEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNlQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxf
Vk9JRF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBH
X1RZUEVfUE9JTlRFUik7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291cmNlOjpsb2Fk
LWZpbmlzaGVkCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIGJl
aW5nIGxvYWRlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3Ig
dGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjcuNQorICAg
ICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2lnbmFsc1tMT0FEX0ZJTklTSEVEXSA9IGdf
c2lnbmFsX25ldygibG9hZC1maW5pc2hlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
Uyh3ZWJSZXNvdXJjZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAg
ICAwLCAwLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCisgICAg
ICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlJlc291
cmNlOjpjb250ZW50LWxlbmd0aC1yZWNlaXZlZAorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNX
ZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6
IHRoZSByZXNvdXJjZSBkYXRhIGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1pdHRl
ZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3IgdGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgor
ICAgICAqIFNpbmNlOiAxLjcuNQorICAgICAqLworICAgIHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2ln
bmFsc1tDT05URU5UX0xFTkdUSF9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoImNvbnRlbnQtbGVu
Z3RoLXJlY2VpdmVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291cmNl
Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBH
X1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAg
ICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fSU5ULAorICAgICAgICAgICAgR19UWVBF
X05PTkUsIDEsCisgICAgICAgICAgICBHX1RZUEVfSU5UKTsKKwogICAgIC8qKgogICAgICAqIFdl
YktpdFdlYlJlc291cmNlOnVyaToKICAgICAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwCmluZGV4IGFhNDMyYzUuLmRmYjNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTIwOCw2ICsyMDgsMTAgQEAgZW51bSB7
CiAgICAgRURJVElOR19FTkRFRCwKICAgICBWSUVXUE9SVF9BVFRSSUJVVEVTX1JFQ09NUFVURV9S
RVFVRVNURUQsCiAgICAgVklFV1BPUlRfQVRUUklCVVRFU19DSEFOR0VELAorICAgIFJFU09VUkNF
X1JFU1BPTlNFX1JFQ0VJVkVELAorICAgIFJFU09VUkNFX0xPQURfRklOSVNIRUQsCisgICAgUkVT
T1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlWRUQsCisgICAgUkVTT1VSQ0VfTE9BRF9GQUlMRUQs
CiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTI2MDgsNiArMjYxMiw5MyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdD
bGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX1ZJRVdQT1JUX0FUVFJJQlVURVMpOwogCiAg
ICAgLyoKKyAgICAgKiBXZWJLaXRXZWJWaWV3OjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAor
ICAgICAqIEB3ZWJWaWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKKyAg
ICAgKiBAd2ViRnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgdGhlIHJlc3BvbnNlIHdhcyByZWNl
aXZlZCBmb3IKKyAgICAgKiBAd2ViUmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVp
bmcgbG9hZGVkCisgICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0
aGF0IHdhcyByZWNlaXZlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBi
eXRlIG9mIGRhdGEgYXJyaXZlcworICAgICAqCisgICAgICogU2luY2U6IDEuNy41CisgICAgICov
CisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURd
ID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsCisgICAgICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxG
bGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19P
QkpFQ1RfT0JKRUNUX09CSkVDVCwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAzLAorICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VC
X1JFU09VUkNFLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSk7CisK
KyAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmluaXNoZWQKKyAg
ICAgKiBAd2ViVmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCisgICAg
ICogQHdlYkZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2
ZWQgZm9yCisgICAgICogQHdlYlJlc291cmNlOiB0aGUgI1dlYktpdFdlYlJlc291cmNlIHRoYXQg
d2FzIGxvYWRlZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGFsbCB0aGUgZGF0YSBmb3Ig
dGhlIHJlc291cmNlIHdhcyBsb2FkZWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjcuNQorICAg
ICAqLworICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JFU09VUkNFX0xPQURfRklOSVNIRURd
ID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1sb2FkLWZpbmlzaGVkIiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAor
ICAgICAgICAgICAgMCwgMCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVD
VF9PQkpFQ1QsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIFdFQktJ
VF9UWVBFX1dFQl9GUkFNRSwKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7
CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWNvbnRlbnQtbGVuZ3Ro
LXJlY2VpdmVkCisgICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhl
IHNpZ25hbAorICAgICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9u
c2Ugd2FzIHJlY2VpdmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJS
ZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKKyAgICAgKiBAbGVuZ3RoUmVjZWl2ZWQ6IHRoZSByZXNv
dXJjZSBkYXRhIGxlbmd0aCBpbiBieXRlcworICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIHRo
ZSBIVFRQIENvbnRlbnQtTGVuZ3RoIHJlc3BvbnNlIGhlYWRlciBoYXMgYmVlbgorICAgICAqIHJl
Y2VpdmVkIGFuZCBwYXJzZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqCisgICAgICogU2luY2U6IDEu
Ny41CisgICAgICovCisgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfQ09OVEVO
VF9MRU5HVEhfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1jb250ZW50LWxlbmd0
aC1yZWNlaXZlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
LAorICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsIDAsCisgICAgICAgICAg
ICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX0lOVCwKKyAgICAgICAgICAgIEdf
VFlQRV9OT05FLCAzLAorICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAorICAgICAg
ICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAorICAgICAgICAgICAgR19UWVBFX0lOVCk7
CisKKyAgICAvKgorICAgICAqIFdlYktpdFdlYlZpZXc6OnJlc291cmNlLWxvYWQtZmFpbGVkCisg
ICAgICogQHdlYlZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAorICAg
ICAqIEB3ZWJGcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2Vp
dmVkIGZvcgorICAgICAqIEB3ZWJSZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0
IHdhcyBsb2FkZWQKKyAgICAgKiBAd2ViRXJyb3I6IHRoZSAjR0Vycm9yIHRoYXQgd2FzIHRyaWdn
ZXJlZAorICAgICAqCisgICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3VyY2UgZmFpbGVkIHRvIGxv
YWQKKyAgICAgKgorICAgICAqIFNpbmNlOiAxLjcuNQorICAgICAqLworICAgIHdlYmtpdF93ZWJf
dmlld19zaWduYWxzW1JFU09VUkNFX0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3Vy
Y2UtbG9hZC1mYWlsZWQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0Ns
YXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLCAwLAorICAgICAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVF9QT0lOVEVSLAorICAgICAg
ICAgICAgR19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUs
CisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCisgICAgICAgICAgICBHX1RZ
UEVfUE9JTlRFUik7CisKKyAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFs
IG1ldGhvZHMKICAgICAgKi8KICAgICB3ZWJWaWV3Q2xhc3MtPmNyZWF0ZV93ZWJfdmlldyA9IHdl
YmtpdF93ZWJfdmlld19yZWFsX2NyZWF0ZV93ZWJfdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdG1h
cnNoYWwubGlzdAppbmRleCA1MzcyYzU3Li5iNzg5MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
bWFyc2hhbC5saXN0CkBAIC0xNyw5ICsxNywxMyBAQCBPQkpFQ1Q6T0JKRUNUCiBPQkpFQ1Q6U1RS
SU5HLFNUUklORyxQT0lOVEVSCiBPQkpFQ1Q6Vk9JRAogVk9JRDpPQkpFQ1QsT0JKRUNUCitWT0lE
Ok9CSkVDVCxPQkpFQ1QsSU5UCitWT0lEOk9CSkVDVCxPQkpFQ1QsT0JKRUNUCitWT0lEOk9CSkVD
VCxPQkpFQ1QsUE9JTlRFUgogVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVCxPQkpFQ1QKIFZPSUQ6
T0JKRUNULFBPSU5URVIsUE9JTlRFUgorVk9JRDpPQkpFQ1QsSU5UCitWT0lEOk9CSkVDVCxQT0lO
VEVSCiBWT0lEOk9CSkVDVCxTVFJJTkcKIFZPSUQ6U1RSSU5HCiBWT0lEOlNUUklORyxTVFJJTkcK
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRl
YTNkMmIuLjEwOWY5ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIEltcHJvdmUgRnJhbWVMb2FkZXIgc2lnbmFscy4gUmVzb3VyY2UgbG9hZGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NDMKKwor
ICAgICAgICBTdXBwb3J0IGZvciB0aGUgbmV3IGxvYWRlciBzaWduYWxzIGluIERSVC4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICh1
cmxQYXRoKToKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrKToKKyAgICAgICAgKHVy
bFN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAgIChkZXNjcmlwdGlvblN1aXRhYmxlRm9y
VGVzdFJlc3VsdCk6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoZGlk
RmluaXNoTG9hZGluZyk6CisgICAgICAgIChkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcik6CisgICAg
ICAgIChjcmVhdGVXZWJWaWV3KToKKwogMjAxMi0wMS0yNiAgSGFucyBXZW5uYm9yZyAgPGhhbnNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVjaCBJbnB1dDogbW92ZSBNb2NrU3BlZWNoSW5w
dXRDbGllbnQgaW50byBDaHJvbWl1bSBEdW1wUmVuZGVyVHJlZSBpbXBsZW1lbnRhdGlvbgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZTg1ZmE1Zi4u
MmVjZjFkZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
CkBAIC0xMDYzLDE0ICsxMDYzLDE1MSBAQCBzdGF0aWMgdm9pZCBmcmFtZUNyZWF0ZWRDYWxsYmFj
ayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSogd2ViRnJhbQogICAgIGdf
c2lnbmFsX2Nvbm5lY3Qod2ViRnJhbWUsICJub3RpZnk6OmxvYWQtc3RhdHVzIiwgR19DQUxMQkFD
Syh3ZWJGcmFtZUxvYWRTdGF0dXNOb3RpZmllZCksIE5VTEwpOwogfQogCi1zdGF0aWMgdm9pZCB3
aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJG
cmFtZSosIFdlYktpdFdlYlJlc291cmNlKiwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3Qs
IFdlYktpdE5ldHdvcmtSZXNwb25zZSopCisKK3N0YXRpYyBDU3RyaW5nIHBhdGhGcm9tU291cFVS
SShTb3VwVVJJKiB1cmkpCit7CisgICAgaWYgKCF1cmkpCisgICAgICAgIHJldHVybiBDU3RyaW5n
KCk7CisKKyAgICBpZiAoZ19zdHJfZXF1YWwodXJpLT5zY2hlbWUsICJodHRwIikpIHsKKyAgICAg
ICAgR093blB0cjxjaGFyPiB1cmlTdHJpbmcoc291cF91cmlfdG9fc3RyaW5nKHVyaSwgRkFMU0Up
KTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcodXJpU3RyaW5nLmdldCgpKTsKKyAgICB9CisKKyAg
ICBHT3duUHRyPGdjaGFyPiBwYXRoRGlybmFtZShnX3BhdGhfZ2V0X2Jhc2VuYW1lKGdfcGF0aF9n
ZXRfZGlybmFtZSh1cmktPnBhdGgpKSk7CisgICAgR093blB0cjxnY2hhcj4gcGF0aEJhc2VuYW1l
KGdfcGF0aF9nZXRfYmFzZW5hbWUodXJpLT5wYXRoKSk7CisgICAgR093blB0cjxnY2hhcj4gdXJs
UGF0aChnX3N0cmR1cF9wcmludGYoIiVzLyVzIiwgcGF0aERpcm5hbWUuZ2V0KCksIHBhdGhCYXNl
bmFtZS5nZXQoKSkpOworICAgIHJldHVybiBDU3RyaW5nKHVybFBhdGguZ2V0KCkpOworfQorCitz
dGF0aWMgQ1N0cmluZyBjb252ZXJ0U291cE1lc3NhZ2VUb1VSTFBhdGgoU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlKQoreworICAgIGlmICghc291cE1lc3NhZ2UpCisgICAgICAgIHJldHVybiBDU3Ry
aW5nKCk7CisgICAgaWYgKFNvdXBVUkkqIHJlcXVlc3RVUkkgPSBzb3VwX21lc3NhZ2VfZ2V0X3Vy
aShzb3VwTWVzc2FnZSkpCisgICAgICAgIHJldHVybiBwYXRoRnJvbVNvdXBVUkkocmVxdWVzdFVS
SSk7CisgICAgcmV0dXJuIENTdHJpbmcoKTsKK30KKworc3RhdGljIENTdHJpbmcgY29udmVydE5l
dHdvcmtSZXF1ZXN0VG9VUkxQYXRoKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQorewor
ICAgIHJldHVybiBjb252ZXJ0U291cE1lc3NhZ2VUb1VSTFBhdGgod2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KSk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIGNvbnZlcnRX
ZWJSZXNvdXJjZVRvVVJMUGF0aChXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7Cisg
ICAgU291cFVSSSogdXJpID0gc291cF91cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Vy
aSh3ZWJSZXNvdXJjZSkpOworICAgIENTdHJpbmcgdXJsUGF0aChwYXRoRnJvbVNvdXBVUkkodXJp
KSk7CisgICAgc291cF91cmlfZnJlZSh1cmkpOworICAgIHJldHVybiB1cmxQYXRoOworfQorCitz
dGF0aWMgQ1N0cmluZyB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3QgY2hhciogdXJpU3Ry
aW5nKQoreworICAgIGlmICghZ19zdHJfaGFzX3ByZWZpeCh1cmlTdHJpbmcsICJmaWxlOi8vIikp
CisgICAgICAgIHJldHVybiBDU3RyaW5nKHVyaVN0cmluZyk7CisKKyAgICBHT3duUHRyPGdjaGFy
PiBiYXNlbmFtZShnX3BhdGhfZ2V0X2Jhc2VuYW1lKHVyaVN0cmluZykpOworICAgIHJldHVybiBD
U3RyaW5nKGJhc2VuYW1lLmdldCgpKTsKK30KKworc3RhdGljIENTdHJpbmcgZGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQoU291cFVSSSogdXJpKQoreworICAgIGlmICghdXJpKQorICAg
ICAgICByZXR1cm4gQ1N0cmluZygiIik7CisKKyAgICBHT3duUHRyPGNoYXI+IHVyaVN0cmluZyhz
b3VwX3VyaV90b19zdHJpbmcodXJpLCBmYWxzZSkpOworICAgIHJldHVybiB1cmxTdWl0YWJsZUZv
clRlc3RSZXN1bHQodXJpU3RyaW5nLmdldCgpKTsKK30KKworc3RhdGljIENTdHJpbmcgZGVzY3Jp
cHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0
V2ViRnJhbWUqIHdlYkZyYW1lLCBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCit7Cisg
ICAgU291cFVSSSogdXJpID0gc291cF91cmlfbmV3KHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Vy
aSh3ZWJSZXNvdXJjZSkpOworICAgIENTdHJpbmcgZGVzY3JpcHRpb247CisgICAgV2ViS2l0V2Vi
RGF0YVNvdXJjZSogZGF0YVNvdXJjZSA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RhdGFfc291cmNl
KHdlYkZyYW1lKTsKKworICAgIGlmICh3ZWJSZXNvdXJjZSA9PSB3ZWJraXRfd2ViX2RhdGFfc291
cmNlX2dldF9tYWluX3Jlc291cmNlKGRhdGFTb3VyY2UpCisgICAgICAgICYmICghd2Via2l0X3dl
Yl92aWV3X2dldF9wcm9ncmVzcyh3ZWJWaWV3KSB8fCBnX3N0cl9lcXVhbCh1cmktPnNjaGVtZSwg
ImZpbGUiKSkpCisgICAgICAgIGRlc2NyaXB0aW9uID0gQ1N0cmluZygiPHVua25vd24+Iik7Cisg
ICAgZWxzZQorICAgICAgICBkZXNjcmlwdGlvbiA9IGNvbnZlcnRXZWJSZXNvdXJjZVRvVVJMUGF0
aCh3ZWJSZXNvdXJjZSk7CisKKyAgICBpZiAodXJpKQorICAgICAgICBzb3VwX3VyaV9mcmVlKHVy
aSk7CisKKyAgICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisKK3N0YXRpYyBDU3RyaW5nIGRlc2Ny
aXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KEdFcnJvciogZXJyb3IsIFdlYktpdFdlYlJlc291
cmNlKiB3ZWJSZXNvdXJjZSkKK3sKKyAgICBjb25zdCBnY2hhciogZXJyb3JEb21haW4gPSBnX3F1
YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKTsKKyAgICBDU3RyaW5nIHJlc291cmNlVVJJU3Ry
aW5nKHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdCh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmko
d2ViUmVzb3VyY2UpKSk7CisKKyAgICBpZiAoZ19zdHJfZXF1YWwoZXJyb3JEb21haW4sICJ3ZWJr
aXQtbmV0d29yay1lcnJvci1xdWFyayIpKQorICAgICAgICBlcnJvckRvbWFpbiA9ICJOU1VSTEVy
cm9yRG9tYWluIjsKKworICAgIC8vIFRPRE86IHRoZSBvdGhlciBwb3J0cyBnZXQgdGhlIGZhaWxp
bmdVUkwgZnJvbSB0aGUgUmVzb3VyY2VFcnJvcgorICAgIEdPd25QdHI8Y2hhcj4gZXJyb3JTdHJp
bmcoZ19zdHJkdXBfcHJpbnRmKCI8TlNFcnJvciBkb21haW4gJXMsIGNvZGUgJWQsIGZhaWxpbmcg
VVJMIFwiJXNcIj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVycm9yRG9tYWluLCBlcnJvci0+Y29kZSwgcmVzb3VyY2VVUklTdHJpbmcuZGF0YSgpKSk7
CisgICAgcmV0dXJuIENTdHJpbmcoZXJyb3JTdHJpbmcuZ2V0KCkpOworfQorCitzdGF0aWMgQ1N0
cmluZyBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJLaXROZXR3b3JrUmVxdWVz
dCogcmVxdWVzdCkKK3sKKyAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSB3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpOworCisgICAgaWYgKCFzb3VwTWVzc2Fn
ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCJHUlJcbiIpOworICAgICAgICByZXR1cm4gQ1N0cmlu
ZygiIik7CisgICAgfQorCisgICAgU291cFVSSSogcmVxdWVzdFVSSSA9IHNvdXBfbWVzc2FnZV9n
ZXRfdXJpKHNvdXBNZXNzYWdlKTsKKyAgICBTb3VwVVJJKiBtYWluRG9jdW1lbnRVUkkgPSBzb3Vw
X21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKTsKKyAgICBDU3RyaW5nIHJlcXVl
c3RVUklTdHJpbmcoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVxdWVzdFVSSSkp
OworICAgIENTdHJpbmcgbWFpbkRvY3VtZW50VVJJU3RyaW5nKGRlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KG1haW5Eb2N1bWVudFVSSSkpOworICAgIENTdHJpbmcgcGF0aChjb252ZXJ0
TmV0d29ya1JlcXVlc3RUb1VSTFBhdGgocmVxdWVzdCkpOworICAgIEdPd25QdHI8Y2hhcj4gZGVz
Y3JpcHRpb24oZ19zdHJkdXBfcHJpbnRmKCI8TlNVUkxSZXF1ZXN0IFVSTCAlcywgbWFpbiBkb2N1
bWVudCBVUkwgJXMsIGh0dHAgbWV0aG9kICVzPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGF0aC5kYXRhKCksIG1haW5Eb2N1bWVudFVSSVN0cmluZy5k
YXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291
cE1lc3NhZ2UgPyBzb3VwTWVzc2FnZS0+bWV0aG9kIDogIihub25lKSIpKTsKKyAgICByZXR1cm4g
Q1N0cmluZyhkZXNjcmlwdGlvbi5nZXQoKSk7Cit9CisKK3N0YXRpYyBDU3RyaW5nIGRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2Up
CiB7CisgICAgaWYgKCFyZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoIihudWxsKSIp
OworCisgICAgaW50IHN0YXR1c0NvZGUgPSAwOworICAgIENTdHJpbmcgcmVzcG9uc2VVUklTdHJp
bmcodXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF91
cmkocmVzcG9uc2UpKSk7CisgICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Via2l0X25l
dHdvcmtfcmVzcG9uc2VfZ2V0X21lc3NhZ2UocmVzcG9uc2UpOworICAgIENTdHJpbmcgcGF0aDsK
KworICAgIGlmIChzb3VwTWVzc2FnZSkgeworICAgICAgICBzdGF0dXNDb2RlID0gc291cE1lc3Nh
Z2UtPnN0YXR1c19jb2RlOworICAgICAgICBwYXRoID0gY29udmVydFNvdXBNZXNzYWdlVG9VUkxQ
YXRoKHNvdXBNZXNzYWdlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aCA9IENTdHJpbmcoIiIp
OworCisgICAgR093blB0cjxjaGFyPiBkZXNjcmlwdGlvbihnX3N0cmR1cF9wcmludGYoIjxOU1VS
TFJlc3BvbnNlICVzLCBodHRwIHN0YXR1cyBjb2RlICVkPiIsIHBhdGguZGF0YSgpLCBzdGF0dXND
b2RlKSk7CisgICAgcmV0dXJuIENTdHJpbmcoZGVzY3JpcHRpb24uZ2V0KCkpOworfQorCitzdGF0
aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXRXZWJGcmFtZSogd2ViRnJhbWUsIFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSwgV2Vi
S2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QsIFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9u
c2UpCit7CisKKwogICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPndpbGxT
ZW5kUmVxdWVzdFJldHVybnNOdWxsKCkpIHsKICAgICAgICAgLy8gQXMgcmVxdWVzdGVkIGJ5IHRo
ZSBMYXlvdXRUZXN0Q29udHJvbGxlciwgZG9uJ3QgcGVyZm9ybSB0aGUgcmVxdWVzdC4KICAgICAg
ICAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpKHJlcXVlc3QsICJhYm91dDpibGFuayIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKQorICAgICAgICBwcmludGYo
IiVzIC0gd2lsbFNlbmRSZXF1ZXN0ICVzIHJlZGlyZWN0UmVzcG9uc2UgJXNcbiIsCisgICAgICAg
ICAgICAgICBjb252ZXJ0TmV0d29ya1JlcXVlc3RUb1VSTFBhdGgocmVxdWVzdCkuZGF0YSgpLAor
ICAgICAgICAgICAgICAgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVxdWVzdCku
ZGF0YSgpLAorICAgICAgICAgICAgICAgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQo
cmVzcG9uc2UpLmRhdGEoKSk7CisKICAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UgPSB3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X2dldF9tZXNzYWdlKHJlcXVlc3QpOwogICAgIFNvdXBVUkkqIHVy
aSA9IHNvdXBfdXJpX25ldyh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVzdCkp
OwogCkBAIC0xMDc4LDkgKzEyMTUsMTMgQEAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0Q2Fs
bGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWIKICAgICAg
ICAgJiYgZ19zdHJjbXAwKHVyaS0+aG9zdCwgIjI1NS4yNTUuMjU1LjI1NSIpCiAgICAgICAgICYm
IGdfYXNjaWlfc3RybmNhc2VjbXAodXJpLT5ob3N0LCAibG9jYWxob3N0IiwgOSkpIHsKICAgICAg
ICAgcHJpbnRmKCJCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgJXNcbiIsIHNvdXBfdXJp
X3RvX3N0cmluZyh1cmksIEZBTFNFKSk7CisgICAgICAgIC8vIENhbmNlbCBsb2FkIG9mIGJsb2Nr
ZWQgcmVzb3VyY2UgdG8gYXZvaWQgcG90ZW50aWFsCisgICAgICAgIC8vIG5ldHdvcmstcmVsYXRl
ZCB0aW1lb3V0cyBpbiB0ZXN0cy4KKyAgICAgICAgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRf
dXJpKHJlcXVlc3QsICJhYm91dDpibGFuayIpOwogICAgICAgICBzb3VwX3VyaV9mcmVlKHVyaSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBpZiAodXJpKQogICAgICAgICBzb3VwX3Vy
aV9mcmVlKHVyaSk7CiAKQEAgLTEwOTEsNiArMTIzMiwzNCBAQCBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSos
IFdlYgogICAgIH0KIH0KIAorCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXRXZWJSZXNvdXJjZSogd2Vi
UmVzb3VyY2UsIFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpCit7CisgICAgaWYgKCFk
b25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygp
KSB7CisgICAgICAgIENTdHJpbmcgcmVzcG9uc2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvblN1aXRh
YmxlRm9yVGVzdFJlc3VsdChyZXNwb25zZSkpOworICAgICAgICBDU3RyaW5nIHBhdGgoY29udmVy
dFdlYlJlc291cmNlVG9VUkxQYXRoKHdlYlJlc291cmNlKSk7CisgICAgICAgIHByaW50ZigiJXMg
LSBkaWRSZWNlaXZlUmVzcG9uc2UgJXNcbiIsIHBhdGguZGF0YSgpLCByZXNwb25zZURlc2NyaXB0
aW9uLmRhdGEoKSk7CisgICAgfQorCisgICAgLy8gVE9ETzogYWRkICJoYXMgTUlNRSB0eXBlIiB3
aGVuZXZlciBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGlzIHN1cHBvcnRlZC4KKyAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MjIyLgor
fQorCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSwgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNl
KQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBSZXNvdXJj
ZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZpbmlzaExvYWRpbmdc
biIsIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHdlYlZpZXcsIHdlYkZyYW1lLCB3
ZWJSZXNvdXJjZSkuZGF0YSgpKTsKK30KKworc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmdXaXRo
RXJyb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lLCBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UsIEdFcnJvciogd2ViRXJyb3IpCit7CisgICAg
aWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcygpKSB7CisgICAgICAgIENTdHJpbmcgd2ViRXJyb3JTdHJpbmcoZGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHQod2ViRXJyb3IsIHdlYlJlc291cmNlKSk7CisgICAgICAgIHByaW50
ZigiJXMgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogJXNcbiIsIGRlc2NyaXB0aW9uU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KHdlYlZpZXcsIHdlYkZyYW1lLCB3ZWJSZXNvdXJjZSkuZGF0YSgpLAor
ICAgICAgICAgICAgICAgd2ViRXJyb3JTdHJpbmcuZGF0YSgpKTsKKyAgICB9Cit9CisKIHN0YXRp
YyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJdCBpcyBpbXBvcnRh
bnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNyZWF0aW5nCkBAIC0x
MTIyLDcgKzEyOTEsOSBAQCBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiAg
ICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpkcmFnLWZhaWxlZCIsIGRyYWdGYWlsZWRDYWxs
YmFjaywgMCwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmZyYW1lLWNyZWF0ZWQiLCBm
cmFtZUNyZWF0ZWRDYWxsYmFjaywgMCwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnJl
c291cmNlLXJlcXVlc3Qtc3RhcnRpbmciLCB3aWxsU2VuZFJlcXVlc3RDYWxsYmFjaywgMCwKLQor
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQi
LCBkaWRSZWNlaXZlUmVzcG9uc2UsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpy
ZXNvdXJjZS1sb2FkLWZpbmlzaGVkIiwgZGlkRmluaXNoTG9hZGluZywgMCwKKyAgICAgICAgICAg
ICAgICAgICAgICJzaWduYWw6OnJlc291cmNlLWxvYWQtZmFpbGVkIiwgZGlkRmFpbExvYWRpbmdX
aXRoRXJyb3IsIDAsCiAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKICAgICBjb25uZWN0RWRp
dGluZ0NhbGxiYWNrcyh2aWV3KTsKIAotLSAKMS43Ljk=
</data>
<flag name="review"
          id="126051"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>