<?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>212288</bug_id>
          
          <creation_ts>2020-05-22 16:34:29 -0700</creation_ts>
          <short_desc>Make sure bundle identifier testing override is set in the network process</short_desc>
          <delta_ts>2020-05-27 13:38:50 -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>pvollan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1655489</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-22 16:34:29 -0700</bug_when>
    <thetext>The bundle identifier gets passed to the network process when it is initialized. If a test changes the bundle identifier for some purpose, it should make sure it initializes a new network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655490</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-22 16:35:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/63539061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655494</commentid>
    <comment_count>2</comment_count>
      <attachid>400086</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-22 16:39:57 -0700</bug_when>
    <thetext>Created attachment 400086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655496</commentid>
    <comment_count>3</comment_count>
      <attachid>400086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-22 16:44:41 -0700</bug_when>
    <thetext>Comment on attachment 400086
Patch

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

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:276
&gt; +    terminateNetworkProcess();

Why cannot you update the application bundle identifier in the existing Network Process? The current _setApplicationBundleIdentifier SPI in on the view. How can you guarantee that the network process has not launched yet when you call _setApplicationBundleIdentifier ? This seems like a super fragile SPI. 

I don&apos;t think that terminating a network process is a nice way to deal with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655500</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-22 16:49:32 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 400086 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=400086&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:276
&gt; &gt; +    terminateNetworkProcess();
&gt; 
&gt; Why cannot you update the application bundle identifier in the existing
&gt; Network Process? The current _setApplicationBundleIdentifier SPI in on the
&gt; view. How can you guarantee that the network process has not launched yet
&gt; when you call _setApplicationBundleIdentifier ? This seems like a super
&gt; fragile SPI. 
&gt; 
&gt; I don&apos;t think that terminating a network process is a nice way to deal with
&gt; this.

Do you mean send IPC to the Network Process to update the bundleID there when _setApplicationBundleIdentifier is called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655502</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-22 16:50:03 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #4)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; Comment on attachment 400086 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=400086&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:276
&gt; &gt; &gt; +    terminateNetworkProcess();
&gt; &gt; 
&gt; &gt; Why cannot you update the application bundle identifier in the existing
&gt; &gt; Network Process? The current _setApplicationBundleIdentifier SPI in on the
&gt; &gt; view. How can you guarantee that the network process has not launched yet
&gt; &gt; when you call _setApplicationBundleIdentifier ? This seems like a super
&gt; &gt; fragile SPI. 
&gt; &gt; 
&gt; &gt; I don&apos;t think that terminating a network process is a nice way to deal with
&gt; &gt; this.
&gt; 
&gt; Do you mean send IPC to the Network Process to update the bundleID there
&gt; when _setApplicationBundleIdentifier is called?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655507</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-22 16:51:21 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to katherine_cheney from comment #4)
&gt; &gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; &gt; Comment on attachment 400086 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=400086&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:276
&gt; &gt; &gt; &gt; +    terminateNetworkProcess();
&gt; &gt; &gt; 
&gt; &gt; &gt; Why cannot you update the application bundle identifier in the existing
&gt; &gt; &gt; Network Process? The current _setApplicationBundleIdentifier SPI in on the
&gt; &gt; &gt; view. How can you guarantee that the network process has not launched yet
&gt; &gt; &gt; when you call _setApplicationBundleIdentifier ? This seems like a super
&gt; &gt; &gt; fragile SPI. 
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think that terminating a network process is a nice way to deal with
&gt; &gt; &gt; this.
&gt; &gt; 
&gt; &gt; Do you mean send IPC to the Network Process to update the bundleID there
&gt; &gt; when _setApplicationBundleIdentifier is called?
&gt; 
&gt; Yes.

Seems wrong for a method on the view to behave differently whether the network process is already launched or not, even if it is SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655510</commentid>
    <comment_count>7</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-22 16:52:36 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Chris Dumez from comment #5)
