<?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>200165</bug_id>
          
          <creation_ts>2019-07-26 08:47:26 -0700</creation_ts>
          <short_desc>WebSockets: first-party for cookies not set in handshake request when using platform APIs</short_desc>
          <delta_ts>2019-08-29 03:40:20 -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>WebKit2</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>199943</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1556109</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-26 08:47:26 -0700</bug_when>
    <thetext>We need to handle the header on connection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556112</commentid>
    <comment_count>1</comment_count>
      <attachid>374966</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-26 08:54:19 -0700</bug_when>
    <thetext>Created attachment 374966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557599</commentid>
    <comment_count>2</comment_count>
      <attachid>375310</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 07:39:49 -0700</bug_when>
    <thetext>Created attachment 375310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557610</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 08:53:31 -0700</bug_when>
    <thetext>Alex, could you review this one too, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557636</commentid>
    <comment_count>4</comment_count>
      <attachid>375310</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-01 10:16:00 -0700</bug_when>
    <thetext>Comment on attachment 375310
Patch

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

&gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:347
&gt; +            m_document-&gt;page()-&gt;cookieJar().setCookies(*m_document, m_httpURLForCookies, serverSetCookie);

Cannot it be handled directly in NetworkProcess, we prefer to not send cookies back to web process these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557659</commentid>
    <comment_count>5</comment_count>
      <attachid>375310</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-01 11:31:38 -0700</bug_when>
    <thetext>Comment on attachment 375310
Patch

I agree with Youenn. It should go straight from WebSocketTask::didConnect to the cookie store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557684</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 11:47:29 -0700</bug_when>
    <thetext>Sure, that makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557688</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 11:57:58 -0700</bug_when>
    <thetext>The thing is, do we have all the info we need in the network process? first party URL, url, etc.?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557692</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-01 12:00:54 -0700</bug_when>
    <thetext>We do or we should. NetworkResourceLoadParameters has origins. We can similarly pass such origins where we need them here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557717</commentid>
    <comment_count>9</comment_count>
      <attachid>375338</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 13:04:17 -0700</bug_when>
    <thetext>Created attachment 375338
Patch

I hope this is the right way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557721</commentid>
    <comment_count>10</comment_count>
      <attachid>375338</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-01 13:08:38 -0700</bug_when>
    <thetext>Comment on attachment 375338
Patch

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

Much better.

&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:109
&gt; +        m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),

You should probably check m_session before using it, since it&apos;s weak.

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:87
&gt; +    // FIXME: support extensions and server cookie.

Actually, you should probably make an accessor for m_session on NetworkSocketChannel then move your cookie setting code from NetworkSocketChannel::didConnect to WebSocketTaskSoup.cpp because the cocoa implementation won&apos;t be setting cookies like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557895</commentid>
    <comment_count>11</comment_count>
      <attachid>375338</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-02 00:50:01 -0700</bug_when>
    <thetext>Comment on attachment 375338
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:109
&gt;&gt; +        m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; 
&gt; You should probably check m_session before using it, since it&apos;s weak.

I&apos;m doing it, see the condition above:

if (!serverSetCookie.isEmpty() &amp;&amp; m_session) {

&gt;&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:87
&gt;&gt; +    // FIXME: support extensions and server cookie.
&gt; 
&gt; Actually, you should probably make an accessor for m_session on NetworkSocketChannel then move your cookie setting code from NetworkSocketChannel::didConnect to WebSocketTaskSoup.cpp because the cocoa implementation won&apos;t be setting cookies like this.

Ok, isn&apos;t it possible to use the same approach to set the cookies?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557896</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-02 00:59:26 -0700</bug_when>
    <thetext>hmm, we would also need the request, frameID and pageID. It&apos;s a friend class, so we don&apos;t need to add accessors for everything, but it looks weird anyway. What I can do is adding a method to set the cookies that is only called from libsoup (and maybe curl in the future).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557901</commentid>
    <comment_count>13</comment_count>
      <attachid>375402</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-02 01:26:07 -0700</bug_when>
    <thetext>Created attachment 375402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557905</commentid>
    <comment_count>14</comment_count>
      <attachid>375404</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-02 01:39:25 -0700</bug_when>
    <thetext>Created attachment 375404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557929</commentid>
    <comment_count>15</comment_count>
      <attachid>375407</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-02 06:32:24 -0700</bug_when>
    <thetext>Created attachment 375407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557935</commentid>
    <comment_count>16</comment_count>
      <attachid>375407</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-02 08:20:38 -0700</bug_when>
    <thetext>Comment on attachment 375407
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:54
&gt; +    , m_request(request)

Could be an r-value and moved here.

&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),

The call to setCookiesFromDOM seems strange to me since this is a regular HTTP response processing code path.
Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except that we are doing client-side cookie checks to validate the duration.
If we compare to the WebProcess handshake implementation, this is status quo but I wonder if there is something better we could do here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558011</commentid>
    <comment_count>17</comment_count>
      <attachid>375407</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-02 11:32:08 -0700</bug_when>
    <thetext>Comment on attachment 375407
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt;&gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; 
&gt; The call to setCookiesFromDOM seems strange to me since this is a regular HTTP response processing code path.
&gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except that we are doing client-side cookie checks to validate the duration.
&gt; If we compare to the WebProcess handshake implementation, this is status quo but I wonder if there is something better we could do here.

setCookiesFromDOM is for document.cookie=something. That should not be used here because an HTTP-only cookie sent to a web socket handshake should not be accessible from document.cookie. Could you add a test that verifies that?

Also, your code in NetworkSocketChannel::setCookies should be in a soup-specific file because the NSURLSession-based implementation will not have CFNetwork give WebKit cookies to tell CFNetwork to store. It will just do that for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564915</commentid>
    <comment_count>18</comment_count>
      <attachid>375407</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-26 04:47:32 -0700</bug_when>
    <thetext>Comment on attachment 375407
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:54
&gt;&gt; +    , m_request(request)
&gt; 
&gt; Could be an r-value and moved here.

I&apos;ll check, it&apos;s an existing parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564916</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-26 04:50:57 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #16)
&gt; Comment on attachment 375407 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375407&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:54
&gt; &gt; +    , m_request(request)
&gt; 
&gt; Could be an r-value and moved here.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; &gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; 
&gt; The call to setCookiesFromDOM seems strange to me since this is a regular
&gt; HTTP response processing code path.
&gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except
&gt; that we are doing client-side cookie checks to validate the duration.
&gt; If we compare to the WebProcess handshake implementation, this is status quo
&gt; but I wonder if there is something better we could do here.

I just followed what current code does, what&apos;s the alternative? NetworkStorageSession::setCookies()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564917</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-26 04:55:08 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #17)
&gt; Comment on attachment 375407 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375407&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; &gt;&gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; &gt; 
&gt; &gt; The call to setCookiesFromDOM seems strange to me since this is a regular HTTP response processing code path.
&gt; &gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except that we are doing client-side cookie checks to validate the duration.
&gt; &gt; If we compare to the WebProcess handshake implementation, this is status quo but I wonder if there is something better we could do here.
&gt; 
&gt; setCookiesFromDOM is for document.cookie=something. That should not be used
&gt; here because an HTTP-only cookie sent to a web socket handshake should not
&gt; be accessible from document.cookie. Could you add a test that verifies that?

hmm, isn&apos;t this what imported/w3c/web-platform-tests/websockets/cookies/007.html does? It&apos;s checking that document.cookie is indeed set after the handshake, no?

&gt; Also, your code in NetworkSocketChannel::setCookies should be in a
&gt; soup-specific file because the NSURLSession-based implementation will not
&gt; have CFNetwork give WebKit cookies to tell CFNetwork to store. It will just
&gt; do that for us.

