<?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>128177</bug_id>
          
          <creation_ts>2014-02-04 05:25:19 -0800</creation_ts>
          <short_desc>[EFL] Switch to CUSTOM_PROTOCOLS</short_desc>
          <delta_ts>2014-10-07 23:37:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128169</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>obzhirov</cc>
    
    <cc>p.jacquemart</cc>
    
    <cc>rgabor</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>976293</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-02-04 05:25:19 -0800</bug_when>
    <thetext>There&apos;s a soup implementation already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034545</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-11 00:02:43 -0700</bug_when>
    <thetext>*** Bug 136705 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038235</commentid>
    <comment_count>2</comment_count>
      <attachid>238932</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-09-30 09:53:18 -0700</bug_when>
    <thetext>Created attachment 238932
Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API


Two remaining issues so far:

- Inside the scheme callback ewk_url_scheme_request_path_get(request) returns an empty path ?!
  &gt; It seems I messed up something with WKURLCopyPath() and eina strings, but what?

- m_uriSchemeRequests map should be freed once the request is completed (or cancelled)
  &gt; GTK port is holding a reference to the WebKitWebContext inside each request handle
  &gt; Any other idea because I don&apos;t like this much?

All your comments so far would be very welcome</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038413</commentid>
    <comment_count>3</comment_count>
      <attachid>238932</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-30 17:16:08 -0700</bug_when>
    <thetext>Comment on attachment 238932
Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API

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

&gt; ChangeLog:9
&gt; +        using CustomProtocols implementation from Carlos Garcia Campos

Revision number is more helpful than patch owner name.

&gt; Source/WebKit2/ChangeLog:9
&gt; +        using CustomProtocols implementation from Carlos Garcia Campos

ditto.

&gt; Source/WebKit2/PlatformEfl.cmake:229
&gt; +    &quot;${WEBKIT2_DIR}/Shared/Network/CustomProtocols/soup&quot;

Wrong alphabet order.

&gt; Source/cmake/OptionsEfl.cmake:311
&gt; +add_definitions(-DENABLE_CUSTOM_PROTOCOLS=1)

Please add CUSTOM_PROTOCOLS definitions to WebKitFeatures.cmake.

&gt; Tools/MiniBrowser/efl/main.c:75
&gt; +static void about_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)

*about* looks like a redundant prefix.

&gt; Tools/MiniBrowser/efl/main.c:84
&gt; +        // Todo

Use //FIXME:

&gt; Tools/MiniBrowser/efl/main.c:87
&gt; +        // Todo

ditto.

&gt; Tools/MiniBrowser/efl/main.c:90
&gt; +        // Todo

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038519</commentid>
    <comment_count>4</comment_count>
      <attachid>238932</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-01 03:57:59 -0700</bug_when>
    <thetext>Comment on attachment 238932
Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API

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

&gt;&gt; Source/cmake/OptionsEfl.cmake:311
&gt;&gt; +add_definitions(-DENABLE_CUSTOM_PROTOCOLS=1)
&gt; 
&gt; Please add CUSTOM_PROTOCOLS definitions to WebKitFeatures.cmake.

Are you sure?
In my understanding CUSTOM_PROTOCOLS is already the default on MAC and GTK
After this patch EFL won&apos;t compile without CUSTOM_PROTOCOLS
And as soon as EFL switch to CUSTOM_PROTOCOLS the flag itself will be removed from WebKit (as being the default for all ports)

&gt;&gt; Tools/MiniBrowser/efl/main.c:75
&gt;&gt; +static void about_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)
&gt; 
&gt; *about* looks like a redundant prefix.

I think it is perfectly fine
- It&apos;s actually a copy paste from &quot;ewk_context.h&quot; (ewk_context_url_scheme_register() API documentation)
- This &quot;about&quot; indicates which new scheme we are implementing (the I guess each new scheme callback would have its own prefix)
- It is consistent with GTK aboutURISchemeRequestCallback() naming

&gt; Tools/MiniBrowser/efl/main.c:81
&gt; +    path = ewk_url_scheme_request_path_get(request);

Now I realize this ewk_url_scheme_request_path_get() is working fine
But the test scenario itself should be considered:
  Tools/Scripts/run-launcher --efl minibrowser-about:plugins
    -&gt; callback not called because function has_scheme() checks for &quot;://&quot; in the url, otherwise assume &quot;http&quot; scheme
  Tools/Scripts/run-launcher --efl minibrowser-about://plugins
    -&gt; callback is called but ewk_url_scheme_request_path_get() returns an empty string, which is the expected behaviour
  Tools/Scripts/run-launcher --efl minibrowser-about:///plugins
    -&gt; callback is called, path is &quot;///plugins&quot;, this is correct but the subsequent tests will fail (&quot;///&quot; start is unexpected)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038545</commentid>
    <comment_count>5</comment_count>
      <attachid>238932</attachid>
    <who name="Anton Obzhirov">obzhirov</who>
    <bug_when>2014-10-01 07:44:53 -0700</bug_when>
    <thetext>Comment on attachment 238932
Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_url_scheme_request.cpp:42
&gt; +    WKURLRef url = toCopiedURLAPI(urlRequest-&gt;resourceRequest().url());

These 2 lines can be compressed in one and moved up - m_url(WKEinaSharedString(toCopiedURLAPI(urlRequest-&gt;resourceRequest().url())))

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:86
&gt; +    RefPtr&lt;WebKitURISchemeHandler&gt; handler = adoptRef(new WebKitURISchemeHandler(callback, userData));

I think you shouldn&apos;t pass raw pointer here. The ref pointer goes out of scope in this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038548</commentid>
    <comment_count>6</comment_count>
      <attachid>239027</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-01 08:00:43 -0700</bug_when>
    <thetext>Created attachment 239027
 Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API (v2)

Changelog contains matching revision of original CUSTOM_PROTOCOLS implementation from Carlos + right bug number
Fixed sample use of ewk_context_url_scheme_register() within minibrowser
Fixed inefficient use of RefPtr
Fixed leaking requests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038553</commentid>
    <comment_count>7</comment_count>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-01 08:37:19 -0700</bug_when>
    <thetext>Hi Carlos,

I am afraid we really need your feedback on this, since you implemented the original custom protocol mechanism.

Hopefully the EFL API is quite simpler in comparison to Gtk. The code is quite straightforward then. In short we can register a new scheme with ewk_context_url_scheme_register() and from the callback, we expect a single call to ewk_url_scheme_request_finish() to provide all the data. 
As far as I know, there is no way to unregister a scheme, nor to provide an error status to cancel the request (we just call finish without any data)

I am confident since the original EFL API test for ewk_context_url_scheme_register() is now working again (although the test itself remains unchanged)

Thanks,                 Pascal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038555</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-01 08:43:01 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hi Carlos,
&gt; 
&gt; I am afraid we really need your feedback on this, since you implemented the original custom protocol mechanism.
&gt; 
&gt; Hopefully the EFL API is quite simpler in comparison to Gtk. The code is quite straightforward then. In short we can register a new scheme with ewk_context_url_scheme_register() and from the callback, we expect a single call to ewk_url_scheme_request_finish() to provide all the data. 
&gt; As far as I know, there is no way to unregister a scheme, nor to provide an error status to cancel the request (we just call finish without any data)

There&apos;s WebSoupCustomProtocolRequestManager::didFailWithError()

&gt; I am confident since the original EFL API test for ewk_context_url_scheme_register() is now working again (although the test itself remains unchanged)

Sounds good, you shouldn&apos;t need to change the test nor the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038559</commentid>
    <comment_count>9</comment_count>
      <attachid>239027</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-01 09:01:56 -0700</bug_when>
    <thetext>Comment on attachment 239027
 Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API (v2)

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_url_scheme_request.cpp:80
&gt; +    WebCore::ResourceResponse response(WebCore::URL(WebCore::URL(), String::fromUTF8(m_url)),
&gt; +        String::fromUTF8(mimeType), contentLength, emptyString());
&gt; +
&gt; +    toImpl(m_wkRequestManager.get())-&gt;didReceiveResponse(m_requestID, response);
&gt; +    toImpl(m_wkRequestManager.get())-&gt;didLoadData(m_requestID, toImpl(wkData.get()));
&gt; +    toImpl(m_wkRequestManager.get())-&gt;didFinishLoading(m_requestID);
&gt; +    toImpl(m_wkRequestManager.get())-&gt;stopLoading(m_requestID);

So, you send the whole data in a single chunk to the networking process?

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp:119
&gt;      ewk_context_url_scheme_register(ewk_view_context_get(webView()), &quot;fooscheme&quot;, schemeRequestCallback, 0);

0 -&gt; nullptr

&gt; Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:36
&gt;  #endif
&gt;  
&gt; +#if PLATFORM(EFL)

#elif ?

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.h:45
&gt; +        : m_callback(0)
&gt; +        , m_userData(0)

nullptr

&gt; Source/WebKit2/UIProcess/efl/WebContextEfl.cpp:38
&gt; +#if ENABLE(CUSTOM_PROTOCOLS)
&gt; +#include &quot;WebSoupCustomProtocolRequestManager.h&quot;
&gt; +#else
&gt;  #include &quot;WebSoupRequestManagerProxy.h&quot;
&gt; +#endif

Is this really possible? You removed WebSoupRequestManagerProxy from the makefile no?

&gt; Source/WebKit2/UIProcess/efl/WebContextEfl.cpp:100
&gt; +#if ENABLE(CUSTOM_PROTOCOLS)
&gt; +    parameters.urlSchemesRegisteredForCustomProtocols = supplement&lt;WebSoupCustomProtocolRequestManager&gt;()-&gt;registeredSchemesForCustomProtocols();
&gt; +#else
&gt;      parameters.urlSchemesRegistered = supplement&lt;WebSoupRequestManagerProxy&gt;()-&gt;registeredURISchemes();
&gt; +#endif

Ditto.

&gt; Source/WebKit2/UIProcess/soup/WebContextSoup.cpp:46
&gt; +#else
&gt; +    parameters.urlSchemesRegistered = supplement&lt;WebSoupRequestManagerProxy&gt;()-&gt;registeredURISchemes();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038560</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-01 09:04:20 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hopefully the EFL API is quite simpler in comparison to Gtk. The code is quite straightforward then. In short we can register a new scheme with ewk_context_url_scheme_register() and from the callback, we expect a single call to ewk_url_scheme_request_finish() to provide all the data. 
&gt; As far as I know, there is no way to unregister a scheme, nor to provide an error status to cancel the request (we just call finish without any data)

CustomProtocolManager::unregisterScheme() is currently unimplemented, feel free to implement it if you need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038571</commentid>
    <comment_count>11</comment_count>
      <attachid>239027</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-01 09:38:56 -0700</bug_when>
    <thetext>Comment on attachment 239027
 Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API (v2)

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_url_scheme_request.cpp:80
&gt;&gt; +    toImpl(m_wkRequestManager.get())-&gt;stopLoading(m_requestID);
&gt; 
&gt; So, you send the whole data in a single chunk to the networking process?

Yes! Because EFL only have this ewk_url_scheme_request_finish() API to feed the data. Only once then but still it could be done asynchronously
The funny thing here is to call stopLoading() after didFinishLoading() but this is the simplest way I found to actually remove the requests from the RequestManagerClientEfl&apos;s HashMap. In this case the stopLoading callback is fired and I can proceed with the clean-up

&gt;&gt; Source/WebKit2/UIProcess/efl/WebContextEfl.cpp:38
&gt;&gt; +#endif
&gt; 
&gt; Is this really possible? You removed WebSoupRequestManagerProxy from the makefile no?

Yes I know it&apos;s a step forward with no real return, let&apos;s make the clean-up for these files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038573</commentid>
    <comment_count>12</comment_count>
      <attachid>239030</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-01 09:47:40 -0700</bug_when>
    <thetext>Created attachment 239030
After Carlos review

Thanks Carlos for the feedback
Now I think I would let an EFL guru to land the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038736</commentid>
    <comment_count>13</comment_count>
      <attachid>239030</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-01 17:28:45 -0700</bug_when>
    <thetext>Comment on attachment 239030
After Carlos review

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

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.h:47
&gt; +    }

Add a new line.

&gt; Tools/MiniBrowser/efl/main.c:75
&gt; +static void about_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)

&gt; I think it is perfectly fine
&gt; - It&apos;s actually a copy paste from &quot;ewk_context.h&quot; (ewk_context_url_scheme_register() API documentation)
&gt; - This &quot;about&quot; indicates which new scheme we are implementing (the I guess each new scheme callback would have its own prefix)
&gt; - It is consistent with GTK aboutURISchemeRequestCallback() naming

EFL MiniBrowser is EFL simple application, not WebKit library. So we have used EFL coding style and naming so far. If you see other functions in main.c, you can find EFL style naming. If this is WebKit side implementation, I agree with your opinion. However, MiniBrowser is EFL simple application. But, in this case, it looks not critical. I&apos;m OK, if you want to keep it.

&gt; Tools/MiniBrowser/efl/main.c:83
&gt; +        // FIXME:

Unneeded line break. Below is enough.

// FIXME: Initialize contents bla bar..

&gt; Tools/MiniBrowser/efl/main.c:2382
&gt; +    ewk_context_url_scheme_register(context, MINIBROWSER_ABOUT_SCHEME, about_url_scheme_request_cb, NULL);

Should you call this function here ? Basically we have initialized ewk APIs in window_create().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038737</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-01 17:36:08 -0700</bug_when>
    <thetext>One more thing. Set obsolete to expired your patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038840</commentid>
    <comment_count>15</comment_count>
      <attachid>239030</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-02 03:47:33 -0700</bug_when>
    <thetext>Comment on attachment 239030
After Carlos review

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:75
&gt;&gt; +static void about_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)
&gt; 
&gt; 

Well finally I think I will drop these changes in MiniBrowser
In fact it has been really useful for tests purposes but:
- I now realize won&apos;t be able to retrieve this kind of data anyway (about memory, plugins, ...)
- We cannot really provide WebKit version either as per GTK
- I would try to avoid leaving some FIXME in my patches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038843</commentid>
    <comment_count>16</comment_count>
      <attachid>239101</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-02 03:59:36 -0700</bug_when>
    <thetext>Created attachment 239101
After Gyuyoung review

