<?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>214222</bug_id>
          
          <creation_ts>2020-07-11 10:19:03 -0700</creation_ts>
          <short_desc>ASSERT([filteredCookies.get() count] &lt;= 1) on  imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html</short_desc>
          <delta_ts>2020-07-28 10:00:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214880</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670751</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-11 10:19:03 -0700</bug_when>
    <thetext>imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html is crashing consistently on iOS WK2 Debug configuration:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000011d578d0e WTFCrash + 14 (Assertions.cpp:295)
1   com.apple.WebCore             	0x0000000122d552eb WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   com.apple.WebCore             	0x0000000124aa42a0 WebCore::NetworkStorageSession::setCookiesFromDOM(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::Optional&lt;WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt; &gt;, WTF::Optional&lt;WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt; &gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking) const + 1136 (NetworkStorageSessionCocoa.mm:467)
3   com.apple.WebKit              	0x000000010cb40b1b WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking) + 299 (NetworkConnectionToWebProcess.cpp:655)
4   com.apple.WebKit              	0x000000010c697615 void IPC::callMemberFunctionImpl&lt;WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking), std::__1::tuple&lt;WTF::URL, WebCore::SameSiteInfo, WTF::URL, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String, WebCore::ShouldRelaxThirdPartyCookieBlocking&gt;, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul&gt;(WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking), std::__1::tuple&lt;WTF::URL, WebCore::SameSiteInfo, WTF::URL, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String, WebCore::ShouldRelaxThirdPartyCookieBlocking&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul&gt;) + 437 (HandleMessage.h:42)
5   com.apple.WebKit              	0x000000010c690580 void IPC::callMemberFunction&lt;WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking), std::__1::tuple&lt;WTF::URL, WebCore::SameSiteInfo, WTF::URL, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String, WebCore::ShouldRelaxThirdPartyCookieBlocking&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul&gt; &gt;(std::__1::tuple&lt;WTF::URL, WebCore::SameSiteInfo, WTF::URL, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String, WebCore::ShouldRelaxThirdPartyCookieBlocking&gt;&amp;&amp;, WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking)) + 112 (HandleMessage.h:48)
6   com.apple.WebKit              	0x000000010c66496e void IPC::handleMessage&lt;Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM, WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking)&gt;(IPC::Decoder&amp;, WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(WTF::URL const&amp;, WebCore::SameSiteInfo const&amp;, WTF::URL const&amp;, WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebCore::PageIdentifierType&gt;, WebCore::ShouldAskITP, WTF::String const&amp;, WebCore::ShouldRelaxThirdPartyCookieBlocking)) + 190 (HandleMessage.h:115)
7   com.apple.WebKit              	0x000000010c6630dc WebKit::NetworkConnectionToWebProcess::didReceiveNetworkConnectionToWebProcessMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 1116 (NetworkConnectionToWebProcessMessageReceiver.cpp:365)
8   com.apple.WebKit              	0x000000010cb3bd63 WebKit::NetworkConnectionToWebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 179 (NetworkConnectionToWebProcess.cpp:191)
9   com.apple.WebKit              	0x000000010c5a54ff IPC::Connection::dispatchMessage(IPC::Decoder&amp;) + 431 (Connection.cpp:1002)
10  com.apple.WebKit              	0x000000010c5a5e30 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;) + 528
11  com.apple.WebKit              	0x000000010c5a64c0 IPC::Connection::dispatchOneIncomingMessage() + 208 (Connection.cpp:1139)
12  com.apple.WebKit              	0x000000010c5c5278 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_7::operator()() + 88 (Connection.cpp:979)
13  com.apple.WebKit              	0x000000010c5c518e WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_7, void&gt;::call() + 30 (Function.h:52)
14  com.apple.JavaScriptCore      	0x000000011d5a4b02 WTF::Function&lt;void ()&gt;::operator()() const + 130 (Function.h:84)
15  com.apple.JavaScriptCore      	0x000000011d61d015 WTF::RunLoop::performWork() + 341 (RunLoop.cpp:120)
16  com.apple.JavaScriptCore      	0x000000011d6205b1 WTF::RunLoop::performWork(void*) + 33 (RunLoopCF.cpp:39)
17  com.apple.CoreFoundation      	0x0000000108189c71 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
18  com.apple.CoreFoundation      	0x0000000108189b9c __CFRunLoopDoSource0 + 76
19  com.apple.CoreFoundation      	0x0000000108189374 __CFRunLoopDoSources0 + 180
20  com.apple.CoreFoundation      	0x0000000108183f6e __CFRunLoopRun + 974
21  com.apple.CoreFoundation      	0x0000000108183884 CFRunLoopRunSpecific + 404
22  com.apple.Foundation          	0x0000000107a49831 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 211
23  com.apple.Foundation          	0x0000000107a49a45 -[NSRunLoop(NSRunLoop) run] + 76
24  libxpc.dylib                  	0x0000000109dd65ae _xpc_objc_main + 297
25  libxpc.dylib                  	0x0000000109dd8976 xpc_main + 132
26  com.apple.WebKit              	0x000000010cce509b WebKit::XPCServiceMain(int, char const**) + 1067 (XPCServiceMain.mm:171)
27  com.apple.WebKit              	0x000000010e20758b WKXPCServiceMain + 27 (WKMain.mm:33)
28  com.apple.WebKit.Networking   	0x00000001078e9da2 main + 34 (AuxiliaryProcessMain.cpp:30)
29  libdyld.dylib                 	0x0000000109aa210d start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670752</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-11 10:21:16 -0700</bug_when>
    <thetext>Updated expectations in &lt;https://trac.webkit.org/changeset/264268&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671668</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-07-14 23:01:15 -0700</bug_when>
    <thetext>Line 467 is this, which is a bit surprising.

    ASSERT([filteredCookies.get() count] &lt;= 1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671669</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-14 23:01:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/65587120&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673995</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 15:04:21 -0700</bug_when>
    <thetext>Looks like we use a different API for parsing cookies on macOS and iOS:
#if PLATFORM(MAC)
    NSArray *unfilteredCookies = [NSHTTPCookie _parsedCookiesWithResponseHeaderFields:headerFields forURL:cookieURL];
#else
    NSArray *unfilteredCookies = [NSHTTPCookie cookiesWithResponseHeaderFields:headerFields forURL:cookieURL];
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674010</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 15:18:32 -0700</bug_when>
    <thetext>The cookie string is:

samesite-unspecified=0.2755897489430851; Path=/, samesite-lax=0.2755897489430851; Path=/; SameSite=Lax, samesite-strict=0.2755897489430851; Path=/; SameSite=Strict, samesite-none=0.2755897489430851; Path=/; SameSite=None; Secure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674015</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 15:24:23 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; The cookie string is:
&gt; 
&gt; samesite-unspecified=0.2755897489430851; Path=/,
&gt; samesite-lax=0.2755897489430851; Path=/; SameSite=Lax,
&gt; samesite-strict=0.2755897489430851; Path=/; SameSite=Strict,
&gt; samesite-none=0.2755897489430851; Path=/; SameSite=None; Secure

the HTML spec says to treat the string set to document.cookie as a Set-Cookie header. Set-Cookie header is defined here:
https://tools.ietf.org/html/rfc6265#section-4.1

It should only support one cookie indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674043</commentid>
    <comment_count>7</comment_count>
      <attachid>404995</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 16:47:46 -0700</bug_when>
    <thetext>Created attachment 404995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674045</commentid>
    <comment_count>8</comment_count>
      <attachid>404996</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-22 16:51:11 -0700</bug_when>
    <thetext>Created attachment 404996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674102</commentid>
    <comment_count>9</comment_count>
      <attachid>404996</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-22 20:27:41 -0700</bug_when>
    <thetext>Comment on attachment 404996
Patch

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

I think this is good, but this is a bad time to make a change like this.  Could this wait until after the next branch?

&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:424
&gt; +            RetainPtr&lt;NSDate&gt; dateInAWeek = adoptNS([[NSDate alloc] initWithTimeIntervalSinceNow:cappedLifetime-&gt;seconds()]);

auto

&gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:459
&gt; +    setHTTPCookiesForURL(cookieStorage().get(), [NSArray arrayWithObject:cookie], cookieURL, firstParty, sameSiteInfo);

@[cookie]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674225</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-23 08:35:22 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #9)
&gt; Comment on attachment 404996 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404996&amp;action=review
&gt; 
&gt; I think this is good, but this is a bad time to make a change like this. 
&gt; Could this wait until after the next branch?

I guess it can but it is merely aligning iOS with shipping macOS. 

&gt; 
&gt; &gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:424
&gt; &gt; +            RetainPtr&lt;NSDate&gt; dateInAWeek = adoptNS([[NSDate alloc] initWithTimeIntervalSinceNow:cappedLifetime-&gt;seconds()]);
&gt; 
&gt; auto
&gt; 
&gt; &gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:459
&gt; &gt; +    setHTTPCookiesForURL(cookieStorage().get(), [NSArray arrayWithObject:cookie], cookieURL, firstParty, sameSiteInfo);
&gt; 
&gt; @[cookie]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674227</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-23 08:37:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; (In reply to Alex Christensen from comment #9)
&gt; &gt; Comment on attachment 404996 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=404996&amp;action=review
&gt; &gt; 
&gt; &gt; I think this is good, but this is a bad time to make a change like this. 
&gt; &gt; Could this wait until after the next branch?
&gt; 
&gt; I guess it can but it is merely aligning iOS with shipping macOS. 

It also only impact document.cookie setting.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:424
&gt; &gt; &gt; +            RetainPtr&lt;NSDate&gt; dateInAWeek = adoptNS([[NSDate alloc] initWithTimeIntervalSinceNow:cappedLifetime-&gt;seconds()]);
&gt; &gt; 
&gt; &gt; auto
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:459
&gt; &gt; &gt; +    setHTTPCookiesForURL(cookieStorage().get(), [NSArray arrayWithObject:cookie], cookieURL, firstParty, sameSiteInfo);
&gt; &gt; 
&gt; &gt; @[cookie]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674230</commentid>
    <comment_count>12</comment_count>
      <attachid>405042</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-23 08:47:46 -0700</bug_when>
    <thetext>Created attachment 405042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675382</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-27 13:58:19 -0700</bug_when>
    <thetext>Committed r264943: &lt;https://trac.webkit.org/changeset/264943&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405042.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675566</commentid>
    <comment_count>14</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-07-28 04:12:35 -0700</bug_when>
    <thetext>(In reply to EWS from comment #13)
&gt; Committed r264943: &lt;https://trac.webkit.org/changeset/264943&gt;
http/tests/cookies/document-cookie-multiple-cookies.html is failing consistently since this commit, as also warned by EWS.

History: https://results.webkit.org/?suite=layout-tests&amp;test=http%2Ftests%2Fcookies%2Fdocument-cookie-multiple-cookies.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675567</commentid>
    <comment_count>15</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-07-28 04:13:01 -0700</bug_when>
    <thetext>e.g.: https://ews-build.s3-us-west-2.amazonaws.com/Windows-EWS/r405345-31731-clean-tree/results.html

-PASS document.cookie is &quot;samesite-unspecified=0&quot;
+FAIL document.cookie should be samesite-unspecified=0. Was samesite-lax=1; samesite-strict=2; samesite-unspecified=0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675651</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-28 09:41:03 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #15)
&gt; e.g.:
&gt; https://ews-build.s3-us-west-2.amazonaws.com/Windows-EWS/r405345-31731-clean-
&gt; tree/results.html
&gt; 
&gt; -PASS document.cookie is &quot;samesite-unspecified=0&quot;
&gt; +FAIL document.cookie should be samesite-unspecified=0. Was samesite-lax=1;
&gt; samesite-strict=2; samesite-unspecified=0.

Ok. Windows still has the bug. I only fixed it for iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675658</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-28 10:00:34 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #16)
&gt; (In reply to Aakash Jain from comment #15)
&gt; &gt; e.g.:
&gt; &gt; https://ews-build.s3-us-west-2.amazonaws.com/Windows-EWS/r405345-31731-clean-
&gt; &gt; tree/results.html
&gt; &gt; 
&gt; &gt; -PASS document.cookie is &quot;samesite-unspecified=0&quot;
&gt; &gt; +FAIL document.cookie should be samesite-unspecified=0. Was samesite-lax=1;
&gt; &gt; samesite-strict=2; samesite-unspecified=0.
&gt; 
&gt; Ok. Windows still has the bug. I only fixed it for iOS.

Fixing the same bug on Windows via Bug 214880.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404995</attachid>
            <date>2020-07-22 16:47:46 -0700</date>
            <delta_ts>2020-07-22 16:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214222-20200722164746.patch</filename>
            <type>text/plain</type>
            <size>14583</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTk5YzgwOGM3ZjZjNGQ2
MGViOTFhMTQ0OGNlNjg1OTViMTMzM2M3Ny4uMTlkYzEwNTE5MDU5MTI3NDVkZjVhYzA3ODM3MDIy
MzVmMTE0ZTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKFtmaWx0ZXJlZENv
b2tpZXMuZ2V0KCkgY291bnRdIDw9IDEpIG9uICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnNvY2tldHMvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0ZWQuaHR0cHMu
aHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
MjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTU4NzEyMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgdGhlIEhUTUwgc3BlY2lmaWNhdGlv
biBbMV0sIHVwb24gc2V0dGluZyBkb2N1bWVudC5jb29raWUsIHdlIHNob3VsZCBhY3QgYXMgd2Ug
d291bGQgd2hlbiByZWNlaXZpbmcgYSBTZXQtQ29va2llIHN0cmluZyBbMl0uCisgICAgICAgIFRo
aXMgbWVhbnMgdGhhdCB5b3UgY2FuIG9ubHkgc2V0IG9uZSBjb29raWUgYXQgYSB0aW1lICh5b3Ug
Y2Fubm90IGNvbW1hLXNlcGFyYXRlIHNldmVyYWwgY29va2llcykuCisKKyAgICAgICAgV2Ugd2Vy
ZSBiZWhhdmluZyBjb3JyZWN0bHkgb24gbWFjT1MgYmVjYXVzZSB3ZSB3ZXJlIHVzaW5nIHRoZSBb
TlNIVFRQQ29va2llIF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSBTUEkg
dGhhdCB3YXMKKyAgICAgICAgbWFkZSBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4gSG93
ZXZlciwgd2Ugd291bGQgc2V0IG11bHRpcGxlIGNvb2tpZXMgKGluIHJlbGVhc2UpLCBhbmQgY3Jh
c2ggaW4gZGVidWcgb24gaU9TIGJlY2F1c2UgaU9TCisgICAgICAgIHdhcyB1c2luZyBhIGRpZmZl
cmVudCBBUEkgdG8gcGFyc2UgdGhlIGNvb2tpZXMgKFtOU0hUVFBDb29raWUgY29va2llc1dpdGhS
ZXNwb25zZUhlYWRlckZpZWxkczopLgorCisgICAgICAgIE5vdGUgdGhhdCBbTlNIVFRQQ29va2ll
IF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSB3YXMgZGVwcmVjYXRlZCBp
biBDRk5ldHdvcmssIGluIGZhdm9yIG9mCisgICAgICAgIFtOU0hUVFBDb29raWUgX2Nvb2tpZUZv
clNldENvb2tpZVN0cmluZzpdLiBBcyBhIHJlc3VsdCwgSSB1cGRhdGVkIGJvdGggbWFjT1MgYW5k
IGlPUyB0byB1c2UgdGhlIHNhbWUgbmV3IENGTmV0d29yayBTUEksIHdoaWNoCisgICAgICAgIGdp
dmVzIHVzIHRoZSBzdGFuZGFyZCBiZWhhdmlvci4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvY3VtZW50LWNvb2tpZQorICAgICAgICBbMl0gaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEKKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRt
bAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRE9NQ29va2llKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3Qp
OgorCiAyMDIwLTA3LTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgU2FmYXJpIGRvZXMgbm90IHByZXNlbnQgQ2VydGlmaWNhdGVJbmZvIGZv
ciBzZXJ2aWNlLXdvcmtlciBzZXJ2ZWQgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0
NWUzZDZjMWI5MDg3M2UzYTE2MGZhZWVkNGE3ZjYyMjBiMWFiZmNhLi44MDRmZWI5MWExZGM1YmU4
Y2MyMGI2NmMzZWEwNGM5NTg4ZjE5ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMC0wNy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdldCgpIGNvdW50XSA8PSAxKSBvbiAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvdGhpcmQtcGFydHkt
Y29va2llLWFjY2VwdGVkLmh0dHBzLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNDIyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1ODcx
MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oOgorICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgX3Bh
cnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMgd2l0aCBuZXdlciBfY29va2llRm9y
U2V0Q29va2llU3RyaW5nIGFsdGVybmF0aXZlLgorCiAyMDIwLTA3LTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBp
bnRlcm5hbCBidWlsZCB3aXRoIHZlcnkgcmVjZW50IFNES3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDBlNjc3YjU3MGRiOGFjMjg5NzdhZDY0
M2VjZjhjMzAwMTY5MGMwNWYuLmM4ZjE4NjQyMmE3YzE4YzcwYzkxYWQ2NDA3MzdjMjRiYjExNWJh
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBA
IC00NDUsOSArNDQ1LDcgQEAgV1RGX0VYVEVSTl9DX0VORAogLy8gQXBwbGUgaW50ZXJuYWwgU0RL
IGJ1aWxkcyB1c2UgaGVhZGVycyBpbnN0ZWFkLgogCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAo
KQotI2lmIFBMQVRGT1JNKE1BQykKLSsgKE5TQXJyYXkgKilfcGFyc2VkQ29va2llc1dpdGhSZXNw
b25zZUhlYWRlckZpZWxkczooTlNEaWN0aW9uYXJ5ICopaGVhZGVyRmllbGRzIGZvclVSTDooTlNV
UkwgKilhVVJMOwotI2VuZGlmCisrIChOU0hUVFBDb29raWUgKilfY29va2llRm9yU2V0Q29va2ll
U3RyaW5nOihOU1N0cmluZyAqKXNldENvb2tpZVN0cmluZyBmb3JVUkw6KE5TVVJMICopYVVSTCBw
YXJ0aXRpb246KE5TU3RyaW5nICopIHBhcnRpdGlvbjsKICsgKE5TQXJyYXkgKilfY2YybnNDb29r
aWVzOihDRkFycmF5UmVmKWNmQ29va2llczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1MjNkMDkxNDZjM2M0NTkyMjZiMmJiNWUwZDQ5ZmZhN2Rh
NjY0MC4uZDllNGY2YTUwZGRkNjc4YTc2Mzk0Y2RlNWNjZmZkMjA5ZjdkYTllOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0zMDgsNDAgKzMwOCw2IEBAIE5TQXJy
YXkgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aHR0cENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBjb29raWVTCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JVUkwobnND
b29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiB9CiAK
LXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcywgT3B0aW9uYWw8U2Vjb25kcz4gY2FwcGVkTGlmZXRpbWUpCi17Ci0gICAgTlNV
SW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07Ci0gICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKLQotICAgIGZvciAoTlNVSW50ZWdl
ciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgTlNIVFRQQ29va2llICpjb29raWUg
PSAoTlNIVFRQQ29va2llICopW3VuZmlsdGVyZWRDb29raWVzIG9iamVjdEF0SW5kZXg6aV07Ci0K
LSAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IE9uIDEwLjUsIE5TSFRUUENvb2tp
ZVN0b3JhZ2Ugd291bGQgc3RvcmUgYW4gZW1wdHkgY29va2llLAotICAgICAgICAvLyB3aGljaCB3
b3VsZCBiZSBzZW50IGFzICJDb29raWU6ID0iLiBXZSBoYXZlIGEgd29ya2Fyb3VuZCBpbiBzZXRD
b29raWVzKCkgdG8gcHJldmVudAotICAgICAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRv
IGF2b2lkIHNlbmRpbmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAot
ICAgICAgICAvLyB0aGVyZSdzIG5vIGhhcm0gdG8gZG9pbmcgdGhpcyBjaGVjayBiZWNhdXNlIHN1
Y2ggYSBjb29raWUgaXMgbmV2ZXIgdmFsaWQuCi0gICAgICAgIGlmICghW1tjb29raWUgbmFtZV0g
bGVuZ3RoXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChbY29va2llIGlz
SFRUUE9ubHldKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gQ2FwIGxpZmV0
aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAgICAg
ICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAg
ICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1l
SW50ZXJ2YWxTaW5jZU5vdyA+IGNhcHBlZExpZmV0aW1lLT5zZWNvbmRzKCkpIHsKLSAgICAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeTxOU0hUVFBDb29raWVQcm9wZXJ0
eUtleSwgaWQ+PiBwcm9wZXJ0aWVzID0gYWRvcHROUyhbW2Nvb2tpZSBwcm9wZXJ0aWVzXSBtdXRh
YmxlQ29weV0pOwotICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGU+IGRhdGVJbkFXZWVr
ID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpj
YXBwZWRMaWZldGltZS0+c2Vjb25kcygpXSk7Ci0gICAgICAgICAgICAgICAgW3Byb3BlcnRpZXMg
c2V0T2JqZWN0OmRhdGVJbkFXZWVrLmdldCgpIGZvcktleTpOU0hUVFBDb29raWVFeHBpcmVzXTsK
LSAgICAgICAgICAgICAgICBjb29raWUgPSBbTlNIVFRQQ29va2llIGNvb2tpZVdpdGhQcm9wZXJ0
aWVzOnByb3BlcnRpZXMuZ2V0KCldOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgW2ZpbHRlcmVkQ29va2llcy5nZXQoKSBhZGRPYmplY3Q6Y29va2llXTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwotfQotCiBOU0FycmF5ICpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNGb3JVUkwoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNr
SVRQIHNob3VsZEFza0lUUCwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTQyNiw3ICszOTIsNDUgQEAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb24KICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2ll
cywgU2hvdWxkQXNrSVRQOjpZZXMsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBj
b25zdCBTdHJpbmcmIGNvb2tpZVN0ciwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CitzdGF0aWMgTlNI
VFRQQ29va2llICpwYXJzZURPTUNvb2tpZShTdHJpbmcgY29va2llU3RyaW5nLCBOU1VSTCogY29v
a2llVVJMLCBPcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKK3sKKyAgICAvLyA8cmRh
cjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3RvcmFnZSB3b3VsZCBz
dG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUgc2VudCBhcyAiQ29v
a2llOiA9Ii4KKyAgICBpZiAoY29va2llU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTMxPiwgPHJkYXI6Ly80NDA5MDM0PgorICAgIC8vIGNvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJG
aWVsZHMgZG9lc24ndCBwYXJzZSBjb29raWVzIHdpdGhvdXQgYSB2YWx1ZQorICAgIGNvb2tpZVN0
cmluZyA9IGNvb2tpZVN0cmluZy5jb250YWlucygnPScpID8gY29va2llU3RyaW5nIDogY29va2ll
U3RyaW5nICsgIj0iOworCisgICAgTlNIVFRQQ29va2llICpjb29raWUgPSBbTlNIVFRQQ29va2ll
IF9jb29raWVGb3JTZXRDb29raWVTdHJpbmc6Y29va2llU3RyaW5nIGZvclVSTDpjb29raWVVUkwg
cGFydGl0aW9uOm5pbF07CisgICAgaWYgKCFjb29raWUpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICAvLyA8cmRhcjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3Rv
cmFnZSB3b3VsZCBzdG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUg
c2VudCBhcyAiQ29va2llOiA9Ii4gV2UgaGF2ZSBhIHdvcmthcm91bmQgaW4gc2V0Q29va2llcygp
IHRvIHByZXZlbnQKKyAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRvIGF2b2lkIHNlbmRp
bmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAorICAgIC8vIHRoZXJl
J3Mgbm8gaGFybSB0byBkb2luZyB0aGlzIGNoZWNrIGJlY2F1c2Ugc3VjaCBhIGNvb2tpZSBpcyBu
ZXZlciB2YWxpZC4KKyAgICBpZiAoIVtbY29va2llIG5hbWVdIGxlbmd0aF0pCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBpZiAoW2Nvb2tpZSBpc0hUVFBPbmx5XSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIENhcCBsaWZldGltZSBvZiBwZXJzaXN0ZW50LCBjbGllbnQtc2lkZSBj
b29raWVzIHRvIGEgd2Vlay4KKyAgICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNT
ZXNzaW9uT25seV0pIHsKKyAgICAgICAgaWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2ll
LmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29u
ZHMoKSkgeworICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk8TlNIVFRQ
Q29va2llUHJvcGVydHlLZXksIGlkPj4gcHJvcGVydGllcyA9IGFkb3B0TlMoW1tjb29raWUgcHJv
cGVydGllc10gbXV0YWJsZUNvcHldKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGU+IGRh
dGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxT
aW5jZU5vdzpjYXBwZWRMaWZldGltZS0+c2Vjb25kcygpXSk7CisgICAgICAgICAgICBbcHJvcGVy
dGllcyBzZXRPYmplY3Q6ZGF0ZUluQVdlZWsuZ2V0KCkgZm9yS2V5Ok5TSFRUUENvb2tpZUV4cGly
ZXNdOworICAgICAgICAgICAgcmV0dXJuIFtOU0hUVFBDb29raWUgY29va2llV2l0aFByb3BlcnRp
ZXM6cHJvcGVydGllcy5nZXQoKV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY29v
a2llOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00o
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgY29u
c3QgU3RyaW5nJiBjb29raWVTdHJpbmcsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKSBjb25zdAogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpIHx8IG1faXNJbk1lbW9yeUNvb2tpZVN0b3JlKTsKIApAQCAtNDQxLDMyICs0NDUsMTgg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICAgICBVTlVTRURfUEFSQU0oc2hvdWxkQXNrSVRQ
KTsKICNlbmRpZgogCi0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IE9uIDEwLjUsIE5T
SFRUUENvb2tpZVN0b3JhZ2Ugd291bGQgc3RvcmUgYW4gZW1wdHkgY29va2llLAotICAgIC8vIHdo
aWNoIHdvdWxkIGJlIHNlbnQgYXMgIkNvb2tpZTogPSIuCi0gICAgaWYgKGNvb2tpZVN0ci5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIDxodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTMxPiwgPHJkYXI6Ly80NDA5MDM0PgotICAgIC8vIGNvb2tpZXNX
aXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMgZG9lc24ndCBwYXJzZSBjb29raWVzIHdpdGhvdXQgYSB2
YWx1ZQotICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVTdHIuY29udGFpbnMoJz0nKSA/
IGNvb2tpZVN0ciA6IGNvb2tpZVN0ciArICI9IjsKLQogICAgIE5TVVJMICpjb29raWVVUkwgPSB1
cmw7Ci0gICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJGaWVsZHMgPSBAeyBAIlNldC1Db29raWUiOiBj
b29raWVTdHJpbmcgfTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcyA9IFtOU0hUVFBDb29raWUgX3BhcnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFk
ZXJGaWVsZHM6aGVhZGVyRmllbGRzIGZvclVSTDpjb29raWVVUkxdOwotI2Vsc2UKLSAgICBOU0Fy
cmF5ICp1bmZpbHRlcmVkQ29va2llcyA9IFtOU0hUVFBDb29raWUgY29va2llc1dpdGhSZXNwb25z
ZUhlYWRlckZpZWxkczpoZWFkZXJGaWVsZHMgZm9yVVJMOmNvb2tpZVVSTF07Ci0jZW5kaWYKIAor
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGNvb2tpZUNhcDsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBm
aWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBjbGllbnRTaWRlQ29va2llQ2FwKFJlZ2lz
dHJhYmxlRG9tYWluIHsgZmlyc3RQYXJ0eSB9LCBwYWdlSUQpKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPE5TQXJyYXk+IGZpbHRlcmVkQ29va2llcyA9IGZpbHRlckNvb2tpZXModW5maWx0ZXJlZENv
b2tpZXMsIFdURjo6bnVsbG9wdCk7CisgICAgY29va2llQ2FwID0gY2xpZW50U2lkZUNvb2tpZUNh
cChSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHkgfSwgcGFnZUlEKTsKICNlbmRpZgotICAg
IEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdldCgpIGNvdW50XSA8PSAxKTsKIAotICAgIHNldEhU
VFBDb29raWVzRm9yVVJMKGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVyZWRDb29raWVzLmdl
dCgpLCBjb29raWVVUkwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CisgICAgTlNIVFRQQ29v
a2llICpjb29raWUgPSBwYXJzZURPTUNvb2tpZShjb29raWVTdHJpbmcsIGNvb2tpZVVSTCwgY29v
a2llQ2FwKTsKKyAgICBpZiAoIWNvb2tpZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0SFRU
UENvb2tpZXNGb3JVUkwoY29va2llU3RvcmFnZSgpLmdldCgpLCBbTlNBcnJheSBhcnJheVdpdGhP
YmplY3Q6Y29va2llXSwgY29va2llVVJMLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8pOwogCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0NmYyNmVhMjkzNmM0ZTkz
NDljNWE0OThjNjE2YzUwMDE1ZjM5YWQuLjc3NGNhNzRhMzI4MmJkZDMyZDIzOWE5N2VlYTEzNTk2
NDMwMTEzODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNy0yMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdl
dCgpIGNvdW50XSA8PSAxKSBvbiAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJz
b2NrZXRzL2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWFjY2VwdGVkLmh0dHBzLmh0bWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDIyMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjU1ODcxMjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29v
a2llLW11bHRpcGxlLWNvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRtbDogQWRk
ZWQuCisgICAgICAgIEFkZCBiZXR0ZXIgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tpcCB0ZXN0
cyB0aGF0IGlzIG5vIGxvbmdlciBjcmFzaGluZyBvbiBpT1MuCisKIDIwMjAtMDctMjIgIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bVW5p
c2NyaWJlXSBNYXRlcmlhbCBpY29ucyBjb250YWluaW5nIHVuZGVyc2NvcmUgb3IgbnVtYmVycyBh
cmVuJ3Qgc2hvd24gYmVjYXVzZSBTY3JpcHRJdGVtaXplIHNwbGl0cyB0aGVtIGFwYXJ0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11
bHRpcGxlLWNvb2tpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29r
aWVzL2RvY3VtZW50LWNvb2tpZS1tdWx0aXBsZS1jb29raWVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MjRhMmQ3Y2EyOTE4YzUzZDQwMTFmMjJlYTQ1YWJlNzU3NDNjNzg0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL2RvY3VtZW50LWNvb2tpZS1t
dWx0aXBsZS1jb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0cnlp
bmcgdG8gc2V0IG11bHRpcGxlIGNvb2tpZXMgYXQgb25jZSB1c2luZyBkb2N1bWVudC5jb29raWUK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuY29va2llIGlz
ICIiCitQQVNTIGRvY3VtZW50LmNvb2tpZSBpcyAic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRp
cGxlLWNvb2tpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9kb2N1bWVu
dC1jb29raWUtbXVsdGlwbGUtY29va2llcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzMTVlNjVjMzViZGI4
ZWFlZjE1MDY4ZTcxZGQ1N2UwNzAyYTA0ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRt
bApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2Nvb2tpZXMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRyeWluZyB0byBzZXQgbXVs
dGlwbGUgY29va2llcyBhdCBvbmNlIHVzaW5nIGRvY3VtZW50LmNvb2tpZScpOworCitjbGVhckFs
bENvb2tpZXMoKTsKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5jb29raWUiLCAi
Iik7CisKK2RvY3VtZW50LmNvb2tpZT0ic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MDssIHNhbWVzaXRl
LWxheD0xOyBTYW1lU2l0ZT1MYXgsIHNhbWVzaXRlLXN0cmljdD0yOyBTYW1lU2l0ZT1TdHJpY3Qs
IHNhbWVzaXRlLW5vbmU9MzsgU2FtZVNpdGU9Tm9uZTsgU2VjdXJlIjsKKworLy8gT25seSB0aGUg
Zmlyc3QgY29va2llIHNob3VsZCBoYXZlIGJlZW4gc2V0Lgorc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJkb2N1bWVudC5jb29raWUiLCAic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MCIpOworCisvL2NsZWFy
Q29va2llcygpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nvb2tpZXMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiMmY4ZjQ4ZGIwYzk1MGYyMWFj
NTJiOGQ5ZGE0MjEyNDc0MTNhM2QzLi5lMzVlMWY1ZjlmYWFkYjk4YjAzZmJmYjE0ZWEzMWUwY2Qw
NTUzNDZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xMTIwLDggKzExMjAsNiBAQCB3ZWJraXQub3JnL2IvMTYzMzYyIHBsYXRmb3JtL2lv
cy9pb3MvcGx1Z2luL3lvdXR1YmUtZmxhc2gtcGx1Z2luLWlmcmFtZS5odG1sIFsgUAogCiB3ZWJr
aXQub3JnL2IvMTY0OTYwIGh0dHAvdGVzdHMvc2VjdXJpdHkvbW9kdWxlLWNvcnJlY3QtbWltZS10
eXBlcy5odG1sIFsgU2xvdyBdCiAKLXdlYmtpdC5vcmcvYi8yMTQyMjIgWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0cy9jb29raWVzL3RoaXJkLXBhcnR5
LWNvb2tpZS1hY2NlcHRlZC5odHRwcy5odG1sIFsgU2tpcCBdCi0KIHdlYmtpdC5vcmcvYi8xNjQ5
NjEgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWlu
LWNvcnJlY3QtY29udGV4dC5odG1sIFsgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNjUxNjUg
WyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L3NjcmlwdG5vbmNlLWludmFsaWRub25jZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404996</attachid>
            <date>2020-07-22 16:51:11 -0700</date>
            <delta_ts>2020-07-23 08:47:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214222-20200722165110.patch</filename>
            <type>text/plain</type>
            <size>14581</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTk5YzgwOGM3ZjZjNGQ2
MGViOTFhMTQ0OGNlNjg1OTViMTMzM2M3Ny4uMTlkYzEwNTE5MDU5MTI3NDVkZjVhYzA3ODM3MDIy
MzVmMTE0ZTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKFtmaWx0ZXJlZENv
b2tpZXMuZ2V0KCkgY291bnRdIDw9IDEpIG9uICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnNvY2tldHMvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0ZWQuaHR0cHMu
aHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
MjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTU4NzEyMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgdGhlIEhUTUwgc3BlY2lmaWNhdGlv
biBbMV0sIHVwb24gc2V0dGluZyBkb2N1bWVudC5jb29raWUsIHdlIHNob3VsZCBhY3QgYXMgd2Ug
d291bGQgd2hlbiByZWNlaXZpbmcgYSBTZXQtQ29va2llIHN0cmluZyBbMl0uCisgICAgICAgIFRo
aXMgbWVhbnMgdGhhdCB5b3UgY2FuIG9ubHkgc2V0IG9uZSBjb29raWUgYXQgYSB0aW1lICh5b3Ug
Y2Fubm90IGNvbW1hLXNlcGFyYXRlIHNldmVyYWwgY29va2llcykuCisKKyAgICAgICAgV2Ugd2Vy
ZSBiZWhhdmluZyBjb3JyZWN0bHkgb24gbWFjT1MgYmVjYXVzZSB3ZSB3ZXJlIHVzaW5nIHRoZSBb
TlNIVFRQQ29va2llIF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSBTUEkg
dGhhdCB3YXMKKyAgICAgICAgbWFkZSBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4gSG93
ZXZlciwgd2Ugd291bGQgc2V0IG11bHRpcGxlIGNvb2tpZXMgKGluIHJlbGVhc2UpLCBhbmQgY3Jh
c2ggaW4gZGVidWcgb24gaU9TIGJlY2F1c2UgaU9TCisgICAgICAgIHdhcyB1c2luZyBhIGRpZmZl
cmVudCBBUEkgdG8gcGFyc2UgdGhlIGNvb2tpZXMgKFtOU0hUVFBDb29raWUgY29va2llc1dpdGhS
ZXNwb25zZUhlYWRlckZpZWxkczopLgorCisgICAgICAgIE5vdGUgdGhhdCBbTlNIVFRQQ29va2ll
IF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSB3YXMgZGVwcmVjYXRlZCBp
biBDRk5ldHdvcmssIGluIGZhdm9yIG9mCisgICAgICAgIFtOU0hUVFBDb29raWUgX2Nvb2tpZUZv
clNldENvb2tpZVN0cmluZzpdLiBBcyBhIHJlc3VsdCwgSSB1cGRhdGVkIGJvdGggbWFjT1MgYW5k
IGlPUyB0byB1c2UgdGhlIHNhbWUgbmV3IENGTmV0d29yayBTUEksIHdoaWNoCisgICAgICAgIGdp
dmVzIHVzIHRoZSBzdGFuZGFyZCBiZWhhdmlvci4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvY3VtZW50LWNvb2tpZQorICAgICAgICBbMl0gaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEKKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRt
bAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRE9NQ29va2llKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3Qp
OgorCiAyMDIwLTA3LTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgU2FmYXJpIGRvZXMgbm90IHByZXNlbnQgQ2VydGlmaWNhdGVJbmZvIGZv
ciBzZXJ2aWNlLXdvcmtlciBzZXJ2ZWQgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0
NWUzZDZjMWI5MDg3M2UzYTE2MGZhZWVkNGE3ZjYyMjBiMWFiZmNhLi44MDRmZWI5MWExZGM1YmU4
Y2MyMGI2NmMzZWEwNGM5NTg4ZjE5ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMC0wNy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdldCgpIGNvdW50XSA8PSAxKSBvbiAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvdGhpcmQtcGFydHkt
Y29va2llLWFjY2VwdGVkLmh0dHBzLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNDIyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1ODcx
MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oOgorICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgX3Bh
cnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMgd2l0aCBuZXdlciBfY29va2llRm9y
U2V0Q29va2llU3RyaW5nIGFsdGVybmF0aXZlLgorCiAyMDIwLTA3LTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBp
bnRlcm5hbCBidWlsZCB3aXRoIHZlcnkgcmVjZW50IFNES3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDBlNjc3YjU3MGRiOGFjMjg5NzdhZDY0
M2VjZjhjMzAwMTY5MGMwNWYuLmM4ZjE4NjQyMmE3YzE4YzcwYzkxYWQ2NDA3MzdjMjRiYjExNWJh
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBA
IC00NDUsOSArNDQ1LDcgQEAgV1RGX0VYVEVSTl9DX0VORAogLy8gQXBwbGUgaW50ZXJuYWwgU0RL
IGJ1aWxkcyB1c2UgaGVhZGVycyBpbnN0ZWFkLgogCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAo
KQotI2lmIFBMQVRGT1JNKE1BQykKLSsgKE5TQXJyYXkgKilfcGFyc2VkQ29va2llc1dpdGhSZXNw
b25zZUhlYWRlckZpZWxkczooTlNEaWN0aW9uYXJ5ICopaGVhZGVyRmllbGRzIGZvclVSTDooTlNV
UkwgKilhVVJMOwotI2VuZGlmCisrIChOU0hUVFBDb29raWUgKilfY29va2llRm9yU2V0Q29va2ll
U3RyaW5nOihOU1N0cmluZyAqKXNldENvb2tpZVN0cmluZyBmb3JVUkw6KE5TVVJMICopYVVSTCBw
YXJ0aXRpb246KE5TU3RyaW5nICopIHBhcnRpdGlvbjsKICsgKE5TQXJyYXkgKilfY2YybnNDb29r
aWVzOihDRkFycmF5UmVmKWNmQ29va2llczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1MjNkMDkxNDZjM2M0NTkyMjZiMmJiNWUwZDQ5ZmZhN2Rh
NjY0MC4uZDllNGY2YTUwZGRkNjc4YTc2Mzk0Y2RlNWNjZmZkMjA5ZjdkYTllOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0zMDgsNDAgKzMwOCw2IEBAIE5TQXJy
YXkgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aHR0cENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBjb29raWVTCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JVUkwobnND
b29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiB9CiAK
LXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcywgT3B0aW9uYWw8U2Vjb25kcz4gY2FwcGVkTGlmZXRpbWUpCi17Ci0gICAgTlNV
SW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07Ci0gICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKLQotICAgIGZvciAoTlNVSW50ZWdl
ciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgTlNIVFRQQ29va2llICpjb29raWUg
PSAoTlNIVFRQQ29va2llICopW3VuZmlsdGVyZWRDb29raWVzIG9iamVjdEF0SW5kZXg6aV07Ci0K
LSAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IE9uIDEwLjUsIE5TSFRUUENvb2tp
ZVN0b3JhZ2Ugd291bGQgc3RvcmUgYW4gZW1wdHkgY29va2llLAotICAgICAgICAvLyB3aGljaCB3
b3VsZCBiZSBzZW50IGFzICJDb29raWU6ID0iLiBXZSBoYXZlIGEgd29ya2Fyb3VuZCBpbiBzZXRD
b29raWVzKCkgdG8gcHJldmVudAotICAgICAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRv
IGF2b2lkIHNlbmRpbmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAot
ICAgICAgICAvLyB0aGVyZSdzIG5vIGhhcm0gdG8gZG9pbmcgdGhpcyBjaGVjayBiZWNhdXNlIHN1
Y2ggYSBjb29raWUgaXMgbmV2ZXIgdmFsaWQuCi0gICAgICAgIGlmICghW1tjb29raWUgbmFtZV0g
bGVuZ3RoXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChbY29va2llIGlz
SFRUUE9ubHldKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gQ2FwIGxpZmV0
aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAgICAg
ICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAg
ICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1l
SW50ZXJ2YWxTaW5jZU5vdyA+IGNhcHBlZExpZmV0aW1lLT5zZWNvbmRzKCkpIHsKLSAgICAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeTxOU0hUVFBDb29raWVQcm9wZXJ0
eUtleSwgaWQ+PiBwcm9wZXJ0aWVzID0gYWRvcHROUyhbW2Nvb2tpZSBwcm9wZXJ0aWVzXSBtdXRh
YmxlQ29weV0pOwotICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGU+IGRhdGVJbkFXZWVr
ID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpj
YXBwZWRMaWZldGltZS0+c2Vjb25kcygpXSk7Ci0gICAgICAgICAgICAgICAgW3Byb3BlcnRpZXMg
c2V0T2JqZWN0OmRhdGVJbkFXZWVrLmdldCgpIGZvcktleTpOU0hUVFBDb29raWVFeHBpcmVzXTsK
LSAgICAgICAgICAgICAgICBjb29raWUgPSBbTlNIVFRQQ29va2llIGNvb2tpZVdpdGhQcm9wZXJ0
aWVzOnByb3BlcnRpZXMuZ2V0KCldOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgW2ZpbHRlcmVkQ29va2llcy5nZXQoKSBhZGRPYmplY3Q6Y29va2llXTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwotfQotCiBOU0FycmF5ICpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNGb3JVUkwoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNr
SVRQIHNob3VsZEFza0lUUCwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTQyNiw3ICszOTIsNDUgQEAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb24KICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2ll
cywgU2hvdWxkQXNrSVRQOjpZZXMsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBj
b25zdCBTdHJpbmcmIGNvb2tpZVN0ciwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CitzdGF0aWMgTlNI
VFRQQ29va2llICpwYXJzZURPTUNvb2tpZShTdHJpbmcgY29va2llU3RyaW5nLCBOU1VSTCogY29v
a2llVVJMLCBPcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKK3sKKyAgICAvLyA8cmRh
cjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3RvcmFnZSB3b3VsZCBz
dG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUgc2VudCBhcyAiQ29v
a2llOiA9Ii4KKyAgICBpZiAoY29va2llU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTMxPiwgPHJkYXI6Ly80NDA5MDM0PgorICAgIC8vIGNvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJG
aWVsZHMgZG9lc24ndCBwYXJzZSBjb29raWVzIHdpdGhvdXQgYSB2YWx1ZQorICAgIGNvb2tpZVN0
cmluZyA9IGNvb2tpZVN0cmluZy5jb250YWlucygnPScpID8gY29va2llU3RyaW5nIDogY29va2ll
U3RyaW5nICsgIj0iOworCisgICAgTlNIVFRQQ29va2llICpjb29raWUgPSBbTlNIVFRQQ29va2ll
IF9jb29raWVGb3JTZXRDb29raWVTdHJpbmc6Y29va2llU3RyaW5nIGZvclVSTDpjb29raWVVUkwg
cGFydGl0aW9uOm5pbF07CisgICAgaWYgKCFjb29raWUpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICAvLyA8cmRhcjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3Rv
cmFnZSB3b3VsZCBzdG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUg
c2VudCBhcyAiQ29va2llOiA9Ii4gV2UgaGF2ZSBhIHdvcmthcm91bmQgaW4gc2V0Q29va2llcygp
IHRvIHByZXZlbnQKKyAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRvIGF2b2lkIHNlbmRp
bmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAorICAgIC8vIHRoZXJl
J3Mgbm8gaGFybSB0byBkb2luZyB0aGlzIGNoZWNrIGJlY2F1c2Ugc3VjaCBhIGNvb2tpZSBpcyBu
ZXZlciB2YWxpZC4KKyAgICBpZiAoIVtbY29va2llIG5hbWVdIGxlbmd0aF0pCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBpZiAoW2Nvb2tpZSBpc0hUVFBPbmx5XSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIENhcCBsaWZldGltZSBvZiBwZXJzaXN0ZW50LCBjbGllbnQtc2lkZSBj
b29raWVzIHRvIGEgd2Vlay4KKyAgICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNT
ZXNzaW9uT25seV0pIHsKKyAgICAgICAgaWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2ll
LmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29u
ZHMoKSkgeworICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk8TlNIVFRQ
Q29va2llUHJvcGVydHlLZXksIGlkPj4gcHJvcGVydGllcyA9IGFkb3B0TlMoW1tjb29raWUgcHJv
cGVydGllc10gbXV0YWJsZUNvcHldKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGU+IGRh
dGVJbkFXZWVrID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxT
aW5jZU5vdzpjYXBwZWRMaWZldGltZS0+c2Vjb25kcygpXSk7CisgICAgICAgICAgICBbcHJvcGVy
dGllcyBzZXRPYmplY3Q6ZGF0ZUluQVdlZWsuZ2V0KCkgZm9yS2V5Ok5TSFRUUENvb2tpZUV4cGly
ZXNdOworICAgICAgICAgICAgcmV0dXJuIFtOU0hUVFBDb29raWUgY29va2llV2l0aFByb3BlcnRp
ZXM6cHJvcGVydGllcy5nZXQoKV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gY29v
a2llOworfQorCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00o
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNrSVRQIHNob3VsZEFza0lUUCwgY29u
c3QgU3RyaW5nJiBjb29raWVTdHJpbmcsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKSBjb25zdAogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpIHx8IG1faXNJbk1lbW9yeUNvb2tpZVN0b3JlKTsKIApAQCAtNDQxLDMyICs0NDUsMTgg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKICAgICBVTlVTRURfUEFSQU0oc2hvdWxkQXNrSVRQ
KTsKICNlbmRpZgogCi0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IE9uIDEwLjUsIE5T
SFRUUENvb2tpZVN0b3JhZ2Ugd291bGQgc3RvcmUgYW4gZW1wdHkgY29va2llLAotICAgIC8vIHdo
aWNoIHdvdWxkIGJlIHNlbnQgYXMgIkNvb2tpZTogPSIuCi0gICAgaWYgKGNvb2tpZVN0ci5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIDxodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTMxPiwgPHJkYXI6Ly80NDA5MDM0PgotICAgIC8vIGNvb2tpZXNX
aXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMgZG9lc24ndCBwYXJzZSBjb29raWVzIHdpdGhvdXQgYSB2
YWx1ZQotICAgIFN0cmluZyBjb29raWVTdHJpbmcgPSBjb29raWVTdHIuY29udGFpbnMoJz0nKSA/
IGNvb2tpZVN0ciA6IGNvb2tpZVN0ciArICI9IjsKLQogICAgIE5TVVJMICpjb29raWVVUkwgPSB1
cmw7Ci0gICAgTlNEaWN0aW9uYXJ5ICpoZWFkZXJGaWVsZHMgPSBAeyBAIlNldC1Db29raWUiOiBj
b29raWVTdHJpbmcgfTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcyA9IFtOU0hUVFBDb29raWUgX3BhcnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFk
ZXJGaWVsZHM6aGVhZGVyRmllbGRzIGZvclVSTDpjb29raWVVUkxdOwotI2Vsc2UKLSAgICBOU0Fy
cmF5ICp1bmZpbHRlcmVkQ29va2llcyA9IFtOU0hUVFBDb29raWUgY29va2llc1dpdGhSZXNwb25z
ZUhlYWRlckZpZWxkczpoZWFkZXJGaWVsZHMgZm9yVVJMOmNvb2tpZVVSTF07Ci0jZW5kaWYKIAor
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGNvb2tpZUNhcDsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotICAgIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBm
aWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBjbGllbnRTaWRlQ29va2llQ2FwKFJlZ2lz
dHJhYmxlRG9tYWluIHsgZmlyc3RQYXJ0eSB9LCBwYWdlSUQpKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPE5TQXJyYXk+IGZpbHRlcmVkQ29va2llcyA9IGZpbHRlckNvb2tpZXModW5maWx0ZXJlZENv
b2tpZXMsIFdURjo6bnVsbG9wdCk7CisgICAgY29va2llQ2FwID0gY2xpZW50U2lkZUNvb2tpZUNh
cChSZWdpc3RyYWJsZURvbWFpbiB7IGZpcnN0UGFydHkgfSwgcGFnZUlEKTsKICNlbmRpZgotICAg
IEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdldCgpIGNvdW50XSA8PSAxKTsKIAotICAgIHNldEhU
VFBDb29raWVzRm9yVVJMKGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVyZWRDb29raWVzLmdl
dCgpLCBjb29raWVVUkwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CisgICAgTlNIVFRQQ29v
a2llICpjb29raWUgPSBwYXJzZURPTUNvb2tpZShjb29raWVTdHJpbmcsIGNvb2tpZVVSTCwgY29v
a2llQ2FwKTsKKyAgICBpZiAoIWNvb2tpZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0SFRU
UENvb2tpZXNGb3JVUkwoY29va2llU3RvcmFnZSgpLmdldCgpLCBbTlNBcnJheSBhcnJheVdpdGhP
YmplY3Q6Y29va2llXSwgY29va2llVVJMLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8pOwogCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0NmYyNmVhMjkzNmM0ZTkz
NDljNWE0OThjNjE2YzUwMDE1ZjM5YWQuLjc3NGNhNzRhMzI4MmJkZDMyZDIzOWE5N2VlYTEzNTk2
NDMwMTEzODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNy0yMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdl
dCgpIGNvdW50XSA8PSAxKSBvbiAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJz
b2NrZXRzL2Nvb2tpZXMvdGhpcmQtcGFydHktY29va2llLWFjY2VwdGVkLmh0dHBzLmh0bWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDIyMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjU1ODcxMjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29v
a2llLW11bHRpcGxlLWNvb2tpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRtbDogQWRk
ZWQuCisgICAgICAgIEFkZCBiZXR0ZXIgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tpcCB0ZXN0
cyB0aGF0IGlzIG5vIGxvbmdlciBjcmFzaGluZyBvbiBpT1MuCisKIDIwMjAtMDctMjIgIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bVW5p
c2NyaWJlXSBNYXRlcmlhbCBpY29ucyBjb250YWluaW5nIHVuZGVyc2NvcmUgb3IgbnVtYmVycyBh
cmVuJ3Qgc2hvd24gYmVjYXVzZSBTY3JpcHRJdGVtaXplIHNwbGl0cyB0aGVtIGFwYXJ0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11
bHRpcGxlLWNvb2tpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29r
aWVzL2RvY3VtZW50LWNvb2tpZS1tdWx0aXBsZS1jb29raWVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MjRhMmQ3Y2EyOTE4YzUzZDQwMTFmMjJlYTQ1YWJlNzU3NDNjNzg0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL2RvY3VtZW50LWNvb2tpZS1t
dWx0aXBsZS1jb29raWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0cnlp
bmcgdG8gc2V0IG11bHRpcGxlIGNvb2tpZXMgYXQgb25jZSB1c2luZyBkb2N1bWVudC5jb29raWUK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuY29va2llIGlz
ICIiCitQQVNTIGRvY3VtZW50LmNvb2tpZSBpcyAic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRp
cGxlLWNvb2tpZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9kb2N1bWVu
dC1jb29raWUtbXVsdGlwbGUtY29va2llcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1M2Y0YjE5NjNmMTYz
NzMzNGIwMjU3ZTc5YjExNDI3NmY0MGI3YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRt
bApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2Nvb2tpZXMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRyeWluZyB0byBzZXQgbXVs
dGlwbGUgY29va2llcyBhdCBvbmNlIHVzaW5nIGRvY3VtZW50LmNvb2tpZScpOworCitjbGVhckFs
bENvb2tpZXMoKTsKKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5jb29raWUiLCAi
Iik7CisKK2RvY3VtZW50LmNvb2tpZT0ic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MDssIHNhbWVzaXRl
LWxheD0xOyBTYW1lU2l0ZT1MYXgsIHNhbWVzaXRlLXN0cmljdD0yOyBTYW1lU2l0ZT1TdHJpY3Qs
IHNhbWVzaXRlLW5vbmU9MzsgU2FtZVNpdGU9Tm9uZTsgU2VjdXJlIjsKKworLy8gT25seSB0aGUg
Zmlyc3QgY29va2llIHNob3VsZCBoYXZlIGJlZW4gc2V0Lgorc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJkb2N1bWVudC5jb29raWUiLCAic2FtZXNpdGUtdW5zcGVjaWZpZWQ9MCIpOworCitjbGVhckNv
b2tpZXMoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb29raWVzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjJmOGY0OGRiMGM5NTBmMjFhYzUy
YjhkOWRhNDIxMjQ3NDEzYTNkMy4uZTM1ZTFmNWY5ZmFhZGI5OGIwM2ZiZmIxNGVhMzFlMGNkMDU1
MzQ2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTEyMCw4ICsxMTIwLDYgQEAgd2Via2l0Lm9yZy9iLzE2MzM2MiBwbGF0Zm9ybS9pb3Mv
aW9zL3BsdWdpbi95b3V0dWJlLWZsYXNoLXBsdWdpbi1pZnJhbWUuaHRtbCBbIFAKIAogd2Via2l0
Lm9yZy9iLzE2NDk2MCBodHRwL3Rlc3RzL3NlY3VyaXR5L21vZHVsZS1jb3JyZWN0LW1pbWUtdHlw
ZXMuaHRtbCBbIFNsb3cgXQogCi13ZWJraXQub3JnL2IvMjE0MjIyIFsgRGVidWcgXSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy90aGlyZC1wYXJ0eS1j
b29raWUtYWNjZXB0ZWQuaHR0cHMuaHRtbCBbIFNraXAgXQotCiB3ZWJraXQub3JnL2IvMTY0OTYx
IFsgUmVsZWFzZSBdIGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1j
b3JyZWN0LWNvbnRleHQuaHRtbCBbIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTY1MTY1IFsg
UmVsZWFzZSBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9z
Y3JpcHRub25jZS1pbnZhbGlkbm9uY2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405042</attachid>
            <date>2020-07-23 08:47:46 -0700</date>
            <delta_ts>2020-07-27 13:58:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214222-20200723084746.patch</filename>
            <type>text/plain</type>
            <size>14490</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTk5YzgwOGM3ZjZjNGQ2
MGViOTFhMTQ0OGNlNjg1OTViMTMzM2M3Ny4uMTlkYzEwNTE5MDU5MTI3NDVkZjVhYzA3ODM3MDIy
MzVmMTE0ZTE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA3LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUKFtmaWx0ZXJlZENv
b2tpZXMuZ2V0KCkgY291bnRdIDw9IDEpIG9uICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnNvY2tldHMvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0ZWQuaHR0cHMu
aHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
MjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTU4NzEyMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgdGhlIEhUTUwgc3BlY2lmaWNhdGlv
biBbMV0sIHVwb24gc2V0dGluZyBkb2N1bWVudC5jb29raWUsIHdlIHNob3VsZCBhY3QgYXMgd2Ug
d291bGQgd2hlbiByZWNlaXZpbmcgYSBTZXQtQ29va2llIHN0cmluZyBbMl0uCisgICAgICAgIFRo
aXMgbWVhbnMgdGhhdCB5b3UgY2FuIG9ubHkgc2V0IG9uZSBjb29raWUgYXQgYSB0aW1lICh5b3Ug
Y2Fubm90IGNvbW1hLXNlcGFyYXRlIHNldmVyYWwgY29va2llcykuCisKKyAgICAgICAgV2Ugd2Vy
ZSBiZWhhdmluZyBjb3JyZWN0bHkgb24gbWFjT1MgYmVjYXVzZSB3ZSB3ZXJlIHVzaW5nIHRoZSBb
TlNIVFRQQ29va2llIF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSBTUEkg
dGhhdCB3YXMKKyAgICAgICAgbWFkZSBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4gSG93
ZXZlciwgd2Ugd291bGQgc2V0IG11bHRpcGxlIGNvb2tpZXMgKGluIHJlbGVhc2UpLCBhbmQgY3Jh
c2ggaW4gZGVidWcgb24gaU9TIGJlY2F1c2UgaU9TCisgICAgICAgIHdhcyB1c2luZyBhIGRpZmZl
cmVudCBBUEkgdG8gcGFyc2UgdGhlIGNvb2tpZXMgKFtOU0hUVFBDb29raWUgY29va2llc1dpdGhS
ZXNwb25zZUhlYWRlckZpZWxkczopLgorCisgICAgICAgIE5vdGUgdGhhdCBbTlNIVFRQQ29va2ll
IF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzXSB3YXMgZGVwcmVjYXRlZCBp
biBDRk5ldHdvcmssIGluIGZhdm9yIG9mCisgICAgICAgIFtOU0hUVFBDb29raWUgX2Nvb2tpZUZv
clNldENvb2tpZVN0cmluZzpdLiBBcyBhIHJlc3VsdCwgSSB1cGRhdGVkIGJvdGggbWFjT1MgYW5k
IGlPUyB0byB1c2UgdGhlIHNhbWUgbmV3IENGTmV0d29yayBTUEksIHdoaWNoCisgICAgICAgIGdp
dmVzIHVzIHRoZSBzdGFuZGFyZCBiZWhhdmlvci4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvY3VtZW50LWNvb2tpZQorICAgICAgICBbMl0gaHR0cHM6
Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYyNjUjc2VjdGlvbi00LjEKKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMuaHRt
bAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRE9NQ29va2llKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3Qp
OgorCiAyMDIwLTA3LTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgU2FmYXJpIGRvZXMgbm90IHByZXNlbnQgQ2VydGlmaWNhdGVJbmZvIGZv
ciBzZXJ2aWNlLXdvcmtlciBzZXJ2ZWQgZG9jdW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA0
NWUzZDZjMWI5MDg3M2UzYTE2MGZhZWVkNGE3ZjYyMjBiMWFiZmNhLi44MDRmZWI5MWExZGM1YmU4
Y2MyMGI2NmMzZWEwNGM5NTg4ZjE5ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMC0wNy0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFTU0VSVChbZmlsdGVyZWRDb29raWVzLmdldCgpIGNvdW50XSA8PSAxKSBvbiAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvdGhpcmQtcGFydHkt
Y29va2llLWFjY2VwdGVkLmh0dHBzLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNDIyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1ODcx
MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
YWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oOgorICAgICAgICBSZXBsYWNlIGRlcHJlY2F0ZWQgX3Bh
cnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHMgd2l0aCBuZXdlciBfY29va2llRm9y
U2V0Q29va2llU3RyaW5nIGFsdGVybmF0aXZlLgorCiAyMDIwLTA3LTIyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCBp
bnRlcm5hbCBidWlsZCB3aXRoIHZlcnkgcmVjZW50IFNES3MuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDBlNjc3YjU3MGRiOGFjMjg5NzdhZDY0
M2VjZjhjMzAwMTY5MGMwNWYuLmM4ZjE4NjQyMmE3YzE4YzcwYzkxYWQ2NDA3MzdjMjRiYjExNWJh
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCkBA
IC00NDUsOSArNDQ1LDcgQEAgV1RGX0VYVEVSTl9DX0VORAogLy8gQXBwbGUgaW50ZXJuYWwgU0RL
IGJ1aWxkcyB1c2UgaGVhZGVycyBpbnN0ZWFkLgogCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAo
KQotI2lmIFBMQVRGT1JNKE1BQykKLSsgKE5TQXJyYXkgKilfcGFyc2VkQ29va2llc1dpdGhSZXNw
b25zZUhlYWRlckZpZWxkczooTlNEaWN0aW9uYXJ5ICopaGVhZGVyRmllbGRzIGZvclVSTDooTlNV
UkwgKilhVVJMOwotI2VuZGlmCisrIChOU0hUVFBDb29raWUgKilfY29va2llRm9yU2V0Q29va2ll
U3RyaW5nOihOU1N0cmluZyAqKXNldENvb2tpZVN0cmluZyBmb3JVUkw6KE5TVVJMICopYVVSTCBw
YXJ0aXRpb246KE5TU3RyaW5nICopIHBhcnRpdGlvbjsKICsgKE5TQXJyYXkgKilfY2YybnNDb29r
aWVzOihDRkFycmF5UmVmKWNmQ29va2llczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1MjNkMDkxNDZjM2M0NTkyMjZiMmJiNWUwZDQ5ZmZhN2Rh
NjY0MC4uY2I5NmQ0YWFmZDVhNGZhMDZkNmE3MjIxMDMyMDI3OThkOWEzYTY1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0zMDgsNDAgKzMwOCw2IEBAIE5TQXJy
YXkgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aHR0cENvb2tpZXNGb3JVUkwoQ0ZIVFRQQ29va2ll
U3RvcmFnZVJlZiBjb29raWVTCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JVUkwobnND
b29raWVTdG9yYWdlLmdldCgpLCB1cmwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiB9CiAK
LXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRl
cmVkQ29va2llcywgT3B0aW9uYWw8U2Vjb25kcz4gY2FwcGVkTGlmZXRpbWUpCi17Ci0gICAgTlNV
SW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07Ci0gICAgUmV0YWluUHRy
PE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKLQotICAgIGZvciAoTlNVSW50ZWdl
ciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgTlNIVFRQQ29va2llICpjb29raWUg
PSAoTlNIVFRQQ29va2llICopW3VuZmlsdGVyZWRDb29raWVzIG9iamVjdEF0SW5kZXg6aV07Ci0K
LSAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzU2MzI4ODM+IE9uIDEwLjUsIE5TSFRUUENvb2tp
ZVN0b3JhZ2Ugd291bGQgc3RvcmUgYW4gZW1wdHkgY29va2llLAotICAgICAgICAvLyB3aGljaCB3
b3VsZCBiZSBzZW50IGFzICJDb29raWU6ID0iLiBXZSBoYXZlIGEgd29ya2Fyb3VuZCBpbiBzZXRD
b29raWVzKCkgdG8gcHJldmVudAotICAgICAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRv
IGF2b2lkIHNlbmRpbmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAot
ICAgICAgICAvLyB0aGVyZSdzIG5vIGhhcm0gdG8gZG9pbmcgdGhpcyBjaGVjayBiZWNhdXNlIHN1
Y2ggYSBjb29raWUgaXMgbmV2ZXIgdmFsaWQuCi0gICAgICAgIGlmICghW1tjb29raWUgbmFtZV0g
bGVuZ3RoXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChbY29va2llIGlz
SFRUUE9ubHldKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gQ2FwIGxpZmV0
aW1lIG9mIHBlcnNpc3RlbnQsIGNsaWVudC1zaWRlIGNvb2tpZXMgdG8gYSB3ZWVrLgotICAgICAg
ICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNTZXNzaW9uT25seV0pIHsKLSAgICAg
ICAgICAgIGlmICghY29va2llLmV4cGlyZXNEYXRlIHx8IGNvb2tpZS5leHBpcmVzRGF0ZS50aW1l
SW50ZXJ2YWxTaW5jZU5vdyA+IGNhcHBlZExpZmV0aW1lLT5zZWNvbmRzKCkpIHsKLSAgICAgICAg
ICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeTxOU0hUVFBDb29raWVQcm9wZXJ0
eUtleSwgaWQ+PiBwcm9wZXJ0aWVzID0gYWRvcHROUyhbW2Nvb2tpZSBwcm9wZXJ0aWVzXSBtdXRh
YmxlQ29weV0pOwotICAgICAgICAgICAgICAgIFJldGFpblB0cjxOU0RhdGU+IGRhdGVJbkFXZWVr
ID0gYWRvcHROUyhbW05TRGF0ZSBhbGxvY10gaW5pdFdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzpj
YXBwZWRMaWZldGltZS0+c2Vjb25kcygpXSk7Ci0gICAgICAgICAgICAgICAgW3Byb3BlcnRpZXMg
c2V0T2JqZWN0OmRhdGVJbkFXZWVrLmdldCgpIGZvcktleTpOU0hUVFBDb29raWVFeHBpcmVzXTsK
LSAgICAgICAgICAgICAgICBjb29raWUgPSBbTlNIVFRQQ29va2llIGNvb2tpZVdpdGhQcm9wZXJ0
aWVzOnByb3BlcnRpZXMuZ2V0KCldOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAg
ICAgW2ZpbHRlcmVkQ29va2llcy5nZXQoKSBhZGRPYmplY3Q6Y29va2llXTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwotfQotCiBOU0FycmF5ICpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNGb3JVUkwoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU2hvdWxkQXNr
SVRQIHNob3VsZEFza0lUUCwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTQyNiw3ICszOTIsNDUgQEAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb24KICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oaGVhZGVyRmllbGRQcm94
eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQ
cm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdl
SUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2ll
cywgU2hvdWxkQXNrSVRQOjpZZXMsIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNrSVRQLCBj
b25zdCBTdHJpbmcmIGNvb2tpZVN0ciwgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpIGNvbnN0CitzdGF0aWMgTlNI
VFRQQ29va2llICpwYXJzZURPTUNvb2tpZShTdHJpbmcgY29va2llU3RyaW5nLCBOU1VSTCogY29v
a2llVVJMLCBPcHRpb25hbDxTZWNvbmRzPiBjYXBwZWRMaWZldGltZSkKK3sKKyAgICAvLyA8cmRh
cjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3RvcmFnZSB3b3VsZCBz
dG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUgc2VudCBhcyAiQ29v
a2llOiA9Ii4KKyAgICBpZiAoY29va2llU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTMxPiwgPHJkYXI6Ly80NDA5MDM0PgorICAgIC8vIGNvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJG
aWVsZHMgZG9lc24ndCBwYXJzZSBjb29raWVzIHdpdGhvdXQgYSB2YWx1ZQorICAgIGNvb2tpZVN0
cmluZyA9IGNvb2tpZVN0cmluZy5jb250YWlucygnPScpID8gY29va2llU3RyaW5nIDogY29va2ll
U3RyaW5nICsgIj0iOworCisgICAgTlNIVFRQQ29va2llICpjb29raWUgPSBbTlNIVFRQQ29va2ll
IF9jb29raWVGb3JTZXRDb29raWVTdHJpbmc6Y29va2llU3RyaW5nIGZvclVSTDpjb29raWVVUkwg
cGFydGl0aW9uOm5pbF07CisgICAgaWYgKCFjb29raWUpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICAvLyA8cmRhcjovL3Byb2JsZW0vNTYzMjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3Rv
cmFnZSB3b3VsZCBzdG9yZSBhbiBlbXB0eSBjb29raWUsCisgICAgLy8gd2hpY2ggd291bGQgYmUg
c2VudCBhcyAiQ29va2llOiA9Ii4gV2UgaGF2ZSBhIHdvcmthcm91bmQgaW4gc2V0Q29va2llcygp
IHRvIHByZXZlbnQKKyAgICAvLyB0aGF0LCBidXQgd2UgYWxzbyBuZWVkIHRvIGF2b2lkIHNlbmRp
bmcgY29va2llcyB0aGF0IHdlcmUgcHJldmlvdXNseSBzdG9yZWQsIGFuZAorICAgIC8vIHRoZXJl
J3Mgbm8gaGFybSB0byBkb2luZyB0aGlzIGNoZWNrIGJlY2F1c2Ugc3VjaCBhIGNvb2tpZSBpcyBu
ZXZlciB2YWxpZC4KKyAgICBpZiAoIVtbY29va2llIG5hbWVdIGxlbmd0aF0pCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBpZiAoW2Nvb2tpZSBpc0hUVFBPbmx5XSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIC8vIENhcCBsaWZldGltZSBvZiBwZXJzaXN0ZW50LCBjbGllbnQtc2lkZSBj
b29raWVzIHRvIGEgd2Vlay4KKyAgICBpZiAoY2FwcGVkTGlmZXRpbWUgJiYgIVtjb29raWUgaXNT
ZXNzaW9uT25seV0pIHsKKyAgICAgICAgaWYgKCFjb29raWUuZXhwaXJlc0RhdGUgfHwgY29va2ll
LmV4cGlyZXNEYXRlLnRpbWVJbnRlcnZhbFNpbmNlTm93ID4gY2FwcGVkTGlmZXRpbWUtPnNlY29u
ZHMoKSkgeworICAgICAgICAgICAgYXV0byBwcm9wZXJ0aWVzID0gYWRvcHROUyhbW2Nvb2tpZSBw
cm9wZXJ0aWVzXSBtdXRhYmxlQ29weV0pOworICAgICAgICAgICAgYXV0byBkYXRlSW5BV2VlayA9
IGFkb3B0TlMoW1tOU0RhdGUgYWxsb2NdIGluaXRXaXRoVGltZUludGVydmFsU2luY2VOb3c6Y2Fw
cGVkTGlmZXRpbWUtPnNlY29uZHMoKV0pOworICAgICAgICAgICAgW3Byb3BlcnRpZXMgc2V0T2Jq
ZWN0OmRhdGVJbkFXZWVrLmdldCgpIGZvcktleTpOU0hUVFBDb29raWVFeHBpcmVzXTsKKyAgICAg
ICAgICAgIHJldHVybiBbTlNIVFRQQ29va2llIGNvb2tpZVdpdGhQcm9wZXJ0aWVzOnByb3BlcnRp
ZXMuZ2V0KCldOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGNvb2tpZTsKK30KKwor
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIFNob3VsZEFza0lUUCBzaG91bGRBc2tJVFAsIGNvbnN0IFN0cmluZyYg
Y29va2llU3RyaW5nLCBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykgY29uc3QKIHsKICAgICBBU1NFUlQoaGFzUHJv
Y2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSB8fCBt
X2lzSW5NZW1vcnlDb29raWVTdG9yZSk7CiAKQEAgLTQ0MSwzMiArNDQ1LDE4IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTCiAgICAgVU5VU0VEX1BBUkFNKHNob3VsZEFza0lUUCk7CiAjZW5kaWYK
IAotICAgIC8vIDxyZGFyOi8vcHJvYmxlbS81NjMyODgzPiBPbiAxMC41LCBOU0hUVFBDb29raWVT
dG9yYWdlIHdvdWxkIHN0b3JlIGFuIGVtcHR5IGNvb2tpZSwKLSAgICAvLyB3aGljaCB3b3VsZCBi
ZSBzZW50IGFzICJDb29raWU6ID0iLgotICAgIGlmIChjb29raWVTdHIuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjUzMT4sIDxyZGFyOi8vNDQwOTAzND4KLSAgICAvLyBjb29raWVzV2l0aFJlc3BvbnNl
SGVhZGVyRmllbGRzIGRvZXNuJ3QgcGFyc2UgY29va2llcyB3aXRob3V0IGEgdmFsdWUKLSAgICBT
dHJpbmcgY29va2llU3RyaW5nID0gY29va2llU3RyLmNvbnRhaW5zKCc9JykgPyBjb29raWVTdHIg
OiBjb29raWVTdHIgKyAiPSI7Ci0KICAgICBOU1VSTCAqY29va2llVVJMID0gdXJsOwotICAgIE5T
RGljdGlvbmFyeSAqaGVhZGVyRmllbGRzID0gQHsgQCJTZXQtQ29va2llIjogY29va2llU3RyaW5n
IH07Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMg
PSBbTlNIVFRQQ29va2llIF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzOmhl
YWRlckZpZWxkcyBmb3JVUkw6Y29va2llVVJMXTsKLSNlbHNlCi0gICAgTlNBcnJheSAqdW5maWx0
ZXJlZENvb2tpZXMgPSBbTlNIVFRQQ29va2llIGNvb2tpZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVs
ZHM6aGVhZGVyRmllbGRzIGZvclVSTDpjb29raWVVUkxdOwotI2VuZGlmCiAKKyAgICBPcHRpb25h
bDxTZWNvbmRzPiBjb29raWVDYXA7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyZWRDb29raWVzID0gZmlsdGVyQ29va2ll
cyh1bmZpbHRlcmVkQ29va2llcywgY2xpZW50U2lkZUNvb2tpZUNhcChSZWdpc3RyYWJsZURvbWFp
biB7IGZpcnN0UGFydHkgfSwgcGFnZUlEKSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxOU0FycmF5
PiBmaWx0ZXJlZENvb2tpZXMgPSBmaWx0ZXJDb29raWVzKHVuZmlsdGVyZWRDb29raWVzLCBXVEY6
Om51bGxvcHQpOworICAgIGNvb2tpZUNhcCA9IGNsaWVudFNpZGVDb29raWVDYXAoUmVnaXN0cmFi
bGVEb21haW4geyBmaXJzdFBhcnR5IH0sIHBhZ2VJRCk7CiAjZW5kaWYKLSAgICBBU1NFUlQoW2Zp
bHRlcmVkQ29va2llcy5nZXQoKSBjb3VudF0gPD0gMSk7CiAKLSAgICBzZXRIVFRQQ29va2llc0Zv
clVSTChjb29raWVTdG9yYWdlKCkuZ2V0KCksIGZpbHRlcmVkQ29va2llcy5nZXQoKSwgY29va2ll
VVJMLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8pOworICAgIE5TSFRUUENvb2tpZSAqY29va2ll
ID0gcGFyc2VET01Db29raWUoY29va2llU3RyaW5nLCBjb29raWVVUkwsIGNvb2tpZUNhcCk7Cisg
ICAgaWYgKCFjb29raWUpCisgICAgICAgIHJldHVybjsKKworICAgIHNldEhUVFBDb29raWVzRm9y
VVJMKGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgQFtjb29raWVdLCBjb29raWVVUkwsIGZpcnN0UGFy
dHksIHNhbWVTaXRlSW5mbyk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggOTQ2ZjI2ZWEyOTM2YzRlOTM0OWM1YTQ5OGM2MTZjNTAwMTVmMzlhZC4uNzc0Y2E3NGEz
MjgyYmRkMzJkMjM5YTk3ZWVhMTM1OTY0MzAxMTM4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDIwLTA3LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQVNT
RVJUKFtmaWx0ZXJlZENvb2tpZXMuZ2V0KCkgY291bnRdIDw9IDEpIG9uICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUt
YWNjZXB0ZWQuaHR0cHMuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0MjIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTU4NzEyMD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvY29va2llcy9kb2N1bWVudC1jb29raWUtbXVsdGlwbGUtY29va2llcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY29va2llcy9kb2N1bWVudC1jb29raWUtbXVs
dGlwbGUtY29va2llcy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGJldHRlciBsYXlvdXQgdGVz
dCBjb3ZlcmFnZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgVW5za2lwIHRlc3RzIHRoYXQgaXMgbm8gbG9uZ2VyIGNyYXNoaW5nIG9uIGlP
Uy4KKwogMjAyMC0wNy0yMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNv
bT4KIAogICAgICAgICBbV2luXVtVbmlzY3JpYmVdIE1hdGVyaWFsIGljb25zIGNvbnRhaW5pbmcg
dW5kZXJzY29yZSBvciBudW1iZXJzIGFyZW4ndCBzaG93biBiZWNhdXNlIFNjcmlwdEl0ZW1pemUg
c3BsaXRzIHRoZW0gYXBhcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9kb2N1bWVudC1jb29raWUtbXVsdGlwbGUtY29va2llcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tp
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNGEyZDdjYTI5MThjNTNkNDAxMWYyMmVhNDVh
YmU3NTc0M2M3ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nv
b2tpZXMvZG9jdW1lbnQtY29va2llLW11bHRpcGxlLWNvb2tpZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIHRyeWluZyB0byBzZXQgbXVsdGlwbGUgY29va2llcyBhdCBvbmNl
IHVzaW5nIGRvY3VtZW50LmNvb2tpZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBkb2N1bWVudC5jb29raWUgaXMgIiIKK1BBU1MgZG9jdW1lbnQuY29va2llIGlzICJzYW1l
c2l0ZS11bnNwZWNpZmllZD0wIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2ll
cy9kb2N1bWVudC1jb29raWUtbXVsdGlwbGUtY29va2llcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jb29raWVzL2RvY3VtZW50LWNvb2tpZS1tdWx0aXBsZS1jb29raWVzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzUzZjRiMTk2M2YxNjM3MzM0YjAyNTdlNzliMTE0Mjc2ZjQwYjdiZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9kb2N1bWVudC1jb29r
aWUtbXVsdGlwbGUtY29va2llcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29va2llcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdHMgdHJ5aW5nIHRvIHNldCBtdWx0aXBsZSBjb29raWVzIGF0IG9uY2UgdXNpbmcgZG9jdW1l
bnQuY29va2llJyk7CisKK2NsZWFyQWxsQ29va2llcygpOworCitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRvY3VtZW50LmNvb2tpZSIsICIiKTsKKworZG9jdW1lbnQuY29va2llPSJzYW1lc2l0ZS11
bnNwZWNpZmllZD0wOywgc2FtZXNpdGUtbGF4PTE7IFNhbWVTaXRlPUxheCwgc2FtZXNpdGUtc3Ry
aWN0PTI7IFNhbWVTaXRlPVN0cmljdCwgc2FtZXNpdGUtbm9uZT0zOyBTYW1lU2l0ZT1Ob25lOyBT
ZWN1cmUiOworCisvLyBPbmx5IHRoZSBmaXJzdCBjb29raWUgc2hvdWxkIGhhdmUgYmVlbiBzZXQu
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmNvb2tpZSIsICJzYW1lc2l0ZS11bnNw
ZWNpZmllZD0wIik7CisKK2NsZWFyQ29va2llcygpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2Nvb2tpZXMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBiMmY4ZjQ4ZGIwYzk1MGYyMWFjNTJiOGQ5ZGE0MjEyNDc0MTNhM2QzLi5lMzVlMWY1ZjlmYWFk
Yjk4YjAzZmJmYjE0ZWEzMWUwY2QwNTUzNDZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTIwLDggKzExMjAsNiBAQCB3ZWJraXQub3Jn
L2IvMTYzMzYyIHBsYXRmb3JtL2lvcy9pb3MvcGx1Z2luL3lvdXR1YmUtZmxhc2gtcGx1Z2luLWlm
cmFtZS5odG1sIFsgUAogCiB3ZWJraXQub3JnL2IvMTY0OTYwIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bW9kdWxlLWNvcnJlY3QtbWltZS10eXBlcy5odG1sIFsgU2xvdyBdCiAKLXdlYmtpdC5vcmcvYi8y
MTQyMjIgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vic29ja2V0
cy9jb29raWVzL3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHRlZC5odHRwcy5odG1sIFsgU2tpcCBd
Ci0KIHdlYmtpdC5vcmcvYi8xNjQ5NjEgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9zdG9yYWdlL2Nh
bGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJlY3QtY29udGV4dC5odG1sIFsgVGltZW91dCBdCiAK
IHdlYmtpdC5vcmcvYi8xNjUxNjUgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWludmFsaWRub25jZS5odG1sIFsgUGFz
cyBUaW1lb3V0IF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>