<?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>225596</bug_id>
          
          <creation_ts>2021-05-10 08:20:42 -0700</creation_ts>
          <short_desc>Preflight requests not properly attributed as app-bound</short_desc>
          <delta_ts>2021-05-10 15:41:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758491</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-10 08:20:42 -0700</bug_when>
    <thetext>Preflight requests are not properly attributed as app-bound.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758492</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-10 08:21:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/77664272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758498</commentid>
    <comment_count>2</comment_count>
      <attachid>428173</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-10 08:42:30 -0700</bug_when>
    <thetext>Created attachment 428173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758513</commentid>
    <comment_count>3</comment_count>
      <attachid>428173</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-10 09:18:31 -0700</bug_when>
    <thetext>Comment on attachment 428173
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:410
&gt; +- (void)_appBoundLoadData:(BOOL)isRequestingLoadsMarkedAppBound completionHandler:(void (^)(BOOL result))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

This should be two functions instead of one function with a bool indicating which function it is calling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758548</commentid>
    <comment_count>4</comment_count>
      <attachid>428173</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-05-10 11:00:01 -0700</bug_when>
    <thetext>Comment on attachment 428173
Patch

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

&gt; Source/WebCore/loader/CrossOriginAccessControl.cpp:92
&gt; +    preflightRequest.setIsAppBound(request.isAppBound());

I worry that other flags in the request might be missed if we rely on manually copying them over. We should take this action today, but I think we should consider a more general way to spawn a preflight request from an existing request to retain relevant state.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:410
&gt;&gt; +- (void)_appBoundLoadData:(BOOL)isRequestingLoadsMarkedAppBound completionHandler:(void (^)(BOOL result))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; This should be two functions instead of one function with a bool indicating which function it is calling.

Do we need to add a separate method if these are purely for testing purposes? Passing a parameter means we could parameterize the test so the same code could be used for both flavors of test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758553</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-10 11:07:10 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #4)
&gt; Comment on attachment 428173 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428173&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/CrossOriginAccessControl.cpp:92
&gt; &gt; +    preflightRequest.setIsAppBound(request.isAppBound());
&gt; 
&gt; I worry that other flags in the request might be missed if we rely on
&gt; manually copying them over. We should take this action today, but I think we
&gt; should consider a more general way to spawn a preflight request from an
&gt; existing request to retain relevant state.

Good point, I&apos;m not exactly sure what state matters here. Marking app-bound requests is important for all network connections, but it&apos;s possible that other state isn&apos;t important for special requests like preflight checks that just check the CORS policy.

&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:410
&gt; &gt;&gt; +- (void)_appBoundLoadData:(BOOL)isRequestingLoadsMarkedAppBound completionHandler:(void (^)(BOOL result))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; &gt; 
&gt; &gt; This should be two functions instead of one function with a bool indicating which function it is calling.
&gt; 
&gt; Do we need to add a separate method if these are purely for testing
&gt; purposes? Passing a parameter means we could parameterize the test so the
&gt; same code could be used for both flavors of test.

I see Alex&apos;s point, the test function reads weirdly with a boolean. I&apos;m not opposed to splitting it up, but it&apos;s unfortunate that it adds so much more boilerplate WebKitTestRunner code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758581</commentid>
    <comment_count>6</comment_count>
      <attachid>428190</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-10 11:51:43 -0700</bug_when>
    <thetext>Created attachment 428190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758684</commentid>
    <comment_count>7</comment_count>
      <attachid>428190</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-05-10 15:26:06 -0700</bug_when>
    <thetext>Comment on attachment 428190
Patch

Looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758695</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-10 15:41:38 -0700</bug_when>
    <thetext>Committed r277301 (237562@main): &lt;https://commits.webkit.org/237562@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428190.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428173</attachid>
            <date>2021-05-10 08:42:30 -0700</date>
            <delta_ts>2021-05-10 11:51:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225596-20210510084230.patch</filename>
            <type>text/plain</type>
            <size>21325</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2NmIzMjBlYmIyNDdk