&gt; &gt; (In reply to katherine_cheney from comment #4)
&gt; &gt; &gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; &gt; &gt; Comment on attachment 400086 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=400086&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:276
&gt; &gt; &gt; &gt; &gt; +    terminateNetworkProcess();
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Why cannot you update the application bundle identifier in the existing
&gt; &gt; &gt; &gt; Network Process? The current _setApplicationBundleIdentifier SPI in on the
&gt; &gt; &gt; &gt; view. How can you guarantee that the network process has not launched yet
&gt; &gt; &gt; &gt; when you call _setApplicationBundleIdentifier ? This seems like a super
&gt; &gt; &gt; &gt; fragile SPI. 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I don&apos;t think that terminating a network process is a nice way to deal with
&gt; &gt; &gt; &gt; this.
&gt; &gt; &gt; 
&gt; &gt; &gt; Do you mean send IPC to the Network Process to update the bundleID there
&gt; &gt; &gt; when _setApplicationBundleIdentifier is called?
&gt; &gt; 
&gt; &gt; Yes.
&gt; 
&gt; Seems wrong for a method on the view to behave differently whether the
&gt; network process is already launched or not, even if it is SPI.

Agreed, I didn&apos;t think about that. I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656191</commentid>
    <comment_count>8</comment_count>
      <attachid>400278</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-26 14:53:02 -0700</bug_when>
    <thetext>Created attachment 400278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656215</commentid>
    <comment_count>9</comment_count>
      <attachid>400282</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-26 15:49:17 -0700</bug_when>
    <thetext>Created attachment 400282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656230</commentid>
    <comment_count>10</comment_count>
      <attachid>400288</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-26 16:45:43 -0700</bug_when>
    <thetext>Created attachment 400288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656427</commentid>
    <comment_count>11</comment_count>
      <attachid>400288</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-05-27 10:33:23 -0700</bug_when>
    <thetext>Comment on attachment 400288
Patch

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

r=me with fixes.

&gt; Source/WebKit/ChangeLog:9
&gt; +        No new tests, will fix http/tests/in-app-browser-privacy/ tests.

The part about tests usually comes after the description, not before.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2757
&gt; +void NetworkProcess::updateBundleIdentifierInNetworkProcess(const String&amp;&amp; bundleIdentifier, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

&apos;String&amp;&amp;&apos; or &apos;const String&amp;&apos;, but not &apos;const String&amp;&amp;&apos;. Here I would just use String&amp;&amp;.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.messages.in:187
&gt; +    UpdateBundleIdentifierInNetworkProcess(String bundleIdentifier) -&gt; () Async

Please strip &apos;InNetworkProcess&apos;. This is an IPC to the network process so it is redundant.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.messages.in:188
&gt; +    ClearBundleIdentifierInNetworkProcess() -&gt; () Async

ditto.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:1540
&gt; +void NetworkProcessProxy::updateBundleIdentifierInNetworkProcess(const String&amp;&amp; bundleIdentifier, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

const String&amp;, not const String&amp;&amp;.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2488
&gt; +void WebsiteDataStore::updateBundleIdentifierInNetworkProcess(String bundleIdentifier, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

String -&gt; const String&amp;

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2493
&gt; +        processPool-&gt;ensureNetworkProcess().updateBundleIdentifierInNetworkProcess(WTFMove(bundleIdentifier), [callbackAggregator = callbackAggregator.copyRef()] { });

use-after-move of bundleIdentifier if there is more than one loop iteration. Just use bundleIdentifier without moving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656445</commentid>
    <comment_count>12</comment_count>
      <attachid>400288</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-27 11:08:58 -0700</bug_when>
    <thetext>Comment on attachment 400288
Patch

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

Thanks! I&apos;ll make these changes before landing.

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        No new tests, will fix http/tests/in-app-browser-privacy/ tests.
&gt; 
&gt; The part about tests usually comes after the description, not before.

Will fix.

&gt;&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2493
&gt;&gt; +        processPool-&gt;ensureNetworkProcess().updateBundleIdentifierInNetworkProcess(WTFMove(bundleIdentifier), [callbackAggregator = callbackAggregator.copyRef()] { });
&gt; 
&gt; use-after-move of bundleIdentifier if there is more than one loop iteration. Just use bundleIdentifier without moving.

Oops, good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656531</commentid>
    <comment_count>13</comment_count>
      <attachid>400369</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-05-27 13:09:12 -0700</bug_when>
    <thetext>Created attachment 400369
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656555</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-27 13:38:49 -0700</bug_when>
    <thetext>Committed r262212: &lt;https://trac.webkit.org/changeset/262212&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400369.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400086</attachid>
            <date>2020-05-22 16:39:57 -0700</date>
            <delta_ts>2020-05-26 14:53:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212288-20200522163957.patch</filename>
            <type>text/plain</type>
            <size>1748</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDU4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODE4OTk1N2VhY2FlYjdjMTdiM2I5N2E4YTU3OTU4MzUw
NmIyNmE1NS4uOTIzNjI0NzVhODY0MDMyYzZmMzUxOWI3MzY0NmIxNGVlZTE4YzBiMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIwLTA1LTIyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgorCisgICAgICAgIFRlcm1pbmF0ZSB0aGUgTmV0d29yayBQcm9jZXNzIGFmdGVyIHNldHRpbmcg
YSBuZXcgYnVuZGxlIGlkZW50aWZpZXIgaW4gV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMjg4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MzUzOTA2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgYnVuZGxlIGlkZW50aWZpZXIgZ2V0cyBwYXNzZWQgdG8gdGhlIG5l
dHdvcmsgcHJvY2VzcyB3aGVuIGl0IGlzIGluaXRpYWxpemVkLgorICAgICAgICBJZiBhIHRlc3Qg
Y2hhbmdlcyB0aGUgYnVuZGxlIGlkZW50aWZpZXIgZm9yIHNvbWUgcHVycG9zZSwgaXQgc2hvdWxk
IG1ha2Ugc3VyZSBpdAorICAgICAgICBpbml0aWFsaXplcyBhIG5ldyBuZXR3b3JrIHByb2Nlc3Mu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIpOgorCiAyMDIwLTA1LTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBhayBTREtdIEFkZCBidWJibGV3cmFwIC4uLiB3cmFw
cGVyCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW0KaW5kZXggYzM5ZTQxMWMyZWM5M2NjYjY5ODYwNGE4MzM3OTIxZDBkYWUyN2YzMS4u
OTU1YjNhM2RmNTkyMjU0NjAwN2UwODAxODA3Mzg0ODVlM2M3YTlmNSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMjcx
LDYgKzI3MSw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBbVGVzdFJ1bm5lcldLV2ViVmlldyBfc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV07
CisKKyAgICAvLyBNYWtlIHN1cmUgd2UgY3JlYXRlIGEgbmV3IE5ldHdvcmsgUHJvY2VzcyBzbyB3
ZSBoYXZlIHRoZSB1cGRhdGVkIGJ1bmRsZSBJRCBzdG9yZWQgdGhlcmUuCisgICAgdGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400278</attachid>
            <date>2020-05-26 14:53:02 -0700</date>
            <delta_ts>2020-05-26 15:49:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212288-20200526145302.patch</filename>
            <type>text/plain</type>
            <size>14661</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhlNjQ3NWE2NGNmYWIwYjMy
OWNmMzc0YTVkZDQ4MzJiNmZjNTQ1NWIuLjQ4MzIzMmFkMjNmZjM1NTcyNDNmMTQxYTI0MDgzYjA5
MWE3MDNjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDUtMjYgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIGJ1
bmRsZSBpZGVudGlmaWVyIHRlc3Rpbmcgb3ZlcnJpZGUgaXMgc2V0IGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MjI4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM1MzkwNjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB3aWxsIGZpeCBo
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIHRlc3RzLgorCisgICAgICAgIFNldCB0
aGUgYnVuZGxlIGlkZW50aWZpZXIgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpZiBhIGxheW91dCB0
ZXN0CisgICAgICAgIHVwZGF0ZXMgaXQuIFRoaXMgdmFsdWUgdXN1YWxseSBvbmx5IGdldHMgdXBk
YXRlZCB3aGVuIGEgbmV3IG5ldHdvcmsKKyAgICAgICAgcHJvY2VzcyBpcyBpbml0aWFsaXplZCwg
d2hpY2ggZG9lcyBub3QgaGFwcGVuIGZvciBldmVyeSB0ZXN0LiBTbyBpdAorICAgICAgICBzaG91
bGQgYmUgc2V0L2NsZWFyZWQgYXMgbmVlZGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dXBk
YXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5Ojp1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3Mp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisK
IDIwMjAtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWdyZXNzaW9uKHIyNTQ4NTkpIERPTSBzdG9yYWdlIGV2ZW50IGdldHMgZmlyZWQgYXQgdGhlIGZy
YW1lIHRoYXQgY2F1c2VkIHRoZSBzdG9yYWdlIG1vZGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1MTY0YzYzMzVhZDE4
MzU5Yjc5NDVmZTZjOWE1NTc3ZTIxMWFmYThkLi4xNDAyNTFjMGZkMGMzZDZlZjUxNjFmY2YyNGEz
MjFkNmI1ZGYzODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtMjc1NCw0ICsyNzU0LDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSlNDOjpN
ZXNzCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVCdW5kbGVJZGVudGlm
aWVySW5OZXR3b3JrUHJvY2Vzcyhjb25zdCBTdHJpbmcmJiBidW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29y
ZTo6Y2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyAg
ICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoYnVuZGxlSWRlbnRpZmll
cik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6
Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6Y2xlYXJBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwNzU5NGM5MzgxZTg1NDEyZTg2ZDBi
ZjNlMzMzNmRlZjEzOGQzNmRlLi43YjI2MTMzNTBjM2I0ZDdlYjQyZjYxN2M5MTc0OTVlYTE5Yzdm
MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC0zNTUsNiArMzU1LDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Np
b24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2
b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklELCBKU0M6Ok1lc3NhZ2VT
b3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZv
aWQgdXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50
aWZpZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjY2
ZWEzMWE3YTcxOTdhNzYwMjgyNjE2YmJkMDViZTBlOWFlNjlhMC4uMTZjOWIyZjc0MTUyYmY5NmEx
Nzk4NGUxYzFhNjU5ODlkZDA1ZmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xODQsNCArMTg0LDYg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpc2Fi
bGVTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKQogICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0
bGVtZW50T3ZlcnJpZGUoKSAtPiAoKSBBc3luYwogI2VuZGlmCisgICAgVXBkYXRlQnVuZGxlSWRl
bnRpZmllckluTmV0d29ya1Byb2Nlc3MoU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIpIC0+ICgpIEFz
eW5jCisgICAgQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpIC0+ICgpIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCAwYTdkODA2NGRjODQyMDNkZGM1MGYxZDA1YmMzODgy
NmI4NjQ2MDBjLi4wODRhOTQ1ZWI5NmNiMzhiODY4Njc3ZWIxMTg4Yjc2NTNlODUwYzA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAKQEAgLTgwNSwzICs4MDUsMTcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVS
ZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8K
ICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5yZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoKTsKICNlbmRpZgogfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRs
ZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIGNvbnN0IFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzc0Z1bmN0
aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJl
ZiktPnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGJ1bmRsZUlkZW50aWZp
ZXIsIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjb250ZXh0KTsKKyAgICB9KTsKK30KKwordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVh
ckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQnVuZGxl
SWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3NGdW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5jbGVhckJ1bmRsZUlkZW50aWZpZXJJ
bk5ldHdvcmtQcm9jZXNzKFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKKyAgICB9KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggMzUy
NTI2MmZhNDE4NTEwODY2OTE3ZGFkYjQ1YTk4MTkzODhiMTE4OC4uNDMyNzczM2MxNGYxNTgzZGFm
NTE4YzU5YWNmYWNjNGQ1OTNlYTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTE3Nyw2ICsxNzcsMTEgQEAg
V0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBcHBCb3VuZFNlc3Npb24oV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGEKIAogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlUmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYpOwogCit0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzc0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlVXBkYXRlQnVuZGxlSWRlbnRp
ZmllckluTmV0d29ya1Byb2Nlc3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwg
Y29uc3QgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURh
dGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzRnVuY3Rpb24gY29t
cGxldGlvbkhhbmRsZXIpOwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzc0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNv
bnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJ
bk5ldHdvcmtQcm9jZXNzRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOworCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggYmVkYjgyNzJhYmQwOGVlMWQ4
ZTU3YjUyODkwMGIyMGFkMjRmM2Q4Ny4uMWY1NDg4NzE5NmVkZDQ3MzVkM2Q1MTBmMmViMDEwNjlh
YWU2MGU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNTM3LDYgKzE1MzcsMTYgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpnZXRBcHBCb3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW8KICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVw
ZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYmIGJ1bmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpV
cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhidW5kbGVJZGVudGlmaWVyKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29y
a1Byb2Nlc3MoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggODU0N2Nm
NjNiMjgzMjY1ZTQzNTVkZTcwNDA0YzFmMDJmYTdiMWQxMC4uZGMzMzczNTRhZTViMmY2ZWQwMTVm
Zjk3YjlmYjAwZTQzZDkxZjFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIzMyw2ICsyMzMsOCBAQCBwdWJs
aWM6CiAKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAgdm9pZCBzZW5kUHJlcGFy
ZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9j
ZXNzKGNvbnN0IFN0cmluZyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogCiBwcml2YXRlOgogICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCAzZTk0ZGE3MGUzY2ZkMmRjZjBiNDhjZjAwOGJjYjM0ODgzY2U0
YmQxLi40MTM0YTQwYmRmN2NmOTM5NGU0MjM4YzExYjIxNjA2MmI1ZDIzY2ZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMjQ4NSw0ICsyNDg1LDIwIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0
QXBwQm91bmREb21haW5zRm9ySVRQKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFiCiB9
CiAjZW5kaWYKIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjp1cGRhdGVCdW5kbGVJZGVudGlmaWVy
SW5OZXR3b3JrUHJvY2VzcyhTdHJpbmcgYnVuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQor
ICAgICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS51cGRhdGVCdW5kbGVJ
ZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXVEZNb3ZlKGJ1bmRsZUlkZW50aWZpZXIpLCBbY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKK30K
Kwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRl
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bv
b2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZU5ldHdvcmtQ
cm9jZXNzKCkuY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhbY2FsbGJhY2tB
Z2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCmluZGV4IGRiZGEwNDE4OGMxNGMxNjUzNDRkZDUwODQyYjZhYzk0NGUwZDM5MGYu
LmM2N2Q3NWM5ODZkODMyZWZjNGI0ZmQ0NTM2ZDg3NWUwZGY4MzI1MDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
QEAgLTI5OSw3ICsyOTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbnN1cmVBcHBCb3VuZERvbWFp
bnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluPiYpPiYmKSBjb25zdDsKICAgICB2b2lkIHJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9t
YWlucygpOwogICAgIHN0YXRpYyB2b2lkIHNldEFwcEJvdW5kRG9tYWluc0ZvclRlc3RpbmcoSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLQorICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nl
c3MoU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIAogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIEZvcmNlUmVpbml0aWFsaXphdGlv
biA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCBpbml0aWFsaXplQXBwQm91bmREb21haW5z
KEZvcmNlUmVpbml0aWFsaXphdGlvbiA9IEZvcmNlUmVpbml0aWFsaXphdGlvbjo6Tm8pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxODk5NTdl
YWNhZWI3YzE3YjNiOTdhOGE1Nzk1ODM1MDZiMjZhNTUuLjIzNzM4NDk1NDVkNjRjZGQ0ODk0ZDQx
Y2NlMTk3ZmNmMTVjZmQ4ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNS0yNiAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgYnVuZGxlIGlk
ZW50aWZpZXIgdGVzdGluZyBvdmVycmlkZSBpcyBzZXQgaW4gdGhlIG5ldHdvcmsgcHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMjg4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzUzOTA2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXQgdGhlIGJ1bmRsZSBpZGVudGlmaWVyIGluIHRo
ZSBuZXR3b3JrIHByb2Nlc3MgaWYgYSBsYXlvdXQgdGVzdAorICAgICAgICB1cGRhdGVzIGl0LiBU
aGlzIHZhbHVlIHVzdWFsbHkgb25seSBnZXRzIHVwZGF0ZWQgd2hlbiBhIG5ldyBuZXR3b3JrCisg
ICAgICAgIHByb2Nlc3MgaXMgaW5pdGlhbGl6ZWQsIHdoaWNoIGRvZXMgbm90IGhhcHBlbiBmb3Ig
ZXZlcnkgdGVzdC4gU28gaXQKKyAgICAgICAgc2hvdWxkIGJlIHNldC9jbGVhcmVkIGFzIG5lZWRl
ZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdv
cmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6
CisKIDIwMjAtMDUtMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtGbGF0cGFrIFNES10gQWRkIGJ1YmJsZXdyYXAgLi4uIHdyYXBwZXIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDM4ZDg1NGI3NjAyZGY3
NTVjYzY3MGZhNjQxMjcxMmQ5ZDFhYjMwZC4uZjhlZjc4YjYwMTQxY2MzM2UyMWFhOWZkNGM1MDA3
Njk4MTgwZTRiMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
QEAgLTc5NSw4ICs3OTUsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dp
dGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWV0aGluZyBl
bHNlIGZvciBzcGVjaWZpYyB0ZXN0cyB0aGF0IG5lZWQgdG8gcnVuIGF0IGEgZGlmZmVyZW50IHdp
bmRvdyBzY2FsZS4KICAgICBtX21haW5XZWJWaWV3LT5jaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVk
KDEpOwogICAgIAotICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIu
aXNFbXB0eSgpKQorICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIu
aXNFbXB0eSgpKSB7CiAgICAgICAgIHJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpOworICAg
ICAgICB1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhvcHRpb25zLmFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CisgICAgfQogfQogCiB2b2lkIFRlc3RDb250cm9sbGVy
OjplbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYg
dGVzdCkKQEAgLTExNTQsNiArMTE1Niw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3Rh
dGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
VGVzdGluZ092ZXJyaWRlKCk7CiAjZW5kaWYKKyAgICAgICAgY2xlYXJCdW5kbGVJZGVudGlmaWVy
SW5OZXR3b3JrUHJvY2VzcygpOwogICAgIH0KIAogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7
CkBAIC0zODk0LDYgKzM4OTcsMjAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVpbml0aWFsaXpl
QXBwQm91bmREb21haW5zKCkKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBC
b3VuZERvbWFpbnMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSk7CiB9CiAKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
KGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKK3sKKyAgICBJbkFwcEJyb3dzZXJQcml2
YWN5Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9y
ZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFRlc3RDb250cm9sbGVyOjp3
ZWJzaXRlRGF0YVN0b3JlKCksIGJ1bmRsZUlkZW50aWZpZXIsICZjb250ZXh0LCBpbkFwcEJyb3dz
ZXJQcml2YWN5Vm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQnVuZGxlSWRlbnRp
ZmllckluTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEluQXBwQnJvd3NlclByaXZhY3lDYWxsYmFj
a0NvbnRleHQgY29udGV4dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFT
dG9yZSgpLCAmY29udGV4dCwgaW5BcHBCcm93c2VyUHJpdmFjeVZvaWRSZXN1bHRDYWxsYmFjayk7
CisgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCiAjaWYgIVBMQVRG
T1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGRUZXN0T3B0aW9ucyhU
ZXN0T3B0aW9ucyYpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggNDcxZWZkNzc1ZmM4OGJiNTYxN2I2MmQwOWU2ODJlN2NmNTY3ZTg3NS4uMzU3ZTli
NGE2ZTZiYTVjN2ZiNWZjZjNiYjBlMWNlZTM5YjU3MTdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjc1LDYgKzI3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyTG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRT
ZXNzaW9uKCk7CiAgICAgdm9pZCByZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoKTsKKyAgICB2
b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYg
YnVuZGxlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdv
cmtQcm9jZXNzKCk7CiAKICAgICBXS0FycmF5UmVmIG9wZW5QYW5lbEZpbGVVUkxzKCkgY29uc3Qg
eyByZXR1cm4gbV9vcGVuUGFuZWxGaWxlVVJMcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0T3BlblBh
bmVsRmlsZVVSTHMoV0tBcnJheVJlZiBmaWxlVVJMcykgeyBtX29wZW5QYW5lbEZpbGVVUkxzID0g
ZmlsZVVSTHM7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400282</attachid>
            <date>2020-05-26 15:49:17 -0700</date>
            <delta_ts>2020-05-26 16:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212288-20200526154916.patch</filename>
            <type>text/plain</type>
            <size>14753</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhlNjQ3NWE2NGNmYWIwYjMy
OWNmMzc0YTVkZDQ4MzJiNmZjNTQ1NWIuLjQ4MzIzMmFkMjNmZjM1NTcyNDNmMTQxYTI0MDgzYjA5
MWE3MDNjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDUtMjYgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIGJ1
bmRsZSBpZGVudGlmaWVyIHRlc3Rpbmcgb3ZlcnJpZGUgaXMgc2V0IGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MjI4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM1MzkwNjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB3aWxsIGZpeCBo
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIHRlc3RzLgorCisgICAgICAgIFNldCB0
aGUgYnVuZGxlIGlkZW50aWZpZXIgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpZiBhIGxheW91dCB0
ZXN0CisgICAgICAgIHVwZGF0ZXMgaXQuIFRoaXMgdmFsdWUgdXN1YWxseSBvbmx5IGdldHMgdXBk
YXRlZCB3aGVuIGEgbmV3IG5ldHdvcmsKKyAgICAgICAgcHJvY2VzcyBpcyBpbml0aWFsaXplZCwg
d2hpY2ggZG9lcyBub3QgaGFwcGVuIGZvciBldmVyeSB0ZXN0LiBTbyBpdAorICAgICAgICBzaG91
bGQgYmUgc2V0L2NsZWFyZWQgYXMgbmVlZGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dXBk
YXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5Ojp1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3Mp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisK
IDIwMjAtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWdyZXNzaW9uKHIyNTQ4NTkpIERPTSBzdG9yYWdlIGV2ZW50IGdldHMgZmlyZWQgYXQgdGhlIGZy
YW1lIHRoYXQgY2F1c2VkIHRoZSBzdG9yYWdlIG1vZGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1MTY0YzYzMzVhZDE4
MzU5Yjc5NDVmZTZjOWE1NTc3ZTIxMWFmYThkLi4xNDAyNTFjMGZkMGMzZDZlZjUxNjFmY2YyNGEz
MjFkNmI1ZGYzODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtMjc1NCw0ICsyNzU0LDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSlNDOjpN
ZXNzCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVCdW5kbGVJZGVudGlm
aWVySW5OZXR3b3JrUHJvY2Vzcyhjb25zdCBTdHJpbmcmJiBidW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29y
ZTo6Y2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyAg
ICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoYnVuZGxlSWRlbnRpZmll
cik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6
Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6Y2xlYXJBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwNzU5NGM5MzgxZTg1NDEyZTg2ZDBi
ZjNlMzMzNmRlZjEzOGQzNmRlLi43YjI2MTMzNTBjM2I0ZDdlYjQyZjYxN2M5MTc0OTVlYTE5Yzdm
MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC0zNTUsNiArMzU1LDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Np
b24oUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2
b2lkIGJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklELCBKU0M6Ok1lc3NhZ2VT
b3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZv
aWQgdXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50
aWZpZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjY2
ZWEzMWE3YTcxOTdhNzYwMjgyNjE2YmJkMDViZTBlOWFlNjlhMC4uMTZjOWIyZjc0MTUyYmY5NmEx
Nzk4NGUxYzFhNjU5ODlkZDA1ZmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xODQsNCArMTg0LDYg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpc2Fi
bGVTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKQogICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0
bGVtZW50T3ZlcnJpZGUoKSAtPiAoKSBBc3luYwogI2VuZGlmCisgICAgVXBkYXRlQnVuZGxlSWRl
bnRpZmllckluTmV0d29ya1Byb2Nlc3MoU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIpIC0+ICgpIEFz
eW5jCisgICAgQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpIC0+ICgpIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcAppbmRleCAwYTdkODA2NGRjODQyMDNkZGM1MGYxZDA1YmMzODgy
NmI4NjQ2MDBjLi5iNWE1ZjA0NDZlN2JiNjEyNDQ1ZGVkMDY0OWIwNjhjOWM5NjI3NzFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAKQEAgLTgwNSwzICs4MDUsMTcgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVS
ZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG8K
ICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5yZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoKTsKICNlbmRpZgogfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRs
ZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIGJ1bmRsZUlkZW50aWZpZXIsIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
RnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0
b3JlUmVmKS0+dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoV2ViS2l0Ojp0
b0ltcGwoYnVuZGxlSWRlbnRpZmllciktPnN0cmluZygpLCBbY29udGV4dCwgY29tcGxldGlvbkhh
bmRsZXJdIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7CisgICAgfSk7Cit9
CisKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3Jr
UHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0
LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
RnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0
b3JlUmVmKS0+Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhbY29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXJdIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7
CisgICAgfSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oCmluZGV4IDM1MjUyNjJmYTQxODUxMDg2NjkxN2RhZGI0NWE5
ODE5Mzg4YjExODguLjc4Nzg3MmFlMjdmOGEzYjRkMjJhN2U1OTJjOGY1YTFmOWE4NTkwY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5oCkBAIC0xNzcsNiArMTc3LDEyIEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhCiAK
IFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9t
YWlucyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKTsKIAordHlwZWRlZiB2b2lk
ICgqV0tXZWJzaXRlRGF0YVN0b3JlVXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nl
c3NGdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLU3RyaW5nUmVmIGJ1bmRsZUlkZW50aWZp
ZXIsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZp
ZXJJbk5ldHdvcmtQcm9jZXNzRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOworCit0eXBlZGVm
IHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdL
V2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0
ZURhdGFTdG9yZUNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3NGdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBiZWRiODI3MmFiZDA4ZWUxZDhlNTdiNTI4OTAwYjIwYWQyNGYzZDg3Li4x
ZjU0ODg3MTk2ZWRkNDczNWQzZDUxMGYyZWIwMTA2OWFhZTYwZTUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTE1MzcsNiArMTUzNywxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldEFwcEJv
dW5kRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpbwogI2VuZGlmCiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0
d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiYgYnVuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5l
dHdvcmtQcm9jZXNzKGJ1bmRsZUlkZW50aWZpZXIpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJCdW5kbGVJZGVudGlmaWVy
SW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6Q2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVT
U0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA4NTQ3Y2Y2M2IyODMyNjVlNDM1NWRlNzA0MDRjMWYw
MmZhN2IxZDEwLi5kYzMzNzM1NGFlNWIyZjZlZDAxNWZmOTdiOWZiMDBlNDNkOTFmMWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMjMzLDYgKzIzMyw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJv
dHRsZXJDbGllbnQKICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgdXBk
YXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXJJ
bk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6
CiAgICAgLy8gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDNlOTRk
YTcwZTNjZmQyZGNmMGI0OGNmMDA4YmNiMzQ4ODNjZTRiZDEuLjQxMzRhNDBiZGY3Y2Y5Mzk0ZTQy
MzhjMTFiMjE2MDYyYjVkMjNjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yNDg1LDQgKzI0ODUs
MjAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRBcHBCb3VuZERvbWFpbnNGb3JJVFAoY29u
c3QgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWIKIH0KICNlbmRpZgogCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFN0cmluZyBi
dW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBmb3IgKGF1dG8m
IHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCisgICAgICAgIHByb2Nlc3NQb29sLT5lbnN1
cmVOZXR3b3JrUHJvY2VzcygpLnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNz
KFdURk1vdmUoYnVuZGxlSWRlbnRpZmllciksIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworfQorCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworCisgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAg
ICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5jbGVhckJ1bmRsZUlkZW50
aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0FnZ3Jl
Z2F0b3IuY29weVJlZigpXSB7IH0pOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZGJkYTA0MTg4
YzE0YzE2NTM0NGRkNTA4NDJiNmFjOTQ0ZTBkMzkwZi4uYzY3ZDc1Yzk4NmQ4MzJlZmM0YjRmZDQ1
MzZkODc1ZTBkZjgzMjUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjk5LDcgKzI5OSw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVuc3VyZUFwcEJvdW5kRG9tYWlucyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+Jik+JiYpIGNvbnN0Owog
ICAgIHZvaWQgcmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKCk7CiAgICAgc3RhdGljIHZvaWQg
c2V0QXBwQm91bmREb21haW5zRm9yVGVzdGluZyhIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotCisgICAgdm9pZCB1cGRh
dGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhTdHJpbmcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgCiBwcml2YXRlOgogICAg
IGVudW0gY2xhc3MgRm9yY2VSZWluaXRpYWxpemF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKICAg
ICB2b2lkIGluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoRm9yY2VSZWluaXRpYWxpemF0aW9uID0g
Rm9yY2VSZWluaXRpYWxpemF0aW9uOjpObyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODE4OTk1N2VhY2FlYjdjMTdiM2I5N2E4YTU3OTU4MzUw
NmIyNmE1NS4uMjM3Mzg0OTU0NWQ2NGNkZDQ4OTRkNDFjY2UxOTdmY2YxNWNmZDg4NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDIwLTA1LTI2ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgorCisgICAgICAgIE1ha2Ugc3VyZSBidW5kbGUgaWRlbnRpZmllciB0ZXN0aW5nIG92ZXJyaWRl
IGlzIHNldCBpbiB0aGUgbmV0d29yayBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIyODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYz
NTM5MDYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNldCB0aGUgYnVuZGxlIGlkZW50aWZpZXIgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpZiBhIGxh
eW91dCB0ZXN0CisgICAgICAgIHVwZGF0ZXMgaXQuIFRoaXMgdmFsdWUgdXN1YWxseSBvbmx5IGdl
dHMgdXBkYXRlZCB3aGVuIGEgbmV3IG5ldHdvcmsKKyAgICAgICAgcHJvY2VzcyBpcyBpbml0aWFs
aXplZCwgd2hpY2ggZG9lcyBub3QgaGFwcGVuIGZvciBldmVyeSB0ZXN0LiBTbyBpdAorICAgICAg
ICBzaG91bGQgYmUgc2V0L2NsZWFyZWQgYXMgbmVlZGVkLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKwogMjAyMC0wNS0yMiAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RLXSBB
ZGQgYnViYmxld3JhcCAuLi4gd3JhcHBlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCBkMzhkODU0Yjc2MDJkZjc1NWNjNjcwZmE2NDEyNzEyZDlkMWFiMzBk
Li5jZDA5NWVlYWQ3Yzg2ZWQ4MDU4NzBjMWY0ZTcxMWQzYTEzOGJlNDhkIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzk1LDggKzc5NSwxMCBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdGlvbnMpCiAgICAgLy8gc29tZXRoaW5nIGVsc2UgZm9yIHNwZWNpZmljIHRlc3RzIHRo
YXQgbmVlZCB0byBydW4gYXQgYSBkaWZmZXJlbnQgd2luZG93IHNjYWxlLgogICAgIG1fbWFpbldl
YlZpZXctPmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoMSk7CiAgICAgCi0gICAgaWYgKCFvcHRp
b25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCkpCisgICAgaWYgKCFvcHRp
b25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVp
bml0aWFsaXplQXBwQm91bmREb21haW5zKCk7CisgICAgICAgIHVwZGF0ZUJ1bmRsZUlkZW50aWZp
ZXJJbk5ldHdvcmtQcm9jZXNzKG9wdGlvbnMuYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKTsK
KyAgICB9CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmVuc3VyZVZpZXdTdXBwb3J0c09wdGlv
bnNGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQpAQCAtMTE1NCw2ICsxMTU2LDcg
QEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAg
Y2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKICNlbmRp
ZgorICAgICAgICBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKQEAgLTM4OTQsNiArMzg5NywyMCBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoKQogICAgIFdL
V2Vic2l0ZURhdGFTdG9yZVJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucyhUZXN0Q29udHJvbGxl
cjo6d2Vic2l0ZURhdGFTdG9yZSgpKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6dXBkYXRl
QnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVu
dGlmaWVyKQoreworICAgIEluQXBwQnJvd3NlclByaXZhY3lDYWxsYmFja0NvbnRleHQgY29udGV4
dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlVXBkYXRlQnVuZGxlSWRlbnRpZmllcklu
TmV0d29ya1Byb2Nlc3MoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhidW5kbGVJZGVudGlmaWVyLnV0ZjgoKS5k
YXRhKCkpKS5nZXQoKSwgJmNvbnRleHQsIGluQXBwQnJvd3NlclByaXZhY3lWb2lkUmVzdWx0Q2Fs
bGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcygp
Cit7CisgICAgSW5BcHBCcm93c2VyUHJpdmFjeUNhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlz
KTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksICZjb250ZXh0LCBpbkFw
cEJyb3dzZXJQcml2YWN5Vm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0
LmRvbmUsIG5vVGltZW91dCk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUFkZFRlc3RPcHRpb25zKFRlc3RPcHRpb25zJikgY29uc3QKIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA0NzFlZmQ3NzVmYzg4
YmI1NjE3YjYyZDA5ZTY4MmU3Y2Y1NjdlODc1Li4zNTdlOWI0YTZlNmJhNWM3ZmI1ZmNmM2JiMGUx
Y2VlMzliNTcxN2U1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBA
IC0yNzUsNiArMjc1LDggQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJMb2FkZWRUaGlyZFBhcnR5
RG9tYWlucygpOwogICAgIHZvaWQgY2xlYXJBcHBCb3VuZFNlc3Npb24oKTsKICAgICB2b2lkIHJl
aW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpOworICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRp
ZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsKIAogICAgIFdL
QXJyYXlSZWYgb3BlblBhbmVsRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBtX29wZW5QYW5lbEZp
bGVVUkxzLmdldCgpOyB9CiAgICAgdm9pZCBzZXRPcGVuUGFuZWxGaWxlVVJMcyhXS0FycmF5UmVm
IGZpbGVVUkxzKSB7IG1fb3BlblBhbmVsRmlsZVVSTHMgPSBmaWxlVVJMczsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400288</attachid>
            <date>2020-05-26 16:45:43 -0700</date>
            <delta_ts>2020-05-27 13:09:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212288-20200526164542.patch</filename>
            <type>text/plain</type>
            <size>14811</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhlNjQ3NWE2NGNmYWIwYjMy
OWNmMzc0YTVkZDQ4MzJiNmZjNTQ1NWIuLjQ4MzIzMmFkMjNmZjM1NTcyNDNmMTQxYTI0MDgzYjA5
MWE3MDNjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDUtMjYgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIGJ1
bmRsZSBpZGVudGlmaWVyIHRlc3Rpbmcgb3ZlcnJpZGUgaXMgc2V0IGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MjI4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM1MzkwNjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB3aWxsIGZpeCBo
dHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIHRlc3RzLgorCisgICAgICAgIFNldCB0
aGUgYnVuZGxlIGlkZW50aWZpZXIgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBpZiBhIGxheW91dCB0
ZXN0CisgICAgICAgIHVwZGF0ZXMgaXQuIFRoaXMgdmFsdWUgdXN1YWxseSBvbmx5IGdldHMgdXBk
YXRlZCB3aGVuIGEgbmV3IG5ldHdvcmsKKyAgICAgICAgcHJvY2VzcyBpcyBpbml0aWFsaXplZCwg
d2hpY2ggZG9lcyBub3QgaGFwcGVuIGZvciBldmVyeSB0ZXN0LiBTbyBpdAorICAgICAgICBzaG91
bGQgYmUgc2V0L2NsZWFyZWQgYXMgbmVlZGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dXBk
YXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0
ZURhdGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5Ojp1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3Mp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisK
IDIwMjAtMDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWdyZXNzaW9uKHIyNTQ4NTkpIERPTSBzdG9yYWdlIGV2ZW50IGdldHMgZmlyZWQgYXQgdGhlIGZy
YW1lIHRoYXQgY2F1c2VkIHRoZSBzdG9yYWdlIG1vZGlmaWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1MTY0YzYzMzVhZDE4
MzU5Yjc5NDVmZTZjOWE1NTc3ZTIxMWFmYThkLi5iYzY1NjI4YWU5MzU4M2M2MGY4ZTQ0MTE4NzZk
MWQzMjE0ODM0NzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtMjc1NCw0ICsyNzU0LDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSlNDOjpN
ZXNzCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVCdW5kbGVJZGVudGlm
aWVySW5OZXR3b3JrUHJvY2Vzcyhjb25zdCBTdHJpbmcmJiBidW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Y2xlYXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJU
ZXN0aW5nT3ZlcnJpZGUoKTsKKyAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIoYnVuZGxlSWRlbnRpZmllcik7CisjZW5kaWYKKyAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdv
cmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpjbGVhckFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOworI2VuZGlmCisgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMDc1OTRjOTM4MWU4NTQxMmU4NmQw
YmYzZTMzMzZkZWYxMzhkMzZkZS4uN2IyNjEzMzUwYzNiNGQ3ZWI0MmY2MTdjOTE3NDk1ZWExOWM3
ZjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMzU1LDYgKzM1NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNz
aW9uKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAg
dm9pZCBicm9hZGNhc3RDb25zb2xlTWVzc2FnZShQQUw6OlNlc3Npb25JRCwgSlNDOjpNZXNzYWdl
U291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2
b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBw
cml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGI2
NmVhMzFhN2E3MTk3YTc2MDI4MjYxNmJiZDA1YmUwZTlhZTY5YTAuLjE2YzliMmY3NDE1MmJmOTZh
MTc5ODRlMWMxYTY1OTg5ZGQwNWZkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTg0LDQgKzE4NCw2
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaXNh
YmxlU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkKICAgICBDbGVhclNlcnZpY2VXb3JrZXJFbnRp
dGxlbWVudE92ZXJyaWRlKCkgLT4gKCkgQXN5bmMKICNlbmRpZgorICAgIFVwZGF0ZUJ1bmRsZUlk
ZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFN0cmluZyBidW5kbGVJZGVudGlmaWVyKSAtPiAoKSBB
c3luYworICAgIENsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKSAtPiAoKSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggMGE3ZDgwNjRkYzg0MjAzZGRjNTBmMWQwNWJjMzg4
MjZiODY0NjAwYy4uYjVhNWYwNDQ2ZTdiYjYxMjQ0NWRlZDA2NDliMDY4YzljOTYyNzcxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwCkBAIC04MDUsMyArODA1LDE3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
UmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
CiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVpbml0aWFsaXplQXBwQm91bmRE
b21haW5zKCk7CiAjZW5kaWYKIH0KKwordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5k
bGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBidW5kbGVJZGVudGlmaWVyLCB2b2lkKiBjb250ZXh0
LCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vz
c0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdlYktpdDo6
dG9JbXBsKGJ1bmRsZUlkZW50aWZpZXIpLT5zdHJpbmcoKSwgW2NvbnRleHQsIGNvbXBsZXRpb25I
YW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOworICAgIH0pOwor
fQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29y
a1Byb2Nlc3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29udGV4
dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vz
c0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFT
dG9yZVJlZiktPmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoW2NvbnRleHQs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQp
OworICAgIH0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCAzNTI1MjYyZmE0MTg1MTA4NjY5MTdkYWRiNDVh
OTgxOTM4OGIxMTg4Li43ODc4NzJhZTI3ZjhhM2I0ZDIyYTdlNTkyYzhmNWExZjlhODU5MGNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaApAQCAtMTc3LDYgKzE3NywxMiBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YQog
CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBCb3VuZERv
bWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKK3R5cGVkZWYgdm9p
ZCAoKldLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9j
ZXNzRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dl
YnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBidW5kbGVJZGVudGlm
aWVyLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlm
aWVySW5OZXR3b3JrUHJvY2Vzc0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKKwordHlwZWRl
ZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3Jr
UHJvY2Vzc0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzRnVuY3Rpb24g
Y29tcGxldGlvbkhhbmRsZXIpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggYmVkYjgyNzJhYmQwOGVlMWQ4ZTU3YjUyODkwMGIyMGFkMjRmM2Q4Ny4u
MWY1NDg4NzE5NmVkZDQ3MzVkM2Q1MTBmMmViMDEwNjlhYWU2MGU1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xNTM3LDYgKzE1MzcsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRBcHBC
b3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW8KICNlbmRpZgog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5l
dHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYmIGJ1bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5O
ZXR3b3JrUHJvY2VzcyhidW5kbGVJZGVudGlmaWVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyQnVuZGxlSWRlbnRpZmll
ckluTmV0d29ya1Byb2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1F
U1NBR0VfQ0hFQ0sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggODU0N2NmNjNiMjgzMjY1ZTQzNTVkZTcwNDA0YzFm
MDJmYTdiMWQxMC4uZGMzMzczNTRhZTViMmY2ZWQwMTVmZjk3YjlmYjAwZTQzZDkxZjFmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTIzMyw2ICsyMzMsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBQcm9jZXNzVGhy
b3R0bGVyQ2xpZW50CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25J
bW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHVw
ZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJCdW5kbGVJZGVudGlmaWVy
SW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiBwcml2YXRl
OgogICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAzZTk0
ZGE3MGUzY2ZkMmRjZjBiNDhjZjAwOGJjYjM0ODgzY2U0YmQxLi40MTM0YTQwYmRmN2NmOTM5NGU0
MjM4YzExYjIxNjA2MmI1ZDIzY2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjQ4NSw0ICsyNDg1
LDIwIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0QXBwQm91bmREb21haW5zRm9ySVRQKGNv
bnN0IEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFiCiB9CiAjZW5kaWYKIAordm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjp1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhTdHJpbmcg
YnVuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdh
dG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCisgICAgZm9yIChhdXRv
JiBwcm9jZXNzUG9vbCA6IHByb2Nlc3NQb29scygpKQorICAgICAgICBwcm9jZXNzUG9vbC0+ZW5z
dXJlTmV0d29ya1Byb2Nlc3MoKS51cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vz
cyhXVEZNb3ZlKGJ1bmRsZUlkZW50aWZpZXIpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJh
Y2tBZ2dyZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkKKyAg
ICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkuY2xlYXJCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2VzcyhbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dy
ZWdhdG9yLmNvcHlSZWYoKV0geyB9KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGRiZGEwNDE4
OGMxNGMxNjUzNDRkZDUwODQyYjZhYzk0NGUwZDM5MGYuLmM2N2Q3NWM5ODZkODMyZWZjNGI0ZmQ0
NTM2ZDg3NWUwZGY4MzI1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI5OSw3ICsyOTksOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBlbnN1cmVBcHBCb3VuZERvbWFpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKSBjb25zdDsK
ICAgICB2b2lkIHJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpOwogICAgIHN0YXRpYyB2b2lk
IHNldEFwcEJvdW5kRG9tYWluc0ZvclRlc3RpbmcoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLQorICAgIHZvaWQgdXBk
YXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoU3RyaW5nLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3Jr
UHJvY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIAogcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIEZvcmNlUmVpbml0aWFsaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CiAg
ICAgdm9pZCBpbml0aWFsaXplQXBwQm91bmREb21haW5zKEZvcmNlUmVpbml0aWFsaXphdGlvbiA9
IEZvcmNlUmVpbml0aWFsaXphdGlvbjo6Tm8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgxODk5NTdlYWNhZWI3YzE3YjNiOTdhOGE1Nzk1ODM1
MDZiMjZhNTUuLjIzNzM4NDk1NDVkNjRjZGQ0ODk0ZDQxY2NlMTk3ZmNmMTVjZmQ4ODYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAyMC0wNS0yNiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KKworICAgICAgICBNYWtlIHN1cmUgYnVuZGxlIGlkZW50aWZpZXIgdGVzdGluZyBvdmVycmlk
ZSBpcyBzZXQgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMjg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MzUzOTA2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZXQgdGhlIGJ1bmRsZSBpZGVudGlmaWVyIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgaWYgYSBs
YXlvdXQgdGVzdAorICAgICAgICB1cGRhdGVzIGl0LiBUaGlzIHZhbHVlIHVzdWFsbHkgb25seSBn
ZXRzIHVwZGF0ZWQgd2hlbiBhIG5ldyBuZXR3b3JrCisgICAgICAgIHByb2Nlc3MgaXMgaW5pdGlh
bGl6ZWQsIHdoaWNoIGRvZXMgbm90IGhhcHBlbiBmb3IgZXZlcnkgdGVzdC4gU28gaXQKKyAgICAg
ICAgc2hvdWxkIGJlIHNldC9jbGVhcmVkIGFzIG5lZWRlZC4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisKIDIwMjAtMDUtMjIgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrIFNES10g
QWRkIGJ1YmJsZXdyYXAgLi4uIHdyYXBwZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZDM4ZDg1NGI3NjAyZGY3NTVjYzY3MGZhNjQxMjcxMmQ5ZDFhYjMw
ZC4uY2QwOTVlZWFkN2M4NmVkODA1ODcwYzFmNGU3MTFkM2ExMzhiZTQ4ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc5NSw4ICs3OTUsMTAgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIC8vIHNvbWV0aGluZyBlbHNlIGZvciBzcGVjaWZpYyB0ZXN0cyB0
aGF0IG5lZWQgdG8gcnVuIGF0IGEgZGlmZmVyZW50IHdpbmRvdyBzY2FsZS4KICAgICBtX21haW5X
ZWJWaWV3LT5jaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKDEpOwogICAgIAotICAgIGlmICghb3B0
aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKQorICAgIGlmICghb3B0
aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7CiAgICAgICAgIHJl
aW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpOworICAgICAgICB1cGRhdGVCdW5kbGVJZGVudGlm
aWVySW5OZXR3b3JrUHJvY2VzcyhvcHRpb25zLmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7
CisgICAgfQogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjplbnN1cmVWaWV3U3VwcG9ydHNPcHRp
b25zRm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKQEAgLTExNTQsNiArMTE1Niw3
IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
IGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyVGVzdGluZ092ZXJyaWRlKCk7CiAjZW5k
aWYKKyAgICAgICAgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogICAg
IH0KIAogICAgIHJldHVybiBtX2RvbmVSZXNldHRpbmc7CkBAIC0zODk0LDYgKzM4OTcsMjAgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6cmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKCkKICAgICBX
S1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoVGVzdENvbnRyb2xs
ZXI6OndlYnNpdGVEYXRhU3RvcmUoKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0
ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllcikKK3sKKyAgICBJbkFwcEJyb3dzZXJQcml2YWN5Q2FsbGJhY2tDb250ZXh0IGNvbnRl
eHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJ
bk5ldHdvcmtQcm9jZXNzKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYnVuZGxlSWRlbnRpZmllci51dGY4KCku
ZGF0YSgpKSkuZ2V0KCksICZjb250ZXh0LCBpbkFwcEJyb3dzZXJQcml2YWN5Vm9pZFJlc3VsdENh
bGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3Mo
KQoreworICAgIEluQXBwQnJvd3NlclByaXZhY3lDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhp
cyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3Jr
UHJvY2VzcyhUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgaW5B
cHBCcm93c2VyUHJpdmFjeVZvaWRSZXN1bHRDYWxsYmFjayk7CisgICAgcnVuVW50aWwoY29udGV4
dC5kb25lLCBub1RpbWVvdXQpOworfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1BZGRUZXN0T3B0aW9ucyhUZXN0T3B0aW9ucyYpIGNvbnN0CiB7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNDcxZWZkNzc1ZmM4
OGJiNTYxN2I2MmQwOWU2ODJlN2NmNTY3ZTg3NS4uMzU3ZTliNGE2ZTZiYTVjN2ZiNWZjZjNiYjBl
MWNlZTM5YjU3MTdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApA
QCAtMjc1LDYgKzI3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTG9hZGVkVGhpcmRQYXJ0
eURvbWFpbnMoKTsKICAgICB2b2lkIGNsZWFyQXBwQm91bmRTZXNzaW9uKCk7CiAgICAgdm9pZCBy
ZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMoKTsKKyAgICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50
aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKCk7CiAKICAgICBX
S0FycmF5UmVmIG9wZW5QYW5lbEZpbGVVUkxzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuUGFuZWxG
aWxlVVJMcy5nZXQoKTsgfQogICAgIHZvaWQgc2V0T3BlblBhbmVsRmlsZVVSTHMoV0tBcnJheVJl
ZiBmaWxlVVJMcykgeyBtX29wZW5QYW5lbEZpbGVVUkxzID0gZmlsZVVSTHM7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400369</attachid>
            <date>2020-05-27 13:09:12 -0700</date>
            <delta_ts>2020-05-27 13:38:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212288-20200527130911.patch</filename>
            <type>text/plain</type>
            <size>14556</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJiNTQzNjdlYWFlOTM4YzJk
M2IxOGIxOGM1Nzk0MzFjOWMyNzA0NDYuLjdmZTk4ZWM4YmEwNDA4OWNjZWM2NGUwNzhhOGY5Y2I3
YzJiMjdiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDUtMjcgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIGJ1
bmRsZSBpZGVudGlmaWVyIHRlc3Rpbmcgb3ZlcnJpZGUgaXMgc2V0IGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MjI4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM1MzkwNjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgU2V0IHRoZSBidW5kbGUgaWRlbnRpZmllciBp
biB0aGUgbmV0d29yayBwcm9jZXNzIGlmIGEgbGF5b3V0IHRlc3QKKyAgICAgICAgdXBkYXRlcyBp
dC4gVGhpcyB2YWx1ZSB1c3VhbGx5IG9ubHkgZ2V0cyB1cGRhdGVkIHdoZW4gYSBuZXcgbmV0d29y
aworICAgICAgICBwcm9jZXNzIGlzIGluaXRpYWxpemVkLCB3aGljaCBkb2VzIG5vdCBoYXBwZW4g
Zm9yIGV2ZXJ5IHRlc3QuIFNvIGl0CisgICAgICAgIHNob3VsZCBiZSBzZXQvY2xlYXJlZCBhcyBu
ZWVkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB3aWxsIGZpeCBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIHRlc3RzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dXBkYXRl
QnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJ
ZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojp1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIw
MjAtMDUtMjYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0
aGUgZW5naW5lZXJpbmcgYnVpbGQgb24gaW50ZXJuYWwgU0RLcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1MTY0YzYzMzVhZDE4MzU5
Yjc5NDVmZTZjOWE1NTc3ZTIxMWFmYThkLi43Y2EzNjc2YmE3MWE2N2E0MWRiZjIxZWQ3OTQ0ZjEy
YTcyN2M0NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtMjc1NCw0ICsyNzU0LDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmJy
b2FkY2FzdENvbnNvbGVNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgSlNDOjpNZXNz
CiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVCdW5kbGVJZGVudGlmaWVy
KFN0cmluZyYmIGJ1bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpj
bGVhckFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllclRlc3RpbmdPdmVycmlkZSgpOworICAgIFdl
YkNvcmU6OnNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihidW5kbGVJZGVudGlmaWVyKTsK
KyNlbmRpZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OmNsZWFyQnVuZGxlSWRlbnRpZmllcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6Y2xl
YXJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJUZXN0aW5nT3ZlcnJpZGUoKTsKKyNlbmRpZgor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDA3NTk0
YzkzODFlODU0MTJlODZkMGJmM2UzMzM2ZGVmMTM4ZDM2ZGUuLmU2YmYyNDUzY2RmOWJjMGZhYTI5
N2NlZjMzMjkwNzJmNjQ2YWI3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKQEAgLTM1NSw2ICszNTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhckFwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIHZvaWQgYnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoUEFMOjpTZXNzaW9u
SUQsIEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CisgICAgdm9pZCB1cGRhdGVCdW5kbGVJZGVudGlmaWVyKFN0cmluZyYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgY2xlYXJCdW5kbGVJZGVudGlmaWVy
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYjY2ZWEzMWE3YTcxOTdhNzYwMjgyNjE2
YmJkMDViZTBlOWFlNjlhMC4uNDBjMmQ4YzZkNTNmZTUwODQxNmJmNDUxOGQ1NWRjMzQ5YmRiN2Jl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xODQsNCArMTg0LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpc2FibGVTZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnQoKQogICAgIENsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGUoKSAtPiAo
KSBBc3luYwogI2VuZGlmCisgICAgVXBkYXRlQnVuZGxlSWRlbnRpZmllcihTdHJpbmcgYnVuZGxl
SWRlbnRpZmllcikgLT4gKCkgQXN5bmMKKyAgICBDbGVhckJ1bmRsZUlkZW50aWZpZXIoKSAtPiAo
KSBBc3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggMGE3ZDgwNjRkYzg0MjAzZGRjNTBmMWQwNWJj
Mzg4MjZiODY0NjAwYy4uYjVhNWYwNDQ2ZTdiYjYxMjQ0NWRlZDA2NDliMDY4YzljOTYyNzcxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwCkBAIC04MDUsMyArODA1LDE3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlUmVpbml0aWFsaXplQXBwQm91bmREb21haW5zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvCiAgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+cmVpbml0aWFsaXplQXBwQm91
bmREb21haW5zKCk7CiAjZW5kaWYKIH0KKwordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YVN0b3JlUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBidW5kbGVJZGVudGlmaWVyLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJv
Y2Vzc0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRh
dGFTdG9yZVJlZiktPnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdlYktp
dDo6dG9JbXBsKGJ1bmRsZUlkZW50aWZpZXIpLT5zdHJpbmcoKSwgW2NvbnRleHQsIGNvbXBsZXRp
b25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHQpOworICAgIH0p
OworfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0
d29ya1Byb2Nlc3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29u
dGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJv
Y2Vzc0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRh
dGFTdG9yZVJlZiktPmNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoW2NvbnRl
eHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRl
eHQpOworICAgIH0pOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCAzNTI1MjYyZmE0MTg1MTA4NjY5MTdkYWRi
NDVhOTgxOTM4OGIxMTg4Li43ODc4NzJhZTI3ZjhhM2I0ZDIyYTdlNTkyYzhmNWExZjlhODU5MGNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuaApAQCAtMTc3LDYgKzE3NywxMiBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0
YQogCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxpemVBcHBCb3Vu
ZERvbWFpbnMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiAKK3R5cGVkZWYg
dm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhX
S1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBidW5kbGVJZGVu
dGlmaWVyLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVVcGRhdGVCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2Vzc0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKKwordHlw
ZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3
b3JrUHJvY2Vzc0Z1bmN0aW9uKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOworV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vz
cyhXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dl
YnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzRnVuY3Rp
b24gY29tcGxldGlvbkhhbmRsZXIpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggYmVkYjgyNzJhYmQwOGVlMWQ4ZTU3YjUyODkwMGIyMGFkMjRmM2Q4
Ny4uYTllNGZlZTQ5NWU1MzQ5NjU5YjVkOTU1NjhlMWI5N2NjZWY0YTU3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNTM3LDYgKzE1MzcsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRB
cHBCb3VuZERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW8KICNlbmRp
ZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6VXBkYXRlQnVuZGxlSWRlbnRpZmllcihidW5kbGVJZGVudGlmaWVy
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmNsZWFyQnVuZGxlSWRlbnRpZmllcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6Q2xlYXJCdW5kbGVJZGVudGlmaWVyKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdF
X0NIRUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCmluZGV4IDg1NDdjZjYzYjI4MzI2NWU0MzU1ZGU3MDQwNGMxZjAyZmE3
YjFkMTAuLjA0ZTk5OTY1M2RiYjU0YjEwMmI0OWU3OTFmZmZkMWNlNWJlMWZlOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCkBAIC0yMzMsNiArMjMzLDggQEAgcHVibGljOgogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxl
ckNsaWVudAogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5l
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVC
dW5kbGVJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZpZXIoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogcHJpdmF0ZToKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKaW5kZXggM2U5NGRhNzBlM2NmZDJkY2YwYjQ4Y2YwMDhiY2IzNDg4M2NlNGJkMS4u
MGY1NTZhNGUwYTBkMDE1ZTY3ZDg4ZWQ3MDk4NDJhZmE2ZGM0MjZhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKQEAgLTI0ODUsNCArMjQ4NSwyMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldEFwcEJv
dW5kRG9tYWluc0ZvcklUUChjb25zdCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYgogfQogI2Vu
ZGlmCiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6dXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0
d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisKKyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkp
CisgICAgICAgIHByb2Nlc3NQb29sLT5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnVwZGF0ZUJ1bmRs
ZUlkZW50aWZpZXIoYnVuZGxlSWRlbnRpZmllciwgW2NhbGxiYWNrQWdncmVnYXRvciA9IGNhbGxi
YWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6Y2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3Jl
Z2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisKKyAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpCisg
ICAgICAgIHByb2Nlc3NQb29sLT5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLmNsZWFyQnVuZGxlSWRl
bnRpZmllcihbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYo
KV0geyB9KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGRiZGEwNDE4OGMxNGMxNjUzNDRkZDUw
ODQyYjZhYzk0NGUwZDM5MGYuLjk2NGM2MzE1ZTM4ZjVlMGEwMzAzZmViY2U0NWIxZTk3NTA1NGYw
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI5OSw3ICsyOTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBl
bnN1cmVBcHBCb3VuZERvbWFpbnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0
PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKSBjb25zdDsKICAgICB2b2lkIHJlaW5p
dGlhbGl6ZUFwcEJvdW5kRG9tYWlucygpOwogICAgIHN0YXRpYyB2b2lkIHNldEFwcEJvdW5kRG9t
YWluc0ZvclRlc3RpbmcoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLQorICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRp
ZmllckluTmV0d29ya1Byb2Nlc3MoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3Mo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICAKIHByaXZhdGU6CiAgICAgZW51bSBj
bGFzcyBGb3JjZVJlaW5pdGlhbGl6YXRpb24gOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQg
aW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucyhGb3JjZVJlaW5pdGlhbGl6YXRpb24gPSBGb3JjZVJl
aW5pdGlhbGl6YXRpb246Ok5vKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBhOWM0NjkxMDcxYzEzZDFjMGM3ODg3NmQyZmU0NGQzYTFmZjMyMDE4
Li41ZWY2OWVmOGIyNGVhZjBkNjc1NzM3MzJlMWU4NzY0ZWZjN2ZkOGMwIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MjAtMDUtMjcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBzdXJlIGJ1bmRsZSBpZGVudGlmaWVyIHRlc3Rpbmcgb3ZlcnJpZGUgaXMgc2V0
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjI4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM1MzkwNjE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgU2V0IHRoZSBi
dW5kbGUgaWRlbnRpZmllciBpbiB0aGUgbmV0d29yayBwcm9jZXNzIGlmIGEgbGF5b3V0IHRlc3QK
KyAgICAgICAgdXBkYXRlcyBpdC4gVGhpcyB2YWx1ZSB1c3VhbGx5IG9ubHkgZ2V0cyB1cGRhdGVk
IHdoZW4gYSBuZXcgbmV0d29yaworICAgICAgICBwcm9jZXNzIGlzIGluaXRpYWxpemVkLCB3aGlj
aCBkb2VzIG5vdCBoYXBwZW4gZm9yIGV2ZXJ5IHRlc3QuIFNvIGl0CisgICAgICAgIHNob3VsZCBi
ZSBzZXQvY2xlYXJlZCBhcyBuZWVkZWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdl
YlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjp1cGRhdGVC
dW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oOgorCiAyMDIwLTA1LTI2ICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bV0syXSBVc2UgR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIgZm9yIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIG1vZGUK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjcxNWZkMjJj
OGFhNzk4YzY1MzMzZTZiMTNjNTE5MTJjNWYxZDg2OS4uZTY2OTczYjc0NWRlZThiYWNmNzE3Y2Q4
MjZjYmE4N2NiZmE4ZjQ5OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTc5NSw4ICs3OTUsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2Vi
Vmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWV0
aGluZyBlbHNlIGZvciBzcGVjaWZpYyB0ZXN0cyB0aGF0IG5lZWQgdG8gcnVuIGF0IGEgZGlmZmVy
ZW50IHdpbmRvdyBzY2FsZS4KICAgICBtX21haW5XZWJWaWV3LT5jaGFuZ2VXaW5kb3dTY2FsZUlm
TmVlZGVkKDEpOwogICAgIAotICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIuaXNFbXB0eSgpKQorICAgIGlmICghb3B0aW9ucy5hcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIuaXNFbXB0eSgpKSB7CiAgICAgICAgIHJlaW5pdGlhbGl6ZUFwcEJvdW5kRG9tYWlucygp
OworICAgICAgICB1cGRhdGVCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhvcHRpb25z
LmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CisgICAgfQogfQogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjplbnN1cmVWaWV3U3VwcG9ydHNPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0SW52b2Nh
dGlvbiYgdGVzdCkKQEAgLTExNjQsNiArMTE2Niw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJl
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGNsZWFyQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyVGVzdGluZ092ZXJyaWRlKCk7CiAjZW5kaWYKKyAgICAgICAgY2xlYXJCdW5kbGVJZGVu
dGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogICAgIH0KIAogICAgIHJldHVybiBtX2RvbmVSZXNl
dHRpbmc7CkBAIC0zOTA0LDYgKzM5MDcsMjAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVpbml0
aWFsaXplQXBwQm91bmREb21haW5zKCkKICAgICBXS1dlYnNpdGVEYXRhU3RvcmVSZWluaXRpYWxp
emVBcHBCb3VuZERvbWFpbnMoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSk7CiB9
CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQ
cm9jZXNzKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKK3sKKyAgICBJbkFwcEJyb3dz
ZXJQcml2YWN5Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURh
dGFTdG9yZVVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFRlc3RDb250cm9s
bGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoYnVuZGxlSWRlbnRpZmllci51dGY4KCkuZGF0YSgpKSkuZ2V0KCksICZjb250ZXh0LCBp
bkFwcEJyb3dzZXJQcml2YWN5Vm9pZFJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250
ZXh0LmRvbmUsIG5vVGltZW91dCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFyQnVu
ZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKQoreworICAgIEluQXBwQnJvd3NlclByaXZh
Y3lDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
Q2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcyhUZXN0Q29udHJvbGxlcjo6d2Vi
c2l0ZURhdGFTdG9yZSgpLCAmY29udGV4dCwgaW5BcHBCcm93c2VyUHJpdmFjeVZvaWRSZXN1bHRD
YWxsYmFjayk7CisgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCiAj
aWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGRUZXN0
T3B0aW9ucyhUZXN0T3B0aW9ucyYpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKaW5kZXggNDcxZWZkNzc1ZmM4OGJiNTYxN2I2MmQwOWU2ODJlN2NmNTY3ZTg3
NS4uMzU3ZTliNGE2ZTZiYTVjN2ZiNWZjZjNiYjBlMWNlZTM5YjU3MTdlNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjc1LDYgKzI3NSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyTG9hZGVkVGhpcmRQYXJ0eURvbWFpbnMoKTsKICAgICB2b2lkIGNsZWFy
QXBwQm91bmRTZXNzaW9uKCk7CiAgICAgdm9pZCByZWluaXRpYWxpemVBcHBCb3VuZERvbWFpbnMo
KTsKKyAgICB2b2lkIHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcik7CisgICAgdm9pZCBjbGVhckJ1bmRsZUlkZW50aWZp
ZXJJbk5ldHdvcmtQcm9jZXNzKCk7CiAKICAgICBXS0FycmF5UmVmIG9wZW5QYW5lbEZpbGVVUkxz
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVuUGFuZWxGaWxlVVJMcy5nZXQoKTsgfQogICAgIHZvaWQg
c2V0T3BlblBhbmVsRmlsZVVSTHMoV0tBcnJheVJlZiBmaWxlVVJMcykgeyBtX29wZW5QYW5lbEZp
bGVVUkxzID0gZmlsZVVSTHM7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>