<?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>224311</bug_id>
          
          <creation_ts>2021-04-07 16:34:44 -0700</creation_ts>
          <short_desc>Add test infrastructure for app bound request context string</short_desc>
          <delta_ts>2021-04-08 15:15:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748136</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-07 16:34:44 -0700</bug_when>
    <thetext>Add test infrastructure for app bound request context string</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748137</commentid>
    <comment_count>1</comment_count>
      <attachid>425451</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-07 16:35:59 -0700</bug_when>
    <thetext>Created attachment 425451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748166</commentid>
    <comment_count>2</comment_count>
      <attachid>425451</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-04-07 17:18:56 -0700</bug_when>
    <thetext>Comment on attachment 425451
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:60
&gt; +static String contextString(NSURLRequest *) { return { }; }

What this returned a RegistrableDomain?

&gt; LayoutTests/platform/ios-wk2/TestExpectations:1913
&gt; +webkit.org/b/223750 [ Debug ] security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html [ Pass Crash ]

What a weird decision for your text editor to make!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748312</commentid>
    <comment_count>3</comment_count>
      <attachid>425451</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-08 08:59:04 -0700</bug_when>
    <thetext>Comment on attachment 425451
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:697
&gt; +    webPageProxy-&gt;appBoundNavigationData([registrableDomain = WebCore::RegistrableDomain::uncheckedCreateFromHost(domain), completionHandler = makeBlockPtr(completionHandler)] (auto&amp;&amp; appBoundData) mutable {

It seems like this SPI should be on WKKWebView instead of WKKWebsiteDataStore if all it does it call a function on the WebView&apos;s WebPageProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748329</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-08 09:58:48 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #2)
&gt; Comment on attachment 425451 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425451&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:60
&gt; &gt; +static String contextString(NSURLRequest *) { return { }; }
&gt; 
&gt; What this returned a RegistrableDomain?
&gt; 

That would probably be better, I&apos;ll make that change before landing.

&gt; &gt; LayoutTests/platform/ios-wk2/TestExpectations:1913
&gt; &gt; +webkit.org/b/223750 [ Debug ] security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html [ Pass Crash ]
&gt; 
&gt; What a weird decision for your text editor to make!

Oops, didn&apos;t notice that, will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748332</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-08 10:00:36 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 425451 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425451&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:697
&gt; &gt; +    webPageProxy-&gt;appBoundNavigationData([registrableDomain = WebCore::RegistrableDomain::uncheckedCreateFromHost(domain), completionHandler = makeBlockPtr(completionHandler)] (auto&amp;&amp; appBoundData) mutable {
&gt; 
&gt; It seems like this SPI should be on WKKWebView instead of
&gt; WKKWebsiteDataStore if all it does it call a function on the WebView&apos;s
&gt; WebPageProxy.

You&apos;re right. I was lazy and copied other SPIs in the file, which went through WKWebsiteDataStore to call WebPageProxy functions. Let me see if I can move it to WKWebView before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748423</commentid>
    <comment_count>6</comment_count>
      <attachid>425530</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-08 12:27:08 -0700</bug_when>
    <thetext>Created attachment 425530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748424</commentid>
    <comment_count>7</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-04-08 12:27:36 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #6)
&gt; Created attachment 425530 [details]
&gt; Patch

Awaiting EWS. Moved SPI to WKWebView instead of WKWebsiteDataStore based on Alex&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748494</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-08 15:14:39 -0700</bug_when>
    <thetext>Committed r275682 (236317@main): &lt;https://commits.webkit.org/236317@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425530.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748496</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-08 15:15:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/76424060&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425451</attachid>
            <date>2021-04-07 16:35:59 -0700</date>
            <delta_ts>2021-04-08 12:27:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224311-20210407163558.patch</filename>
            <type>text/plain</type>
            <size>23314</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY1ZDY3NTE3ZmYyMGM3NWM4
NzBlNjJlMDE4OWFhMmI5ZDllNGI1ODEuLmIzZDI2MTljZjk5NmJlNjUxMTdlMzE4OGJiMThiZGEx
OTJkNGU1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDQtMDcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc2MjI5MDAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBhcHAtYm91bmQgcmVxdWVzdCBjb250ZXh0IHN0cmluZyBp
cyB0aGUgZVRMRCsxIGZvciBhIGxvYWQgYW5kIGlzCisgICAgICAgIG5lZWRlZCBieSBDRk5ldHdv
cmsuIFdlIHNob3VsZCBhZGQgdGVzdGluZyBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIHN1cmUKKyAg
ICAgICAgdGhlIGNvbnRleHQgc3RyaW5nIGlzIGJlaW5nIHByb3Blcmx5IHNldC4KKworICAgICAg
ICBUZXN0OiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvY29udGV4dC1zdHJpbmct
Zm9yLXN1YmZyYW1lLmh0bWwKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbi5oOgorICAgICAgICAoV2ViS2l0OjpBcHBCb3VuZE5hdmlnYXRpb25UZXN0
aW5nRGF0YTo6Y2xlYXJBcHBCb3VuZE5hdmlnYXRpb25EYXRhVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OkFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhOjp1cGRhdGVBcHBCb3VuZE5hdmln
YXRpb25UZXN0aW5nRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkFwcEJvdW5kTmF2aWdhdGlvblRl
c3RpbmdEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpBcHBCb3VuZE5hdmln
YXRpb25UZXN0aW5nRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgU3RvcmUgdGhlIGNvbnRleHQgc3Ry
aW5nIGluIHRoZSB0ZXN0aW5nIHN0cnVjdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUg
X2FwcEJvdW5kTmF2aWdhdGlvbkRhdGE6Zm9yRG9tYWluOmNvbXBsZXRpb25IYW5kbGVyOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
OgorICAgICAgICBTUEkgdG8gZ2V0IHRoZSBhcHAtYm91bmQgcmVxdWVzdCB0ZXN0IGRhdGEgZm9y
IGxheW91dCB0ZXN0aW5nLgorCiAyMDIxLTA0LTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBQb3dlciByZWdyZXNzaW9uOiBhdWRpbyBoYXJkd2Fy
ZSBpcyBjb25maWd1cmVkIGZvciAxMjggZnJhbWUgcHJlZmVycmVkIGJ1ZmZlciBzaXplIGR1cmlu
ZyBWaWRlb0F1ZGlvIHBsYXliYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAzMzllMTBkMjAy
ZjNjMTcxOTc5ODhhYmIwNzU2NzNmNmI0MTY0ZDQ1Li5lOWFiY2MzNTIwODM5ZDlhYWY2MGU1ZjAy
MTcxNWZjNDkzYzQ4YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTU3LDYgKzU3LDcgQEAK
ICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRhc2tDb2NvYUFkZGl0aW9ucy5o
PgogI2Vsc2UKICNkZWZpbmUgTkVUV09SS19EQVRBX1RBU0tfQ09DT0FfQURESVRJT05TCitzdGF0
aWMgU3RyaW5nIGNvbnRleHRTdHJpbmcoTlNVUkxSZXF1ZXN0ICopIHsgcmV0dXJuIHsgfTsgfQog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQwLDcgKzM0MSw3IEBAIE5ldHdvcmtE
YXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgTmV0d29ya0RhdGFUCiAKICAgICBORVRXT1JLX0RBVEFfVEFTS19DT0NPQV9BRERJVElPTlMK
IAotICAgIG1fc2Vzc2lvbi0+YXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEoKS51cGRhdGVB
cHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YShyZXF1ZXN0LmlzQXBwQm91bmQoKSk7CisgICAg
bV9zZXNzaW9uLT5hcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSgpLnVwZGF0ZUFwcEJvdW5k
TmF2aWdhdGlvblRlc3RpbmdEYXRhKHJlcXVlc3QsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
Ojp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChjb250ZXh0U3RyaW5nKG5zUmVxdWVzdCkpKTsKIAog
ICAgIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRl
ZChuc1JlcXVlc3QsIHNob3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3k6OlNuaWZmQ29udGVudCAmJiAhdXJsLmlzTG9jYWxGaWxlKCksIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmID09IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
OjpTbmlmZik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbi5oCmluZGV4IDRlY2U1ZjJhYWFlZjI2NDk4ZWM0ODEyMDE3MDNkYjgzYTYyZTFl
MmIuLjQ3ZTg0ZmQyNmQ0MTM0ZTg2YTk3YzM5NTk4MmFkNjQ5ZmZkNzU3YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4uaApAQCAtMjYs
MTQgKzI2LDIwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXIuaCIK
KyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBlbnVtIGNsYXNzIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIGVudW0gY2xhc3MgTGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA6IGJvb2wgeyBObywg
WWVzIH07CiAKK3VzaW5nIENvbnRleHREb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bjsKK3VzaW5nIFJlcXVlc3REb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKKwog
I2lmIFBMQVRGT1JNKENPQ09BKQogc3RydWN0IEFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRh
IHsKIApAQCAtNDEsMTcgKzQ3LDIwIEBAIHN0cnVjdCBBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5n
RGF0YSB7CiAgICAgewogICAgICAgICBoYXNMb2FkZWRBcHBCb3VuZFJlcXVlc3RUZXN0aW5nID0g
ZmFsc2U7CiAgICAgICAgIGhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcgPSBmYWxz
ZTsKKyAgICAgICAgY29udGV4dERhdGEuY2xlYXIoKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCB1
cGRhdGVBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YShib29sIHJlcXVlc3RJc0FwcEJvdW5k
KQorCisgICAgdm9pZCB1cGRhdGVBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgY29udGV4dERvbWFpbikKICAgICB7Ci0gICAgICAgIHJlcXVlc3RJc0FwcEJvdW5kID8g
aGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZyA9IHRydWUgOiBoYXNMb2FkZWROb25BcHBC
b3VuZFJlcXVlc3RUZXN0aW5nID0gdHJ1ZTsKKyAgICAgICAgcmVxdWVzdC5pc0FwcEJvdW5kKCkg
PyBoYXNMb2FkZWRBcHBCb3VuZFJlcXVlc3RUZXN0aW5nID0gdHJ1ZSA6IGhhc0xvYWRlZE5vbkFw
cEJvdW5kUmVxdWVzdFRlc3RpbmcgPSB0cnVlOworICAgICAgICBjb250ZXh0RGF0YS5hZGQoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4ocmVxdWVzdC51cmwoKSksIGNvbnRleHREb21haW4pOwog
ICAgIH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICB7CiAgICAgICAgIGVuY29kZXIgPDwgaGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZzsK
ICAgICAgICAgZW5jb2RlciA8PCBoYXNMb2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nOwor
ICAgICAgICBlbmNvZGVyIDw8IGNvbnRleHREYXRhOwogICAgIH0KIAogICAgIHN0YXRpYyBPcHRp
b25hbDxBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKQEAgLTY2LDExICs3NSwxNyBAQCBzdHJ1Y3QgQXBwQm91bmROYXZpZ2F0aW9uVGVz
dGluZ0RhdGEgewogICAgICAgICBpZiAoIWhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3Rp
bmcpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7
eyAqaGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZywgKmhhc0xvYWRlZE5vbkFwcEJvdW5k
UmVxdWVzdFRlc3RpbmcgfX07CisgICAgICAgIE9wdGlvbmFsPEhhc2hNYXA8UmVxdWVzdERvbWFp
biwgQ29udGV4dERvbWFpbj4+IGNvbnRleHREYXRhOworICAgICAgICBkZWNvZGVyID4+IGNvbnRl
eHREYXRhOworICAgICAgICBpZiAoIWNvbnRleHREYXRhKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICByZXR1cm4ge3sgKmhhc0xvYWRlZEFwcEJvdW5kUmVxdWVz
dFRlc3RpbmcsICpoYXNMb2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nLCBXVEZNb3ZlKCpj
b250ZXh0RGF0YSkgfX07CiAgICAgfQogCiAgICAgYm9vbCBoYXNMb2FkZWRBcHBCb3VuZFJlcXVl
c3RUZXN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIGhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVz
dFRlc3RpbmcgeyBmYWxzZSB9OworICAgIEhhc2hNYXA8UmVxdWVzdERvbWFpbiwgQ29udGV4dERv
bWFpbj4gY29udGV4dERhdGE7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGMzOTM0
NTUyYTIzYzA1MThjZWRjNWFhOWI4N2Q0ZDVjNjUwY2QwNTYuLjQ2MmRhMjFjODc4NmFmYTYzZGFk
ZThhYTdjYTQ3NzViMTYyNmU1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNjgxLDYgKzY4MSwyOSBA
QCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFS
ZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX2FwcEJvdW5k
TmF2aWdhdGlvbkRhdGE6KFdLV2ViVmlldyAqKXdlYlZpZXcgZm9yRG9tYWluOihOU1N0cmluZyAq
KWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiBjb250ZXh0KSlj
b21wbGV0aW9uSGFuZGxlcgoreworICAgIGlmICghd2ViVmlldykgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihuaWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byB3ZWJQ
YWdlUHJveHkgPSBbd2ViVmlldyBfcGFnZV07CisgICAgaWYgKCF3ZWJQYWdlUHJveHkpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobmlsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHdlYlBhZ2VQcm94eS0+YXBwQm91bmROYXZpZ2F0aW9uRGF0YShbcmVnaXN0cmFibGVEb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qo
ZG9tYWluKSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRs
ZXIpXSAoYXV0byYmIGFwcEJvdW5kRGF0YSkgbXV0YWJsZSB7CisgICAgICAgIGlmICghYXBwQm91
bmREYXRhLmNvbnRleHREYXRhLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWluKSkgeworICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobmlsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFwcEJvdW5kRGF0YS5jb250ZXh0RGF0
YS5nZXQocmVnaXN0cmFibGVEb21haW4pLnN0cmluZygpKTsKKyAgICB9KTsKK30KKwogLSAodm9p
ZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKIHsKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+dGVy
bWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDdl
OGFiZWM2ODk3ZDI5YjcyNzMzZGY1MGI0NGFmODk5ZDJjNmFmNjMuLjZmM2IzZTcwMTIyMTg4NjAx
NGNhYTRmMmFhZGNhZWY5N2U1NmNhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAt
ODAsNiArODAsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURh
dGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfcHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV9hcHBCb3VuZERvbWFpbnM6KHZv
aWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX2FwcEJvdW5kU2NoZW1l
czoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClfYXBwQm91bmRO
YXZpZ2F0aW9uRGF0YTooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JEb21haW46KE5TU3RyaW5nICop
ZG9tYWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNvbnRleHQpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJh
eSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMDRkNjc4OTYzODcyMzM2
YTRmMTBlOGIzODRiZWJlYjE3ZGMzZWJhLi41MWQyM2M4ODhkOGMzZGY1OTBiZThkMzA3MDNhODhl
YTRhY2I0ZTgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDQtMDcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9y
IGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc2MjI5MDAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIExheW91dCB0ZXN0IGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0UnVubmVyOjphcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFp
bik6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQXBwQm91bmRSZXF1
ZXN0Q29udGV4dERhdGFGb3JEb21haW5DYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjph
cHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbik6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6YXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4pOgorCiAy
MDIxLTA0LTAyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgV0tVUkxTY2hlbWVUYXNrIHJlZGlyZWN0IEFQSS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CmluZGV4IGJjYjc1MjRlYmI0ODkzNjlmZmFiY2QzNjM3ODcxNGZmZGZiMzI4N2IuLmRiMTJlMjU3
YmMwNmExMDA5NDYwNjAxOGRhMDA0YzVmMTcxOGJmOTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbApAQCAtMzg1LDYgKzM4NSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICBib29s
ZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5lZCBjbGVhckFwcEJvdW5kU2Vz
c2lvbigpOwogICAgIHVuZGVmaW5lZCBzZXRBcHBCb3VuZERvbWFpbnMob2JqZWN0IG9yaWdpbnNB
cnJheSwgb2JqZWN0IGNhbGxiYWNrKTsKKyAgICB1bmRlZmluZWQgYXBwQm91bmRSZXF1ZXN0Q29u
dGV4dERhdGFGb3JEb21haW4oRE9NU3RyaW5nIGRvbWFpbiwgb2JqZWN0IGNhbGxiYWNrKTsKIAog
ICAgIHVuZGVmaW5lZCBpbmplY3RVc2VyU2NyaXB0KERPTVN0cmluZyBzdHJpbmcpOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVzZXJTY3JpcHRJbmplY3RlZENvdW50Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAppbmRleCAzYzQyOTc0M2M0M2E2NDJhNGZkMDNjOTc5MDI2NDRiOWI3NzJh
ZTYxLi4wYTRkNGNmZmU1YTY0MjYyOTI1M2Q5MGQxNjAxMDIxOWJlMDAxMDNmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtNDIwLDYgKzQyMCwxNCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbQogICAg
ICAgICBtX3Rlc3RSdW5uZXItPmNhbGxEaWRSZWNlaXZlTG9hZGVkU3VicmVzb3VyY2VEb21haW5z
Q2FsbGJhY2soV1RGTW92ZShkb21haW5zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxs
RGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluIikpIHsKKyAgICAg
ICAgQVNTRVJUKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3Nh
Z2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgpKTsKKworICAgICAgICBhdXRvIHJlc3VsdFN0
cmluZyA9IHRvV1RGU3RyaW5nKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihtZXNzYWdlQm9keSkp
OworICAgICAgICBtX3Rlc3RSdW5uZXItPmNhbGxEaWRSZWNlaXZlQXBwQm91bmRSZXF1ZXN0Q29u
dGV4dERhdGFGb3JEb21haW5DYWxsYmFjayhXVEZNb3ZlKHJlc3VsdFN0cmluZykpOworICAgIH0K
IAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2Fs
bERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrIikpIHsKICAgICAgICAgbV90
ZXN0UnVubmVyLT5jYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJhY2soKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IDY0NTUxZmIyOTkzMzljNDcyYTVjMTQ2OTcxZTc5ODY3ZDc0ZDZiNTQuLmJm
ODk3ZGE0ODM2OTg4NTJhYzllNzI1NzdmYjkxZDA0OGZkMTY0MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtNjUx
LDYgKzY1MSw3IEBAIGVudW0gewogICAgIERpZFNldEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrSUQs
CiAgICAgRW50ZXJGdWxsc2NyZWVuRm9yRWxlbWVudENhbGxiYWNrSUQsCiAgICAgRXhpdEZ1bGxz
Y3JlZW5Gb3JFbGVtZW50Q2FsbGJhY2tJRCwKKyAgICBBcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0
YUZvckRvbWFpbkNhbGxiYWNrSUQsCiAgICAgRmlyc3RVSVNjcmlwdENhbGxiYWNrSUQgPSAxMDAK
IH07CiAKQEAgLTIxMDksNiArMjExMCwxOCBAQCB2b2lkIFRlc3RSdW5uZXI6OmRpZFNldEFwcEJv
dW5kRG9tYWluc0NhbGxiYWNrKCkKICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKERpZFNldEFw
cEJvdW5kRG9tYWluc0NhbGxiYWNrSUQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmFwcEJvdW5k
UmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKEpTU3RyaW5nUmVmIGRvbWFpbiwgSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKK3sKKyAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhBcHBCb3VuZFJlcXVl
c3RDb250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBwb3N0TWVz
c2FnZSgiQXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4iLCBkb21haW4pOworfQor
Cit2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQXBwQm91bmRSZXF1ZXN0Q29udGV4dERh
dGFGb3JEb21haW5DYWxsYmFjayhTdHJpbmcmJiBjb250ZXh0RG9tYWluKQoreworICAgIEpTVmFs
dWVSZWYgcmVzdWx0VmFsdWUgPSBKU1ZhbHVlTWFrZVN0cmluZyhtYWluRnJhbWVKU0NvbnRleHQo
KSwgY3JlYXRlSlNTdHJpbmcoY29udGV4dERvbWFpbi51dGY4KCkuZGF0YSgpKS5nZXQoKSk7Cisg
ICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRv
bWFpbkNhbGxiYWNrSUQsIDEsICZyZXN1bHRWYWx1ZSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKIHsK
ICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0SXNTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGY2YzY2N2MyMmU2OGFjMzM3NmRj
OGUzOWU2NDc3OWExMDg0YTliM2EuLjM0OGU0Y2E0YTBhZmRlNmE0ODBmMzVlOGFlNmQ1OTM2N2Zi
YTNmMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCkBAIC00OTMsNiArNDkzLDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJB
cHBCb3VuZFNlc3Npb24oKTsKICAgICB2b2lkIHNldEFwcEJvdW5kRG9tYWlucyhKU1ZhbHVlUmVm
IG9yaWdpbkFycmF5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAgICB2b2lkIGRpZFNldEFwcEJv
dW5kRG9tYWluc0NhbGxiYWNrKCk7CisgICAgdm9pZCBhcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0
YUZvckRvbWFpbihKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CisgICAgdm9pZCBjYWxsRGlkUmVj
ZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluQ2FsbGJhY2soU3RyaW5nJiYp
OwogCiAgICAgc2l6ZV90IHVzZXJTY3JpcHRJbmplY3RlZENvdW50KCkgY29uc3Q7CiAgICAgdm9p
ZCBpbmplY3RVc2VyU2NyaXB0KEpTU3RyaW5nUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzg4ZmRjNGUwZmQzNzdmNDljNzYwNjQwYTQ4ZjQ2YjBi
MzBmY2JhMi4uZDIyODJlZmUzNDE1MzdmYTM2Njk4ZWMwYmY1N2JlMTgyNzAwNjBlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI3MTksNiArMjcxOSwx
MCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKQog
ewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjphcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZv
ckRvbWFpbihXS1N0cmluZ1JlZikKK3sKK30KKwogc3RydWN0IEdldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzQ2FsbGJhY2tDb250ZXh0IHsKICAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllc0Nh
bGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBoYW5kbGVyKQogICAgICAgICA6IHRlc3RDb250
cm9sbGVyKGNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggMGNmMWY2Y2E3MzQ1NWI5NDAyODA0ZjA1YjIwMzljZmNhMzI0OGMyNi4uMWRiNGM5ZmUw
ZjhhNWU4ZmI1NzA4ZTk1MjdiNzFjZmIwMzY1NzU5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaApAQCAtMjY2LDYgKzI2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCk7CiAgICAgdm9pZCBjbGVhckFwcEJvdW5kU2Vz
c2lvbigpOwogICAgIHZvaWQgcmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKCk7CisgICAgdm9p
ZCBhcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbihXS1N0cmluZ1JlZik7CisKICAg
ICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IHN0ZDo6
c3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsZWFyQnVuZGxlSWRlbnRpZmll
ckluTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCBmNGE0ZmU0ZDM5OWUxMDZmYWJlZjY5ODYyMGZhZGZjZGMxMmY0YjE3Li4z
ZTFkNDRhNjk3NzQ1MjM5ZTRmMjc5ZjdlMjQ1ZjEwYWFlNDA0MzFhIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNzkyLDYgKzc5MiwxMiBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmlu
Z1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJBcHBCb3VuZFJlcXVlc3RDb250
ZXh0RGF0YUZvckRvbWFpbiIpKSB7CisgICAgICAgIFdLU3RyaW5nUmVmIGRvbWFpbiA9IHN0cmlu
Z1ZhbHVlKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LmFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKGRvbWFpbik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIApAQCAtMTU2OSw2
ICsxNTc1LDEyIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVMb2FkZWRTdWJyZXNv
dXJjZURvbWFpbnMoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zCiAgICAgcG9zdFBhZ2VNZXNzYWdl
KCJDYWxsRGlkUmVjZWl2ZUxvYWRlZFN1YnJlc291cmNlRG9tYWlucyIsIG1lc3NhZ2VCb2R5KTsK
IH0KIAordm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRl
eHREYXRhRm9yRG9tYWluKFN0cmluZyYmIGRvbWFpbikKK3sKKyAgICBhdXRvIG1lc3NhZ2VCb2R5
ID0gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoZG9tYWluLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIHBvc3RQYWdlTWVzc2FnZSgiQ2FsbERpZFJlY2VpdmVBcHBCb3VuZFJlcXVlc3RDb250ZXh0
RGF0YUZvckRvbWFpbiIsIG1lc3NhZ2VCb2R5KTsKK30KKwogdm9pZCBUZXN0SW52b2NhdGlvbjo6
ZGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCkKIHsKICAgICBwb3N0UGFnZU1lc3NhZ2Uo
IkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGQ5NGY1NGUxNzczMzkxZGZmZDkxMWMz
ZTU2ODNiNTdjOTg5YzgzNzIuLjFjMmVkMzA0MjI5N2ExYTJlYmM5YWNhM2VlOTZkMDdkNDIxNTAy
OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTk1LDYgKzk1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCk7
CiAKICAgICB2b2lkIGRpZFNldEFwcEJvdW5kRG9tYWlucygpOworICAgIHZvaWQgZGlkUmVjZWl2
ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFN0cmluZyYmKTsKIAogICAgIHZv
aWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGI1MjU5YTI3OWMx
MGYwNzFjNGU4OWRjY2RjZmZhNWRiODUzZTU5MDIuLjAwZTk2ZWEwYTg2ZjNlMzFlMTI4ZjRlZDIw
NWZlOWE3YTY0NGRiOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTM4Myw2ICszODMsMjIgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6Y2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQogICAgIFtbZ2xvYmFsV2Vi
Vmlld0NvbmZpZ3VyYXRpb24oKSB3ZWJzaXRlRGF0YVN0b3JlXSBfY2xlYXJMb2FkZWRTdWJyZXNv
dXJjZURvbWFpbnNGb3I6cGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCldOwogfQogCit2b2lkIFRl
c3RDb250cm9sbGVyOjphcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbihXS1N0cmlu
Z1JlZiBkb21haW4pCit7CisgICAgYXV0byogcGFyZW50VmlldyA9IG1haW5XZWJWaWV3KCk7Cisg
ICAgaWYgKCFwYXJlbnRWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBbW2dsb2JhbFdlYlZp
ZXdDb25maWd1cmF0aW9uKCkgd2Vic2l0ZURhdGFTdG9yZV0gX2FwcEJvdW5kTmF2aWdhdGlvbkRh
dGE6cGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCkgZm9yRG9tYWluOnRvV1RGU3RyaW5nKGRvbWFp
bikgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqY29udGV4dCkgeworICAgICAgICBpZiAo
IWNvbnRleHQpIHsKKyAgICAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFJlY2VpdmVB
cHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbih7IH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlkUmVjZWl2
ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFN0cmluZyhjb250ZXh0KSk7Cisg
ICAgfV07Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluamVjdFVzZXJTY3JpcHQoV0tTdHJp
bmdSZWYgc2NyaXB0KQogewogICAgIGF1dG8gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJT
Y3JpcHQgYWxsb2NdIGluaXRXaXRoU291cmNlOiB0b1dURlN0cmluZyhzY3JpcHQpIGluamVjdGlv
blRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJh
bWVPbmx5Ok5PXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDIyMDQyOTBlZTdiZmJhNzFlMWIyM2ZhYjc5NjkyY2M4MDYx
ZjRiYi4uMDk5YzEwNWFlNmYzOGNhNTczMjAwY2VmMDg2MjM2ZDcxZmViZmQyMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIxLTA0LTA3ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIGZvciBhcHAgYm91
bmQgcmVxdWVzdCBjb250ZXh0IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjIyOTAw
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5
L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1mb3It
c3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nl
ci1wcml2YWN5L3Jlc291cmNlcy9iYXNpYy1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA0LTAyICBBbWlyIE1h
cmsgSnIgIDxhbWlyX21hcmtAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjT1MgXSBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlu
bGluZS1tZWRpYS1kcm9wcGluZy1jb250cm9scy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2Nv
bnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvY29udGV4dC1zdHJpbmctZm9yLXN1YmZyYW1l
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTM2OGY2NmI1NGUxNzM5OTE3MmZhYzM3Mzc3NjY3
N2I3NzQ2YmViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1h
cHAtYnJvd3Nlci1wcml2YWN5L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCB0aGUgYXBwLWJvdW5kLXJlcXVlc3QgY29u
dGV4dCBzdHJpbmcgZ2V0cyBwcm9wZXJseSBzZXQgZm9yIGFuIGlmcmFtZQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb250ZXh0IHN0cmluZyBmb3Igc3ViIGZyYW1lIGNv
cnJlY3RseSBjYXB0dXJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1i
cm93c2VyLXByaXZhY3kvY29udGV4dC1zdHJpbmctZm9yLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvY29udGV4dC1zdHJpbmctZm9y
LXN1YmZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVkOWExNDE5YzEzYTNjOTc3OTcyZDM1OGRiZjIy
NWMxNjM0N2Q0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4t
YXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1mb3Itc3ViZnJhbWUuaHRtbApAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIGFwcC1ib3VuZC1y
ZXF1ZXN0IGNvbnRleHQgc3RyaW5nIGdldHMgcHJvcGVybHkgc2V0IGZvciBhbiBpZnJhbWUiKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgdmFyIHN1YkZyYW1lSG9z
dCA9ICJsb2NhbGhvc3QiOworICAgICAgICB2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsK
KyAgICAgICAgZnVuY3Rpb24gYXNrRm9yQ29udGV4dFN0cmluZ0ZvclN1YkZyYW1lKCkgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5hcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbihz
dWJGcmFtZUhvc3QsIGZ1bmN0aW9uIChjb250ZXh0RGF0YSkgeworICAgICAgICAgICAgICAgIGlm
IChjb250ZXh0RGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFza0ZvckNvbnRl
eHRTdHJpbmdGb3JTdWJGcmFtZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHREYXRhID09IGNvbnRl
eHRIb3N0KQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDb250ZXh0IHN0cmluZyBm
b3Igc3ViIGZyYW1lIGNvcnJlY3RseSBjYXB0dXJlZC4iKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvbnRleHQgc3RyaW5nIGZvciBzdWIg
ZnJhbWUgTk9UIGNvcnJlY3RseSBjYXB0dXJlZC4iKTsKKworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBvbmxvYWQ9InNldFRpbWVvdXQoJ2Fza0ZvckNvbnRleHRT
dHJpbmdGb3JTdWJGcmFtZSgpJywgMCkiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luLWFw
cC1icm93c2VyLXByaXZhY3kvcmVzb3VyY2VzL2Jhc2ljLWlmcmFtZS5odG1sIj4KKzwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bi1hcHAtYnJvd3Nlci1wcml2YWN5L3Jlc291cmNlcy9iYXNpYy1pZnJhbWUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9yZXNvdXJjZXMvYmFzaWMt
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY1NWY0ZTc3OGFlOWFmYTAxZGYzNWQ2MGMyZDg3NDcz
YjRmYmM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBw
LWJyb3dzZXItcHJpdmFjeS9yZXNvdXJjZXMvYmFzaWMtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjYjcwMDg5YjNmNDkwYmM0ZjViMjE3YmVhOWZkZWE1M2VlMzg2NTM0Li4y
YWI0YzY5ZTEyYjZmNTk4ZjkyYjZjYTA0ZjBjYTY4NDRmMWMyOTg4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzk1LDYgKzE3OTUsOSBA
QCB3ZWJraXQub3JnL2IvMjE0NTk4IGZhc3Qvc2Nyb2xsaW5nL2lvcy9hdXRvc2Nyb2xsLWlucHV0
LXdoZW4tdmVyeS16b29tZWQuaHRtbCBbCiAKIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS8gWyBQYXNzIF0KIAorIyBTb21lIEluLUFwcCBCcm93c2VyIFByaXZhY3kgdGVzdHMgcmVs
eSBvbiBmdW5jdGlvbnMgaW4gV2ViS2l0QWRkaXRpb25zLgoraHR0cC90ZXN0cy9pbi1hcHAtYnJv
d3Nlci1wcml2YWN5L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS5odG1sIFsgU2tpcCBdCisK
IHdlYmtpdC5vcmcvYi8xNzUxOTMgZmFzdC9pbWFnZXMvYXN5bmMtaW1hZ2UtYm9keS1iYWNrZ3Jv
dW5kLWltYWdlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMjE1MTEwIFsg
UmVsZWFzZSBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1hbmltYXRp
b25zL3dlYmtpdC13cml0aW5nLW1vZGUtY3Jhc2guaHRtbCBbIFBhc3MgRmFpbHVyZSBdCkBAIC0x
OTA2LDQgKzE5MDksNCBAQCB3ZWJraXQub3JnL2IvMjIzNTg2IHdlYmdsL2NvbmZvcm1hbmNlL2V4
dGVuc2lvbnMva2hyLXBhcmFsbGVsLXNoYWRlci1jb21waWxlLmh0bQogCiB3ZWJraXQub3JnL2Iv
MjE0OTU1IGZhc3QvcGFyc2VyL3htbC1jb2xvbi1lbnRpdHkuaHRtbCBbIEZhaWx1cmUgXQogCi13
ZWJraXQub3JnL2IvMjIzNzUwIFsgRGVidWcgXSBzZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcGx1Z2lucy10eXBlcy1hbGxvd3MteW91dHViZS1wbHVnaW4tcmVwbGFjZW1lbnQuaHRtbCBb
IFBhc3MgQ3Jhc2ggXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8y
MjM3NTAgWyBEZWJ1ZyBdIHNlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW5zLXR5
cGVzLWFsbG93cy15b3V0dWJlLXBsdWdpbi1yZXBsYWNlbWVudC5odG1sIFsgUGFzcyBDcmFzaCBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425530</attachid>
            <date>2021-04-08 12:27:08 -0700</date>
            <delta_ts>2021-04-08 15:14:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224311-20210408122707.patch</filename>
            <type>text/plain</type>
            <size>23513</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlkNWJmOGRiMDYyMWRmYWUx
MWI3YTc1YzhjYzBhODhjMTcwZmE1MzEuLjkyNDZjZjhkOTVkMTBiN2RlZWZkNjc2NTAxZWMwNzUy
YmMyYzRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDQtMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc2MjI5MDAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1
bGdoYW0uCisKKyAgICAgICAgVGhlIGFwcC1ib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nIGlz
IHRoZSBlVExEKzEgZm9yIGEgbG9hZCBhbmQgaXMKKyAgICAgICAgbmVlZGVkIGJ5IENGTmV0d29y
ay4gV2Ugc2hvdWxkIGFkZCB0ZXN0aW5nIGluZnJhc3RydWN0dXJlIHRvIG1ha2Ugc3VyZQorICAg
ICAgICB0aGUgY29udGV4dCBzdHJpbmcgaXMgYmVpbmcgcHJvcGVybHkgc2V0LgorCisgICAgICAg
IFRlc3Q6IGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1m
b3Itc3ViZnJhbWUuaHRtbAorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChjb250ZXh0U3RyaW5nKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAg
ICAgKiBTaGFyZWQvTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4uaDoKKyAgICAgICAgKFdlYktp
dDo6QXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGE6OmNsZWFyQXBwQm91bmROYXZpZ2F0aW9u
RGF0YVRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5n
RGF0YTo6dXBkYXRlQXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6QXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGE6OmRlY29kZSk6CisgICAg
ICAgIFN0b3JlIHRoZSBjb250ZXh0IHN0cmluZyBpbiB0aGUgdGVzdGluZyBzdHJ1Y3QuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfYXBwQm91bmROYXZpZ2F0aW9uRGF0YUZvckRvbWFpbjpjb21wbGV0aW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAg
ICAgICAgU1BJIHRvIGdldCB0aGUgYXBwLWJvdW5kIHJlcXVlc3QgdGVzdCBkYXRhIGZvciBsYXlv
dXQgdGVzdGluZy4KKwogMjAyMS0wNC0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgbG9nZ2luZyBmb3IgaW52ZXN0aWdhdGluZyBodHRwL3Rlc3Rz
L0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHRtbCBmYWlsdXJlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQppbmRleCAzMzllMTBkMjAyZjNjMTcxOTc5ODhhYmIwNzU2NzNmNmI0MTY0ZDQ1Li5hY2JhY2Y1
MjEzN2U2OWRiOTBkNjYwMTJkMTE5ZWE4ZjhkMDZlMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0K
QEAgLTU3LDYgKzU3LDcgQEAKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9OZXR3b3JrRGF0YVRh
c2tDb2NvYUFkZGl0aW9ucy5oPgogI2Vsc2UKICNkZWZpbmUgTkVUV09SS19EQVRBX1RBU0tfQ09D
T0FfQURESVRJT05TCitzdGF0aWMgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gY29udGV4dFN0
cmluZyhOU1VSTFJlcXVlc3QgKikgeyByZXR1cm4geyB9OyB9CiAjZW5kaWYKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC0zNDAsNyArMzQxLDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKIAog
ICAgIE5FVFdPUktfREFUQV9UQVNLX0NPQ09BX0FERElUSU9OUwogCi0gICAgbV9zZXNzaW9uLT5h
cHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSgpLnVwZGF0ZUFwcEJvdW5kTmF2aWdhdGlvblRl
c3RpbmdEYXRhKHJlcXVlc3QuaXNBcHBCb3VuZCgpKTsKKyAgICBtX3Nlc3Npb24tPmFwcEJvdW5k
TmF2aWdhdGlvblRlc3RpbmdEYXRhKCkudXBkYXRlQXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0Rh
dGEocmVxdWVzdCwgY29udGV4dFN0cmluZyhuc1JlcXVlc3QpKTsKIAogICAgIGFwcGx5U25pZmZp
bmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChuc1JlcXVlc3QsIHNo
b3VsZENvbnRlbnRTbmlmZiA9PSBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZm
Q29udGVudCAmJiAhdXJsLmlzTG9jYWxGaWxlKCksIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
ID09IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbi5oCmlu
ZGV4IDRlY2U1ZjJhYWFlZjI2NDk4ZWM0ODEyMDE3MDNkYjgzYTYyZTFlMmIuLjQ3ZTg0ZmQyNmQ0
MTM0ZTg2YTk3YzM5NTk4MmFkNjQ5ZmZkNzU3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4uaApAQCAtMjYsMTQgKzI2LDIwIEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXIuaCIKKyNpbmNsdWRlICJBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNz
IE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xh
c3MgTGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA6IGJvb2wgeyBObywgWWVzIH07CiAKK3VzaW5n
IENvbnRleHREb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKK3VzaW5nIFJlcXVl
c3REb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKKwogI2lmIFBMQVRGT1JNKENP
Q09BKQogc3RydWN0IEFwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhIHsKIApAQCAtNDEsMTcg
KzQ3LDIwIEBAIHN0cnVjdCBBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSB7CiAgICAgewog
ICAgICAgICBoYXNMb2FkZWRBcHBCb3VuZFJlcXVlc3RUZXN0aW5nID0gZmFsc2U7CiAgICAgICAg
IGhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcgPSBmYWxzZTsKKyAgICAgICAgY29u
dGV4dERhdGEuY2xlYXIoKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCB1cGRhdGVBcHBCb3VuZE5h
dmlnYXRpb25UZXN0aW5nRGF0YShib29sIHJlcXVlc3RJc0FwcEJvdW5kKQorCisgICAgdm9pZCB1
cGRhdGVBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgY29udGV4dERv
bWFpbikKICAgICB7Ci0gICAgICAgIHJlcXVlc3RJc0FwcEJvdW5kID8gaGFzTG9hZGVkQXBwQm91
bmRSZXF1ZXN0VGVzdGluZyA9IHRydWUgOiBoYXNMb2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0
aW5nID0gdHJ1ZTsKKyAgICAgICAgcmVxdWVzdC5pc0FwcEJvdW5kKCkgPyBoYXNMb2FkZWRBcHBC
b3VuZFJlcXVlc3RUZXN0aW5nID0gdHJ1ZSA6IGhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRl
c3RpbmcgPSB0cnVlOworICAgICAgICBjb250ZXh0RGF0YS5hZGQoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4ocmVxdWVzdC51cmwoKSksIGNvbnRleHREb21haW4pOwogICAgIH0KIAogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIGVu
Y29kZXIgPDwgaGFzTG9hZGVkQXBwQm91bmRSZXF1ZXN0VGVzdGluZzsKICAgICAgICAgZW5jb2Rl
ciA8PCBoYXNMb2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nOworICAgICAgICBlbmNvZGVy
IDw8IGNvbnRleHREYXRhOwogICAgIH0KIAogICAgIHN0YXRpYyBPcHRpb25hbDxBcHBCb3VuZE5h
dmlnYXRpb25UZXN0aW5nRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTY2
LDExICs3NSwxNyBAQCBzdHJ1Y3QgQXBwQm91bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEgewogICAg
ICAgICBpZiAoIWhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcpCiAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7eyAqaGFzTG9hZGVkQXBw
Qm91bmRSZXF1ZXN0VGVzdGluZywgKmhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3Rpbmcg
fX07CisgICAgICAgIE9wdGlvbmFsPEhhc2hNYXA8UmVxdWVzdERvbWFpbiwgQ29udGV4dERvbWFp
bj4+IGNvbnRleHREYXRhOworICAgICAgICBkZWNvZGVyID4+IGNvbnRleHREYXRhOworICAgICAg
ICBpZiAoIWNvbnRleHREYXRhKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgICAgICByZXR1cm4ge3sgKmhhc0xvYWRlZEFwcEJvdW5kUmVxdWVzdFRlc3RpbmcsICpoYXNM
b2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nLCBXVEZNb3ZlKCpjb250ZXh0RGF0YSkgfX07
CiAgICAgfQogCiAgICAgYm9vbCBoYXNMb2FkZWRBcHBCb3VuZFJlcXVlc3RUZXN0aW5nIHsgZmFs
c2UgfTsKICAgICBib29sIGhhc0xvYWRlZE5vbkFwcEJvdW5kUmVxdWVzdFRlc3RpbmcgeyBmYWxz
ZSB9OworICAgIEhhc2hNYXA8UmVxdWVzdERvbWFpbiwgQ29udGV4dERvbWFpbj4gY29udGV4dERh
dGE7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDkyMzJmYmEwZmVmN2ZkMGU1OTU5NTYyNzM3MjdlMDZlMGU5ZmI4
M2YuLjdkM2RhYWQ5ODNiYjhjZDE5OWYyZTQxYTI4MjVjMDg1ZTg1N2I4MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjIzNCw2ICsy
MjM0LDE4IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0TWFuaXB1bGF0aW9uRXJy
b3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAgICAgICAgIF9wYWdlLT5zd2l0Y2hG
cm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9Vc2VyRm9udFJlZ2lzdHJ5KCk7CiB9CiAKKy0gKHZvaWQp
X2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5TU3RyaW5nICopZG9tYWluIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNvbnRleHQpKWNvbXBsZXRpb25IYW5k
bGVyCit7CisgICAgX3BhZ2UtPmFwcEJvdW5kTmF2aWdhdGlvbkRhdGEoW3JlZ2lzdHJhYmxlRG9t
YWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0
KGRvbWFpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKV0gKGF1dG8mJiBhcHBCb3VuZERhdGEpIG11dGFibGUgeworICAgICAgICBpZiAoIWFwcEJv
dW5kRGF0YS5jb250ZXh0RGF0YS5jb250YWlucyhyZWdpc3RyYWJsZURvbWFpbikpIHsKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG5pbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhcHBCb3VuZERhdGEuY29udGV4dERh
dGEuZ2V0KHJlZ2lzdHJhYmxlRG9tYWluKS5zdHJpbmcoKSk7CisgICAgfSk7Cit9CisKIC0gKE5T
QXJyYXkgKilfY2VydGlmaWNhdGVDaGFpbgogewogICAgIGlmIChXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDFiYWI2ZjQx
MTQ5ZGMzMjM3NThmOGFiNGJhNmNjZmE5OThhYTkyYjguLjQ3NGVmMThhYjFmODllOGRlMDFhMTEw
OGFmMDViOTkzMDA5NjVhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDA0LDYgKzQwNCw4IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogKi8KIC0gKHZvaWQpX3N3aXRjaEZyb21TdGF0aWNGb250UmVnaXN0cnlUb1Vz
ZXJGb250UmVnaXN0cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CiAKKy0g
KHZvaWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5TU3RyaW5nICopZG9tYWlu
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNvbnRleHQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MTE0NzdhZjcxOGM5MjA5MDE5MWZh
YTIwNmEzYjNjMzExMjFiMGFlLi5jY2I3ZTEwNWEzZWVkMWQ1YTY0MjkyYWE4ODg1MmVkYzg2ZmMx
Y2Y2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMjEtMDQtMDggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFwcCBi
b3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MjI5
MDAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgTGF5
b3V0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OmFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKToKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVBcHBCb3VuZFJlcXVlc3RDb250
ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmFwcEJvdW5k
UmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlQXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4pOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjphcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtUZXN0UnVubmVyV0tXZWJWaWV3IF9hcHBCb3VuZE5hdmlnYXRpb25EYXRhRm9yRG9tYWluOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDIxLTA0LTA4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBsb2dnaW5nIGZvciBpbnZlc3RpZ2F0aW5nIGh0
dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odG1sIGZhaWx1cmUKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCmluZGV4IDhmOGI4ZTgzYjExODhmOTIxYTBmMjIzMDMzNzI3NjZiNjZl
OTU0ZDEuLjAxMWQ2ODk1ZTk3MmI1ODkyNTFmNjU2NmJhZGUyNGY1NjgxNDY4YjkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzg0LDYgKzM4NCw3IEBAIGludGVyZmFjZSBUZXN0UnVu
bmVyIHsKICAgICBib29sZWFuIGhhc0FwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5lZCBj
bGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIHVuZGVmaW5lZCBzZXRBcHBCb3VuZERvbWFpbnMo
b2JqZWN0IG9yaWdpbnNBcnJheSwgb2JqZWN0IGNhbGxiYWNrKTsKKyAgICB1bmRlZmluZWQgYXBw
Qm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4oRE9NU3RyaW5nIGRvbWFpbiwgb2JqZWN0
IGNhbGxiYWNrKTsKIAogICAgIHVuZGVmaW5lZCBpbmplY3RVc2VyU2NyaXB0KERPTVN0cmluZyBz
dHJpbmcpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVzZXJTY3JpcHRJ
bmplY3RlZENvdW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAzYzQyOTc0M2M0M2E2NDJhNGZkMDNj
OTc5MDI2NDRiOWI3NzJhZTYxLi4wYTRkNGNmZmU1YTY0MjYyOTI1M2Q5MGQxNjAxMDIxOWJlMDAx
MDNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNDIwLDYgKzQyMCwxNCBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgbQogICAgICAgICBtX3Rlc3RSdW5uZXItPmNhbGxEaWRSZWNlaXZlTG9hZGVkU3Vi
cmVzb3VyY2VEb21haW5zQ2FsbGJhY2soV1RGTW92ZShkb21haW5zKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJDYWxsRGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9t
YWluIikpIHsKKyAgICAgICAgQVNTRVJUKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgQVNTRVJUKFdL
R2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgpKTsKKworICAgICAg
ICBhdXRvIHJlc3VsdFN0cmluZyA9IHRvV1RGU3RyaW5nKHN0YXRpY19jYXN0PFdLU3RyaW5nUmVm
PihtZXNzYWdlQm9keSkpOworICAgICAgICBtX3Rlc3RSdW5uZXItPmNhbGxEaWRSZWNlaXZlQXBw
Qm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW5DYWxsYmFjayhXVEZNb3ZlKHJlc3VsdFN0
cmluZykpOworICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiQ2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFsc0NhbGxiYWNrIikp
IHsKICAgICAgICAgbV90ZXN0UnVubmVyLT5jYWxsRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRp
YWxzQ2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDUyNzdiYTZmNTlmOTJmMWM0YjcxNjU2M2NmMTg2
MDNkNTNhMWM2ZDQuLjA3ZTZlOWFlOWNhOWNlOTQzYTZmMjk1MGM2ODA3MzY1YWIwMzhlN2UgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcApAQCAtNjQ2LDYgKzY0Niw3IEBAIGVudW0gewogICAgIERpZFNldEFwcEJvdW5kRG9t
YWluc0NhbGxiYWNrSUQsCiAgICAgRW50ZXJGdWxsc2NyZWVuRm9yRWxlbWVudENhbGxiYWNrSUQs
CiAgICAgRXhpdEZ1bGxzY3JlZW5Gb3JFbGVtZW50Q2FsbGJhY2tJRCwKKyAgICBBcHBCb3VuZFJl
cXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrSUQsCiAgICAgRmlyc3RVSVNjcmlwdENh
bGxiYWNrSUQgPSAxMDAKIH07CiAKQEAgLTIxMDQsNiArMjEwNSwxOCBAQCB2b2lkIFRlc3RSdW5u
ZXI6OmRpZFNldEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKCkKICAgICBjYWxsVGVzdFJ1bm5lckNh
bGxiYWNrKERpZFNldEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrSUQpOwogfQogCit2b2lkIFRlc3RS
dW5uZXI6OmFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKEpTU3RyaW5nUmVmIGRv
bWFpbiwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFj
ayhBcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrSUQsIGNhbGxiYWNr
KTsKKyAgICBwb3N0TWVzc2FnZSgiQXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4i
LCBkb21haW4pOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZWNlaXZlQXBwQm91bmRS
ZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW5DYWxsYmFjayhTdHJpbmcmJiBjb250ZXh0RG9tYWlu
KQoreworICAgIEpTVmFsdWVSZWYgcmVzdWx0VmFsdWUgPSBKU1ZhbHVlTWFrZVN0cmluZyhtYWlu
RnJhbWVKU0NvbnRleHQoKSwgY3JlYXRlSlNTdHJpbmcoY29udGV4dERvbWFpbi51dGY4KCkuZGF0
YSgpKS5nZXQoKSk7CisgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhBcHBCb3VuZFJlcXVlc3RD
b250ZXh0RGF0YUZvckRvbWFpbkNhbGxiYWNrSUQsIDEsICZyZXN1bHRWYWx1ZSk7Cit9CisKIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJv
b2wgZ3JhbnRlZCkKIHsKICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0SXNTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGZkODYz
ZTA0ZTUwN2NiZTBhNmUyNDc0YTY4YjBkNjZmN2Y4NzgwNGQuLjk1NDc4NGVhMDcyM2ZmOThjNmY0
ODE1Mjc5YmFiY2NiNzU2YzMzZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00OTIsNiArNDkyLDggQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKICAgICB2b2lkIHNldEFwcEJvdW5kRG9t
YWlucyhKU1ZhbHVlUmVmIG9yaWdpbkFycmF5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAgICB2
b2lkIGRpZFNldEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKCk7CisgICAgdm9pZCBhcHBCb3VuZFJl
cXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbihKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZik7CisgICAg
dm9pZCBjYWxsRGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluQ2Fs
bGJhY2soU3RyaW5nJiYpOwogCiAgICAgc2l6ZV90IHVzZXJTY3JpcHRJbmplY3RlZENvdW50KCkg
Y29uc3Q7CiAgICAgdm9pZCBpbmplY3RVc2VyU2NyaXB0KEpTU3RyaW5nUmVmKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZjVjNmFmMDE4YmMyZjMwYzcw
YjU3MDdkNTcxMmQyMDZhZmE2OGVmYi4uYTE5NzQ2MTE4NDgxNGFjODVjZmZhNWRkMzc5YmFhYmQ1
YzQ1YTYyZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTI3MjMsNiArMjcyMywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZW1vdmVBbGxTZXNzaW9u
Q3JlZGVudGlhbHMoKQogewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjphcHBCb3VuZFJlcXVl
c3RDb250ZXh0RGF0YUZvckRvbWFpbihXS1N0cmluZ1JlZikKK3sKK30KKwogc3RydWN0IEdldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzQ2FsbGJhY2tDb250ZXh0IHsKICAgICBHZXRBbGxTdG9yYWdl
QWNjZXNzRW50cmllc0NhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJvbGxlciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBoYW5kbGVyKQogICAg
ICAgICA6IHRlc3RDb250cm9sbGVyKGNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggY2RhMDMzMmI2MDhkYzMzZDM4M2MzMmIwZDQ3ZmFiOGMzMzQ5
ZTU1OS4uN2Q2YWIyNzc0ZDA2MTA3ZmJjMzY5NGVkOGMwMmM2NTIyYTQ1NTFiMyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjY2LDYgKzI2Niw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCk7CiAgICAgdm9pZCBj
bGVhckFwcEJvdW5kU2Vzc2lvbigpOwogICAgIHZvaWQgcmVpbml0aWFsaXplQXBwQm91bmREb21h
aW5zKCk7CisgICAgdm9pZCBhcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbihXS1N0
cmluZ1JlZik7CisKICAgICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9j
ZXNzKGNvbnN0IHN0ZDo6c3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsZWFy
QnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAwYTMyY2Y0YzdkMDYzZWUyMDFlODNkZmI3YTFi
N2EzNTkyNWEwZGYxLi4wYzIwMGJkNTg4NjI5NjNiZWQ1YzUxNjFlZWQ0NDY0ZmMxOGUwYTg3IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNzkyLDYgKzc5
MiwxMiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJBcHBC
b3VuZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbiIpKSB7CisgICAgICAgIFdLU3RyaW5nUmVm
IGRvbWFpbiA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLmFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKGRvbWFp
bik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIApAQCAtMTU2NCw2ICsxNTcwLDEyIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2Vp
dmVMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoVmVjdG9yPFN0cmluZz4mJiBkb21haW5zCiAgICAg
cG9zdFBhZ2VNZXNzYWdlKCJDYWxsRGlkUmVjZWl2ZUxvYWRlZFN1YnJlc291cmNlRG9tYWlucyIs
IG1lc3NhZ2VCb2R5KTsKIH0KIAordm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZUFwcEJv
dW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFN0cmluZyYmIGRvbWFpbikKK3sKKyAgICBh
dXRvIG1lc3NhZ2VCb2R5ID0gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoZG9tYWluLnV0
ZjgoKS5kYXRhKCkpOworICAgIHBvc3RQYWdlTWVzc2FnZSgiQ2FsbERpZFJlY2VpdmVBcHBCb3Vu
ZFJlcXVlc3RDb250ZXh0RGF0YUZvckRvbWFpbiIsIG1lc3NhZ2VCb2R5KTsKK30KKwogdm9pZCBU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzKCkKIHsKICAgICBw
b3N0UGFnZU1lc3NhZ2UoIkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFj
ayIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGQ5NGY1NGUx
NzczMzkxZGZmZDkxMWMzZTU2ODNiNTdjOTg5YzgzNzIuLjFjMmVkMzA0MjI5N2ExYTJlYmM5YWNh
M2VlOTZkMDdkNDIxNTAyOTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmgKQEAgLTk1LDYgKzk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVtb3ZlQWxsU2Vzc2lv
bkNyZWRlbnRpYWxzKCk7CiAKICAgICB2b2lkIGRpZFNldEFwcEJvdW5kRG9tYWlucygpOworICAg
IHZvaWQgZGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9tYWluKFN0cmlu
ZyYmKTsKIAogICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmlu
ZGV4IGI1MjU5YTI3OWMxMGYwNzFjNGU4OWRjY2RjZmZhNWRiODUzZTU5MDIuLjA2MjhjODhmMTA3
YTEzZTQzNmI2ZWRjYmUwNjViZDU3ZmRjOTJjYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTM4Myw2ICszODMsMjIg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQog
ICAgIFtbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24oKSB3ZWJzaXRlRGF0YVN0b3JlXSBfY2xl
YXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnNGb3I6cGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCld
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjphcHBCb3VuZFJlcXVlc3RDb250ZXh0RGF0YUZv
ckRvbWFpbihXS1N0cmluZ1JlZiBkb21haW4pCit7CisgICAgYXV0byogcGFyZW50VmlldyA9IG1h
aW5XZWJWaWV3KCk7CisgICAgaWYgKCFwYXJlbnRWaWV3KQorICAgICAgICByZXR1cm47CisKKyAg
ICBbbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCkgX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFG
b3JEb21haW46dG9XVEZTdHJpbmcoZG9tYWluKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5n
ICpjb250ZXh0KSB7CisgICAgICAgIGlmICghY29udGV4dCkgeworICAgICAgICAgICAgbV9jdXJy
ZW50SW52b2NhdGlvbi0+ZGlkUmVjZWl2ZUFwcEJvdW5kUmVxdWVzdENvbnRleHREYXRhRm9yRG9t
YWluKHsgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtX2N1
cnJlbnRJbnZvY2F0aW9uLT5kaWRSZWNlaXZlQXBwQm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JE
b21haW4oU3RyaW5nKGNvbnRleHQpKTsKKyAgICB9XTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5qZWN0VXNlclNjcmlwdChXS1N0cmluZ1JlZiBzY3JpcHQpCiB7CiAgICAgYXV0byB1c2Vy
U2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6IHRv
V1RGU3RyaW5nKHNjcmlwdCkgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1l
QXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggMjMyODlhNjEy
ZjU3NzYyYmNhZDE0OTFlZjQwNjdmM2RiZGE0MWE3MS4uMzQxYWNjZGIyMjQ0MGZkOGM4ZjNjM2E4
NGUxYjQ3MmQxYjllZjA0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTgyLDUgKzgyLDYgQEAKIAogLSAodm9pZClkaXNt
aXNzQWN0aXZlTWVudTsKIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrczsKKy0gKHZv
aWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5TU3RyaW5nICopZG9tYWluIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNvbnRleHQpKWNvbXBsZXRpb25I
YW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcubW0KaW5kZXggMWM0NWJmZDIzOTlhMjRmY2JhNDdjZTBlYjAwZjJi
NGQ4ZTY4MDVhOS4uZWZlMDc3MjE5ZGQ4ZWQ5NTY3ODI1ZTlkMWVkNjQ3MTMyMDI0ZDAzYyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmll
dy5tbQpAQCAtNTkxLDQgKzU5MSw5IEBAIHN0YXRpYyBib29sIGlzUXVpY2tib2FyZFZpZXdDb250
cm9sbGVyKFVJVmlld0NvbnRyb2xsZXIgKnZpZXdDb250cm9sbGVyKQogICAgICAgICBzZWxmLmRp
ZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soKTsKIH0KIAorLSAodm9pZClfYXBwQm91bmROYXZp
Z2F0aW9uRGF0YUZvckRvbWFpbjooTlNTdHJpbmcgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TU3RyaW5nICogY29udGV4dCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBb
c3VwZXIgX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46ZG9tYWluIGNvbXBsZXRpb25I
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmN2ExNzZhYTk5
YTM0ZTQyNmFjNzA2MjdkZjc0MzM2YWRiNmU1MWUuLjdlZGM0YjAwNWJlNmFkNjMzNTU2N2E4ZWYy
Zjc2Njc3YTgxNGIyZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNC0wOCAgS2F0ZSBD
aGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGVzdCBp
bmZyYXN0cnVjdHVyZSBmb3IgYXBwIGJvdW5kIHJlcXVlc3QgY29udGV4dCBzdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDMxMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzYyMjkwMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICBUZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJp
dmFjeS9jb250ZXh0LXN0cmluZy1mb3Itc3ViZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L3Jlc291cmNlcy9iYXNpYy1pZnJhbWUu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIxLTA0LTA4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBsb2dnaW5nIGZvciBpbnZlc3RpZ2F0aW5nIGh0dHAvdGVzdHMvSW5kZXhlZERC
L3N0b3JhZ2UtbGltaXQtMS5odG1sIGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0cmluZy1mb3Itc3ViZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1w
cml2YWN5L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWEzNjhmNjZiNTRlMTczOTkxNzJmYWMzNzM3NzY2NzdiNzc0NmJlYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250
ZXh0LXN0cmluZy1mb3Itc3ViZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3RzIHRoYXQgdGhlIGFwcC1ib3VuZC1yZXF1ZXN0IGNvbnRleHQgc3RyaW5nIGdldHMgcHJvcGVy
bHkgc2V0IGZvciBhbiBpZnJhbWUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgQ29udGV4dCBzdHJpbmcgZm9yIHN1YiBmcmFtZSBjb3JyZWN0bHkgY2FwdHVyZWQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2NvbnRleHQt
c3RyaW5nLWZvci1zdWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5L2NvbnRleHQtc3RyaW5nLWZvci1zdWJmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlZDlhMTQxOWMxM2EzYzk3Nzk3MmQzNThkYmYyMjVjMTYzNDdkNDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvY29u
dGV4dC1zdHJpbmctZm9yLXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHRoZSBhcHAtYm91bmQtcmVxdWVzdCBjb250ZXh0IHN0cmluZyBn
ZXRzIHByb3Blcmx5IHNldCBmb3IgYW4gaWZyYW1lIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIHZhciBzdWJGcmFtZUhvc3QgPSAibG9jYWxob3N0IjsKKyAgICAg
ICAgdmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7CisgICAgICAgIGZ1bmN0aW9uIGFza0Zv
ckNvbnRleHRTdHJpbmdGb3JTdWJGcmFtZSgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYXBw
Qm91bmRSZXF1ZXN0Q29udGV4dERhdGFGb3JEb21haW4oc3ViRnJhbWVIb3N0LCBmdW5jdGlvbiAo
Y29udGV4dERhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dERhdGEgPT0gbnVsbCkg
eworICAgICAgICAgICAgICAgICAgICBhc2tGb3JDb250ZXh0U3RyaW5nRm9yU3ViRnJhbWUoKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0RGF0YSA9PSBjb250ZXh0SG9zdCkKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiQ29udGV4dCBzdHJpbmcgZm9yIHN1YiBmcmFtZSBjb3JyZWN0bHkg
Y2FwdHVyZWQuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJDb250ZXh0IHN0cmluZyBmb3Igc3ViIGZyYW1lIE5PVCBjb3JyZWN0bHkgY2Fw
dHVyZWQuIik7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUg
b25sb2FkPSJzZXRUaW1lb3V0KCdhc2tGb3JDb250ZXh0U3RyaW5nRm9yU3ViRnJhbWUoKScsIDAp
IiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L3Jlc291
cmNlcy9iYXNpYy1pZnJhbWUuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9y
ZXNvdXJjZXMvYmFzaWMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvcmVzb3VyY2VzL2Jhc2ljLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI2NTVmNGU3NzhhZTlhZmEwMWRmMzVkNjBjMmQ4NzQ3M2I0ZmJjNmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvcmVzb3Vy
Y2VzL2Jhc2ljLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWU1NjY1ZmIx
YjVmZWVhODM4OTFiZDQyZWE0MDE2ZjUzM2M1ZGIwMy4uOTY1ODVlNmJmMDkxZDhiNTc2ODNiMzA3
YzRmYzE3YzZhMTA5NzgzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTc4NSw2ICsxNzg1LDkgQEAgd2Via2l0Lm9yZy9iLzIxNDU5OCBm
YXN0L3Njcm9sbGluZy9pb3MvYXV0b3Njcm9sbC1pbnB1dC13aGVuLXZlcnktem9vbWVkLmh0bWwg
WwogCiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIFsgUGFzcyBdCiAKKyMgU29t
ZSBJbi1BcHAgQnJvd3NlciBQcml2YWN5IHRlc3RzIHJlbHkgb24gZnVuY3Rpb25zIGluIFdlYktp
dEFkZGl0aW9ucy4KK2h0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS9jb250ZXh0LXN0
cmluZy1mb3Itc3ViZnJhbWUuaHRtbCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTc1MTkzIGZh
c3QvaW1hZ2VzL2FzeW5jLWltYWdlLWJvZHktYmFja2dyb3VuZC1pbWFnZS5odG1sIFsgUGFzcyBU
aW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzIxNTExMCBbIFJlbGVhc2UgXSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtYW5pbWF0aW9ucy93ZWJraXQtd3JpdGluZy1tb2Rl
LWNyYXNoLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>