ZGJhYWE1ZWVmNWM5Yzg5MmMwZjdiNDAyMC4uODgwODVlMjQxZTYzODNjZDIxYmEzMTQ2MjQ2NTcx
MTIwYWZiYTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFByZWZsaWdo
dCByZXF1ZXN0cyBub3QgcHJvcGVybHkgYXR0cmlidXRlZCBhcyBhcHAtYm91bmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTU5NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzc2NjQyNzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFj
eS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRp
b24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorCisgICAgICAgIEEgcHJlZmxpZ2h0IHJlcXVlc3QgaW5p
dGlhdGVkIGJ5IGEgbWFpbiBuYXZpZ2F0aW9uIHRoYXQgd2FzIGFwcC1ib3VuZAorICAgICAgICBz
aG91bGQgYWxzbyBiZSBhcHAtYm91bmQuIFRlc3Rpbmcgc3luYyBwcmVmbGlnaHQgcmVxdWVzdHMg
cmV2ZWFsZWQKKyAgICAgICAgdGhhdCB3ZSBhbHNvIG5lZWQgdG8gbWFyayB0aGlzIHdoZW4gbG9h
ZGluZyBhIHN5bmNocm9ub3VzIHJlc291cmNlLgorCisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2Nlc3NDb250
cm9sUHJlZmxpZ2h0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKwogMjAyMS0wNS0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgU2FtcGxlZCBQYWdlIFRvcCBDb2xvcjogbWFrZSBoaXQgdGVzdHMgY29uc2lkZXIgZWxl
bWVudHMgd2l0aCBgcG9pbnRlci1ldmVudHM6IG5vbmVgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MzBiZWFlOTI5
NmNhMDg3MjRiMTg0NjVkZjJiMTZmNTU1MDI5ZTQuLmRiMWI2ZDM4MmIyYTE4MmJiOTVlMTdmMDk4
Mjk5NGJhZjY0MTdhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTAgIEth
dGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlZmxp
Z2h0IHJlcXVlc3RzIG5vdCBwcm9wZXJseSBhdHRyaWJ1dGVkIGFzIGFwcC1ib3VuZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTk2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83NzY2NDI3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0aW5nIFNQSSB0byByZXF1ZXN0IGxvYWQgZGF0YSB0byBj
aGVjayBpZiBwcmVmbGlnaHQgcmVxdWVzdHMKKyAgICAgICAgd2VyZSBwcm9wZXJseSBtYXJrZWQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9hcHBCb3VuZExvYWREYXRhOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDIxLTA1
LTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFVQXSBSZWR1Y2UgTWVkaWFQbGF5ZXIgcG9sbGluZyBmcmVxdWVuY3kgd2hlbiBwb3NzaWJsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cAppbmRleCBiM2U2MjI5ZWI5MTJkNzhmOTA2Nzk3NTIwZThhYzIxMzJjNzYwNDhmLi5mMWMzMzYx
YjJkMzdhODNhZTdjM2Y3NmU4MDdiNWIwZWY5ZmJkMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtODksNiArODksNyBA
QCBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZQogICAgIHByZWZsaWdodFJlcXVlc3Quc2V0SFRUUEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sUmVxdWVzdE1ldGhvZCwgcmVx
dWVzdC5odHRwTWV0aG9kKCkpOwogICAgIHByZWZsaWdodFJlcXVlc3Quc2V0UHJpb3JpdHkocmVx
dWVzdC5wcmlvcml0eSgpKTsKICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JD
b29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSk7CisgICAgcHJlZmxpZ2h0UmVx
dWVzdC5zZXRJc0FwcEJvdW5kKHJlcXVlc3QuaXNBcHBCb3VuZCgpKTsKICAgICBpZiAoIXJlZmVy
cmVyLmlzTnVsbCgpKQogICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihy
ZWZlcnJlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGQzZjUy
YTJkNmNmMDc5ZDZmMWEyNzU2NmUwNzU4MmYyOTJhYWI2Y2YuLmJjNzNlMWU3ZGQyNDNkNTkwNGQ3
NTFhNTRkMzk3Y2UwMGFhNWViYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMzExMCw3ICszMTEwLDEwIEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAjZW5kaWYK
IAogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3Jh
ZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChuZXdSZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwotICAgIAorCisgICAgaWYgKG1fZG9jdW1l
bnRMb2FkZXIpCisgICAgICAgIG5ld1JlcXVlc3Quc2V0SXNBcHBCb3VuZChtX2RvY3VtZW50TG9h
ZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKCkpOworCiAgICAgaWYgKGVycm9yLmlzTnVs
bCgpKSB7CiAgICAgICAgIEFTU0VSVCghbmV3UmVxdWVzdC5pc051bGwoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGYyOTk5Y2Qw
YjUxYjVhOTZlZjAwMWY1YTM0OTQwODBkMjg5ZTFmNzYuLjRlNDdhNjY5M2QyY2JmZDYyYjMwZWE1
OGE0OWVjYzYxMTIzMDA5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjI4NSw2ICsyMjg1LDE2IEBAIHN0YXRpYyB2b2lkIGNvbnZl
cnRBbmRBZGRIaWdobGlnaHQoVmVjdG9yPFJlZjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4+JiBidWZm
ZXJzLCBOCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX2FwcEJvdW5kTG9hZERhdGE6KEJPT0wpaXNS
ZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2UtPmFwcEJvdW5kTmF2
aWdhdGlvbkRhdGEoW2lzUmVxdWVzdGluZ0xvYWRzTWFya2VkQXBwQm91bmQsIGNvbXBsZXRpb25I
YW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKGF1dG8mJiBhcHBCb3Vu
ZERhdGEpIG11dGFibGUgeworICAgICAgICBpZiAoaXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBC
b3VuZCkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihhcHBCb3VuZERhdGEu
aGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZyk7CisKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoYXBwQm91bmREYXRhLmhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcpOwor
ICAgIH0pOworfQorCiAtIChOU0FycmF5ICopX2NlcnRpZmljYXRlQ2hhaW4KIHsKICAgICBpZiAo
V2ViS2l0OjpXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCA5OWQ1OTI1YWE3Nzg4NjI1ZWRhMTY5ZDg0YjM1ZDA5MTI0OTY5NzNhLi41YWQ5
NzZlZWIxMTQ5NGVhNTEyODBlNGRhOGJkNzcwMTZmZTFjODUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQwNyw2
ICs0MDcsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX3N3aXRjaEZyb21TdGF0aWNG
b250UmVnaXN0cnlUb1VzZXJGb250UmVnaXN0cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSk7CiAKIC0gKHZvaWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5T
U3RyaW5nICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNv
bnRleHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hcHBCb3VuZExvYWREYXRhOihCT09MKWlz
UmVxdWVzdGluZ0xvYWRzTWFya2VkQXBwQm91bmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NWEzZDhlYzJkOWFiOTYyMTQzZjE3
Zjk2ZDVhNTVkYWYwOWUwMGUyLi4zZGRjMjQ3MWQ2MDBmYTNjYTk3OTE1OTVkZmI5NjQ5MmFjMGQ1
MDM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjggQEAKKzIwMjEtMDUtMTAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlZmxpZ2h0IHJlcXVlc3RzIG5vdCBwcm9wZXJseSBh
dHRyaWJ1dGVkIGFzIGFwcC1ib3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1NTk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NzY2NDI3Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVz
dCBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6YXBwQm91bmRMb2FkRGF0YSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjphcHBCb3VuZExvYWRE
YXRhKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjphcHBCb3VuZExvYWREYXRh
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2FwcEJvdW5kTG9hZERhdGE6Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjEtMDUtMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgogCiAgICAgICAgIFNhbXBsZWQgUGFnZSBUb3AgQ29sb3I6IG1ha2UgaGl0IHRl
c3RzIGNvbnNpZGVyIGVsZW1lbnRzIHdpdGggYHBvaW50ZXItZXZlbnRzOiBub25lYApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMjA5ZjMxMTY3NWQ0ZTZjZTMwOTVkNTg4MjA1ODEyZTVm
ODZmZmVlNy4uMTM4MjUwNjc1MjEyYmRmYmU3Nzk3YTAyNTQ5MDAxNTc4ZDQzZTI2YiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zODgsNiArMzg4LDcgQEAgaW50ZXJmYWNlIFRlc3RS
dW5uZXIgewogICAgIHVuZGVmaW5lZCBjbGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVm
aW5lZCBzZXRBcHBCb3VuZERvbWFpbnMob2JqZWN0IG9yaWdpbnNBcnJheSwgb2JqZWN0IGNhbGxi
YWNrKTsKICAgICB1bmRlZmluZWQgYXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4o
RE9NU3RyaW5nIGRvbWFpbiwgb2JqZWN0IGNhbGxiYWNrKTsKKyAgICBib29sZWFuIGFwcEJvdW5k
TG9hZERhdGEoYm9vbGVhbiBpc1JlcXVlc3RpbmdMb2Fkc01hcmtlZEFwcEJvdW5kKTsKIAogICAg
IHVuZGVmaW5lZCBpbmplY3RVc2VyU2NyaXB0KERPTVN0cmluZyBzdHJpbmcpOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVzZXJTY3JpcHRJbmplY3RlZENvdW50OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggYzY5ZGJmNTVlMjUwNWJkMGYyMzQ2MWE4MDNkMmM3MWRhOTc0MTQ3My4uNTdmYTQ0
YzI1ZTQyNDc0OGZkOWYwMjEzMGE4NWZkZWZmNjFhYWYyZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMTI4LDYg
KzIxMjgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpjYWxsRGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVz
dENvbnRleHREYXRhRm9yRG9tYWluQ2FsbGJhY2soU3RyaW4KICAgICBjYWxsVGVzdFJ1bm5lckNh
bGxiYWNrKEFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluQ2FsbGJhY2tJRCwgMSwg
JnJlc3VsdFZhbHVlKTsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjphcHBCb3VuZExvYWREYXRhKGJv
b2wgaXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCkKK3sKKyAgICByZXR1cm4gcG9zdFN5
bmNocm9ub3VzUGFnZU1lc3NhZ2VSZXR1cm5pbmdCb29sZWFuKCJBcHBCb3VuZExvYWREYXRhIiwg
Y3JlYXRlV0tEaWN0aW9uYXJ5KHsKKyAgICAgICAgeyAiSXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRB
cHBCb3VuZCIsIGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGlzUmVxdWVzdGluZ0xvYWRzTWFya2Vk
QXBwQm91bmQpKSB9CisgICAgfSkpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiB7CiAgICAgcG9zdFN5
bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZCIsIGdyYW50ZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAwMTY1ZTMwMzRkNjFiZGQ2OTIzYmNhZDQ1ODk0MzU5
YThjYTZjNzk3Li40MTY0YmI1ZDk3ZDBlNmFiMTViMzE0Njc3OTViOGQzMWNjYjZlMzNlIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aApAQCAtNDk3LDYgKzQ5Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNldEFwcEJvdW5kRG9t
YWluc0NhbGxiYWNrKCk7CiAgICAgdm9pZCBhcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRv
bWFpbihKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBjYWxsRGlkUmVjZWl2ZUFw
cEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluQ2FsbGJhY2soU3RyaW5nJiYpOworICAg
IGJvb2wgYXBwQm91bmRMb2FkRGF0YShib29sKTsKIAogICAgIHNpemVfdCB1c2VyU2NyaXB0SW5q
ZWN0ZWRDb3VudCgpIGNvbnN0OwogICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdChKU1N0cmluZ1Jl
Zik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDU4N2Zl
ZTBjODg3NDI3M2YyNGFmNDhhMjZmMTczODgxZGYyZmIyYjkuLmMwZjZmMWNjM2UyMDc5NGQzZGE5
YjI2ZjBhOTg3MzVjMDNjYzBlNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCkBAIC0yNjg0LDYgKzI2ODQsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6YXBw
Qm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4oV0tTdHJpbmdSZWYpCiB7CiB9CiAKK2Jv
b2wgVGVzdENvbnRyb2xsZXI6OmFwcEJvdW5kTG9hZERhdGEoYm9vbCkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwQm91bmROYXZpZ2F0aW9u
RGF0YSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
M2ZkMmE0ODEzMjI4ZmY1OTRhMDQ5ZjM4YTNkYWVkMzhlMjY0ZGRiMS4uMjY5ZDdjMzUyMDYyNzE3
MTViMWFjOWMxMjExMzFlZGIxYTJmNDljYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtMjY0LDYgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlaW5pdGlh
bGl6ZUFwcEJvdW5kRG9tYWlucygpOwogICAgIHZvaWQgYXBwQm91bmRSZXF1ZXN0Q29udGV4dERh
dGFGb3JEb21haW4oV0tTdHJpbmdSZWYpOwogICAgIHZvaWQgY2xlYXJBcHBCb3VuZE5hdmlnYXRp
b25EYXRhKCk7CisgICAgYm9vbCBhcHBCb3VuZExvYWREYXRhKGJvb2wpOwogCiAgICAgdm9pZCB1
cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyhjb25zdCBzdGQ6OnN0cmluZyYg
YnVuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdv
cmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IGQzNmNhYTYxOTIzZmJiYzkxMGNiNGUwY2Q1YjRmMmEwNmQ5ODNiYWUuLjRkNTQ2MGZjMGE2
MmE4MTU2OWVhNzNkMTdlMjAwZjEwNzg4NjQyM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDcwLDYgKzEwNzAsMTIgQEAgV0tSZXRhaW5QdHI8V0tU
eXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEIKICAgICAgICAgYm9vbCBzdGF0aXN0aWNJbkRhdGFiYXNlT25jZSA9IFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5pc1N0YXRpc3RpY3NPbmx5SW5EYXRhYmFzZU9uY2Uoc3ViSG9z
dCwgdG9wSG9zdCk7CiAgICAgICAgIHJldHVybiBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShzdGF0
aXN0aWNJbkRhdGFiYXNlT25jZSkpOwogICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQXBwQm91bmRMb2FkRGF0YSIpKSB7CisgICAgICAg
IGF1dG8gZGljdCA9IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAgIGF1dG8g
aXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCA9IGJvb2xlYW5WYWx1ZShkaWN0LCAiSXNS
ZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCIpOworICAgICAgICByZXR1cm4gYWRvcHRXSyhX
S0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmFwcEJvdW5kTG9hZERh
dGEoaXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCkpKTsKKyAgICB9CiAgICAgCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0
aWNzR3JhbmRmYXRoZXJlZCIpKSB7CiAgICAgICAgIGF1dG8gbWVzc2FnZUJvZHlEaWN0aW9uYXJ5
ID0gZGljdGlvbmFyeVZhbHVlKG1lc3NhZ2VCb2R5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA5YjdjYTA3NGUzNjE4
NjE4ZDYzMzYyMTU1OWJkNGQyNmRiNzRkNTMyLi5iNDlkMzU2NDZjNjFmMWYzOGZiYzQ3MDMxMWZl
ZGUwNmUyMDQzYzk0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC00MDAsNiArNDAwLDIyIEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OmFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFdLU3RyaW5nUmVmIGRv
bWFpbikKICAgICB9XTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6YXBwQm91bmRMb2FkRGF0
YShib29sIGlzUmVxdWVzdGluZ0xvYWRzTWFya2VkQXBwQm91bmQpCit7CisgICAgYXV0byogcGFy
ZW50VmlldyA9IG1haW5XZWJWaWV3KCk7CisgICAgaWYgKCFwYXJlbnRWaWV3KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0gZmFsc2U7CisgICAgX19i
bG9jayBib29sIGRpZExvYWRSZXN1bHQgPSBmYWxzZTsKKyAgICBbbV9tYWluV2ViVmlldy0+cGxh
dGZvcm1WaWV3KCkgX2FwcEJvdW5kTG9hZERhdGE6aXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBC
b3VuZCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgcmVzdWx0KSB7CisgICAgICAgIGRpZExvYWRS
ZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisgICAgcGxh
dGZvcm1SdW5VbnRpbChpc0RvbmUsIG5vVGltZW91dCk7CisgICAgcmV0dXJuIGRpZExvYWRSZXN1
bHQ7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwQm91bmROYXZpZ2F0aW9uRGF0
YSgpCiB7CiAgICAgYXV0byogcGFyZW50VmlldyA9IG1haW5XZWJWaWV3KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCmluZGV4IDM0
MWFjY2RiMjI0NDBmZDhjOGYzYzNhODRlMWI0NzJkMWI5ZWYwNGUuLmJjOGFjZjE3Y2ZjZWFlNjQx
MTA2M2YxMjc4OTVjMjExM2UxYzAyYzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCkBAIC04Myw1ICs4Myw2IEBACiAtICh2b2lk
KWRpc21pc3NBY3RpdmVNZW51OwogLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzOwog
LSAodm9pZClfYXBwQm91bmROYXZpZ2F0aW9uRGF0YUZvckRvbWFpbjooTlNTdHJpbmcgKilkb21h
aW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICogY29udGV4dCkpY29tcGxl
dGlvbkhhbmRsZXI7CistICh2b2lkKV9hcHBCb3VuZExvYWREYXRhOihCT09MKWlzUmVxdWVzdGlu
Z0xvYWRzTWFya2VkQXBwQm91bmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVz
dWx0KSljb21wbGV0aW9uSGFuZGxlcjsKIAogQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmluZGV4IDk3OWI3OWMwNjNmNWEz
MDQyYmUwYmE3ODUzNWRiOWEyOGY1Y2U2M2EuLjJiYWRmNmZjN2VmM2M3NzNlYWVhMTU2NzJiOGM1
NzkwZTNiYzEzMzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dFJ1bm5lcldLV2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcubW0KQEAgLTYwMiw0ICs2MDIsOSBAQCBzdGF0aWMgYm9vbCBpc1F1
aWNrYm9hcmRWaWV3Q29udHJvbGxlcihVSVZpZXdDb250cm9sbGVyICp2aWV3Q29udHJvbGxlcikK
ICAgICBbc3VwZXIgX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46ZG9tYWluIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAodm9pZClfYXBwQm91bmRM
b2FkRGF0YTooQk9PTClpc1JlcXVlc3RpbmdMb2Fkc01hcmtlZEFwcEJvdW5kIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBb
c3VwZXIgX2FwcEJvdW5kTG9hZERhdGE6aXNSZXF1ZXN0aW5nTG9hZHNNYXJrZWRBcHBCb3VuZCBj
b21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07Cit9CisKIEBlbmQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
YzVkNzc1NTQ5NmY3NDU5ZGRjNGNlMjkzNzkzMTEyZjlhZDhiZTU5Li4xYWY0YjE0NDFmMTdiY2Uw
MGFhODIxYTU0N2VlOTljNjIwMWE5MDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUt
MTAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAg
UHJlZmxpZ2h0IHJlcXVlc3RzIG5vdCBwcm9wZXJseSBhdHRyaWJ1dGVkIGFzIGFwcC1ib3VuZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTk2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NzY2NDI3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdHdvIHRlc3RzIGZvciBzeW5jIGFuZCBhc3lu
YyBwcmVmbGlnaHQgcmVxdWVzdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1icm93
c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFj
eS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmli
dXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgVGhlc2UgdGVzdHMgcmVseSBvbiBpbnRlcm5hbCBhZGRpdGlv
bnMsIHdlIHNob3VsZCBza2lwIHRoZW0gaW4gb3BlbgorICAgICAgICBzb3VyY2UgZXhwZWN0YXRp
b25zLgorCiAyMDIxLTA1LTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtXUEVdIEdhcmRlbiBhY2Nlc3NpYmlsaXR5IGZhaWx1cmUgYW5kIG1lcmdlIG90aGVy
IGV4cGVjdGF0aW9ucyB3aXRoIGdsaWIgb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZs
aWdodC1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU4M2VmMDc1ZjE3NDAyZjYyMDJiZjYzNTkwNTY5YTIzZWU4
NWFjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJy
b3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3Bv
bnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
c3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
K1Rlc3RzIGFwcCBib3VuZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRz
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcC1ib3VuZCByZXF1ZXN0cworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kv
YXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtYXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjQ3ZmU0NzExN2NiY2JjZmQ1N2U4ZjE5
YTg4Mjg2OGFkYWMxYmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
YXN5bmMuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8cD5UZXN0cyBhcHAgYm91bmQgcmVxdWVzdHMg
Z2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicp
KTsKK30KKyAgICAKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIg
Y29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIK
KworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5zZXRSZXF1ZXN0
SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5hcHBC
b3VuZExvYWREYXRhKHRydWUpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVz
dCA9IHRlc3RSdW5uZXIuYXBwQm91bmRMb2FkRGF0YShmYWxzZSk7CisKKyAgICAgICAgaWYgKGRp
ZExvYWROb25BcHBCb3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9h
ZCBub24gYXBwLWJvdW5kIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkQXBwQm91bmRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcC1ib3VuZCByZXF1ZXN0
Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwLWJvdW5kIHJlcXVl
c3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEu
c2VuZChudWxsKTsKK30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJp
YnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTA0NTNiNzdlYzY1N2FhZTg0NDY4NGY0
M2UyZDI4Y2Y2ZDI1YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1z
eW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogUHJlZmxp
Z2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KK1Rlc3RzIGFwcCBib3VuZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHBy
ZWZsaWdodHMKKworUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVk
LgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwLWJvdW5kIHJlcXVlc3RzCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9h
cHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWFmNjkzY2Q3YjQ2ZDE5YWQ2Mjg5OTY2NmNj
MTYwNjRlMGFmZDkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3lu
Yy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxwPlRlc3RzIGFwcCBib3VuZCByZXF1ZXN0cyBnZXQg
bWFya2VkIGZvciBzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlv
biBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9
CisgICAgCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNvbnRl
eHRIb3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisKK2Z1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CisgICAgcmVxLnNldFJlcXVlc3RIZWFk
ZXIoIngtd2Via2l0IiwgImZvbyIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcmVxLnNlbmQobnVs
bCk7CisgICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOworICAgIH0gY2F0
Y2ggKGV4KSB7CisgICAgICAgIGxvZygiUEFTUzogIiArIGV4KTsKKyAgICAgICAgdmFyIGRpZExv
YWRBcHBCb3VuZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmFwcEJvdW5kTG9hZERhdGEodHJ1ZSk7Cisg
ICAgICAgIHZhciBkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5hcHBCb3Vu
ZExvYWREYXRhKGZhbHNlKTsKKworICAgICAgICBpZiAoZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVz
dCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAtYm91bmQgcmVxdWVz
dCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoIWRpZExvYWRBcHBCb3VuZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygi
RkFJTCBkaWQgbm90IGxvYWQgYXBwLWJvdW5kIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nl
c3NmdWxseSBsb2FkZWQgb25seSBhcHAtYm91bmQgcmVxdWVzdHMiKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxMDAy
ZTVhMzk3M2ViYTE1MDFhZTc3NWUxOGNhZDNlMzY4MmU0MzAxLi44MjJlYjEyZTM4YWI3MzI4OThl
ZWU2YTA1MTQwMDc5MmZjYzgyMDUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzkxLDYgKzE3OTEsOCBAQCBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIFsgUGFzcyBdCiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXBy
aXZhY3kvY29udGV4dC1zdHJpbmctZm9yLXN1YmZyYW1lLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVz
dHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1wcmVjb25uZWN0Lmh0bWwg
WyBTa2lwIF0KIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmlu
Zy1wcmVmbGlnaHQuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2
YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbCBbIFNraXAgXQor
aHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtc3luYy5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xNzUxOTMgZmFzdC9p
bWFnZXMvYXN5bmMtaW1hZ2UtYm9keS1iYWNrZ3JvdW5kLWltYWdlLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428190</attachid>
            <date>2021-05-10 11:51:43 -0700</date>
            <delta_ts>2021-05-10 15:41:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225596-20210510115142.patch</filename>
            <type>text/plain</type>
            <size>22323</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2NmIzMjBlYmIyNDdk