Dropped the changes in EFL Minibrowser because they won&apos;t bring any useful feature after all
Updated the sample code documenting ewk_context_url_scheme_register() API because the &quot;about&quot; scheme is probably the only scheme that won&apos;t actually work from here (as conflicting with &quot;about:blank&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038850</commentid>
    <comment_count>17</comment_count>
      <attachid>239104</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-02 05:46:03 -0700</bug_when>
    <thetext>Created attachment 239104
 After Gyuyoung review (v2)

Sorry for the spam
Oddly previous patch was removing a blank line in ewk_context_private.h whereas this file should remain unchanged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039253</commentid>
    <comment_count>18</comment_count>
      <attachid>239211</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-03 10:38:27 -0700</bug_when>
    <thetext>Created attachment 239211
After Gyuyoung review (v3)

Cleanup in RequestManagerClientEfl.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039959</commentid>
    <comment_count>19</comment_count>
      <attachid>239211</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 22:56:27 -0700</bug_when>
    <thetext>Comment on attachment 239211
After Gyuyoung review (v3)

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

LGTM. I think GTK port already uses CUSTOM_PROTOCOLS on soup backend by default. EFL port needs to follow it as well. However, someone might want to have final look before landing.

&gt; Source/WebKit2/PlatformEfl.cmake:-172
&gt; -    UIProcess/soup/WebSoupRequestManagerClient.cpp

If EFL port doesn&apos;t use it as well, I think nobody uses this file, right ? Then we have to remove it.

&gt; Source/WebKit2/PlatformEfl.cmake:-173
&gt; -    UIProcess/soup/WebSoupRequestManagerProxy.cpp

ditto.

&gt; Source/WebKit2/PlatformEfl.cmake:-206
&gt; -    WebProcess/soup/WebSoupRequestManager.cpp

ditto.

&gt; Source/WebKit2/PlatformEfl.cmake:-212
&gt; -    UIProcess/soup/WebSoupRequestManagerProxy.messages.in

ditto.

&gt; Source/WebKit2/PlatformEfl.cmake:-215
&gt; -

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039960</commentid>
    <comment_count>20</comment_count>
      <attachid>239211</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 23:01:29 -0700</bug_when>
    <thetext>Comment on attachment 239211
After Gyuyoung review (v3)

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

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:69
&gt; +void RequestManagerClientEfl::stopLoading(WKSoupCustomProtocolRequestManagerRef manager, uint64_t customProtocolID, const void* clientInfo)

nit: *manager* is not used here. It will cause unused param build warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039961</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-06 23:12:12 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 239211 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239211&amp;action=review
&gt; 
&gt; LGTM. I think GTK port already uses CUSTOM_PROTOCOLS on soup backend by default. EFL port needs to follow it as well. However, someone might want to have final look before landing.
&gt; 
&gt; &gt; Source/WebKit2/PlatformEfl.cmake:-172
&gt; &gt; -    UIProcess/soup/WebSoupRequestManagerClient.cpp
&gt; 
&gt; If EFL port doesn&apos;t use it as well, I think nobody uses this file, right ? Then we have to remove it.

Yes, see https://bugs.webkit.org/show_bug.cgi?id=128169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039966</commentid>
    <comment_count>22</comment_count>
      <attachid>239211</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 23:19:05 -0700</bug_when>
    <thetext>Comment on attachment 239211
After Gyuyoung review (v3)

It looks any EFL folk isn&apos;t interested in this change now. cq=me as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039968</commentid>
    <comment_count>23</comment_count>
      <attachid>239211</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 23:20:22 -0700</bug_when>
    <thetext>Comment on attachment 239211
After Gyuyoung review (v3)

Oops. Need to fix unused param first. Please fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039990</commentid>
    <comment_count>24</comment_count>
      <attachid>239401</attachid>
    <who name="Pascal Jacquemart">p.jacquemart</who>
    <bug_when>2014-10-07 01:43:18 -0700</bug_when>
    <thetext>Created attachment 239401
After final review

Fixed unused parameter in RequestManagerClientEfl::stopLoading() + Cleanup empty destructors

I agree to proceed with the cleanup for no more used files (Bug 128169)
Also I wonder if the flag CUSTOM_PROTOCOLS could be fully removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040225</commentid>
    <comment_count>25</comment_count>
      <attachid>239401</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-07 23:37:41 -0700</bug_when>
    <thetext>Comment on attachment 239401
After final review

Clearing flags on attachment: 239401

Committed r174419: &lt;http://trac.webkit.org/changeset/174419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040226</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-07 23:37:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238932</attachid>
            <date>2014-09-30 09:53:18 -0700</date>
            <delta_ts>2014-10-01 22:42:41 -0700</delta_ts>
            <desc>Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API</desc>
            <filename>0001-EFL-Switch-to-CUSTOM_PROTOCOLS.patch</filename>
            <type>text/plain</type>
            <size>26127</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSA0ZjYxYTFlNzNhZjA5ZTBmMDM0YzZlZDA3NmUwOGVjZDE3YzIyZTBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE3OjIyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gW0VGTF0gU3dpdGNoIHRvIENVU1RPTV9QUk9UT0NPTFMKCi0tLQogQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysr
KysrCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSAgICAgICAgICAgICAgICAgICB8
ICAgMTggKysrLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dC5oICAgICB8ICAgIDQgKy0KIC4uLi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2
YXRlLmggICAgICAgIHwgICAgMSAtCiAuLi4vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdC5jcHAgICB8ICAgMTcgKysrLS0KIC4uLi9BUEkvZWZsL2V3a191cmxfc2NoZW1l
X3JlcXVlc3RfcHJpdmF0ZS5oICAgICAgIHwgICAxMiArKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwICB8ICAgIDIgKy0KIC4uLi9zb3VwL1dlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcCAgIHwgICAgNCArKwogLi4uL1VJUHJv
Y2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwICAgICAgfCAgIDY4ICsrKysrKysr
Ky0tLS0tLS0tLS0tCiAuLi4vVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5o
ICAgICAgICB8ICAgNDkgKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViQ29udGV4dEVmbC5jcHAgICAgIHwgICAgOCArKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCAgIHwgICAgMiArCiBTb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogVG9vbHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIFRvb2xz
L01pbmlCcm93c2VyL2VmbC9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMSArKysr
KysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDIxNiBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNjgzMTAyMC4uZmY2
OGI1OSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE0LTA5LTMwICBQYXNjYWwgSmFjcXVlbWFydCAgPHAuamFjcXVlbWFydEBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBFbmFibGUgY3VzdG9tIFVSSSBzY2hlbWVzIHdpdGggQ3Vz
dG9tUHJvdG9jb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzY3MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhpbmcgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpIGV3ZWJraXQyIEFQ
SQorICAgICAgICB1c2luZyBDdXN0b21Qcm90b2NvbHMgaW1wbGVtZW50YXRpb24gZnJvbSBDYXJs
b3MgR2FyY2lhIENhbXBvcworCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2U6CisKIDIwMTQtMDktMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJLaXQgdG9wIG9mIHRyZWUgc291cmNlcyB3b24ndCBidWlsZCBpbiAxMC45IHcvIFhj
b2RlIDYuMC4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzYwYWJlZi4uZmU3MTQzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDE0LTA5LTMwICBQYXNjYWwgSmFjcXVlbWFydCAgPHAuamFjcXVlbWFy
dEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBFbmFibGUgY3VzdG9tIFVSSSBzY2hlbWVz
IHdpdGggQ3VzdG9tUHJvdG9jb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzY3MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXhpbmcgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpIGV3
ZWJraXQyIEFQSQorICAgICAgICB1c2luZyBDdXN0b21Qcm90b2NvbHMgaW1wbGVtZW50YXRpb24g
ZnJvbSBDYXJsb3MgR2FyY2lhIENhbXBvcworCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHA6CisgICAgICAgIChFd2tVcmxT
Y2hlbWVSZXF1ZXN0OjpFd2tVcmxTY2hlbWVSZXF1ZXN0KToKKyAgICAgICAgKEV3a1VybFNjaGVt
ZVJlcXVlc3Q6OmZpbmlzaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250
ZXh0LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFn
ZXJDbGllbnRFZmwpOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6
c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6
OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6
OnJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OkV3a1VybFNjaGVt
ZUhhbmRsZXI6OkV3a1VybFNjaGVtZUhhbmRsZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QpOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmhhbmRsZXJGcm9tU2NoZW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKwogMjAxNC0w
OS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMTczOTI5KTogW0dUS10gVGVzdEluc3BlY3RvciBmYWlscyBhZnRlciBy
MTczOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGYwN2ZiNjMuLjBkOTk3M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zMCw2ICszMCw5IEBAIGxpc3QoQVBQRU5EIFdl
YktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5j
cHAKIAorICAgIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3Rv
Y29sTWFuYWdlckltcGwuY3BwCisgICAgU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyU291cC5jcHAKKwogICAgIFNoYXJlZC9QbHVnaW5zL05l
dHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAKIAogICAgIFNoYXJlZC9jYWly
by9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKQEAgLTY3LDkgKzcwLDggQEAgbGlzdChBUFBFTkQg
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwTWVudUxpc3Rl
bmVyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3RWZsLmNwcAogCi0gICAgVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tDb250ZXh0U291cC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
c291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dL
U291cFJlcXVlc3RNYW5hZ2VyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCiAKICAgICBVSVByb2Nlc3MvQVBJL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV0tDb29yZGluYXRlZFNjZW5lLmNwcAogCkBAIC0xMjUsNiArMTI3LDEw
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCiAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eVNvdXAuY3BwCisgICAg
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCisK
ICAgICBVSVByb2Nlc3MvTmV0d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcAog
CiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcApAQCAt
MTY5LDggKzE3NSw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9j
ZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCiAgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29va2ll
TWFuYWdlclByb3h5U291cC5jcHAKLSAgICBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXJDbGllbnQuY3BwCi0gICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCiAKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2Vy
U291cC5jcHAKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFy
U3FsaXRlLmNwcApAQCAtMjAzLDE3ICsyMDcsMTIgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VS
Q0VTCiAgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKICAg
ICBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKICAgICBX
ZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCi0gICAgV2ViUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKICkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9NRVNTQUdF
U19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAKLSAgICBVSVByb2Nlc3Mvc291cC9XZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgotCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lm1lc3NhZ2Vz
LmluCi0KLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLm1lc3NhZ2Vz
LmluCiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwpAQCAtMjI3
LDYgKzIyNiw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAg
ICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVDJfRElS
fS9QbGF0Zm9ybS9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9lZmwiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgog
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyIKICAgICAiJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0Rvd25sb2Fkcy9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9T
aGFyZWQvZWZsIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0LmgKaW5kZXggYmM3YjA1NC4uZDNhNGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBAIC0yNzEsNyArMjcxLDcgQEAgRUFQSSBFd2tf
U3RvcmFnZV9NYW5hZ2VyICpld2tfY29udGV4dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGNvbnN0IEV3
a19Db250ZXh0ICpjb24KICAqIHsKICAqICAgICBjb25zdCBjaGFyICpwYXRoOwogICogICAgIGNo
YXIgKmNvbnRlbnRzX2RhdGEgPSBOVUxMOwotICogICAgIHVuc2lnbmVkIGludCBjb250ZW50c19s
ZW5ndGggPSAwOworICogICAgIHVuc2lnbmVkIGNvbnRlbnRzX2xlbmd0aCA9IDA7CiAgKgogICog
ICAgIHBhdGggPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhfZ2V0KHJlcXVlc3QpOwogICog
ICAgIGlmICghc3RyY21wKHBhdGgsICJwbHVnaW5zIikpIHsKQEAgLTI4NCw3ICsyODQsNyBAQCBF
QVBJIEV3a19TdG9yYWdlX01hbmFnZXIgKmV3a19jb250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQo
Y29uc3QgRXdrX0NvbnRleHQgKmNvbgogICogICAgICAgICBFaW5hX1N0cmJ1ZiAqYnVmID0gZWlu
YV9zdHJidWZfbmV3KCk7CiAgKiAgICAgICAgIGVpbmFfc3RyYnVmX2FwcGVuZF9wcmludGYoYnVm
LCAiJmx0O2h0bWwmZ3Q7Jmx0O2JvZHkmZ3Q7Jmx0O3AmZ3Q7SW52YWxpZCBhYm91dDolcyBwYWdl
Jmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7IiwgcGF0aCk7CiAgKiAgICAgICAg
IGNvbnRlbnRzX2RhdGEgPSBlaW5hX3N0cmJ1Zl9zdHJpbmdfc3RlYWwoYnVmKTsKLSAqICAgICAg
ICAgY29udGVudHNfbGVuZ3RoID0gc3RybGVuKGNvbnRlbnRzKTsKKyAqICAgICAgICAgY29udGVu
dHNfbGVuZ3RoID0gc3RybGVuKGNvbnRlbnRzX2RhdGEpOwogICogICAgICAgICBlaW5hX3N0cmJ1
Zl9mcmVlKGJ1Zik7CiAgKiAgICAgfQogICogICAgIGV3a191cmxfc2NoZW1lX3JlcXVlc3RfZmlu
aXNoKHJlcXVlc3QsIGNvbnRlbnRzX2RhdGEsIGNvbnRlbnRzX2xlbmd0aCwgInRleHQvaHRtbCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oCmluZGV4IDE3MjljNGEuLmY0MDM2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKQEAgLTEx
Niw3ICsxMTYsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktp
dDo6RG93bmxvYWRNYW5hZ2VyRWZsPiBtX2Rvd25sb2FkTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbD4gbV9yZXF1ZXN0TWFuYWdlckNs
aWVudDsKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50
RWZsPiBtX2hpc3RvcnlDbGllbnQ7CiAKICAgICBKU0dsb2JhbENvbnRleHRSZWYgbV9qc0dsb2Jh
bENvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCmluZGV4IDk5ZmYyNzQuLjBlMDBjMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1l
X3JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfc2NoZW1lX3JlcXVlc3QuY3BwCkBAIC0yOSwxNyArMjksMjAgQEAKICNpbmNsdWRlICJXS0Rh
dGEuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVk
ZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKKwogI2luY2x1ZGUgImV3
a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi1Fd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tVcmxTY2hlbWVSZXF1ZXN0KFdLU291cFJlcXVl
c3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElEKQor
RXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBDdXN0b21Qcm90
b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVz
dCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIDogbV93a1JlcXVlc3RNYW5hZ2VyKG1hbmFnZXIp
Ci0gICAgLCBtX3VybCh1cmwpCiAgICAgLCBtX3JlcXVlc3RJRChyZXF1ZXN0SUQpCi0gICAgLCBt
X3NjaGVtZShBZG9wdFdLLCBXS1VSTENvcHlTY2hlbWUodXJsKSkKLSAgICAsIG1fcGF0aChBZG9w
dFdLLCBXS1VSTENvcHlQYXRoKHVybCkpCiB7CisgICAgV0tVUkxSZWYgdXJsID0gdG9Db3BpZWRV
UkxBUEkodXJsUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpOworICAgIG1fdXJsID0g
V0tFaW5hU2hhcmVkU3RyaW5nKHVybCk7CisgICAgbV9zY2hlbWUgPSBXS0VpbmFTaGFyZWRTdHJp
bmcoQWRvcHRXSywgV0tVUkxDb3B5U2NoZW1lKHVybCkpOworICAgIG1fcGF0aCA9IFdLRWluYVNo
YXJlZFN0cmluZyhBZG9wdFdLLCBXS1VSTENvcHlQYXRoKHVybCkpOwogfQogCiB1aW50NjRfdCBF
d2tVcmxTY2hlbWVSZXF1ZXN0OjppZCgpIGNvbnN0CkBAIC02OCw3ICs3MSwxMSBAQCB2b2lkIEV3
a1VybFNjaGVtZVJlcXVlc3Q6OmZpbmlzaChjb25zdCB2b2lkKiBjb250ZW50RGF0YSwgdWludDY0
X3QgY29udGVudExlbmd0aAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a01pbWVUeXBl
ID0gbWltZVR5cGUgPyBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG1pbWVU
eXBlKSkgOiAwOwogCiAgICAgLy8gSW4gY2FzZSBvZiBlbXB0eSByZXBseSBhbiBlbXB0eSBXS0Rh
dGFSZWYgaXMgc2VudCB0byB0aGUgV2ViUHJvY2Vzcy4KLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdl
ckRpZEhhbmRsZVVSSVJlcXVlc3QobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpLCB3a0RhdGEuZ2V0
KCksIGNvbnRlbnRMZW5ndGgsIHdrTWltZVR5cGUuZ2V0KCksIG1fcmVxdWVzdElEKTsKKyAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpV
UkwoKSwgU3RyaW5nOjpmcm9tVVRGOChtX3VybCkpLAorICAgICAgICBTdHJpbmc6OmZyb21VVEY4
KG1pbWVUeXBlKSwgY29udGVudExlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CisgICAgdG9JbXBsKG1f
d2tSZXF1ZXN0TWFuYWdlci5nZXQoKSktPmRpZFJlY2VpdmVSZXNwb25zZShtX3JlcXVlc3RJRCwg
cmVzcG9uc2UpOworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0KCkpLT5kaWRMb2Fk
RGF0YShtX3JlcXVlc3RJRCwgdG9JbXBsKHdrRGF0YS5nZXQoKSkpOworICAgIHRvSW1wbChtX3dr
UmVxdWVzdE1hbmFnZXIuZ2V0KCkpLT5kaWRGaW5pc2hMb2FkaW5nKG1fcmVxdWVzdElEKTsKIH0K
IAogY29uc3QgY2hhciogZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KGNvbnN0IEV3
a19VcmxfU2NoZW1lX1JlcXVlc3QqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJp
dmF0ZS5oCmluZGV4IDA1MTQ3MzguLjlhNDA0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3Rf
cHJpdmF0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVk
ZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNs
dWRlICJXS1NvdXBSZXF1ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgIldLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAog
LyoqCkBAIC00MSwxMiArNDEsMTIgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1Ymxp
YyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hl
bWVSZXF1ZXN0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4g
Y3JlYXRlKFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWlu
dDY0X3QgcmVxdWVzdElEKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVl
c3Q+IGNyZWF0ZShXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIs
IEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIHsK
LSAgICAgICAgaWYgKCFtYW5hZ2VyIHx8ICF1cmwpCisgICAgICAgIGlmICghbWFuYWdlciB8fCAh
dXJsUmVxdWVzdCkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRXdrVXJsU2NoZW1lUmVxdWVzdChtYW5hZ2VyLCB1cmwsIHJlcXVlc3RJRCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJlcXVlc3QobWFuYWdlciwg
dXJsUmVxdWVzdCwgcmVxdWVzdElEKSk7CiAgICAgfQogCiAgICAgdWludDY0X3QgaWQoKSBjb25z
dDsKQEAgLTU3LDkgKzU3LDkgQEAgcHVibGljOgogICAgIHZvaWQgZmluaXNoKGNvbnN0IHZvaWQq
IGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlw
ZSk7CiAKIHByaXZhdGU6Ci0gICAgRXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFu
YWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmxSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7Cisg
ICAgRXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
UmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVz
dElEKTsKIAotICAgIFdLUmV0YWluUHRyPFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3drUmVx
dWVzdE1hbmFnZXI7CisgICAgV0tSZXRhaW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlclJlZj4gbV93a1JlcXVlc3RNYW5hZ2VyOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBt
X3VybDsKICAgICB1aW50NjRfdCBtX3JlcXVlc3RJRDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
bV9zY2hlbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90
ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAKaW5kZXggM2YxNDcwYS4uZDg5MWYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIFRFU1RfRihFV0sy
Q29udGV4dFRlc3QsIGV3a19jb250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQpCiAKIFRFU1RfRihF
V0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIpCiB7Ci0jaWYg
RU5BQkxFKENVU1RPTV9QUk9UT0NPTCkKKyNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAg
ICBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKGV3a192aWV3X2NvbnRleHRfZ2V0KHdl
YlZpZXcoKSksICJmb29zY2hlbWUiLCBzY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIDApOwogICAgIGV3
a192aWV3X3VybF9zZXQod2ViVmlldygpLCAiZm9vc2NoZW1lOk15UGF0aCIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291
cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggYWQ3M2FkNC4uZWYxODg1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAv
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Q
cm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9yc0d0ay5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVk
ZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y29uc3QgY2hhciogV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OnN1cHBsZW1l
bnROYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVz
dE1hbmFnZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKaW5kZXggMDZlMWE5Zi4uOWQ0YTgwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVu
dEVmbC5jcHAKQEAgLTI2LDU4ICsyNiw1MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgiCiAKLSNpbmNsdWRlICJXS0NvbnRleHRTb3Vw
LmgiCi0jaW5jbHVkZSAiV0tTb3VwUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29u
dGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRl
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3QgRXdrVXJsU2NoZW1lSGFuZGxlciB7
Ci0gICAgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjazsKLSAgICB2b2lkKiB1c2Vy
RGF0YTsKLQotICAgIEV3a1VybFNjaGVtZUhhbmRsZXIoKQotICAgICAgICA6IGNhbGxiYWNrKDAp
Ci0gICAgICAgICwgdXNlckRhdGEoMCkKLSAgICB7IH0KLQotICAgIEV3a1VybFNjaGVtZUhhbmRs
ZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCi0g
ICAgICAgIDogY2FsbGJhY2soY2FsbGJhY2spCi0gICAgICAgICwgdXNlckRhdGEodXNlckRhdGEp
Ci0gICAgeyB9Ci19OwotCiBzdGF0aWMgaW5saW5lIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiB0
b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi12b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpk
aWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1h
bmFnZXJSZWYsIFdLVVJMUmVmIHVybFJlZiwgV0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwq
IHJlcXVlc3RNYW5hZ2VyID0gdG9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsK
LQotICAgIFJlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBzY2hlbWVSZXF1ZXN0ID0gRXdrVXJs
U2NoZW1lUmVxdWVzdDo6Y3JlYXRlKHNvdXBSZXF1ZXN0TWFuYWdlclJlZiwgdXJsUmVmLCByZXF1
ZXN0SUQpOwotICAgIEV3a1VybFNjaGVtZUhhbmRsZXIgaGFuZGxlciA9IHJlcXVlc3RNYW5hZ2Vy
LT5tX3VybFNjaGVtZUhhbmRsZXJzLmdldChzY2hlbWVSZXF1ZXN0LT5zY2hlbWUoKSk7Ci0gICAg
aWYgKCFoYW5kbGVyLmNhbGxiYWNrKQotICAgICAgICByZXR1cm47Ci0KLSAgICBoYW5kbGVyLmNh
bGxiYWNrKHNjaGVtZVJlcXVlc3QuZ2V0KCksIGhhbmRsZXIudXNlckRhdGEpOwotfQotCiBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0UmVm
IGNvbnRleHQpCi0gICAgOiBtX3NvdXBSZXF1ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3VwUmVx
dWVzdE1hbmFnZXIoY29udGV4dCkpCiB7CisgICAgbV9yZXF1ZXN0TWFuYWdlciA9IHRvQVBJKHRv
SW1wbChjb250ZXh0KS0+c3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlcj4oKSk7CiAgICAgQVNTRVJUKG1fc291cFJlcXVlc3RNYW5hZ2VyKTsKIAotICAgIFdLU291
cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudDsKLSAgICBtZW1z
ZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQsIDAsIHNpemVvZihXS1NvdXBSZXF1ZXN0TWFuYWdl
ckNsaWVudFYwKSk7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVu
dFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7CisgICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50LCAwLCBzaXplb2YoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVu
dFYwKSk7CiAKICAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CiAg
ICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5iYXNlLmNsaWVudEluZm8gPSB0aGlzOwotICAgIHdr
UmVxdWVzdE1hbmFnZXJDbGllbnQuZGlkUmVjZWl2ZVVSSVJlcXVlc3QgPSBkaWRSZWNlaXZlVVJJ
UmVxdWVzdDsKKyAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LnN0YXJ0TG9hZGluZyA9IHN0YXJ0
TG9hZGluZzsKKyAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LnN0b3BMb2FkaW5nID0gc3RvcExv
YWRpbmc7CiAKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENsaWVudChtX3NvdXBSZXF1ZXN0
TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1hbmFnZXJDbGllbnQuYmFzZSk7CisgICAgV0tTb3Vw
Q3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclNldENsaWVudChtX3JlcXVlc3RNYW5hZ2VyLmdl
dCgpLCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5iYXNlKTsKK30KKwordm9pZCBSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbDo6c3RhcnRMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1h
bmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwqIGNsaWVudCA9IHRvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50
SW5mbyk7CisgICAgUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBFd2tVcmxT
Y2hlbWVSZXF1ZXN0OjpjcmVhdGUobWFuYWdlciwgdG9JbXBsKHJlcXVlc3RSZWYpLCBjdXN0b21Q
cm90b2NvbElEKTsKKyAgICBTdHJpbmcgc2NoZW1lKFN0cmluZzo6ZnJvbVVURjgocmVxdWVzdC5n
ZXQoKS0+c2NoZW1lKCkpKTsKKyAgICBSZWZQdHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4gaGFu
ZGxlciA9IChjbGllbnQtPm1fdXJpU2NoZW1lSGFuZGxlcnMpLmdldChzY2hlbWUpOworICAgIEFT
U0VSVChoYW5kbGVyLmdldCgpKTsKKyAgICBpZiAoIWhhbmRsZXItPmhhc0NhbGxiYWNrKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIChjbGllbnQtPm1fdXJpU2NoZW1lUmVxdWVzdHMpLnNldChj
dXN0b21Qcm90b2NvbElELCByZXF1ZXN0LmdldCgpKTsKKyAgICBoYW5kbGVyLT5wZXJmb3JtQ2Fs
bGJhY2socmVxdWVzdC5nZXQoKSk7Cit9CisKK3ZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6
OnN0b3BMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdl
ciwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sK
KyAgICBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogY2xpZW50ID0gdG9SZXF1ZXN0TWFuYWdlckNs
aWVudEVmbChjbGllbnRJbmZvKTsKKyAgICBSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gcmVx
dWVzdCA9IChjbGllbnQtPm1fdXJpU2NoZW1lUmVxdWVzdHMpLmdldChjdXN0b21Qcm90b2NvbElE
KTsKKyAgICBpZiAoIXJlcXVlc3QuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICAvLyB3ZWJr
aXRVUklTY2hlbWVSZXF1ZXN0Q2FuY2VsKHJlcXVlc3QuZ2V0KCkpOwogfQogCiBSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbDo6flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCkKQEAgLTg4LDggKzgzLDkg
QEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVy
KGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2sKIHsKICAgICBBU1NFUlQoY2FsbGJhY2spOwogCi0g
ICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxTY2hlbWVIYW5kbGVyKGNh
bGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVnaXN0ZXJVUklT
Y2hlbWUobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksIGFkb3B0V0sodG9Db3BpZWRBUEkoc2No
ZW1lKSkuZ2V0KCkpOworICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVy
ID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRh
KSk7CisgICAgbV91cmlTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBoYW5kbGVyLmdldCgpKTsK
KyAgICB0b0ltcGwobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSktPnJlZ2lzdGVyU2NoZW1lRm9yQ3Vz
dG9tUHJvdG9jb2woc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmgKaW5kZXggYzkwNDlmNi4uZTVmODE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaApAQCAtMjYsNyArMjYsMTEg
QEAKICNpZm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmluZSBSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29udGV4
dF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgi
CisKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM0LDE4ICszOCw1OSBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcjogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4geworcHVibGljOgorICAgIFdlYktp
dFVSSVNjaGVtZUhhbmRsZXIoKQorICAgICAgICA6IG1fY2FsbGJhY2soMCkKKyAgICAgICAgLCBt
X3VzZXJEYXRhKDApCisgICAgeworICAgIH0KKyAgICBXZWJLaXRVUklTY2hlbWVIYW5kbGVyKEV3
a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQorICAgICAg
ICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAgICAgICwgbV91c2VyRGF0YSh1c2VyRGF0YSkK
KyAgICB7CisgICAgfQorCisgICAgfldlYktpdFVSSVNjaGVtZUhhbmRsZXIoKQorICAgIHsKKyAg
ICB9CisKKyAgICBib29sIGhhc0NhbGxiYWNrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Nh
bGxiYWNrOworICAgIH0KKworICAgIHZvaWQgcGVyZm9ybUNhbGxiYWNrKEV3a1VybFNjaGVtZVJl
cXVlc3QqIHJlcXVlc3QpCisgICAgeworICAgICAgICBBU1NFUlQobV9jYWxsYmFjayk7CisKKyAg
ICAgICAgbV9jYWxsYmFjayhyZXF1ZXN0LCBtX3VzZXJEYXRhKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBtX2NhbGxiYWNrOworICAgIHZvaWQqIG1f
dXNlckRhdGE7Cit9OworCit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcj4gPiBVUklTY2hlbWVIYW5kbGVyTWFwOwordHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gPiBVUklTY2hlbWVSZXF1ZXN0TWFw
OworCiBjbGFzcyBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0UmVmKTsKICAgICB+UmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwoKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKGNv
bnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2
b2lkKiB1c2VyRGF0YSk7CisgICAgUGFzc1JlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBo
YW5kbGVyRnJvbVNjaGVtZShTdHJpbmcgc2NoZW1lKSB7IHJldHVybiAgbV91cmlTY2hlbWVIYW5k
bGVycy5nZXQoc2NoZW1lKTsgfTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgV0tVUkxSZWYsIFdLUGFnZVJl
ZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0
aWMgdm9pZCBzdGFydExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJl
ZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgV0tVUkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wTG9hZGluZyhXS1NvdXBDdXN0b21Q
cm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIAotICAgIFdLUmV0YWluUHRyPFdLU291cFJlcXVlc3RNYW5h
Z2VyUmVmPiBtX3NvdXBSZXF1ZXN0TWFuYWdlcjsKLSAgICBIYXNoTWFwPFN0cmluZywgY2xhc3Mg
RXdrVXJsU2NoZW1lSGFuZGxlcj4gbV91cmxTY2hlbWVIYW5kbGVyczsKKyAgICBXS1JldGFpblB0
cjxXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3JlcXVlc3RNYW5hZ2Vy
OworICAgIFVSSVNjaGVtZUhhbmRsZXJNYXAgbV91cmlTY2hlbWVIYW5kbGVyczsKKyAgICBVUklT
Y2hlbWVSZXF1ZXN0TWFwIG1fdXJpU2NoZW1lUmVxdWVzdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29u
dGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwu
Y3BwCmluZGV4IDM4YzZhZTEuLjk0ZjRkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcApAQCAtMzEsNyArMzEsMTEgQEAKICNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaWYgRU5BQkxFKENVU1RP
TV9QUk9UT0NPTFMpCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuaCIKKyNlbHNlCiAjaW5jbHVkZSAiV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNl
bmRpZgogI2luY2x1ZGUgPEVmcmVldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgpAQCAtODks
NyArOTMsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBpbml0aWFsaXplSW5z
cGVjdG9yU2VydmVyKCk7CiAKKyNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKKyAgICBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzID0gc3VwcGxlbWVu
dDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVnaXN0ZXJlZFNjaGVt
ZXNGb3JDdXN0b21Qcm90b2NvbHMoKTsKKyNlbHNlCiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZCA9IHN1cHBsZW1lbnQ8V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk+KCktPnJl
Z2lzdGVyZWRVUklTY2hlbWVzKCk7CisjZW5kaWYKICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1h
bmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29r
aWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsIHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3Jh
Z2VUeXBlKTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhU
VFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBt
X2lnbm9yZVRMU0Vycm9yczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9z
b3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dl
YkNvbnRleHRTb3VwLmNwcAppbmRleCA0M2VlNjcxLi43MzljNjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCkBAIC00Miw2ICs0Miw4
IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlCiAgICAgcGFyYW1ldGVycy5sYW5ndWFnZXMgPSBX
ZWJDb3JlOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CiAjaWYgRU5BQkxFKENVU1RPTV9QUk9U
T0NPTFMpCiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3Rv
Y29scyA9IHN1cHBsZW1lbnQ8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCkt
PnJlZ2lzdGVyZWRTY2hlbWVzRm9yQ3VzdG9tUHJvdG9jb2xzKCk7CisjZWxzZQorICAgIHBhcmFt
ZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5PigpLT5yZWdpc3RlcmVkVVJJU2NoZW1lcygpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UKaW5kZXggZTY5MmE0NC4uMDUyNTk1YyAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UK
QEAgLTMwOCw1ICszMDgsNyBAQCBpZiAoRU5BQkxFX0ZUTF9KSVQpCiAgICAgc2V0KEhBVkVfTExW
TSBPTikKIGVuZGlmICgpCiAKK2FkZF9kZWZpbml0aW9ucygtREVOQUJMRV9DVVNUT01fUFJPVE9D
T0xTPTEpCisKICMgW0VdV2ViS2l0MiB0ZXN0cyBuZWVkIGEgaGludCB0byBmaW5kIG91dCB3aGVy
ZSBwcm9jZXNzZXMgc3VjaCBhcyBXZWJQcm9jZXNzIGFyZSBsb2NhdGVkIGF0LgogYWRkX2RlZmlu
aXRpb25zKC1EV0VCS0lUX0VYRUNfUEFUSD1cIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNU
T1JZfVwiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDVlOGVkMjkuLjJjZWFkMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wOS0zMCAgUGFzY2FsIEphY3F1
ZW1hcnQgIDxwLmphY3F1ZW1hcnRAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxl
IGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1c3RvbVByb3RvY29scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2NzA1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgZHVtbXkgIm1pbmlicm93
c2VyLWFib3V0IiBzY2hlbWUgYXMgcGVyIEdUSyBwb3J0CisgICAgICAgIFNvIHdlIGNhbiBtYWtl
IHN1cmUgdGhlIEFQSSB3b24ndCBicmVhayBhbnltb3JlCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jOgorICAgICAgICAoZWxtX21haW4pOgorCiAyMDE0LTA5LTMwICBUaWJvciBN
ZXN6YXJvcyAgPHRtZXN6YXJvcy51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFtFRkxdIEJ1bXAgRUZMIHZlcnNpb24gdG8gMS4xMS4yCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRl
eCBlNTVhY2RiLi43ZmIwYWQ1IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFp
bi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTcwLDYgKzcwLDM1IEBA
IHN0YXRpYyBFaW5hX0Jvb2wgbGVnYWN5X2JlaGF2aW9yX2VuYWJsZWQgPSBFSU5BX0ZBTFNFOwog
Ly8gVGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxhIEZpcmVm
b3ggMy4KIGNvbnN0IHN0YXRpYyBmbG9hdCB6b29tTGV2ZWxzW10gPSB7MC4zLCAwLjUsIDAuNjcs
IDAuOCwgMC45LCAxLjAsIDEuMSwgMS4yLCAxLjMzLCAxLjUsIDEuNywgMi4wLCAyLjQsIDMuMH07
CiAKKy8vIEltcGxlbWVudGluZyBhYm91dCBzY2hlbWUKK3N0YXRpYyBjb25zdCBjaGFyIE1JTklC
Uk9XU0VSX0FCT1VUX1NDSEVNRVtdID0gIm1pbmlicm93c2VyLWFib3V0IjsKK3N0YXRpYyB2b2lk
IGFib3V0X3VybF9zY2hlbWVfcmVxdWVzdF9jYihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICpyZXF1
ZXN0LCB2b2lkICp1c2VyX2RhdGEpCit7CisgICAgY29uc3QgY2hhciAqcGF0aDsKKyAgICBjaGFy
ICpjb250ZW50c19kYXRhID0gTlVMTDsKKyAgICB1bnNpZ25lZCBjb250ZW50c19sZW5ndGggPSAw
OworCisgICAgcGF0aCA9IGV3a191cmxfc2NoZW1lX3JlcXVlc3RfcGF0aF9nZXQocmVxdWVzdCk7
CisgICAgaWYgKCFzdHJjbXAocGF0aCwgInBsdWdpbnMiKSkgeworICAgICAgICAvLyBJbml0aWFs
aXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgcGx1Z2lucyBhYm91dCBwYWdl
LCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCisgICAgICAgIC8vIFRvZG8K
KyAgICB9IGVsc2UgaWYgKCFzdHJjbXAocGF0aCwgIm1lbW9yeSIpKSB7CisgICAgICAgIC8vIElu
aXRpYWxpemUgY29udGVudHNfZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiBtZW1vcnkgYWJvdXQg
cGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAorICAgICAgICAvLyBU
b2RvCisgICAgfSBlbHNlIGlmICghc3RyY21wKHBhdGgsICJhcHBsaWNhdGlvbnMiKSkgeworICAg
ICAgICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgYXBw
bGljYXRpb24gYWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0
aAorICAgICAgICAvLyBUb2RvCisgICAgfSBlbHNlIHsKKyAgICAgICAgRWluYV9TdHJidWYgKmJ1
ZiA9IGVpbmFfc3RyYnVmX25ldygpOworICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRm
KGJ1ZiwgIjxodG1sPjxib2R5PjxwPkludmFsaWQgYWJvdXQ6JXMgcGFnZTwvcD48L2JvZHk+PC9o
dG1sPiIsIHBhdGgpOworICAgICAgICBjb250ZW50c19kYXRhID0gZWluYV9zdHJidWZfc3RyaW5n
X3N0ZWFsKGJ1Zik7CisgICAgICAgIGNvbnRlbnRzX2xlbmd0aCA9IHN0cmxlbihjb250ZW50c19k
YXRhKTsKKyAgICAgICAgZWluYV9zdHJidWZfZnJlZShidWYpOworICAgIH0KKyAgICBld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChyZXF1ZXN0LCBjb250ZW50c19kYXRhLCBjb250ZW50c19s
ZW5ndGgsICJ0ZXh0L2h0bWwiKTsKKyAgICBmcmVlKGNvbnRlbnRzX2RhdGEpOworfQorCiBzdGF0
aWMgRWluYV9Cb29sCiB6b29tX2xldmVsX3NldChFdmFzX09iamVjdCAqd2VidmlldywgaW50IGxl
dmVsKQogewpAQCAtMjM1MCw2ICsyMzc5LDggQEAgZWxtX21haW4oaW50IGFyZ2MsIGNoYXIgKmFy
Z3ZbXSkKICAgICBpZiAod2luZG93X3NpemVfc3RyaW5nKQogICAgICAgICBwYXJzZV93aW5kb3df
c2l6ZSh3aW5kb3dfc2l6ZV9zdHJpbmcsICZ3aW5kb3dfd2lkdGgsICZ3aW5kb3dfaGVpZ2h0KTsK
IAorICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoY29udGV4dCwgTUlOSUJST1dT
RVJfQUJPVVRfU0NIRU1FLCBhYm91dF91cmxfc2NoZW1lX3JlcXVlc3RfY2IsIE5VTEwpOworCiAg
ICAgaWYgKGFyZ3MgPCBhcmdjKSB7CiAgICAgICAgIGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJf
aW5wdXQoYXJndlthcmdzXSk7CiAgICAgICAgIHdpbmRvdyA9IHdpbmRvd19jcmVhdGUoTlVMTCwg
MCwgMCk7Ci0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239027</attachid>
            <date>2014-10-01 08:00:43 -0700</date>
            <delta_ts>2014-10-01 22:42:56 -0700</delta_ts>
            <desc> Patch proposal to fix ewk_context_url_scheme_register() ewebkit2 API (v2)</desc>
            <filename>0001-EFL-Switch-to-CUSTOM_PROTOCOLS.patch</filename>
            <type>text/plain</type>
            <size>26061</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSAzZThiNDQ3YjQ5ZGRlZDljMGQ1MGI2NTQ3ZDQ1ZjZkZmQwNWJhN2JlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE3OjIyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gW0VGTF0gU3dpdGNoIHRvIENVU1RPTV9QUk9UT0NPTFMKCi0tLQogQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgICAgICAgICAgICAgICAgICAg
fCAgIDE4ICsrKy0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuaCAgICAgfCAgICA0ICstCiAuLi4vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oICAgICAgICB8ICAgIDEgLQogLi4uL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3QuY3BwICAgfCAgIDE5ICsrKystLQogLi4uL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdF9wcml2YXRlLmggICAgICAgfCAgIDEyICsrLS0KIC4uLi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAgIHwgICAgMiArLQogLi4uL3NvdXAvV2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwICAgfCAgICA0ICsrCiAuLi4vVUlQ
cm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAgICAgICB8ICAgNjUgKysrKysr
KysrLS0tLS0tLS0tLS0KIC4uLi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmggICAgICAgIHwgICA0OSArKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvV2ViQ29udGV4dEVmbC5jcHAgICAgIHwgICAgOCArKysKIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCAgIHwgICAgMiArCiBTb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZSAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogVG9vbHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysKIFRv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMSAr
KysrKysrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDY4MzEwMjAu
LmVlNDM4M2UgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNC0wOS0zMCAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxlIGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRo
IEN1c3RvbVByb3RvY29scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI4MTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4aW5nIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoKSBld2Via2l0
MiBBUEkKKyAgICAgICAgcmVseSBvbiByMTYyNDQ5IC0gQ3VzdG9tUHJvdG9jb2xzIGltcGxlbWVu
dGF0aW9uIGZyb20gQ2FybG9zIEdhcmNpYSBDYW1wb3MKKworICAgICAgICAqIFNvdXJjZS9jbWFr
ZS9PcHRpb25zRWZsLmNtYWtlOgorCiAyMDE0LTA5LTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IHRvcCBvZiB0cmVlIHNvdXJjZXMgd29uJ3QgYnVp
bGQgaW4gMTAuOSB3LyBYY29kZSA2LjAuMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM2MGFiZWYuLjE3YWExYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxNC0wOS0zMCAgUGFzY2FsIEphY3F1ZW1h
cnQgIDxwLmphY3F1ZW1hcnRAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxlIGN1
c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1c3RvbVByb3RvY29scworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4aW5nIGV3a19jb250ZXh0X3VybF9zY2hl
bWVfcmVnaXN0ZXIoKSBld2Via2l0MiBBUEkKKyAgICAgICAgcmVseSBvbiByMTYyNDQ5IC0gQ3Vz
dG9tUHJvdG9jb2xzIGltcGxlbWVudGF0aW9uIGZyb20gQ2FybG9zIEdhcmNpYSBDYW1wb3MKKwor
ICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRf
cHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3Jl
cXVlc3QuY3BwOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdrVXJsU2NoZW1lUmVx
dWVzdCk6CisgICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0OjpmaW5pc2gpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oOgorICAg
ICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHA6CisgICAgICAgIChURVNUX0YpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1h
bmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKyAgICAgICAgKFdlYktp
dDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpyZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpFd2tVcmxTY2hlbWVIYW5kbGVyOjpFd2tVcmxTY2hlbWVIYW5kbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmRp
ZFJlY2VpdmVVUklSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1Jl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2Vy
Q2xpZW50RWZsOjpoYW5kbGVyRnJvbVNjaGVtZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9X
ZWJDb250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4
dFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisKIDIwMTQtMDktMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE3MzkyOSk6IFtHVEtd
IFRlc3RJbnNwZWN0b3IgZmFpbHMgYWZ0ZXIgcjE3MzkyOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCBmMDdmYjYzLi5mZDc5Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAt
MzAsNiArMzAsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFNoYXJlZC9E
b3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAKKyAgICBTaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBsLmNwcAorICAgIFNoYXJl
ZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAu
Y3BwCisKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1
bGVYMTEuY3BwCiAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCkBA
IC02Nyw5ICs3MCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tQb3B1cE1lbnVMaXN0ZW5lci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLVmlld0VmbC5jcHAKIAotICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29udGV4dFNv
dXAuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAK
LSAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFuYWdlci5jcHAKKyAgICBV
SVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNw
cAogCiAgICAgVUlQcm9jZXNzL0FQSS9Db29yZGluYXRlZEdyYXBoaWNzL1dLQ29vcmRpbmF0ZWRT
Y2VuZS5jcHAKIApAQCAtMTI1LDYgKzEyNywxMCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAog
CisgICAgVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAorICAgIFVJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAorCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9O
ZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKIAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgv
UGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKQEAgLTE2OSw4ICsxNzUsNiBAQCBsaXN0KEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcAog
ICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCi0gICAgVUlQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAotICAgIFVJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogCiAgICAgV2ViUHJvY2Vzcy9D
b29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCiAgICAgV2ViUHJvY2Vzcy9Db29r
aWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKQEAgLTIwMywxNyArMjA3LDEy
IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3Vw
LmNwcAotICAgIFdlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCiApCiAK
IGxpc3QoQVBQRU5EIFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5tZXNzYWdlcy5p
bgogCi0gICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KLQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgotCi0gICAgV2ViUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlci5tZXNzYWdlcy5pbgogKQogCiBsaXN0KEFQUEVORCBXZWJLaXQy
X0lOQ0xVREVfRElSRUNUT1JJRVMKQEAgLTIyOSw2ICsyMjgsNyBAQCBsaXN0KEFQUEVORCBXZWJL
aXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMvc291cCIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgogICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IGJjN2IwNTQuLmQzYTRkY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaApAQCAtMjcxLDcg
KzI3MSw3IEBAIEVBUEkgRXdrX1N0b3JhZ2VfTWFuYWdlciAqZXdrX2NvbnRleHRfc3RvcmFnZV9t
YW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29uCiAgKiB7CiAgKiAgICAgY29uc3QgY2hh
ciAqcGF0aDsKICAqICAgICBjaGFyICpjb250ZW50c19kYXRhID0gTlVMTDsKLSAqICAgICB1bnNp
Z25lZCBpbnQgY29udGVudHNfbGVuZ3RoID0gMDsKKyAqICAgICB1bnNpZ25lZCBjb250ZW50c19s
ZW5ndGggPSAwOwogICoKICAqICAgICBwYXRoID0gZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wYXRo
X2dldChyZXF1ZXN0KTsKICAqICAgICBpZiAoIXN0cmNtcChwYXRoLCAicGx1Z2lucyIpKSB7CkBA
IC0yODQsNyArMjg0LDcgQEAgRUFQSSBFd2tfU3RvcmFnZV9NYW5hZ2VyICpld2tfY29udGV4dF9z
dG9yYWdlX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0ICpjb24KICAqICAgICAgICAgRWlu
YV9TdHJidWYgKmJ1ZiA9IGVpbmFfc3RyYnVmX25ldygpOwogICogICAgICAgICBlaW5hX3N0cmJ1
Zl9hcHBlbmRfcHJpbnRmKGJ1ZiwgIiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZsdDtwJmd0O0lu
dmFsaWQgYWJvdXQ6JXMgcGFnZSZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyIs
IHBhdGgpOwogICogICAgICAgICBjb250ZW50c19kYXRhID0gZWluYV9zdHJidWZfc3RyaW5nX3N0
ZWFsKGJ1Zik7Ci0gKiAgICAgICAgIGNvbnRlbnRzX2xlbmd0aCA9IHN0cmxlbihjb250ZW50cyk7
CisgKiAgICAgICAgIGNvbnRlbnRzX2xlbmd0aCA9IHN0cmxlbihjb250ZW50c19kYXRhKTsKICAq
ICAgICAgICAgZWluYV9zdHJidWZfZnJlZShidWYpOwogICogICAgIH0KICAqICAgICBld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChyZXF1ZXN0LCBjb250ZW50c19kYXRhLCBjb250ZW50c19s
ZW5ndGgsICJ0ZXh0L2h0bWwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAppbmRleCAxNzI5YzRhLi5mNDAzNjUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9w
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oCkBAIC0xMTYsNyArMTE2LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVmbD4gbV9kb3dubG9hZE1hbmFn
ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw+
IG1fcmVxdWVzdE1hbmFnZXJDbGllbnQ7Ci0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpD
b250ZXh0SGlzdG9yeUNsaWVudEVmbD4gbV9oaXN0b3J5Q2xpZW50OwogCiAgICAgSlNHbG9iYWxD
b250ZXh0UmVmIG1fanNHbG9iYWxDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcAppbmRleCA5
OWZmMjc0Li5mNGI5MGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcApAQCAtMjksMTcgKzI5LDIw
IEBACiAjaW5jbHVkZSAiV0tEYXRhLmgiCiAjaW5jbHVkZSAiV0tTdHJpbmcuaCIKICNpbmNsdWRl
ICJXS1VSTC5oIgorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmgiCisKICNpbmNsdWRlICJld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCIKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotRXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdrVXJsU2NoZW1l
UmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmwsIHVp
bnQ2NF90IHJlcXVlc3RJRCkKK0V3a1VybFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJlcXVl
c3QoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVS
TFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICA6IG1fd2tSZXF1
ZXN0TWFuYWdlcihtYW5hZ2VyKQotICAgICwgbV91cmwodXJsKQogICAgICwgbV9yZXF1ZXN0SUQo
cmVxdWVzdElEKQotICAgICwgbV9zY2hlbWUoQWRvcHRXSywgV0tVUkxDb3B5U2NoZW1lKHVybCkp
Ci0gICAgLCBtX3BhdGgoQWRvcHRXSywgV0tVUkxDb3B5UGF0aCh1cmwpKQogeworICAgIFdLVVJM
UmVmIHVybCA9IHRvQ29waWVkVVJMQVBJKHVybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgpLnVy
bCgpKTsKKyAgICBtX3VybCA9IFdLRWluYVNoYXJlZFN0cmluZyh1cmwpOworICAgIG1fc2NoZW1l
ID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLVVJMQ29weVNjaGVtZSh1cmwpKTsKKyAg
ICBtX3BhdGggPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tVUkxDb3B5UGF0aCh1cmwp
KTsKIH0KIAogdWludDY0X3QgRXdrVXJsU2NoZW1lUmVxdWVzdDo6aWQoKSBjb25zdApAQCAtNjgs
NyArNzEsMTMgQEAgdm9pZCBFd2tVcmxTY2hlbWVSZXF1ZXN0OjpmaW5pc2goY29uc3Qgdm9pZCog
Y29udGVudERhdGEsIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgKICAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gd2tNaW1lVHlwZSA9IG1pbWVUeXBlID8gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhtaW1lVHlwZSkpIDogMDsKIAogICAgIC8vIEluIGNhc2Ugb2YgZW1wdHkg
cmVwbHkgYW4gZW1wdHkgV0tEYXRhUmVmIGlzIHNlbnQgdG8gdGhlIFdlYlByb2Nlc3MuCi0gICAg
V0tTb3VwUmVxdWVzdE1hbmFnZXJEaWRIYW5kbGVVUklSZXF1ZXN0KG1fd2tSZXF1ZXN0TWFuYWdl
ci5nZXQoKSwgd2tEYXRhLmdldCgpLCBjb250ZW50TGVuZ3RoLCB3a01pbWVUeXBlLmdldCgpLCBt
X3JlcXVlc3RJRCk7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShXZWJD
b3JlOjpVUkwoV2ViQ29yZTo6VVJMKCksIFN0cmluZzo6ZnJvbVVURjgobV91cmwpKSwKKyAgICAg
ICAgU3RyaW5nOjpmcm9tVVRGOChtaW1lVHlwZSksIGNvbnRlbnRMZW5ndGgsIGVtcHR5U3RyaW5n
KCkpOworCisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSktPmRpZFJlY2VpdmVS
ZXNwb25zZShtX3JlcXVlc3RJRCwgcmVzcG9uc2UpOworICAgIHRvSW1wbChtX3drUmVxdWVzdE1h
bmFnZXIuZ2V0KCkpLT5kaWRMb2FkRGF0YShtX3JlcXVlc3RJRCwgdG9JbXBsKHdrRGF0YS5nZXQo
KSkpOworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0KCkpLT5kaWRGaW5pc2hMb2Fk
aW5nKG1fcmVxdWVzdElEKTsKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+
c3RvcExvYWRpbmcobV9yZXF1ZXN0SUQpOwogfQogCiBjb25zdCBjaGFyKiBld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0X3NjaGVtZV9nZXQoY29uc3QgRXdrX1VybF9TY2hlbWVfUmVxdWVzdCogcmVxdWVz
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
c2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggMDUxNDczOC4uOWE0MDRj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAK
ICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNp
bmNsdWRlICJXS1JldGFpblB0ci5oIgotI2luY2x1ZGUgIldLU291cFJlcXVlc3RNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1
ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgogCiAvKioKQEAgLTQxLDEyICs0MSwxMiBAQCBjbGFz
cyBFd2tVcmxTY2hlbWVSZXF1ZXN0IDogcHVibGljIEV3a09iamVjdCB7CiBwdWJsaWM6CiAgICAg
RVdLX09CSkVDVF9ERUNMQVJFKEV3a1VybFNjaGVtZVJlcXVlc3QpCiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwUmVxdWVzdE1hbmFnZXJS
ZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsLCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0
LCB1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgewotICAgICAgICBpZiAoIW1hbmFnZXIgfHwgIXVy
bCkKKyAgICAgICAgaWYgKCFtYW5hZ2VyIHx8ICF1cmxSZXF1ZXN0KQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0
KG1hbmFnZXIsIHVybCwgcmVxdWVzdElEKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RXdrVXJsU2NoZW1lUmVxdWVzdChtYW5hZ2VyLCB1cmxSZXF1ZXN0LCByZXF1ZXN0SUQpKTsKICAg
ICB9CiAKICAgICB1aW50NjRfdCBpZCgpIGNvbnN0OwpAQCAtNTcsOSArNTcsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBmaW5pc2goY29uc3Qgdm9pZCogY29udGVudERhdGEsIHVpbnQ2NF90IGNvbnRl
bnRMZW5ndGgsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKTsKIAogcHJpdmF0ZToKLSAgICBFd2tVcmxT
Y2hlbWVSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVy
bFJlZiwgdWludDY0X3QgcmVxdWVzdElEKTsKKyAgICBFd2tVcmxTY2hlbWVSZXF1ZXN0KFdLU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxSZXF1ZXN0
KiB1cmxSZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tT
b3VwUmVxdWVzdE1hbmFnZXJSZWY+IG1fd2tSZXF1ZXN0TWFuYWdlcjsKKyAgICBXS1JldGFpblB0
cjxXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3drUmVxdWVzdE1hbmFn
ZXI7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fdXJsOwogICAgIHVpbnQ2NF90IG1fcmVxdWVz
dElEOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3NjaGVtZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0
LmNwcAppbmRleCAzZjE0NzBhLi5kODkxZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwCkBA
IC0xMTUsNyArMTE1LDcgQEAgVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwgZXdrX2NvbnRleHRfc3Rv
cmFnZV9tYW5hZ2VyX2dldCkKIAogVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwgZXdrX2NvbnRleHRf
dXJsX3NjaGVtZV9yZWdpc3RlcikKIHsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MKQorI2lm
IEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVn
aXN0ZXIoZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVt
ZVJlcXVlc3RDYWxsYmFjaywgMCk7CiAgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksICJm
b29zY2hlbWU6TXlQYXRoIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcAppbmRl
eCBhZDczYWQ0Li5lZjE4ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCkBA
IC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzR3RrLmg+CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5oPgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCBjaGFyKiBXZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAppbmRl
eCAwNmUxYTlmLi5mNDY4MjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcApAQCAtMjYsNTggKzI2LDUwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
aCIKIAotI2luY2x1ZGUgIldLQ29udGV4dFNvdXAuaCIKLSNpbmNsdWRlICJXS1NvdXBSZXF1ZXN0
TWFuYWdlci5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXN0cnVjdCBFd2tVcmxTY2hlbWVIYW5kbGVyIHsKLSAgICBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0
X0NiIGNhbGxiYWNrOwotICAgIHZvaWQqIHVzZXJEYXRhOwotCi0gICAgRXdrVXJsU2NoZW1lSGFu
ZGxlcigpCi0gICAgICAgIDogY2FsbGJhY2soMCkKLSAgICAgICAgLCB1c2VyRGF0YSgwKQotICAg
IHsgfQotCi0gICAgRXdrVXJsU2NoZW1lSGFuZGxlcihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0Ni
IGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKLSAgICAgICAgOiBjYWxsYmFjayhjYWxsYmFjaykK
LSAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKLSAgICB7IH0KLX07Ci0KIHN0YXRpYyBpbmxp
bmUgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIHRvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CiB9CiAKLXZv
aWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmRpZFJlY2VpdmVVUklSZXF1ZXN0KFdLU291cFJl
cXVlc3RNYW5hZ2VyUmVmIHNvdXBSZXF1ZXN0TWFuYWdlclJlZiwgV0tVUkxSZWYgdXJsUmVmLCBX
S1BhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogcmVxdWVzdE1hbmFnZXIgPSB0b1JlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKGNsaWVudEluZm8pOwotCi0gICAgUmVmUHRyPEV3a1VybFNjaGVtZVJl
cXVlc3Q+IHNjaGVtZVJlcXVlc3QgPSBFd2tVcmxTY2hlbWVSZXF1ZXN0OjpjcmVhdGUoc291cFJl
cXVlc3RNYW5hZ2VyUmVmLCB1cmxSZWYsIHJlcXVlc3RJRCk7Ci0gICAgRXdrVXJsU2NoZW1lSGFu
ZGxlciBoYW5kbGVyID0gcmVxdWVzdE1hbmFnZXItPm1fdXJsU2NoZW1lSGFuZGxlcnMuZ2V0KHNj
aGVtZVJlcXVlc3QtPnNjaGVtZSgpKTsKLSAgICBpZiAoIWhhbmRsZXIuY2FsbGJhY2spCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGhhbmRsZXIuY2FsbGJhY2soc2NoZW1lUmVxdWVzdC5nZXQoKSwg
aGFuZGxlci51c2VyRGF0YSk7Ci19Ci0KIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0
TWFuYWdlckNsaWVudEVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKLSAgICA6IG1fc291cFJlcXVl
c3RNYW5hZ2VyKFdLQ29udGV4dEdldFNvdXBSZXF1ZXN0TWFuYWdlcihjb250ZXh0KSkKIHsKKyAg
ICBtX3JlcXVlc3RNYW5hZ2VyID0gdG9BUEkodG9JbXBsKGNvbnRleHQpLT5zdXBwbGVtZW50PFdl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpKTsKICAgICBBU1NFUlQobV9zb3Vw
UmVxdWVzdE1hbmFnZXIpOwogCi0gICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMCB3a1Jl
cXVlc3RNYW5hZ2VyQ2xpZW50OwotICAgIG1lbXNldCgmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCwg
MCwgc2l6ZW9mKFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjApKTsKKyAgICBXS1NvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudDsK
KyAgICBtZW1zZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQsIDAsIHNpemVvZihXS1NvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjApKTsKIAogICAgIHdrUmVxdWVzdE1hbmFn
ZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKICAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmJh
c2UuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5kaWRSZWNl
aXZlVVJJUmVxdWVzdCA9IGRpZFJlY2VpdmVVUklSZXF1ZXN0OworICAgIHdrUmVxdWVzdE1hbmFn
ZXJDbGllbnQuc3RhcnRMb2FkaW5nID0gc3RhcnRMb2FkaW5nOworICAgIHdrUmVxdWVzdE1hbmFn
ZXJDbGllbnQuc3RvcExvYWRpbmcgPSBzdG9wTG9hZGluZzsKIAotICAgIFdLU291cFJlcXVlc3RN
YW5hZ2VyU2V0Q2xpZW50KG1fc291cFJlcXVlc3RNYW5hZ2VyLmdldCgpLCAmd2tSZXF1ZXN0TWFu
YWdlckNsaWVudC5iYXNlKTsKKyAgICBXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
U2V0Q2xpZW50KG1fcmVxdWVzdE1hbmFnZXIuZ2V0KCksICZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50
LmJhc2UpOworfQorCit2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdGFydExvYWRpbmco
V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBj
dXN0b21Qcm90b2NvbElELCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3sKKyAgICBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogY2xpZW50ID0gdG9S
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsKKyAgICBSZWZQdHI8RXdrVXJsU2No
ZW1lUmVxdWVzdD4gcmVxdWVzdCA9IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZShtYW5hZ2Vy
LCB0b0ltcGwocmVxdWVzdFJlZiksIGN1c3RvbVByb3RvY29sSUQpOworICAgIFN0cmluZyBzY2hl
bWUoU3RyaW5nOjpmcm9tVVRGOChyZXF1ZXN0LmdldCgpLT5zY2hlbWUoKSkpOworICAgIFJlZlB0
cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVyID0gKGNsaWVudC0+bV91cmlTY2hlbWVI
YW5kbGVycykuZ2V0KHNjaGVtZSk7CisgICAgQVNTRVJUKGhhbmRsZXIuZ2V0KCkpOworICAgIGlm
ICghaGFuZGxlci0+aGFzQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgKGNsaWVu
dC0+bV91cmlTY2hlbWVSZXF1ZXN0cykuc2V0KGN1c3RvbVByb3RvY29sSUQsIHJlcXVlc3QpOwor
ICAgIGhhbmRsZXItPnBlcmZvcm1DYWxsYmFjayhyZXF1ZXN0LmdldCgpKTsKK30KKwordm9pZCBS
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6c3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBjbGll
bnQgPSB0b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNsaWVudEluZm8pOworICAgIChjbGllbnQt
Pm1fdXJpU2NoZW1lUmVxdWVzdHMpLnJlbW92ZShjdXN0b21Qcm90b2NvbElEKTsKIH0KIAogUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmw6On5SZXF1ZXN0TWFuYWdlckNsaWVudEVmbCgpCkBAIC04OCw4
ICs4MCw5IEBAIHZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnJlZ2lzdGVyVVJMU2NoZW1l
SGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgRXdrCiB7CiAgICAgQVNTRVJUKGNhbGxiYWNr
KTsKIAotICAgIG1fdXJsU2NoZW1lSGFuZGxlcnMuc2V0KHNjaGVtZSwgRXdrVXJsU2NoZW1lSGFu
ZGxlcihjYWxsYmFjaywgdXNlckRhdGEpKTsKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZ2lz
dGVyVVJJU2NoZW1lKG1fc291cFJlcXVlc3RNYW5hZ2VyLmdldCgpLCBhZG9wdFdLKHRvQ29waWVk
QVBJKHNjaGVtZSkpLmdldCgpKTsKKyAgICBSZWZQdHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4g
aGFuZGxlciA9IGFkb3B0UmVmKG5ldyBXZWJLaXRVUklTY2hlbWVIYW5kbGVyKGNhbGxiYWNrLCB1
c2VyRGF0YSkpOworICAgIG1fdXJpU2NoZW1lSGFuZGxlcnMuc2V0KHNjaGVtZSwgaGFuZGxlcik7
CisgICAgdG9JbXBsKG1fcmVxdWVzdE1hbmFnZXIuZ2V0KCkpLT5yZWdpc3RlclNjaGVtZUZvckN1
c3RvbVByb3RvY29sKHNjaGVtZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVm
bC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVm
bC5oCmluZGV4IGM5MDQ5ZjYuLmU1ZjgxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKQEAgLTI2LDcgKzI2LDEx
IEBACiAjaWZuZGVmIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsX2gKICNkZWZpbmUgUmVxdWVzdE1h
bmFnZXJDbGllbnRFZmxfaAogCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5o
IgorCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1JldGFp
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zNCwxOCArMzgsNTkgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYktpdFVSSVNjaGVtZUhhbmRsZXI6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+IHsKK3B1YmxpYzoKKyAgICBXZWJL
aXRVUklTY2hlbWVIYW5kbGVyKCkKKyAgICAgICAgOiBtX2NhbGxiYWNrKDApCisgICAgICAgICwg
bV91c2VyRGF0YSgwKQorICAgIHsKKyAgICB9CisgICAgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcihF
d2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKKyAgICAg
ICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICAgICAsIG1fdXNlckRhdGEodXNlckRhdGEp
CisgICAgeworICAgIH0KKworICAgIH5XZWJLaXRVUklTY2hlbWVIYW5kbGVyKCkKKyAgICB7Cisg
ICAgfQorCisgICAgYm9vbCBoYXNDYWxsYmFjaygpCisgICAgeworICAgICAgICByZXR1cm4gbV9j
YWxsYmFjazsKKyAgICB9CisKKyAgICB2b2lkIHBlcmZvcm1DYWxsYmFjayhFd2tVcmxTY2hlbWVS
ZXF1ZXN0KiByZXF1ZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2spOworCisg
ICAgICAgIG1fY2FsbGJhY2socmVxdWVzdCwgbV91c2VyRGF0YSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgbV9jYWxsYmFjazsKKyAgICB2b2lkKiBt
X3VzZXJEYXRhOworfTsKKwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYktpdFVS
SVNjaGVtZUhhbmRsZXI+ID4gVVJJU2NoZW1lSGFuZGxlck1hcDsKK3R5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+ID4gVVJJU2NoZW1lUmVxdWVzdE1h
cDsKKwogY2xhc3MgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZik7CiAgICAgflJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcihj
b25zdCBTdHJpbmcmIHNjaGVtZSwgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywg
dm9pZCogdXNlckRhdGEpOworICAgIFBhc3NSZWZQdHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4g
aGFuZGxlckZyb21TY2hlbWUoU3RyaW5nIHNjaGVtZSkgeyByZXR1cm4gIG1fdXJpU2NoZW1lSGFu
ZGxlcnMuZ2V0KHNjaGVtZSk7IH07CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkUmVj
ZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmLCBXS1BhZ2VS
ZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3Rh
dGljIHZvaWQgc3RhcnRMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJS
ZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgc3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLSAgICBXS1JldGFpblB0cjxXS1NvdXBSZXF1ZXN0TWFu
YWdlclJlZj4gbV9zb3VwUmVxdWVzdE1hbmFnZXI7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIGNsYXNz
IEV3a1VybFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcnM7CisgICAgV0tSZXRhaW5Q
dHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4gbV9yZXF1ZXN0TWFuYWdl
cjsKKyAgICBVUklTY2hlbWVIYW5kbGVyTWFwIG1fdXJpU2NoZW1lSGFuZGxlcnM7CisgICAgVVJJ
U2NoZW1lUmVxdWVzdE1hcCBtX3VyaVNjaGVtZVJlcXVlc3RzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNv
bnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZs
LmNwcAppbmRleCAzOGM2YWUxLi45NGY0ZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKQEAgLTMxLDcgKzMxLDExIEBACiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2lmIEVOQUJMRShDVVNU
T01fUFJPVE9DT0xTKQorI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmgiCisjZWxzZQogI2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgiCisj
ZW5kaWYKICNpbmNsdWRlIDxFZnJlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KQEAgLTg5
LDcgKzkzLDExIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiB7CiAgICAgaW5pdGlhbGl6ZUlu
c3BlY3RvclNlcnZlcigpOwogCisjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCisgICAgcGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBsZW1l
bnQ8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRTY2hl
bWVzRm9yQ3VzdG9tUHJvdG9jb2xzKCk7CisjZWxzZQogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1l
c1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpLT5y
ZWdpc3RlcmVkVVJJU2NoZW1lcygpOworI2VuZGlmCiAgICAgc3VwcGxlbWVudDxXZWJDb29raWVN
YW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRlcnMuY29v
a2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9y
YWdlVHlwZSk7CiAgICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxI
VFRQQ29va2llQWNjZXB0UG9saWN5OwogICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0g
bV9pZ25vcmVUTFNFcnJvcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJDb250ZXh0U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJDb250ZXh0U291cC5jcHAKaW5kZXggNDNlZTY3MS4uNzM5YzYzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApAQCAtNDIsNiArNDIs
OCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZQogICAgIHBhcmFtZXRlcnMubGFuZ3VhZ2VzID0g
V2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpOwogI2lmIEVOQUJMRShDVVNUT01fUFJP
VE9DT0xTKQogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90
b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigp
LT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOworI2Vsc2UKKyAgICBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkID0gc3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1h
bmFnZXJQcm94eT4oKS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlCmluZGV4IGU2OTJhNDQuLjA1MjU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CkBAIC0zMDgsNSArMzA4LDcgQEAgaWYgKEVOQUJMRV9GVExfSklUKQogICAgIHNldChIQVZFX0xM
Vk0gT04pCiBlbmRpZiAoKQogCithZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVfQ1VTVE9NX1BST1RP
Q09MUz0xKQorCiAjIFtFXVdlYktpdDIgdGVzdHMgbmVlZCBhIGhpbnQgdG8gZmluZCBvdXQgd2hl
cmUgcHJvY2Vzc2VzIHN1Y2ggYXMgV2ViUHJvY2VzcyBhcmUgbG9jYXRlZCBhdC4KIGFkZF9kZWZp
bml0aW9ucygtRFdFQktJVF9FWEVDX1BBVEg9XCIke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVD
VE9SWX1cIikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA1ZThlZDI5Li4zNDRlMjZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDktMzAgIFBhc2NhbCBKYWNx
dWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJs
ZSBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGR1bW15ICJtaW5pYnJv
d3Nlci1hYm91dCIgc2NoZW1lIGFzIHBlciBHVEsgcG9ydAorICAgICAgICBTbyB3ZSBjYW4gbWFr
ZSBzdXJlIHRoZSBBUEkgd29uJ3QgYnJlYWsgYW55bW9yZQorCisgICAgICAgICogTWluaUJyb3dz
ZXIvZWZsL21haW4uYzoKKyAgICAgICAgKGVsbV9tYWluKToKKwogMjAxNC0wOS0zMCAgVGlib3Ig
TWVzemFyb3MgIDx0bWVzemFyb3MudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbRUZMXSBCdW1wIEVGTCB2ZXJzaW9uIHRvIDEuMTEuMgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5k
ZXggZTU1YWNkYi4uNTEwZjEyYSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21h
aW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC03MCw2ICs3MCwzNSBA
QCBzdGF0aWMgRWluYV9Cb29sIGxlZ2FjeV9iZWhhdmlvcl9lbmFibGVkID0gRUlOQV9GQUxTRTsK
IC8vIFRoZSB6b29tIHZhbHVlcyBhcmUgY2hvc2VuIHRvIGJlIGxpa2UgaW4gTW96aWxsYSBGaXJl
Zm94IDMuCiBjb25zdCBzdGF0aWMgZmxvYXQgem9vbUxldmVsc1tdID0gezAuMywgMC41LCAwLjY3
LCAwLjgsIDAuOSwgMS4wLCAxLjEsIDEuMiwgMS4zMywgMS41LCAxLjcsIDIuMCwgMi40LCAzLjB9
OwogCisvLyBJbXBsZW1lbnRpbmcgYWJvdXQgc2NoZW1lCitzdGF0aWMgY29uc3QgY2hhciBNSU5J
QlJPV1NFUl9BQk9VVF9TQ0hFTUVbXSA9ICJtaW5pYnJvd3Nlci1hYm91dCI7CitzdGF0aWMgdm9p
ZCBhYm91dF91cmxfc2NoZW1lX3JlcXVlc3RfY2IoRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqcmVx
dWVzdCwgdm9pZCAqdXNlcl9kYXRhKQoreworICAgIGNvbnN0IGNoYXIgKnVybDsKKyAgICBjaGFy
ICpjb250ZW50c19kYXRhID0gTlVMTDsKKyAgICB1bnNpZ25lZCBjb250ZW50c19sZW5ndGggPSAw
OworCisgICAgdXJsID0gZXdrX3VybF9zY2hlbWVfcmVxdWVzdF91cmxfZ2V0KHJlcXVlc3QpOwor
ICAgIGlmIChzdHJzdHIodXJsLCAicGx1Z2lucyIpKSB7CisgICAgICAgIC8vIEZJWE1FOgorICAg
ICAgICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgcGx1
Z2lucyBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCisg
ICAgfSBlbHNlIGlmIChzdHJzdHIodXJsLCAibWVtb3J5IikpIHsKKyAgICAgICAgLy8gRklYTUU6
CisgICAgICAgIC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0YSB3aXRoIHRoZSBjb250ZW50cyBv
ZiBtZW1vcnkgYWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0
aAorICAgIH0gZWxzZSBpZiAoc3Ryc3RyKHVybCwgImFwcGxpY2F0aW9ucyIpKSB7CisgICAgICAg
IC8vIEZJWE1FOgorICAgICAgICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUg
Y29udGVudHMgb2YgYXBwbGljYXRpb24gYWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRv
IGNvbnRlbnRzX2xlbmd0aAorICAgIH0gZWxzZSB7CisgICAgICAgIEVpbmFfU3RyYnVmICpidWYg
PSBlaW5hX3N0cmJ1Zl9uZXcoKTsKKyAgICAgICAgZWluYV9zdHJidWZfYXBwZW5kX3ByaW50Zihi
dWYsICI8aHRtbD48Ym9keT48cD5JbnZhbGlkICVzIHBhZ2U8L3A+PC9ib2R5PjwvaHRtbD4iLCB1
cmwpOworICAgICAgICBjb250ZW50c19kYXRhID0gZWluYV9zdHJidWZfc3RyaW5nX3N0ZWFsKGJ1
Zik7CisgICAgICAgIGNvbnRlbnRzX2xlbmd0aCA9IHN0cmxlbihjb250ZW50c19kYXRhKTsKKyAg
ICAgICAgZWluYV9zdHJidWZfZnJlZShidWYpOworICAgIH0KKyAgICBld2tfdXJsX3NjaGVtZV9y
ZXF1ZXN0X2ZpbmlzaChyZXF1ZXN0LCBjb250ZW50c19kYXRhLCBjb250ZW50c19sZW5ndGgsICJ0
ZXh0L2h0bWwiKTsKKyAgICBmcmVlKGNvbnRlbnRzX2RhdGEpOworfQorCiBzdGF0aWMgRWluYV9C
b29sCiB6b29tX2xldmVsX3NldChFdmFzX09iamVjdCAqd2VidmlldywgaW50IGxldmVsKQogewpA
QCAtMjM1MCw2ICsyMzc5LDggQEAgZWxtX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAg
ICBpZiAod2luZG93X3NpemVfc3RyaW5nKQogICAgICAgICBwYXJzZV93aW5kb3dfc2l6ZSh3aW5k
b3dfc2l6ZV9zdHJpbmcsICZ3aW5kb3dfd2lkdGgsICZ3aW5kb3dfaGVpZ2h0KTsKIAorICAgIGV3
a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoY29udGV4dCwgTUlOSUJST1dTRVJfQUJPVVRf
U0NIRU1FLCBhYm91dF91cmxfc2NoZW1lX3JlcXVlc3RfY2IsIE5VTEwpOworCiAgICAgaWYgKGFy
Z3MgPCBhcmdjKSB7CiAgICAgICAgIGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJn
dlthcmdzXSk7CiAgICAgICAgIHdpbmRvdyA9IHdpbmRvd19jcmVhdGUoTlVMTCwgMCwgMCk7Ci0t
IAoxLjcuMTAuNAoK
</data>
<flag name="commit-queue"
          id="263726"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239030</attachid>
            <date>2014-10-01 09:47:40 -0700</date>
            <delta_ts>2014-10-02 03:59:36 -0700</delta_ts>
            <desc>After Carlos review</desc>
            <filename>0001-EFL-Switch-to-CUSTOM_PROTOCOLS.patch</filename>
            <type>text/plain</type>
            <size>26117</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSBjODRlMjNkMThhYTNhMTQyNTlkYjFhYmNhN2Y0Y2U0YzE5MTgwNDMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBUdWUsIDMwIFNlcCAyMDE0IDE3OjIyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gW0VGTF0gU3dpdGNoIHRvIENVU1RPTV9QUk9UT0NPTFMKCi0tLQogQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNSArKysrKysr
KysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgICAgICAgICAgICAgICAgICAg
fCAgIDE4ICsrKy0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuaCAgICAgfCAgICA0ICstCiAuLi4vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oICAgICAgICB8ICAgIDEgLQogLi4uL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3QuY3BwICAgfCAgIDE5ICsrKystLQogLi4uL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdF9wcml2YXRlLmggICAgICAgfCAgIDEyICsrLS0KIC4uLi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAgIHwgICAgNCArLQogLi4uL3NvdXAvV2Vi
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwICAgfCAgICAyICsKIC4uLi9VSVBy
b2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcCAgICAgIHwgICA2NSArKysrKysr
KystLS0tLS0tLS0tLQogLi4uL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
aCAgICAgICAgfCAgIDQ5ICsrKysrKysrKysrKysrLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJDb250ZXh0RWZsLmNwcCAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAgICB8ICAgIDIgLQogU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFRvb2xzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrCiBUb29s
cy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysr
KysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgMjA2IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2ODMxMDIwLi5l
ZTQzODNlIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTQtMDktMzAgIFBhc2NhbCBKYWNxdWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNhbXN1
bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBD
dXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkgZXdlYmtpdDIg
QVBJCisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3RvbVByb3RvY29scyBpbXBsZW1lbnRh
dGlvbiBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZToKKwogMjAxNC0wOS0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYktpdCB0b3Agb2YgdHJlZSBzb3VyY2VzIHdvbid0IGJ1aWxk
IGluIDEwLjkgdy8gWGNvZGUgNi4wLjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNjBhYmVmLi4xN2FhMWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTQtMDktMzAgIFBhc2NhbCBKYWNxdWVtYXJ0
ICA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0
b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1l
X3JlZ2lzdGVyKCkgZXdlYmtpdDIgQVBJCisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3Rv
bVByb3RvY29scyBpbXBsZW1lbnRhdGlvbiBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1
ZXN0LmNwcDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJlcXVl
c3QpOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6ZmluaXNoKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAg
ICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwOgorICAgICAgICAoVEVTVF9GKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9S
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6
OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6RXdrVXJsU2NoZW1lSGFuZGxlcjo6RXdrVXJsU2NoZW1lSGFuZGxlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRS
ZWNlaXZlVVJJUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNs
aWVudEVmbDo6aGFuZGxlckZyb21TY2hlbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRT
b3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorCiAyMDE0LTA5LTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNzM5MjkpOiBbR1RLXSBU
ZXN0SW5zcGVjdG9yIGZhaWxzIGFmdGVyIHIxNzM5MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggZjA3ZmI2My4uZmQ3OWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTMw
LDYgKzMwLDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBTaGFyZWQvRG93
bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCisgICAgU2hhcmVkL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKKyAgICBTaGFyZWQv
TmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNw
cAorCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luTW9kdWxl
WDExLmNwcAogCiAgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcApAQCAt
NjcsOSArNzAsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLUG9wdXBNZW51TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS1ZpZXdFZmwuY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0NvbnRleHRTb3Vw
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2llTWFuYWdlclNvdXAuY3BwCi0g
ICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCisgICAgVUlQ
cm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAK
IAogICAgIFVJUHJvY2Vzcy9BUEkvQ29vcmRpbmF0ZWRHcmFwaGljcy9XS0Nvb3JkaW5hdGVkU2Nl
bmUuY3BwCiAKQEAgLTEyNSw2ICsxMjcsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKIAor
ICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKKyAgICBVSVBy
b2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKwogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0
d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCiAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1Bs
dWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0xNjksOCArMTc1LDYgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKICAg
ICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAotICAgIFVJUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKLSAgICBVSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAogICAgIFdlYlByb2Nlc3MvQ29v
a2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlByb2Nlc3MvQ29va2ll
cy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBAIC0yMDMsMTcgKzIwNywxMiBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0
U291cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5j
cHAKLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcAogKQogCiBs
aXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4K
IAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCi0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KLQotICAgIFdlYlByb2Nlc3Mvc291cC9XZWJT
b3VwUmVxdWVzdE1hbmFnZXIubWVzc2FnZXMuaW4KICkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9J
TkNMVURFX0RJUkVDVE9SSUVTCkBAIC0yMjksNiArMjI4LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9l
ZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzIgogICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgogICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291cCIKICAgICAi
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuaAppbmRleCBiYzdiMDU0Li5kM2E0ZGNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTI3MSw3ICsy
NzEsNyBAQCBFQVBJIEV3a19TdG9yYWdlX01hbmFnZXIgKmV3a19jb250ZXh0X3N0b3JhZ2VfbWFu
YWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbgogICogewogICogICAgIGNvbnN0IGNoYXIg
KnBhdGg7CiAgKiAgICAgY2hhciAqY29udGVudHNfZGF0YSA9IE5VTEw7Ci0gKiAgICAgdW5zaWdu
ZWQgaW50IGNvbnRlbnRzX2xlbmd0aCA9IDA7CisgKiAgICAgdW5zaWduZWQgY29udGVudHNfbGVu
Z3RoID0gMDsKICAqCiAgKiAgICAgcGF0aCA9IGV3a191cmxfc2NoZW1lX3JlcXVlc3RfcGF0aF9n
ZXQocmVxdWVzdCk7CiAgKiAgICAgaWYgKCFzdHJjbXAocGF0aCwgInBsdWdpbnMiKSkgewpAQCAt
Mjg0LDcgKzI4NCw3IEBAIEVBUEkgRXdrX1N0b3JhZ2VfTWFuYWdlciAqZXdrX2NvbnRleHRfc3Rv
cmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29uCiAgKiAgICAgICAgIEVpbmFf
U3RyYnVmICpidWYgPSBlaW5hX3N0cmJ1Zl9uZXcoKTsKICAqICAgICAgICAgZWluYV9zdHJidWZf
YXBwZW5kX3ByaW50ZihidWYsICImbHQ7aHRtbCZndDsmbHQ7Ym9keSZndDsmbHQ7cCZndDtJbnZh
bGlkIGFib3V0OiVzIHBhZ2UmbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDsiLCBw
YXRoKTsKICAqICAgICAgICAgY29udGVudHNfZGF0YSA9IGVpbmFfc3RyYnVmX3N0cmluZ19zdGVh
bChidWYpOwotICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJsZW4oY29udGVudHMpOwor
ICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJsZW4oY29udGVudHNfZGF0YSk7CiAgKiAg
ICAgICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmKTsKICAqICAgICB9CiAgKiAgICAgZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgY29udGVudHNfZGF0YSwgY29udGVudHNfbGVu
Z3RoLCAidGV4dC9odG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggMTcyOWM0YS4uZjQwMzY1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
X3ByaXZhdGUuaApAQCAtMTE2LDcgKzExNiw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0OjpEb3dubG9hZE1hbmFnZXJFZmw+IG1fZG93bmxvYWRNYW5hZ2Vy
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsPiBt
X3JlcXVlc3RNYW5hZ2VyQ2xpZW50OwotCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6Q29u
dGV4dEhpc3RvcnlDbGllbnRFZmw+IG1faGlzdG9yeUNsaWVudDsKIAogICAgIEpTR2xvYmFsQ29u
dGV4dFJlZiBtX2pzR2xvYmFsQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKaW5kZXggOTlm
ZjI3NC4uZjRiOTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAgLTI5LDE3ICsyOSwyMCBA
QAogI2luY2x1ZGUgIldLRGF0YS5oIgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V0tVUkwuaCIKKyNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5o
IgorCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a1VybFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJl
cXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tVUkxSZWYgdXJsLCB1aW50
NjRfdCByZXF1ZXN0SUQpCitFd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tVcmxTY2hlbWVSZXF1ZXN0
KFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgQVBJOjpVUkxS
ZXF1ZXN0KiB1cmxSZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCiAgICAgOiBtX3drUmVxdWVz
dE1hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fdXJsKHVybCkKICAgICAsIG1fcmVxdWVzdElEKHJl
cXVlc3RJRCkKLSAgICAsIG1fc2NoZW1lKEFkb3B0V0ssIFdLVVJMQ29weVNjaGVtZSh1cmwpKQot
ICAgICwgbV9wYXRoKEFkb3B0V0ssIFdLVVJMQ29weVBhdGgodXJsKSkKIHsKKyAgICBXS1VSTFJl
ZiB1cmwgPSB0b0NvcGllZFVSTEFQSSh1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKS51cmwo
KSk7CisgICAgbV91cmwgPSBXS0VpbmFTaGFyZWRTdHJpbmcodXJsKTsKKyAgICBtX3NjaGVtZSA9
IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1VSTENvcHlTY2hlbWUodXJsKSk7CisgICAg
bV9wYXRoID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLVVJMQ29weVBhdGgodXJsKSk7
CiB9CiAKIHVpbnQ2NF90IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmlkKCkgY29uc3QKQEAgLTY4LDcg
KzcxLDEzIEBAIHZvaWQgRXdrVXJsU2NoZW1lUmVxdWVzdDo6ZmluaXNoKGNvbnN0IHZvaWQqIGNv
bnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IHdrTWltZVR5cGUgPSBtaW1lVHlwZSA/IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcobWltZVR5cGUpKSA6IDA7CiAKICAgICAvLyBJbiBjYXNlIG9mIGVtcHR5IHJl
cGx5IGFuIGVtcHR5IFdLRGF0YVJlZiBpcyBzZW50IHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIFdL
U291cFJlcXVlc3RNYW5hZ2VyRGlkSGFuZGxlVVJJUmVxdWVzdChtX3drUmVxdWVzdE1hbmFnZXIu
Z2V0KCksIHdrRGF0YS5nZXQoKSwgY29udGVudExlbmd0aCwgd2tNaW1lVHlwZS5nZXQoKSwgbV9y
ZXF1ZXN0SUQpOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UoV2ViQ29y
ZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KG1fdXJsKSksCisgICAgICAg
IFN0cmluZzo6ZnJvbVVURjgobWltZVR5cGUpLCBjb250ZW50TGVuZ3RoLCBlbXB0eVN0cmluZygp
KTsKKworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0KCkpLT5kaWRSZWNlaXZlUmVz
cG9uc2UobV9yZXF1ZXN0SUQsIHJlc3BvbnNlKTsKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5h
Z2VyLmdldCgpKS0+ZGlkTG9hZERhdGEobV9yZXF1ZXN0SUQsIHRvSW1wbCh3a0RhdGEuZ2V0KCkp
KTsKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+ZGlkRmluaXNoTG9hZGlu
ZyhtX3JlcXVlc3RJRCk7CisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSktPnN0
b3BMb2FkaW5nKG1fcmVxdWVzdElEKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3VybF9zY2hlbWVf
cmVxdWVzdF9zY2hlbWVfZ2V0KGNvbnN0IEV3a19VcmxfU2NoZW1lX1JlcXVlc3QqIHJlcXVlc3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Nj
aGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDA1MTQ3MzguLjlhNDA0Yzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0zMCw3ICszMCw3IEBACiAj
aW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5j
bHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNsdWRlICJXS1NvdXBSZXF1ZXN0TWFuYWdlci5oIgor
I2luY2x1ZGUgIldLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAogLyoqCkBAIC00MSwxMiArNDEsMTIgQEAgY2xhc3Mg
RXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3QgewogcHVibGljOgogICAgIEVX
S19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cFJlcXVlc3RNYW5hZ2VyUmVm
IG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwg
dWludDY0X3QgcmVxdWVzdElEKQogICAgIHsKLSAgICAgICAgaWYgKCFtYW5hZ2VyIHx8ICF1cmwp
CisgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKICAgICAgICAgICAgIHJldHVy
biAwOwogCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJsU2NoZW1lUmVxdWVzdCht
YW5hZ2VyLCB1cmwsIHJlcXVlc3RJRCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3
a1VybFNjaGVtZVJlcXVlc3QobWFuYWdlciwgdXJsUmVxdWVzdCwgcmVxdWVzdElEKSk7CiAgICAg
fQogCiAgICAgdWludDY0X3QgaWQoKSBjb25zdDsKQEAgLTU3LDkgKzU3LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgZmluaXNoKGNvbnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50
TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSk7CiAKIHByaXZhdGU6Ci0gICAgRXdrVXJsU2No
ZW1lUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmxS
ZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgRXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVzdCog
dXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKTsKIAotICAgIFdLUmV0YWluUHRyPFdLU291
cFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3drUmVxdWVzdE1hbmFnZXI7CisgICAgV0tSZXRhaW5QdHI8
V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4gbV93a1JlcXVlc3RNYW5hZ2Vy
OwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VybDsKICAgICB1aW50NjRfdCBtX3JlcXVlc3RJ
RDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9zY2hlbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5j
cHAKaW5kZXggM2YxNDcwYS4uNWRlMzU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcApAQCAt
MTE1LDggKzExNSw4IEBAIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0X3N0b3Jh
Z2VfbWFuYWdlcl9nZXQpCiAKIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0X3Vy
bF9zY2hlbWVfcmVnaXN0ZXIpCiB7Ci0jaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTCkKLSAgICBl
d2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZp
ZXcoKSksICJmb29zY2hlbWUiLCBzY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIDApOworI2lmIEVOQUJM
RShDVVNUT01fUFJPVE9DT0xTKQorICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIo
ZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVtZVJlcXVl
c3RDYWxsYmFjaywgbnVsbHB0cik7CiAgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksICJm
b29zY2hlbWU6TXlQYXRoIik7CiAKICAgICBBU1NFUlRfVFJVRSh3YWl0VW50aWxUcnVlKGZpbmlz
aFRlc3QsIHRlc3RUaW1lb3V0U2Vjb25kcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIu
Y3BwCmluZGV4IGFkNzNhZDQuLjU5ZTI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
ci5jcHAKQEAgLTMxLDYgKzMxLDggQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxX
ZWJDb3JlL0Vycm9yc0d0ay5oPgorI2VsaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgPFdlYkNv
cmUvRXJyb3JzRWZsLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
Y3BwCmluZGV4IDA2ZTFhOWYuLmY0NjgyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCkBAIC0yNiw1OCAr
MjYsNTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXF1ZXN0TWFuYWdlckNs
aWVudEVmbC5oIgogCi0jaW5jbHVkZSAiV0tDb250ZXh0U291cC5oIgotI2luY2x1ZGUgIldLU291
cFJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotc3RydWN0IEV3a1VybFNjaGVtZUhhbmRsZXIgewotICAgIEV3a19VcmxfU2NoZW1l
X1JlcXVlc3RfQ2IgY2FsbGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7Ci0KLSAgICBFd2tVcmxT
Y2hlbWVIYW5kbGVyKCkKLSAgICAgICAgOiBjYWxsYmFjaygwKQotICAgICAgICAsIHVzZXJEYXRh
KDApCi0gICAgeyB9Ci0KLSAgICBFd2tVcmxTY2hlbWVIYW5kbGVyKEV3a19VcmxfU2NoZW1lX1Jl
cXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQotICAgICAgICA6IGNhbGxiYWNrKGNh
bGxiYWNrKQotICAgICAgICAsIHVzZXJEYXRhKHVzZXJEYXRhKQotICAgIHsgfQotfTsKLQogc3Rh
dGljIGlubGluZSBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogdG9SZXF1ZXN0TWFuYWdlckNsaWVu
dEVmbChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
IH0KIAotdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3Qo
V0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiB1
cmxSZWYsIFdLUGFnZVJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQotewotICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiByZXF1ZXN0TWFuYWdlciA9IHRv
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0KLSAgICBSZWZQdHI8RXdrVXJs
U2NoZW1lUmVxdWVzdD4gc2NoZW1lUmVxdWVzdCA9IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0
ZShzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIHVybFJlZiwgcmVxdWVzdElEKTsKLSAgICBFd2tVcmxT
Y2hlbWVIYW5kbGVyIGhhbmRsZXIgPSByZXF1ZXN0TWFuYWdlci0+bV91cmxTY2hlbWVIYW5kbGVy
cy5nZXQoc2NoZW1lUmVxdWVzdC0+c2NoZW1lKCkpOwotICAgIGlmICghaGFuZGxlci5jYWxsYmFj
aykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaGFuZGxlci5jYWxsYmFjayhzY2hlbWVSZXF1ZXN0
LmdldCgpLCBoYW5kbGVyLnVzZXJEYXRhKTsKLX0KLQogUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6
OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0KQotICAgIDogbV9z
b3VwUmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHQp
KQogeworICAgIG1fcmVxdWVzdE1hbmFnZXIgPSB0b0FQSSh0b0ltcGwoY29udGV4dCktPnN1cHBs
ZW1lbnQ8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCkpOwogICAgIEFTU0VS
VChtX3NvdXBSZXF1ZXN0TWFuYWdlcik7CiAKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVu
dFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50LCAwLCBzaXplb2YoV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOworICAgIFdL
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCB3a1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50OworICAgIG1lbXNldCgmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCwgMCwgc2l6ZW9mKFdL
U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOwogCiAgICAgd2tSZXF1
ZXN0TWFuYWdlckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwogICAgIHdrUmVxdWVzdE1hbmFnZXJD
bGllbnQuYmFzZS5jbGllbnRJbmZvID0gdGhpczsKLSAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50
LmRpZFJlY2VpdmVVUklSZXF1ZXN0ID0gZGlkUmVjZWl2ZVVSSVJlcXVlc3Q7CisgICAgd2tSZXF1
ZXN0TWFuYWdlckNsaWVudC5zdGFydExvYWRpbmcgPSBzdGFydExvYWRpbmc7CisgICAgd2tSZXF1
ZXN0TWFuYWdlckNsaWVudC5zdG9wTG9hZGluZyA9IHN0b3BMb2FkaW5nOwogCi0gICAgV0tTb3Vw
UmVxdWVzdE1hbmFnZXJTZXRDbGllbnQobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksICZ3a1Jl
cXVlc3RNYW5hZ2VyQ2xpZW50LmJhc2UpOworICAgIFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXJTZXRDbGllbnQobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1hbmFn
ZXJDbGllbnQuYmFzZSk7Cit9CisKK3ZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0YXJ0
TG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIHVp
bnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBjbGll
bnQgPSB0b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNsaWVudEluZm8pOworICAgIFJlZlB0cjxF
d2tVcmxTY2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRl
KG1hbmFnZXIsIHRvSW1wbChyZXF1ZXN0UmVmKSwgY3VzdG9tUHJvdG9jb2xJRCk7CisgICAgU3Ry
aW5nIHNjaGVtZShTdHJpbmc6OmZyb21VVEY4KHJlcXVlc3QuZ2V0KCktPnNjaGVtZSgpKSk7Cisg
ICAgUmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+IGhhbmRsZXIgPSAoY2xpZW50LT5tX3Vy
aVNjaGVtZUhhbmRsZXJzKS5nZXQoc2NoZW1lKTsKKyAgICBBU1NFUlQoaGFuZGxlci5nZXQoKSk7
CisgICAgaWYgKCFoYW5kbGVyLT5oYXNDYWxsYmFjaygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICAoY2xpZW50LT5tX3VyaVNjaGVtZVJlcXVlc3RzKS5zZXQoY3VzdG9tUHJvdG9jb2xJRCwgcmVx
dWVzdCk7CisgICAgaGFuZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3QuZ2V0KCkpOworfQor
Cit2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdG9wTG9hZGluZyhXS1NvdXBDdXN0b21Q
cm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29s
SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwqIGNsaWVudCA9IHRvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7CisgICAg
KGNsaWVudC0+bV91cmlTY2hlbWVSZXF1ZXN0cykucmVtb3ZlKGN1c3RvbVByb3RvY29sSUQpOwog
fQogCiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCkK
QEAgLTg4LDggKzgwLDkgQEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJV
UkxTY2hlbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2sKIHsKICAgICBBU1NFUlQo
Y2FsbGJhY2spOwogCi0gICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxT
Y2hlbWVIYW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5h
Z2VyUmVnaXN0ZXJVUklTY2hlbWUobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksIGFkb3B0V0so
dG9Db3BpZWRBUEkoc2NoZW1lKSkuZ2V0KCkpOworICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVI
YW5kbGVyPiBoYW5kbGVyID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2Fs
bGJhY2ssIHVzZXJEYXRhKSk7CisgICAgbV91cmlTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBo
YW5kbGVyKTsKKyAgICB0b0ltcGwobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSktPnJlZ2lzdGVyU2No
ZW1lRm9yQ3VzdG9tUHJvdG9jb2woc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2Vy
Q2xpZW50RWZsLmgKaW5kZXggYzkwNDlmNi4uNzMyMDZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaApAQCAtMjYs
NyArMjYsMTEgQEAKICNpZm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmluZSBS
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5j
bHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJl
d2tfY29udGV4dF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9w
cml2YXRlLmgiCisKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM0LDE4ICszOCw1
OSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViS2l0VVJJU2NoZW1lSGFuZGxl
cjogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4geworcHVibGljOgor
ICAgIFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoKQorICAgICAgICA6IG1fY2FsbGJhY2sobnVsbHB0
cikKKyAgICAgICAgLCBtX3VzZXJEYXRhKG51bGxwdHIpCisgICAgeworICAgIH0KKyAgICBXZWJL
aXRVUklTY2hlbWVIYW5kbGVyKEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ssIHZv
aWQqIHVzZXJEYXRhKQorICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAgICAgICwg
bV91c2VyRGF0YSh1c2VyRGF0YSkKKyAgICB7CisgICAgfQorCisgICAgfldlYktpdFVSSVNjaGVt
ZUhhbmRsZXIoKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGhhc0NhbGxiYWNrKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2NhbGxiYWNrOworICAgIH0KKworICAgIHZvaWQgcGVyZm9ybUNh
bGxiYWNrKEV3a1VybFNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCisgICAgeworICAgICAgICBBU1NF
UlQobV9jYWxsYmFjayk7CisKKyAgICAgICAgbV9jYWxsYmFjayhyZXF1ZXN0LCBtX3VzZXJEYXRh
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBtX2Nh
bGxiYWNrOworICAgIHZvaWQqIG1fdXNlckRhdGE7Cit9OworCit0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4gPiBVUklTY2hlbWVIYW5kbGVyTWFw
OwordHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4g
PiBVUklTY2hlbWVSZXF1ZXN0TWFwOworCiBjbGFzcyBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0
UmVmKTsKICAgICB+UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoKTsKIAogICAgIHZvaWQgcmVnaXN0
ZXJVUkxTY2hlbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSk7CisgICAgUGFzc1JlZlB0cjxXZWJL
aXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVyRnJvbVNjaGVtZShTdHJpbmcgc2NoZW1lKSB7IHJl
dHVybiAgbV91cmlTY2hlbWVIYW5kbGVycy5nZXQoc2NoZW1lKTsgfTsKIAogcHJpdmF0ZToKICAg
ICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJl
ZiwgV0tVUkxSZWYsIFdLUGFnZVJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBzdGFydExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgV0tVUkxS
ZXF1ZXN0UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9w
TG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmLCB1aW50NjRfdCBj
dXN0b21Qcm90b2NvbElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotICAgIFdLUmV0YWlu
UHRyPFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3NvdXBSZXF1ZXN0TWFuYWdlcjsKLSAgICBI
YXNoTWFwPFN0cmluZywgY2xhc3MgRXdrVXJsU2NoZW1lSGFuZGxlcj4gbV91cmxTY2hlbWVIYW5k
bGVyczsKKyAgICBXS1JldGFpblB0cjxXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
UmVmPiBtX3JlcXVlc3RNYW5hZ2VyOworICAgIFVSSVNjaGVtZUhhbmRsZXJNYXAgbV91cmlTY2hl
bWVIYW5kbGVyczsKKyAgICBVUklTY2hlbWVSZXF1ZXN0TWFwIG1fdXJpU2NoZW1lUmVxdWVzdHM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCmluZGV4IDM4YzZhZTEuLjRkOTE2MGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8RWZyZWV0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2ViQ29udGV4
dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhCiB7CiAgICAgaW5pdGlhbGl6ZUluc3BlY3RvclNlcnZlcigpOwogCi0gICAgcGFy
YW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZCA9IHN1cHBsZW1lbnQ8V2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHk+KCktPnJlZ2lzdGVyZWRVUklTY2hlbWVzKCk7CisgICAgcGFyYW1ldGVycy51
cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBsZW1lbnQ8V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRTY2hlbWVzRm9yQ3Vz
dG9tUHJvdG9jb2xzKCk7CiAgICAgc3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCkt
PmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0
b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSk7CiAgICAg
cGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0
UG9saWN5OwogICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVUTFNFcnJv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5j
cHAKaW5kZXggNDNlZTY3MS4uN2IyMjEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApAQCAtNDAsOSArNDAsNyBAQCB2b2lkIFdlYkNv
bnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZQogICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0
aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9y
cyA9IG1faWdub3JlVExTRXJyb3JzOwogICAgIHBhcmFtZXRlcnMubGFuZ3VhZ2VzID0gV2ViQ29y
ZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xT
KQogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMg
PSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpLT5yZWdp
c3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOwotI2VuZGlmCiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UKaW5kZXggZTY5MmE0NC4uMDUyNTk1YyAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UK
QEAgLTMwOCw1ICszMDgsNyBAQCBpZiAoRU5BQkxFX0ZUTF9KSVQpCiAgICAgc2V0KEhBVkVfTExW
TSBPTikKIGVuZGlmICgpCiAKK2FkZF9kZWZpbml0aW9ucygtREVOQUJMRV9DVVNUT01fUFJPVE9D
T0xTPTEpCisKICMgW0VdV2ViS2l0MiB0ZXN0cyBuZWVkIGEgaGludCB0byBmaW5kIG91dCB3aGVy
ZSBwcm9jZXNzZXMgc3VjaCBhcyBXZWJQcm9jZXNzIGFyZSBsb2NhdGVkIGF0LgogYWRkX2RlZmlu
aXRpb25zKC1EV0VCS0lUX0VYRUNfUEFUSD1cIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNU
T1JZfVwiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDVlOGVkMjkuLjM0NGUyNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wOS0zMCAgUGFzY2FsIEphY3F1
ZW1hcnQgIDxwLmphY3F1ZW1hcnRAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxl
IGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1c3RvbVByb3RvY29scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIGEgZHVtbXkgIm1pbmlicm93
c2VyLWFib3V0IiBzY2hlbWUgYXMgcGVyIEdUSyBwb3J0CisgICAgICAgIFNvIHdlIGNhbiBtYWtl
IHN1cmUgdGhlIEFQSSB3b24ndCBicmVhayBhbnltb3JlCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jOgorICAgICAgICAoZWxtX21haW4pOgorCiAyMDE0LTA5LTMwICBUaWJvciBN
ZXN6YXJvcyAgPHRtZXN6YXJvcy51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFtFRkxdIEJ1bXAgRUZMIHZlcnNpb24gdG8gMS4xMS4yCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRl
eCBlNTVhY2RiLi41MTBmMTJhIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFp
bi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTcwLDYgKzcwLDM1IEBA
IHN0YXRpYyBFaW5hX0Jvb2wgbGVnYWN5X2JlaGF2aW9yX2VuYWJsZWQgPSBFSU5BX0ZBTFNFOwog
Ly8gVGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxhIEZpcmVm
b3ggMy4KIGNvbnN0IHN0YXRpYyBmbG9hdCB6b29tTGV2ZWxzW10gPSB7MC4zLCAwLjUsIDAuNjcs
IDAuOCwgMC45LCAxLjAsIDEuMSwgMS4yLCAxLjMzLCAxLjUsIDEuNywgMi4wLCAyLjQsIDMuMH07
CiAKKy8vIEltcGxlbWVudGluZyBhYm91dCBzY2hlbWUKK3N0YXRpYyBjb25zdCBjaGFyIE1JTklC
Uk9XU0VSX0FCT1VUX1NDSEVNRVtdID0gIm1pbmlicm93c2VyLWFib3V0IjsKK3N0YXRpYyB2b2lk
IGFib3V0X3VybF9zY2hlbWVfcmVxdWVzdF9jYihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICpyZXF1
ZXN0LCB2b2lkICp1c2VyX2RhdGEpCit7CisgICAgY29uc3QgY2hhciAqdXJsOworICAgIGNoYXIg
KmNvbnRlbnRzX2RhdGEgPSBOVUxMOworICAgIHVuc2lnbmVkIGNvbnRlbnRzX2xlbmd0aCA9IDA7
CisKKyAgICB1cmwgPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3VybF9nZXQocmVxdWVzdCk7Cisg
ICAgaWYgKHN0cnN0cih1cmwsICJwbHVnaW5zIikpIHsKKyAgICAgICAgLy8gRklYTUU6CisgICAg
ICAgIC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiBwbHVn
aW5zIGFib3V0IHBhZ2UsIGFuZCBzZXQgaXRzIGxlbmd0aCB0byBjb250ZW50c19sZW5ndGgKKyAg
ICB9IGVsc2UgaWYgKHN0cnN0cih1cmwsICJtZW1vcnkiKSkgeworICAgICAgICAvLyBGSVhNRToK
KyAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9m
IG1lbW9yeSBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3Ro
CisgICAgfSBlbHNlIGlmIChzdHJzdHIodXJsLCAiYXBwbGljYXRpb25zIikpIHsKKyAgICAgICAg
Ly8gRklYTUU6CisgICAgICAgIC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0YSB3aXRoIHRoZSBj
b250ZW50cyBvZiBhcHBsaWNhdGlvbiBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8g
Y29udGVudHNfbGVuZ3RoCisgICAgfSBlbHNlIHsKKyAgICAgICAgRWluYV9TdHJidWYgKmJ1ZiA9
IGVpbmFfc3RyYnVmX25ldygpOworICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1
ZiwgIjxodG1sPjxib2R5PjxwPkludmFsaWQgJXMgcGFnZTwvcD48L2JvZHk+PC9odG1sPiIsIHVy
bCk7CisgICAgICAgIGNvbnRlbnRzX2RhdGEgPSBlaW5hX3N0cmJ1Zl9zdHJpbmdfc3RlYWwoYnVm
KTsKKyAgICAgICAgY29udGVudHNfbGVuZ3RoID0gc3RybGVuKGNvbnRlbnRzX2RhdGEpOworICAg
ICAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1Zik7CisgICAgfQorICAgIGV3a191cmxfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKHJlcXVlc3QsIGNvbnRlbnRzX2RhdGEsIGNvbnRlbnRzX2xlbmd0aCwgInRl
eHQvaHRtbCIpOworICAgIGZyZWUoY29udGVudHNfZGF0YSk7Cit9CisKIHN0YXRpYyBFaW5hX0Jv
b2wKIHpvb21fbGV2ZWxfc2V0KEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCBpbnQgbGV2ZWwpCiB7CkBA
IC0yMzUwLDYgKzIzNzksOCBAQCBlbG1fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAg
IGlmICh3aW5kb3dfc2l6ZV9zdHJpbmcpCiAgICAgICAgIHBhcnNlX3dpbmRvd19zaXplKHdpbmRv
d19zaXplX3N0cmluZywgJndpbmRvd193aWR0aCwgJndpbmRvd19oZWlnaHQpOwogCisgICAgZXdr
X2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3Rlcihjb250ZXh0LCBNSU5JQlJPV1NFUl9BQk9VVF9T
Q0hFTUUsIGFib3V0X3VybF9zY2hlbWVfcmVxdWVzdF9jYiwgTlVMTCk7CisKICAgICBpZiAoYXJn
cyA8IGFyZ2MpIHsKICAgICAgICAgY2hhciAqdXJsID0gdXJsX2Zyb21fdXNlcl9pbnB1dChhcmd2
W2FyZ3NdKTsKICAgICAgICAgd2luZG93ID0gd2luZG93X2NyZWF0ZShOVUxMLCAwLCAwKTsKLS0g
CjEuNy4xMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239101</attachid>
            <date>2014-10-02 03:59:36 -0700</date>
            <delta_ts>2014-10-02 05:46:03 -0700</delta_ts>
            <desc>After Gyuyoung review</desc>
            <filename>0001-EFL-Enable-custom-URI-schemes-with-CustomProtocols.patch</filename>
            <type>text/plain</type>
            <size>24755</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSA3YzI4NzIyMTk4OWFlOWVjNzZhMmMxMzUwZTRhYjNkMTIzOTcyMGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBUaHUsIDIgT2N0IDIwMTQgMTE6NDQ6MTEgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBbRUZMXSBFbmFibGUgY3VzdG9tIFVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCgot
LS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzUgKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
ICAgICAgICAgICAgICAgICAgIHwgICAxOCArKystLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0LmggICAgIHwgICAyNCArKystLS0tLQogLi4uL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaCAgICAgICAgfCAgICAxIC0KIC4uLi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcCAgIHwgICAxOSArKysrLS0K
IC4uLi9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oICAgICAgIHwgICAx
MiArKy0tCiAuLi4vVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3Bw
ICB8ICAgIDQgKy0KIC4uLi9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmNwcCAgIHwgICAgMiArCiAuLi4vVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVm
bC5jcHAgICAgICB8ICAgNjUgKysrKysrKysrLS0tLS0tLS0tLS0KIC4uLi9VSVByb2Nlc3MvZWZs
L1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmggICAgICAgIHwgICA1MCArKysrKysrKysrKysrKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAgICAgIHwgICAg
NCArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwICAg
fCAgICAyIC0KIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMiArCiAxNCBmaWxlcyBjaGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgODAgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDljODg3
MzYuLmE3NWY4MjIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNC0xMC0wMiAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxlIGN1c3RvbSBVUkkgc2NoZW1lcyB3
aXRoIEN1c3RvbVByb3RvY29scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI4MTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4aW5nIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoKSBld2Vi
a2l0MiBBUEkKKyAgICAgICAgcmVseSBvbiByMTYyNDQ5IC0gQ3VzdG9tUHJvdG9jb2xzIGltcGxl
bWVudGF0aW9uIGZyb20gQ2FybG9zIEdhcmNpYSBDYW1wb3MKKworICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlOgorCiAyMDE0LTEwLTAxICBNaWNoYWVsIENhdGFuemFybyAg
PG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBCdW1wIHZlcnNpb24gdG8gMi43LjAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyODJmYzUwLi5lNDJlNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTQtMTAtMDIgIFBhc2NhbCBKYWNxdWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0
b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkgZXdlYmtpdDIgQVBJ
CisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3RvbVByb3RvY29scyBpbXBsZW1lbnRhdGlv
biBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFr
ZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcDoKKyAgICAgICAgKEV3a1Vy
bFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJlcXVlc3QpOgorICAgICAgICAoRXdrVXJsU2No
ZW1lUmVxdWVzdDo6ZmluaXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nv
bnRleHQuY3BwOgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
ci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
OjpzdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6RXdrVXJsU2No
ZW1lSGFuZGxlcjo6RXdrVXJsU2NoZW1lSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6aGFuZGxlckZyb21TY2hl
bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorCiAyMDE0
LTEwLTAyICBKaW5Zb3VuZyBIdXIgIDxodXJpbXNAZ21haWwuY29tPgogCiAgICAgICAgIE1pbm9y
IGJ1ZyBpbiBVSUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjA3ZmI2My4uZmQ3OWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTMwLDYgKzMwLDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBT
aGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCisgICAgU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKKyAg
ICBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJTb3VwLmNwcAorCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1
Z2luTW9kdWxlWDExLmNwcAogCiAgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJv
LmNwcApAQCAtNjcsOSArNzAsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBNZW51TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nv
bnRleHRTb3VwLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2llTWFuYWdlclNv
dXAuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlci5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvQ29vcmRpbmF0ZWRHcmFwaGljcy9XS0Nvb3Jk
aW5hdGVkU2NlbmUuY3BwCiAKQEAgLTEyNSw2ICsxMjcsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVm
bC5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAK
KyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKwogICAgIFVJUHJvY2Vzcy9OZXR3b3Jr
L3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCiAKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0xNjksOCArMTc1LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291
cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAot
ICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKLSAgICBV
SVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlByb2Nl
c3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBAIC0yMDMsMTcg
KzIwNywxMiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNw
cAogKQogCiBsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkubWVz
c2FnZXMuaW4KIAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCi0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KLQotICAgIFdlYlByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIubWVzc2FnZXMuaW4KICkKIAogbGlzdChBUFBFTkQg
V2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCkBAIC0yMjksNiArMjI4LDcgQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgogICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291
cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAppbmRleCBiYzdiMDU0Li4xYzY1ZmUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAg
LTI1Nyw3ICsyNTcsNyBAQCBFQVBJIEV3a19TdG9yYWdlX01hbmFnZXIgKmV3a19jb250ZXh0X3N0
b3JhZ2VfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbgogICogV2hlbiBhbiBVUkwg
cmVxdWVzdCB3aXRoIEBhIHNjaGVtZSBpcyBtYWRlIGluIHRoZSAjRXdrX0NvbnRleHQsIHRoZSBj
YWxsYmFjawogICogZnVuY3Rpb24gcHJvdmlkZWQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhICNFd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0LgogICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBVUkwg
c2NoZW1lIHJlcXVlc3RzIGFzeW5jaHJvbm91c2x5LCBieSBjYWxsaW5nIGV3a191cmxfc2NoZW1l
X3JlZigpIG9uIHRoZQorICogSXQgaXMgcG9zc2libGUgdG8gaGFuZGxlIFVSTCBzY2hlbWUgcmVx
dWVzdHMgYXN5bmNocm9ub3VzbHksIGJ5IGNhbGxpbmcgZXdrX29iamVjdF9yZWYoKSBvbiB0aGUK
ICAqICNFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0IGFuZCBjYWxsaW5nIGV3a191cmxfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKCkgbGF0ZXIgd2hlbiB0aGUgZGF0YSBvZgogICogdGhlIHJlcXVlc3QgaXMg
YXZhaWxhYmxlLgogICoKQEAgLTI2NywyNCArMjY3LDIwIEBAIEVBUEkgRXdrX1N0b3JhZ2VfTWFu
YWdlciAqZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAq
Y29uCiAgKiBAcGFyYW0gdXNlcl9kYXRhIGRhdGEgdG8gcGFzcyB0byBjYWxsYmFjayBmdW5jdGlv
bgogICoKICAqIEBjb2RlCi0gKiBzdGF0aWMgdm9pZCBhYm91dF91cmxfc2NoZW1lX3JlcXVlc3Rf
Y2IoRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqcmVxdWVzdCwgdm9pZCAqdXNlcl9kYXRhKQorICog
c3RhdGljIHZvaWQgY3VzdG9tX3VybF9zY2hlbWVfcmVxdWVzdF9jYihFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0ICpyZXF1ZXN0LCB2b2lkICp1c2VyX2RhdGEpCiAgKiB7Ci0gKiAgICAgY29uc3QgY2hh
ciAqcGF0aDsKKyAqICAgICBjb25zdCBjaGFyICpzY2hlbWU7CiAgKiAgICAgY2hhciAqY29udGVu
dHNfZGF0YSA9IE5VTEw7Ci0gKiAgICAgdW5zaWduZWQgaW50IGNvbnRlbnRzX2xlbmd0aCA9IDA7
Ci0gKgotICogICAgIHBhdGggPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhfZ2V0KHJlcXVl
c3QpOwotICogICAgIGlmICghc3RyY21wKHBhdGgsICJwbHVnaW5zIikpIHsKLSAqICAgICAgICAg
Ly8gSW5pdGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9mIHBsdWdpbnMg
YWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAotICogICAg
IH0gZWxzZSBpZiAoIXN0cmNtcChwYXRoLCAibWVtb3J5IikpIHsKLSAqICAgICAgICAgLy8gSW5p
dGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9mIG1lbW9yeSBhYm91dCBw
YWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCi0gKiAgICAgfSBlbHNl
IGlmICghc3RyY21wKHBhdGgsICJhcHBsaWNhdGlvbnMiKSkgewotICogICAgICAgICAvLyBJbml0
aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgYXBwbGljYXRpb24gYWJv
dXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAorICogICAgIHVu
c2lnbmVkIGNvbnRlbnRzX2xlbmd0aCA9IDA7CisgKgorICogICAgIHNjaGVtZSA9IGV3a191cmxf
c2NoZW1lX3JlcXVlc3Rfc2NoZW1lX2dldChyZXF1ZXN0KTsKKyAqICAgICBpZiAoIXN0cmNtcChz
Y2hlbWUsICJteWFwcCIpKSB7CisgKiAgICAgICAgIC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0
YSB3aXRoIGEgd2VsY29tZSBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVu
Z3RoCiAgKiAgICAgfSBlbHNlIHsKICAqICAgICAgICAgRWluYV9TdHJidWYgKmJ1ZiA9IGVpbmFf
c3RyYnVmX25ldygpOwotICogICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1Ziwg
IiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZsdDtwJmd0O0ludmFsaWQgYWJvdXQ6JXMgcGFnZSZs
dDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyIsIHBhdGgpOworICogICAgICAgICBl
aW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1ZiwgIiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZs
dDtwJmd0O0ludmFsaWQgYXBwbGljYXRpb246ICVzJmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7
L2h0bWwmZ3Q7Iiwgc2NoZW1lKTsKICAqICAgICAgICAgY29udGVudHNfZGF0YSA9IGVpbmFfc3Ry
YnVmX3N0cmluZ19zdGVhbChidWYpOwotICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJs
ZW4oY29udGVudHMpOworICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJsZW4oY29udGVu
dHNfZGF0YSk7CiAgKiAgICAgICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmKTsKICAqICAgICB9CiAg
KiAgICAgZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgY29udGVudHNfZGF0
YSwgY29udGVudHNfbGVuZ3RoLCAidGV4dC9odG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggMTcyOWM0
YS4uZjQwMzY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaApAQCAtMTE2LDcgKzExNiw2IEBAIHByaXZhdGU6CiAj
ZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEb3dubG9hZE1hbmFnZXJFZmw+IG1f
ZG93bmxvYWRNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsPiBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50OwotCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYktpdDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmw+IG1faGlzdG9yeUNsaWVudDsKIAog
ICAgIEpTR2xvYmFsQ29udGV4dFJlZiBtX2pzR2xvYmFsQ29udGV4dDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVz
dC5jcHAKaW5kZXggOTlmZjI3NC4uZjRiOTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAg
LTI5LDE3ICsyOSwyMCBAQAogI2luY2x1ZGUgIldLRGF0YS5oIgogI2luY2x1ZGUgIldLU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlci5oIgorCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2
YXRlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a1VybFNjaGVtZVJlcXVlc3Q6
OkV3a1VybFNjaGVtZVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tV
UkxSZWYgdXJsLCB1aW50NjRfdCByZXF1ZXN0SUQpCitFd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tV
cmxTY2hlbWVSZXF1ZXN0KFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFu
YWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCiAg
ICAgOiBtX3drUmVxdWVzdE1hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fdXJsKHVybCkKICAgICAs
IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKLSAgICAsIG1fc2NoZW1lKEFkb3B0V0ssIFdLVVJMQ29w
eVNjaGVtZSh1cmwpKQotICAgICwgbV9wYXRoKEFkb3B0V0ssIFdLVVJMQ29weVBhdGgodXJsKSkK
IHsKKyAgICBXS1VSTFJlZiB1cmwgPSB0b0NvcGllZFVSTEFQSSh1cmxSZXF1ZXN0LT5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSk7CisgICAgbV91cmwgPSBXS0VpbmFTaGFyZWRTdHJpbmcodXJsKTsK
KyAgICBtX3NjaGVtZSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1VSTENvcHlTY2hl
bWUodXJsKSk7CisgICAgbV9wYXRoID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLVVJM
Q29weVBhdGgodXJsKSk7CiB9CiAKIHVpbnQ2NF90IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmlkKCkg
Y29uc3QKQEAgLTY4LDcgKzcxLDEzIEBAIHZvaWQgRXdrVXJsU2NoZW1lUmVxdWVzdDo6ZmluaXNo
KGNvbnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoCiAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrTWltZVR5cGUgPSBtaW1lVHlwZSA/IGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobWltZVR5cGUpKSA6IDA7CiAKICAgICAvLyBJbiBj
YXNlIG9mIGVtcHR5IHJlcGx5IGFuIGVtcHR5IFdLRGF0YVJlZiBpcyBzZW50IHRvIHRoZSBXZWJQ
cm9jZXNzLgotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyRGlkSGFuZGxlVVJJUmVxdWVzdChtX3dr
UmVxdWVzdE1hbmFnZXIuZ2V0KCksIHdrRGF0YS5nZXQoKSwgY29udGVudExlbmd0aCwgd2tNaW1l
VHlwZS5nZXQoKSwgbV9yZXF1ZXN0SUQpOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KG1f
dXJsKSksCisgICAgICAgIFN0cmluZzo6ZnJvbVVURjgobWltZVR5cGUpLCBjb250ZW50TGVuZ3Ro
LCBlbXB0eVN0cmluZygpKTsKKworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0KCkp
LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9yZXF1ZXN0SUQsIHJlc3BvbnNlKTsKKyAgICB0b0ltcGwo
bV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+ZGlkTG9hZERhdGEobV9yZXF1ZXN0SUQsIHRvSW1w
bCh3a0RhdGEuZ2V0KCkpKTsKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+
ZGlkRmluaXNoTG9hZGluZyhtX3JlcXVlc3RJRCk7CisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFu
YWdlci5nZXQoKSktPnN0b3BMb2FkaW5nKG1fcmVxdWVzdElEKTsKIH0KIAogY29uc3QgY2hhciog
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KGNvbnN0IEV3a19VcmxfU2NoZW1lX1Jl
cXVlc3QqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDA1
MTQ3MzguLjlhNDA0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0z
MCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVk
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNsdWRlICJXS1NvdXBSZXF1
ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgIldLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAogLyoqCkBAIC00MSwxMiAr
NDEsMTIgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3Qgewog
cHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cFJl
cXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElE
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1Nv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVz
dCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIHsKLSAgICAgICAgaWYgKCFt
YW5hZ2VyIHx8ICF1cmwpCisgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKICAg
ICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJs
U2NoZW1lUmVxdWVzdChtYW5hZ2VyLCB1cmwsIHJlcXVlc3RJRCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJlcXVlc3QobWFuYWdlciwgdXJsUmVxdWVzdCwgcmVx
dWVzdElEKSk7CiAgICAgfQogCiAgICAgdWludDY0X3QgaWQoKSBjb25zdDsKQEAgLTU3LDkgKzU3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZmluaXNoKGNvbnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1
aW50NjRfdCBjb250ZW50TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSk7CiAKIHByaXZhdGU6
Ci0gICAgRXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2Vy
LCBXS1VSTFJlZiB1cmxSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgRXdrVXJsU2NoZW1l
UmVxdWVzdChXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQ
STo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKTsKIAotICAgIFdL
UmV0YWluUHRyPFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3drUmVxdWVzdE1hbmFnZXI7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4gbV93
a1JlcXVlc3RNYW5hZ2VyOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VybDsKICAgICB1aW50
NjRfdCBtX3JlcXVlc3RJRDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9zY2hlbWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJf
Y29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfY29udGV4dC5jcHAKaW5kZXggM2YxNDcwYS4uNjAyY2M2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9j
b250ZXh0LmNwcApAQCAtMTE1LDEyICsxMTUsMTAgQEAgVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwg
ZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldCkKIAogVEVTVF9GKEVXSzJDb250ZXh0VGVz
dCwgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcikKIHsKLSNpZiBFTkFCTEUoQ1VTVE9N
X1BST1RPQ09MKQotICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoZXdrX3ZpZXdf
Y29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVtZVJlcXVlc3RDYWxsYmFj
aywgMCk7CisgICAgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3Rlcihld2tfdmlld19jb250
ZXh0X2dldCh3ZWJWaWV3KCkpLCAiZm9vc2NoZW1lIiwgc2NoZW1lUmVxdWVzdENhbGxiYWNrLCBu
dWxscHRyKTsKICAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgImZvb3NjaGVtZTpNeVBh
dGgiKTsKIAogICAgIEFTU0VSVF9UUlVFKHdhaXRVbnRpbFRydWUoZmluaXNoVGVzdCwgdGVzdFRp
bWVvdXRTZWNvbmRzKSk7Ci0jZW5kaWYKIH0KIAogVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwgZXdr
X2NvbnRleHRfY2FjaGVfbW9kZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Q
cm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggYWQ3M2FkNC4uNTllMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApA
QCAtMzEsNiArMzEsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUv
RXJyb3JzR3RrLmg+CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJv
cnNFZmwuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKaW5k
ZXggMDZlMWE5Zi4uZjQ2ODI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKQEAgLTI2LDU4ICsyNiw1MCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmgiCiAKLSNpbmNsdWRlICJXS0NvbnRleHRTb3VwLmgiCi0jaW5jbHVkZSAiV0tTb3VwUmVxdWVz
dE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1zdHJ1Y3QgRXdrVXJsU2NoZW1lSGFuZGxlciB7Ci0gICAgRXdrX1VybF9TY2hlbWVfUmVxdWVz
dF9DYiBjYWxsYmFjazsKLSAgICB2b2lkKiB1c2VyRGF0YTsKLQotICAgIEV3a1VybFNjaGVtZUhh
bmRsZXIoKQotICAgICAgICA6IGNhbGxiYWNrKDApCi0gICAgICAgICwgdXNlckRhdGEoMCkKLSAg
ICB7IH0KLQotICAgIEV3a1VybFNjaGVtZUhhbmRsZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9D
YiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCi0gICAgICAgIDogY2FsbGJhY2soY2FsbGJhY2sp
Ci0gICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCi0gICAgeyB9Ci19OwotCiBzdGF0aWMgaW5s
aW5lIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiB0b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi12
b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBS
ZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmIHVybFJlZiwg
V0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIHJlcXVlc3RNYW5hZ2VyID0gdG9SZXF1ZXN0
TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsKLQotICAgIFJlZlB0cjxFd2tVcmxTY2hlbWVS
ZXF1ZXN0PiBzY2hlbWVSZXF1ZXN0ID0gRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKHNvdXBS
ZXF1ZXN0TWFuYWdlclJlZiwgdXJsUmVmLCByZXF1ZXN0SUQpOwotICAgIEV3a1VybFNjaGVtZUhh
bmRsZXIgaGFuZGxlciA9IHJlcXVlc3RNYW5hZ2VyLT5tX3VybFNjaGVtZUhhbmRsZXJzLmdldChz
Y2hlbWVSZXF1ZXN0LT5zY2hlbWUoKSk7Ci0gICAgaWYgKCFoYW5kbGVyLmNhbGxiYWNrKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBoYW5kbGVyLmNhbGxiYWNrKHNjaGVtZVJlcXVlc3QuZ2V0KCks
IGhhbmRsZXIudXNlckRhdGEpOwotfQotCiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVz
dE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0UmVmIGNvbnRleHQpCi0gICAgOiBtX3NvdXBSZXF1
ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIoY29udGV4dCkpCiB7Cisg
ICAgbV9yZXF1ZXN0TWFuYWdlciA9IHRvQVBJKHRvSW1wbChjb250ZXh0KS0+c3VwcGxlbWVudDxX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKSk7CiAgICAgQVNTRVJUKG1fc291
cFJlcXVlc3RNYW5hZ2VyKTsKIAotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tS
ZXF1ZXN0TWFuYWdlckNsaWVudDsKLSAgICBtZW1zZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQs
IDAsIHNpemVvZihXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwKSk7CisgICAgV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7
CisgICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LCAwLCBzaXplb2YoV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwKSk7CiAKICAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CiAgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5i
YXNlLmNsaWVudEluZm8gPSB0aGlzOwotICAgIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQuZGlkUmVj
ZWl2ZVVSSVJlcXVlc3QgPSBkaWRSZWNlaXZlVVJJUmVxdWVzdDsKKyAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LnN0YXJ0TG9hZGluZyA9IHN0YXJ0TG9hZGluZzsKKyAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LnN0b3BMb2FkaW5nID0gc3RvcExvYWRpbmc7CiAKLSAgICBXS1NvdXBSZXF1ZXN0
TWFuYWdlclNldENsaWVudChtX3NvdXBSZXF1ZXN0TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1h
bmFnZXJDbGllbnQuYmFzZSk7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
clNldENsaWVudChtX3JlcXVlc3RNYW5hZ2VyLmdldCgpLCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVu
dC5iYXNlKTsKK30KKwordm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6c3RhcnRMb2FkaW5n
KFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3Qg
Y3VzdG9tUHJvdG9jb2xJRCwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIGNsaWVudCA9IHRv
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7CisgICAgUmVmUHRyPEV3a1VybFNj
aGVtZVJlcXVlc3Q+IHJlcXVlc3QgPSBFd2tVcmxTY2hlbWVSZXF1ZXN0OjpjcmVhdGUobWFuYWdl
ciwgdG9JbXBsKHJlcXVlc3RSZWYpLCBjdXN0b21Qcm90b2NvbElEKTsKKyAgICBTdHJpbmcgc2No
ZW1lKFN0cmluZzo6ZnJvbVVURjgocmVxdWVzdC5nZXQoKS0+c2NoZW1lKCkpKTsKKyAgICBSZWZQ
dHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4gaGFuZGxlciA9IChjbGllbnQtPm1fdXJpU2NoZW1l
SGFuZGxlcnMpLmdldChzY2hlbWUpOworICAgIEFTU0VSVChoYW5kbGVyLmdldCgpKTsKKyAgICBp
ZiAoIWhhbmRsZXItPmhhc0NhbGxiYWNrKCkpCisgICAgICAgIHJldHVybjsKKworICAgIChjbGll
bnQtPm1fdXJpU2NoZW1lUmVxdWVzdHMpLnNldChjdXN0b21Qcm90b2NvbElELCByZXF1ZXN0KTsK
KyAgICBoYW5kbGVyLT5wZXJmb3JtQ2FsbGJhY2socmVxdWVzdC5nZXQoKSk7Cit9CisKK3ZvaWQg
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0b3BMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogY2xp
ZW50ID0gdG9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsKKyAgICAoY2xpZW50
LT5tX3VyaVNjaGVtZVJlcXVlc3RzKS5yZW1vdmUoY3VzdG9tUHJvdG9jb2xJRCk7CiB9CiAKIFJl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjp+UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoKQpAQCAtODgs
OCArODAsOSBAQCB2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpyZWdpc3RlclVSTFNjaGVt
ZUhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIEV3awogewogICAgIEFTU0VSVChjYWxsYmFj
ayk7CiAKLSAgICBtX3VybFNjaGVtZUhhbmRsZXJzLnNldChzY2hlbWUsIEV3a1VybFNjaGVtZUhh
bmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRhKSk7Ci0gICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWdp
c3RlclVSSVNjaGVtZShtX3NvdXBSZXF1ZXN0TWFuYWdlci5nZXQoKSwgYWRvcHRXSyh0b0NvcGll
ZEFQSShzY2hlbWUpKS5nZXQoKSk7CisgICAgUmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+
IGhhbmRsZXIgPSBhZG9wdFJlZihuZXcgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcihjYWxsYmFjaywg
dXNlckRhdGEpKTsKKyAgICBtX3VyaVNjaGVtZUhhbmRsZXJzLnNldChzY2hlbWUsIGhhbmRsZXIp
OworICAgIHRvSW1wbChtX3JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+cmVnaXN0ZXJTY2hlbWVGb3JD
dXN0b21Qcm90b2NvbChzY2hlbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwuaAppbmRleCBjOTA0OWY2Li4xNmQ1ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCkBAIC0yNiw3ICsyNiwx
MSBAQAogI2lmbmRlZiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbF9oCiAjZGVmaW5lIFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsX2gKIAorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgImV3a19jb250
ZXh0X3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUu
aCIKKwogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMzQsMTggKzM4LDYwIEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJLaXRVUklTY2hlbWVIYW5kbGVyOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiB7CitwdWJsaWM6CisgICAgV2Vi
S2l0VVJJU2NoZW1lSGFuZGxlcigpCisgICAgICAgIDogbV9jYWxsYmFjayhudWxscHRyKQorICAg
ICAgICAsIG1fdXNlckRhdGEobnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgV2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1
c2VyRGF0YSkKKyAgICAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICAgICAsIG1fdXNl
ckRhdGEodXNlckRhdGEpCisgICAgeworICAgIH0KKworICAgIH5XZWJLaXRVUklTY2hlbWVIYW5k
bGVyKCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBoYXNDYWxsYmFjaygpCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jYWxsYmFjazsKKyAgICB9CisKKyAgICB2b2lkIHBlcmZvcm1DYWxsYmFj
ayhFd2tVcmxTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
Y2FsbGJhY2spOworCisgICAgICAgIG1fY2FsbGJhY2socmVxdWVzdCwgbV91c2VyRGF0YSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgbV9jYWxsYmFj
azsKKyAgICB2b2lkKiBtX3VzZXJEYXRhOworfTsKKwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+ID4gVVJJU2NoZW1lSGFuZGxlck1hcDsKK3R5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+ID4gVVJJ
U2NoZW1lUmVxdWVzdE1hcDsKKwogY2xhc3MgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZik7
CiAgICAgflJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJM
U2NoZW1lSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgRXdrX1VybF9TY2hlbWVfUmVxdWVz
dF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpOworICAgIFBhc3NSZWZQdHI8V2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcj4gaGFuZGxlckZyb21TY2hlbWUoU3RyaW5nIHNjaGVtZSkgeyByZXR1cm4g
IG1fdXJpU2NoZW1lSGFuZGxlcnMuZ2V0KHNjaGVtZSk7IH07CiAKIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdL
VVJMUmVmLCBXS1BhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CisgICAgc3RhdGljIHZvaWQgc3RhcnRMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVz
dFJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgc3RvcExvYWRp
bmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9t
UHJvdG9jb2xJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLSAgICBXS1JldGFpblB0cjxX
S1NvdXBSZXF1ZXN0TWFuYWdlclJlZj4gbV9zb3VwUmVxdWVzdE1hbmFnZXI7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIGNsYXNzIEV3a1VybFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcnM7
CisgICAgV0tSZXRhaW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4g
bV9yZXF1ZXN0TWFuYWdlcjsKKyAgICBVUklTY2hlbWVIYW5kbGVyTWFwIG1fdXJpU2NoZW1lSGFu
ZGxlcnM7CisgICAgVVJJU2NoZW1lUmVxdWVzdE1hcCBtX3VyaVNjaGVtZVJlcXVlc3RzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJDb250ZXh0RWZsLmNwcAppbmRleCAzOGM2YWUxLi40ZDkxNjBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKQEAgLTMxLDcgKzMxLDcg
QEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0j
aW5jbHVkZSAiV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTb3Vw
Q3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPEVmcmVldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ljb25EYXRhYmFzZS5oPgpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYQogewogICAgIGluaXRpYWxpemVJbnNwZWN0b3JTZXJ2ZXIoKTsKIAotICAgIHBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5PigpLT5yZWdpc3RlcmVkVVJJU2NoZW1lcygpOworICAgIHBhcmFtZXRlcnMudXJsU2No
ZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0
b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVBy
b3RvY29scygpOwogICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRD
b29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
UGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwogICAgIHBhcmFt
ZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGlj
eTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3JlVExTRXJyb3JzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCmlu
ZGV4IDQzZWU2NzEuLjdiMjIxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJDb250ZXh0U291cC5jcHAKQEAgLTQwLDkgKzQwLDcgQEAgdm9pZCBXZWJDb250ZXh0
OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGUKICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhU
VFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBt
X2lnbm9yZVRMU0Vycm9yczsKICAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IFdlYkNvcmU6OnVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAg
ICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzID0gc3Vw
cGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVnaXN0ZXJl
ZFNjaGVtZXNGb3JDdXN0b21Qcm90b2NvbHMoKTsKLSNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlCmluZGV4IDFkZDE1MDMuLmNjOTM5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0z
MDgsNSArMzA4LDcgQEAgaWYgKEVOQUJMRV9GVExfSklUKQogICAgIHNldChIQVZFX0xMVk0gT04p
CiBlbmRpZiAoKQogCithZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVfQ1VTVE9NX1BST1RPQ09MUz0x
KQorCiAjIFtFXVdlYktpdDIgdGVzdHMgbmVlZCBhIGhpbnQgdG8gZmluZCBvdXQgd2hlcmUgcHJv
Y2Vzc2VzIHN1Y2ggYXMgV2ViUHJvY2VzcyBhcmUgbG9jYXRlZCBhdC4KIGFkZF9kZWZpbml0aW9u
cygtRFdFQktJVF9FWEVDX1BBVEg9XCIke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX1c
IikKLS0gCjEuNy4xMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239104</attachid>
            <date>2014-10-02 05:46:03 -0700</date>
            <delta_ts>2014-10-03 10:38:27 -0700</delta_ts>
            <desc> After Gyuyoung review (v2)</desc>
            <filename>0001-EFL-Enable-custom-URI-schemes-with-CustomProtocols.patch</filename>
            <type>text/plain</type>
            <size>24063</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSA4NTFhMzhkYTRlMTE5OGVjNGY4ZDVmZWZmOWVmNmNmZGVkN2JiYzZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBUaHUsIDIgT2N0IDIwMTQgMTM6MjU6MDcgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBbRUZMXSBFbmFibGUgY3VzdG9tIFVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCgot
LS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzQgKysrKysrKysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2Ug
ICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKy0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuaCAgICAgfCAgIDI0ICsrKy0tLS0tCiAuLi4vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAgICB8ICAgMTkgKysrKy0tCiAuLi4v
QVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCAgICAgICB8ICAgMTIgKyst
LQogLi4uL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCAgfCAg
ICA0ICstCiAuLi4vc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAg
ICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3Bw
ICAgICAgfCAgIDY1ICsrKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5oICAgICAgICB8ICAgNTAgKysrKysrKysrKysrKystCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwICAgICB8ICAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCAgIHwgICAg
MiAtCiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDIgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5Yzg4NzM2Li5h
NzVmODIyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTQtMTAtMDIgIFBhc2NhbCBKYWNxdWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNhbXN1
bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBD
dXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkgZXdlYmtpdDIg
QVBJCisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3RvbVByb3RvY29scyBpbXBsZW1lbnRh
dGlvbiBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZToKKwogMjAxNC0xMC0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0
YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVtcCB2ZXJzaW9uIHRvIDIuNy4wCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMjgyZmM1MC4uZGI5YzlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisy
MDE0LTEwLTAyICBQYXNjYWwgSmFjcXVlbWFydCAgPHAuamFjcXVlbWFydEBzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXSBFbmFibGUgY3VzdG9tIFVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJv
dG9jb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjgxNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXhpbmcgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpIGV3ZWJraXQyIEFQSQorICAg
ICAgICByZWx5IG9uIHIxNjI0NDkgLSBDdXN0b21Qcm90b2NvbHMgaW1wbGVtZW50YXRpb24gZnJv
bSBDYXJsb3MgR2FyY2lhIENhbXBvcworCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcDoKKyAgICAgICAgKEV3a1Vy
bFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVtZVJlcXVlc3QpOgorICAgICAgICAoRXdrVXJsU2No
ZW1lUmVxdWVzdDo6ZmluaXNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nv
bnRleHQuY3BwOgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
ci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
OjpzdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6c3RvcExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6RXdrVXJsU2No
ZW1lSGFuZGxlcjo6RXdrVXJsU2NoZW1lSGFuZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6aGFuZGxlckZyb21TY2hl
bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorCiAyMDE0
LTEwLTAyICBKaW5Zb3VuZyBIdXIgIDxodXJpbXNAZ21haWwuY29tPgogCiAgICAgICAgIE1pbm9y
IGJ1ZyBpbiBVSUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjA3ZmI2My4uZmQ3OWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTMwLDYgKzMwLDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBT
aGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCisgICAgU2hhcmVkL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1wbC5jcHAKKyAg
ICBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJTb3VwLmNwcAorCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1
Z2luTW9kdWxlWDExLmNwcAogCiAgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJv
LmNwcApAQCAtNjcsOSArNzAsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBNZW51TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nv
bnRleHRTb3VwLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2llTWFuYWdlclNv
dXAuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1hbmFnZXIuY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlci5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvQ29vcmRpbmF0ZWRHcmFwaGljcy9XS0Nvb3Jk
aW5hdGVkU2NlbmUuY3BwCiAKQEAgLTEyNSw2ICsxMjcsMTAgQEAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVm
bC5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAK
KyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKwogICAgIFVJUHJvY2Vzcy9OZXR3b3Jr
L3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCiAKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0xNjksOCArMTc1LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291
cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAot
ICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKLSAgICBV
SVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlByb2Nl
c3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBAIC0yMDMsMTcg
KzIwNywxMiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL3Nv
dXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJL
aXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAogICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNw
cAogKQogCiBsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkubWVz
c2FnZXMuaW4KIAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCi0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KLQotICAgIFdlYlByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIubWVzc2FnZXMuaW4KICkKIAogbGlzdChBUFBFTkQg
V2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCkBAIC0yMjksNiArMjI4LDcgQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgogICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291
cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAppbmRleCBiYzdiMDU0Li4xYzY1ZmUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKQEAg
LTI1Nyw3ICsyNTcsNyBAQCBFQVBJIEV3a19TdG9yYWdlX01hbmFnZXIgKmV3a19jb250ZXh0X3N0
b3JhZ2VfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbgogICogV2hlbiBhbiBVUkwg
cmVxdWVzdCB3aXRoIEBhIHNjaGVtZSBpcyBtYWRlIGluIHRoZSAjRXdrX0NvbnRleHQsIHRoZSBj
YWxsYmFjawogICogZnVuY3Rpb24gcHJvdmlkZWQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhICNFd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0LgogICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBVUkwg
c2NoZW1lIHJlcXVlc3RzIGFzeW5jaHJvbm91c2x5LCBieSBjYWxsaW5nIGV3a191cmxfc2NoZW1l
X3JlZigpIG9uIHRoZQorICogSXQgaXMgcG9zc2libGUgdG8gaGFuZGxlIFVSTCBzY2hlbWUgcmVx
dWVzdHMgYXN5bmNocm9ub3VzbHksIGJ5IGNhbGxpbmcgZXdrX29iamVjdF9yZWYoKSBvbiB0aGUK
ICAqICNFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0IGFuZCBjYWxsaW5nIGV3a191cmxfc2NoZW1lX3Jl
cXVlc3RfZmluaXNoKCkgbGF0ZXIgd2hlbiB0aGUgZGF0YSBvZgogICogdGhlIHJlcXVlc3QgaXMg
YXZhaWxhYmxlLgogICoKQEAgLTI2NywyNCArMjY3LDIwIEBAIEVBUEkgRXdrX1N0b3JhZ2VfTWFu
YWdlciAqZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAq
Y29uCiAgKiBAcGFyYW0gdXNlcl9kYXRhIGRhdGEgdG8gcGFzcyB0byBjYWxsYmFjayBmdW5jdGlv
bgogICoKICAqIEBjb2RlCi0gKiBzdGF0aWMgdm9pZCBhYm91dF91cmxfc2NoZW1lX3JlcXVlc3Rf
Y2IoRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqcmVxdWVzdCwgdm9pZCAqdXNlcl9kYXRhKQorICog
c3RhdGljIHZvaWQgY3VzdG9tX3VybF9zY2hlbWVfcmVxdWVzdF9jYihFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0ICpyZXF1ZXN0LCB2b2lkICp1c2VyX2RhdGEpCiAgKiB7Ci0gKiAgICAgY29uc3QgY2hh
ciAqcGF0aDsKKyAqICAgICBjb25zdCBjaGFyICpzY2hlbWU7CiAgKiAgICAgY2hhciAqY29udGVu
dHNfZGF0YSA9IE5VTEw7Ci0gKiAgICAgdW5zaWduZWQgaW50IGNvbnRlbnRzX2xlbmd0aCA9IDA7
Ci0gKgotICogICAgIHBhdGggPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhfZ2V0KHJlcXVl
c3QpOwotICogICAgIGlmICghc3RyY21wKHBhdGgsICJwbHVnaW5zIikpIHsKLSAqICAgICAgICAg
Ly8gSW5pdGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9mIHBsdWdpbnMg
YWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAotICogICAg
IH0gZWxzZSBpZiAoIXN0cmNtcChwYXRoLCAibWVtb3J5IikpIHsKLSAqICAgICAgICAgLy8gSW5p
dGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9mIG1lbW9yeSBhYm91dCBw
YWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCi0gKiAgICAgfSBlbHNl
IGlmICghc3RyY21wKHBhdGgsICJhcHBsaWNhdGlvbnMiKSkgewotICogICAgICAgICAvLyBJbml0
aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgYXBwbGljYXRpb24gYWJv
dXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAorICogICAgIHVu
c2lnbmVkIGNvbnRlbnRzX2xlbmd0aCA9IDA7CisgKgorICogICAgIHNjaGVtZSA9IGV3a191cmxf
c2NoZW1lX3JlcXVlc3Rfc2NoZW1lX2dldChyZXF1ZXN0KTsKKyAqICAgICBpZiAoIXN0cmNtcChz
Y2hlbWUsICJteWFwcCIpKSB7CisgKiAgICAgICAgIC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0
YSB3aXRoIGEgd2VsY29tZSBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVu
Z3RoCiAgKiAgICAgfSBlbHNlIHsKICAqICAgICAgICAgRWluYV9TdHJidWYgKmJ1ZiA9IGVpbmFf
c3RyYnVmX25ldygpOwotICogICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1Ziwg
IiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZsdDtwJmd0O0ludmFsaWQgYWJvdXQ6JXMgcGFnZSZs
dDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyIsIHBhdGgpOworICogICAgICAgICBl
aW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1ZiwgIiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZs
dDtwJmd0O0ludmFsaWQgYXBwbGljYXRpb246ICVzJmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7
L2h0bWwmZ3Q7Iiwgc2NoZW1lKTsKICAqICAgICAgICAgY29udGVudHNfZGF0YSA9IGVpbmFfc3Ry
YnVmX3N0cmluZ19zdGVhbChidWYpOwotICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJs
ZW4oY29udGVudHMpOworICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJsZW4oY29udGVu
dHNfZGF0YSk7CiAgKiAgICAgICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmKTsKICAqICAgICB9CiAg
KiAgICAgZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgY29udGVudHNfZGF0
YSwgY29udGVudHNfbGVuZ3RoLCAidGV4dC9odG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCmlu
ZGV4IDk5ZmYyNzQuLmY0YjkwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCkBAIC0yOSwxNyAr
MjksMjAgQEAKICNpbmNsdWRlICJXS0RhdGEuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2lu
Y2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1h
bmFnZXIuaCIKKwogI2luY2x1ZGUgImV3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1Fd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tVcmxT
Y2hlbWVSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVy
bCwgdWludDY0X3QgcmVxdWVzdElEKQorRXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdrVXJsU2NoZW1l
UmVxdWVzdChXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQ
STo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIDogbV93
a1JlcXVlc3RNYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX3VybCh1cmwpCiAgICAgLCBtX3JlcXVl
c3RJRChyZXF1ZXN0SUQpCi0gICAgLCBtX3NjaGVtZShBZG9wdFdLLCBXS1VSTENvcHlTY2hlbWUo
dXJsKSkKLSAgICAsIG1fcGF0aChBZG9wdFdLLCBXS1VSTENvcHlQYXRoKHVybCkpCiB7CisgICAg
V0tVUkxSZWYgdXJsID0gdG9Db3BpZWRVUkxBUEkodXJsUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0
KCkudXJsKCkpOworICAgIG1fdXJsID0gV0tFaW5hU2hhcmVkU3RyaW5nKHVybCk7CisgICAgbV9z
Y2hlbWUgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tVUkxDb3B5U2NoZW1lKHVybCkp
OworICAgIG1fcGF0aCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1VSTENvcHlQYXRo
KHVybCkpOwogfQogCiB1aW50NjRfdCBFd2tVcmxTY2hlbWVSZXF1ZXN0OjppZCgpIGNvbnN0CkBA
IC02OCw3ICs3MSwxMyBAQCB2b2lkIEV3a1VybFNjaGVtZVJlcXVlc3Q6OmZpbmlzaChjb25zdCB2
b2lkKiBjb250ZW50RGF0YSwgdWludDY0X3QgY29udGVudExlbmd0aAogICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiB3a01pbWVUeXBlID0gbWltZVR5cGUgPyBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKG1pbWVUeXBlKSkgOiAwOwogCiAgICAgLy8gSW4gY2FzZSBvZiBl
bXB0eSByZXBseSBhbiBlbXB0eSBXS0RhdGFSZWYgaXMgc2VudCB0byB0aGUgV2ViUHJvY2Vzcy4K
LSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckRpZEhhbmRsZVVSSVJlcXVlc3QobV93a1JlcXVlc3RN
YW5hZ2VyLmdldCgpLCB3a0RhdGEuZ2V0KCksIGNvbnRlbnRMZW5ndGgsIHdrTWltZVR5cGUuZ2V0
KCksIG1fcmVxdWVzdElEKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOChtX3VybCkpLAor
ICAgICAgICBTdHJpbmc6OmZyb21VVEY4KG1pbWVUeXBlKSwgY29udGVudExlbmd0aCwgZW1wdHlT
dHJpbmcoKSk7CisKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKG1fcmVxdWVzdElELCByZXNwb25zZSk7CisgICAgdG9JbXBsKG1fd2tSZXF1
ZXN0TWFuYWdlci5nZXQoKSktPmRpZExvYWREYXRhKG1fcmVxdWVzdElELCB0b0ltcGwod2tEYXRh
LmdldCgpKSk7CisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSktPmRpZEZpbmlz
aExvYWRpbmcobV9yZXF1ZXN0SUQpOworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0
KCkpLT5zdG9wTG9hZGluZyhtX3JlcXVlc3RJRCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a191cmxf
c2NoZW1lX3JlcXVlc3Rfc2NoZW1lX2dldChjb25zdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0KiBy
ZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCAwNTE0NzM4Li45
YTQwNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5o
IgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCi0jaW5jbHVkZSAiV0tTb3VwUmVxdWVzdE1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAKIC8qKgpAQCAtNDEsMTIgKzQxLDEyIEBA
IGNsYXNzIEV3a1VybFNjaGVtZVJlcXVlc3QgOiBwdWJsaWMgRXdrT2JqZWN0IHsKIHB1YmxpYzoK
ICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsU2NoZW1lUmVxdWVzdCkKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBSZXF1ZXN0TWFu
YWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmwsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUoV0tTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVSTFJlcXVlc3QqIHVybFJl
cXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICB7Ci0gICAgICAgIGlmICghbWFuYWdlciB8
fCAhdXJsKQorICAgICAgICBpZiAoIW1hbmFnZXIgfHwgIXVybFJlcXVlc3QpCiAgICAgICAgICAg
ICByZXR1cm4gMDsKIAotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJl
cXVlc3QobWFuYWdlciwgdXJsLCByZXF1ZXN0SUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJlcXVlc3RJRCkp
OwogICAgIH0KIAogICAgIHVpbnQ2NF90IGlkKCkgY29uc3Q7CkBAIC01Nyw5ICs1Nyw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZpbmlzaChjb25zdCB2b2lkKiBjb250ZW50RGF0YSwgdWludDY0X3Qg
Y29udGVudExlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpOwogCiBwcml2YXRlOgotICAgIEV3
a1VybFNjaGVtZVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tVUkxS
ZWYgdXJsUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQpOworICAgIEV3a1VybFNjaGVtZVJlcXVlc3Qo
V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVSTFJl
cXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKLSAgICBXS1JldGFpblB0
cjxXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZj4gbV93a1JlcXVlc3RNYW5hZ2VyOworICAgIFdLUmV0
YWluUHRyPFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWY+IG1fd2tSZXF1ZXN0
TWFuYWdlcjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV91cmw7CiAgICAgdWludDY0X3QgbV9y
ZXF1ZXN0SUQ7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fc2NoZW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nv
bnRleHQuY3BwCmluZGV4IDNmMTQ3MGEuLjYwMmNjNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5j
cHAKQEAgLTExNSwxMiArMTE1LDEwIEBAIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19jb250
ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQpCiAKIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19j
b250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIpCiB7Ci0jaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NP
TCkKLSAgICBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKGV3a192aWV3X2NvbnRleHRf
Z2V0KHdlYlZpZXcoKSksICJmb29zY2hlbWUiLCBzY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIDApOwor
ICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoZXdrX3ZpZXdfY29udGV4dF9nZXQo
d2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVtZVJlcXVlc3RDYWxsYmFjaywgbnVsbHB0cik7
CiAgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksICJmb29zY2hlbWU6TXlQYXRoIik7CiAK
ICAgICBBU1NFUlRfVFJVRSh3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RUaW1lb3V0U2Vj
b25kcykpOwotI2VuZGlmCiB9CiAKIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3a19jb250ZXh0
X2NhY2hlX21vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IGFkNzNh
ZDQuLjU5ZTI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTMxLDYg
KzMxLDggQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0d0
ay5oPgorI2VsaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgPFdlYkNvcmUvRXJyb3JzRWZsLmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCmluZGV4IDA2ZTFh
OWYuLmY0NjgyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCkBAIC0yNiw1OCArMjYsNTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oIgogCi0j
aW5jbHVkZSAiV0tDb250ZXh0U291cC5oIgotI2luY2x1ZGUgIldLU291cFJlcXVlc3RNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a191cmxf
c2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0
IEV3a1VybFNjaGVtZUhhbmRsZXIgewotICAgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2Fs
bGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7Ci0KLSAgICBFd2tVcmxTY2hlbWVIYW5kbGVyKCkK
LSAgICAgICAgOiBjYWxsYmFjaygwKQotICAgICAgICAsIHVzZXJEYXRhKDApCi0gICAgeyB9Ci0K
LSAgICBFd2tVcmxTY2hlbWVIYW5kbGVyKEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJh
Y2ssIHZvaWQqIHVzZXJEYXRhKQotICAgICAgICA6IGNhbGxiYWNrKGNhbGxiYWNrKQotICAgICAg
ICAsIHVzZXJEYXRhKHVzZXJEYXRhKQotICAgIHsgfQotfTsKLQogc3RhdGljIGlubGluZSBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbCogdG9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXF1ZXN0TWFuYWdlckNs
aWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAotdm9pZCBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1h
bmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiB1cmxSZWYsIFdLUGFnZVJl
ZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFJl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiByZXF1ZXN0TWFuYWdlciA9IHRvUmVxdWVzdE1hbmFnZXJD
bGllbnRFZmwoY2xpZW50SW5mbyk7Ci0KLSAgICBSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4g
c2NoZW1lUmVxdWVzdCA9IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZShzb3VwUmVxdWVzdE1h
bmFnZXJSZWYsIHVybFJlZiwgcmVxdWVzdElEKTsKLSAgICBFd2tVcmxTY2hlbWVIYW5kbGVyIGhh
bmRsZXIgPSByZXF1ZXN0TWFuYWdlci0+bV91cmxTY2hlbWVIYW5kbGVycy5nZXQoc2NoZW1lUmVx
dWVzdC0+c2NoZW1lKCkpOwotICAgIGlmICghaGFuZGxlci5jYWxsYmFjaykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaGFuZGxlci5jYWxsYmFjayhzY2hlbWVSZXF1ZXN0LmdldCgpLCBoYW5kbGVy
LnVzZXJEYXRhKTsKLX0KLQogUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2Vy
Q2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0KQotICAgIDogbV9zb3VwUmVxdWVzdE1hbmFn
ZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHQpKQogeworICAgIG1fcmVx
dWVzdE1hbmFnZXIgPSB0b0FQSSh0b0ltcGwoY29udGV4dCktPnN1cHBsZW1lbnQ8V2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCkpOwogICAgIEFTU0VSVChtX3NvdXBSZXF1ZXN0
TWFuYWdlcik7CiAKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVxdWVzdE1h
bmFnZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LCAwLCBzaXpl
b2YoV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOworICAgIFdLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50OworICAgIG1l
bXNldCgmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCwgMCwgc2l6ZW9mKFdLU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOwogCiAgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVu
dC5iYXNlLnZlcnNpb24gPSAwOwogICAgIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQuYmFzZS5jbGll
bnRJbmZvID0gdGhpczsKLSAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmRpZFJlY2VpdmVVUklS
ZXF1ZXN0ID0gZGlkUmVjZWl2ZVVSSVJlcXVlc3Q7CisgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVu
dC5zdGFydExvYWRpbmcgPSBzdGFydExvYWRpbmc7CisgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVu
dC5zdG9wTG9hZGluZyA9IHN0b3BMb2FkaW5nOwogCi0gICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJT
ZXRDbGllbnQobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksICZ3a1JlcXVlc3RNYW5hZ2VyQ2xp
ZW50LmJhc2UpOworICAgIFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJTZXRDbGll
bnQobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1hbmFnZXJDbGllbnQuYmFzZSk7
Cit9CisKK3ZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0YXJ0TG9hZGluZyhXS1NvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGN1c3RvbVBy
b3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBjbGllbnQgPSB0b1JlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKGNsaWVudEluZm8pOworICAgIFJlZlB0cjxFd2tVcmxTY2hlbWVSZXF1
ZXN0PiByZXF1ZXN0ID0gRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKG1hbmFnZXIsIHRvSW1w
bChyZXF1ZXN0UmVmKSwgY3VzdG9tUHJvdG9jb2xJRCk7CisgICAgU3RyaW5nIHNjaGVtZShTdHJp
bmc6OmZyb21VVEY4KHJlcXVlc3QuZ2V0KCktPnNjaGVtZSgpKSk7CisgICAgUmVmUHRyPFdlYktp
dFVSSVNjaGVtZUhhbmRsZXI+IGhhbmRsZXIgPSAoY2xpZW50LT5tX3VyaVNjaGVtZUhhbmRsZXJz
KS5nZXQoc2NoZW1lKTsKKyAgICBBU1NFUlQoaGFuZGxlci5nZXQoKSk7CisgICAgaWYgKCFoYW5k
bGVyLT5oYXNDYWxsYmFjaygpKQorICAgICAgICByZXR1cm47CisKKyAgICAoY2xpZW50LT5tX3Vy
aVNjaGVtZVJlcXVlc3RzKS5zZXQoY3VzdG9tUHJvdG9jb2xJRCwgcmVxdWVzdCk7CisgICAgaGFu
ZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3QuZ2V0KCkpOworfQorCit2b2lkIFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsOjpzdG9wTG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIGNsaWVudCA9IHRv
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7CisgICAgKGNsaWVudC0+bV91cmlT
Y2hlbWVSZXF1ZXN0cykucmVtb3ZlKGN1c3RvbVByb3RvY29sSUQpOwogfQogCiBSZXF1ZXN0TWFu
YWdlckNsaWVudEVmbDo6flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCkKQEAgLTg4LDggKzgwLDkg
QEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVy
KGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2sKIHsKICAgICBBU1NFUlQoY2FsbGJhY2spOwogCi0g
ICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxTY2hlbWVIYW5kbGVyKGNh
bGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVnaXN0ZXJVUklT
Y2hlbWUobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksIGFkb3B0V0sodG9Db3BpZWRBUEkoc2No
ZW1lKSkuZ2V0KCkpOworICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVy
ID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRh
KSk7CisgICAgbV91cmlTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBoYW5kbGVyKTsKKyAgICB0
b0ltcGwobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSktPnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJv
dG9jb2woc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKaW5k
ZXggYzkwNDlmNi4uMTZkNTgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaApAQCAtMjYsNyArMjYsMTEgQEAKICNp
Zm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmluZSBSZXF1ZXN0TWFuYWdlckNs
aWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2
YXRlLmgiCisjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgiCisKICNp
bmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM0LDE4ICszOCw2MCBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcjogcHVibGljIFJlZkNv
dW50ZWQ8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4geworcHVibGljOgorICAgIFdlYktpdFVSSVNj
aGVtZUhhbmRsZXIoKQorICAgICAgICA6IG1fY2FsbGJhY2sobnVsbHB0cikKKyAgICAgICAgLCBt
X3VzZXJEYXRhKG51bGxwdHIpCisgICAgeworICAgIH0KKworICAgIFdlYktpdFVSSVNjaGVtZUhh
bmRsZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEp
CisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAgICAgLCBtX3VzZXJEYXRhKHVz
ZXJEYXRhKQorICAgIHsKKyAgICB9CisKKyAgICB+V2ViS2l0VVJJU2NoZW1lSGFuZGxlcigpCisg
ICAgeworICAgIH0KKworICAgIGJvb2wgaGFzQ2FsbGJhY2soKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fY2FsbGJhY2s7CisgICAgfQorCisgICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2soRXdrVXJs
U2NoZW1lUmVxdWVzdCogcmVxdWVzdCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NhbGxiYWNr
KTsKKworICAgICAgICBtX2NhbGxiYWNrKHJlcXVlc3QsIG1fdXNlckRhdGEpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIG1fY2FsbGJhY2s7CisgICAg
dm9pZCogbV91c2VyRGF0YTsKK307CisKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxX
ZWJLaXRVUklTY2hlbWVIYW5kbGVyPiA+IFVSSVNjaGVtZUhhbmRsZXJNYXA7Cit0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiA+IFVSSVNjaGVtZVJl
cXVlc3RNYXA7CisKIGNsYXNzIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChXS0NvbnRleHRSZWYpOwogICAgIH5S
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbCgpOwogCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUhh
bmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2Fs
bGJhY2ssIHZvaWQqIHVzZXJEYXRhKTsKKyAgICBQYXNzUmVmUHRyPFdlYktpdFVSSVNjaGVtZUhh
bmRsZXI+IGhhbmRsZXJGcm9tU2NoZW1lKFN0cmluZyBzY2hlbWUpIHsgcmV0dXJuICBtX3VyaVNj
aGVtZUhhbmRsZXJzLmdldChzY2hlbWUpOyB9OwogCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVVUklSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiwg
V0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
ICAgIHN0YXRpYyB2b2lkIHN0YXJ0TG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyUmVmLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBXS1VSTFJlcXVlc3RSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIHN0b3BMb2FkaW5nKFdLU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29s
SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi0gICAgV0tSZXRhaW5QdHI8V0tTb3VwUmVx
dWVzdE1hbmFnZXJSZWY+IG1fc291cFJlcXVlc3RNYW5hZ2VyOwotICAgIEhhc2hNYXA8U3RyaW5n
LCBjbGFzcyBFd2tVcmxTY2hlbWVIYW5kbGVyPiBtX3VybFNjaGVtZUhhbmRsZXJzOworICAgIFdL
UmV0YWluUHRyPFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWY+IG1fcmVxdWVz
dE1hbmFnZXI7CisgICAgVVJJU2NoZW1lSGFuZGxlck1hcCBtX3VyaVNjaGVtZUhhbmRsZXJzOwor
ICAgIFVSSVNjaGVtZVJlcXVlc3RNYXAgbV91cmlTY2hlbWVSZXF1ZXN0czsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29u
dGV4dEVmbC5jcHAKaW5kZXggMzhjNmFlMS4uNGQ5MTYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yU2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IldlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlIDxFZnJlZXQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29u
RGF0YWJhc2UuaD4KQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsK
ICAgICBpbml0aWFsaXplSW5zcGVjdG9yU2VydmVyKCk7CiAKLSAgICBwYXJhbWV0ZXJzLnVybFNj
aGVtZXNSZWdpc3RlcmVkID0gc3VwcGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eT4o
KS0+cmVnaXN0ZXJlZFVSSVNjaGVtZXMoKTsKKyAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdp
c3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzID0gc3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVnaXN0ZXJlZFNjaGVtZXNGb3JDdXN0b21Qcm90b2NvbHMo
KTsKICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29va2llUGVy
c2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBhdGgsIHBh
cmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKICAgICBwYXJhbWV0ZXJzLmNv
b2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAg
cGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcAppbmRleCA0M2Vl
NjcxLi43YjIyMTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJDb250ZXh0U291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2Vi
Q29udGV4dFNvdXAuY3BwCkBAIC00MCw5ICs0MCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
CiAgICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kgPSBtX2luaXRpYWxIVFRQQ29va2ll
QWNjZXB0UG9saWN5OwogICAgIHBhcmFtZXRlcnMuaWdub3JlVExTRXJyb3JzID0gbV9pZ25vcmVU
TFNFcnJvcnM7CiAgICAgcGFyYW1ldGVycy5sYW5ndWFnZXMgPSBXZWJDb3JlOjp1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKCk7Ci0jaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCiAgICAgcGFyYW1l
dGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBsZW1lbnQ8
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRTY2hlbWVz
Rm9yQ3VzdG9tUHJvdG9jb2xzKCk7Ci0jZW5kaWYKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpp
bmRleCAxZGQxNTAzLi5jYzkzOWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Vm
bC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMzA4LDUgKzMw
OCw3IEBAIGlmIChFTkFCTEVfRlRMX0pJVCkKICAgICBzZXQoSEFWRV9MTFZNIE9OKQogZW5kaWYg
KCkKIAorYWRkX2RlZmluaXRpb25zKC1ERU5BQkxFX0NVU1RPTV9QUk9UT0NPTFM9MSkKKwogIyBb
RV1XZWJLaXQyIHRlc3RzIG5lZWQgYSBoaW50IHRvIGZpbmQgb3V0IHdoZXJlIHByb2Nlc3NlcyBz
dWNoIGFzIFdlYlByb2Nlc3MgYXJlIGxvY2F0ZWQgYXQuCiBhZGRfZGVmaW5pdGlvbnMoLURXRUJL
SVRfRVhFQ19QQVRIPVwiJHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9XCIpCi0tIAox
LjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239211</attachid>
            <date>2014-10-03 10:38:27 -0700</date>
            <delta_ts>2014-10-07 01:43:18 -0700</delta_ts>
            <desc>After Gyuyoung review (v3)</desc>
            <filename>0001-EFL-Enable-custom-URI-schemes-with-CustomProtocols.patch</filename>
            <type>text/plain</type>
            <size>23888</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSA0OGViNWViNGU2YzcwOTk2OGNmM2E4NWJlMTBmZmQ3NDRiMzg4YzBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBGcmksIDMgT2N0IDIwMTQgMTg6MzQ6MzQgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBbRUZMXSBFbmFibGUgY3VzdG9tLVVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCgot
LS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzMgKysrKysrKysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2Ug
ICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKy0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuaCAgICAgfCAgIDI0ICsrKy0tLS0tCiAuLi4vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAgICB8ICAgMTkgKysrKy0tCiAuLi4v
QVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCAgICAgICB8ICAgMTIgKyst
LQogLi4uL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCAgfCAg
ICA0ICstCiAuLi4vc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAg
ICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3Bw
ICAgICAgfCAgIDY1ICsrKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5oICAgICAgICB8ICAgNTAgKysrKysrKysrKysrKystCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwICAgICB8ICAgIDQgKy0K
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCAgIHwgICAg
MiAtCiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDIgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDgwIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5Yzg4NzM2Li5k
OTI1NjZkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTQtMTAtMDMgIFBhc2NhbCBKYWNxdWVtYXJ0ICA8cC5qYWNxdWVtYXJ0QHNhbXN1
bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0b20gVVJJIHNjaGVtZXMgd2l0aCBD
dXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKCkgZXdlYmtpdDIg
QVBJCisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3RvbVByb3RvY29scyBpbXBsZW1lbnRh
dGlvbiBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZTogRm9yY2luZyBDVVNUT01fUFJPVE9DT0xTIGZsYWcKKwogMjAxNC0x
MC0wMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgQnVtcCB2ZXJzaW9uIHRvIDIuNy4wCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWUwNTJhYi4uYjI4MDJiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTEwLTAzICBQYXNjYWwgSmFjcXVlbWFy
dCAgPHAuamFjcXVlbWFydEBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBFbmFibGUgY3Vz
dG9tIFVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhpbmcgZXdrX2NvbnRleHRfdXJsX3NjaGVt
ZV9yZWdpc3RlcigpIGV3ZWJraXQyIEFQSQorICAgICAgICByZWx5IG9uIHIxNjI0NDkgLSBDdXN0
b21Qcm90b2NvbHMgaW1wbGVtZW50YXRpb24gZnJvbSBDYXJsb3MgR2FyY2lhIENhbXBvcworCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVt
ZV9yZXF1ZXN0LmNwcDoKKyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OkV3a1VybFNjaGVt
ZVJlcXVlc3QpOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6ZmluaXNoKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaDoK
KyAgICAgICAgKEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwOgorICAgICAgICAoVEVTVF9G
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdGFydExvYWRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6c3RvcExvYWRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVy
KToKKyAgICAgICAgKFdlYktpdDo6RXdrVXJsU2NoZW1lSGFuZGxlcjo6RXdrVXJsU2NoZW1lSGFu
ZGxlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
OjpkaWRSZWNlaXZlVVJJUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29udGV4dEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRT
b3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorCiAyMDE0LTEwLTAzICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dUS10gVVJUQkYgYWZ0ZXIgcjE3NDIzMS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMTk4MjYxMC4uNGEzODM2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTMwLDYgKzMwLDkgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VT
CiAKICAgICBTaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogCisgICAgU2hh
cmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VySW1w
bC5jcHAKKyAgICBTaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90
b2NvbE1hbmFnZXJTb3VwLmNwcAorCiAgICAgU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05l
dHNjYXBlUGx1Z2luTW9kdWxlWDExLmNwcAogCiAgICAgU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJp
dG1hcENhaXJvLmNwcApAQCAtNjcsOSArNzAsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBNZW51TGlzdGVuZXIuY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXdFZmwuY3BwCiAKLSAgICBVSVByb2Nlc3MvQVBJL0Mv
c291cC9XS0NvbnRleHRTb3VwLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvQy9zb3VwL1dLQ29va2ll
TWFuYWdlclNvdXAuY3BwCi0gICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwUmVxdWVzdE1h
bmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlci5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9XS0Nvb3JkaW5hdGVkU2NlbmUuY3BwCiAKQEAgLTEyNSw2ICsxMjcsMTAgQEAgbGlzdChBUFBF
TkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NM
YXVuY2hlckVmbC5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9z
b3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3MvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlci5jcHAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKKwogICAgIFVJUHJvY2Vz
cy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCiAKICAgICBVSVByb2Nl
c3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCkBAIC0xNjksOCArMTc1LDYg
QEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJD
b250ZXh0U291cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlT
b3VwLmNwcAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudC5j
cHAKLSAgICBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAg
IFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCkBA
IC0yMDMsMTcgKzIwNywxMiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQ
cm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RHZW5lcmljLmNwcAogICAgIFdlYlByb2Nlc3Mv
c291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAogICAgIFdlYlByb2Nlc3Mvc291
cC9XZWJQcm9jZXNzU291cC5jcHAKLSAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyLmNwcAogKQogCiBsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAg
ICAgVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkubWVzc2FnZXMuaW4KIAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCi0KICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KLQotICAgIFdl
YlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIubWVzc2FnZXMuaW4KICkKIAogbGlz
dChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCkBAIC0yMjksNiArMjI4LDcgQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1NoYXJlZC9BUEkvYy9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvRG93bmxvYWRzL3NvdXAi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3Vw
IgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9T
aGFyZWQvc291cCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3VuaXgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAppbmRleCBiYzdiMDU0Li4x
YzY1ZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
Y29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0LmgKQEAgLTI1Nyw3ICsyNTcsNyBAQCBFQVBJIEV3a19TdG9yYWdlX01hbmFnZXIgKmV3a19j
b250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbgogICogV2hl
biBhbiBVUkwgcmVxdWVzdCB3aXRoIEBhIHNjaGVtZSBpcyBtYWRlIGluIHRoZSAjRXdrX0NvbnRl
eHQsIHRoZSBjYWxsYmFjawogICogZnVuY3Rpb24gcHJvdmlkZWQgd2lsbCBiZSBjYWxsZWQgd2l0
aCBhICNFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0LgogICoKLSAqIEl0IGlzIHBvc3NpYmxlIHRvIGhh
bmRsZSBVUkwgc2NoZW1lIHJlcXVlc3RzIGFzeW5jaHJvbm91c2x5LCBieSBjYWxsaW5nIGV3a191
cmxfc2NoZW1lX3JlZigpIG9uIHRoZQorICogSXQgaXMgcG9zc2libGUgdG8gaGFuZGxlIFVSTCBz
Y2hlbWUgcmVxdWVzdHMgYXN5bmNocm9ub3VzbHksIGJ5IGNhbGxpbmcgZXdrX29iamVjdF9yZWYo
KSBvbiB0aGUKICAqICNFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0IGFuZCBjYWxsaW5nIGV3a191cmxf
c2NoZW1lX3JlcXVlc3RfZmluaXNoKCkgbGF0ZXIgd2hlbiB0aGUgZGF0YSBvZgogICogdGhlIHJl
cXVlc3QgaXMgYXZhaWxhYmxlLgogICoKQEAgLTI2NywyNCArMjY3LDIwIEBAIEVBUEkgRXdrX1N0
b3JhZ2VfTWFuYWdlciAqZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tf
Q29udGV4dCAqY29uCiAgKiBAcGFyYW0gdXNlcl9kYXRhIGRhdGEgdG8gcGFzcyB0byBjYWxsYmFj
ayBmdW5jdGlvbgogICoKICAqIEBjb2RlCi0gKiBzdGF0aWMgdm9pZCBhYm91dF91cmxfc2NoZW1l
X3JlcXVlc3RfY2IoRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqcmVxdWVzdCwgdm9pZCAqdXNlcl9k
YXRhKQorICogc3RhdGljIHZvaWQgY3VzdG9tX3VybF9zY2hlbWVfcmVxdWVzdF9jYihFd2tfVXJs
X1NjaGVtZV9SZXF1ZXN0ICpyZXF1ZXN0LCB2b2lkICp1c2VyX2RhdGEpCiAgKiB7Ci0gKiAgICAg
Y29uc3QgY2hhciAqcGF0aDsKKyAqICAgICBjb25zdCBjaGFyICpzY2hlbWU7CiAgKiAgICAgY2hh
ciAqY29udGVudHNfZGF0YSA9IE5VTEw7Ci0gKiAgICAgdW5zaWduZWQgaW50IGNvbnRlbnRzX2xl
bmd0aCA9IDA7Ci0gKgotICogICAgIHBhdGggPSBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3BhdGhf
Z2V0KHJlcXVlc3QpOwotICogICAgIGlmICghc3RyY21wKHBhdGgsICJwbHVnaW5zIikpIHsKLSAq
ICAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9m
IHBsdWdpbnMgYWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0
aAotICogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChwYXRoLCAibWVtb3J5IikpIHsKLSAqICAgICAg
ICAgLy8gSW5pdGlhbGl6ZSBjb250ZW50c19kYXRhIHdpdGggdGhlIGNvbnRlbnRzIG9mIG1lbW9y
eSBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCi0gKiAg
ICAgfSBlbHNlIGlmICghc3RyY21wKHBhdGgsICJhcHBsaWNhdGlvbnMiKSkgewotICogICAgICAg
ICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgYXBwbGlj
YXRpb24gYWJvdXQgcGFnZSwgYW5kIHNldCBpdHMgbGVuZ3RoIHRvIGNvbnRlbnRzX2xlbmd0aAor
ICogICAgIHVuc2lnbmVkIGNvbnRlbnRzX2xlbmd0aCA9IDA7CisgKgorICogICAgIHNjaGVtZSA9
IGV3a191cmxfc2NoZW1lX3JlcXVlc3Rfc2NoZW1lX2dldChyZXF1ZXN0KTsKKyAqICAgICBpZiAo
IXN0cmNtcChzY2hlbWUsICJteWFwcCIpKSB7CisgKiAgICAgICAgIC8vIEluaXRpYWxpemUgY29u
dGVudHNfZGF0YSB3aXRoIGEgd2VsY29tZSBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29u
dGVudHNfbGVuZ3RoCiAgKiAgICAgfSBlbHNlIHsKICAqICAgICAgICAgRWluYV9TdHJidWYgKmJ1
ZiA9IGVpbmFfc3RyYnVmX25ldygpOwotICogICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJp
bnRmKGJ1ZiwgIiZsdDtodG1sJmd0OyZsdDtib2R5Jmd0OyZsdDtwJmd0O0ludmFsaWQgYWJvdXQ6
JXMgcGFnZSZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0OyIsIHBhdGgpOworICog
ICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJ1ZiwgIiZsdDtodG1sJmd0OyZsdDti
b2R5Jmd0OyZsdDtwJmd0O0ludmFsaWQgYXBwbGljYXRpb246ICVzJmx0Oy9wJmd0OyZsdDsvYm9k
eSZndDsmbHQ7L2h0bWwmZ3Q7Iiwgc2NoZW1lKTsKICAqICAgICAgICAgY29udGVudHNfZGF0YSA9
IGVpbmFfc3RyYnVmX3N0cmluZ19zdGVhbChidWYpOwotICogICAgICAgICBjb250ZW50c19sZW5n
dGggPSBzdHJsZW4oY29udGVudHMpOworICogICAgICAgICBjb250ZW50c19sZW5ndGggPSBzdHJs
ZW4oY29udGVudHNfZGF0YSk7CiAgKiAgICAgICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmKTsKICAq
ICAgICB9CiAgKiAgICAgZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgY29u
dGVudHNfZGF0YSwgY29udGVudHNfbGVuZ3RoLCAidGV4dC9odG1sIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVl
c3QuY3BwCmluZGV4IDk5ZmYyNzQuLmY0YjkwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3BwCkBA
IC0yOSwxNyArMjksMjAgQEAKICNpbmNsdWRlICJXS0RhdGEuaCIKICNpbmNsdWRlICJXS1N0cmlu
Zy5oIgogI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXIuaCIKKwogI2luY2x1ZGUgImV3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJp
dmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1Fd2tVcmxTY2hlbWVSZXF1ZXN0
OjpFd2tVcmxTY2hlbWVSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdL
VVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElEKQorRXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdr
VXJsU2NoZW1lUmVxdWVzdChXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1h
bmFnZXIsIEFQSTo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKQog
ICAgIDogbV93a1JlcXVlc3RNYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX3VybCh1cmwpCiAgICAg
LCBtX3JlcXVlc3RJRChyZXF1ZXN0SUQpCi0gICAgLCBtX3NjaGVtZShBZG9wdFdLLCBXS1VSTENv
cHlTY2hlbWUodXJsKSkKLSAgICAsIG1fcGF0aChBZG9wdFdLLCBXS1VSTENvcHlQYXRoKHVybCkp
CiB7CisgICAgV0tVUkxSZWYgdXJsID0gdG9Db3BpZWRVUkxBUEkodXJsUmVxdWVzdC0+cmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCkpOworICAgIG1fdXJsID0gV0tFaW5hU2hhcmVkU3RyaW5nKHVybCk7
CisgICAgbV9zY2hlbWUgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tVUkxDb3B5U2No
ZW1lKHVybCkpOworICAgIG1fcGF0aCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1VS
TENvcHlQYXRoKHVybCkpOwogfQogCiB1aW50NjRfdCBFd2tVcmxTY2hlbWVSZXF1ZXN0OjppZCgp
IGNvbnN0CkBAIC02OCw3ICs3MSwxMyBAQCB2b2lkIEV3a1VybFNjaGVtZVJlcXVlc3Q6OmZpbmlz
aChjb25zdCB2b2lkKiBjb250ZW50RGF0YSwgdWludDY0X3QgY29udGVudExlbmd0aAogICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a01pbWVUeXBlID0gbWltZVR5cGUgPyBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG1pbWVUeXBlKSkgOiAwOwogCiAgICAgLy8gSW4g
Y2FzZSBvZiBlbXB0eSByZXBseSBhbiBlbXB0eSBXS0RhdGFSZWYgaXMgc2VudCB0byB0aGUgV2Vi
UHJvY2Vzcy4KLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckRpZEhhbmRsZVVSSVJlcXVlc3QobV93
a1JlcXVlc3RNYW5hZ2VyLmdldCgpLCB3a0RhdGEuZ2V0KCksIGNvbnRlbnRMZW5ndGgsIHdrTWlt
ZVR5cGUuZ2V0KCksIG1fcmVxdWVzdElEKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlKFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCht
X3VybCkpLAorICAgICAgICBTdHJpbmc6OmZyb21VVEY4KG1pbWVUeXBlKSwgY29udGVudExlbmd0
aCwgZW1wdHlTdHJpbmcoKSk7CisKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgp
KS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKG1fcmVxdWVzdElELCByZXNwb25zZSk7CisgICAgdG9JbXBs
KG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSktPmRpZExvYWREYXRhKG1fcmVxdWVzdElELCB0b0lt
cGwod2tEYXRhLmdldCgpKSk7CisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFuYWdlci5nZXQoKSkt
PmRpZEZpbmlzaExvYWRpbmcobV9yZXF1ZXN0SUQpOworICAgIHRvSW1wbChtX3drUmVxdWVzdE1h
bmFnZXIuZ2V0KCkpLT5zdG9wTG9hZGluZyhtX3JlcXVlc3RJRCk7CiB9CiAKIGNvbnN0IGNoYXIq
IGV3a191cmxfc2NoZW1lX3JlcXVlc3Rfc2NoZW1lX2dldChjb25zdCBFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0KiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCAw
NTE0NzM4Li45YTQwNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaApAQCAt
MzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJl
ZFN0cmluZy5oIgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCi0jaW5jbHVkZSAiV0tTb3VwUmVx
dWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAKIC8qKgpAQCAtNDEsMTIg
KzQxLDEyIEBAIGNsYXNzIEV3a1VybFNjaGVtZVJlcXVlc3QgOiBwdWJsaWMgRXdrT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrVXJsU2NoZW1lUmVxdWVzdCkKIAot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1NvdXBS
ZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBXS1VSTFJlZiB1cmwsIHVpbnQ2NF90IHJlcXVlc3RJ
RCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxTY2hlbWVSZXF1ZXN0PiBjcmVhdGUoV0tT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBBUEk6OlVSTFJlcXVl
c3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCkKICAgICB7Ci0gICAgICAgIGlmICgh
bWFuYWdlciB8fCAhdXJsKQorICAgICAgICBpZiAoIW1hbmFnZXIgfHwgIXVybFJlcXVlc3QpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a1Vy
bFNjaGVtZVJlcXVlc3QobWFuYWdlciwgdXJsLCByZXF1ZXN0SUQpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tVcmxTY2hlbWVSZXF1ZXN0KG1hbmFnZXIsIHVybFJlcXVlc3QsIHJl
cXVlc3RJRCkpOwogICAgIH0KIAogICAgIHVpbnQ2NF90IGlkKCkgY29uc3Q7CkBAIC01Nyw5ICs1
Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpbmlzaChjb25zdCB2b2lkKiBjb250ZW50RGF0YSwg
dWludDY0X3QgY29udGVudExlbmd0aCwgY29uc3QgY2hhciogbWltZVR5cGUpOwogCiBwcml2YXRl
OgotICAgIEV3a1VybFNjaGVtZVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdl
ciwgV0tVUkxSZWYgdXJsUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQpOworICAgIEV3a1VybFNjaGVt
ZVJlcXVlc3QoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCBB
UEk6OlVSTFJlcXVlc3QqIHVybFJlcXVlc3QsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKLSAgICBX
S1JldGFpblB0cjxXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZj4gbV93a1JlcXVlc3RNYW5hZ2VyOwor
ICAgIFdLUmV0YWluUHRyPFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWY+IG1f
d2tSZXF1ZXN0TWFuYWdlcjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV91cmw7CiAgICAgdWlu
dDY0X3QgbV9yZXF1ZXN0SUQ7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fc2NoZW1lOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2sy
X2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX2NvbnRleHQuY3BwCmluZGV4IDNmMTQ3MGEuLjYwMmNjNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJf
Y29udGV4dC5jcHAKQEAgLTExNSwxMiArMTE1LDEwIEBAIFRFU1RfRihFV0syQ29udGV4dFRlc3Qs
IGV3a19jb250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQpCiAKIFRFU1RfRihFV0syQ29udGV4dFRl
c3QsIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIpCiB7Ci0jaWYgRU5BQkxFKENVU1RP
TV9QUk9UT0NPTCkKLSAgICBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKGV3a192aWV3
X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSksICJmb29zY2hlbWUiLCBzY2hlbWVSZXF1ZXN0Q2FsbGJh
Y2ssIDApOworICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoZXdrX3ZpZXdfY29u
dGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVtZVJlcXVlc3RDYWxsYmFjaywg
bnVsbHB0cik7CiAgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksICJmb29zY2hlbWU6TXlQ
YXRoIik7CiAKICAgICBBU1NFUlRfVFJVRSh3YWl0VW50aWxUcnVlKGZpbmlzaFRlc3QsIHRlc3RU
aW1lb3V0U2Vjb25kcykpOwotI2VuZGlmCiB9CiAKIFRFU1RfRihFV0syQ29udGV4dFRlc3QsIGV3
a19jb250ZXh0X2NhY2hlX21vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwCmlu
ZGV4IGFkNzNhZDQuLjU5ZTI1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAK
QEAgLTMxLDYgKzMxLDggQEAKIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3Jl
L0Vycm9yc0d0ay5oPgorI2VsaWYgUExBVEZPUk0oRUZMKQorI2luY2x1ZGUgPFdlYkNvcmUvRXJy
b3JzRWZsLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCmlu
ZGV4IDA2ZTFhOWYuLmY0NjgyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCkBAIC0yNiw1OCArMjYsNTAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bC5oIgogCi0jaW5jbHVkZSAiV0tDb250ZXh0U291cC5oIgotI2luY2x1ZGUgIldLU291cFJlcXVl
c3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfcHJpdmF0ZS5oIgogI2luY2x1ZGUg
ImV3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotc3RydWN0IEV3a1VybFNjaGVtZUhhbmRsZXIgewotICAgIEV3a19VcmxfU2NoZW1lX1JlcXVl
c3RfQ2IgY2FsbGJhY2s7Ci0gICAgdm9pZCogdXNlckRhdGE7Ci0KLSAgICBFd2tVcmxTY2hlbWVI
YW5kbGVyKCkKLSAgICAgICAgOiBjYWxsYmFjaygwKQotICAgICAgICAsIHVzZXJEYXRhKDApCi0g
ICAgeyB9Ci0KLSAgICBFd2tVcmxTY2hlbWVIYW5kbGVyKEV3a19VcmxfU2NoZW1lX1JlcXVlc3Rf
Q2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQotICAgICAgICA6IGNhbGxiYWNrKGNhbGxiYWNr
KQotICAgICAgICAsIHVzZXJEYXRhKHVzZXJEYXRhKQotICAgIHsgfQotfTsKLQogc3RhdGljIGlu
bGluZSBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogdG9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbChj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZXF1ZXN0
TWFuYWdlckNsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKIH0KIAot
dm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3Vw
UmVxdWVzdE1hbmFnZXJSZWYgc291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiB1cmxSZWYs
IFdLUGFnZVJlZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQot
ewotICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiByZXF1ZXN0TWFuYWdlciA9IHRvUmVxdWVz
dE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7Ci0KLSAgICBSZWZQdHI8RXdrVXJsU2NoZW1l
UmVxdWVzdD4gc2NoZW1lUmVxdWVzdCA9IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZShzb3Vw
UmVxdWVzdE1hbmFnZXJSZWYsIHVybFJlZiwgcmVxdWVzdElEKTsKLSAgICBFd2tVcmxTY2hlbWVI
YW5kbGVyIGhhbmRsZXIgPSByZXF1ZXN0TWFuYWdlci0+bV91cmxTY2hlbWVIYW5kbGVycy5nZXQo
c2NoZW1lUmVxdWVzdC0+c2NoZW1lKCkpOwotICAgIGlmICghaGFuZGxlci5jYWxsYmFjaykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaGFuZGxlci5jYWxsYmFjayhzY2hlbWVSZXF1ZXN0LmdldCgp
LCBoYW5kbGVyLnVzZXJEYXRhKTsKLX0KLQogUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OlJlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0KQotICAgIDogbV9zb3VwUmVx
dWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHQpKQogewor
ICAgIG1fcmVxdWVzdE1hbmFnZXIgPSB0b0FQSSh0b0ltcGwoY29udGV4dCktPnN1cHBsZW1lbnQ8
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCkpOwogICAgIEFTU0VSVChtX3Nv
dXBSZXF1ZXN0TWFuYWdlcik7CiAKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdr
UmVxdWVzdE1hbmFnZXJDbGllbnQ7Ci0gICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50
LCAwLCBzaXplb2YoV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOworICAgIFdLU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50
OworICAgIG1lbXNldCgmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCwgMCwgc2l6ZW9mKFdLU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJDbGllbnRWMCkpOwogCiAgICAgd2tSZXF1ZXN0TWFu
YWdlckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwogICAgIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQu
YmFzZS5jbGllbnRJbmZvID0gdGhpczsKLSAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmRpZFJl
Y2VpdmVVUklSZXF1ZXN0ID0gZGlkUmVjZWl2ZVVSSVJlcXVlc3Q7CisgICAgd2tSZXF1ZXN0TWFu
YWdlckNsaWVudC5zdGFydExvYWRpbmcgPSBzdGFydExvYWRpbmc7CisgICAgd2tSZXF1ZXN0TWFu
YWdlckNsaWVudC5zdG9wTG9hZGluZyA9IHN0b3BMb2FkaW5nOwogCi0gICAgV0tTb3VwUmVxdWVz
dE1hbmFnZXJTZXRDbGllbnQobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksICZ3a1JlcXVlc3RN
YW5hZ2VyQ2xpZW50LmJhc2UpOworICAgIFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXJTZXRDbGllbnQobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1hbmFnZXJDbGll
bnQuYmFzZSk7Cit9CisKK3ZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0YXJ0TG9hZGlu
ZyhXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBjbGllbnQgPSB0
b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNsaWVudEluZm8pOworICAgIFJlZlB0cjxFd2tVcmxT
Y2hlbWVSZXF1ZXN0PiByZXF1ZXN0ID0gRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKG1hbmFn
ZXIsIHRvSW1wbChyZXF1ZXN0UmVmKSwgY3VzdG9tUHJvdG9jb2xJRCk7CisgICAgU3RyaW5nIHNj
aGVtZShTdHJpbmc6OmZyb21VVEY4KHJlcXVlc3QuZ2V0KCktPnNjaGVtZSgpKSk7CisgICAgUmVm
UHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+IGhhbmRsZXIgPSAoY2xpZW50LT5tX3VyaVNjaGVt
ZUhhbmRsZXJzKS5nZXQoc2NoZW1lKTsKKyAgICBBU1NFUlQoaGFuZGxlci5nZXQoKSk7CisgICAg
aWYgKCFoYW5kbGVyLT5oYXNDYWxsYmFjaygpKQorICAgICAgICByZXR1cm47CisKKyAgICAoY2xp
ZW50LT5tX3VyaVNjaGVtZVJlcXVlc3RzKS5zZXQoY3VzdG9tUHJvdG9jb2xJRCwgcmVxdWVzdCk7
CisgICAgaGFuZGxlci0+cGVyZm9ybUNhbGxiYWNrKHJlcXVlc3QuZ2V0KCkpOworfQorCit2b2lk
IFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdG9wTG9hZGluZyhXS1NvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIGNs
aWVudCA9IHRvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY2xpZW50SW5mbyk7CisgICAgKGNsaWVu
dC0+bV91cmlTY2hlbWVSZXF1ZXN0cykucmVtb3ZlKGN1c3RvbVByb3RvY29sSUQpOwogfQogCiBS
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCkKQEAgLTg4
LDggKzgwLDkgQEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxTY2hl
bWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2sKIHsKICAgICBBU1NFUlQoY2FsbGJh
Y2spOwogCi0gICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxTY2hlbWVI
YW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVn
aXN0ZXJVUklTY2hlbWUobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksIGFkb3B0V0sodG9Db3Bp
ZWRBUEkoc2NoZW1lKSkuZ2V0KCkpOworICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5kbGVy
PiBoYW5kbGVyID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJhY2ss
IHVzZXJEYXRhKSk7CisgICAgbV91cmlTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBoYW5kbGVy
KTsKKyAgICB0b0ltcGwobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSktPnJlZ2lzdGVyU2NoZW1lRm9y
Q3VzdG9tUHJvdG9jb2woc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50
RWZsLmgKaW5kZXggYzkwNDlmNi4uN2MzZDA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaApAQCAtMjYsNyArMjYs
MTEgQEAKICNpZm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmluZSBSZXF1ZXN0
TWFuYWdlckNsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAi
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29u
dGV4dF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRl
LmgiCisKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM0LDYgKzM4LDQ0IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJLaXRVUklTY2hlbWVIYW5kbGVyOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJLaXRVUklTY2hlbWVIYW5kbGVyPiB7CitwdWJsaWM6CisgICAgV2Vi
S2l0VVJJU2NoZW1lSGFuZGxlcigpCisgICAgICAgIDogbV9jYWxsYmFjayhudWxscHRyKQorICAg
ICAgICAsIG1fdXNlckRhdGEobnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgV2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1
c2VyRGF0YSkKKyAgICAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICAgICAsIG1fdXNl
ckRhdGEodXNlckRhdGEpCisgICAgeworICAgIH0KKworICAgIH5XZWJLaXRVUklTY2hlbWVIYW5k
bGVyKCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBoYXNDYWxsYmFjaygpCisgICAgeworICAg
ICAgICByZXR1cm4gbV9jYWxsYmFjazsKKyAgICB9CisKKyAgICB2b2lkIHBlcmZvcm1DYWxsYmFj
ayhFd2tVcmxTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
Y2FsbGJhY2spOworCisgICAgICAgIG1fY2FsbGJhY2socmVxdWVzdCwgbV91c2VyRGF0YSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgbV9jYWxsYmFj
azsKKyAgICB2b2lkKiBtX3VzZXJEYXRhOworfTsKKwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRsZXI+ID4gVVJJU2NoZW1lSGFuZGxlck1hcDsKK3R5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+ID4gVVJJ
U2NoZW1lUmVxdWVzdE1hcDsKKwogY2xhc3MgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZik7
CkBAIC00MiwxMCArODQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVI
YW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNh
bGxiYWNrLCB2b2lkKiB1c2VyRGF0YSk7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmLCBXS1Bh
Z2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAg
c3RhdGljIHZvaWQgc3RhcnRMb2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgc3RvcExvYWRpbmcoV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLSAgICBXS1JldGFpblB0cjxXS1NvdXBSZXF1ZXN0
TWFuYWdlclJlZj4gbV9zb3VwUmVxdWVzdE1hbmFnZXI7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIGNs
YXNzIEV3a1VybFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcnM7CisgICAgV0tSZXRh
aW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4gbV9yZXF1ZXN0TWFu
YWdlcjsKKyAgICBVUklTY2hlbWVIYW5kbGVyTWFwIG1fdXJpU2NoZW1lSGFuZGxlcnM7CisgICAg
VVJJU2NoZW1lUmVxdWVzdE1hcCBtX3VyaVNjaGVtZVJlcXVlc3RzOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YkNvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0
RWZsLmNwcAppbmRleCAzOGM2YWUxLi40ZDkxNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2Vi
U291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPEVmcmVldC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRh
YmFzZS5oPgpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogewogICAg
IGluaXRpYWxpemVJbnNwZWN0b3JTZXJ2ZXIoKTsKIAotICAgIHBhcmFtZXRlcnMudXJsU2NoZW1l
c1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5PigpLT5y
ZWdpc3RlcmVkVVJJU2NoZW1lcygpOworICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVy
ZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOwog
ICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0
ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1l
dGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwogICAgIHBhcmFtZXRlcnMuY29va2ll
QWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeTsKICAgICBwYXJh
bWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3JlVExTRXJyb3JzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCmluZGV4IDQzZWU2NzEu
LjdiMjIxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNv
bnRleHRTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250
ZXh0U291cC5jcHAKQEAgLTQwLDkgKzQwLDcgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUlu
aXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGUKICAg
ICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2Nl
cHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vy
cm9yczsKICAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKTsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICBwYXJhbWV0ZXJz
LnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzID0gc3VwcGxlbWVudDxXZWJT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVnaXN0ZXJlZFNjaGVtZXNGb3JD
dXN0b21Qcm90b2NvbHMoKTsKLSNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4
IDFkZDE1MDMuLmNjOTM5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0zMDgsNSArMzA4LDcg
QEAgaWYgKEVOQUJMRV9GVExfSklUKQogICAgIHNldChIQVZFX0xMVk0gT04pCiBlbmRpZiAoKQog
CithZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVfQ1VTVE9NX1BST1RPQ09MUz0xKQorCiAjIFtFXVdl
YktpdDIgdGVzdHMgbmVlZCBhIGhpbnQgdG8gZmluZCBvdXQgd2hlcmUgcHJvY2Vzc2VzIHN1Y2gg
YXMgV2ViUHJvY2VzcyBhcmUgbG9jYXRlZCBhdC4KIGFkZF9kZWZpbml0aW9ucygtRFdFQktJVF9F
WEVDX1BBVEg9XCIke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX1cIikKLS0gCjEuNy4x
MC40Cgo=
</data>
<flag name="review"
          id="263915"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239401</attachid>
            <date>2014-10-07 01:43:18 -0700</date>
            <delta_ts>2014-10-07 23:37:41 -0700</delta_ts>
            <desc>After final review</desc>
            <filename>0001-EFL-Enable-custom-URI-schemes-with-CustomProtocols.patch</filename>
            <type>text/plain</type>
            <size>23909</size>
            <attacher name="Pascal Jacquemart">p.jacquemart</attacher>
            
              <data encoding="base64">RnJvbSBlNmE3Njc1MmFmNWJkMmYwOTc3ODljZTc2NGFjMDFiZTcxNGMzNjE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAicC5qYWNxdWVtYXJ0IiA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcu
Y29tPgpEYXRlOiBGcmksIDMgT2N0IDIwMTQgMTg6MzQ6MzQgKzAxMDAKU3ViamVjdDogW1BBVENI
XSBbRUZMXSBFbmFibGUgY3VzdG9tLVVSSSBzY2hlbWVzIHdpdGggQ3VzdG9tUHJvdG9jb2xzCgot
LS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzMgKysrKysrKysrKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2Ug
ICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKy0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuaCAgICAgfCAgIDI0ICsrKy0tLS0tCiAuLi4vVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAgICB8ICAgMTkgKysrKy0tCiAuLi4v
QVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCAgICAgICB8ICAgMTIgKyst
LQogLi4uL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcCAgfCAg
ICA0ICstCiAuLi4vc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAg
ICB8ICAgIDIgKwogLi4uL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3Bw
ICAgICAgfCAgIDY1ICsrKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5oICAgICAgICB8ICAgNDcgKysrKysrKysrKysrLS0KIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAgICAgIHwgICAgNCArLQog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwICAgfCAgICAy
IC0KIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMiArCiAxMyBmaWxlcyBjaGFuZ2VkLCAxNjIgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDljODg3MzYuLmQ5
MjU2NmQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNC0xMC0wMyAgUGFzY2FsIEphY3F1ZW1hcnQgIDxwLmphY3F1ZW1hcnRAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW0VGTF0gRW5hYmxlIGN1c3RvbSBVUkkgc2NoZW1lcyB3aXRoIEN1
c3RvbVByb3RvY29scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI4MTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4aW5nIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoKSBld2Via2l0MiBB
UEkKKyAgICAgICAgcmVseSBvbiByMTYyNDQ5IC0gQ3VzdG9tUHJvdG9jb2xzIGltcGxlbWVudGF0
aW9uIGZyb20gQ2FybG9zIEdhcmNpYSBDYW1wb3MKKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOiBGb3JjaW5nIENVU1RPTV9QUk9UT0NPTFMgZmxhZworCiAyMDE0LTEw
LTAxICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBCdW1wIHZlcnNpb24gdG8gMi43LjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1ZTA1MmFiLi5iMjgwMmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTQtMTAtMDMgIFBhc2NhbCBKYWNxdWVtYXJ0
ICA8cC5qYWNxdWVtYXJ0QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEVuYWJsZSBjdXN0
b20gVVJJIHNjaGVtZXMgd2l0aCBDdXN0b21Qcm90b2NvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGluZyBld2tfY29udGV4dF91cmxfc2NoZW1l
X3JlZ2lzdGVyKCkgZXdlYmtpdDIgQVBJCisgICAgICAgIHJlbHkgb24gcjE2MjQ0OSAtIEN1c3Rv
bVByb3RvY29scyBpbXBsZW1lbnRhdGlvbiBmcm9tIENhcmxvcyBHYXJjaWEgQ2FtcG9zCisKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1l
X3JlcXVlc3QuY3BwOgorICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6RXdrVXJsU2NoZW1l
UmVxdWVzdCk6CisgICAgICAgIChFd2tVcmxTY2hlbWVSZXF1ZXN0OjpmaW5pc2gpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oOgor
ICAgICAgICAoRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHA6CisgICAgICAgIChURVNUX0Yp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
ZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVxdWVz
dE1hbmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKyAgICAgICAgKFdl
YktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdG9wTG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpyZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpFd2tVcmxTY2hlbWVIYW5kbGVyOjpFd2tVcmxTY2hlbWVIYW5k
bGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6
OmRpZFJlY2VpdmVVUklSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZWZs
L1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJD
b250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNv
dXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzcyk6CisKIDIwMTQtMTAtMDMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBVUlRCRiBhZnRlciByMTc0MjMxLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQppbmRleCAxOTgyNjEwLi40YTM4MzYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQpAQCAtMzAsNiArMzAsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
IAogICAgIFNoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAKKyAgICBTaGFy
ZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJJbXBs
LmNwcAorICAgIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3Rv
Y29sTWFuYWdlclNvdXAuY3BwCisKICAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0
c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCiAKICAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0
bWFwQ2Fpcm8uY3BwCkBAIC02Nyw5ICs3MCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1lbnVMaXN0ZW5lci5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlld0VmbC5jcHAKIAotICAgIFVJUHJvY2Vzcy9BUEkvQy9z
b3VwL1dLQ29udGV4dFNvdXAuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVN
YW5hZ2VyU291cC5jcHAKLSAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBSZXF1ZXN0TWFu
YWdlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS1NvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyLmNwcAogCiAgICAgVUlQcm9jZXNzL0FQSS9Db29yZGluYXRlZEdyYXBoaWNz
L1dLQ29vcmRpbmF0ZWRTY2VuZS5jcHAKIApAQCAtMTI1LDYgKzEyNywxMCBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xh
dW5jaGVyRWZsLmNwcAogCisgICAgVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyLmNwcAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcAorCiAgICAgVUlQcm9jZXNz
L05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKIAogICAgIFVJUHJvY2Vz
cy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKQEAgLTE2OSw4ICsxNzUsNiBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNv
bnRleHRTb3VwLmNwcAogICAgIFVJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNv
dXAuY3BwCi0gICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNw
cAotICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogCiAg
ICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCiAgICAg
V2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKQEAg
LTIwMywxNyArMjA3LDEyIEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlBy
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdEdlbmVyaWMuY3BwCiAgICAgV2ViUHJvY2Vzcy9z
b3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCiAgICAgV2ViUHJvY2Vzcy9zb3Vw
L1dlYlByb2Nlc3NTb3VwLmNwcAotICAgIFdlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXIuY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKICAg
ICBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5tZXNzYWdlcy5pbgogCi0gICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KLQogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgotCi0gICAgV2Vi
UHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5tZXNzYWdlcy5pbgogKQogCiBsaXN0
KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKQEAgLTIyOSw2ICsyMjgsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMvc291cCIK
KyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCmluZGV4IGJjN2IwNTQuLjFj
NjVmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuaApAQCAtMjU3LDcgKzI1Nyw3IEBAIEVBUEkgRXdrX1N0b3JhZ2VfTWFuYWdlciAqZXdrX2Nv
bnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCAqY29uCiAgKiBXaGVu
IGFuIFVSTCByZXF1ZXN0IHdpdGggQGEgc2NoZW1lIGlzIG1hZGUgaW4gdGhlICNFd2tfQ29udGV4
dCwgdGhlIGNhbGxiYWNrCiAgKiBmdW5jdGlvbiBwcm92aWRlZCB3aWxsIGJlIGNhbGxlZCB3aXRo
IGEgI0V3a19VcmxfU2NoZW1lX1JlcXVlc3QuCiAgKgotICogSXQgaXMgcG9zc2libGUgdG8gaGFu
ZGxlIFVSTCBzY2hlbWUgcmVxdWVzdHMgYXN5bmNocm9ub3VzbHksIGJ5IGNhbGxpbmcgZXdrX3Vy
bF9zY2hlbWVfcmVmKCkgb24gdGhlCisgKiBJdCBpcyBwb3NzaWJsZSB0byBoYW5kbGUgVVJMIHNj
aGVtZSByZXF1ZXN0cyBhc3luY2hyb25vdXNseSwgYnkgY2FsbGluZyBld2tfb2JqZWN0X3JlZigp
IG9uIHRoZQogICogI0V3a19VcmxfU2NoZW1lX1JlcXVlc3QgYW5kIGNhbGxpbmcgZXdrX3VybF9z
Y2hlbWVfcmVxdWVzdF9maW5pc2goKSBsYXRlciB3aGVuIHRoZSBkYXRhIG9mCiAgKiB0aGUgcmVx
dWVzdCBpcyBhdmFpbGFibGUuCiAgKgpAQCAtMjY3LDI0ICsyNjcsMjAgQEAgRUFQSSBFd2tfU3Rv
cmFnZV9NYW5hZ2VyICpld2tfY29udGV4dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19D
b250ZXh0ICpjb24KICAqIEBwYXJhbSB1c2VyX2RhdGEgZGF0YSB0byBwYXNzIHRvIGNhbGxiYWNr
IGZ1bmN0aW9uCiAgKgogICogQGNvZGUKLSAqIHN0YXRpYyB2b2lkIGFib3V0X3VybF9zY2hlbWVf
cmVxdWVzdF9jYihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICpyZXF1ZXN0LCB2b2lkICp1c2VyX2Rh
dGEpCisgKiBzdGF0aWMgdm9pZCBjdXN0b21fdXJsX3NjaGVtZV9yZXF1ZXN0X2NiKEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3QgKnJlcXVlc3QsIHZvaWQgKnVzZXJfZGF0YSkKICAqIHsKLSAqICAgICBj
b25zdCBjaGFyICpwYXRoOworICogICAgIGNvbnN0IGNoYXIgKnNjaGVtZTsKICAqICAgICBjaGFy
ICpjb250ZW50c19kYXRhID0gTlVMTDsKLSAqICAgICB1bnNpZ25lZCBpbnQgY29udGVudHNfbGVu
Z3RoID0gMDsKLSAqCi0gKiAgICAgcGF0aCA9IGV3a191cmxfc2NoZW1lX3JlcXVlc3RfcGF0aF9n
ZXQocmVxdWVzdCk7Ci0gKiAgICAgaWYgKCFzdHJjbXAocGF0aCwgInBsdWdpbnMiKSkgewotICog
ICAgICAgICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2Yg
cGx1Z2lucyBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3Ro
Ci0gKiAgICAgfSBlbHNlIGlmICghc3RyY21wKHBhdGgsICJtZW1vcnkiKSkgewotICogICAgICAg
ICAvLyBJbml0aWFsaXplIGNvbnRlbnRzX2RhdGEgd2l0aCB0aGUgY29udGVudHMgb2YgbWVtb3J5
IGFib3V0IHBhZ2UsIGFuZCBzZXQgaXRzIGxlbmd0aCB0byBjb250ZW50c19sZW5ndGgKLSAqICAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAocGF0aCwgImFwcGxpY2F0aW9ucyIpKSB7Ci0gKiAgICAgICAg
IC8vIEluaXRpYWxpemUgY29udGVudHNfZGF0YSB3aXRoIHRoZSBjb250ZW50cyBvZiBhcHBsaWNh
dGlvbiBhYm91dCBwYWdlLCBhbmQgc2V0IGl0cyBsZW5ndGggdG8gY29udGVudHNfbGVuZ3RoCisg
KiAgICAgdW5zaWduZWQgY29udGVudHNfbGVuZ3RoID0gMDsKKyAqCisgKiAgICAgc2NoZW1lID0g
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KHJlcXVlc3QpOworICogICAgIGlmICgh
c3RyY21wKHNjaGVtZSwgIm15YXBwIikpIHsKKyAqICAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb250
ZW50c19kYXRhIHdpdGggYSB3ZWxjb21lIHBhZ2UsIGFuZCBzZXQgaXRzIGxlbmd0aCB0byBjb250
ZW50c19sZW5ndGgKICAqICAgICB9IGVsc2UgewogICogICAgICAgICBFaW5hX1N0cmJ1ZiAqYnVm
ID0gZWluYV9zdHJidWZfbmV3KCk7Ci0gKiAgICAgICAgIGVpbmFfc3RyYnVmX2FwcGVuZF9wcmlu
dGYoYnVmLCAiJmx0O2h0bWwmZ3Q7Jmx0O2JvZHkmZ3Q7Jmx0O3AmZ3Q7SW52YWxpZCBhYm91dDol
cyBwYWdlJmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7IiwgcGF0aCk7CisgKiAg
ICAgICAgIGVpbmFfc3RyYnVmX2FwcGVuZF9wcmludGYoYnVmLCAiJmx0O2h0bWwmZ3Q7Jmx0O2Jv
ZHkmZ3Q7Jmx0O3AmZ3Q7SW52YWxpZCBhcHBsaWNhdGlvbjogJXMmbHQ7L3AmZ3Q7Jmx0Oy9ib2R5
Jmd0OyZsdDsvaHRtbCZndDsiLCBzY2hlbWUpOwogICogICAgICAgICBjb250ZW50c19kYXRhID0g
ZWluYV9zdHJidWZfc3RyaW5nX3N0ZWFsKGJ1Zik7Ci0gKiAgICAgICAgIGNvbnRlbnRzX2xlbmd0
aCA9IHN0cmxlbihjb250ZW50cyk7CisgKiAgICAgICAgIGNvbnRlbnRzX2xlbmd0aCA9IHN0cmxl
bihjb250ZW50c19kYXRhKTsKICAqICAgICAgICAgZWluYV9zdHJidWZfZnJlZShidWYpOwogICog
ICAgIH0KICAqICAgICBld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaChyZXF1ZXN0LCBjb250
ZW50c19kYXRhLCBjb250ZW50c19sZW5ndGgsICJ0ZXh0L2h0bWwiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVz
dC5jcHAKaW5kZXggOTlmZjI3NC4uZjRiOTBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5jcHAKQEAg
LTI5LDE3ICsyOSwyMCBAQAogI2luY2x1ZGUgIldLRGF0YS5oIgogI2luY2x1ZGUgIldLU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlci5oIgorCiAjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2
YXRlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a1VybFNjaGVtZVJlcXVlc3Q6
OkV3a1VybFNjaGVtZVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgbWFuYWdlciwgV0tV
UkxSZWYgdXJsLCB1aW50NjRfdCByZXF1ZXN0SUQpCitFd2tVcmxTY2hlbWVSZXF1ZXN0OjpFd2tV
cmxTY2hlbWVSZXF1ZXN0KFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYgbWFu
YWdlciwgQVBJOjpVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0LCB1aW50NjRfdCByZXF1ZXN0SUQpCiAg
ICAgOiBtX3drUmVxdWVzdE1hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fdXJsKHVybCkKICAgICAs
IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKLSAgICAsIG1fc2NoZW1lKEFkb3B0V0ssIFdLVVJMQ29w
eVNjaGVtZSh1cmwpKQotICAgICwgbV9wYXRoKEFkb3B0V0ssIFdLVVJMQ29weVBhdGgodXJsKSkK
IHsKKyAgICBXS1VSTFJlZiB1cmwgPSB0b0NvcGllZFVSTEFQSSh1cmxSZXF1ZXN0LT5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSk7CisgICAgbV91cmwgPSBXS0VpbmFTaGFyZWRTdHJpbmcodXJsKTsK
KyAgICBtX3NjaGVtZSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1VSTENvcHlTY2hl
bWUodXJsKSk7CisgICAgbV9wYXRoID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLVVJM
Q29weVBhdGgodXJsKSk7CiB9CiAKIHVpbnQ2NF90IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmlkKCkg
Y29uc3QKQEAgLTY4LDcgKzcxLDEzIEBAIHZvaWQgRXdrVXJsU2NoZW1lUmVxdWVzdDo6ZmluaXNo
KGNvbnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoCiAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrTWltZVR5cGUgPSBtaW1lVHlwZSA/IGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobWltZVR5cGUpKSA6IDA7CiAKICAgICAvLyBJbiBj
YXNlIG9mIGVtcHR5IHJlcGx5IGFuIGVtcHR5IFdLRGF0YVJlZiBpcyBzZW50IHRvIHRoZSBXZWJQ
cm9jZXNzLgotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyRGlkSGFuZGxlVVJJUmVxdWVzdChtX3dr
UmVxdWVzdE1hbmFnZXIuZ2V0KCksIHdrRGF0YS5nZXQoKSwgY29udGVudExlbmd0aCwgd2tNaW1l
VHlwZS5nZXQoKSwgbV9yZXF1ZXN0SUQpOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UoV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KG1f
dXJsKSksCisgICAgICAgIFN0cmluZzo6ZnJvbVVURjgobWltZVR5cGUpLCBjb250ZW50TGVuZ3Ro
LCBlbXB0eVN0cmluZygpKTsKKworICAgIHRvSW1wbChtX3drUmVxdWVzdE1hbmFnZXIuZ2V0KCkp
LT5kaWRSZWNlaXZlUmVzcG9uc2UobV9yZXF1ZXN0SUQsIHJlc3BvbnNlKTsKKyAgICB0b0ltcGwo
bV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+ZGlkTG9hZERhdGEobV9yZXF1ZXN0SUQsIHRvSW1w
bCh3a0RhdGEuZ2V0KCkpKTsKKyAgICB0b0ltcGwobV93a1JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+
ZGlkRmluaXNoTG9hZGluZyhtX3JlcXVlc3RJRCk7CisgICAgdG9JbXBsKG1fd2tSZXF1ZXN0TWFu
YWdlci5nZXQoKSktPnN0b3BMb2FkaW5nKG1fcmVxdWVzdElEKTsKIH0KIAogY29uc3QgY2hhciog
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0KGNvbnN0IEV3a19VcmxfU2NoZW1lX1Jl
cXVlc3QqIHJlcXVlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IDA1
MTQ3MzguLjlhNDA0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0z
MCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVk
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKLSNpbmNsdWRlICJXS1NvdXBSZXF1
ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgIldLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAogLyoqCkBAIC00MSwxMiAr
NDEsMTIgQEAgY2xhc3MgRXdrVXJsU2NoZW1lUmVxdWVzdCA6IHB1YmxpYyBFd2tPYmplY3Qgewog
cHVibGljOgogICAgIEVXS19PQkpFQ1RfREVDTEFSRShFd2tVcmxTY2hlbWVSZXF1ZXN0KQogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrVXJsU2NoZW1lUmVxdWVzdD4gY3JlYXRlKFdLU291cFJl
cXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIFdLVVJMUmVmIHVybCwgdWludDY0X3QgcmVxdWVzdElE
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a1VybFNjaGVtZVJlcXVlc3Q+IGNyZWF0ZShXS1Nv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQSTo6VVJMUmVxdWVz
dCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKQogICAgIHsKLSAgICAgICAgaWYgKCFt
YW5hZ2VyIHx8ICF1cmwpCisgICAgICAgIGlmICghbWFuYWdlciB8fCAhdXJsUmVxdWVzdCkKICAg
ICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJs
U2NoZW1lUmVxdWVzdChtYW5hZ2VyLCB1cmwsIHJlcXVlc3RJRCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEV3a1VybFNjaGVtZVJlcXVlc3QobWFuYWdlciwgdXJsUmVxdWVzdCwgcmVx
dWVzdElEKSk7CiAgICAgfQogCiAgICAgdWludDY0X3QgaWQoKSBjb25zdDsKQEAgLTU3LDkgKzU3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZmluaXNoKGNvbnN0IHZvaWQqIGNvbnRlbnREYXRhLCB1
aW50NjRfdCBjb250ZW50TGVuZ3RoLCBjb25zdCBjaGFyKiBtaW1lVHlwZSk7CiAKIHByaXZhdGU6
Ci0gICAgRXdrVXJsU2NoZW1lUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2Vy
LCBXS1VSTFJlZiB1cmxSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgRXdrVXJsU2NoZW1l
UmVxdWVzdChXS1NvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyUmVmIG1hbmFnZXIsIEFQ
STo6VVJMUmVxdWVzdCogdXJsUmVxdWVzdCwgdWludDY0X3QgcmVxdWVzdElEKTsKIAotICAgIFdL
UmV0YWluUHRyPFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmPiBtX3drUmVxdWVzdE1hbmFnZXI7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZj4gbV93
a1JlcXVlc3RNYW5hZ2VyOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VybDsKICAgICB1aW50
NjRfdCBtX3JlcXVlc3RJRDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9zY2hlbWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJf
Y29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfY29udGV4dC5jcHAKaW5kZXggM2YxNDcwYS4uNjAyY2M2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9j
b250ZXh0LmNwcApAQCAtMTE1LDEyICsxMTUsMTAgQEAgVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwg
ZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldCkKIAogVEVTVF9GKEVXSzJDb250ZXh0VGVz
dCwgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcikKIHsKLSNpZiBFTkFCTEUoQ1VTVE9N
X1BST1RPQ09MKQotICAgIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoZXdrX3ZpZXdf
Y29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3NjaGVtZSIsIHNjaGVtZVJlcXVlc3RDYWxsYmFj
aywgMCk7CisgICAgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3Rlcihld2tfdmlld19jb250
ZXh0X2dldCh3ZWJWaWV3KCkpLCAiZm9vc2NoZW1lIiwgc2NoZW1lUmVxdWVzdENhbGxiYWNrLCBu
dWxscHRyKTsKICAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgImZvb3NjaGVtZTpNeVBh
dGgiKTsKIAogICAgIEFTU0VSVF9UUlVFKHdhaXRVbnRpbFRydWUoZmluaXNoVGVzdCwgdGVzdFRp
bWVvdXRTZWNvbmRzKSk7Ci0jZW5kaWYKIH0KIAogVEVTVF9GKEVXSzJDb250ZXh0VGVzdCwgZXdr
X2NvbnRleHRfY2FjaGVfbW9kZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Q
cm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKaW5k
ZXggYWQ3M2FkNC4uNTllMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApA
QCAtMzEsNiArMzEsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUv
RXJyb3JzR3RrLmg+CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJv
cnNFZmwuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKaW5k
ZXggMDZlMWE5Zi4uODM5YjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKQEAgLTI2LDcwICsyNiw2MSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmgiCiAKLSNpbmNsdWRlICJXS0NvbnRleHRTb3VwLmgiCi0jaW5jbHVkZSAiV0tTb3VwUmVxdWVz
dE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAi
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1zdHJ1Y3QgRXdrVXJsU2NoZW1lSGFuZGxlciB7Ci0gICAgRXdrX1VybF9TY2hlbWVfUmVxdWVz
dF9DYiBjYWxsYmFjazsKLSAgICB2b2lkKiB1c2VyRGF0YTsKLQotICAgIEV3a1VybFNjaGVtZUhh
bmRsZXIoKQotICAgICAgICA6IGNhbGxiYWNrKDApCi0gICAgICAgICwgdXNlckRhdGEoMCkKLSAg
ICB7IH0KLQotICAgIEV3a1VybFNjaGVtZUhhbmRsZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9D
YiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCi0gICAgICAgIDogY2FsbGJhY2soY2FsbGJhY2sp
Ci0gICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCi0gICAgeyB9Ci19OwotCiBzdGF0aWMgaW5s
aW5lIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiB0b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi12
b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBS
ZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVmIHVybFJlZiwg
V0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIHJlcXVlc3RNYW5hZ2VyID0gdG9SZXF1ZXN0
TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsKLQotICAgIFJlZlB0cjxFd2tVcmxTY2hlbWVS
ZXF1ZXN0PiBzY2hlbWVSZXF1ZXN0ID0gRXdrVXJsU2NoZW1lUmVxdWVzdDo6Y3JlYXRlKHNvdXBS
ZXF1ZXN0TWFuYWdlclJlZiwgdXJsUmVmLCByZXF1ZXN0SUQpOwotICAgIEV3a1VybFNjaGVtZUhh
bmRsZXIgaGFuZGxlciA9IHJlcXVlc3RNYW5hZ2VyLT5tX3VybFNjaGVtZUhhbmRsZXJzLmdldChz
Y2hlbWVSZXF1ZXN0LT5zY2hlbWUoKSk7Ci0gICAgaWYgKCFoYW5kbGVyLmNhbGxiYWNrKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBoYW5kbGVyLmNhbGxiYWNrKHNjaGVtZVJlcXVlc3QuZ2V0KCks
IGhhbmRsZXIudXNlckRhdGEpOwotfQotCiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVz
dE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0UmVmIGNvbnRleHQpCi0gICAgOiBtX3NvdXBSZXF1
ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIoY29udGV4dCkpCiB7Cisg
ICAgbV9yZXF1ZXN0TWFuYWdlciA9IHRvQVBJKHRvSW1wbChjb250ZXh0KS0+c3VwcGxlbWVudDxX
ZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKSk7CiAgICAgQVNTRVJUKG1fc291
cFJlcXVlc3RNYW5hZ2VyKTsKIAotICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50VjAgd2tS
ZXF1ZXN0TWFuYWdlckNsaWVudDsKLSAgICBtZW1zZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQs
IDAsIHNpemVvZihXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudFYwKSk7CisgICAgV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7
CisgICAgbWVtc2V0KCZ3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LCAwLCBzaXplb2YoV0tTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlckNsaWVudFYwKSk7CiAKICAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CiAgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5i
YXNlLmNsaWVudEluZm8gPSB0aGlzOwotICAgIHdrUmVxdWVzdE1hbmFnZXJDbGllbnQuZGlkUmVj
ZWl2ZVVSSVJlcXVlc3QgPSBkaWRSZWNlaXZlVVJJUmVxdWVzdDsKKyAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LnN0YXJ0TG9hZGluZyA9IHN0YXJ0TG9hZGluZzsKKyAgICB3a1JlcXVlc3RNYW5h
Z2VyQ2xpZW50LnN0b3BMb2FkaW5nID0gc3RvcExvYWRpbmc7CiAKLSAgICBXS1NvdXBSZXF1ZXN0
TWFuYWdlclNldENsaWVudChtX3NvdXBSZXF1ZXN0TWFuYWdlci5nZXQoKSwgJndrUmVxdWVzdE1h
bmFnZXJDbGllbnQuYmFzZSk7CisgICAgV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdl
clNldENsaWVudChtX3JlcXVlc3RNYW5hZ2VyLmdldCgpLCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVu
dC5iYXNlKTsKIH0KIAotUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6On5SZXF1ZXN0TWFuYWdlckNs
aWVudEVmbCgpCit2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpzdGFydExvYWRpbmcoV0tT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjdXN0
b21Qcm90b2NvbElELCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKKyAgICBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCogY2xpZW50ID0gdG9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbChjbGllbnRJbmZvKTsKKyAgICBSZWZQdHI8RXdrVXJsU2NoZW1l
UmVxdWVzdD4gcmVxdWVzdCA9IEV3a1VybFNjaGVtZVJlcXVlc3Q6OmNyZWF0ZShtYW5hZ2VyLCB0
b0ltcGwocmVxdWVzdFJlZiksIGN1c3RvbVByb3RvY29sSUQpOworICAgIFN0cmluZyBzY2hlbWUo
U3RyaW5nOjpmcm9tVVRGOChyZXF1ZXN0LmdldCgpLT5zY2hlbWUoKSkpOworICAgIFJlZlB0cjxX
ZWJLaXRVUklTY2hlbWVIYW5kbGVyPiBoYW5kbGVyID0gKGNsaWVudC0+bV91cmlTY2hlbWVIYW5k
bGVycykuZ2V0KHNjaGVtZSk7CisgICAgQVNTRVJUKGhhbmRsZXIuZ2V0KCkpOworICAgIGlmICgh
aGFuZGxlci0+aGFzQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgKGNsaWVudC0+
bV91cmlTY2hlbWVSZXF1ZXN0cykuc2V0KGN1c3RvbVByb3RvY29sSUQsIHJlcXVlc3QpOworICAg
IGhhbmRsZXItPnBlcmZvcm1DYWxsYmFjayhyZXF1ZXN0LmdldCgpKTsKK30KKwordm9pZCBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6c3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIFVOVVNFRF9QQVJBTShtYW5hZ2VyKTsKKworICAgIFJl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBjbGllbnQgPSB0b1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
KGNsaWVudEluZm8pOworICAgIChjbGllbnQtPm1fdXJpU2NoZW1lUmVxdWVzdHMpLnJlbW92ZShj
dXN0b21Qcm90b2NvbElEKTsKIH0KIAogdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVn
aXN0ZXJVUkxTY2hlbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJsX1NjaGVt
ZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQoY2Fs
bGJhY2spOwogCi0gICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxTY2hl
bWVIYW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIFdLU291cFJlcXVlc3RNYW5hZ2Vy
UmVnaXN0ZXJVUklTY2hlbWUobV9zb3VwUmVxdWVzdE1hbmFnZXIuZ2V0KCksIGFkb3B0V0sodG9D
b3BpZWRBUEkoc2NoZW1lKSkuZ2V0KCkpOworICAgIFJlZlB0cjxXZWJLaXRVUklTY2hlbWVIYW5k
bGVyPiBoYW5kbGVyID0gYWRvcHRSZWYobmV3IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoY2FsbGJh
Y2ssIHVzZXJEYXRhKSk7CisgICAgbV91cmlTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBoYW5k
bGVyKTsKKyAgICB0b0ltcGwobV9yZXF1ZXN0TWFuYWdlci5nZXQoKSktPnJlZ2lzdGVyU2NoZW1l
Rm9yQ3VzdG9tUHJvdG9jb2woc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xp
ZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xp
ZW50RWZsLmgKaW5kZXggYzkwNDlmNi4uZWFiZDY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaApAQCAtMjYsNyAr
MjYsMTEgQEAKICNpZm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmluZSBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVk
ZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJld2tf
Y29udGV4dF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2
YXRlLmgiCisKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM0LDE4ICszOCw1MyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViS2l0VVJJU2NoZW1lSGFuZGxlcjog
cHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4geworcHVibGljOgorICAg
IFdlYktpdFVSSVNjaGVtZUhhbmRsZXIoKQorICAgICAgICA6IG1fY2FsbGJhY2sobnVsbHB0cikK
KyAgICAgICAgLCBtX3VzZXJEYXRhKG51bGxwdHIpCisgICAgeworICAgIH0KKworICAgIFdlYktp
dFVSSVNjaGVtZUhhbmRsZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywgdm9p
ZCogdXNlckRhdGEpCisgICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAgICAgLCBt
X3VzZXJEYXRhKHVzZXJEYXRhKQorICAgIHsKKyAgICB9CisKKyAgICBib29sIGhhc0NhbGxiYWNr
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NhbGxiYWNrOworICAgIH0KKworICAgIHZvaWQg
cGVyZm9ybUNhbGxiYWNrKEV3a1VybFNjaGVtZVJlcXVlc3QqIHJlcXVlc3QpCisgICAgeworICAg
ICAgICBBU1NFUlQobV9jYWxsYmFjayk7CisKKyAgICAgICAgbV9jYWxsYmFjayhyZXF1ZXN0LCBt
X3VzZXJEYXRhKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRXdrX1VybF9TY2hlbWVfUmVxdWVz
dF9DYiBtX2NhbGxiYWNrOworICAgIHZvaWQqIG1fdXNlckRhdGE7Cit9OworCit0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViS2l0VVJJU2NoZW1lSGFuZGxlcj4gPiBVUklTY2hlbWVI
YW5kbGVyTWFwOwordHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RXdrVXJsU2NoZW1l
UmVxdWVzdD4gPiBVUklTY2hlbWVSZXF1ZXN0TWFwOworCiBjbGFzcyBSZXF1ZXN0TWFuYWdlckNs
aWVudEVmbCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwo
V0tDb250ZXh0UmVmKTsKLSAgICB+UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoKTsKIAogICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJs
X1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSk7CiAKIHByaXZhdGU6
Ci0gICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFn
ZXJSZWYsIFdLVVJMUmVmLCBXS1BhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgc3RhcnRMb2FkaW5nKFdLU291cEN1c3Rv
bVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdL
VVJMUmVxdWVzdFJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQg
c3RvcExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiwgdWludDY0
X3QgY3VzdG9tUHJvdG9jb2xJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZj4gbV9zb3VwUmVxdWVzdE1hbmFnZXI7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIGNsYXNzIEV3a1VybFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1l
SGFuZGxlcnM7CisgICAgV0tSZXRhaW5QdHI8V0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlclJlZj4gbV9yZXF1ZXN0TWFuYWdlcjsKKyAgICBVUklTY2hlbWVIYW5kbGVyTWFwIG1fdXJp
U2NoZW1lSGFuZGxlcnM7CisgICAgVVJJU2NoZW1lUmVxdWVzdE1hcCBtX3VyaVNjaGVtZVJlcXVl
c3RzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcAppbmRleCAzOGM2YWUxLi40ZDkxNjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRl
ICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgPEVmcmVl
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYkNv
bnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYQogewogICAgIGluaXRpYWxpemVJbnNwZWN0b3JTZXJ2ZXIoKTsKIAotICAg
IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWQgPSBzdXBwbGVtZW50PFdlYlNvdXBSZXF1
ZXN0TWFuYWdlclByb3h5PigpLT5yZWdpc3RlcmVkVVJJU2NoZW1lcygpOworICAgIHBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0Zv
ckN1c3RvbVByb3RvY29scygpOwogICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5
PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwog
ICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3JlVExT
RXJyb3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29u
dGV4dFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNv
dXAuY3BwCmluZGV4IDQzZWU2NzEuLjdiMjIxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKQEAgLTQwLDkgKzQwLDcgQEAgdm9pZCBX
ZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGUKICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1f
aW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNF
cnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKICAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IFdl
YkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSNpZiBFTkFCTEUoQ1VTVE9NX1BST1RP
Q09MUykKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9j
b2xzID0gc3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+
cmVnaXN0ZXJlZFNjaGVtZXNGb3JDdXN0b21Qcm90b2NvbHMoKTsKLSNlbmRpZgogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCmluZGV4IDFkZDE1MDMuLmNjOTM5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCkBAIC0zMDgsNSArMzA4LDcgQEAgaWYgKEVOQUJMRV9GVExfSklUKQogICAgIHNldChIQVZF
X0xMVk0gT04pCiBlbmRpZiAoKQogCithZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVfQ1VTVE9NX1BS
T1RPQ09MUz0xKQorCiAjIFtFXVdlYktpdDIgdGVzdHMgbmVlZCBhIGhpbnQgdG8gZmluZCBvdXQg
d2hlcmUgcHJvY2Vzc2VzIHN1Y2ggYXMgV2ViUHJvY2VzcyBhcmUgbG9jYXRlZCBhdC4KIGFkZF9k
ZWZpbml0aW9ucygtRFdFQktJVF9FWEVDX1BBVEg9XCIke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJ
UkVDVE9SWX1cIikKLS0gCjEuNy4xMC40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>