It&apos;s only called from soup implementation, it could also be used by curl as well  eventually, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564918</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-26 04:56:10 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #19)
&gt; (In reply to youenn fablet from comment #16)
&gt; &gt; Comment on attachment 375407 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=375407&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:54
&gt; &gt; &gt; +    , m_request(request)
&gt; &gt; 
&gt; &gt; Could be an r-value and moved here.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; &gt; &gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; &gt; 
&gt; &gt; The call to setCookiesFromDOM seems strange to me since this is a regular
&gt; &gt; HTTP response processing code path.
&gt; &gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except
&gt; &gt; that we are doing client-side cookie checks to validate the duration.
&gt; &gt; If we compare to the WebProcess handshake implementation, this is status quo
&gt; &gt; but I wonder if there is something better we could do here.
&gt; 
&gt; I just followed what current code does, what&apos;s the alternative?
&gt; NetworkStorageSession::setCookies()?

hmm, I wonder if I&apos;ll end up re-implementing setCookiesFromDOM to build the Vector&lt;Cookie&gt;, at least in the soup case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565690</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-28 05:25:43 -0700</bug_when>
    <thetext>Alex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565691</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-28 05:38:31 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #20)
&gt; (In reply to Alex Christensen from comment #17)
&gt; &gt; Comment on attachment 375407 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=375407&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; &gt; &gt;&gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; &gt; &gt; 
&gt; &gt; &gt; The call to setCookiesFromDOM seems strange to me since this is a regular HTTP response processing code path.
&gt; &gt; &gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except that we are doing client-side cookie checks to validate the duration.
&gt; &gt; &gt; If we compare to the WebProcess handshake implementation, this is status quo but I wonder if there is something better we could do here.
&gt; &gt; 
&gt; &gt; setCookiesFromDOM is for document.cookie=something. That should not be used
&gt; &gt; here because an HTTP-only cookie sent to a web socket handshake should not
&gt; &gt; be accessible from document.cookie. Could you add a test that verifies that?
&gt; 
&gt; hmm, isn&apos;t this what
&gt; imported/w3c/web-platform-tests/websockets/cookies/007.html does? It&apos;s
&gt; checking that document.cookie is indeed set after the handshake, no?

Is the cookie HttpOnly? If so, document.cookie should not allow accessing it.
It would be a good test to add if there is no HttpOnly cookie in ws handshake.

&gt; &gt; Also, your code in NetworkSocketChannel::setCookies should be in a
&gt; &gt; soup-specific file because the NSURLSession-based implementation will not
&gt; &gt; have CFNetwork give WebKit cookies to tell CFNetwork to store. It will just
&gt; &gt; do that for us.
&gt; 
&gt; It&apos;s only called from soup implementation, it could also be used by curl as
&gt; well  eventually, I think.

How are cookies handled in soup and curl?
If soup is handling cookies internally for regular http responses, it should also do so for the handshake response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565694</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-28 05:52:24 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #23)
&gt; (In reply to Carlos Garcia Campos from comment #20)
&gt; &gt; (In reply to Alex Christensen from comment #17)
&gt; &gt; &gt; Comment on attachment 375407 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=375407&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:111
&gt; &gt; &gt; &gt;&gt; +    m_session-&gt;networkStorageSession()-&gt;setCookiesFromDOM(m_request.firstPartyForCookies(), SameSiteInfo::create(m_request),
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The call to setCookiesFromDOM seems strange to me since this is a regular HTTP response processing code path.
&gt; &gt; &gt; &gt; Looking at MacOS setCookiesFromDOM implementation, this is mostly ok except that we are doing client-side cookie checks to validate the duration.
&gt; &gt; &gt; &gt; If we compare to the WebProcess handshake implementation, this is status quo but I wonder if there is something better we could do here.
&gt; &gt; &gt; 
&gt; &gt; &gt; setCookiesFromDOM is for document.cookie=something. That should not be used
&gt; &gt; &gt; here because an HTTP-only cookie sent to a web socket handshake should not
&gt; &gt; &gt; be accessible from document.cookie. Could you add a test that verifies that?
&gt; &gt; 
&gt; &gt; hmm, isn&apos;t this what
&gt; &gt; imported/w3c/web-platform-tests/websockets/cookies/007.html does? It&apos;s
&gt; &gt; checking that document.cookie is indeed set after the handshake, no?
&gt; 
&gt; Is the cookie HttpOnly? If so, document.cookie should not allow accessing it.
&gt; It would be a good test to add if there is no HttpOnly cookie in ws
&gt; handshake.

I don&apos;t know, I&apos;ll have to look in detail to understand the test.

&gt; &gt; &gt; Also, your code in NetworkSocketChannel::setCookies should be in a
&gt; &gt; &gt; soup-specific file because the NSURLSession-based implementation will not
&gt; &gt; &gt; have CFNetwork give WebKit cookies to tell CFNetwork to store. It will just
&gt; &gt; &gt; do that for us.
&gt; &gt; 
&gt; &gt; It&apos;s only called from soup implementation, it could also be used by curl as
&gt; &gt; well  eventually, I think.
&gt; 
&gt; How are cookies handled in soup and curl?
&gt; If soup is handling cookies internally for regular http responses, it should
&gt; also do so for the handshake response.

hmm, good point, I&apos;ll investigate. Thanks for your help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565696</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-28 06:29:19 -0700</bug_when>
    <thetext>You are indeed right, cookies should be handled by libsoup, it&apos;s not doing it because of a bug. I&apos;ll leave this bug open for now because I&apos;m not sure if we will need something else from WebKit side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566164</commentid>
    <comment_count>26</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-29 02:11:51 -0700</bug_when>
    <thetext>We still need to set FirstPartyForCookies in the handshake request. That fixes http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html and http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566165</commentid>
    <comment_count>27</comment_count>
      <attachid>377562</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-29 02:14:04 -0700</bug_when>
    <thetext>Created attachment 377562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566177</commentid>
    <comment_count>28</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-29 03:39:46 -0700</bug_when>
    <thetext>Committed r249252: &lt;https://trac.webkit.org/changeset/249252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566178</commentid>
    <comment_count>29</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-29 03:40:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54830729&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374966</attachid>
            <date>2019-07-26 08:54:19 -0700</date>
            <delta_ts>2019-08-01 07:39:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-websocket-cookies.diff</filename>
            <type>text/plain</type>
            <size>10009</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZjgzN2YyNDlkOGYuLjQwYjdkZjE5ZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI3IEBACisyMDE5LTA3LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBXZWJTb2NrZXRzOiByZXNwb25zZSBTZXQtQ29va2llIGhlYWRlciBu
b3QgaGFuZGxlZCB3aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlk
Q29ubmVjdCk6IFBhc3Mgc2VydmVyU2V0Q29va2llIHRvIERpZENvbm5lY3QgbWVzc2FnZS4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dFRhc2s6OldlYlNvY2tldFRhc2spOiBTYXZlIHRoZSBzb3VwIG1lc3NhZ2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QpOiBHZXQgdGhlIFNldC1Db29raWUgaGVh
ZGVyIGZyb20gc291cCBtZXNzYWdlIHJlc3BvbnNlIGFuZCBwYXNzIGl0IHRvCisgICAgICAgIE5l
dHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KCkuCisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldFRhc2s6OmRpZEZhaWwpOiBDbGVhciB0aGUgc291cCBtZXNzYWdlLgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmNvbm5lY3QpOiBTYXZlIHRoZSBVUkwgdGhhdCB3aWxsIGJlIHVzZWQgZm9y
IGNvb2tpZXMuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3Qp
OiBTZXQgdGhlIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGlmIGFueS4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA3
LTI2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgTWFrZSBzdG9yaW5n
IGNyb3NzLW9yaWdpbiB0b3AtbGV2ZWwgcHJlZmV0Y2hlcyBpbiBIVFRQIGNhY2hlIG9wdGlvbmFs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwuY3BwCmluZGV4IDA0ZTNkMDI1MjIwLi45OWZiMjNlMTIwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAg
LTk3LDkgKzk3LDkgQEAgdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50MzJfdCBj
b2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKICAgICBmaW5pc2hDbG9zaW5nSWZQb3NzaWJsZSgp
OwogfQogCi12b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KGNvbnN0IFN0cmlu
ZyYgc3VicHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9ucykKK3ZvaWQgTmV0d29ya1Nv
Y2tldENoYW5uZWw6OmRpZENvbm5lY3QoY29uc3QgU3RyaW5nJiBzdWJwcm90b2NvbCwgY29uc3Qg
U3RyaW5nJiBleHRlbnNpb25zLCBjb25zdCBTdHJpbmcmIHNlcnZlclNldENvb2tpZSkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTb2NrZXRDaGFubmVsOjpEaWRDb25uZWN0IHsgc3VicHJvdG9j
b2wsIGV4dGVuc2lvbnMgfSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU29ja2V0Q2hhbm5lbDo6
RGlkQ29ubmVjdCB7IHN1YnByb3RvY29sLCBleHRlbnNpb25zLCBzZXJ2ZXJTZXRDb29raWUgfSk7
CiB9CiAKIHZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldENoYW5uZWwuaAppbmRleCA2NzJiMzc4MWE0ZC4uMTg5ZTgzYjA3MjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgK
QEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBXZWJTb2NrZXRUYXNr
OwogCiBwcml2YXRlOgotICAgIHZvaWQgZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHN1YnByb3Rv
Y29sLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpOworICAgIHZvaWQgZGlkQ29ubmVjdChjb25z
dCBTdHJpbmcmIHN1YnByb3RvY29sLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbnMsIGNvbnN0IFN0
cmluZyYgc2VydmVyU2V0Q29va2llKTsKICAgICB2b2lkIGRpZFJlY2VpdmVUZXh0KGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoY29uc3QgdWludDhfdCogZGF0
YSwgc2l6ZV90IGxlbmd0aCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2Rl
LCBjb25zdCBTdHJpbmcmIHJlYXNvbik7CkBAIC03OCw2ICs3OCw3IEBAIHByaXZhdGU6CiAgICAg
dWludDY0X3QgbV9pZGVudGlmaWVyOwogICAgIFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1fc2Vz
c2lvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gbV9zb2NrZXQ7CisgICAg
VVJMIG1faHR0cFVSTEZvckNvb2tpZXM7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgT3Blbiwg
Q2xvc2luZywgQ2xvc2VkIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpPcGVuIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLm1tCmluZGV4IDRiMmE5Njc4MDIzLi5hMTVlMmM5OGY1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29j
b2EubW0KQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpyZXN1bWUoKQogCiB2
b2lkIFdlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QoY29uc3QgU3RyaW5nJiBwcm90b2NvbCkKIHsK
LSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChwcm90b2NvbCwgeyB9KTsKKyAgICBtX2NoYW5uZWwu
ZGlkQ29ubmVjdChwcm90b2NvbCwgeyB9LCB7IH0pOwogfQogCiB2b2lkIFdlYlNvY2tldFRhc2s6
OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5jcHAKaW5kZXggZmM4ODc3ZmFkOTcuLjdiMDFhZWM1YTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYlNvY2tldFRhc2s6Oldl
YlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIFNvdXBTZXNzaW9uKiBz
ZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAgIDog
bV9jaGFubmVsKGNoYW5uZWwpCisgICAgLCBtX3NvdXBNZXNzYWdlKG1zZykKICAgICAsIG1fY2Fu
Y2VsbGFibGUoYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpKQogewogICAgIGF1dG8gcHJv
dG9jb2xMaXN0ID0gcHJvdG9jb2wuc3BsaXQoJywnKTsKQEAgLTEwMSw3ICsxMDIsOCBAQCB2b2lk
IFdlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlv
bj4mJiBjb25uZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rp
b24uZ2V0KCksICJlcnJvciIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRSZWNlaXZl
RXJyb3JDYWxsYmFjayksIHRoaXMpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nv
bm5lY3Rpb24uZ2V0KCksICJjbG9zZWQiLCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlk
Q2xvc2VDYWxsYmFjayksIHRoaXMpOwogCi0gICAgbV9jaGFubmVsLmRpZENvbm5lY3Qoc291cF93
ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSwgYWNj
ZXB0ZWRFeHRlbnNpb25zKCkpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KHNvdXBfd2Vic29j
a2V0X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSksIGFjY2VwdGVk
RXh0ZW5zaW9ucygpLCBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKG1fc291cE1lc3NhZ2Ut
PnJlc3BvbnNlX2hlYWRlcnMsICJTZXQtQ29va2llIikpOworICAgIG1fc291cE1lc3NhZ2UgPSBu
dWxscHRyOwogfQogCiB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJh
Y2soV2ViU29ja2V0VGFzayogdGFzaywgU291cFdlYnNvY2tldERhdGFUeXBlIGRhdGFUeXBlLCBH
Qnl0ZXMqIG1lc3NhZ2UpCkBAIC0xMzYsNiArMTM4LDcgQEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRGYWlsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3JlY2VpdmVkRGlkRmFpbCA9IHRydWU7CisgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxwdHI7
CiAgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoZXJyb3JNZXNzYWdlKTsKICAg
ICBpZiAoIW1fY29ubmVjdGlvbikgewogICAgICAgICBkaWRDbG9zZShTT1VQX1dFQlNPQ0tFVF9D
TE9TRV9BQk5PUk1BTCwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKaW5kZXggZGE4NzYxMTA2NDguLmU0OWEwYTI3
YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2Vi
U29ja2V0VGFza1NvdXAuaApAQCAtNjAsNiArNjAsNyBAQCBwcml2YXRlOgogCiAgICAgTmV0d29y
a1NvY2tldENoYW5uZWwmIG1fY2hhbm5lbDsKICAgICBHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9zb3VwTWVz
c2FnZTsKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsKICAgICBib29s
IG1fcmVjZWl2ZWREaWRGYWlsIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVjZWl2ZWREaWRDbG9z
ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDJhMjY4MTkwMWZmLi4yNDdiZWZlODg5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5jcHAKQEAgLTkxLDYgKzkxLDkgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1
cyBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIGlm
IChyZXF1ZXN0LT51cmwoKSAhPSB1cmwgJiYgbV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5k
aWRVcGdyYWRlVVJMKCk7CiAKKyAgICBtX2h0dHBVUkxGb3JDb29raWVzID0gcmVxdWVzdC0+dXJs
KCk7CisgICAgbV9odHRwVVJMRm9yQ29va2llcy5zZXRQcm90b2NvbChyZXF1ZXN0LT51cmwoKS5w
cm90b2NvbElzKCJ3c3MiKSA/ICJodHRwcyIgOiAiaHR0cCIpOworCiAgICAgTWVzc2FnZVNlbmRl
cjo6c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNv
Y2tldENoYW5uZWwgeyBtX2RvY3VtZW50LT5zZXNzaW9uSUQoKSwgKnJlcXVlc3QsIHByb3RvY29s
LCBpZGVudGlmaWVyKCkgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwogfQpAQCAt
MzIxLDcgKzMyNCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiAgICAg
TWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3Nl
IHsgMCwgeyB9IH0pOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoU3Ry
aW5nJiYgc3VicHJvdG9jb2wsIFN0cmluZyYmIGV4dGVuc2lvbnMpCit2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0cmluZyYmIGV4dGVuc2lv
bnMsIFN0cmluZyYmIHNlcnZlclNldENvb2tpZSkKIHsKICAgICBpZiAobV9pc0Nsb3NpbmcpCiAg
ICAgICAgIHJldHVybjsKQEAgLTMzMCwxNCArMzMzLDIwIEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6ZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwgU3RyaW5nJiYgZXh0ZW5zaW9ucykK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faXNTdXNwZW5kZWQpIHsKLSAgICAgICAgZW5x
dWV1ZVRhc2soW3RoaXMsIHN1YnByb3RvY29sID0gV1RGTW92ZShzdWJwcm90b2NvbCksIGV4dGVu
c2lvbnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRp
ZENvbm5lY3QoV1RGTW92ZShzdWJwcm90b2NvbCksIFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAg
ICAgICBlbnF1ZXVlVGFzayhbdGhpcywgc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29s
KSwgZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyksIHNlcnZlclNldENvb2tpZSA9IFdU
Rk1vdmUoc2VydmVyU2V0Q29va2llKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBkaWRDb25u
ZWN0KFdURk1vdmUoc3VicHJvdG9jb2wpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpLCBXVEZNb3ZlKHNl
cnZlclNldENvb2tpZSkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIG1fc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29sKTsKICAgICBtX2V4dGVuc2lv
bnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpOworCisgICAgaWYgKCFzZXJ2ZXJTZXRDb29raWUuaXNF
bXB0eSgpKSB7CisgICAgICAgIGlmIChtX2RvY3VtZW50ICYmIG1fZG9jdW1lbnQtPnBhZ2UoKSAm
JiBtX2RvY3VtZW50LT5wYWdlKCktPmNvb2tpZUphcigpLmNvb2tpZXNFbmFibGVkKCptX2RvY3Vt
ZW50KSkKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y29va2llSmFyKCkuc2V0Q29v
a2llcygqbV9kb2N1bWVudCwgbV9odHRwVVJMRm9yQ29va2llcywgc2VydmVyU2V0Q29va2llKTsK
KyAgICB9CisKICAgICBtX2NsaWVudC0+ZGlkQ29ubmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggNmNj
NzEzNDVkNTYuLmIxYmI1OGRhOTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkZXJlZlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgZmluYWwgeyBkZXJl
ZigpOyB9CiAKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycwotICAgIHZvaWQgZGlkQ29ubmVjdChT
dHJpbmcmJiBzdWJwcm90b2NvbCwgU3RyaW5nJiYgZXh0ZW5zaW9ucyk7CisgICAgdm9pZCBkaWRD
b25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25zLCBTdHJpbmcm
JiBzZXJ2ZXJTZXRDb29raWUpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYpOwogICAg
IHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5nJiYpOwpAQCAtOTIsNiAr
OTIsNyBAQCBwcml2YXRlOgogCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpEb2N1bWVudD4gbV9kb2N1
bWVudDsKICAgICBXZWFrUHRyPFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQ+IG1fY2xp
ZW50OworICAgIFVSTCBtX2h0dHBVUkxGb3JDb29raWVzOwogICAgIFN0cmluZyBtX3N1YnByb3Rv
Y29sOwogICAgIFN0cmluZyBtX2V4dGVuc2lvbnM7CiAgICAgc2l6ZV90IG1fYnVmZmVyZWRBbW91
bnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRleCA3MGY3N2I5MmQ2OS4uYzNl
NDFjZTljM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJTb2NrZXRDaGFubmVsIHsKLSAgICBEaWRD
b25uZWN0KFN0cmluZyBzdWJwcm90b2NvbCwgU3RyaW5nIGV4dGVuc2lvbnMpCisgICAgRGlkQ29u
bmVjdChTdHJpbmcgc3VicHJvdG9jb2wsIFN0cmluZyBleHRlbnNpb25zLCBTdHJpbmcgc2VydmVy
U2V0Q29va2llKQogICAgIERpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIFN0cmluZyByZWFz
b24pCiAgICAgRGlkUmVjZWl2ZVRleHQoU3RyaW5nIG1lc3NhZ2UpCiAgICAgRGlkUmVjZWl2ZUJp
bmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375310</attachid>
            <date>2019-08-01 07:39:49 -0700</date>
            <delta_ts>2019-08-01 13:04:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-set-cookie.diff</filename>
            <type>text/plain</type>
            <size>12600</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNDE0OTBjNTZjZC4uYzUyMjI1ZThlODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgV2ViU29ja2V0czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRs
ZWQgd2hlbiB1c2luZyBwbGF0Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZmFpbHVyZSBleHBlY3RhdGlvbnMgb2YgdGVzdHMg
dGhhdCBhcmUgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdoZW4g
dXNpbmcgd2ViIHNvY2tldHMgbGlic291cCBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzQzM2NiMjMwZjQuLjM2YTljNTZlNThiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3NSwxMCArMTE3NSw2IEBA
IGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIFNr
aXAgXQogIyBJbnNwZWN0b3IgdGVzdHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tl
dHMgQVBJCiB3ZWJraXQub3JnL2IvMjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaW5zcGVjdG9yLyBbIFNraXAgXQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0
aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MjAwMzM4IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwg
WyBGYWlsdXJlIF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjNhMDhmNDZlNWUuLjRiNzYz
YTYzMjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDg0LDEwICs0ODQsNiBAQCB3ZWJraXQub3JnL2IvMjAwMjk1IGZhc3QvdmlzdWFsLXZpZXdwb3J0
L2NsaWVudC1yZWN0cy1yZWxhdGl2ZS10by1sYXlvdXQtdmlld3BvcgogIyBJbnNwZWN0b3IgdGVz
dHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tldHMgQVBJCiB3ZWJraXQub3JnL2Iv
MjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyBbIFNraXAg
XQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRz
IEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIw
MDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8w
MDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjAwMzM4IGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KIAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDk1OTM0ZWY5YTMuLmQ5ZmIw
NDE1MzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA4LTAxICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJTb2NrZXRzOiBy
ZXNwb25zZSBTZXQtQ29va2llIGhlYWRlciBub3QgaGFuZGxlZCB3aGVuIHVzaW5nIHBsYXRmb3Jt
IEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MDE2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdCk6IFBhc3Mgc2VydmVyU2V0Q29va2ll
IHRvIERpZENvbm5lY3QgbWVzc2FnZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tl
dFRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6ZGlkQ29ubmVj
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2spOiBTYXZlIHRo
ZSBzb3VwIG1lc3NhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZENvbm5l
Y3QpOiBHZXQgdGhlIFNldC1Db29raWUgaGVhZGVyIGZyb20gc291cCBtZXNzYWdlIHJlc3BvbnNl
IGFuZCBwYXNzIGl0IHRvCisgICAgICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0
KCkuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZEZhaWwpOiBDbGVhciB0aGUg
c291cCBtZXNzYWdlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFz
a1NvdXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOiBTYXZlIHRo
ZSBVUkwgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGNvb2tpZXMuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QpOiBTZXQgdGhlIGNvb2tpZXMgcmVjZWl2ZWQgZnJv
bSB0aGUgc2VydmVyIGlmIGFueS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gV2ViU29ja2V0czogYWRkIHN1cHBv
cnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVs
LmNwcAppbmRleCAwNGUzZDAyNTIyMC4uOTlmYjIzZTEyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC05Nyw5
ICs5Nyw5IEBAIHZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmNsb3NlKGludDMyX3QgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgZmluaXNoQ2xvc2luZ0lmUG9zc2libGUoKTsKIH0K
IAotdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHN1
YnByb3RvY29sLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpCit2b2lkIE5ldHdvcmtTb2NrZXRD
aGFubmVsOjpkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgc3VicHJvdG9jb2wsIGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9ucywgY29uc3QgU3RyaW5nJiBzZXJ2ZXJTZXRDb29raWUpCiB7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViU29ja2V0Q2hhbm5lbDo6RGlkQ29ubmVjdCB7IHN1YnByb3RvY29sLCBl
eHRlbnNpb25zIH0pOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNvY2tldENoYW5uZWw6OkRpZENv
bm5lY3QgeyBzdWJwcm90b2NvbCwgZXh0ZW5zaW9ucywgc2VydmVyU2V0Q29va2llIH0pOwogfQog
CiB2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dChjb25zdCBTdHJpbmcm
IHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
b2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRDaGFubmVsLmgKaW5kZXggNjcyYjM3ODFhNGQuLjE4OWU4M2IwNzIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgV2ViU29ja2V0VGFzazsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIGRpZENvbm5lY3QoY29uc3QgU3RyaW5nJiBzdWJwcm90b2NvbCwg
Y29uc3QgU3RyaW5nJiBleHRlbnNpb25zKTsKKyAgICB2b2lkIGRpZENvbm5lY3QoY29uc3QgU3Ry
aW5nJiBzdWJwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25zLCBjb25zdCBTdHJpbmcm
IHNlcnZlclNldENvb2tpZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGV4dChjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNp
emVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29u
c3QgU3RyaW5nJiByZWFzb24pOwpAQCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2
NF90IG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IG1fc29ja2V0OworICAgIFVSTCBt
X2h0dHBVUkxGb3JDb29raWVzOwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IE9wZW4sIENsb3Np
bmcsIENsb3NlZCB9OwogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6T3BlbiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tD
b2NvYS5tbQppbmRleCBlMTA0NTFjMWQ0Mi4uZDA1MDdiN2EzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1t
CkBAIC04NCw4ICs4NCw4IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6cmVzdW1lKCkKIAogdm9pZCBX
ZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiB7Ci0gICAg
Ly8gRklYTUU6IHN1cHBvcnQgZXh0ZW5zaW9ucy4KLSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChw
cm90b2NvbCwgeyB9KTsKKyAgICAvLyBGSVhNRTogc3VwcG9ydCBleHRlbnNpb25zIGFuZCBzZXJ2
ZXIgY29va2llLgorICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KHByb3RvY29sLCB7IH0sIHsgfSk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAppbmRleCBlNDM0YTA4NTI0YS4uMGEw
YmNmZWI5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9X
ZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5l
bCYgY2hhbm5lbCwgU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgOiBtX2NoYW5uZWwoY2hhbm5lbCkKKyAgICAsIG1fc291
cE1lc3NhZ2UobXNnKQogICAgICwgbV9jYW5jZWxsYWJsZShhZG9wdEdSZWYoZ19jYW5jZWxsYWJs
ZV9uZXcoKSkpCiB7CiAgICAgYXV0byBwcm90b2NvbExpc3QgPSBwcm90b2NvbC5zcGxpdCgnLCcp
OwpAQCAtMTAxLDcgKzEwMiw4IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdChHUmVm
UHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgZ19zaWduYWxf
Y29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQoKSwgImVycm9yIiwgcmVpbnRlcnByZXRf
Y2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVFcnJvckNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19z
aWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5nZXQoKSwgImNsb3NlZCIsIHJlaW50
ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRDbG9zZUNhbGxiYWNrKSwgdGhpcyk7CiAKLSAgICBt
X2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2Nv
bChtX2Nvbm5lY3Rpb24uZ2V0KCkpLCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7CisgICAgbV9jaGFu
bmVsLmRpZENvbm5lY3Qoc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfcHJvdG9jb2wobV9j
b25uZWN0aW9uLmdldCgpKSwgYWNjZXB0ZWRFeHRlbnNpb25zKCksIHNvdXBfbWVzc2FnZV9oZWFk
ZXJzX2dldF9vbmUobV9zb3VwTWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIlNldC1Db29raWUi
KSk7CisgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViU29ja2V0VGFz
azo6ZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhXZWJTb2NrZXRUYXNrKiB0YXNrLCBTb3VwV2Vi
c29ja2V0RGF0YVR5cGUgZGF0YVR5cGUsIEdCeXRlcyogbWVzc2FnZSkKQEAgLTEzNiw2ICsxMzgs
NyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZEZhaWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcmVjZWl2ZWREaWRGYWlsID0gdHJ1ZTsKKyAg
ICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihlcnJvck1lc3NhZ2UpOwogICAgIGlmICghbV9jb25uZWN0aW9uKSB7CiAgICAgICAg
IGRpZENsb3NlKFNPVVBfV0VCU09DS0VUX0NMT1NFX0FCTk9STUFMLCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaApp
bmRleCBkYTg3NjExMDY0OC4uZTQ5YTBhMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCkBAIC02MCw2ICs2MCw3
IEBAIHByaXZhdGU6CiAKICAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbCYgbV9jaGFubmVsOwogICAg
IEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBHUmVm
UHRyPFNvdXBNZXNzYWdlPiBtX3NvdXBNZXNzYWdlOwogICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxl
PiBtX2NhbmNlbGxhYmxlOwogICAgIGJvb2wgbV9yZWNlaXZlZERpZEZhaWwgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9yZWNlaXZlZERpZENsb3NlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzMz
NTI3NjU4NzEuLjM0OGI5ZmIxZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtOTEsNiArOTEsOSBAQCBXZWJT
b2NrZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29u
c3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgaWYgKHJlcXVlc3QtPnVybCgpICE9IHVybCAmJiBtX2Ns
aWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZFVwZ3JhZGVVUkwoKTsKIAorICAgIG1faHR0cFVS
TEZvckNvb2tpZXMgPSByZXF1ZXN0LT51cmwoKTsKKyAgICBtX2h0dHBVUkxGb3JDb29raWVzLnNl
dFByb3RvY29sKHJlcXVlc3QtPnVybCgpLnByb3RvY29sSXMoIndzcyIpID8gImh0dHBzIiA6ICJo
dHRwIik7CisKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7IG1fZG9jdW1lbnQtPnNlc3Np
b25JRCgpLCAqcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIoKSB9KTsKICAgICByZXR1cm4g
Q29ubmVjdFN0YXR1czo6T0s7CiB9CkBAIC0zMjEsNyArMzI0LDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaXNjb25uZWN0KCkKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrU29ja2V0Q2hhbm5lbDo6Q2xvc2UgeyAwLCB7IH0gfSk7CiB9CiAKLXZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwgU3RyaW5nJiYgZXh0
ZW5zaW9ucykKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJw
cm90b2NvbCwgU3RyaW5nJiYgZXh0ZW5zaW9ucywgU3RyaW5nJiYgc2VydmVyU2V0Q29va2llKQog
ewogICAgIGlmIChtX2lzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMzMwLDE0ICszMzMs
MjAgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3Rv
Y29sLCBTdHJpbmcmJiBleHRlbnNpb25zKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9p
c1N1c3BlbmRlZCkgewotICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgc3VicHJvdG9jb2wgPSBX
VEZNb3ZlKHN1YnByb3RvY29sKSwgZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyldICgp
IG11dGFibGUgewotICAgICAgICAgICAgZGlkQ29ubmVjdChXVEZNb3ZlKHN1YnByb3RvY29sKSwg
V1RGTW92ZShleHRlbnNpb25zKSk7CisgICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBzdWJwcm90
b2NvbCA9IFdURk1vdmUoc3VicHJvdG9jb2wpLCBleHRlbnNpb25zID0gV1RGTW92ZShleHRlbnNp
b25zKSwgc2VydmVyU2V0Q29va2llID0gV1RGTW92ZShzZXJ2ZXJTZXRDb29raWUpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGRpZENvbm5lY3QoV1RGTW92ZShzdWJwcm90b2NvbCksIFdURk1v
dmUoZXh0ZW5zaW9ucyksIFdURk1vdmUoc2VydmVyU2V0Q29va2llKSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3Vi
cHJvdG9jb2wpOwogICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CisKKyAg
ICBpZiAoIXNlcnZlclNldENvb2tpZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG1fZG9jdW1l
bnQgJiYgbV9kb2N1bWVudC0+cGFnZSgpICYmIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y29va2llSmFy
KCkuY29va2llc0VuYWJsZWQoKm1fZG9jdW1lbnQpKQorICAgICAgICAgICAgbV9kb2N1bWVudC0+
cGFnZSgpLT5jb29raWVKYXIoKS5zZXRDb29raWVzKCptX2RvY3VtZW50LCBtX2h0dHBVUkxGb3JD
b29raWVzLCBzZXJ2ZXJTZXRDb29raWUpOworICAgIH0KKwogICAgIG1fY2xpZW50LT5kaWRDb25u
ZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwuaAppbmRleCA2Y2M3MTM0NWQ1Ni4uYjFiYjU4ZGE5MjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIC8vIE1lc3NhZ2UgcmVjZWl2
ZXJzCi0gICAgdm9pZCBkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBl
eHRlbnNpb25zKTsKKyAgICB2b2lkIGRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0
cmluZyYmIGV4dGVuc2lvbnMsIFN0cmluZyYmIHNlcnZlclNldENvb2tpZSk7CiAgICAgdm9pZCBk
aWRSZWNlaXZlVGV4dChTdHJpbmcmJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShJ
UEM6OkRhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBj
b2RlLCBTdHJpbmcmJik7CkBAIC05Miw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRy
PFdlYkNvcmU6OkRvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIFdlYWtQdHI8V2ViQ29yZTo6V2Vi
U29ja2V0Q2hhbm5lbENsaWVudD4gbV9jbGllbnQ7CisgICAgVVJMIG1faHR0cFVSTEZvckNvb2tp
ZXM7CiAgICAgU3RyaW5nIG1fc3VicHJvdG9jb2w7CiAgICAgU3RyaW5nIG1fZXh0ZW5zaW9uczsK
ICAgICBzaXplX3QgbV9idWZmZXJlZEFtb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLm1lc3NhZ2Vz
LmluCmluZGV4IDcwZjc3YjkyZDY5Li5jM2U0MWNlOWMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLm1lc3Nh
Z2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdl
YlNvY2tldENoYW5uZWwgewotICAgIERpZENvbm5lY3QoU3RyaW5nIHN1YnByb3RvY29sLCBTdHJp
bmcgZXh0ZW5zaW9ucykKKyAgICBEaWRDb25uZWN0KFN0cmluZyBzdWJwcm90b2NvbCwgU3RyaW5n
IGV4dGVuc2lvbnMsIFN0cmluZyBzZXJ2ZXJTZXRDb29raWUpCiAgICAgRGlkQ2xvc2UodW5zaWdu
ZWQgc2hvcnQgY29kZSwgU3RyaW5nIHJlYXNvbikKICAgICBEaWRSZWNlaXZlVGV4dChTdHJpbmcg
bWVzc2FnZSkKICAgICBEaWRSZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0
YSkK
</data>
<flag name="review"
          id="391093"
          type_id="1"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375338</attachid>
            <date>2019-08-01 13:04:17 -0700</date>
            <delta_ts>2019-08-02 01:26:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-set-cookie.diff</filename>
            <type>text/plain</type>
            <size>18842</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNDE0OTBjNTZjZC4uYzUyMjI1ZThlODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgV2ViU29ja2V0czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRs
ZWQgd2hlbiB1c2luZyBwbGF0Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZmFpbHVyZSBleHBlY3RhdGlvbnMgb2YgdGVzdHMg
dGhhdCBhcmUgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdoZW4g
dXNpbmcgd2ViIHNvY2tldHMgbGlic291cCBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzQzM2NiMjMwZjQuLjM2YTljNTZlNThiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3NSwxMCArMTE3NSw2IEBA
IGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIFNr
aXAgXQogIyBJbnNwZWN0b3IgdGVzdHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tl
dHMgQVBJCiB3ZWJraXQub3JnL2IvMjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaW5zcGVjdG9yLyBbIFNraXAgXQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0
aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MjAwMzM4IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwg
WyBGYWlsdXJlIF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjNhMDhmNDZlNWUuLjRiNzYz
YTYzMjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDg0LDEwICs0ODQsNiBAQCB3ZWJraXQub3JnL2IvMjAwMjk1IGZhc3QvdmlzdWFsLXZpZXdwb3J0
L2NsaWVudC1yZWN0cy1yZWxhdGl2ZS10by1sYXlvdXQtdmlld3BvcgogIyBJbnNwZWN0b3IgdGVz
dHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tldHMgQVBJCiB3ZWJraXQub3JnL2Iv
MjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyBbIFNraXAg
XQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRz
IEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIw
MDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8w
MDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjAwMzM4IGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KIAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MGUyNTJkNDJmYy4uNGI0
YzkxZjUwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wOC0wMSAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0
czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRsZWQgd2hlbiB1c2luZyBwbGF0
Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgZmlyc3RQYXJ0eUZvckNvb2tpZXMgYW5kIFNhbWVTaXRlSW5mbyB0byB0aGUgV2ViU29j
a2V0IGNvbm5lY3QgcmVxdWVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlc3QpOgorCiAyMDE5LTA4LTAx
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
U09VUF0gV2ViU29ja2V0czogYWRkIHN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3
ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5k
ZXggNjVjN2Y3Njk0NTIuLmQ2ZTJkM2EwOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3Vs
dHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0xMTAsNiArMTExLDggQEAgT3B0
aW9uYWw8UmVzb3VyY2VSZXF1ZXN0PiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6d2ViU29j
a2V0Q29ubmVjdFJlcXVlc3QoRG8KICAgICByZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQoZG9jdW1l
bnQudXNlckFnZW50KHZhbGlkYXRlZFVSTC0+dXJsKSk7CiAgICAgcmVxdWVzdC5zZXREb21haW5G
b3JDYWNoZVBhcnRpdGlvbihkb2N1bWVudC5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICAg
ICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh2YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2Vk
KTsKKyAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCkpOworICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVl
c3RJZk5lZWRlZChyZXF1ZXN0LCAmZG9jdW1lbnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhl
YWRlcnMgdG8gYXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4KICAgICAvLyBUaGVyZSBhcmUgc29t
ZSBwcm94aWVzIHRoYXQgcmV3cml0ZSAiQ29ubmVjdGlvbjogdXBncmFkZSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDk1OTM0ZWY5YTMuLjMyODY0NmRmZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5
LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAg
ICAgICBXZWJTb2NrZXRzOiByZXNwb25zZSBTZXQtQ29va2llIGhlYWRlciBub3QgaGFuZGxlZCB3
aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y3JlYXRlU29ja2V0Q2hhbm5lbCk6IEFkZCBmcmFtZUlEIGFuZCBwYWdlSUQgcGFyYW1ldGVy
cworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENo
YW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKTogU2F2ZSB0aGUgZ2l2ZW4gcmVxdWVzdCwgZnJh
bWVJRCBhbmQgcGFnZUlEIGFzIG1lbWViZXJzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29j
a2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdCk6IFNldCB0aGUgY29va2llcyByZWNlaXZlZCBmcm9tIHRo
ZSBzZXJ2ZXIgaWYgYW55LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0Nv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayk6IFNhdmUgdGhlIHNvdXAg
bWVzc2FnZSBhcyBtZW1iZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZENv
bm5lY3QpOiBHZXQgdGhlIFNldC1Db29raWUgaGVhZGVyIGZyb20gc291cCBtZXNzYWdlIHJlc3Bv
bnNlIGFuZCBwYXNzIGl0IHRvCisgICAgICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25u
ZWN0KCkuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZEZhaWwpOiBDbGVhciB0
aGUgc291cCBtZXNzYWdlLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0
VGFza1NvdXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOiBHZXQg
dGhlIGZyYW1lSUQgYW5kIHBhZ2VJRCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGFzcyB0aGVtIHRv
CisgICAgICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFu
bmVsIG1lc3NhZ2UuCisKIDIwMTktMDgtMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTT1VQXSBXZWJTb2NrZXRzOiBhZGQgc3VwcG9ydCBm
b3IgZXh0ZW5zaW9ucyB3aGVuIHVzaW5nIHdlYiBzb2NrZXRzIGxpYnNvdXAgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDliMWI5Yjg2MDQzLi4yNzEzNWQ2OThkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM0MCwxMCArMzQwLDEwIEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldFN0cmVhbShVUkwmJiB1cmwsIFBB
TDo6U2Vzc2lvbklECiAgICAgbV9uZXR3b3JrU29ja2V0U3RyZWFtcy5zZXQoaWRlbnRpZmllciwg
TmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCksIFdURk1v
dmUodXJsKSwgc2Vzc2lvbklELCBjYWNoZVBhcnRpdGlvbiwgaWRlbnRpZmllciwgbV9jb25uZWN0
aW9uLCBXVEZNb3ZlKHRva2VuKSkpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50
NjRfdCBpZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3Jl
YXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX25ldHdvcmtTb2NrZXRDaGFubmVscy5jb250YWlu
cyhpZGVudGlmaWVyKSk7Ci0gICAgaWYgKGF1dG8gY2hhbm5lbCA9IE5ldHdvcmtTb2NrZXRDaGFu
bmVsOjpjcmVhdGUoKnRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZp
ZXIpKQorICAgIGlmIChhdXRvIGNoYW5uZWwgPSBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRl
KCp0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3QsIHByb3RvY29sLCBmcmFtZUlELCBwYWdlSUQsIGlk
ZW50aWZpZXIpKQogICAgICAgICBtX25ldHdvcmtTb2NrZXRDaGFubmVscy5hZGQoaWRlbnRpZmll
ciwgV1RGTW92ZShjaGFubmVsKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBk
N2IyZjFiNjNiYy4uNTA4ZDhhMDg3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTE5
Niw3ICsxOTYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTb2NrZXRTdHJlYW0oVVJM
JiYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90KTsKIAot
ICAgIHZvaWQgY3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRl
bnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+LCB1aW50NjRfdCBpZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZW5zdXJlTGVnYWN5UHJpdmF0
ZUJyb3dzaW5nU2Vzc2lvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCBmYTJjMzFhNDEzYS4uMTlkYzc0ZmJlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTMsNyArNTMsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQpCiAKICAg
ICBDcmVhdGVTb2NrZXRTdHJlYW0oVVJMIHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcgY2FjaGVQYXJ0aXRpb24sIHVpbnQ2NF90IGlkZW50aWZpZXIpCi0gICAgQ3JlYXRlU29j
a2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBTdHJpbmcgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCisgICAg
Q3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgcHJvdG9jb2wsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCB1aW50
NjRfdCBpZGVudGlmaWVyKQogCiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bigpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggMDRlM2QwMjUyMjAuLjNkZmUyZTM3MzM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNw
cApAQCAtMzIsMTMgKzMyLDE0IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKICNpbmNs
dWRlICJXZWJTb2NrZXRDaGFubmVsTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRUYXNr
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TYW1lU2l0ZUluZm8uaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtT
b2NrZXRDaGFubmVsPiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWlu
dDY0X3QgaWRlbnRpZmllcikKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4g
TmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCB1aW50NjRfdCBpZGVu
dGlmaWVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU29j
a2V0Q2hhbm5lbD4oY29ubmVjdGlvbiwgY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLm5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCksIHJlcXVlc3QsIHByb3RvY29sLCBpZGVudGlmaWVyKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya1NvY2tldENoYW5uZWw+KGNv
bm5lY3Rpb24sIGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpLCByZXF1ZXN0LCBwcm90b2NvbCwgZnJhbWVJRCwgcGFnZUlELCBpZGVudGlmaWVyKTsK
ICAgICBpZiAoIXJlc3VsdC0+bV9zb2NrZXQpIHsKICAgICAgICAgcmVzdWx0LT5kaWRDbG9zZSgw
LCAiQ2Fubm90IGNyZWF0ZSBhIHdlYiBzb2NrZXQgdGFzayJfcyk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNDYsMTAgKzQ3LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0
Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3b3Jr
U2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKQorTmV0d29ya1NvY2tldENoYW5u
ZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uLCBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgdWludDY0X3QgaWRlbnRpZmll
cikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQogICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3Nlc3Npb24obWFrZVdlYWtQdHIoc2Vzc2lv
bikpCisgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQor
ICAgICwgbV9wYWdlSUQocGFnZUlEKQogewogICAgIGlmICghbV9zZXNzaW9uKQogICAgICAgICBy
ZXR1cm47CkBAIC05Nyw4ICsxMDEsMTQgQEAgdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y2xv
c2UoaW50MzJfdCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKICAgICBmaW5pc2hDbG9zaW5n
SWZQb3NzaWJsZSgpOwogfQogCi12b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0
KGNvbnN0IFN0cmluZyYgc3VicHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9ucykKK3Zv
aWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoY29uc3QgU3RyaW5nJiBzdWJwcm90
b2NvbCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25zLCBjb25zdCBTdHJpbmcmIHNlcnZlclNldENv
b2tpZSkKIHsKKyAgICBpZiAoIXNlcnZlclNldENvb2tpZS5pc0VtcHR5KCkgJiYgbV9zZXNzaW9u
KSB7CisgICAgICAgIGF1dG8gaHR0cFVSTEZvckNvb2tpZXMgPSBtX3JlcXVlc3QudXJsKCk7Cisg
ICAgICAgIGh0dHBVUkxGb3JDb29raWVzLnNldFByb3RvY29sKG1fcmVxdWVzdC51cmwoKS5wcm90
b2NvbElzKCJ3c3MiKSA/ICJodHRwcyIgOiAiaHR0cCIpOworICAgICAgICBtX3Nlc3Npb24tPm5l
dHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVzRnJvbURPTShtX3JlcXVlc3QuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUobV9yZXF1ZXN0KSwKKyAgICAg
ICAgICAgIGh0dHBVUkxGb3JDb29raWVzLCBtX2ZyYW1lSUQsIG1fcGFnZUlELCBzZXJ2ZXJTZXRD
b29raWUpOworICAgIH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTb2NrZXRDaGFubmVsOjpEaWRD
b25uZWN0IHsgc3VicHJvdG9jb2wsIGV4dGVuc2lvbnMgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCA2NzJi
Mzc4MWE0ZC4uYWM2NzM3ZTZhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTI3LDEzICsyNywxMCBAQAogCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Ci19Ci0KIG5hbWVzcGFjZSBJUEMgewogY2xh
c3MgQ29ubmVjdGlvbjsKIGNsYXNzIERlY29kZXI7CkBAIC00OSw5ICs0Niw5IEBAIGNsYXNzIE5l
dHdvcmtTZXNzaW9uOwogCiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6
Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5u
ZWw+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+LCB1aW50NjRfdCBpZGVudGlmaWVyKTsKIAotICAgIE5ldHdvcmtTb2NrZXRDaGFubmVs
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRf
dCBpZGVudGlmaWVyKTsKKyAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmll
cik7CiAgICAgfk5ldHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNTksNyArNTYsNyBA
QCBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFdlYlNvY2tldFRhc2s7CiAKIHByaXZhdGU6Ci0g
ICAgdm9pZCBkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgc3VicHJvdG9jb2wsIGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9ucyk7CisgICAgdm9pZCBkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgc3VicHJv
dG9jb2wsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9ucywgY29uc3QgU3RyaW5nJiBzZXJ2ZXJTZXRD
b29raWUpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3Ro
KTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKTsKQEAgLTc4LDYgKzc1LDkgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXI7CiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBtX3NvY2tldDsKKyAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG1fcGFnZUlEOwogCiAgICAgZW51
bSBjbGFzcyBTdGF0ZSB7IE9wZW4sIENsb3NpbmcsIENsb3NlZCB9OwogICAgIFN0YXRlIG1fc3Rh
dGUgeyBTdGF0ZTo6T3BlbiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBlMTA0NTFjMWQ0Mi4uZDA1
MDdiN2EzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
V2ViU29ja2V0VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCkBAIC04NCw4ICs4NCw4IEBAIHZvaWQgV2ViU29j
a2V0VGFzazo6cmVzdW1lKCkKIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnQgZXh0ZW5zaW9ucy4K
LSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChwcm90b2NvbCwgeyB9KTsKKyAgICAvLyBGSVhNRTog
c3VwcG9ydCBleHRlbnNpb25zIGFuZCBzZXJ2ZXIgY29va2llLgorICAgIG1fY2hhbm5lbC5kaWRD
b25uZWN0KHByb3RvY29sLCB7IH0sIHsgfSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlk
Q2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3Vw
LmNwcAppbmRleCBlNDM0YTA4NTI0YS4uMGEwYmNmZWI5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAt
MzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViU29ja2V0VGFzazo6V2ViU29j
a2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgU291cFNlc3Npb24qIHNlc3Np
b24sIFNvdXBNZXNzYWdlKiBtc2csIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgOiBtX2No
YW5uZWwoY2hhbm5lbCkKKyAgICAsIG1fc291cE1lc3NhZ2UobXNnKQogICAgICwgbV9jYW5jZWxs
YWJsZShhZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSkpCiB7CiAgICAgYXV0byBwcm90b2Nv
bExpc3QgPSBwcm90b2NvbC5zcGxpdCgnLCcpOwpAQCAtMTAxLDcgKzEwMiw4IEBAIHZvaWQgV2Vi
U29ja2V0VGFzazo6ZGlkQ29ubmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5n
ZXQoKSwgImVycm9yIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVFcnJv
ckNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVj
dGlvbi5nZXQoKSwgImNsb3NlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRDbG9z
ZUNhbGxiYWNrKSwgdGhpcyk7CiAKLSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dlYnNv
Y2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpLCBhY2NlcHRl
ZEV4dGVuc2lvbnMoKSk7CisgICAgbV9jaGFubmVsLmRpZENvbm5lY3Qoc291cF93ZWJzb2NrZXRf
Y29ubmVjdGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSwgYWNjZXB0ZWRFeHRl
bnNpb25zKCksIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmUobV9zb3VwTWVzc2FnZS0+cmVz
cG9uc2VfaGVhZGVycywgIlNldC1Db29raWUiKSk7CisgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhX
ZWJTb2NrZXRUYXNrKiB0YXNrLCBTb3VwV2Vic29ja2V0RGF0YVR5cGUgZGF0YVR5cGUsIEdCeXRl
cyogbWVzc2FnZSkKQEAgLTEzNiw2ICsxMzgsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZEZh
aWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
cmVjZWl2ZWREaWRGYWlsID0gdHJ1ZTsKKyAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKICAg
ICBtX2NoYW5uZWwuZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOwogICAgIGlm
ICghbV9jb25uZWN0aW9uKSB7CiAgICAgICAgIGRpZENsb3NlKFNPVVBfV0VCU09DS0VUX0NMT1NF
X0FCTk9STUFMLCB7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAppbmRleCBkYTg3NjExMDY0OC4uZTQ5YTBhMjdiMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRU
YXNrU291cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2Nr
ZXRUYXNrU291cC5oCkBAIC02MCw2ICs2MCw3IEBAIHByaXZhdGU6CiAKICAgICBOZXR3b3JrU29j
a2V0Q2hhbm5lbCYgbV9jaGFubmVsOwogICAgIEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKKyAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBtX3NvdXBNZXNzYWdl
OwogICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBtX2NhbmNlbGxhYmxlOwogICAgIGJvb2wgbV9y
ZWNlaXZlZERpZEZhaWwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZWNlaXZlZERpZENsb3NlIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzMzNTI3NjU4NzEuLmIyMGMwMTQzOWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVs
LmNwcApAQCAtOTEsNyArOTEsMTQgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBX
ZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIGlmIChy
ZXF1ZXN0LT51cmwoKSAhPSB1cmwgJiYgbV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRV
cGdyYWRlVVJMKCk7CiAKLSAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7IG1fZG9jdW1lbnQt
PnNlc3Npb25JRCgpLCAqcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIoKSB9KTsKKyAgICBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOworICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQtPmZyYW1lKCkpIHsKKyAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CisgICAg
ICAgIHBhZ2VJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKTsKKyAgICB9CisK
KyAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7IG1fZG9jdW1lbnQtPnNlc3Npb25JRCgpLCAq
cmVxdWVzdCwgcHJvdG9jb2wsIGZyYW1lSUQsIHBhZ2VJRCwgaWRlbnRpZmllcigpIH0pOwogICAg
IHJldHVybiBDb25uZWN0U3RhdHVzOjpPSzsKIH0KIAo=
</data>
<flag name="review"
          id="391121"
          type_id="1"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375402</attachid>
            <date>2019-08-02 01:26:07 -0700</date>
            <delta_ts>2019-08-02 01:39:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-cookies.diff</filename>
            <type>text/plain</type>
            <size>17899</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNDE0OTBjNTZjZC4uZDZhNGVkZTFkNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgV2ViU29ja2V0czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRs
ZWQgd2hlbiB1c2luZyBwbGF0Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZmFpbHVyZSBleHBlY3RhdGlvbnMgb2YgdGVzdHMg
dGhhdCBhcmUgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdoZW4g
dXNpbmcgd2ViIHNvY2tldHMgbGlic291cCBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzQzM2NiMjMwZjQuLjM2YTljNTZlNThiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3NSwxMCArMTE3NSw2IEBA
IGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIFNr
aXAgXQogIyBJbnNwZWN0b3IgdGVzdHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tl
dHMgQVBJCiB3ZWJraXQub3JnL2IvMjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaW5zcGVjdG9yLyBbIFNraXAgXQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0
aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MjAwMzM4IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwg
WyBGYWlsdXJlIF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjNhMDhmNDZlNWUuLjRiNzYz
YTYzMjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDg0LDEwICs0ODQsNiBAQCB3ZWJraXQub3JnL2IvMjAwMjk1IGZhc3QvdmlzdWFsLXZpZXdwb3J0
L2NsaWVudC1yZWN0cy1yZWxhdGl2ZS10by1sYXlvdXQtdmlld3BvcgogIyBJbnNwZWN0b3IgdGVz
dHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tldHMgQVBJCiB3ZWJraXQub3JnL2Iv
MjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyBbIFNraXAg
XQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRz
IEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIw
MDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8w
MDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjAwMzM4IGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KIAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MGUyNTJkNDJmYy4uNDVm
ZWIwNTYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wOC0wMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0
czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRsZWQgd2hlbiB1c2luZyBwbGF0
Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgZmlyc3RQYXJ0eUZvckNvb2tpZXMgYW5kIFNhbWVTaXRlSW5mbyB0byB0aGUgV2ViU29j
a2V0IGNvbm5lY3QgcmVxdWVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlc3QpOgorCiAyMDE5LTA4LTAx
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
U09VUF0gV2ViU29ja2V0czogYWRkIHN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3
ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5k
ZXggNjVjN2Y3Njk0NTIuLmQ2ZTJkM2EwOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3Vs
dHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0xMTAsNiArMTExLDggQEAgT3B0
aW9uYWw8UmVzb3VyY2VSZXF1ZXN0PiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6d2ViU29j
a2V0Q29ubmVjdFJlcXVlc3QoRG8KICAgICByZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQoZG9jdW1l
bnQudXNlckFnZW50KHZhbGlkYXRlZFVSTC0+dXJsKSk7CiAgICAgcmVxdWVzdC5zZXREb21haW5G
b3JDYWNoZVBhcnRpdGlvbihkb2N1bWVudC5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICAg
ICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh2YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2Vk
KTsKKyAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCkpOworICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVl
c3RJZk5lZWRlZChyZXF1ZXN0LCAmZG9jdW1lbnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhl
YWRlcnMgdG8gYXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4KICAgICAvLyBUaGVyZSBhcmUgc29t
ZSBwcm94aWVzIHRoYXQgcmV3cml0ZSAiQ29ubmVjdGlvbjogdXBncmFkZSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDk1OTM0ZWY5YTMuLjFmNjJhODQ0OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5
LTA4LTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAg
ICAgICBXZWJTb2NrZXRzOiByZXNwb25zZSBTZXQtQ29va2llIGhlYWRlciBub3QgaGFuZGxlZCB3
aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y3JlYXRlU29ja2V0Q2hhbm5lbCk6IEFkZCBmcmFtZUlEIGFuZCBwYWdlSUQgcGFyYW1ldGVy
cworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENo
YW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKTogU2F2ZSB0aGUgZ2l2ZW4gcmVxdWVzdCwgZnJh
bWVJRCBhbmQgcGFnZUlEIGFzIG1lbWViZXJzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29j
a2V0Q2hhbm5lbDo6c2V0Q29va2llcyk6IFNldCB0aGUgY29va2llcyByZWNlaXZlZCBmcm9tIHRo
ZSBzZXJ2ZXIgaWYgYW55LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2spOiBT
YXZlIHRoZSBzb3VwIG1lc3NhZ2UgYXMgbWVtYmVyLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2Nr
ZXRUYXNrOjpkaWRDb25uZWN0KTogR2V0IHRoZSBTZXQtQ29va2llIGhlYWRlciBmcm9tIHNvdXAg
bWVzc2FnZSByZXNwb25zZSBhbmQgY2FsbAorICAgICAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6
c2V0Q29va2llcygpLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRGYWlsKTog
Q2xlYXIgdGhlIHNvdXAgbWVzc2FnZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dl
YlNvY2tldFRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KTogR2V0IHRoZSBmcmFtZUlEIGFuZCBwYWdlSUQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBhc3Mg
dGhlbSB0bworICAgICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29j
a2V0Q2hhbm5lbCBtZXNzYWdlLgorCiAyMDE5LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gV2ViU29ja2V0czogYWRkIHN1
cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5YjFiOWI4NjA0My4uMjcxMzVkNjk4ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNDAsMTAgKzM0MCwxMCBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0oVVJMJiYg
dXJsLCBQQUw6OlNlc3Npb25JRAogICAgIG1fbmV0d29ya1NvY2tldFN0cmVhbXMuc2V0KGlkZW50
aWZpZXIsIE5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZShtX25ldHdvcmtQcm9jZXNzLmdldCgp
LCBXVEZNb3ZlKHVybCksIHNlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlkZW50aWZpZXIsIG1f
Y29ubmVjdGlvbiwgV1RGTW92ZSh0b2tlbikpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgdWludDY0X3QgaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCB1aW50
NjRfdCBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghbV9uZXR3b3JrU29ja2V0Q2hhbm5lbHMu
Y29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIGlmIChhdXRvIGNoYW5uZWwgPSBOZXR3b3JrU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3QsIHByb3RvY29sLCBp
ZGVudGlmaWVyKSkKKyAgICBpZiAoYXV0byBjaGFubmVsID0gTmV0d29ya1NvY2tldENoYW5uZWw6
OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0LCBwcm90b2NvbCwgZnJhbWVJRCwgcGFn
ZUlELCBpZGVudGlmaWVyKSkKICAgICAgICAgbV9uZXR3b3JrU29ja2V0Q2hhbm5lbHMuYWRkKGlk
ZW50aWZpZXIsIFdURk1vdmUoY2hhbm5lbCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggZDdiMmYxYjYzYmMuLjUwOGQ4YTA4NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC0xOTYsNyArMTk2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU29ja2V0U3Ry
ZWFtKFVSTCYmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRf
dCk7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2
NF90IGlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90
b2NvbCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmllcik7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2Fj
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggZmEyYzMxYTQxM2EuLjE5ZGM3NGZiZTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUzLDcgKzUzLDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogCiAgICAgQ3JlYXRlU29ja2V0U3RyZWFtKFVSTCB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyKQotICAgIENy
ZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVy
KQorICAgIENyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgdWludDY0X3QgaWRlbnRpZmllcikKIAogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IDA0ZTNkMDI1MjIwLi4xZjY5ZDVlZTkwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5jcHAKQEAgLTMyLDEzICszMiwxNCBAQAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgi
CiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0VGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9j
b2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENo
YW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgdWludDY0
X3QgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0
d29ya1NvY2tldENoYW5uZWw+KGNvbm5lY3Rpb24sIGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3Mo
KS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCByZXF1ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmll
cik7CisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTb2NrZXRDaGFu
bmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9jb2wsIGZyYW1lSUQsIHBhZ2VJRCwgaWRlbnRp
Zmllcik7CiAgICAgaWYgKCFyZXN1bHQtPm1fc29ja2V0KSB7CiAgICAgICAgIHJlc3VsdC0+ZGlk
Q2xvc2UoMCwgIkNhbm5vdCBjcmVhdGUgYSB3ZWIgc29ja2V0IHRhc2siX3MpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTQ2LDEwICs0NywxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29y
a1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5l
YwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLU5ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3Jr
U29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
TmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcikKK05ldHdvcmtTb2Nr
ZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKICAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zZXNzaW9uKG1ha2VXZWFrUHRy
KHNlc3Npb24pKQorICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBtX2ZyYW1lSUQoZnJh
bWVJRCkKKyAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKIHsKICAgICBpZiAoIW1fc2Vzc2lvbikKICAg
ICAgICAgcmV0dXJuOwpAQCAtOTcsNiArMTAxLDE3IEBAIHZvaWQgTmV0d29ya1NvY2tldENoYW5u
ZWw6OmNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgZmluaXNo
Q2xvc2luZ0lmUG9zc2libGUoKTsKIH0KIAordm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2V0
Q29va2llcyhjb25zdCBTdHJpbmcmIHNlcnZlclNldENvb2tpZSkKK3sKKyAgICBpZiAoc2VydmVy
U2V0Q29va2llLmlzRW1wdHkoKSB8fCAhbV9zZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIGh0dHBVUkxGb3JDb29raWVzID0gbV9yZXF1ZXN0LnVybCgpOworICAgIGh0dHBVUkxG
b3JDb29raWVzLnNldFByb3RvY29sKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJ3c3MiKSA/
ICJodHRwcyIgOiAiaHR0cCIpOworICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCktPnNldENvb2tpZXNGcm9tRE9NKG1fcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBT
YW1lU2l0ZUluZm86OmNyZWF0ZShtX3JlcXVlc3QpLAorICAgICAgICBodHRwVVJMRm9yQ29va2ll
cywgbV9mcmFtZUlELCBtX3BhZ2VJRCwgc2VydmVyU2V0Q29va2llKTsKK30KKwogdm9pZCBOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHN1YnByb3RvY29sLCBj
b25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU29ja2V0
Q2hhbm5lbDo6RGlkQ29ubmVjdCB7IHN1YnByb3RvY29sLCBleHRlbnNpb25zIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmlu
ZGV4IDY3MmIzNzgxYTRkLi4zOWZjMDlmZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaApAQCAtMjcsMTMgKzI3LDExIEBA
CiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7Ci19Ci0KIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlv
bjsKIGNsYXNzIERlY29kZXI7CkBAIC00OSw5ICs0Nyw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9u
OwogCiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCB1aW50
NjRfdCBpZGVudGlmaWVyKTsKIAotICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVy
KTsKKyAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmllcik7CiAgICAgfk5l
dHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjgsNiArNjYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2VuZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pOworICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBTdHJpbmcm
KTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzgsNiArNzcsOSBAQCBwcml2YXRl
OgogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9u
PiBtX3Nlc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IG1fc29ja2V0
OworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgT3B0aW9uYWw8
dWludDY0X3Q+IG1fZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gbV9wYWdlSUQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgT3BlbiwgQ2xvc2luZywgQ2xv
c2VkIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpPcGVuIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApp
bmRleCBlNDM0YTA4NTI0YS4uY2JjMzU0MTc1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMzYsNiAr
MzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFz
ayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgU291cFNlc3Npb24qIHNlc3Npb24sIFNv
dXBNZXNzYWdlKiBtc2csIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgOiBtX2NoYW5uZWwo
Y2hhbm5lbCkKKyAgICAsIG1fc291cE1lc3NhZ2UobXNnKQogICAgICwgbV9jYW5jZWxsYWJsZShh
ZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSkpCiB7CiAgICAgYXV0byBwcm90b2NvbExpc3Qg
PSBwcm90b2NvbC5zcGxpdCgnLCcpOwpAQCAtMTAyLDYgKzEwMywxMCBAQCB2b2lkIFdlYlNvY2tl
dFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCks
ICJjbG9zZWQiLCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayks
IHRoaXMpOwogCiAgICAgbV9jaGFubmVsLmRpZENvbm5lY3Qoc291cF93ZWJzb2NrZXRfY29ubmVj
dGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSwgYWNjZXB0ZWRFeHRlbnNpb25z
KCkpOworCisgICAgaWYgKGNvbnN0IGNoYXIqIHNlcnZlclNldENvb2tpZSA9IHNvdXBfbWVzc2Fn
ZV9oZWFkZXJzX2dldF9vbmUobV9zb3VwTWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIlNldC1D
b29raWUiKSkKKyAgICAgICAgbV9jaGFubmVsLnNldENvb2tpZXMoc2VydmVyU2V0Q29va2llKTsK
KyAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRSZWNlaXZlTWVzc2FnZUNhbGxiYWNrKFdlYlNvY2tldFRhc2sqIHRhc2ssIFNvdXBXZWJzb2Nr
ZXREYXRhVHlwZSBkYXRhVHlwZSwgR0J5dGVzKiBtZXNzYWdlKQpAQCAtMTM2LDYgKzE0MSw3IEBA
IHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkRmFpbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9yZWNlaXZlZERpZEZhaWwgPSB0cnVlOworICAgIG1f
c291cE1lc3NhZ2UgPSBudWxscHRyOwogICAgIG1fY2hhbm5lbC5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKGVycm9yTWVzc2FnZSk7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKICAgICAgICAgZGlk
Q2xvc2UoU09VUF9XRUJTT0NLRVRfQ0xPU0VfQUJOT1JNQUwsIHsgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCmluZGV4
IGRhODc2MTEwNjQ4Li5lNDlhMGEyN2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKQEAgLTYwLDYgKzYwLDcgQEAg
cHJpdmF0ZToKIAogICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBtX2NoYW5uZWw7CiAgICAgR1Jl
ZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEdSZWZQdHI8
U291cE1lc3NhZ2U+IG1fc291cE1lc3NhZ2U7CiAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1f
Y2FuY2VsbGFibGU7CiAgICAgYm9vbCBtX3JlY2VpdmVkRGlkRmFpbCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3JlY2VpdmVkRGlkQ2xvc2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA3MzM1Mjc2
NTg3MS4uYjIwYzAxNDM5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC05MSw3ICs5MSwxNCBAQCBXZWJTb2Nr
ZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0CiAgICAgaWYgKHJlcXVlc3QtPnVybCgpICE9IHVybCAmJiBtX2NsaWVu
dCkKICAgICAgICAgbV9jbGllbnQtPmRpZFVwZ3JhZGVVUkwoKTsKIAotICAgIE1lc3NhZ2VTZW5k
ZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVT
b2NrZXRDaGFubmVsIHsgbV9kb2N1bWVudC0+c2Vzc2lvbklEKCksICpyZXF1ZXN0LCBwcm90b2Nv
bCwgaWRlbnRpZmllcigpIH0pOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAg
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CisgICAgaWYgKGF1dG8qIGZyYW1lID0g
bV9kb2N1bWVudC0+ZnJhbWUoKSkgeworICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigp
LmNsaWVudCgpLmZyYW1lSUQoKTsKKyAgICAgICAgcGFnZUlEID0gZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpLnBhZ2VJRCgpOworICAgIH0KKworICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVsIHsg
bV9kb2N1bWVudC0+c2Vzc2lvbklEKCksICpyZXF1ZXN0LCBwcm90b2NvbCwgZnJhbWVJRCwgcGFn
ZUlELCBpZGVudGlmaWVyKCkgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375404</attachid>
            <date>2019-08-02 01:39:25 -0700</date>
            <delta_ts>2019-08-02 06:32:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-cookies.diff</filename>
            <type>text/plain</type>
            <size>18187</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNDE0OTBjNTZjZC4uZDZhNGVkZTFkNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgV2ViU29ja2V0czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRs
ZWQgd2hlbiB1c2luZyBwbGF0Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZmFpbHVyZSBleHBlY3RhdGlvbnMgb2YgdGVzdHMg
dGhhdCBhcmUgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdoZW4g
dXNpbmcgd2ViIHNvY2tldHMgbGlic291cCBBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzQzM2NiMjMwZjQuLjM2YTljNTZlNThiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3NSwxMCArMTE3NSw2IEBA
IGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIFNr
aXAgXQogIyBJbnNwZWN0b3IgdGVzdHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tl
dHMgQVBJCiB3ZWJraXQub3JnL2IvMjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaW5zcGVjdG9yLyBbIFNraXAgXQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0
aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MjAwMzM4IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwg
WyBGYWlsdXJlIF0KIAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjNhMDhmNDZlNWUuLjRiNzYz
YTYzMjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDg0LDEwICs0ODQsNiBAQCB3ZWJraXQub3JnL2IvMjAwMjk1IGZhc3QvdmlzdWFsLXZpZXdwb3J0
L2NsaWVudC1yZWN0cy1yZWxhdGl2ZS10by1sYXlvdXQtdmlld3BvcgogIyBJbnNwZWN0b3IgdGVz
dHMgZG9uJ3Qgd29yayB3aXRoIHBsYXRmb3JtIFdlYlNvY2tldHMgQVBJCiB3ZWJraXQub3JnL2Iv
MjAwMTYyIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyBbIFNraXAg
XQogCi0jIFNlcnZlciBjb29raWUgbm90IGhhbmRsZWQgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRz
IEFQSQotd2Via2l0Lm9yZy9iLzIwMDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnNvY2tldHMvY29va2llcy8wMDIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIw
MDE2NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8w
MDcuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjAwMzM4IGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLmh0bWwgWyBGYWlsdXJlIF0KIAogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MGUyNTJkNDJmYy4uNDVm
ZWIwNTYzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wOC0wMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0
czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRsZWQgd2hlbiB1c2luZyBwbGF0
Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgZmlyc3RQYXJ0eUZvckNvb2tpZXMgYW5kIFNhbWVTaXRlSW5mbyB0byB0aGUgV2ViU29j
a2V0IGNvbm5lY3QgcmVxdWVzdC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlc3QpOgorCiAyMDE5LTA4LTAx
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
U09VUF0gV2ViU29ja2V0czogYWRkIHN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3
ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5k
ZXggNjVjN2Y3Njk0NTIuLmQ2ZTJkM2EwOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3Vs
dHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0xMTAsNiArMTExLDggQEAgT3B0
aW9uYWw8UmVzb3VyY2VSZXF1ZXN0PiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6d2ViU29j
a2V0Q29ubmVjdFJlcXVlc3QoRG8KICAgICByZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQoZG9jdW1l
bnQudXNlckFnZW50KHZhbGlkYXRlZFVSTC0+dXJsKSk7CiAgICAgcmVxdWVzdC5zZXREb21haW5G
b3JDYWNoZVBhcnRpdGlvbihkb2N1bWVudC5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICAg
ICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh2YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2Vk
KTsKKyAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKGRvY3VtZW50LmZpcnN0UGFy
dHlGb3JDb29raWVzKCkpOworICAgIEZyYW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVl
c3RJZk5lZWRlZChyZXF1ZXN0LCAmZG9jdW1lbnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhl
YWRlcnMgdG8gYXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4KICAgICAvLyBUaGVyZSBhcmUgc29t
ZSBwcm94aWVzIHRoYXQgcmV3cml0ZSAiQ29ubmVjdGlvbjogdXBncmFkZSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDk1OTM0ZWY5YTMuLjFmNjJhODQ0OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5
LTA4LTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAg
ICAgICBXZWJTb2NrZXRzOiByZXNwb25zZSBTZXQtQ29va2llIGhlYWRlciBub3QgaGFuZGxlZCB3
aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y3JlYXRlU29ja2V0Q2hhbm5lbCk6IEFkZCBmcmFtZUlEIGFuZCBwYWdlSUQgcGFyYW1ldGVy
cworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBEaXR0by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENo
YW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKTogU2F2ZSB0aGUgZ2l2ZW4gcmVxdWVzdCwgZnJh
bWVJRCBhbmQgcGFnZUlEIGFzIG1lbWViZXJzLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29j
a2V0Q2hhbm5lbDo6c2V0Q29va2llcyk6IFNldCB0aGUgY29va2llcyByZWNlaXZlZCBmcm9tIHRo
ZSBzZXJ2ZXIgaWYgYW55LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2spOiBT
YXZlIHRoZSBzb3VwIG1lc3NhZ2UgYXMgbWVtYmVyLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2Nr
ZXRUYXNrOjpkaWRDb25uZWN0KTogR2V0IHRoZSBTZXQtQ29va2llIGhlYWRlciBmcm9tIHNvdXAg
bWVzc2FnZSByZXNwb25zZSBhbmQgY2FsbAorICAgICAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6
c2V0Q29va2llcygpLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRGYWlsKTog
Q2xlYXIgdGhlIHNvdXAgbWVzc2FnZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dl
YlNvY2tldFRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KTogR2V0IHRoZSBmcmFtZUlEIGFuZCBwYWdlSUQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBhc3Mg
dGhlbSB0bworICAgICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29j
a2V0Q2hhbm5lbCBtZXNzYWdlLgorCiAyMDE5LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gV2ViU29ja2V0czogYWRkIHN1
cHBvcnQgZm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5YjFiOWI4NjA0My4uMjcxMzVkNjk4ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNDAsMTAgKzM0MCwxMCBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0oVVJMJiYg
dXJsLCBQQUw6OlNlc3Npb25JRAogICAgIG1fbmV0d29ya1NvY2tldFN0cmVhbXMuc2V0KGlkZW50
aWZpZXIsIE5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZShtX25ldHdvcmtQcm9jZXNzLmdldCgp
LCBXVEZNb3ZlKHVybCksIHNlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlkZW50aWZpZXIsIG1f
Y29ubmVjdGlvbiwgV1RGTW92ZSh0b2tlbikpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgdWludDY0X3QgaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCB1aW50
NjRfdCBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghbV9uZXR3b3JrU29ja2V0Q2hhbm5lbHMu
Y29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIGlmIChhdXRvIGNoYW5uZWwgPSBOZXR3b3JrU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKCp0aGlzLCBzZXNzaW9uSUQsIHJlcXVlc3QsIHByb3RvY29sLCBp
ZGVudGlmaWVyKSkKKyAgICBpZiAoYXV0byBjaGFubmVsID0gTmV0d29ya1NvY2tldENoYW5uZWw6
OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0LCBwcm90b2NvbCwgZnJhbWVJRCwgcGFn
ZUlELCBpZGVudGlmaWVyKSkKICAgICAgICAgbV9uZXR3b3JrU29ja2V0Q2hhbm5lbHMuYWRkKGlk
ZW50aWZpZXIsIFdURk1vdmUoY2hhbm5lbCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggZDdiMmYxYjYzYmMuLjUwOGQ4YTA4NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC0xOTYsNyArMTk2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU29ja2V0U3Ry
ZWFtKFVSTCYmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRf
dCk7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2
NF90IGlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU29ja2V0Q2hhbm5lbChQQUw6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90
b2NvbCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmllcik7CiAKICAgICB2b2lkIGVuc3VyZUxlZ2Fj
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggZmEyYzMxYTQxM2EuLjE5ZGM3NGZiZTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUzLDcgKzUzLDcgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIFNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogCiAgICAgQ3JlYXRlU29ja2V0U3RyZWFtKFVSTCB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU3RyaW5nIGNhY2hlUGFydGl0aW9uLCB1aW50NjRfdCBpZGVudGlmaWVyKQotICAgIENy
ZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVy
KQorICAgIENyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgdWludDY0X3QgaWRlbnRpZmllcikKIAogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IDA0ZTNkMDI1MjIwLi4xZjY5ZDVlZTkwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5jcHAKQEAgLTMyLDEzICszMiwxNCBAQAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgi
CiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0VGFzay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2FtZVNpdGVJbmZvLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9j
b2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENo
YW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgdWludDY0
X3QgaWRlbnRpZmllcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0
d29ya1NvY2tldENoYW5uZWw+KGNvbm5lY3Rpb24sIGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3Mo
KS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCByZXF1ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmll
cik7CisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTb2NrZXRDaGFu
bmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9jb2wsIGZyYW1lSUQsIHBhZ2VJRCwgaWRlbnRp
Zmllcik7CiAgICAgaWYgKCFyZXN1bHQtPm1fc29ja2V0KSB7CiAgICAgICAgIHJlc3VsdC0+ZGlk
Q2xvc2UoMCwgIkNhbm5vdCBjcmVhdGUgYSB3ZWIgc29ja2V0IHRhc2siX3MpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTQ2LDEwICs0NywxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29y
a1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5l
YwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLU5ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3Jr
U29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
TmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0X3QgaWRlbnRpZmllcikKK05ldHdvcmtTb2Nr
ZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgTmV0d29ya1Nlc3Npb24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKICAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zZXNzaW9uKG1ha2VXZWFrUHRy
KHNlc3Npb24pKQorICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBtX2ZyYW1lSUQoZnJh
bWVJRCkKKyAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKIHsKICAgICBpZiAoIW1fc2Vzc2lvbikKICAg
ICAgICAgcmV0dXJuOwpAQCAtOTcsNiArMTAxLDE3IEBAIHZvaWQgTmV0d29ya1NvY2tldENoYW5u
ZWw6OmNsb3NlKGludDMyX3QgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgZmluaXNo
Q2xvc2luZ0lmUG9zc2libGUoKTsKIH0KIAordm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2V0
Q29va2llcyhjb25zdCBTdHJpbmcmIHNlcnZlclNldENvb2tpZSkKK3sKKyAgICBpZiAoc2VydmVy
U2V0Q29va2llLmlzRW1wdHkoKSB8fCAhbV9zZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIGh0dHBVUkxGb3JDb29raWVzID0gbV9yZXF1ZXN0LnVybCgpOworICAgIGh0dHBVUkxG
b3JDb29raWVzLnNldFByb3RvY29sKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJ3c3MiKSA/
ICJodHRwcyIgOiAiaHR0cCIpOworICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCktPnNldENvb2tpZXNGcm9tRE9NKG1fcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBT
YW1lU2l0ZUluZm86OmNyZWF0ZShtX3JlcXVlc3QpLAorICAgICAgICBodHRwVVJMRm9yQ29va2ll
cywgbV9mcmFtZUlELCBtX3BhZ2VJRCwgc2VydmVyU2V0Q29va2llKTsKK30KKwogdm9pZCBOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHN1YnByb3RvY29sLCBj
b25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU29ja2V0
Q2hhbm5lbDo6RGlkQ29ubmVjdCB7IHN1YnByb3RvY29sLCBleHRlbnNpb25zIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmlu
ZGV4IDY3MmIzNzgxYTRkLi4zOWZjMDlmZDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaApAQCAtMjcsMTMgKzI3LDExIEBA
CiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7Ci19Ci0KIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgQ29ubmVjdGlv
bjsKIGNsYXNzIERlY29kZXI7CkBAIC00OSw5ICs0Nyw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9u
OwogCiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCB1aW50
NjRfdCBpZGVudGlmaWVyKTsKIAotICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVy
KTsKKyAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBwcm90b2NvbCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmllcik7CiAgICAgfk5l
dHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjgsNiArNjYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2VuZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsb3NlKGludDMyX3QgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pOworICAgIHZvaWQgc2V0Q29va2llcyhjb25zdCBTdHJpbmcm
KTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25z
dCBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzgsNiArNzcsOSBAQCBwcml2YXRl
OgogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKICAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9u
PiBtX3Nlc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IG1fc29ja2V0
OworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgT3B0aW9uYWw8
dWludDY0X3Q+IG1fZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gbV9wYWdlSUQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsgT3BlbiwgQ2xvc2luZywgQ2xv
c2VkIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpPcGVuIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApp
bmRleCBlNDM0YTA4NTI0YS4uY2JjMzU0MTc1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMzYsNiAr
MzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFz
ayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgU291cFNlc3Npb24qIHNlc3Npb24sIFNv
dXBNZXNzYWdlKiBtc2csIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiAgICAgOiBtX2NoYW5uZWwo
Y2hhbm5lbCkKKyAgICAsIG1fc291cE1lc3NhZ2UobXNnKQogICAgICwgbV9jYW5jZWxsYWJsZShh
ZG9wdEdSZWYoZ19jYW5jZWxsYWJsZV9uZXcoKSkpCiB7CiAgICAgYXV0byBwcm90b2NvbExpc3Qg
PSBwcm90b2NvbC5zcGxpdCgnLCcpOwpAQCAtMTAyLDYgKzEwMywxMCBAQCB2b2lkIFdlYlNvY2tl
dFRhc2s6OmRpZENvbm5lY3QoR1JlZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChtX2Nvbm5lY3Rpb24uZ2V0KCks
ICJjbG9zZWQiLCByZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZGlkQ2xvc2VDYWxsYmFjayks
IHRoaXMpOwogCiAgICAgbV9jaGFubmVsLmRpZENvbm5lY3Qoc291cF93ZWJzb2NrZXRfY29ubmVj
dGlvbl9nZXRfcHJvdG9jb2wobV9jb25uZWN0aW9uLmdldCgpKSwgYWNjZXB0ZWRFeHRlbnNpb25z
KCkpOworCisgICAgaWYgKGNvbnN0IGNoYXIqIHNlcnZlclNldENvb2tpZSA9IHNvdXBfbWVzc2Fn
ZV9oZWFkZXJzX2dldF9vbmUobV9zb3VwTWVzc2FnZS0+cmVzcG9uc2VfaGVhZGVycywgIlNldC1D
b29raWUiKSkKKyAgICAgICAgbV9jaGFubmVsLnNldENvb2tpZXMoc2VydmVyU2V0Q29va2llKTsK
KyAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpk
aWRSZWNlaXZlTWVzc2FnZUNhbGxiYWNrKFdlYlNvY2tldFRhc2sqIHRhc2ssIFNvdXBXZWJzb2Nr
ZXREYXRhVHlwZSBkYXRhVHlwZSwgR0J5dGVzKiBtZXNzYWdlKQpAQCAtMTM2LDYgKzE0MSw3IEBA
IHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkRmFpbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9yZWNlaXZlZERpZEZhaWwgPSB0cnVlOworICAgIG1f
c291cE1lc3NhZ2UgPSBudWxscHRyOwogICAgIG1fY2hhbm5lbC5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKGVycm9yTWVzc2FnZSk7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKICAgICAgICAgZGlk
Q2xvc2UoU09VUF9XRUJTT0NLRVRfQ0xPU0VfQUJOT1JNQUwsIHsgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCmluZGV4
IGRhODc2MTEwNjQ4Li5lNDlhMGEyN2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKQEAgLTYwLDYgKzYwLDcgQEAg
cHJpdmF0ZToKIAogICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBtX2NoYW5uZWw7CiAgICAgR1Jl
ZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIEdSZWZQdHI8
U291cE1lc3NhZ2U+IG1fc291cE1lc3NhZ2U7CiAgICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1f
Y2FuY2VsbGFibGU7CiAgICAgYm9vbCBtX3JlY2VpdmVkRGlkRmFpbCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3JlY2VpdmVkRGlkQ2xvc2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA3MzM1Mjc2
NTg3MS4uYTAyYmVmYjM5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVJlYWRlckxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVJlYWRlckxvYWRlckNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmg+CkBAIC05MSw3ICs5MiwxNCBAQCBXZWJT
b2NrZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29u
c3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgaWYgKHJlcXVlc3QtPnVybCgpICE9IHVybCAmJiBtX2Ns
aWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZFVwZ3JhZGVVUkwoKTsKIAotICAgIE1lc3NhZ2VT
ZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVh
dGVTb2NrZXRDaGFubmVsIHsgbV9kb2N1bWVudC0+c2Vzc2lvbklEKCksICpyZXF1ZXN0LCBwcm90
b2NvbCwgaWRlbnRpZmllcigpIH0pOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwor
ICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CisgICAgaWYgKGF1dG8qIGZyYW1l
ID0gbV9kb2N1bWVudC0+ZnJhbWUoKSkgeworICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKKyAgICAgICAgcGFnZUlEID0gZnJhbWUtPmxvYWRlcigp
LmNsaWVudCgpLnBhZ2VJRCgpOworICAgIH0KKworICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVs
IHsgbV9kb2N1bWVudC0+c2Vzc2lvbklEKCksICpyZXF1ZXN0LCBwcm90b2NvbCwgZnJhbWVJRCwg
cGFnZUlELCBpZGVudGlmaWVyKCkgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375407</attachid>
            <date>2019-08-02 06:32:24 -0700</date>
            <delta_ts>2019-08-29 02:14:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-cookies.diff</filename>
            <type>text/plain</type>
            <size>18183</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNGM0ZDBmY2YxMS4uNmVlM2QwNjBmMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wOC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgV2ViU29ja2V0czogcmVzcG9uc2UgU2V0LUNvb2tpZSBoZWFkZXIgbm90IGhhbmRs
ZWQgd2hlbiB1c2luZyBwbGF0Zm9ybSBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZmFpbHVyZSBleHBlY3RhdGlvbnMgb2YgdGVzdHMg
dGhhdCBhcmUgcGFzc2luZyBub3cuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAx
OS0wOC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IHVzZSBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9OT19TVEFU
VVMgd2hlbiBjbG9zaW5nIHdpdGggbm8gc3RhdHVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDY4ZjU5ZjlmMzUzLi5mN2E5MGI4ZGI4NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNzUsMTAgKzExNzUsNiBA
QCBmYXN0L2Zvcm1zL2RhdGFsaXN0L3VwZGF0ZS1yYW5nZS13aXRoLWRhdGFsaXN0Lmh0bWwgWyBT
a2lwIF0KICMgSW5zcGVjdG9yIHRlc3RzIGRvbid0IHdvcmsgd2l0aCBwbGF0Zm9ybSBXZWJTb2Nr
ZXRzIEFQSQogd2Via2l0Lm9yZy9iLzIwMDE2MiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3Rvci8gWyBTa2lwIF0KIAotIyBTZXJ2ZXIgY29va2llIG5vdCBoYW5kbGVkIHdp
dGggcGxhdGZvcm0gV2ViU29ja2V0cyBBUEkKLXdlYmtpdC5vcmcvYi8yMDAxNjUgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvMDAyLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8yMDAxNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzL2Nvb2tpZXMvMDA3Lmh0bWwgWyBGYWlsdXJlIF0KLQogIy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIEV4cGVjdGVkIGZhaWx1cmVzLgogIwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4ZGI4Yzc0ODc3NS4u
OTVmOTUzOWMxYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25z
CkBAIC00ODQsMTAgKzQ4NCw2IEBAIHdlYmtpdC5vcmcvYi8yMDAyOTUgZmFzdC92aXN1YWwtdmll
d3BvcnQvY2xpZW50LXJlY3RzLXJlbGF0aXZlLXRvLWxheW91dC12aWV3cG9yCiAjIEluc3BlY3Rv
ciB0ZXN0cyBkb24ndCB3b3JrIHdpdGggcGxhdGZvcm0gV2ViU29ja2V0cyBBUEkKIHdlYmtpdC5v
cmcvYi8yMDAxNjIgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbnNwZWN0b3IvIFsg
U2tpcCBdCiAKLSMgU2VydmVyIGNvb2tpZSBub3QgaGFuZGxlZCB3aXRoIHBsYXRmb3JtIFdlYlNv
Y2tldHMgQVBJCi13ZWJraXQub3JnL2IvMjAwMTY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2Vic29ja2V0cy9jb29raWVzLzAwMi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMjAwMTY1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9jb29r
aWVzLzAwNy5odG1sIFsgRmFpbHVyZSBdCi0KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAjIDMuIFVOUkVTT0xWRUQgVEVTVFMKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZjZlMDg3YzNmNzEuLmVhYmM2MTMzOGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTktMDgtMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYlNvY2tldHM6IHJlc3BvbnNlIFNldC1Db29raWUg
aGVhZGVyIG5vdCBoYW5kbGVkIHdoZW4gdXNpbmcgcGxhdGZvcm0gQVBJcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMTY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZpcnN0UGFydHlGb3JDb29r
aWVzIGFuZCBTYW1lU2l0ZUluZm8gdG8gdGhlIFdlYlNvY2tldCBjb25uZWN0IHJlcXVlc3QuCisK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OndlYlNv
Y2tldENvbm5lY3RSZXF1ZXN0KToKKwogMjAxOS0wOC0wMiAgS29uc3RhbnRpbiBUb2thcmV2ICA8
YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgUmVtb3ZlIGNvbnN0cnVjdG9ycyBhbmQgb3Bl
cmF0b3JzIG9mIEZvbnRQbGF0Zm9ybURhdGEgZGVmaW5lZCBvbmx5IGZvciBGcmVldHlwZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNjVjN2Y3Njk0NTIuLmQ2ZTJkM2EwOThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAog
I2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCkBAIC0xMTAsNiArMTExLDggQEAgT3B0aW9uYWw8UmVzb3VyY2VSZXF1ZXN0PiBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6d2ViU29ja2V0Q29ubmVjdFJlcXVlc3QoRG8KICAgICBy
ZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQoZG9jdW1lbnQudXNlckFnZW50KHZhbGlkYXRlZFVSTC0+
dXJsKSk7CiAgICAgcmVxdWVzdC5zZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihkb2N1bWVudC5k
b21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKICAgICByZXF1ZXN0LnNldEFsbG93Q29va2llcyh2
YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2VkKTsKKyAgICByZXF1ZXN0LnNldEZpcnN0UGFy
dHlGb3JDb29raWVzKGRvY3VtZW50LmZpcnN0UGFydHlGb3JDb29raWVzKCkpOworICAgIEZyYW1l
TG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCAmZG9jdW1l
bnQpOwogCiAgICAgLy8gQWRkIG5vLWNhY2hlIGhlYWRlcnMgdG8gYXZvaWQgY29tcGF0aWJpbGl0
eSBpc3N1ZS4KICAgICAvLyBUaGVyZSBhcmUgc29tZSBwcm94aWVzIHRoYXQgcmV3cml0ZSAiQ29u
bmVjdGlvbjogdXBncmFkZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2FiN2Y5NzcwMzIuLjI2YjY0NmY2NTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTAyICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJTb2NrZXRzOiByZXNwb25zZSBT
ZXQtQ29va2llIGhlYWRlciBub3QgaGFuZGxlZCB3aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5lbCk6IEFk
ZCBmcmFtZUlEIGFuZCBwYWdlSUQgcGFyYW1ldGVycworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6IERpdHRvLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBEaXR0
by4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVs
KTogU2F2ZSB0aGUgZ2l2ZW4gcmVxdWVzdCwgZnJhbWVJRCBhbmQgcGFnZUlEIGFzIG1lbWViZXJz
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2V0Q29va2llcyk6IFNl
dCB0aGUgY29va2llcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaWYgYW55LgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2spOiBTYXZlIHRoZSBzb3VwIG1lc3NhZ2UgYXMgbWVt
YmVyLgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KTogR2V0IHRo
ZSBTZXQtQ29va2llIGhlYWRlciBmcm9tIHNvdXAgbWVzc2FnZSByZXNwb25zZSBhbmQgY2FsbAor
ICAgICAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2V0Q29va2llcygpLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRGYWlsKTogQ2xlYXIgdGhlIHNvdXAgbWVzc2FnZS4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KTogR2V0IHRoZSBmcmFtZUlEIGFuZCBwYWdl
SUQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBhc3MgdGhlbSB0bworICAgICAgICBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCBtZXNzYWdlLgorCiAyMDE5
LTA4LTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLiBVcGRhdGUgT3B0aW9uc0dUSy5jbWFrZSBhbmQgTkVXUyBmb3IgMi4y
NS40IHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOWIxYjliODYwNDMu
LjI3MTM1ZDY5OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzQwLDEwICsz
NDAsMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0
U3RyZWFtKFVSTCYmIHVybCwgUEFMOjpTZXNzaW9uSUQKICAgICBtX25ldHdvcmtTb2NrZXRTdHJl
YW1zLnNldChpZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUobV9uZXR3b3Jr
UHJvY2Vzcy5nZXQoKSwgV1RGTW92ZSh1cmwpLCBzZXNzaW9uSUQsIGNhY2hlUGFydGl0aW9uLCBp
ZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24sIFdURk1vdmUodG9rZW4pKSk7CiB9CiAKLXZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldENoYW5uZWwoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3Rv
Y29sLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgdWludDY0X3QgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIW1fbmV0d29ya1Nv
Y2tldENoYW5uZWxzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBpZiAoYXV0byBjaGFubmVs
ID0gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZSgqdGhpcywgc2Vzc2lvbklELCByZXF1ZXN0
LCBwcm90b2NvbCwgaWRlbnRpZmllcikpCisgICAgaWYgKGF1dG8gY2hhbm5lbCA9IE5ldHdvcmtT
b2NrZXRDaGFubmVsOjpjcmVhdGUoKnRoaXMsIHNlc3Npb25JRCwgcmVxdWVzdCwgcHJvdG9jb2ws
IGZyYW1lSUQsIHBhZ2VJRCwgaWRlbnRpZmllcikpCiAgICAgICAgIG1fbmV0d29ya1NvY2tldENo
YW5uZWxzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNoYW5uZWwpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCmluZGV4IGQ3YjJmMWI2M2JjLi41MDhkOGEwODc4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMTk2LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNy
ZWF0ZVNvY2tldFN0cmVhbShVUkwmJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRp
dGlvbiwgdWludDY0X3QpOwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHBy
b3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldENoYW5u
ZWwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCiAgICAgdm9p
ZCBlbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGZhMmMzMWE0MTNhLi4xOWRjNzRmYmU5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Myw3
ICs1Myw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIAogICAgIENyZWF0ZVNvY2tldFN0cmVhbShVUkwgdXJsLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgdWludDY0X3QgaWRlbnRp
ZmllcikKLSAgICBDcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBwcm90b2NvbCwgdWludDY0
X3QgaWRlbnRpZmllcikKKyAgICBDcmVhdGVTb2NrZXRDaGFubmVsKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBwcm90b2Nv
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIHVpbnQ2NF90IGlkZW50aWZpZXIpCiAKICAgICBFbnN1cmVMZWdhY3lQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRleCAwNGUzZDAyNTIyMC4uMWY2
OWQ1ZWU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC0zMiwxMyArMzIsMTQgQEAKICNpbmNsdWRlICJOZXR3
b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlNvY2tldFRhc2suaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NhbWVTaXRlSW5mby5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpj
cmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBpZGVudGlmaWVyKQorc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIHVpbnQ2NF90IGlkZW50aWZpZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1h
a2VfdW5pcXVlPE5ldHdvcmtTb2NrZXRDaGFubmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5l
dHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9j
b2wsIGlkZW50aWZpZXIpOworICAgIGF1dG8gcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3
b3JrU29ja2V0Q2hhbm5lbD4oY29ubmVjdGlvbiwgY29ubmVjdGlvbi5uZXR3b3JrUHJvY2Vzcygp
Lm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCksIHJlcXVlc3QsIHByb3RvY29sLCBmcmFtZUlELCBw
YWdlSUQsIGlkZW50aWZpZXIpOwogICAgIGlmICghcmVzdWx0LT5tX3NvY2tldCkgewogICAgICAg
ICByZXN1bHQtPmRpZENsb3NlKDAsICJDYW5ub3QgY3JlYXRlIGEgd2ViIHNvY2tldCB0YXNrIl9z
KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00NiwxMCArNDcsMTMgQEAgc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRl
KE5ldHdvcmtDb25uZWMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1OZXR3b3JrU29ja2V0Q2hh
bm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIHVpbnQ2NF90IGlkZW50aWZpZXIp
CitOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCB1aW50NjRfdCBpZGVudGlmaWVyKQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNv
bm5lY3Rpb24pCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fc2Vzc2lv
bihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorICAgICwg
bV9mcmFtZUlEKGZyYW1lSUQpCisgICAgLCBtX3BhZ2VJRChwYWdlSUQpCiB7CiAgICAgaWYgKCFt
X3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKQEAgLTk3LDYgKzEwMSwxNyBAQCB2b2lkIE5ldHdv
cmtTb2NrZXRDaGFubmVsOjpjbG9zZShpbnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KQogICAgIGZpbmlzaENsb3NpbmdJZlBvc3NpYmxlKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1NvY2tl
dENoYW5uZWw6OnNldENvb2tpZXMoY29uc3QgU3RyaW5nJiBzZXJ2ZXJTZXRDb29raWUpCit7Cisg
ICAgaWYgKHNlcnZlclNldENvb2tpZS5pc0VtcHR5KCkgfHwgIW1fc2Vzc2lvbikKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBodHRwVVJMRm9yQ29va2llcyA9IG1fcmVxdWVzdC51cmwoKTsK
KyAgICBodHRwVVJMRm9yQ29va2llcy5zZXRQcm90b2NvbChtX3JlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygid3NzIikgPyAiaHR0cHMiIDogImh0dHAiKTsKKyAgICBtX3Nlc3Npb24tPm5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVzRnJvbURPTShtX3JlcXVlc3QuZmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUobV9yZXF1ZXN0KSwKKyAgICAgICAgaHR0
cFVSTEZvckNvb2tpZXMsIG1fZnJhbWVJRCwgbV9wYWdlSUQsIHNlcnZlclNldENvb2tpZSk7Cit9
CisKIHZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoY29uc3QgU3RyaW5nJiBz
dWJwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25zKQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNvY2tldENoYW5uZWw6OkRpZENvbm5lY3QgeyBzdWJwcm90b2NvbCwgZXh0ZW5zaW9u
cyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwuaAppbmRleCA2NzJiMzc4MWE0ZC4uMzlmYzA5ZmQ4ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTI3
LDEzICsyNywxMSBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAotbmFtZXNwYWNlIFdl
YkNvcmUgewotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwotfQotCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNvZGVyOwpAQCAtNDksOSArNDcsOSBAQCBjbGFzcyBO
ZXR3b3JrU2Vzc2lvbjsKIAogY2xhc3MgTmV0d29ya1NvY2tldENoYW5uZWwgOiBwdWJsaWMgSVBD
OjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgot
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFu
bmVsPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBQQUw6OlNlc3Npb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgdWludDY0X3QgaWRlbnRpZmllcik7CiAKLSAgICBOZXR3b3JrU29ja2V0Q2hhbm5l
bChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgdWludDY0
X3QgaWRlbnRpZmllcik7CisgICAgTmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIHVpbnQ2NF90IGlkZW50aWZp
ZXIpOwogICAgIH5OZXR3b3JrU29ja2V0Q2hhbm5lbCgpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKQEAgLTY4LDYgKzY2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmREYXRhKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbG9zZShp
bnQzMl90IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAgICB2b2lkIHNldENvb2tpZXMo
Y29uc3QgU3RyaW5nJik7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTc4LDYgKzc3
LDkgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiAgICAgV2Vha1B0cjxO
ZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRU
YXNrPiBtX3NvY2tldDsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0Owor
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG1fcGFnZUlEOwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IE9wZW4s
IENsb3NpbmcsIENsb3NlZCB9OwogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6T3BlbiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRU
YXNrU291cC5jcHAKaW5kZXggOWE2ZjI0M2FjM2YuLmM4YzNhNzM0NWY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYlNvY2tldFRhc2s6
OldlYlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIFNvdXBTZXNzaW9u
KiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbXNnLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogICAg
IDogbV9jaGFubmVsKGNoYW5uZWwpCisgICAgLCBtX3NvdXBNZXNzYWdlKG1zZykKICAgICAsIG1f
Y2FuY2VsbGFibGUoYWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpKQogewogICAgIGF1dG8g
cHJvdG9jb2xMaXN0ID0gcHJvdG9jb2wuc3BsaXQoJywnKTsKQEAgLTEwMyw2ICsxMDQsMTAgQEAg
dm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQobV9jb25u
ZWN0aW9uLmdldCgpLCAiY2xvc2VkIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZENs
b3NlQ2FsbGJhY2spLCB0aGlzKTsKIAogICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KHNvdXBfd2Vi
c29ja2V0X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSksIGFjY2Vw
dGVkRXh0ZW5zaW9ucygpKTsKKworICAgIGlmIChjb25zdCBjaGFyKiBzZXJ2ZXJTZXRDb29raWUg
PSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKG1fc291cE1lc3NhZ2UtPnJlc3BvbnNlX2hl
YWRlcnMsICJTZXQtQ29va2llIikpCisgICAgICAgIG1fY2hhbm5lbC5zZXRDb29raWVzKHNlcnZl
clNldENvb2tpZSk7CisgICAgbV9zb3VwTWVzc2FnZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2Vi
U29ja2V0VGFzazo6ZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhXZWJTb2NrZXRUYXNrKiB0YXNr
LCBTb3VwV2Vic29ja2V0RGF0YVR5cGUgZGF0YVR5cGUsIEdCeXRlcyogbWVzc2FnZSkKQEAgLTEz
Nyw2ICsxNDIsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZEZhaWwoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcmVjZWl2ZWREaWRGYWlsID0g
dHJ1ZTsKKyAgICBtX3NvdXBNZXNzYWdlID0gbnVsbHB0cjsKICAgICBtX2NoYW5uZWwuZGlkUmVj
ZWl2ZU1lc3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOwogICAgIGlmICghbV9jb25uZWN0aW9uKSB7
CiAgICAgICAgIGRpZENsb3NlKFNPVVBfV0VCU09DS0VUX0NMT1NFX0FCTk9STUFMLCB7IH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFz
a1NvdXAuaAppbmRleCBkYTg3NjExMDY0OC4uZTQ5YTBhMjdiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCkBAIC02
MCw2ICs2MCw3IEBAIHByaXZhdGU6CiAKICAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbCYgbV9jaGFu
bmVsOwogICAgIEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KyAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBtX3NvdXBNZXNzYWdlOwogICAgIEdSZWZQdHI8R0Nh
bmNlbGxhYmxlPiBtX2NhbmNlbGxhYmxlOwogICAgIGJvb2wgbV9yZWNlaXZlZERpZEZhaWwgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9yZWNlaXZlZERpZENsb3NlIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggNzMzNTI3NjU4NzEuLmNjNzliODgzYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzYsNiArMzYs
OCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVSZWFkZXJMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVSZWFkZXJMb2FkZXJDbGll
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KQEAgLTkxLDcgKzkzLDE0IEBAIFdlYlNvY2tl
dENoYW5uZWw6OkNvbm5lY3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBV
UkwmIHVybCwgY29uc3QKICAgICBpZiAocmVxdWVzdC0+dXJsKCkgIT0gdXJsICYmIG1fY2xpZW50
KQogICAgICAgICBtX2NsaWVudC0+ZGlkVXBncmFkZVVSTCgpOwogCi0gICAgTWVzc2FnZVNlbmRl
cjo6c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNv
Y2tldENoYW5uZWwgeyBtX2RvY3VtZW50LT5zZXNzaW9uSUQoKSwgKnJlcXVlc3QsIHByb3RvY29s
LCBpZGVudGlmaWVyKCkgfSk7CisgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKKyAgICBpZiAoYXV0byogZnJhbWUgPSBt
X2RvY3VtZW50LT5mcmFtZSgpKSB7CisgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZnJhbWVJRCgpOworICAgICAgICBwYWdlSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkucGFnZUlEKCk7CisgICAgfQorCisgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNvY2tldENoYW5uZWwgeyBt
X2RvY3VtZW50LT5zZXNzaW9uSUQoKSwgKnJlcXVlc3QsIHByb3RvY29sLCBmcmFtZUlELCBwYWdl
SUQsIGlkZW50aWZpZXIoKSB9KTsKICAgICByZXR1cm4gQ29ubmVjdFN0YXR1czo6T0s7CiB9CiAK
</data>
<flag name="review"
          id="391198"
          type_id="1"
          status="-"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="391199"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377562</attachid>
            <date>2019-08-29 02:14:04 -0700</date>
            <delta_ts>2019-08-29 02:47:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-ws-first-party-cookies.diff</filename>
            <type>text/plain</type>
            <size>1533</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMjI4NGY0MTExMi4uMWI4MTdmOTI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOS0wOC0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0czogZmlyc3QtcGFydHkgZm9yIGNvb2tpZXMg
bm90IHNldCBpbiBoYW5kc2hha2UgcmVxdWVzdCB3aGVuIHVzaW5nIHBsYXRmb3JtIEFQSXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDE2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp3ZWJTb2NrZXRDb25uZWN0UmVxdWVzdCk6
CisKIDIwMTktMDgtMjggIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbU09VUF0gU2h1dCBjb21waWxhdGlvbiB3YXJuaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCAzYWUwMmVkMTlkNy4uNDNkMzhhOWIyODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTEwLDYgKzExMCw3IEBAIE9wdGlvbmFsPFJl
c291cmNlUmVxdWVzdD4gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OndlYlNvY2tldENvbm5l
Y3RSZXF1ZXN0KERvCiAgICAgcmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KGRvY3VtZW50LnVzZXJB
Z2VudCh2YWxpZGF0ZWRVUkwtPnVybCkpOwogICAgIHJlcXVlc3Quc2V0RG9tYWluRm9yQ2FjaGVQ
YXJ0aXRpb24oZG9jdW1lbnQuZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKSk7CiAgICAgcmVxdWVz
dC5zZXRBbGxvd0Nvb2tpZXModmFsaWRhdGVkVVJMLT5hcmVDb29raWVzQWxsb3dlZCk7CisgICAg
cmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhkb2N1bWVudC5maXJzdFBhcnR5Rm9yQ29v
a2llcygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
T3JpZ2luLCBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCkpOwogCiAgICAgLy8g
QWRkIG5vLWNhY2hlIGhlYWRlcnMgdG8gYXZvaWQgY29tcGF0aWJpbGl0eSBpc3N1ZS4K
</data>
<flag name="review"
          id="393271"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>