ZGJhYWE1ZWVmNWM5Yzg5MmMwZjdiNDAyMC4uODgwODVlMjQxZTYzODNjZDIxYmEzMTQ2MjQ2NTcx
MTIwYWZiYTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEwICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFByZWZsaWdo
dCByZXF1ZXN0cyBub3QgcHJvcGVybHkgYXR0cmlidXRlZCBhcyBhcHAtYm91bmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTU5NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzc2NjQyNzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFj
eS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRp
b24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorCisgICAgICAgIEEgcHJlZmxpZ2h0IHJlcXVlc3QgaW5p
dGlhdGVkIGJ5IGEgbWFpbiBuYXZpZ2F0aW9uIHRoYXQgd2FzIGFwcC1ib3VuZAorICAgICAgICBz
aG91bGQgYWxzbyBiZSBhcHAtYm91bmQuIFRlc3Rpbmcgc3luYyBwcmVmbGlnaHQgcmVxdWVzdHMg
cmV2ZWFsZWQKKyAgICAgICAgdGhhdCB3ZSBhbHNvIG5lZWQgdG8gbWFyayB0aGlzIHdoZW4gbG9h
ZGluZyBhIHN5bmNocm9ub3VzIHJlc291cmNlLgorCisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBY2Nlc3NDb250
cm9sUHJlZmxpZ2h0UmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKwogMjAyMS0wNS0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgU2FtcGxlZCBQYWdlIFRvcCBDb2xvcjogbWFrZSBoaXQgdGVzdHMgY29uc2lkZXIgZWxl
bWVudHMgd2l0aCBgcG9pbnRlci1ldmVudHM6IG5vbmVgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE0MzBiZWFlOTI5
NmNhMDg3MjRiMTg0NjVkZjJiMTZmNTU1MDI5ZTQuLmExYTI4MDhjYzJmZmUxNTkyNGY1YTVlMDI4
NDUwNzU1OWU2MDM4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDUtMTAgIEth
dGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlZmxp
Z2h0IHJlcXVlc3RzIG5vdCBwcm9wZXJseSBhdHRyaWJ1dGVkIGFzIGFwcC1ib3VuZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NTk2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83NzY2NDI3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0aW5nIFNQSSB0byByZXF1ZXN0IGxvYWQgZGF0YSB0byBj
aGVjayBpZiBwcmVmbGlnaHQgcmVxdWVzdHMKKyAgICAgICAgd2VyZSBwcm9wZXJseSBtYXJrZWQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRMb2FkQXBwQm91bmRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2RpZExvYWROb25BcHBCb3VuZFJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKIDIwMjEtMDUtMDYgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlZHVjZSBNZWRp
YVBsYXllciBwb2xsaW5nIGZyZXF1ZW5jeSB3aGVuIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IGIzZTYyMjll
YjkxMmQ3OGY5MDY3OTc1MjBlOGFjMjEzMmM3NjA0OGYuLmYxYzMzNjFiMmQzN2E4M2FlN2MzZjc2
ZTgwN2I1YjBlZjlmYmQwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC04OSw2ICs4OSw3IEBAIFJlc291cmNlUmVxdWVz
dCBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlCiAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xSZXF1ZXN0TWV0aG9kLCByZXF1ZXN0Lmh0dHBNZXRob2Qo
KSk7CiAgICAgcHJlZmxpZ2h0UmVxdWVzdC5zZXRQcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkp
OwogICAgIHByZWZsaWdodFJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdC5m
aXJzdFBhcnR5Rm9yQ29va2llcygpKTsKKyAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldElzQXBwQm91
bmQocmVxdWVzdC5pc0FwcEJvdW5kKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNOdWxsKCkpCiAg
ICAgICAgIHByZWZsaWdodFJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZDNmNTJhMmQ2Y2YwNzlkNmYxYTI3
NTY2ZTA3NTgyZjI5MmFhYjZjZi4uYmM3M2UxZTdkZDI0M2Q1OTA0ZDc1MWE1NGQzOTdjZTAwYWE1
ZWJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMTEwLDcgKzMx
MTAsMTAgQEAgdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICNlbmRpZgogCiAgICAgbV9mcmFtZS5k
b2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVz
dElmTmVlZGVkKG5ld1JlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1
ZXN0VHlwZTo6TG9hZCk7Ci0gICAgCisKKyAgICBpZiAobV9kb2N1bWVudExvYWRlcikKKyAgICAg
ICAgbmV3UmVxdWVzdC5zZXRJc0FwcEJvdW5kKG1fZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0
aW9uV2FzQXBwQm91bmQoKSk7CisKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAg
QVNTRVJUKCFuZXdSZXF1ZXN0LmlzTnVsbCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjI5OTljZDBiNTFiNWE5NmVmMDAxZjVh
MzQ5NDA4MGQyODllMWY3Ni4uYWJkMTU0NTA3NGViMGZiNzliNDEzODA4NzhjMmFlYmY0YmM2NDc2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0yMjg1LDYgKzIyODUsMjAgQEAgc3RhdGljIHZvaWQgY29udmVydEFuZEFkZEhpZ2hsaWdo
dChWZWN0b3I8UmVmPFdlYktpdDo6U2hhcmVkTWVtb3J5Pj4mIGJ1ZmZlcnMsIE4KICAgICB9KTsK
IH0KIAorLSAodm9pZClfZGlkTG9hZEFwcEJvdW5kUmVxdWVzdDoodm9pZCAoXikoQk9PTCByZXN1
bHQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2UtPmFwcEJvdW5kTmF2aWdhdGlvbkRh
dGEoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0g
KGF1dG8mJiBhcHBCb3VuZERhdGEpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihhcHBCb3VuZERhdGEuaGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZyk7CisgICAgfSk7
Cit9CisKKy0gKHZvaWQpX2RpZExvYWROb25BcHBCb3VuZFJlcXVlc3Q6KHZvaWQgKF4pKEJPT0wg
cmVzdWx0KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5hcHBCb3VuZE5hdmlnYXRp
b25EYXRhKFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
cildIChhdXRvJiYgYXBwQm91bmREYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoYXBwQm91bmREYXRhLmhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcpOwor
ICAgIH0pOworfQorCiAtIChOU0FycmF5ICopX2NlcnRpZmljYXRlQ2hhaW4KIHsKICAgICBpZiAo
V2ViS2l0OjpXZWJGcmFtZVByb3h5KiBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCA5OWQ1OTI1YWE3Nzg4NjI1ZWRhMTY5ZDg0YjM1ZDA5MTI0OTY5NzNhLi40NDli
ZjIzM2Y1NTZhOGQxY2Q5NmY0NjkyYWMzNjIxYjkzYmVlY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQwNyw2
ICs0MDcsOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX3N3aXRjaEZyb21TdGF0aWNG
b250UmVnaXN0cnlUb1VzZXJGb250UmVnaXN0cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSk7CiAKIC0gKHZvaWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5T
U3RyaW5nICopZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNv
bnRleHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9kaWRMb2FkQXBwQm91bmRSZXF1ZXN0Oih2
b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9kaWRMb2Fk
Tm9uQXBwQm91bmRSZXF1ZXN0Oih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRs
ZXI7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDY1YTNkOGVjMmQ5YWI5NjIxNDNmMTdmOTZkNWE1NWRhZjA5ZTAwZTIuLjI3MDk5
NmM1Yzg1YjhiNWE1MzgzZjZjZjk4MTUyZjY3NmY4YWQ5NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wNS0x
MCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBQ
cmVmbGlnaHQgcmVxdWVzdHMgbm90IHByb3Blcmx5IGF0dHJpYnV0ZWQgYXMgYXBwLWJvdW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1OTYKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3NjY0MjcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpkaWRMb2FkQXBwQm91bmRSZXF1ZXN0
KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVzdCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRMb2FkQXBwQm91bmRSZXF1ZXN0KToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZExvYWRBcHBCb3VuZFJlcXVlc3QpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRMb2FkQXBwQm91bmRSZXF1ZXN0Ol0p
OgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRMb2FkTm9uQXBwQm91bmRSZXF1
ZXN0Ol0pOgorCiAyMDIxLTA1LTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBTYW1wbGVkIFBhZ2UgVG9wIENvbG9yOiBtYWtlIGhpdCB0ZXN0cyBjb25zaWRl
ciBlbGVtZW50cyB3aXRoIGBwb2ludGVyLWV2ZW50czogbm9uZWAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCmluZGV4IDIwOWYzMTE2NzVkNGU2Y2UzMDk1ZDU4ODIwNTgxMmU1Zjg2ZmZlZTcuLjY5
NDY5NzM3NDI5NmU1OTNjMjBlNmZjOGU3YzNkYjY1YzEwYjhiYzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbApAQCAtMzg4LDYgKzM4OCw4IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAg
ICB1bmRlZmluZWQgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKICAgICB1bmRlZmluZWQgc2V0QXBw
Qm91bmREb21haW5zKG9iamVjdCBvcmlnaW5zQXJyYXksIG9iamVjdCBjYWxsYmFjayk7CiAgICAg
dW5kZWZpbmVkIGFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKERPTVN0cmluZyBk
b21haW4sIG9iamVjdCBjYWxsYmFjayk7CisgICAgYm9vbGVhbiBkaWRMb2FkQXBwQm91bmRSZXF1
ZXN0KCk7CisgICAgYm9vbGVhbiBkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KCk7CiAKICAgICB1
bmRlZmluZWQgaW5qZWN0VXNlclNjcmlwdChET01TdHJpbmcgc3RyaW5nKTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB1c2VyU2NyaXB0SW5qZWN0ZWRDb3VudDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CmluZGV4IGM2OWRiZjU1ZTI1MDViZDBmMjM0NjFhODAzZDJjNzFkYTk3NDE0NzMuLjQxZGQ0Njc2
ODg1NmY4ZDc0M2Q2NWIwYzA5MTRjNTJkYWI2MjAxYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjEyOCw2ICsy
MTI4LDE2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBcHBCb3VuZFJlcXVlc3RD
b250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrKFN0cmluCiAgICAgY2FsbFRlc3RSdW5uZXJDYWxs
YmFjayhBcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrSUQsIDEsICZy
ZXN1bHRWYWx1ZSk7CiB9CiAKK2Jvb2wgVGVzdFJ1bm5lcjo6ZGlkTG9hZEFwcEJvdW5kUmVxdWVz
dCgpCit7CisgICAgcmV0dXJuIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlUmV0dXJuaW5nQm9v
bGVhbigiRGlkTG9hZEFwcEJvdW5kUmVxdWVzdCIpOworfQorCitib29sIFRlc3RSdW5uZXI6OmRp
ZExvYWROb25BcHBCb3VuZFJlcXVlc3QoKQoreworICAgIHJldHVybiBwb3N0U3luY2hyb25vdXNQ
YWdlTWVzc2FnZVJldHVybmluZ0Jvb2xlYW4oIkRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QiKTsK
K30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdy
YW50ZWQoYm9vbCBncmFudGVkKQogewogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJT
ZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMDE2NWUzMDM0ZDYxYmRkNjkyM2JjYWQ0NTg5NDM1OWE4Y2E2Yzc5Ny4uODkwNWFmMWI4Njli
MGQwOWM0NzRiZDZiMzNiZDRiOTA2MDI4ZTQ0MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTQ5Nyw2ICs0OTcsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRTZXRBcHBCb3VuZERvbWFpbnNDYWxsYmFjaygpOwogICAgIHZv
aWQgYXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4oSlNTdHJpbmdSZWYsIEpTVmFs
dWVSZWYpOwogICAgIHZvaWQgY2FsbERpZFJlY2VpdmVBcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0
YUZvckRvbWFpbkNhbGxiYWNrKFN0cmluZyYmKTsKKyAgICBib29sIGRpZExvYWRBcHBCb3VuZFJl
cXVlc3QoKTsKKyAgICBib29sIGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QoKTsKIAogICAgIHNp
emVfdCB1c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCgpIGNvbnN0OwogICAgIHZvaWQgaW5qZWN0VXNl
clNjcmlwdChKU1N0cmluZ1JlZik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDU4N2ZlZTBjODg3NDI3M2YyNGFmNDhhMjZmMTczODgxZGYyZmIyYjkuLmUw
NjY3MDBmM2NlNmFhZGE5YWIyMWEzNjRiMGEyYmJjZTQyOGFlNDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNjg0LDYgKzI2ODQsMTYgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6YXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4oV0tTdHJp
bmdSZWYpCiB7CiB9CiAKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmRpZExvYWRBcHBCb3VuZFJlcXVl
c3QoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBUZXN0Q29udHJvbGxlcjo6ZGlk
TG9hZE5vbkFwcEJvdW5kUmVxdWVzdCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lk
IFRlc3RDb250cm9sbGVyOjpjbGVhckFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoKQogewogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDNmZDJhNDgxMzIyOGZmNTk0
YTA0OWYzOGEzZGFlZDM4ZTI2NGRkYjEuLmJkZTZiMGVkNzc1ZGNmMjM5ZDhlYjFkMmNiNmYxYjc2
NzJhNmE5YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI2
NCw2ICsyNjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWluaXRpYWxpemVBcHBCb3VuZERvbWFp
bnMoKTsKICAgICB2b2lkIGFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFdLU3Ry
aW5nUmVmKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmROYXZpZ2F0aW9uRGF0YSgpOworICAgIGJv
b2wgZGlkTG9hZEFwcEJvdW5kUmVxdWVzdCgpOworICAgIGJvb2wgZGlkTG9hZE5vbkFwcEJvdW5k
UmVxdWVzdCgpOwogCiAgICAgdm9pZCB1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJv
Y2Vzcyhjb25zdCBzdGQ6OnN0cmluZyYgYnVuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVh
ckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGQzNmNhYTYxOTIzZmJiYzkxMGNiNGUwY2Q1YjRm
MmEwNmQ5ODNiYWUuLjVkMzI3MjM5MmJlZTEwYzdiY2VlYWQ0YzNmOTIxNDZlMWViOTNlYTAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMDcwLDcgKzEw
NzAsMTMgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2
ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgYm9vbCBzdGF0aXN0aWNJ
bkRhdGFiYXNlT25jZSA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5pc1N0YXRpc3RpY3NP
bmx5SW5EYXRhYmFzZU9uY2Uoc3ViSG9zdCwgdG9wSG9zdCk7CiAgICAgICAgIHJldHVybiBhZG9w
dFdLKFdLQm9vbGVhbkNyZWF0ZShzdGF0aXN0aWNJbkRhdGFiYXNlT25jZSkpOwogICAgIH0KLSAg
ICAKKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
RGlkTG9hZEFwcEJvdW5kUmVxdWVzdCIpKQorICAgICAgICByZXR1cm4gYWRvcHRXSyhXS0Jvb2xl
YW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmRpZExvYWRBcHBCb3VuZFJlcXVl
c3QoKSkpOworCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJEaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0IikpCisgICAgICAgIHJldHVybiBhZG9wdFdL
KFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZGlkTG9hZE5vbkFw
cEJvdW5kUmVxdWVzdCgpKSk7CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NHcmFuZGZhdGhlcmVkIikpIHsKICAgICAgICAg
YXV0byBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5VmFsdWUobWVzc2FnZUJvZHkp
OwogICAgICAgICBhdXRvIGhvc3ROYW1lID0gc3RyaW5nVmFsdWUobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCAiSG9zdE5hbWUiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA5YjdjYTA3NGUzNjE4NjE4ZDYzMzYyMTU1OWJk
NGQyNmRiNzRkNTMyLi42ZjE0ZmNkN2IzMWY0MzY5NWVlYWExNzM2MDE4ZjI4NTg5MDE0YzA3IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tCkBAIC00MDAsNiArNDAwLDM4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmFwcEJvdW5k
UmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFdLU3RyaW5nUmVmIGRvbWFpbikKICAgICB9XTsK
IH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6ZGlkTG9hZEFwcEJvdW5kUmVxdWVzdCgpCit7Cisg
ICAgYXV0byogcGFyZW50VmlldyA9IG1haW5XZWJWaWV3KCk7CisgICAgaWYgKCFwYXJlbnRWaWV3
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0gZmFs
c2U7CisgICAgX19ibG9jayBib29sIGRpZExvYWRSZXN1bHQgPSBmYWxzZTsKKyAgICBbbV9tYWlu
V2ViVmlldy0+cGxhdGZvcm1WaWV3KCkgX2RpZExvYWRBcHBCb3VuZFJlcXVlc3Q6XihCT09MIHJl
c3VsdCkgeworICAgICAgICBkaWRMb2FkUmVzdWx0ID0gcmVzdWx0OworICAgICAgICBpc0RvbmUg
PSB0cnVlOworICAgIH1dOworICAgIHBsYXRmb3JtUnVuVW50aWwoaXNEb25lLCBub1RpbWVvdXQp
OworICAgIHJldHVybiBkaWRMb2FkUmVzdWx0OworfQorCitib29sIFRlc3RDb250cm9sbGVyOjpk
aWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KCkKK3sKKyAgICBhdXRvKiBwYXJlbnRWaWV3ID0gbWFp
bldlYlZpZXcoKTsKKyAgICBpZiAoIXBhcmVudFZpZXcpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIGJvb2wgZGlk
TG9hZFJlc3VsdCA9IGZhbHNlOworICAgIFttX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKSBf
ZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVzdDpeKEJPT0wgcmVzdWx0KSB7CisgICAgICAgIGRpZExv
YWRSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
cGxhdGZvcm1SdW5VbnRpbChpc0RvbmUsIG5vVGltZW91dCk7CisgICAgcmV0dXJuIGRpZExvYWRS
ZXN1bHQ7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQXBwQm91bmROYXZpZ2F0aW9u
RGF0YSgpCiB7CiAgICAgYXV0byogcGFyZW50VmlldyA9IG1haW5XZWJWaWV3KCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCmluZGV4
IDM0MWFjY2RiMjI0NDBmZDhjOGYzYzNhODRlMWI0NzJkMWI5ZWYwNGUuLjRjZDZkYTFmZDZmOGU3
NDRmMzkwNGUwNmFlYmM4MjY5ZjFhZGVhMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCkBAIC04Myw1ICs4Myw3IEBACiAtICh2
b2lkKWRpc21pc3NBY3RpdmVNZW51OwogLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tz
OwogLSAodm9pZClfYXBwQm91bmROYXZpZ2F0aW9uRGF0YUZvckRvbWFpbjooTlNTdHJpbmcgKilk
b21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICogY29udGV4dCkpY29t
cGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9kaWRMb2FkQXBwQm91bmRSZXF1ZXN0Oih2b2lkIChe
KShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9kaWRMb2FkTm9uQXBw
Qm91bmRSZXF1ZXN0Oih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXI7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5l
cldLV2ViVmlldy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbQppbmRleCA5NzliNzljMDYzZjVhMzA0MmJlMGJhNzg1MzVkYjlhMjhmNWNlNjNh
Li44ZDRkOGYyNGM1YjJlYzI1MWE5NWVkMjQzNzg3YzM3ZWEwZjhiZDhjIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCkBAIC02
MDIsNCArNjAyLDE0IEBAIHN0YXRpYyBib29sIGlzUXVpY2tib2FyZFZpZXdDb250cm9sbGVyKFVJ
Vmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyKQogICAgIFtzdXBlciBfYXBwQm91bmROYXZp
Z2F0aW9uRGF0YUZvckRvbWFpbjpkb21haW4gY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhh
bmRsZXJdOwogfQogCistICh2b2lkKV9kaWRMb2FkQXBwQm91bmRSZXF1ZXN0Oih2b2lkICheKShC
T09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBbc3VwZXIgX2RpZExvYWRBcHBC
b3VuZFJlcXVlc3Q6Y29tcGxldGlvbkhhbmRsZXJdOworfQorCistICh2b2lkKV9kaWRMb2FkTm9u
QXBwQm91bmRSZXF1ZXN0Oih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIK
K3sKKyAgICBbc3VwZXIgX2RpZExvYWROb25BcHBCb3VuZFJlcXVlc3Q6Y29tcGxldGlvbkhhbmRs
ZXJdOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGM1ZDc3NTU0OTZmNzQ1OWRkYzRjZTI5Mzc5MzExMmY5
YWQ4YmU1OS4uMWFmNGIxNDQxZjE3YmNlMDBhYTgyMWE1NDdlZTk5YzYyMDFhOTA1NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTEwICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgorCisgICAgICAgIFByZWZsaWdodCByZXF1ZXN0cyBub3QgcHJvcGVybHkg
YXR0cmlidXRlZCBhcyBhcHAtYm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNTU5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc2NjQyNzI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHR3
byB0ZXN0cyBmb3Igc3luYyBhbmQgYXN5bmMgcHJlZmxpZ2h0IHJlcXVlc3RzLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdo
dC1hc3luYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2Vy
LXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2Fw
cC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFRoZXNlIHRlc3Rz
IHJlbHkgb24gaW50ZXJuYWwgYWRkaXRpb25zLCB3ZSBzaG91bGQgc2tpcCB0aGVtIGluIG9wZW4K
KyAgICAgICAgc291cmNlIGV4cGVjdGF0aW9ucy4KKwogMjAyMS0wNS0wNiAgTGF1cm8gTW91cmEg
IDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBHYXJkZW4gYWNjZXNzaWJpbGl0
eSBmYWlsdXJlIGFuZCBtZXJnZSBvdGhlciBleHBlY3RhdGlvbnMgd2l0aCBnbGliIG9uZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2Fw
cC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ODNlZjA3NWYx
NzQwMmY2MjAyYmY2MzU5MDU2OWEyM2VlODVhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0
aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xF
IE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBhcHAgYm91bmQgcmVxdWVzdHMgZ2V0IG1h
cmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0cworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25s
eSBhcHAtYm91bmQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
YXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFj
eS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWU0ODNlMzhjNDQ1YzZjZWQ4YjExZjVmNjVmZjE2NTYzYWY0YzUwYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91
bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPHA+
VGVzdHMgYXBwIGJvdW5kIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHM8
L3A+CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWlu
ID0gImxvY2FsaG9zdCI7Cit2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMt
NDA0LXdpdGhvdXQtYm9keS5weSIKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJl
cSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUp
OworICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwQm91bmRSZXF1
ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwQm91bmRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBk
aWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwQm91bmRS
ZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWROb25BcHBCb3VuZFJlcXVlc3QpIHsKKyAg
ICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwLWJvdW5kIHJlcXVlc3QiKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFkaWRMb2FkQXBwQm91bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IG5vdCBsb2FkIGFwcC1ib3VuZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkg
bG9hZGVkIG9ubHkgYXBwLWJvdW5kIHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEuc2VuZChudWxsKTsKK30KKworcnVuVGVzdCgpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93
c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAt
Ym91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRlZTA0NTNiNzdlYzY1N2FhZTg0NDY4NGY0M2UyZDI4Y2Y2ZDI1YWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJv
dW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcg
QEAKK0NPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVs
CitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJv
ZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIGFwcCBib3VuZCByZXF1
ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHMKKworUEFTUzogTmV0d29ya0Vycm9y
OiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9u
bHkgYXBwLWJvdW5kIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFj
eS9hcHAtYm91bmQtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YzBmMDhkNTJmZjc4ZmM1OTUxYjMzZWUxMDcwYzAzZDIyNzY2MTc5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3Vu
ZC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxwPlRl
c3RzIGFwcCBib3VuZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHM8L3A+
CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0g
ImxvY2FsaG9zdCI7Cit2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0
LXdpdGhvdXQtYm9keS5weSIKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsK
KyAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigieC13ZWJraXQiLCAiZm9vIik7CisKKyAgICB0cnkg
eworICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVxLnJl
c3BvbnNlVGV4dCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsg
ZXgpOworICAgICAgICB2YXIgZGlkTG9hZEFwcEJvdW5kUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlk
TG9hZEFwcEJvdW5kUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEJvdW5kUmVx
dWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEJvdW5kUmVxdWVzdCgpOworCisgICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwQm91bmRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwg
ZGlkIGxvYWQgbm9uIGFwcC1ib3VuZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlkTG9hZEFwcEJvdW5k
UmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAtYm91bmQg
cmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcC1ib3Vu
ZCByZXF1ZXN0cyIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9
CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEwMDJlNWEzOTczZWJhMTUwMWFlNzc1ZTE4Y2FkM2Uz
NjgyZTQzMDEuLjgyMmViMTJlMzhhYjczMjg5OGVlZTZhMDUxNDAwNzkyZmNjODIwNTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3OTEs
NiArMTc5MSw4IEBAIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS8gWyBQYXNzIF0K
IGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1mb3Itc3Vi
ZnJhbWUuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2Nv
bnRleHQtc3RyaW5nLXByZWNvbm5lY3QuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5L2NvbnRleHQtc3RyaW5nLXByZWZsaWdodC5odG1sIFsgU2tpcCBdCito
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXBy
ZWZsaWdodC1hc3luYy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXBy
aXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwgWyBTa2lwIF0K
IAogd2Via2l0Lm9yZy9iLzE3NTE5MyBmYXN0L2ltYWdlcy9hc3luYy1pbWFnZS1ib2R5LWJhY2tn
cm91bmQtaW1hZ2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>