<?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>237160</bug_id>
          
          <creation_ts>2022-02-24 14:39:49 -0800</creation_ts>
          <short_desc>REGRESSION(r290356-r290351?): [ iOS EWS ] 3 imported/w3c/web-platform-tests/service-workers/service-worker/* tests are constant text failures.</short_desc>
          <delta_ts>2022-06-23 15:33:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237161</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=237158</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=237432</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dawn Morningstar">Morningstar</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>jenner</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845768</commentid>
    <comment_count>0</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-24 14:39:49 -0800</bug_when>
    <thetext>imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html 
imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker.tentative.https.html
imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https.html

HISTORY:
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Ffetch-request-no-freshness-headers.https.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fpartitioned-service-worker-getRegistrations.tentative.https.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fpartitioned-service-worker.tentative.https.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845769</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 14:40:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/89440067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845772</commentid>
    <comment_count>2</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-24 14:43:22 -0800</bug_when>
    <thetext>Failure was reproducible at iOS15 Production TOT - r290435.

Regression range appears to be r290356-r290351.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845775</commentid>
    <comment_count>3</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-24 14:50:40 -0800</bug_when>
    <thetext>Marking expect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845780</commentid>
    <comment_count>4</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-24 14:52:42 -0800</bug_when>
    <thetext>(In reply to Matteo Flores from comment #3)
&gt; Marking expect

Marking expectations since these tests are affecting ews negatively.*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845784</commentid>
    <comment_count>5</comment_count>
      <attachid>453143</attachid>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-24 15:03:11 -0800</bug_when>
    <thetext>Created attachment 453143
expectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845790</commentid>
    <comment_count>6</comment_count>
      <attachid>453143</attachid>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:08:24 -0800</bug_when>
    <thetext>Comment on attachment 453143
expectations

Clearing flags on attachment: 453143

Committed r290469 (247768@trunk): &lt;https://commits.webkit.org/247768@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845792</commentid>
    <comment_count>7</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:09:07 -0800</bug_when>
    <thetext>*** Bug 237161 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845794</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:09:26 -0800</bug_when>
    <thetext>*** Bug 237162 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845795</commentid>
    <comment_count>9</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:10:58 -0800</bug_when>
    <thetext>Since all three of these appear to go together, I have marked my bugs as duplicates. Though, expectations were still landed on them here:
https://trac.webkit.org/changeset/290466/webkit

and 

https://trac.webkit.org/changeset/290468/webkit

So when this is resolved, those expectations will need to be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847413</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 08:21:49 -0800</bug_when>
    <thetext>The only meaningful revision that could be related is https://trac.webkit.org/changeset/290352/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847416</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 08:26:07 -0800</bug_when>
    <thetext>Diff 1:
--- /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt
+++ /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-actual.txt
@@ -1,4 +1,4 @@
 
 PASS Verify matchAll() with window client type
-FAIL Verify matchAll() with {window, sharedworker, worker} client types promise_test: Unhandled rejection with value: object &quot;TypeError: null is not an object (evaluating &apos;w.port.onmessage = _ =&gt; resolve(w)&apos;)&quot;
+FAIL Verify matchAll() with {window, sharedworker, worker} client types assert_equals: result count expected 1 but got 0
 

Diff 2:
--- /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker.tentative.https-expected.txt
+++ /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker.tentative.https-actual.txt
@@ -1,6 +1,6 @@
 The 3p iframe&apos;s postMessage:
-3p iframe&apos;s has_pending: false source: From3pFrame. 1p iframe&apos;s has_pending: true source: From1pFrame
+3p iframe&apos;s has_pending: false source: From3pFrame.
 
 
-PASS Services workers under different top-level sites are partitioned.
+FAIL Services workers under different top-level sites are partitioned. assert_equals: The 1p frames were serviced by different service workers. expected 0.2187869892862967 but got 0.9404173978803455


Diff 3:
--- /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https-expected.txt
+++ /Volumes/Data/worker/ios-simulator-15-debug-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https-actual.txt
@@ -1,4 +1,4 @@
 This test loads a SW in a first-party context and gets the SW&apos;s (randomly) generated ID. It does the same thing for the SW but in a third-party context and then confirms that the IDs are different.
 
-PASS ServiceWorker&apos;s getRegistration() is partitioned
+FAIL ServiceWorker&apos;s getRegistration() is partitioned assert_true: 1p SW didn&apos;t shutdown expected true got false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847417</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 08:26:42 -0800</bug_when>
    <thetext>The first diff doesn&apos;t really look like a regression but the other 2 look more concerning. I will investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847426</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 08:39:09 -0800</bug_when>
    <thetext>FYI, if you go to:
https://wpt.live/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https.html
https://wpt.live/service-workers/service-worker/partitioned-service-worker-getRegistrations.tentative.https.html

in Shipping Safari (on macOS), you&apos;ll see that they were already flaky. They fail on first load then succeed on reload (or if the service worker is already running).

I think my patch at r290352 just made this more obvious and we&apos;re now failing more consistently. Still worth investigating though. I think this means we&apos;re failing to implement part of the spec and somehow we were getting lucky and still passing in test in the context of our layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847498</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 10:44:29 -0800</bug_when>
    <thetext>Ok, so here is what seems to be happening (I looked at partitioned-service-worker-getRegistrations.tentative.https.html but I am almost certain the issue is the same for the other one).

The test relies on an ID js variable that lives inside the service worker. The test expects this ID to not change during the execution of the test.

The test initially launches a service worker for its origin. Thanks to my change in r290352, we now run this service worker in the same WebProcess as the test (better for perf and memory usage).
The issue is that the test then loads another origin (in an iframe and in a new window). As a result, WebProcessProxy::didStartProvisionalLoadForMainFrame(), we determine that the WebContent process is no longer &quot;origin-clean&quot; (it has loaded more than one eTLD+1). When this happens, we have logic to terminate the service worker that&apos;s inside the current process and relaunch it is a new &quot;origin-clean&quot; process.

Because we relaunch the service worker, the ID variable changes and it confuses the test.

Technically, we could say that the test is wrong to assume the service worker will not exit/relaunch during the execution of the test, since service workers can famously be killed at almost any point.
However, the test is relying on FetchEvent.waitUntil() (with a promise that it doesn&apos;t resolve until the very end of the test). Per the specification, I believe we&apos;re not supposed to exit service workers that have pending events.

So while r290352 made the issue obvious, this is not really a regression from r290352. We were getting lucky before and the service worker was launching in another WebContent process (likely a dedicated one) from the beginning. As a result, the service worker would not relaunch when the test would start loading different origins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847581</commentid>
    <comment_count>15</comment_count>
      <attachid>453650</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 12:55:06 -0800</bug_when>
    <thetext>Created attachment 453650
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847621</commentid>
    <comment_count>16</comment_count>
      <attachid>453662</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 14:43:03 -0800</bug_when>
    <thetext>Created attachment 453662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847624</commentid>
    <comment_count>17</comment_count>
      <attachid>453663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-02 14:51:18 -0800</bug_when>
    <thetext>Created attachment 453663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847770</commentid>
    <comment_count>18</comment_count>
      <attachid>453663</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 23:55:06 -0800</bug_when>
    <thetext>Comment on attachment 453663
Patch

For shared workers, I would tend to use a different process:
- this is slightly better from a security point of view.
- web sites may start to rely on the 10 seconds delay for shared worker which might become flaky behavior.
- we do not have the same launch speed requirement for shared workers as we have for service workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847867</commentid>
    <comment_count>19</comment_count>
      <attachid>453663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-03 07:03:36 -0800</bug_when>
    <thetext>Comment on attachment 453663
Patch

Let’s discuss the shared workers separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847868</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-03 07:04:40 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 453663 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847874</commentid>
    <comment_count>21</comment_count>
      <attachid>453733</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-03 07:21:43 -0800</bug_when>
    <thetext>Created attachment 453733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847902</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-03 08:10:47 -0800</bug_when>
    <thetext>Committed r290776 (248020@main): &lt;https://commits.webkit.org/248020@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453733.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851389</commentid>
    <comment_count>23</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2022-03-15 10:58:55 -0700</bug_when>
    <thetext>After the changes in https://github.com/WebKit/WebKit/commit/2fe065c2c83cfd99bcad7214e74ac72c6a49a4e6

two of the tests are now working again. but imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html is now broken on Mac out and still partially flaky on iOS

History:
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fpartitioned-service-worker.tentative.https.html

diff:
--- /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt
+++ /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-actual.txt
@@ -1,3 +1,3 @@
 
-PASS The headers of FetchEvent shouldn&apos;t contain freshness headers.
+FAIL The headers of FetchEvent shouldn&apos;t contain freshness headers. assert_false: if-none-match header must not be set in the FetchEvent&apos;s request. (url = https://localhost:9443/service-workers/service-worker/resources/fetch-request-no-freshness-headers-script.py) expected false got true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852168</commentid>
    <comment_count>24</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 01:03:03 -0700</bug_when>
    <thetext>Alone the issue does not reproduce for LayoutTests/imported/w3c/web-platform-tests/service-
workers/service-worker/fetch-request-no-freshness-headers.https.html.
But it reproduces when running LayoutTests/imported/w3c/web-platform-tests/service-
workers/service-worker/fetch-request-no-freshness-headers.https.html and imported/w3c/web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html together.

When run alone, the service worker is in the same process as the test page and the same memory cache singleton is used. In that case, because we have a check that service worker identifiers do not match, we do not reuse the memory cache.

When the two tests are run, the service worker is in its own process and the memory cache kicks in for the web page. This adds the If-None-Match header before sending it to the service worker which will see this header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852172</commentid>
    <comment_count>25</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 01:16:16 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852173</commentid>
    <comment_count>26</comment_count>
      <attachid>454939</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-17 01:16:20 -0700</bug_when>
    <thetext>Created attachment 454939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852718</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-18 08:09:55 -0700</bug_when>
    <thetext>Committed r291485 (248599@main): &lt;https://commits.webkit.org/248599@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454939.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877935</commentid>
    <comment_count>28</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-06-23 15:33:57 -0700</bug_when>
    <thetext>*** Bug 237158 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453143</attachid>
            <date>2022-02-24 15:03:11 -0800</date>
            <delta_ts>2022-03-02 12:55:06 -0800</delta_ts>
            <desc>expectations</desc>
            <filename>bug-237160-20220224170310.patch</filename>
            <type>text/plain</type>
            <size>1676</size>
            <attacher name="Dawn Morningstar">Morningstar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDY4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTVlODIzZmU4ZTE3YzQ3YTRhNmVl
MjhlZDA4YTdiMTZkNTQ4MjFiMC4uYjA3ZGIzNjU1ZDQ0N2ZhYWI3MzIzOWRlMjFhMWVjNGNjYTMw
N2M2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAyLTI0ICBNYXR0ZW8gRmxvcmVzICA8
bWF0dGVvX2Zsb3Jlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjkwMzU2LXIy
OTAzNTE/KTogWyBpT1MxNSBdIDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvKiB0ZXN0cyBhcmUgY29uc3RhbnQgdGV4dCBmYWls
dXJlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NzE2MAorCisgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMi0yNCAgUm9iZXJ0IEplbm5l
ciAgPEplbm5lckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjkwMzUxLXIyOTAz
NTY/KTogWyBpT1MgRVdTIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGFydGl0aW9uZWQtc2VydmljZS13b3JrZXItZ2V0UmVn
aXN0cmF0aW9ucy50ZW50YXRpdmUuaHR0cHMuaHRtbCBpcyBhIGNvbnN0YW50IHRleHQgZmFpbHVy
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2Y2Y2MDYw
YzljNTcxMmQ3MGYxMDc0NDA4Nzc4ODkxMzU0NGI1YjI2Li5hZjExMDEwYmQzZDE1MjA1MzBlZWE4
YTZkZGU3OGEzY2RjNGQyZGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjE4OCw2ICsyMTg4LDggQEAgd2Via2l0Lm9yZy9iLzE1MjQ0MiBmYXN0L3Nj
cm9sbGluZy9ydGwtcG9pbnQtaW4taWZyYW1lLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9i
LzE1MjI4MiBjc3MzL2ZpbHRlcnMvY29tcG9zaXRlZC1kdXJpbmctdHJhbnNpdGlvbi1sYXllcnRy
ZWUuaHRtbCBbIEZhaWx1cmUgXQogCit3ZWJraXQub3JnL2IvMjM3MTYwIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BhcnRpdGlv
bmVkLXNlcnZpY2Utd29ya2VyLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgRmFpbHVyZSBdCisKIHdl
YmtpdC5vcmcvYi8xNTI5MzUgZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLXBvc2l0aW9uLW9uLXJlbG9h
ZC1ydGwuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTUzMzcxIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2dldHJlc3BvbnNlaGVhZGVyLWNodW5rZWQtdHJhaWxl
ci5odG0gWyBQYXNzIEZhaWx1cmUgXQo=
</data>
<flag name="commit-queue"
          id="480485"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453650</attachid>
            <date>2022-03-02 12:55:06 -0800</date>
            <delta_ts>2022-03-02 14:42:59 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>237160_service_worker_relaunch_fix_wip.patch</filename>
            <type>text/plain</type>
            <size>18772</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzdiYmQ2MDhk
ZjVlLi5iNDk2MzQ3YzZiNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTg4LDggKzIxODgsNiBAQCB3ZWJraXQub3JnL2IvMTUyNDQyIGZhc3Qvc2Ny
b2xsaW5nL3J0bC1wb2ludC1pbi1pZnJhbWUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2Iv
MTUyMjgyIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFuc2l0aW9uLWxheWVydHJl
ZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzcxNjAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGFydGl0aW9u
ZWQtc2VydmljZS13b3JrZXIudGVudGF0aXZlLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Vi
a2l0Lm9yZy9iLzE1MjkzNSBmYXN0L3Njcm9sbGluZy9zY3JvbGwtcG9zaXRpb24tb24tcmVsb2Fk
LXJ0bC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNTMzNzEgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZ2V0cmVzcG9uc2VoZWFkZXItY2h1bmtlZC10cmFpbGVy
Lmh0bSBbIFBhc3MgRmFpbHVyZSBdCkBAIC0zNTA0LDYgKzM1MDIsMyBAQCB3ZWJraXQub3JnL2Iv
MjM2Nzk0IGVkaXRpbmcvc3BlbGxpbmcvZWRpdGluZy13b3JkLXdpdGgtbWFya2VyLTIuaHRtbCBb
IFBhc3MgQ3JhcwogCiB3ZWJraXQub3JnL2IvMjM3MTU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDQ5Lmh0bWwgWyBQYXNzIENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzIzNzE2MSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLmh0dHBzLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQotCi13ZWJraXQub3JnL2IvMjM3MTYyIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BhcnRpdGlvbmVkLXNlcnZpY2Ut
d29ya2VyLWdldFJlZ2lzdHJhdGlvbnMudGVudGF0aXZlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggZGI2Mjc3OTA3MjUyLi5m
YWMyY2JjMjQzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC03MzYsNiArNzM2LDE2IEBAIHZvaWQgU1dTZXJ2ZXI6OmNv
bnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIGNvbnRl
eHRDb25uCiAgICAgfQogfQogCit2b2lkIFNXU2VydmVyOjp0ZXJtaW5hdGVDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21h
aW4sIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQoreworICAgIC8vIEZJWE1F
OiBXZSBjb3VsZCBjb25zaWRlciBzaHV0dGluZyBkb3duIHNlcnZpY2Ugd29ya2VycyBtb3JlIGFn
Z3Jlc3NpdmVseSBidXQgd2UnZCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgc2VydmljZSB3b3JrZXIg
aXMgYWN0dWFsbHkKKyAgICAvLyBpZGxlIChlLmcuIG5vIHBlbmRpbmcgZXZlbnRzKS4KKyAgICBh
dXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IGNvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVE
b21haW4ocmVnaXN0cmFibGVEb21haW4pOworICAgIGlmICghY29udGV4dENvbm5lY3Rpb24gfHwg
Y29udGV4dENvbm5lY3Rpb24tPndlYlByb2Nlc3NJZGVudGlmaWVyKCkgIT0gcHJvY2Vzc0lkZW50
aWZpZXIpCisgICAgICAgIHJldHVybjsKKyAgICBjb250ZXh0Q29ubmVjdGlvbi0+dGVybWluYXRl
V2hlblBvc3NpYmxlKCk7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YShj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiB7CiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSghZGF0YS5sb2FkZWRGcm9tRGlzaywgIldvcmtlcnMgd2UganVzdCByZWFkIGZyb20g
ZGlzayBzaG91bGQgb25seSBiZSBsYXVuY2hlZCBhcyBuZWVkZWQiKTsKQEAgLTEwMzYsNyArMTA0
Niw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0
IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTCiAKICAgICAgICAgICAgIG1fY2xpZW50SWRl
bnRpZmllcnNQZXJPcmlnaW4ucmVtb3ZlKGNsaWVudE9yaWdpbik7CiAgICAgICAgIH0pOwotICAg
ICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lci0+c3RhcnRP
bmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgJiYgIU1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgJiYgIWRpZFVu
cmVnaXN0ZXIgPyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA6IDBfcyk7CisgICAgICAgIGF1dG8q
IGNvbnRleHRDb25uZWN0aW9uID0gY29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFp
bihjbGllbnRSZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGV4dENv
bm5lY3Rpb25CZVRlcm1pbmF0ZWRXaGVuUG9zc2libGUgPSBjb250ZXh0Q29ubmVjdGlvbiAmJiBj
b250ZXh0Q29ubmVjdGlvbi0+c2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlKCk7CisgICAgICAg
IGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyLT5zdGFydE9uZVNo
b3QobV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCAmJiAhTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSAmJiAhc2hvdWxkQ29u
dGV4dENvbm5lY3Rpb25CZVRlcm1pbmF0ZWRXaGVuUG9zc2libGUgJiYgIWRpZFVucmVnaXN0ZXIg
PyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA6IDBfcyk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhl
IGFwcC1ib3VuZCB2YWx1ZSBjaGFuZ2VkIGFmdGVyIHRoaXMgY2xpZW50IHdhcyByZW1vdmVkLCB3
ZSBrbm93IGl0IHdhcyB0aGUgb25seSBhcHAtYm91bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBhZmQ0ZjgzMDE3NWEuLjcxMzll
ZjI0MDRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuaApAQCAtMTc5LDYgKzE3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdvcmtlckNv
bnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJik7CiAgICAgdm9pZCBtYXRjaEFsbChTV1Nl
cnZlcldvcmtlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2
aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7CiAgICAgc3RkOjpvcHRpb25hbDxF
eGNlcHRpb25EYXRhPiBjbGFpbShTV1NlcnZlcldvcmtlciYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgdGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBQcm9jZXNzSWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2ZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IGMwNTZmNjQ4ZGRhMC4uZGM2NTRmODA5NDcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTUxLDYgKzUxLDEwIEBA
IHB1YmxpYzoKIAogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCisgICAgLy8gVGhpcyBm
bGFnIGdldHMgc2V0IHdoZW4gdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgaXMgbm8gbG9uZ2Vy
IGNsZWFuIChiZWNhdXNlIGl0IGhhcyBsb2FkZWQgc2V2ZXJhbCBlVExEKzFzKS4KKyAgICBib29s
IHNob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVGVy
bWluYXRlV2hlblBvc3NpYmxlOyB9CisgICAgdm9pZCB0ZXJtaW5hdGVXaGVuUG9zc2libGUoKSB7
IG1fc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlID0gdHJ1ZTsgfQorCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gdGhlIFNXIGhvc3QgcHJvY2VzcwogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2Vydmlj
ZVdvcmtlckNvbnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgU2Vy
dmljZVdvcmtlckRhdGEmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9k
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpID0gMDsKQEAg
LTYwLDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlU2NyaXB0c1Rv
RGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3Qg
SGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZmlyZVB1c2hFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjYWxsYmFjaykgPSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKICAgICAvLyBNZXNzYWdlcyBiYWNrIGZyb20gdGhl
IFNXIGhvc3QgcHJvY2VzcwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZh
aWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+JiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
CkBAIC04OCw2ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVnaXN0cmFibGVEb21haW4gbV9yZWdp
c3RyYWJsZURvbWFpbjsKICAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyPiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBib29sIG1fc2hv
dWxkVGVybWluYXRlV2hlblBvc3NpYmxlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggOTkwZWM3ZmI4MmY2Li45M2FhMTc4YzVhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01Miw2ICs1Miw3IEBA
CiAjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0b3JlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJSZW1vdGVXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJT
dGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VNYW5hZ2VyU2V0LmgiCkBAIC02MSw2ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVk
V29ya2VyU2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFGZXRjaE9wdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycy5oIgpAQCAtMjA3OSw2ICsyMDgxLDI0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBy
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxl
CiAgICAgcHJlcGFyZVRvU3VzcGVuZCh0cnVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRD
b25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVn
aXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyKQoreworICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOwor
ICAgIGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoKHdvcmtlclR5
cGUpIHsKKyAgICBjYXNlIFJlbW90ZVdvcmtlclR5cGU6OlNlcnZpY2VXb3JrZXI6CisgICAgICAg
IGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24tPnN3U2VydmVyKCkpCisgICAgICAgICAgICBz
d1NlcnZlci0+dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUocmVnaXN0cmFi
bGVEb21haW4sIHByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBS
ZW1vdGVXb3JrZXJUeXBlOjpTaGFyZWRXb3JrZXI6CisgICAgICAgIGlmIChhdXRvKiBzaGFyZWRX
b3JrZXJTZXJ2ZXIgPSBzZXNzaW9uLT5zaGFyZWRXb3JrZXJTZXJ2ZXIoKSkKKyAgICAgICAgICAg
IHNoYXJlZFdvcmtlclNlcnZlci0+dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2li
bGUocmVnaXN0cmFibGVEb21haW4sIHByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wg
aXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9
JWQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjg5YmY5N2VkZWRkLi5hN2I4M2UzYjNh
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTEwNyw2ICsxMDcsNyBAQCBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBQ
cm9jZXNzQXNzZXJ0aW9uOwogY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogZW51bSBj
bGFzcyBDYWxsRG93bmxvYWREaWRTdGFydCA6IGJvb2w7CitlbnVtIGNsYXNzIFJlbW90ZVdvcmtl
clR5cGUgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MgOiBi
b29sOwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzU3RhdHVzIDogdWludDhfdDsKIGVudW0gY2xh
c3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbiA6IHVpbnQ4X3Q7CkBAIC00NjUsNiArNDY2LDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25z
dCBWZWN0b3I8dWludDhfdD4mIGlkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAgICB2b2lkIHRlcm1p
bmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtl
clR5cGUsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYs
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtRmx1c2hDb29r
aWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAog
ICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IDExZDY1Y2IyMjFlMS4uNzQ5OTI1N2IzNDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTIwNyw2ICsyMDcsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4s
IFN0cmluZyBrZXksIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYK
IAorICAgIFRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxl
KGVudW06Ym9vbCBXZWJLaXQ6OlJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVE
b21haW4sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKTsKKwog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdl
PiBtZXNzYWdlcykgQXN5bmMKICAgICBQcm9jZXNzUHVzaE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQdXNoTWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4g
KGJvb2wgZGlkU3VjY2VlZCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaAppbmRleCBkOTViN2NlODU0NjkuLmI1NThjZDdmMzNlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAt
NTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOwogY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOwogCi1jbGFzcyBXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246IHB1YmxpYyBXZWJDb3JlOjpTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gZmlu
YWw6IHB1YmxpYyBXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlciYp
OwogICAgIH5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKTsKQEAgLTc4LDcgKzc4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25s
b2FkVGFzayYpOwogCi0gICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lk
ZW50aWZpZXIoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9j
ZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdv
cmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAppbmRleCA0NWU2OTdi
YTU0NzguLjU4MWE2ZThlNDljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIu
Y3BwCkBAIC0yNTksNCArMjU5LDE0IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyOjpwb3N0
RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VySWRlCiAgICAgfSk7
CiB9CiAKK3ZvaWQgV2ViU2hhcmVkV29ya2VyU2VydmVyOjp0ZXJtaW5hdGVDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0
cmFibGVEb21haW4sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
KQoreworICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gY29udGV4dENvbm5lY3Rpb25Gb3JS
ZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CisgICAgUkVMRUFTRV9MT0coU2hh
cmVkV29ya2VyLCAiV2ViU2hhcmVkV29ya2VyU2VydmVyOjp0ZXJtaW5hdGVDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZTogcHJvY2Vzc0lkZW50aWZpZXI9JSIgUFJJdTY0ICIsIGNvbnRleHRD
b25uZWN0aW9uPSVwIiwgcHJvY2Vzc0lkZW50aWZpZXIudG9VSW50NjQoKSwgY29udGV4dENvbm5l
Y3Rpb24pOworICAgIGlmICghY29udGV4dENvbm5lY3Rpb24gfHwgY29udGV4dENvbm5lY3Rpb24t
PndlYlByb2Nlc3NJZGVudGlmaWVyKCkgIT0gcHJvY2Vzc0lkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIGNvbnRleHRDb25uZWN0aW9uLT50ZXJtaW5hdGVXaGVuUG9zc2libGUoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZl
ci5oCmluZGV4IDE4YjMxMGU1NWE2Yy4uZjhiNDVhZTRhMDE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXIuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaGFy
ZWRXb3JrZXJPYmplY3RJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkm
LCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKTsKICAgICB2b2lkIHBvc3RF
eGNlcHRpb25Ub1dvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1i
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAorICAgIHZvaWQgdGVybWluYXRlQ29udGV4
dENvbm5lY3Rpb25XaGVuUG9zc2libGUoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCBhZGRDb250ZXh0Q29ubmVj
dGlvbihXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7CiAgICAgdm9p
ZCByZW1vdmVDb250ZXh0Q29ubmVjdGlvbihXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uJik7CiAgICAgdm9pZCBhZGRDb25uZWN0aW9uKHN0ZDo6dW5pcXVlX3B0cjxXZWJT
aGFyZWRXb3JrZXJTZXJ2ZXJDb25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRX
b3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXgg
YzhhZDg1ZWUzYzMwLi40NDZiOWU1NmRhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29y
a2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xNDgs
NyArMTQ4LDcgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpyZW1vdmVTaGFyZWRXb3JrZXJPYmplY3QoV2ViQ29yZToKICAgICBpZiAobV9zaGFyZWRXb3Jr
ZXJPYmplY3RzLmlzRW1wdHkoKSkgewogICAgICAgICBDT05URVhUX0NPTk5FQ1RJT05fUkVMRUFT
RV9MT0coInJlbW92ZVNoYXJlZFdvcmtlck9iamVjdDogY29ubmVjdGlvbiBpcyBub3cgaWRsZSwg
c3RhcnRpbmcgYSB0aW1lciB0byB0ZXJtaW5hdGUgaXQiKTsKICAgICAgICAgQVNTRVJUKCFtX2lk
bGVUZXJtaW5hdGlvblRpbWVyLmlzQWN0aXZlKCkpOwotICAgICAgICBtX2lkbGVUZXJtaW5hdGlv
blRpbWVyLnN0YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlz
VW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOworICAg
ICAgICBtX2lkbGVUZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpIHx8IG1fc2hvdWxkVGVy
bWluYXRlV2hlblBvc3NpYmxlID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDJhYTU0MzkwM2FjYi4uOTlkYTM4NjA2ZWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lzdHJhYmxlRG9tYWluOyB9CiAgICAgSVBDOjpDb25uZWN0aW9uJiBpcGNDb25uZWN0aW9u
KCkgY29uc3Q7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpIHsgbV9zaG91bGRU
ZXJtaW5hdGVXaGVuUG9zc2libGUgPSB0cnVlOyB9CisKICAgICB2b2lkIGxhdW5jaFNoYXJlZFdv
cmtlcihXZWJTaGFyZWRXb3JrZXImKTsKICAgICB2b2lkIHBvc3RDb25uZWN0RXZlbnQoY29uc3Qg
V2ViU2hhcmVkV29ya2VyJiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYp
OwogICAgIHZvaWQgdGVybWluYXRlU2hhcmVkV29ya2VyKGNvbnN0IFdlYlNoYXJlZFdvcmtlciYp
OwpAQCAtODUsNiArODcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIG1fcmVnaXN0cmFibGVEb21haW47CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgSGFzaFNldDxXZWJDb3JlOjpTaGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyPj4g
bV9zaGFyZWRXb3JrZXJPYmplY3RzOwogICAgIFdlYkNvcmU6OlRpbWVyIG1faWRsZVRlcm1pbmF0
aW9uVGltZXI7CisgICAgYm9vbCBtX3Nob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSB7IGZhbHNl
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVmODY1
YjZlZTE4MC4uY2Y3OGQ3N2U3ODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE3NzMsNiArMTc3Mywx
MSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKFBBTDo6U2VzcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlmaWNhdGlvblBl
cm1pc3Npb25zIHsgc2Vzc2lvbklEIH0sIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlv
bldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxl
RG9tYWluLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6VGVybWluYXRlUmVtb3RlV29ya2Vy
Q29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUod29ya2VyVHlwZSwgc2Vzc2lvbklELCByZWdp
c3RyYWJsZURvbWFpbiwgcHJvY2Vzc0lkZW50aWZpZXIpLCAwKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGMzZTdhYjdk
NjRjMi4uMjUyODMzZmYyMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjk5LDYgKzI5OSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRhdGFUYXNrRGlkQ29tcGxldGVXaXRoRXJyb3IoRGF0YVRhc2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZvaWQgY2FuY2VsRGF0YVRhc2so
RGF0YVRhc2tJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0
ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5
cGUsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3
b3JrUHJvY2Vzc1Byb3h5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDM0OTM3ZmI4MmQ2YS4uYmU5NmI0MWRlMjc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE2ODksOSArMTY4OSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJh
bWUoY29uc3QgVVJMJiB1cmwpCiAKICAgICBhdXRvIHJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4geyB1cmwgfTsKICAgICBpZiAobV9yZWdpc3RyYWJsZURvbWFp
biAmJiAqbV9yZWdpc3RyYWJsZURvbWFpbiAhPSByZWdpc3RyYWJsZURvbWFpbikgewotI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICAgICAgZGlzYWJsZVJlbW90ZVdvcmtlcnMoUmVtb3Rl
V29ya2VyVHlwZTo6U2VydmljZVdvcmtlcik7Ci0jZW5kaWYKKyAgICAgICAgaWYgKGlzUnVubmlu
Z1NlcnZpY2VXb3JrZXJzKCkpCisgICAgICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29y
a1Byb2Nlc3MoKS50ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3Nz
aWJsZShSZW1vdGVXb3JrZXJUeXBlOjpTZXJ2aWNlV29ya2VyLCB3ZWJzaXRlRGF0YVN0b3JlKCku
c2Vzc2lvbklEKCksICptX3JlZ2lzdHJhYmxlRG9tYWluLCBjb3JlUHJvY2Vzc0lkZW50aWZpZXIo
KSk7CisgICAgICAgIGlmIChpc1J1bm5pbmdTaGFyZWRXb3JrZXJzKCkpCisgICAgICAgICAgICB3
ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS50ZXJtaW5hdGVSZW1vdGVXb3JrZXJD
b250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlOjpTaGFyZWRXb3Jr
ZXIsIHdlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwgKm1fcmVnaXN0cmFibGVEb21haW4s
IGNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKIAogICAgICAgICAvLyBOdWxsIG91dCByZWdpc3Ry
YWJsZSBkb21haW4gc2luY2UgdGhpcyBwcm9jZXNzIGhhcyBub3cgYmVlbiB1c2VkIGZvciBzZXZl
cmFsIGRvbWFpbnMuCiAgICAgICAgIG1fcmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB7IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453662</attachid>
            <date>2022-03-02 14:43:03 -0800</date>
            <delta_ts>2022-03-02 14:51:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237160-20220302144301.patch</filename>
            <type>text/plain</type>
            <size>39306</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTliMTJkMzRjMmQ1Mjk4
NjRhNmJmN2NkYmMyMzM4M2NmNjdlMDVmYy4uN2QzNDVhMzliZTUxOGQ2ZmEwOGU1ZGIwNTgwMDY2
MTkxMWNiZjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjkwMzU2
LXIyOTAzNTE/KTogWyBpT1MgRVdTIF0gMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci8qIHRlc3RzIGFyZSBjb25zdGFudCB0ZXh0
IGZhaWx1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTQ0MDA2Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjkwMzUyLCBJIG1hZGUg
YSBjaGFuZ2Ugc28gdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgaXMgbW9yZSBsaWtlbHkgdG8gbGF1
bmNoIGluIHRoZSBXZWJDb250ZW50CisgICAgICAgIHByb2Nlc3MgdGhhdCBjYXVzZWQgaXQgdG8g
bGF1bmNoLiBUaGlzIGlzIGJlbmVmaWNpYWwgZm9yIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgdXNh
Z2UuCisKKyAgICAgICAgVGhlIHBhcnRpdGlvbmVkLXNlcnZpY2Utd29ya2VyKi5odG1sIHNlcnZp
Y2Ugd29ya2VyIHRlc3RzIGFyZSByZWx5aW5nIG9uIGFuIElEIHZhcmlhYmxlIHRoYXQgaXMKKyAg
ICAgICAgcmFuZG9tbHkgZ2VuZXJhdGVkIGluc2lkZSB0aGUgc2VydmljZSB3b3JrZXIgYW5kIHRo
ZXkgZXhwZWN0IHRoaXMgSUQgdG8gbm90IGNoYW5nZSBkdXJpbmcgdGhlCisgICAgICAgIGR1cmF0
aW9uIG9mIHRoZSB0ZXN0LiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4
aXRzIC8gcmVsYXVuY2hlcywgdGhvc2UgdGVzdHMgc3RhcnQKKyAgICAgICAgZmFpbGluZyBiZWNh
dXNlIHRoZSBJRCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpc3N1ZSBpcyB0aGF0IHdlIGhhdmUg
bG9naWMgaW4gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZSgpIHRoYXQKKyAgICAgICAgdGVybWluYXRlcyB0aGUgc2VydmljZSB3b3JrZXJzIHJ1bm5p
bmcgaW5zaWRlIHRoZSBXZWJQcm9jZXNzIGlmIGEgbmV3IGVUTEQrMSBwYWdlIGlzIGxvYWRlZCBp
bnNpZGUKKyAgICAgICAgdGhlIHByb2Nlc3MuIFdlIGRvIHNvIHRvIHRyeSBhbmQgYWNoaWV2ZSBi
ZXR0ZXIgcHJvY2VzcyBpc29sYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgc2l0ZXMuIFRoZQorICAg
ICAgICBpc3N1ZSBpcyB0aGF0IHRob3NlIHRlc3RzIGxhdW5jaCBhIHNlcnZpY2Ugd29ya2VyIGFu
ZCB0aGVuIG9wZW4gYSBuZXcgY3Jvc3Mtc2l0ZSBwb3B1cC4gV2hlbiB0aGUKKyAgICAgICAgY3Jv
c3Mtc2l0ZSBwb3B1cCBsb2FkcyBpbnNpZGUgdGhlIHNhbWUgcHJvY2Vzcywgd2UnZCBtYWtlIHRo
ZSBkZWNpc2lvbiB0byB0ZXJtaW5hdGUgdGhlIHNlcnZpY2UKKyAgICAgICAgd29ya2VycyBpbiB0
aGlzIHByb2Nlc3MgYW5kIHJlbGF1bmNoIHRoZW0gaW4gYSBuZXcgY2xlYW4gb25lLCBjYXVzaW5n
IHRoZSB0ZXN0cyB0byBmYWlsLgorCisgICAgICAgIFdoaWxlIGl0IGlzIHRydWUgcGVyIHRoZSBz
cGVjaWZpY2F0aW9uIHRoYXQgc2VydmljZSB3b3JrZXJzIGNhbiBiZSB0ZXJtaW5hdGVkIC8gcmVs
YXVuY2hlZCBhdAorICAgICAgICBhbG1vc3QgYW55IHBvaW50LCB0aGVyZSBhcmUgZXhjZXB0aW9u
cy4gSW4gcGFydGljdWxhciwgd2Ugc2hvdWxkIGtlZXAgYSBzZXJ2aWNlIHdvcmtlciBydW5uaW5n
CisgICAgICAgIGlmIGl0IHN0aWxsIGhhcyBwZW5kaW5nIGV4dGVuZGFibGUgZXZlbnRzLiBGb3Ig
dGhpcyByZWFzb24sIHRoZSB0ZXN0cyByZWx5IG9uIEZldGNoRXZlbnQud2FpdFVudGlsKCkKKyAg
ICAgICAgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgcnVubmluZy4gU2FkbHksIHdlIHdvdWxk
IG5vdCBvYmV5IHRoYXQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlz
c3VlLCB3ZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsb3NlIHRoZSBzZXJ2aWNlIHdvcmtl
ciBjb250ZXh0IGNvbm5lY3Rpb24KKyAgICAgICAgd2hlbiBhIFdlYlByb2Nlc3MgbG9hZHMgYSBu
ZXcgZVRMRCsxLiBJbnN0ZWFkLCB3ZSB0ZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgdG8gY2xvc2Ug
dGhhdCBjb25uZWN0aW9uCisgICAgICAgIGFzIHNvb24gYXMgcG9zc2libGUuIFdoZW4gdGhlIG5l
dHdvcmsgcHJvY2VzcyByZWNlaXZlcyB0aGlzIElQQywgaXQgdGVybWluYXRlcyB0aGUgY29udGV4
dAorICAgICAgICBjb25uZWN0aW9uIE9OTFkgaWYgdGhlIHNlcnZpY2Ugd29ya2VycyB1c2luZyB0
aGUgY29ubmVjdGlvbiBoYXZlIG5vIHBlbmRpbmcgZXZlbnRzLiBJZiB3ZSBjYW5ub3QKKyAgICAg
ICAgY2xvc2UgdGhlIGNvbnRleHQgY29ubmVjdGlvbiByaWdodCBhd2F5LCB3ZSBzZXQgYSBmbGFn
IG9uIHRoZSBjb250ZXh0IGNvbm5lY3Rpb24gdG8gaW5kaWNhdGUgdGhhdAorICAgICAgICB3ZSBz
aG91bGQgY2xvc2UgaXQgYXMgc29vbiBhcyBwb3NzaWJsZS4gQ3VycmVudGx5LCB0aGlzIGZsYWcg
aXMgb25seSB1c2VkIHRvIGNsb3NlIHRoZSBjb25uZWN0aW9uCisgICAgICAgIHJpZ2h0IGF3YXkg
KG5vIDEwIHNlY29uZCBkZWxheSkgb25jZSB0aGUgY29ubmVjdGlvbiBubyBsb25nZXIgaGFzIGFu
eSBjbGllbnRzLiBJIHRoaW5rIHRoYXQsIGlkZWFsbHksCisgICAgICAgIHdlJ2QgY2xvc2UgdGhl
IGNvbm5lY3Rpb24gYXMgc29vbiBhcyB0aGUgc2VydmljZSB3b3JrZXJzIG5vIGxvbmdlciBoYXZl
IHBlbmRpbmcgZXZlbnRzLiBIb3dldmVyLAorICAgICAgICB0aGlzIGFkZHMgY29tcGxleGl0eSBh
bmQgaXMgZXJyb3ItcHJvbmUgc28gSSBkaWRuJ3QgaW1wbGVtZW50IGl0IGluIHRoaXMgcGF0Y2gg
YW5kIG1lcmVseSBhZGRlZCBhCisgICAgICAgIEZJWE1FIGNvbW1lbnQuIEFzIGl0IHN0YW5kcywg
bXkgcGF0Y2ggU1RJTEwgcmVsYXVuY2hlcyBzZXJ2aWNlIHdvcmtlcnMgaW4gb3JpZ2luLWNsZWFu
IHByb2Nlc3NlcworICAgICAgICBpbiB0aGUgY29tbW9uIGNhc2UuIEl0IG9ubHkgZmFpbHMgdG8g
ZG8gc28gaW4gdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIHBlbmRpbmcgc2VydmljZSB3b3JrZXIK
KyAgICAgICAgZXZlbnRzIHdoaWNoIGlzIGEgY2FzZSB3aGVyZSB3ZSBoYWQgdGhlIGNvcnJlY3Ru
ZXNzIGJ1ZyBhbnl3YXkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpmb3JFYWNoU2VydmljZVdvcmtlciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dGVybWluYXRlQ29udGV4dENvbm5lY3Rp
b25XaGVuUG9zc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZXJ2ZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXaGVuUG9zc2li
bGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OnNob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSBjb25zdCk6CisKIDIwMjItMDMtMDIgIE9y
aW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzXSBJbXBsZW1l
bnQgJ3RleHQtZGVjb3JhdGlvbicgYXMgYSBzaG9ydGhhbmQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwZmZmYzdm
ODk0MTcwNWRmYmMxMTRiNTc3M2VjODliYmY3MTRkNTIuLmU3ZmM1ZmUxNzMwNmY3ODIzZGI4MDZl
Y2FkYTI0YTQ0NWViMzZkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjItMDMtMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIy
OTAzNTYtcjI5MDM1MT8pOiBbIGlPUyBFV1MgXSAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLyogdGVzdHMgYXJlIGNvbnN0YW50
IHRleHQgZmFpbHVyZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzcxNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQwMDY3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyOTAzNTIsIEkg
bWFkZSBhIGNoYW5nZSBzbyB0aGF0IHRoZSBzZXJ2aWNlIHdvcmtlciBpcyBtb3JlIGxpa2VseSB0
byBsYXVuY2ggaW4gdGhlIFdlYkNvbnRlbnQKKyAgICAgICAgcHJvY2VzcyB0aGF0IGNhdXNlZCBp
dCB0byBsYXVuY2guIFRoaXMgaXMgYmVuZWZpY2lhbCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1lbW9y
eSB1c2FnZS4KKworICAgICAgICBUaGUgcGFydGl0aW9uZWQtc2VydmljZS13b3JrZXIqLmh0bWwg
c2VydmljZSB3b3JrZXIgdGVzdHMgYXJlIHJlbHlpbmcgb24gYW4gSUQgdmFyaWFibGUgdGhhdCBp
cworICAgICAgICByYW5kb21seSBnZW5lcmF0ZWQgaW5zaWRlIHRoZSBzZXJ2aWNlIHdvcmtlciBh
bmQgdGhleSBleHBlY3QgdGhpcyBJRCB0byBub3QgY2hhbmdlIGR1cmluZyB0aGUKKyAgICAgICAg
ZHVyYXRpb24gb2YgdGhlIHRlc3QuIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgc2VydmljZSB3b3Jr
ZXIgZXhpdHMgLyByZWxhdW5jaGVzLCB0aG9zZSB0ZXN0cyBzdGFydAorICAgICAgICBmYWlsaW5n
IGJlY2F1c2UgdGhlIElEIGNoYW5nZXMuCisKKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgd2Ug
aGF2ZSBsb2dpYyBpbiBXZWJQcm9jZXNzUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
TWFpbkZyYW1lKCkgdGhhdAorICAgICAgICB0ZXJtaW5hdGVzIHRoZSBzZXJ2aWNlIHdvcmtlcnMg
cnVubmluZyBpbnNpZGUgdGhlIFdlYlByb2Nlc3MgaWYgYSBuZXcgZVRMRCsxIHBhZ2UgaXMgbG9h
ZGVkIGluc2lkZQorICAgICAgICB0aGUgcHJvY2Vzcy4gV2UgZG8gc28gdG8gdHJ5IGFuZCBhY2hp
ZXZlIGJldHRlciBwcm9jZXNzIGlzb2xhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBzaXRlcy4gVGhl
CisgICAgICAgIGlzc3VlIGlzIHRoYXQgdGhvc2UgdGVzdHMgbGF1bmNoIGEgc2VydmljZSB3b3Jr
ZXIgYW5kIHRoZW4gb3BlbiBhIG5ldyBjcm9zcy1zaXRlIHBvcHVwLiBXaGVuIHRoZQorICAgICAg
ICBjcm9zcy1zaXRlIHBvcHVwIGxvYWRzIGluc2lkZSB0aGUgc2FtZSBwcm9jZXNzLCB3ZSdkIG1h
a2UgdGhlIGRlY2lzaW9uIHRvIHRlcm1pbmF0ZSB0aGUgc2VydmljZQorICAgICAgICB3b3JrZXJz
IGluIHRoaXMgcHJvY2VzcyBhbmQgcmVsYXVuY2ggdGhlbSBpbiBhIG5ldyBjbGVhbiBvbmUsIGNh
dXNpbmcgdGhlIHRlc3RzIHRvIGZhaWwuCisKKyAgICAgICAgV2hpbGUgaXQgaXMgdHJ1ZSBwZXIg
dGhlIHNwZWNpZmljYXRpb24gdGhhdCBzZXJ2aWNlIHdvcmtlcnMgY2FuIGJlIHRlcm1pbmF0ZWQg
LyByZWxhdW5jaGVkIGF0IAorICAgICAgICBhbG1vc3QgYW55IHBvaW50LCB0aGVyZSBhcmUgZXhj
ZXB0aW9ucy4gSW4gcGFydGljdWxhciwgd2Ugc2hvdWxkIGtlZXAgYSBzZXJ2aWNlIHdvcmtlciBy
dW5uaW5nCisgICAgICAgIGlmIGl0IHN0aWxsIGhhcyBwZW5kaW5nIGV4dGVuZGFibGUgZXZlbnRz
LiBGb3IgdGhpcyByZWFzb24sIHRoZSB0ZXN0cyByZWx5IG9uIEZldGNoRXZlbnQud2FpdFVudGls
KCkKKyAgICAgICAgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgcnVubmluZy4gU2FkbHksIHdl
IHdvdWxkIG5vdCBvYmV5IHRoYXQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFRvIGFkZHJlc3Mg
dGhlIGlzc3VlLCB3ZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsb3NlIHRoZSBzZXJ2aWNl
IHdvcmtlciBjb250ZXh0IGNvbm5lY3Rpb24KKyAgICAgICAgd2hlbiBhIFdlYlByb2Nlc3MgbG9h
ZHMgYSBuZXcgZVRMRCsxLiBJbnN0ZWFkLCB3ZSB0ZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgdG8g
Y2xvc2UgdGhhdCBjb25uZWN0aW9uCisgICAgICAgIGFzIHNvb24gYXMgcG9zc2libGUuIFdoZW4g
dGhlIG5ldHdvcmsgcHJvY2VzcyByZWNlaXZlcyB0aGlzIElQQywgaXQgdGVybWluYXRlcyB0aGUg
Y29udGV4dCAKKyAgICAgICAgY29ubmVjdGlvbiBPTkxZIGlmIHRoZSBzZXJ2aWNlIHdvcmtlcnMg
dXNpbmcgdGhlIGNvbm5lY3Rpb24gaGF2ZSBubyBwZW5kaW5nIGV2ZW50cy4gSWYgd2UgY2Fubm90
CisgICAgICAgIGNsb3NlIHRoZSBjb250ZXh0IGNvbm5lY3Rpb24gcmlnaHQgYXdheSwgd2Ugc2V0
IGEgZmxhZyBvbiB0aGUgY29udGV4dCBjb25uZWN0aW9uIHRvIGluZGljYXRlIHRoYXQKKyAgICAg
ICAgd2Ugc2hvdWxkIGNsb3NlIGl0IGFzIHNvb24gYXMgcG9zc2libGUuIEN1cnJlbnRseSwgdGhp
cyBmbGFnIGlzIG9ubHkgdXNlZCB0byBjbG9zZSB0aGUgY29ubmVjdGlvbgorICAgICAgICByaWdo
dCBhd2F5IChubyAxMCBzZWNvbmQgZGVsYXkpIG9uY2UgdGhlIGNvbm5lY3Rpb24gbm8gbG9uZ2Vy
IGhhcyBhbnkgY2xpZW50cy4gSSB0aGluayB0aGF0LCBpZGVhbGx5LAorICAgICAgICB3ZSdkIGNs
b3NlIHRoZSBjb25uZWN0aW9uIGFzIHNvb24gYXMgdGhlIHNlcnZpY2Ugd29ya2VycyBubyBsb25n
ZXIgaGF2ZSBwZW5kaW5nIGV2ZW50cy4gSG93ZXZlciwKKyAgICAgICAgdGhpcyBhZGRzIGNvbXBs
ZXhpdHkgYW5kIGlzIGVycm9yLXByb25lIHNvIEkgZGlkbid0IGltcGxlbWVudCBpdCBpbiB0aGlz
IHBhdGNoIGFuZCBtZXJlbHkgYWRkZWQgYQorICAgICAgICBGSVhNRSBjb21tZW50LiBBcyBpdCBz
dGFuZHMsIG15IHBhdGNoIFNUSUxMIHJlbGF1bmNoZXMgc2VydmljZSB3b3JrZXJzIGluIG9yaWdp
bi1jbGVhbiBwcm9jZXNzZXMKKyAgICAgICAgaW4gdGhlIGNvbW1vbiBjYXNlLiBJdCBvbmx5IGZh
aWxzIHRvIGRvIHNvIGluIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBwZW5kaW5nIHNlcnZpY2Ug
d29ya2VyCisgICAgICAgIGV2ZW50cyB3aGljaCBpcyBhIGNhc2Ugd2hlcmUgd2UgaGFkIHRoZSBj
b3JyZWN0bmVzcyBidWcgYW55d2F5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRl
UmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6fldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBv
c3NpYmxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVk
V29ya2VyU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZW1vdmVTaGFy
ZWRXb3JrZXJPYmplY3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JNYWluRnJhbWUpOgorCiAyMDIyLTAzLTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQ29tcGxldGlvbiBoYW5kbGVyIGlzIG5vdCBj
YWxsZWQgd2hlbiBXZWJBdXRobiBpbnZva2VkIHdpdGhvdXQgcHJvcGVyIGVudGl0bGVtZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cAppbmRleCBkYjYyNzc5MDcyNTIzNDY3ZTJhMjY4ZTIzZTE2MDFmMjEyYjVhZTFkLi44Njc5ZmJk
MmU2MzI0ZTdiNjQ0NjgzN2IxMjdkMDE0YWZkY2JiYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtNzM2LDYgKzczNiwy
NSBAQCB2b2lkIFNXU2VydmVyOjpjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uJiBjb250ZXh0Q29ubgogICAgIH0KIH0KIAordm9pZCBTV1NlcnZlcjo6
Zm9yRWFjaFNlcnZpY2VXb3JrZXIoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBTV1NlcnZlcldv
cmtlciYpPiYgYXBwbHkpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB3b3JrZXIgOiBtX3J1bm5p
bmdPclRlcm1pbmF0aW5nV29ya2Vycy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIWFwcGx5KHdv
cmtlcikpCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgU1dTZXJ2ZXI6OnRl
cm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZWdpc3RyYWJsZURvbWFpbiwgUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZp
ZXIpCit7CisgICAgLy8gRklYTUU6IFdlIGNvdWxkIGNvbnNpZGVyIHNodXR0aW5nIGRvd24gc2Vy
dmljZSB3b3JrZXJzIG1vcmUgYWdncmVzc2l2ZWx5IGJ1dCB3ZSdkIG5lZWQgdG8gbWFrZSBzdXJl
IHRoZSBzZXJ2aWNlIHdvcmtlciBpcyBhY3R1YWxseQorICAgIC8vIGlkbGUgKGUuZy4gbm8gcGVu
ZGluZyBldmVudHMpLgorICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gY29udGV4dENvbm5l
Y3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CisgICAgaWYgKCFj
b250ZXh0Q29ubmVjdGlvbiB8fCBjb250ZXh0Q29ubmVjdGlvbi0+d2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSAhPSBwcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4
dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOworfQorCiB2b2lkIFNXU2VydmVy
OjppbnN0YWxsQ29udGV4dERhdGEoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWRhdGEubG9hZGVkRnJvbURpc2ssICJXb3Jr
ZXJzIHdlIGp1c3QgcmVhZCBmcm9tIGRpc2sgc2hvdWxkIG9ubHkgYmUgbGF1bmNoZWQgYXMgbmVl
ZGVkIik7CkBAIC0xMDM2LDcgKzEwNTUsOSBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwogCiAg
ICAgICAgICAgICBtX2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2luLnJlbW92ZShjbGllbnRPcmln
aW4pOwogICAgICAgICB9KTsKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJzVGltZXItPnN0YXJ0T25lU2hvdChtX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlF
bmFibGVkICYmICFNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1v
cnlQcmVzc3VyZSgpICYmICFkaWRVbnJlZ2lzdGVyID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkg
OiAwX3MpOworICAgICAgICBhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IGNvbnRleHRDb25uZWN0
aW9uRm9yUmVnaXN0cmFibGVEb21haW4oY2xpZW50UmVnaXN0cmFibGVEb21haW4pOworICAgICAg
ICBib29sIHNob3VsZENvbnRleHRDb25uZWN0aW9uQmVUZXJtaW5hdGVkV2hlblBvc3NpYmxlID0g
Y29udGV4dENvbm5lY3Rpb24gJiYgY29udGV4dENvbm5lY3Rpb24tPnNob3VsZFRlcm1pbmF0ZVdo
ZW5Qb3NzaWJsZSgpOworICAgICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdv
cmtlcnNUaW1lci0+c3RhcnRPbmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJs
ZWQgJiYgIU1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkgJiYgIXNob3VsZENvbnRleHRDb25uZWN0aW9uQmVUZXJtaW5hdGVkV2hlblBvc3Np
YmxlICYmICFkaWRVbnJlZ2lzdGVyID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAwX3MpOwog
ICAgIH0KIAogICAgIC8vIElmIHRoZSBhcHAtYm91bmQgdmFsdWUgY2hhbmdlZCBhZnRlciB0aGlz
IGNsaWVudCB3YXMgcmVtb3ZlZCwgd2Uga25vdyBpdCB3YXMgdGhlIG9ubHkgYXBwLWJvdW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5k
ZXggYWZkNGY4MzAxNzVhZmQzODkzNzdjZGQ0ZmNkZjQxYmRlNzE4OGMxYi4uNWEyZTJlNGE2MTk5
NWY3YTE4ZTUwMzliNDRjZTdmZmY5ZmZhZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTc5LDYgKzE3OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJik7CiAg
ICAgdm9pZCBtYXRjaEFsbChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGll
bnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7
CiAgICAgc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBjbGFpbShTV1NlcnZlcldvcmtlciYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVu
UG9zc2libGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBQcm9jZXNzSWRlbnRpZmllcik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2ZXJz
KCk7CiAKQEAgLTIyOCw2ICsyMjksOCBAQCBwdWJsaWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJZEZyb21WaXNpYmxlQ2xpZW50SWQoY29uc3QgU3RyaW5n
JiB2aXNpYmxlSWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlQ2xpZW50SWRUb0lu
dGVybmFsQ2xpZW50SWRNYXAuZ2V0KHZpc2libGVJZGVudGlmaWVyKTsgfQogCisgICAgdm9pZCBm
b3JFYWNoU2VydmljZVdvcmtlcihjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IFNXU2VydmVyV29y
a2VyJik+JikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCB2YWxpZGF0ZVJlZ2lzdHJhdGlv
bkRvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgU2VydmljZVdvcmtlckpvYlR5cGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggNTQyOGFhNDY1NTQ1ODg0ODc5MDE3YzQ1MWQ5OGY4
YWM5ZTYyYWQ3Yy4uNjU2MzYyYTA5MTExMGI0YzEzNjdiNmQ1YTE0MDQ2MDQ4MzkyZWQ2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtNDAsOCArNDAsOSBA
QCBzdGF0aWMgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciBnZW5lcmF0ZVNl
cnZlclRvQ29udGV4dENvbm5lY3Rpb25JZAogICAgIHJldHVybiBTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogfQogCi1TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFpbiYm
IHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCi0gICAgOiBtX2lkZW50aWZp
ZXIoZ2VuZXJhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllcigpKQorU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oU1dTZXJ2
ZXImIHNlcnZlciwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKQorICAgIDogbV9zZXJ2ZXIoc2VydmVyKQorICAgICwgbV9pZGVudGlmaWVy
KGdlbmVyYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIoKSkKICAgICAsIG1f
cmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbikpCiAgICAgLCBtX3Nl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiB7
CkBAIC01MSw2ICs1MiwxMSBAQCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24oKQogewogfQogCitTV1NlcnZlciogU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpzZXJ2ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlcnZlci5nZXQo
KTsKK30KKwogdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNjcmlwdENvbnRleHRG
YWlsZWRUb1N0YXJ0KGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyPiYgam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKGF1
dG8qIHdvcmtlciA9IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIo
c2VydmljZVdvcmtlcklkZW50aWZpZXIpKQpAQCAtMTMxLDYgKzEzNywyNSBAQCB2b2lkIFNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyCiAgICAgICAgIHdvcmtlci0+ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKCk7CiB9
CiAKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXaGVuUG9zc2li
bGUoKQoreworICAgIG1fc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlID0gdHJ1ZTsKKworICAg
IGJvb2wgaGFzU2VydmljZVdvcmtlcldpdGhQZW5kaW5nRXZlbnRzID0gZmFsc2U7CisgICAgc2Vy
dmVyKCktPmZvckVhY2hTZXJ2aWNlV29ya2VyKFsmXShhdXRvJiB3b3JrZXIpIHsKKyAgICAgICAg
aWYgKHdvcmtlci5pc1J1bm5pbmcoKSAmJiB3b3JrZXIucmVnaXN0cmFibGVEb21haW4oKSA9PSBt
X3JlZ2lzdHJhYmxlRG9tYWluICYmIHdvcmtlci5oYXNQZW5kaW5nRXZlbnRzKCkpIHsKKyAgICAg
ICAgICAgIGhhc1NlcnZpY2VXb3JrZXJXaXRoUGVuZGluZ0V2ZW50cyA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fSk7CisKKyAgICAvLyBGSVhNRTogSWYgdGhlcmUgaXMgYSBzZXJ2aWNlIHdvcmtlciB3aXRoIHBl
bmRpbmcgZXZlbnRzIGFuZCB3ZSBkb24ndCBjbG9zZSB0aGUgY29ubmVjdGlvbiByaWdodCBhd2F5
LCB3ZSdkIGlkZWFsbHkga2VlcAorICAgIC8vIHRyYWNrIG9mIHRoaXMgYW5kIGNsb3NlIHRoZSBj
b25uZWN0aW9uIG9uY2UgaXQgYmVjb21lcyBpZGxlLgorICAgIGlmICghaGFzU2VydmljZVdvcmtl
cldpdGhQZW5kaW5nRXZlbnRzKQorICAgICAgICBjbG9zZSgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCBjMDU2ZjY0OGRkYTAzZTVmYWI0OGQyYWU0
NmU3MTM5NzU2ZjVkNTQ0Li5iMDhhMzgzYThlOTQ5ZDAyNWVjNGE1YmU1ZTAyZmIwZDU2ZmM5ZDhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTQ5LDggKzQ5LDEz
IEBAIGNsYXNzIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiB7CiBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlciogc2VydmVyKCkgY29uc3Q7CiAgICAgU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9pZGVudGlmaWVyOyB9CiAKKyAgICAvLyBUaGlzIGZsYWcgZ2V0cyBzZXQgd2hlbiB0aGUgc2Vy
dmljZSB3b3JrZXIgcHJvY2VzcyBpcyBubyBsb25nZXIgY2xlYW4gKGJlY2F1c2UgaXQgaGFzIGxv
YWRlZCBzZXZlcmFsIGVUTEQrMXMpLgorICAgIGJvb2wgc2hvdWxkVGVybWluYXRlV2hlblBvc3Np
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUZXJtaW5hdGVXaGVuUG9zc2libGU7IH0KKyAg
ICB2b2lkIHRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOworCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhl
IFNXIGhvc3QgcHJvY2VzcwogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNv
bnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgU2VydmljZVdvcmtl
ckRhdGEmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpID0gMDsKQEAgLTYwLDYgKzY1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgSGFzaE1hcDxV
UkwsIFNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmly
ZVB1c2hFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
aykgPSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSBjb25zdCA9IDA7CiAKICAgICAvLyBNZXNzYWdlcyBiYWNrIGZyb20gdGhlIFNXIGhvc3Qg
cHJvY2VzcwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3Rh
cnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+Jiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC04Miwx
MiArODgsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVz
cG9uc2l2ZW5lc3MoKSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24o
U1dTZXJ2ZXImLCBSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworCisg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogCiBwcml2YXRlOgorICAgIFdlYWtQdHI8V2Vi
Q29yZTo6U1dTZXJ2ZXI+IG1fc2VydmVyOwogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0
cmFibGVEb21haW47CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7CisgICAgYm9vbCBtX3Nob3Vs
ZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDk5MGVjN2ZiODJmNjM1NGJhMDFlNGJlN2JiZGNjMDY0OGIzMGZlOTQuLjgyYTI1
MmY0MGZkY2I2ZGNjY2MwMGUyMTgwMTk2Nzk1OWIzNDY5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAj
aW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFN0b3JlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlICJSZW1vdGVXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VNYW5hZ2VyU2V0LmgiCkBAIC02MSw2ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkV29y
a2VyU2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFGZXRjaE9wdGlvbi5oIgogI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycy5oIgpAQCAtMjA3OSw2ICsyMDgxLDI0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlCiAg
ICAgcHJlcGFyZVRvU3VzcGVuZCh0cnVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25u
ZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0
cmFibGVEb21haW4sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
KQoreworICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAg
IGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoICh3b3JrZXJUeXBl
KSB7CisgICAgY2FzZSBSZW1vdGVXb3JrZXJUeXBlOjpTZXJ2aWNlV29ya2VyOgorICAgICAgICBp
ZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLT5zd1NlcnZlcigpKQorICAgICAgICAgICAgc3dT
ZXJ2ZXItPnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKHJlZ2lzdHJhYmxl
RG9tYWluLCBwcm9jZXNzSWRlbnRpZmllcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVt
b3RlV29ya2VyVHlwZTo6U2hhcmVkV29ya2VyOgorICAgICAgICBpZiAoYXV0byogc2hhcmVkV29y
a2VyU2VydmVyID0gc2Vzc2lvbi0+c2hhcmVkV29ya2VyU2VydmVyKCkpCisgICAgICAgICAgICBz
aGFyZWRXb3JrZXJTZXJ2ZXItPnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxl
KHJlZ2lzdHJhYmxlRG9tYWluLCBwcm9jZXNzSWRlbnRpZmllcik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlz
U3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5l
dHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVk
IiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDY4OWJmOTdlZGVkZDk1ZTM3YzYyOTBjYjZj
ZmFlOTViZDZiNDEwOWUuLmE3YjgzZTNiM2FhZTZmZGVhNGQ3MTc3Zjk4NzI4NWFjYTJjMTUzNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTEwNyw2ICsxMDcsNyBAQCBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBQcm9j
ZXNzQXNzZXJ0aW9uOwogY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogZW51bSBjbGFz
cyBDYWxsRG93bmxvYWREaWRTdGFydCA6IGJvb2w7CitlbnVtIGNsYXNzIFJlbW90ZVdvcmtlclR5
cGUgOiBib29sOwogZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MgOiBib29s
OwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzU3RhdHVzIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbiA6IHVpbnQ4X3Q7CkBAIC00NjUsNiArNDY2LDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGlkZW50aWZpZXIpOwogI2VuZGlmCiAKKyAgICB2b2lkIHRlcm1pbmF0
ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5
cGUsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtRmx1c2hDb29raWVz
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IDExZDY1Y2IyMjFlMWI4MzBkYzc1ZjhjMGE3M2YwMGZlNTY5ZTJiZDcu
Ljc0OTkyNTdiMzQxNDBiZTFiMjhlN2RiMDcyMDFiYzA4Mzc2NjNkOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMjA3LDYgKzIwNyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3Ry
aW5nIGtleSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKICNlbmRpZgogCisg
ICAgVGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoZW51
bTpib29sIFdlYktpdDo6UmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFp
biwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpOworCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIEdldFBlbmRpbmdQdXNoTWVzc2FnZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+IG1l
c3NhZ2VzKSBBc3luYwogICAgIFByb2Nlc3NQdXNoTWVzc2FnZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlB1c2hNZXNzYWdlIHB1c2hNZXNzYWdlKSAtPiAoYm9v
bCBkaWRTdWNjZWVkKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcAppbmRleCAyN2Y2ZThkYTVmNDFmYmU0MWUxOWZjODA4ZmU1OTc4
ZjY4ZDUxZTdkLi44YjBhZWM1NjY5ZGJmYjllMzg4M2Y3YWM5M2JmOWM1MjdkZjhlY2MyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApA
QCAtNDYsOSArNDYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4m
JiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVy
KQotICAgIDogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFdURk1vdmUocmVnaXN0cmFibGVE
b21haW4pLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCisgICAgOiBTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24oc2VydmVyLCBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwgc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0g
ICAgLCBtX3NlcnZlcihzZXJ2ZXIpCiAgICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQcm94
eUlEKQogewogICAgIHNlcnZlci5hZGRDb250ZXh0Q29ubmVjdGlvbigqdGhpcyk7CkBAIC02NCw4
ICs2Myw4IEBAIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6fldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpCiAgICAgZm9yIChhdXRvJiBkb3dubG9hZCA6IGRvd25sb2Fkcy52
YWx1ZXMoKSkKICAgICAgICAgZG93bmxvYWQtPmNvbnRleHRDbG9zZWQoKTsKIAotICAgIGlmICht
X3NlcnZlciAmJiBtX3NlcnZlci0+Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFp
bihyZWdpc3RyYWJsZURvbWFpbigpKSA9PSB0aGlzKQotICAgICAgICBtX3NlcnZlci0+cmVtb3Zl
Q29udGV4dENvbm5lY3Rpb24oKnRoaXMpOworICAgIGlmIChzZXJ2ZXIoKSAmJiBzZXJ2ZXIoKS0+
Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbigp
KSA9PSB0aGlzKQorICAgICAgICBzZXJ2ZXIoKS0+cmVtb3ZlQ29udGV4dENvbm5lY3Rpb24oKnRo
aXMpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24mIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6aXBjQ29ubmVjdGlvbigpIGNvbnN0CkBAIC04NSwxMyArODQsMTggQEAgdWludDY0X3QgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
IGNvbnN0CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7Ci0gICAgaWYgKCFtX3NlcnZlcikKKyAgICBpZiAo
IXNlcnZlcigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IG1fc2VydmVyLT5jb25uZWN0aW9uKGRlc3RpbmF0aW9uSWRlbnRpZmllci5wcm9jZXNzSWRlbnRp
ZmllcigpKSkKKyAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IHNlcnZlcigpLT5jb25uZWN0aW9u
KGRlc3RpbmF0aW9uSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpKSkKICAgICAgICAgY29u
bmVjdGlvbi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pOwogfQogCit2
b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xvc2UoKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDbG9zZSB7IH0pOworfQor
CiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3Jr
ZXJDb250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgY29udGV4dERhdGEsIGNv
bnN0IFNlcnZpY2VXb3JrZXJEYXRhJiB3b3JrZXJEYXRhLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgV29ya2VyVGhyZWFkTW9kZSB3b3JrZXJUaHJlYWRNb2RlKQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpJbnN0YWxsU2VydmljZVdvcmtlciB7
IGNvbnRleHREYXRhLCB3b3JrZXJEYXRhLCB1c2VyQWdlbnQsIHdvcmtlclRocmVhZE1vZGUgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5k
ZXggZDk1YjdjZTg1NDY5OGM1MTY2ZDNhMTU5YTM3ODhlZGUyZDliMjI4YS4uYmU5NjE1MjhkYjJm
YTBmYmRjMDk4NTZhZmNmMWUxNDhkMzY1YTAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOwogCi1jbGFzcyBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246IHB1YmxpYyBXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gZmluYWw6IHB1YmxpYyBXZWJDb3JlOjpTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlciYpOwogICAgIH5XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24oKTsKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVn
aXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CiAgICAgdm9pZCB1bnJl
Z2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOwogCi0gICAgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdDsKKyAgICBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsOwogICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CkBAIC05Nyw2ICs5Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgSGFz
aE1hcDxVUkwsIFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgZmluYWw7
CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwog
ICAgIHZvaWQgZmlyZVB1c2hFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCiAgICAgdm9p
ZCBjb25uZWN0aW9uSXNOb0xvbmdlck5lZWRlZCgpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRl
RHVlVG9VbnJlc3BvbnNpdmVuZXNzKCkgZmluYWw7CkBAIC0xMDQsNyArMTA1LDYgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKIAogICAgIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247Ci0gICAgV2Vha1B0cjxXZWJDb3JlOjpTV1NlcnZl
cj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQ
dHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7CiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckRvd25sb2Fk
VGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0
cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdv
cmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAppbmRleCA0NWU2OTdi
YTU0NzhkOGI1MDJmY2U1ZDA0ODAwMGI3YjRhZGM4YWExLi41ODFhNmU4ZTQ5Y2I3NjYwMTcxNTBj
OTMwNjcwNGZkNzg5MDhiYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5j
cHAKQEAgLTI1OSw0ICsyNTksMTQgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnBvc3RF
eGNlcHRpb25Ub1dvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGUKICAgICB9KTsK
IH0KIAordm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3Ry
YWJsZURvbWFpbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIp
Cit7CisgICAgYXV0byogY29udGV4dENvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVjdGlvbkZvclJl
Z2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFy
ZWRXb3JrZXIsICJXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlOiBwcm9jZXNzSWRlbnRpZmllcj0lIiBQUkl1NjQgIiwgY29udGV4dENv
bm5lY3Rpb249JXAiLCBwcm9jZXNzSWRlbnRpZmllci50b1VJbnQ2NCgpLCBjb250ZXh0Q29ubmVj
dGlvbik7CisgICAgaWYgKCFjb250ZXh0Q29ubmVjdGlvbiB8fCBjb250ZXh0Q29ubmVjdGlvbi0+
d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSAhPSBwcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29udGV4dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVy
LmgKaW5kZXggMThiMzEwZTU1YTZjYTZlNWM5ZjY0ZjcxYzU0YTU4MDNlNzNhMDZhMi4uZjhiNDVh
ZTRhMDE4ZWFmMDM2MTBhNWI5YWZkOWZjNTYzYjYxMmY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVk
V29ya2VyU2VydmVyLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hhcmVk
V29ya2VyT2JqZWN0SXNHb2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5Jiwg
V2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBwb3N0RXhj
ZXB0aW9uVG9Xb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VySWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZUNvbnRleHRD
b25uZWN0aW9uV2hlblBvc3NpYmxlKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgYWRkQ29udGV4dENvbm5lY3Rp
b24oV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYpOwogICAgIHZvaWQg
cmVtb3ZlQ29udGV4dENvbm5lY3Rpb24oV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbiYpOwogICAgIHZvaWQgYWRkQ29ubmVjdGlvbihzdGQ6OnVuaXF1ZV9wdHI8V2ViU2hh
cmVkV29ya2VyU2VydmVyQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29y
a2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGM4
YWQ4NWVlM2MzMGIwM2I3NTUxZDMzOWZiY2Q2MDgzMWYxNmVjMDYuLjQ0NmI5ZTU2ZGE5NTEyYzg1
MjkxYWU3MWQwZjA4MzNmODAyYTM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2Vy
L1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xNDgsNyAr
MTQ4LDcgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpy
ZW1vdmVTaGFyZWRXb3JrZXJPYmplY3QoV2ViQ29yZToKICAgICBpZiAobV9zaGFyZWRXb3JrZXJP
YmplY3RzLmlzRW1wdHkoKSkgewogICAgICAgICBDT05URVhUX0NPTk5FQ1RJT05fUkVMRUFTRV9M
T0coInJlbW92ZVNoYXJlZFdvcmtlck9iamVjdDogY29ubmVjdGlvbiBpcyBub3cgaWRsZSwgc3Rh
cnRpbmcgYSB0aW1lciB0byB0ZXJtaW5hdGUgaXQiKTsKICAgICAgICAgQVNTRVJUKCFtX2lkbGVU
ZXJtaW5hdGlvblRpbWVyLmlzQWN0aXZlKCkpOwotICAgICAgICBtX2lkbGVUZXJtaW5hdGlvblRp
bWVyLnN0YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5k
ZXJNZW1vcnlQcmVzc3VyZSgpID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOworICAgICAg
ICBtX2lkbGVUZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpIHx8IG1fc2hvdWxkVGVybWlu
YXRlV2hlblBvc3NpYmxlID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIv
V2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDJhYTU0MzkwM2FjYjU0Yzk3NGFjMjgzMmMwNzU3MmQ0OTkz
NTBmMzkuLjk5ZGEzODYwNmVjYWZlMWYwYzZmMzBkNTVjZDEwODlmNDJkNzQ2OTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdv
cmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVn
aXN0cmFibGVEb21haW47IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGlwY0Nvbm5lY3Rpb24oKSBj
b25zdDsKIAorICAgIHZvaWQgdGVybWluYXRlV2hlblBvc3NpYmxlKCkgeyBtX3Nob3VsZFRlcm1p
bmF0ZVdoZW5Qb3NzaWJsZSA9IHRydWU7IH0KKwogICAgIHZvaWQgbGF1bmNoU2hhcmVkV29ya2Vy
KFdlYlNoYXJlZFdvcmtlciYpOwogICAgIHZvaWQgcG9zdENvbm5lY3RFdmVudChjb25zdCBXZWJT
aGFyZWRXb3JrZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik7CiAg
ICAgdm9pZCB0ZXJtaW5hdGVTaGFyZWRXb3JrZXIoY29uc3QgV2ViU2hhcmVkV29ya2VyJik7CkBA
IC04NSw2ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
bV9yZWdpc3RyYWJsZURvbWFpbjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyLCBIYXNoU2V0PFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXI+PiBtX3No
YXJlZFdvcmtlck9iamVjdHM7CiAgICAgV2ViQ29yZTo6VGltZXIgbV9pZGxlVGVybWluYXRpb25U
aW1lcjsKKyAgICBib29sIG1fc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlIHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNTI4ZTE0Njhi
MDQ4OTY0ZTNlMTc5NTZkMmE5OTE0MjY5OGQyYmFlZi4uNmMzMjFiM2Q3MTQ3NjliODRmZWJjNzRh
MTMxOGM4ZjlmMzdjZWZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNzgyLDYgKzE3ODIsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRp
b25QZXJtaXNzaW9ucyhQQUw6OlNlc3MKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpHZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJtaXNz
aW9ucyB7IHNlc3Npb25JRCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVu
UG9zc2libGUoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFp
biwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpCit7CisgICAg
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRl
eHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKHdvcmtlclR5cGUsIHNlc3Npb25JRCwgcmVnaXN0cmFi
bGVEb21haW4sIHByb2Nlc3NJZGVudGlmaWVyKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBjM2U3YWI3ZDY0YzI3
ZTA3MGVhOGQ5MjQwNWVlNDllMjk5MzMyNWRkLi4yNTI4MzNmZjIwNTUwZDgyNDhjYzZlMWU1NTQ1
OGNiMGU3NzMzZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjk5LDYgKzI5OSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRhdGFUYXNrRGlkQ29tcGxldGVXaXRoRXJyb3IoRGF0YVRhc2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZvaWQgY2FuY2VsRGF0YVRhc2soRGF0YVRh
c2tJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVJlbW90
ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUsIFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDM0OTM3ZmI4MmQ2YWJiNzU4OTJmYzVmNDk1ZTBkMTdhMjkwMzEwMTIuLmJlOTZi
NDFkZTI3NTJmYzYzNTkzNDE2M2U1YjAyMDU1YWZlZGMyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTY4OSw5ICsxNjg5LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZShjb25z
dCBVUkwmIHVybCkKIAogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB7IHVybCB9OwogICAgIGlmIChtX3JlZ2lzdHJhYmxlRG9tYWluICYmICpt
X3JlZ2lzdHJhYmxlRG9tYWluICE9IHJlZ2lzdHJhYmxlRG9tYWluKSB7Ci0jaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgICAgICBkaXNhYmxlUmVtb3RlV29ya2VycyhSZW1vdGVXb3JrZXJU
eXBlOjpTZXJ2aWNlV29ya2VyKTsKLSNlbmRpZgorICAgICAgICBpZiAoaXNSdW5uaW5nU2Vydmlj
ZVdvcmtlcnMoKSkKKyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2Vz
cygpLnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJl
bW90ZVdvcmtlclR5cGU6OlNlcnZpY2VXb3JrZXIsIHdlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9u
SUQoKSwgKm1fcmVnaXN0cmFibGVEb21haW4sIGNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAg
ICAgICAgaWYgKGlzUnVubmluZ1NoYXJlZFdvcmtlcnMoKSkKKyAgICAgICAgICAgIHdlYnNpdGVE
YXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRD
b25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGU6OlNoYXJlZFdvcmtlciwgd2Vi
c2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpLCAqbV9yZWdpc3RyYWJsZURvbWFpbiwgY29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOwogCiAgICAgICAgIC8vIE51bGwgb3V0IHJlZ2lzdHJhYmxlIGRv
bWFpbiBzaW5jZSB0aGlzIHByb2Nlc3MgaGFzIG5vdyBiZWVuIHVzZWQgZm9yIHNldmVyYWwgZG9t
YWlucy4KICAgICAgICAgbV9yZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHsgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBiMTI0ZDUyYjA1NGJiYmIxYWJlMjg1NTZiYTZkYTRhNDlkZWIw
Y2NlLi4wYWFkZDAxMmRhODczYzJhMGQwYTU5ZjY2Yjg0ZDBjMzE2M2E1NzVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjItMDMtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNTYtcjI5MDM1MT8pOiBbIGlPUyBFV1MgXSAzIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyLyogdGVzdHMgYXJlIGNvbnN0YW50IHRleHQgZmFpbHVyZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxNjAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg5NDQwMDY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0IGFyZSBubyBsb25nZXIgZmFpbGluZy4KKworICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAzLTAyICBPcmlv
bCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzc10gSW1wbGVtZW50
ICd0ZXh0LWRlY29yYXRpb24nIGFzIGEgc2hvcnRoYW5kLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggMTY0ZGU1ZGI5MDFjNjgwZDViNzc1NzRhZDJiNjU2MjUyMmQ4NTFhYS4uY2Fh
NDcyYmViZWNjZjRlNTA2YmFiOWE5OGYxNTcxMGM5YmFmYjNkOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDMtMDIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNTYtcjI5MDM1MT8p
OiBbIGlPUyBFV1MgXSAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyLyogdGVzdHMgYXJlIGNvbnN0YW50IHRleHQgZmFpbHVyZXMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxNjAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQwMDY3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgdGVzdCB0aGF0IGlzIG5vdyBw
YXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0wMiAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3NdIEltcGxlbWVudCAndGV4dC1kZWNvcmF0aW9uJyBhcyBhIHNo
b3J0aGFuZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8t
ZnJlc2huZXNzLWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggNGJmNTJjOTJiODQ2NzE1YWQwMDdiNTA0OTQ0ODcwM2EyY2I4OTJhOC4uMzg4MjQ5MTRlMTJh
NDgyOWYyYjFhZTBlZDc1M2I5MWE2Yjk3NGFmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGhlIGhlYWRlcnMg
b2YgRmV0Y2hFdmVudCBzaG91bGRuJ3QgY29udGFpbiBmcmVzaG5lc3MgaGVhZGVycy4gYXNzZXJ0
X2ZhbHNlOiBpZi1ub25lLW1hdGNoIGhlYWRlciBtdXN0IG5vdCBiZSBzZXQgaW4gdGhlIEZldGNo
RXZlbnQncyByZXF1ZXN0LiAodXJsID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNz
LWhlYWRlcnMtc2NyaXB0LnB5KSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBUaGUgaGVh
ZGVycyBvZiBGZXRjaEV2ZW50IHNob3VsZG4ndCBjb250YWluIGZyZXNobmVzcyBoZWFkZXJzLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNlMzA3NzRm
YzhkODI5YjU3N2JmZTFkMjAzMWQxMGY3MjE3ZjdlNjUuLjA3NWQ4ZjRhMjQ4NjA4MmMzNGNhMjBi
Mjk4MTExYTNmNjIxYzE5YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTg4LDggKzIxODgsNiBAQCB3ZWJraXQub3JnL2IvMTUyNDQyIGZhc3Qvc2Ny
b2xsaW5nL3J0bC1wb2ludC1pbi1pZnJhbWUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2Iv
MTUyMjgyIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFuc2l0aW9uLWxheWVydHJl
ZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzcxNjAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGFydGl0aW9u
ZWQtc2VydmljZS13b3JrZXIudGVudGF0aXZlLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Vi
a2l0Lm9yZy9iLzE1MjkzNSBmYXN0L3Njcm9sbGluZy9zY3JvbGwtcG9zaXRpb24tb24tcmVsb2Fk
LXJ0bC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNTMzNzEgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZ2V0cmVzcG9uc2VoZWFkZXItY2h1bmtlZC10cmFpbGVy
Lmh0bSBbIFBhc3MgRmFpbHVyZSBdCkBAIC0zNTA0LDcgKzM1MDIsMyBAQCB3ZWJraXQub3JnL2Iv
MjM3Mjk1IGZhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRpb24tZ3B1LXByb2Nlc3MtY3Jhc2gu
aHRtbCBbIFBhcwogd2Via2l0Lm9yZy9iLzIzNjc5NCBlZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmct
d29yZC13aXRoLW1hcmtlci0yLmh0bWwgWyBQYXNzIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzIz
NzE1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OS5odG1sIFsgUGFzcyBDcmFzaCBd
Ci0KLXdlYmtpdC5vcmcvYi8yMzcxNjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3Mt
aGVhZGVycy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzIzNzE2
MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9wYXJ0aXRpb25lZC1zZXJ2aWNlLXdvcmtlci1nZXRSZWdpc3RyYXRpb25zLnRlbnRh
dGl2ZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453663</attachid>
            <date>2022-03-02 14:51:18 -0800</date>
            <delta_ts>2022-03-03 07:21:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237160-20220302145117.patch</filename>
            <type>text/plain</type>
            <size>39186</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTliMTJkMzRjMmQ1Mjk4
NjRhNmJmN2NkYmMyMzM4M2NmNjdlMDVmYy4uN2QzNDVhMzliZTUxOGQ2ZmEwOGU1ZGIwNTgwMDY2
MTkxMWNiZjNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjkwMzU2
LXIyOTAzNTE/KTogWyBpT1MgRVdTIF0gMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci8qIHRlc3RzIGFyZSBjb25zdGFudCB0ZXh0
IGZhaWx1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTQ0MDA2Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjkwMzUyLCBJIG1hZGUg
YSBjaGFuZ2Ugc28gdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgaXMgbW9yZSBsaWtlbHkgdG8gbGF1
bmNoIGluIHRoZSBXZWJDb250ZW50CisgICAgICAgIHByb2Nlc3MgdGhhdCBjYXVzZWQgaXQgdG8g
bGF1bmNoLiBUaGlzIGlzIGJlbmVmaWNpYWwgZm9yIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgdXNh
Z2UuCisKKyAgICAgICAgVGhlIHBhcnRpdGlvbmVkLXNlcnZpY2Utd29ya2VyKi5odG1sIHNlcnZp
Y2Ugd29ya2VyIHRlc3RzIGFyZSByZWx5aW5nIG9uIGFuIElEIHZhcmlhYmxlIHRoYXQgaXMKKyAg
ICAgICAgcmFuZG9tbHkgZ2VuZXJhdGVkIGluc2lkZSB0aGUgc2VydmljZSB3b3JrZXIgYW5kIHRo
ZXkgZXhwZWN0IHRoaXMgSUQgdG8gbm90IGNoYW5nZSBkdXJpbmcgdGhlCisgICAgICAgIGR1cmF0
aW9uIG9mIHRoZSB0ZXN0LiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4
aXRzIC8gcmVsYXVuY2hlcywgdGhvc2UgdGVzdHMgc3RhcnQKKyAgICAgICAgZmFpbGluZyBiZWNh
dXNlIHRoZSBJRCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpc3N1ZSBpcyB0aGF0IHdlIGhhdmUg
bG9naWMgaW4gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZSgpIHRoYXQKKyAgICAgICAgdGVybWluYXRlcyB0aGUgc2VydmljZSB3b3JrZXJzIHJ1bm5p
bmcgaW5zaWRlIHRoZSBXZWJQcm9jZXNzIGlmIGEgbmV3IGVUTEQrMSBwYWdlIGlzIGxvYWRlZCBp
bnNpZGUKKyAgICAgICAgdGhlIHByb2Nlc3MuIFdlIGRvIHNvIHRvIHRyeSBhbmQgYWNoaWV2ZSBi
ZXR0ZXIgcHJvY2VzcyBpc29sYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgc2l0ZXMuIFRoZQorICAg
ICAgICBpc3N1ZSBpcyB0aGF0IHRob3NlIHRlc3RzIGxhdW5jaCBhIHNlcnZpY2Ugd29ya2VyIGFu
ZCB0aGVuIG9wZW4gYSBuZXcgY3Jvc3Mtc2l0ZSBwb3B1cC4gV2hlbiB0aGUKKyAgICAgICAgY3Jv
c3Mtc2l0ZSBwb3B1cCBsb2FkcyBpbnNpZGUgdGhlIHNhbWUgcHJvY2Vzcywgd2UnZCBtYWtlIHRo
ZSBkZWNpc2lvbiB0byB0ZXJtaW5hdGUgdGhlIHNlcnZpY2UKKyAgICAgICAgd29ya2VycyBpbiB0
aGlzIHByb2Nlc3MgYW5kIHJlbGF1bmNoIHRoZW0gaW4gYSBuZXcgY2xlYW4gb25lLCBjYXVzaW5n
IHRoZSB0ZXN0cyB0byBmYWlsLgorCisgICAgICAgIFdoaWxlIGl0IGlzIHRydWUgcGVyIHRoZSBz
cGVjaWZpY2F0aW9uIHRoYXQgc2VydmljZSB3b3JrZXJzIGNhbiBiZSB0ZXJtaW5hdGVkIC8gcmVs
YXVuY2hlZCBhdAorICAgICAgICBhbG1vc3QgYW55IHBvaW50LCB0aGVyZSBhcmUgZXhjZXB0aW9u
cy4gSW4gcGFydGljdWxhciwgd2Ugc2hvdWxkIGtlZXAgYSBzZXJ2aWNlIHdvcmtlciBydW5uaW5n
CisgICAgICAgIGlmIGl0IHN0aWxsIGhhcyBwZW5kaW5nIGV4dGVuZGFibGUgZXZlbnRzLiBGb3Ig
dGhpcyByZWFzb24sIHRoZSB0ZXN0cyByZWx5IG9uIEZldGNoRXZlbnQud2FpdFVudGlsKCkKKyAg
ICAgICAgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgcnVubmluZy4gU2FkbHksIHdlIHdvdWxk
IG5vdCBvYmV5IHRoYXQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlz
c3VlLCB3ZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsb3NlIHRoZSBzZXJ2aWNlIHdvcmtl
ciBjb250ZXh0IGNvbm5lY3Rpb24KKyAgICAgICAgd2hlbiBhIFdlYlByb2Nlc3MgbG9hZHMgYSBu
ZXcgZVRMRCsxLiBJbnN0ZWFkLCB3ZSB0ZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgdG8gY2xvc2Ug
dGhhdCBjb25uZWN0aW9uCisgICAgICAgIGFzIHNvb24gYXMgcG9zc2libGUuIFdoZW4gdGhlIG5l
dHdvcmsgcHJvY2VzcyByZWNlaXZlcyB0aGlzIElQQywgaXQgdGVybWluYXRlcyB0aGUgY29udGV4
dAorICAgICAgICBjb25uZWN0aW9uIE9OTFkgaWYgdGhlIHNlcnZpY2Ugd29ya2VycyB1c2luZyB0
aGUgY29ubmVjdGlvbiBoYXZlIG5vIHBlbmRpbmcgZXZlbnRzLiBJZiB3ZSBjYW5ub3QKKyAgICAg
ICAgY2xvc2UgdGhlIGNvbnRleHQgY29ubmVjdGlvbiByaWdodCBhd2F5LCB3ZSBzZXQgYSBmbGFn
IG9uIHRoZSBjb250ZXh0IGNvbm5lY3Rpb24gdG8gaW5kaWNhdGUgdGhhdAorICAgICAgICB3ZSBz
aG91bGQgY2xvc2UgaXQgYXMgc29vbiBhcyBwb3NzaWJsZS4gQ3VycmVudGx5LCB0aGlzIGZsYWcg
aXMgb25seSB1c2VkIHRvIGNsb3NlIHRoZSBjb25uZWN0aW9uCisgICAgICAgIHJpZ2h0IGF3YXkg
KG5vIDEwIHNlY29uZCBkZWxheSkgb25jZSB0aGUgY29ubmVjdGlvbiBubyBsb25nZXIgaGFzIGFu
eSBjbGllbnRzLiBJIHRoaW5rIHRoYXQsIGlkZWFsbHksCisgICAgICAgIHdlJ2QgY2xvc2UgdGhl
IGNvbm5lY3Rpb24gYXMgc29vbiBhcyB0aGUgc2VydmljZSB3b3JrZXJzIG5vIGxvbmdlciBoYXZl
IHBlbmRpbmcgZXZlbnRzLiBIb3dldmVyLAorICAgICAgICB0aGlzIGFkZHMgY29tcGxleGl0eSBh
bmQgaXMgZXJyb3ItcHJvbmUgc28gSSBkaWRuJ3QgaW1wbGVtZW50IGl0IGluIHRoaXMgcGF0Y2gg
YW5kIG1lcmVseSBhZGRlZCBhCisgICAgICAgIEZJWE1FIGNvbW1lbnQuIEFzIGl0IHN0YW5kcywg
bXkgcGF0Y2ggU1RJTEwgcmVsYXVuY2hlcyBzZXJ2aWNlIHdvcmtlcnMgaW4gb3JpZ2luLWNsZWFu
IHByb2Nlc3NlcworICAgICAgICBpbiB0aGUgY29tbW9uIGNhc2UuIEl0IG9ubHkgZmFpbHMgdG8g
ZG8gc28gaW4gdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIHBlbmRpbmcgc2VydmljZSB3b3JrZXIK
KyAgICAgICAgZXZlbnRzIHdoaWNoIGlzIGEgY2FzZSB3aGVyZSB3ZSBoYWQgdGhlIGNvcnJlY3Ru
ZXNzIGJ1ZyBhbnl3YXkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3Rp
bmcgdGVzdHMuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpmb3JFYWNoU2VydmljZVdvcmtlciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dGVybWluYXRlQ29udGV4dENvbm5lY3Rp
b25XaGVuUG9zc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZXJ2ZXIgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXaGVuUG9zc2li
bGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OnNob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSBjb25zdCk6CisKIDIwMjItMDMtMDIgIE9y
aW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzXSBJbXBsZW1l
bnQgJ3RleHQtZGVjb3JhdGlvbicgYXMgYSBzaG9ydGhhbmQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwZmZmYzdm
ODk0MTcwNWRmYmMxMTRiNTc3M2VjODliYmY3MTRkNTIuLmU3ZmM1ZmUxNzMwNmY3ODIzZGI4MDZl
Y2FkYTI0YTQ0NWViMzZkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjItMDMtMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIy
OTAzNTYtcjI5MDM1MT8pOiBbIGlPUyBFV1MgXSAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLyogdGVzdHMgYXJlIGNvbnN0YW50
IHRleHQgZmFpbHVyZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzcxNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQwMDY3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyOTAzNTIsIEkg
bWFkZSBhIGNoYW5nZSBzbyB0aGF0IHRoZSBzZXJ2aWNlIHdvcmtlciBpcyBtb3JlIGxpa2VseSB0
byBsYXVuY2ggaW4gdGhlIFdlYkNvbnRlbnQKKyAgICAgICAgcHJvY2VzcyB0aGF0IGNhdXNlZCBp
dCB0byBsYXVuY2guIFRoaXMgaXMgYmVuZWZpY2lhbCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1lbW9y
eSB1c2FnZS4KKworICAgICAgICBUaGUgcGFydGl0aW9uZWQtc2VydmljZS13b3JrZXIqLmh0bWwg
c2VydmljZSB3b3JrZXIgdGVzdHMgYXJlIHJlbHlpbmcgb24gYW4gSUQgdmFyaWFibGUgdGhhdCBp
cworICAgICAgICByYW5kb21seSBnZW5lcmF0ZWQgaW5zaWRlIHRoZSBzZXJ2aWNlIHdvcmtlciBh
bmQgdGhleSBleHBlY3QgdGhpcyBJRCB0byBub3QgY2hhbmdlIGR1cmluZyB0aGUKKyAgICAgICAg
ZHVyYXRpb24gb2YgdGhlIHRlc3QuIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgc2VydmljZSB3b3Jr
ZXIgZXhpdHMgLyByZWxhdW5jaGVzLCB0aG9zZSB0ZXN0cyBzdGFydAorICAgICAgICBmYWlsaW5n
IGJlY2F1c2UgdGhlIElEIGNoYW5nZXMuCisKKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgd2Ug
aGF2ZSBsb2dpYyBpbiBXZWJQcm9jZXNzUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
TWFpbkZyYW1lKCkgdGhhdAorICAgICAgICB0ZXJtaW5hdGVzIHRoZSBzZXJ2aWNlIHdvcmtlcnMg
cnVubmluZyBpbnNpZGUgdGhlIFdlYlByb2Nlc3MgaWYgYSBuZXcgZVRMRCsxIHBhZ2UgaXMgbG9h
ZGVkIGluc2lkZQorICAgICAgICB0aGUgcHJvY2Vzcy4gV2UgZG8gc28gdG8gdHJ5IGFuZCBhY2hp
ZXZlIGJldHRlciBwcm9jZXNzIGlzb2xhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBzaXRlcy4gVGhl
CisgICAgICAgIGlzc3VlIGlzIHRoYXQgdGhvc2UgdGVzdHMgbGF1bmNoIGEgc2VydmljZSB3b3Jr
ZXIgYW5kIHRoZW4gb3BlbiBhIG5ldyBjcm9zcy1zaXRlIHBvcHVwLiBXaGVuIHRoZQorICAgICAg
ICBjcm9zcy1zaXRlIHBvcHVwIGxvYWRzIGluc2lkZSB0aGUgc2FtZSBwcm9jZXNzLCB3ZSdkIG1h
a2UgdGhlIGRlY2lzaW9uIHRvIHRlcm1pbmF0ZSB0aGUgc2VydmljZQorICAgICAgICB3b3JrZXJz
IGluIHRoaXMgcHJvY2VzcyBhbmQgcmVsYXVuY2ggdGhlbSBpbiBhIG5ldyBjbGVhbiBvbmUsIGNh
dXNpbmcgdGhlIHRlc3RzIHRvIGZhaWwuCisKKyAgICAgICAgV2hpbGUgaXQgaXMgdHJ1ZSBwZXIg
dGhlIHNwZWNpZmljYXRpb24gdGhhdCBzZXJ2aWNlIHdvcmtlcnMgY2FuIGJlIHRlcm1pbmF0ZWQg
LyByZWxhdW5jaGVkIGF0IAorICAgICAgICBhbG1vc3QgYW55IHBvaW50LCB0aGVyZSBhcmUgZXhj
ZXB0aW9ucy4gSW4gcGFydGljdWxhciwgd2Ugc2hvdWxkIGtlZXAgYSBzZXJ2aWNlIHdvcmtlciBy
dW5uaW5nCisgICAgICAgIGlmIGl0IHN0aWxsIGhhcyBwZW5kaW5nIGV4dGVuZGFibGUgZXZlbnRz
LiBGb3IgdGhpcyByZWFzb24sIHRoZSB0ZXN0cyByZWx5IG9uIEZldGNoRXZlbnQud2FpdFVudGls
KCkKKyAgICAgICAgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgcnVubmluZy4gU2FkbHksIHdl
IHdvdWxkIG5vdCBvYmV5IHRoYXQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFRvIGFkZHJlc3Mg
dGhlIGlzc3VlLCB3ZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsb3NlIHRoZSBzZXJ2aWNl
IHdvcmtlciBjb250ZXh0IGNvbm5lY3Rpb24KKyAgICAgICAgd2hlbiBhIFdlYlByb2Nlc3MgbG9h
ZHMgYSBuZXcgZVRMRCsxLiBJbnN0ZWFkLCB3ZSB0ZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgdG8g
Y2xvc2UgdGhhdCBjb25uZWN0aW9uCisgICAgICAgIGFzIHNvb24gYXMgcG9zc2libGUuIFdoZW4g
dGhlIG5ldHdvcmsgcHJvY2VzcyByZWNlaXZlcyB0aGlzIElQQywgaXQgdGVybWluYXRlcyB0aGUg
Y29udGV4dCAKKyAgICAgICAgY29ubmVjdGlvbiBPTkxZIGlmIHRoZSBzZXJ2aWNlIHdvcmtlcnMg
dXNpbmcgdGhlIGNvbm5lY3Rpb24gaGF2ZSBubyBwZW5kaW5nIGV2ZW50cy4gSWYgd2UgY2Fubm90
CisgICAgICAgIGNsb3NlIHRoZSBjb250ZXh0IGNvbm5lY3Rpb24gcmlnaHQgYXdheSwgd2Ugc2V0
IGEgZmxhZyBvbiB0aGUgY29udGV4dCBjb25uZWN0aW9uIHRvIGluZGljYXRlIHRoYXQKKyAgICAg
ICAgd2Ugc2hvdWxkIGNsb3NlIGl0IGFzIHNvb24gYXMgcG9zc2libGUuIEN1cnJlbnRseSwgdGhp
cyBmbGFnIGlzIG9ubHkgdXNlZCB0byBjbG9zZSB0aGUgY29ubmVjdGlvbgorICAgICAgICByaWdo
dCBhd2F5IChubyAxMCBzZWNvbmQgZGVsYXkpIG9uY2UgdGhlIGNvbm5lY3Rpb24gbm8gbG9uZ2Vy
IGhhcyBhbnkgY2xpZW50cy4gSSB0aGluayB0aGF0LCBpZGVhbGx5LAorICAgICAgICB3ZSdkIGNs
b3NlIHRoZSBjb25uZWN0aW9uIGFzIHNvb24gYXMgdGhlIHNlcnZpY2Ugd29ya2VycyBubyBsb25n
ZXIgaGF2ZSBwZW5kaW5nIGV2ZW50cy4gSG93ZXZlciwKKyAgICAgICAgdGhpcyBhZGRzIGNvbXBs
ZXhpdHkgYW5kIGlzIGVycm9yLXByb25lIHNvIEkgZGlkbid0IGltcGxlbWVudCBpdCBpbiB0aGlz
IHBhdGNoIGFuZCBtZXJlbHkgYWRkZWQgYQorICAgICAgICBGSVhNRSBjb21tZW50LiBBcyBpdCBz
dGFuZHMsIG15IHBhdGNoIFNUSUxMIHJlbGF1bmNoZXMgc2VydmljZSB3b3JrZXJzIGluIG9yaWdp
bi1jbGVhbiBwcm9jZXNzZXMKKyAgICAgICAgaW4gdGhlIGNvbW1vbiBjYXNlLiBJdCBvbmx5IGZh
aWxzIHRvIGRvIHNvIGluIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBwZW5kaW5nIHNlcnZpY2Ug
d29ya2VyCisgICAgICAgIGV2ZW50cyB3aGljaCBpcyBhIGNhc2Ugd2hlcmUgd2UgaGFkIHRoZSBj
b3JyZWN0bmVzcyBidWcgYW55d2F5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRl
UmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6fldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBv
c3NpYmxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVk
V29ya2VyU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZW1vdmVTaGFy
ZWRXb3JrZXJPYmplY3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JNYWluRnJhbWUpOgorCiAyMDIyLTAzLTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gQ29tcGxldGlvbiBoYW5kbGVyIGlzIG5vdCBj
YWxsZWQgd2hlbiBXZWJBdXRobiBpbnZva2VkIHdpdGhvdXQgcHJvcGVyIGVudGl0bGVtZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cAppbmRleCBkYjYyNzc5MDcyNTIzNDY3ZTJhMjY4ZTIzZTE2MDFmMjEyYjVhZTFkLi44ZTFmNWNl
ZWE3Y2MyODhkZjM3ODliZDQ1NTNiZmRhNjY1NGFhNjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtNzM2LDYgKzczNiwy
MyBAQCB2b2lkIFNXU2VydmVyOjpjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uJiBjb250ZXh0Q29ubgogICAgIH0KIH0KIAordm9pZCBTV1NlcnZlcjo6
Zm9yRWFjaFNlcnZpY2VXb3JrZXIoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBTV1NlcnZlcldv
cmtlciYpPiYgYXBwbHkpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB3b3JrZXIgOiBtX3J1bm5p
bmdPclRlcm1pbmF0aW5nV29ya2Vycy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoIWFwcGx5KHdv
cmtlcikpCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgU1dTZXJ2ZXI6OnRl
cm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZWdpc3RyYWJsZURvbWFpbiwgUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZp
ZXIpCit7CisgICAgYXV0byogY29udGV4dENvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVjdGlvbkZv
clJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBpZiAoIWNvbnRleHRD
b25uZWN0aW9uIHx8IGNvbnRleHRDb25uZWN0aW9uLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpICE9
IHByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0Q29ubmVj
dGlvbi0+dGVybWluYXRlV2hlblBvc3NpYmxlKCk7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6Omluc3Rh
bGxDb250ZXh0RGF0YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiB7CiAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghZGF0YS5sb2FkZWRGcm9tRGlzaywgIldvcmtlcnMgd2Ug
anVzdCByZWFkIGZyb20gZGlzayBzaG91bGQgb25seSBiZSBsYXVuY2hlZCBhcyBuZWVkZWQiKTsK
QEAgLTEwMzYsNyArMTA1Myw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTCiAKICAgICAgICAg
ICAgIG1fY2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4ucmVtb3ZlKGNsaWVudE9yaWdpbik7CiAg
ICAgICAgIH0pOwotICAgICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdvcmtl
cnNUaW1lci0+c3RhcnRPbmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQg
JiYgIU1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNz
dXJlKCkgJiYgIWRpZFVucmVnaXN0ZXIgPyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA6IDBfcyk7
CisgICAgICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gY29udGV4dENvbm5lY3Rpb25Gb3JS
ZWdpc3RyYWJsZURvbWFpbihjbGllbnRSZWdpc3RyYWJsZURvbWFpbik7CisgICAgICAgIGJvb2wg
c2hvdWxkQ29udGV4dENvbm5lY3Rpb25CZVRlcm1pbmF0ZWRXaGVuUG9zc2libGUgPSBjb250ZXh0
Q29ubmVjdGlvbiAmJiBjb250ZXh0Q29ubmVjdGlvbi0+c2hvdWxkVGVybWluYXRlV2hlblBvc3Np
YmxlKCk7CisgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1Rp
bWVyLT5zdGFydE9uZVNob3QobV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCAmJiAh
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5pc1VuZGVyTWVtb3J5UHJlc3N1cmUo
KSAmJiAhc2hvdWxkQ29udGV4dENvbm5lY3Rpb25CZVRlcm1pbmF0ZWRXaGVuUG9zc2libGUgJiYg
IWRpZFVucmVnaXN0ZXIgPyBkZWZhdWx0VGVybWluYXRpb25EZWxheSA6IDBfcyk7CiAgICAgfQog
CiAgICAgLy8gSWYgdGhlIGFwcC1ib3VuZCB2YWx1ZSBjaGFuZ2VkIGFmdGVyIHRoaXMgY2xpZW50
IHdhcyByZW1vdmVkLCB3ZSBrbm93IGl0IHdhcyB0aGUgb25seSBhcHAtYm91bmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBhZmQ0
ZjgzMDE3NWFmZDM4OTM3N2NkZDRmY2RmNDFiZGU3MTg4YzFiLi41YTJlMmU0YTYxOTk1ZjdhMThl
NTAzOWI0NGNlN2ZmZjlmZmFlZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xNzksNiArMTc5LDcgQEAgcHVibGljOgogICAg
IHZvaWQgd29ya2VyQ29udGV4dFRlcm1pbmF0ZWQoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lk
IG1hdGNoQWxsKFNXU2VydmVyV29ya2VyJiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5
T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKTsKICAgICBz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IGNsYWltKFNXU2VydmVyV29ya2VyJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJs
ZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFByb2Nlc3NJZGVudGlmaWVyKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBIYXNoU2V0PFNXU2VydmVyKj4mIGFsbFNlcnZlcnMoKTsKIApA
QCAtMjI4LDYgKzIyOSw4IEBAIHB1YmxpYzoKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElkRnJvbVZpc2libGVDbGllbnRJZChjb25zdCBTdHJpbmcmIHZpc2li
bGVJZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVDbGllbnRJZFRvSW50ZXJuYWxD
bGllbnRJZE1hcC5nZXQodmlzaWJsZUlkZW50aWZpZXIpOyB9CiAKKyAgICB2b2lkIGZvckVhY2hT
ZXJ2aWNlV29ya2VyKGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgU1dTZXJ2ZXJXb3JrZXImKT4m
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHZhbGlkYXRlUmVnaXN0cmF0aW9uRG9tYWlu
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBTZXJ2aWNlV29ya2VySm9iVHlwZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAppbmRleCA1NDI4YWE0NjU1NDU4ODQ4NzkwMTdjNDUxZDk4ZjhhYzllNjJh
ZDdjLi42NTYzNjJhMDkxMTEwYjRjMTM2N2I2ZDVhMTQwNDYwNDgzOTJlZDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC00MCw4ICs0MCw5IEBAIHN0YXRp
YyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyIGdlbmVyYXRlU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbklkCiAgICAgcmV0dXJuIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bklkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiB9CiAKLVNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0
cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKLSAgICA6IG1faWRlbnRpZmllcihnZW5l
cmF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyKCkpCitTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihTV1NlcnZlciYgc2Vy
dmVyLCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFs
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIpCisgICAgOiBtX3NlcnZlcihzZXJ2ZXIpCisgICAgLCBtX2lkZW50aWZpZXIoZ2VuZXJh
dGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllcigpKQogICAgICwgbV9yZWdpc3Ry
YWJsZURvbWFpbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAsIG1fc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKIHsKQEAgLTUx
LDYgKzUyLDExIEBAIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6flNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbigpCiB7CiB9CiAKK1NXU2VydmVyKiBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OnNlcnZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VydmVyLmdldCgpOworfQor
CiB2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c2NyaXB0Q29udGV4dEZhaWxlZFRv
U3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+
JiBqb2JEYXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZiAoYXV0byogd29y
a2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2aWNl
V29ya2VySWRlbnRpZmllcikpCkBAIC0xMzEsNiArMTM3LDI1IEBAIHZvaWQgU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjpkaWRGYWlsSGVhcnRCZWF0Q2hlY2soU2VydmljZVdvcmtlcklkZW50
aWZpZXIKICAgICAgICAgd29ya2VyLT5kaWRGYWlsSGVhcnRCZWF0Q2hlY2soKTsKIH0KIAordm9p
ZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpCit7
CisgICAgbV9zaG91bGRUZXJtaW5hdGVXaGVuUG9zc2libGUgPSB0cnVlOworCisgICAgYm9vbCBo
YXNTZXJ2aWNlV29ya2VyV2l0aFBlbmRpbmdFdmVudHMgPSBmYWxzZTsKKyAgICBzZXJ2ZXIoKS0+
Zm9yRWFjaFNlcnZpY2VXb3JrZXIoWyZdKGF1dG8mIHdvcmtlcikgeworICAgICAgICBpZiAod29y
a2VyLmlzUnVubmluZygpICYmIHdvcmtlci5yZWdpc3RyYWJsZURvbWFpbigpID09IG1fcmVnaXN0
cmFibGVEb21haW4gJiYgd29ya2VyLmhhc1BlbmRpbmdFdmVudHMoKSkgeworICAgICAgICAgICAg
aGFzU2VydmljZVdvcmtlcldpdGhQZW5kaW5nRXZlbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKKwor
ICAgIC8vIEZJWE1FOiBJZiB0aGVyZSBpcyBhIHNlcnZpY2Ugd29ya2VyIHdpdGggcGVuZGluZyBl
dmVudHMgYW5kIHdlIGRvbid0IGNsb3NlIHRoZSBjb25uZWN0aW9uIHJpZ2h0IGF3YXksIHdlJ2Qg
aWRlYWxseSBrZWVwCisgICAgLy8gdHJhY2sgb2YgdGhpcyBhbmQgY2xvc2UgdGhlIGNvbm5lY3Rp
b24gb25jZSBpdCBiZWNvbWVzIGlkbGUuCisgICAgaWYgKCFoYXNTZXJ2aWNlV29ya2VyV2l0aFBl
bmRpbmdFdmVudHMpCisgICAgICAgIGNsb3NlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IGMwNTZmNjQ4ZGRhMDNlNWZhYjQ4ZDJhZTQ2ZTcxMzk3
NTZmNWQ1NDQuLmIwOGEzODNhOGU5NDlkMDI1ZWM0YTViZTVlMDJmYjBkNTZmYzlkOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNDksOCArNDksMTMgQEAgY2xh
c3MgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIFNXU2VydmVyKiBzZXJ2ZXIoKSBjb25zdDsKICAgICBTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KIAorICAgIC8vIFRoaXMgZmxhZyBnZXRzIHNldCB3aGVuIHRoZSBzZXJ2aWNlIHdv
cmtlciBwcm9jZXNzIGlzIG5vIGxvbmdlciBjbGVhbiAoYmVjYXVzZSBpdCBoYXMgbG9hZGVkIHNl
dmVyYWwgZVRMRCsxcykuCisgICAgYm9vbCBzaG91bGRUZXJtaW5hdGVXaGVuUG9zc2libGUoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJsZTsgfQorICAgIHZvaWQg
dGVybWluYXRlV2hlblBvc3NpYmxlKCk7CisKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgaG9z
dCBwcm9jZXNzCiAgICAgdmlydHVhbCB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRNb2RlKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkgPSAwOwpAQCAtNjAsNiArNjUsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBTY3JpcHRCdWZmZXImLCBjb25zdCBIYXNoTWFwPFVSTCwgU2Ny
aXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hdGNo
QWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlUHVzaEV2
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1
aW50OF90Pj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSA9IDA7
CisgICAgdmlydHVhbCBQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKIAogICAgIC8vIE1lc3NhZ2VzIGJhY2sgZnJvbSB0aGUgU1cgaG9zdCBwcm9jZXNz
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChjb25z
dCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKQEAgLTgyLDEyICs4OCwx
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZUR1ZVRvVW5yZXNwb25zaXZl
bmVzcygpID0gMDsKIAogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIp
OworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihTV1NlcnZl
ciYsIFJlZ2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoKSA9IDA7CiAKIHByaXZhdGU6CisgICAgV2Vha1B0cjxXZWJDb3JlOjpT
V1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVnaXN0cmFibGVEb21haW4gbV9yZWdpc3RyYWJsZURv
bWFpbjsKICAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBib29sIG1fc2hvdWxkVGVybWlu
YXRlV2hlblBvc3NpYmxlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggOTkwZWM3ZmI4MmY2MzU0YmEwMWU0YmU3YmJkY2MwNjQ4YjMwZmU5NC4uODJhMjUyZjQwZmRj
YjZkY2NjYzAwZTIxODAxOTY3OTU5YjM0Njk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRl
ICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1ZGUgIlByaXZhdGVDbGlja01lYXN1cmVtZW50U3Rv
cmUuaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlJl
bW90ZVdvcmtlclR5cGUuaCIKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mu
aCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU1h
bmFnZXJTZXQuaCIKQEAgLTYxLDYgKzYyLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWRXb3JrZXJTZXJ2
ZXIuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgi
CkBAIC0yMDc5LDYgKzIwODEsMjQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxT
dXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGUKICAgICBwcmVw
YXJlVG9TdXNwZW5kKHRydWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25X
aGVuUG9zc2libGUoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURv
bWFpbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpCit7Cisg
ICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CisgICAgaWYgKCFz
ZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2ggKHdvcmtlclR5cGUpIHsKKyAg
ICBjYXNlIFJlbW90ZVdvcmtlclR5cGU6OlNlcnZpY2VXb3JrZXI6CisgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24tPnN3U2VydmVyKCkpCisgICAgICAgICAgICBzd1NlcnZlci0+
dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUocmVnaXN0cmFibGVEb21haW4s
IHByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZW1vdGVXb3Jr
ZXJUeXBlOjpTaGFyZWRXb3JrZXI6CisgICAgICAgIGlmIChhdXRvKiBzaGFyZWRXb3JrZXJTZXJ2
ZXIgPSBzZXNzaW9uLT5zaGFyZWRXb3JrZXJTZXJ2ZXIoKSkKKyAgICAgICAgICAgIHNoYXJlZFdv
cmtlclNlcnZlci0+dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUocmVnaXN0
cmFibGVEb21haW4sIHByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1By
b2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQiLCB0aGlz
LCBpc1N1c3BlbnNpb25JbW1pbmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjg5YmY5N2VkZWRkOTVlMzdjNjI5MGNiNmNmYWU5NWJk
NmI0MTA5ZS4uYTdiODNlM2IzYWFlNmZkZWE0ZDcxNzdmOTg3Mjg1YWNhMmMxNTM2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTA3LDYg
KzEwNyw3IEBAIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFByb2Nlc3NBc3Nl
cnRpb247CiBjbGFzcyBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM7CiBlbnVtIGNsYXNzIENhbGxE
b3dubG9hZERpZFN0YXJ0IDogYm9vbDsKK2VudW0gY2xhc3MgUmVtb3RlV29ya2VyVHlwZSA6IGJv
b2w7CiBlbnVtIGNsYXNzIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyA6IGJvb2w7CiBlbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NTdGF0dXMgOiB1aW50OF90OwogZW51bSBjbGFzcyBXZWJzaXRl
RGF0YUZldGNoT3B0aW9uIDogdWludDhfdDsKQEAgLTQ2NSw2ICs0NjYsNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIHNldFNoYXJlZEhUVFBDb29raWVTdG9yYWdlKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgaWRlbnRpZmllcik7CiAjZW5kaWYKIAorICAgIHZvaWQgdGVybWluYXRlUmVtb3Rl
V29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV29ya2VyVHlwZSwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgcGxhdGZvcm1GbHVzaENvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgCiAgICAgdm9pZCBy
ZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggMTFkNjVjYjIyMWUxYjgzMGRjNzVmOGMwYTczZjAwZmU1NjllMmJkNy4uNzQ5OTI1
N2IzNDE0MGJlMWIyOGU3ZGIwNzIwMWJjMDgzNzY2M2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0y
MDcsNiArMjA3LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIE5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcga2V5
LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZW5jb2RlZFZhbHVlKQogI2VuZGlmCiAKKyAgICBUZXJt
aW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShlbnVtOmJvb2wg
V2ViS2l0OjpSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluLCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcik7CisKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAgICAgR2V0UGVuZGluZ1B1c2hNZXNzYWdlcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJQdXNoTWVzc2FnZT4gbWVzc2FnZXMp
IEFzeW5jCiAgICAgUHJvY2Vzc1B1c2hNZXNzYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
c3RydWN0IFdlYktpdDo6V2ViUHVzaE1lc3NhZ2UgcHVzaE1lc3NhZ2UpIC0+IChib29sIGRpZFN1
Y2NlZWQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCmluZGV4IDI3ZjZlOGRhNWY0MWZiZTQxZTE5ZmM4MDhmZTU5NzhmNjhkNTFl
N2QuLmU5YTVhZjQyNzU2YjQ1YmYzM2Q0YTc3MWNkNGI4YTExMDRkNjI3M2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC00Niw5
ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lz
dHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFNXU2VydmVyJiBzZXJ2ZXIpCi0gICAg
OiBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbiks
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKKyAgICA6IFNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbihzZXJ2ZXIsIFdURk1vdmUocmVnaXN0cmFibGVEb21haW4pLCBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAsIG1f
c2VydmVyKHNlcnZlcikKICAgICAsIG1fd2ViUGFnZVByb3h5SUQod2ViUGFnZVByb3h5SUQpCiB7
CiAgICAgc2VydmVyLmFkZENvbnRleHRDb25uZWN0aW9uKCp0aGlzKTsKQEAgLTY0LDggKzYzLDgg
QEAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp+V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uKCkKICAgICBmb3IgKGF1dG8mIGRvd25sb2FkIDogZG93bmxvYWRzLnZhbHVlcygp
KQogICAgICAgICBkb3dubG9hZC0+Y29udGV4dENsb3NlZCgpOwogCi0gICAgaWYgKG1fc2VydmVy
ICYmIG1fc2VydmVyLT5jb250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lz
dHJhYmxlRG9tYWluKCkpID09IHRoaXMpCi0gICAgICAgIG1fc2VydmVyLT5yZW1vdmVDb250ZXh0
Q29ubmVjdGlvbigqdGhpcyk7CisgICAgaWYgKGF1dG8qIHNlcnZlciA9IHRoaXMtPnNlcnZlcigp
OyBzZXJ2ZXIgJiYgc2VydmVyLT5jb250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWlu
KHJlZ2lzdHJhYmxlRG9tYWluKCkpID09IHRoaXMpCisgICAgICAgIHNlcnZlci0+cmVtb3ZlQ29u
dGV4dENvbm5lY3Rpb24oKnRoaXMpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24mIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6aXBjQ29ubmVjdGlvbigpIGNvbnN0CkBAIC04NSwxMyArODQs
MTYgQEAgdWludDY0X3QgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7Ci0gICAgaWYgKCFt
X3NlcnZlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBt
X3NlcnZlci0+Y29ubmVjdGlvbihkZXN0aW5hdGlvbklkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIoKSkpCisgICAgYXV0byogc2VydmVyID0gdGhpcy0+c2VydmVyKCk7CisgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBzZXJ2ZXIgPyBzZXJ2ZXItPmNvbm5lY3Rpb24oZGVzdGluYXRpb25JZGVu
dGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkpIDogbnVsbHB0cikKICAgICAgICAgY29ubmVjdGlv
bi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVy
LCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pOwogfQogCit2b2lkIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xvc2UoKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDbG9zZSB7IH0pOworfQorCiB2b2lk
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250
ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgY29udGV4dERhdGEsIGNvbnN0IFNl
cnZpY2VXb3JrZXJEYXRhJiB3b3JrZXJEYXRhLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29y
a2VyVGhyZWFkTW9kZSB3b3JrZXJUaHJlYWRNb2RlKQogewogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpJbnN0YWxsU2VydmljZVdvcmtlciB7IGNvbnRl
eHREYXRhLCB3b3JrZXJEYXRhLCB1c2VyQWdlbnQsIHdvcmtlclRocmVhZE1vZGUgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggZDk1
YjdjZTg1NDY5OGM1MTY2ZDNhMTU5YTM3ODhlZGUyZDliMjI4YS4uYmU5NjE1MjhkYjJmYTBmYmRj
MDk4NTZhZmNmMWUxNDhkMzY1YTAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOwogCi1jbGFzcyBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246IHB1
YmxpYyBXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24gZmluYWw6IHB1YmxpYyBXZWJDb3JlOjpTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlciYpOwogICAgIH5XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24oKTsKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJE
b3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
RG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOwogCi0gICAgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdDsKKyAgICBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwog
ICAgIE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcygpIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5uZXR3b3JrUHJvY2VzcygpOyB9CiAKIHByaXZhdGU6CkBAIC05Nyw2ICs5Nyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2NyaXB0QnVmZmVyJiwgY29uc3QgSGFzaE1hcDxV
UkwsIFdlYkNvcmU6OlNjcmlwdEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgZmluYWw7CiAgICAg
dm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFsOwogICAgIHZv
aWQgZmlyZVB1c2hFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCiAgICAgdm9pZCBjb25u
ZWN0aW9uSXNOb0xvbmdlck5lZWRlZCgpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlRHVlVG9V
bnJlc3BvbnNpdmVuZXNzKCkgZmluYWw7CkBAIC0xMDQsNyArMTA1LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoKTsKIAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBtX2Nvbm5lY3Rpb247Ci0gICAgV2Vha1B0cjxXZWJDb3JlOjpTV1NlcnZlcj4gbV9z
ZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2Vy
dmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7CiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckRvd25sb2FkVGFzaz4+
IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9X
ZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
aGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcAppbmRleCA0NWU2OTdiYTU0Nzhk
OGI1MDJmY2U1ZDA0ODAwMGI3YjRhZGM4YWExLi41ODFhNmU4ZTQ5Y2I3NjYwMTcxNTBjOTMwNjcw
NGZkNzg5MDhiYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1No
YXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5jcHAKQEAg
LTI1OSw0ICsyNTksMTQgQEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnBvc3RFeGNlcHRp
b25Ub1dvcmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGUKICAgICB9KTsKIH0KIAor
dm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hl
blBvc3NpYmxlKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURv
bWFpbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpCit7Cisg
ICAgYXV0byogY29udGV4dENvbm5lY3Rpb24gPSBjb250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJh
YmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3Jr
ZXIsICJXZWJTaGFyZWRXb3JrZXJTZXJ2ZXI6OnRlcm1pbmF0ZUNvbnRleHRDb25uZWN0aW9uV2hl
blBvc3NpYmxlOiBwcm9jZXNzSWRlbnRpZmllcj0lIiBQUkl1NjQgIiwgY29udGV4dENvbm5lY3Rp
b249JXAiLCBwcm9jZXNzSWRlbnRpZmllci50b1VJbnQ2NCgpLCBjb250ZXh0Q29ubmVjdGlvbik7
CisgICAgaWYgKCFjb250ZXh0Q29ubmVjdGlvbiB8fCBjb250ZXh0Q29ubmVjdGlvbi0+d2ViUHJv
Y2Vzc0lkZW50aWZpZXIoKSAhPSBwcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY29udGV4dENvbm5lY3Rpb24tPnRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmgKaW5k
ZXggMThiMzEwZTU1YTZjYTZlNWM5ZjY0ZjcxYzU0YTU4MDNlNzNhMDZhMi4uZjhiNDVhZTRhMDE4
ZWFmMDM2MTBhNWI5YWZkOWZjNTYzYjYxMmY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2Vy
U2VydmVyLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hhcmVkV29ya2Vy
T2JqZWN0SXNHb2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6U2hhcmVkV29ya2VyS2V5JiwgV2ViQ29y
ZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QoV2ViQ29yZTo6U2hhcmVkV29ya2VySWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZUNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgYWRkQ29udGV4dENvbm5lY3Rpb24oV2Vi
U2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgcmVtb3Zl
Q29udGV4dENvbm5lY3Rpb24oV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
biYpOwogICAgIHZvaWQgYWRkQ29ubmVjdGlvbihzdGQ6OnVuaXF1ZV9wdHI8V2ViU2hhcmVkV29y
a2VyU2VydmVyQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGM4YWQ4NWVl
M2MzMGIwM2I3NTUxZDMzOWZiY2Q2MDgzMWYxNmVjMDYuLjQ0NmI5ZTU2ZGE5NTEyYzg1MjkxYWU3
MWQwZjA4MzNmODAyYTM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNo
YXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xNDgsNyArMTQ4LDcg
QEAgdm9pZCBXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpyZW1vdmVT
aGFyZWRXb3JrZXJPYmplY3QoV2ViQ29yZToKICAgICBpZiAobV9zaGFyZWRXb3JrZXJPYmplY3Rz
LmlzRW1wdHkoKSkgewogICAgICAgICBDT05URVhUX0NPTk5FQ1RJT05fUkVMRUFTRV9MT0coInJl
bW92ZVNoYXJlZFdvcmtlck9iamVjdDogY29ubmVjdGlvbiBpcyBub3cgaWRsZSwgc3RhcnRpbmcg
YSB0aW1lciB0byB0ZXJtaW5hdGUgaXQiKTsKICAgICAgICAgQVNTRVJUKCFtX2lkbGVUZXJtaW5h
dGlvblRpbWVyLmlzQWN0aXZlKCkpOwotICAgICAgICBtX2lkbGVUZXJtaW5hdGlvblRpbWVyLnN0
YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1v
cnlQcmVzc3VyZSgpID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOworICAgICAgICBtX2lk
bGVUZXJtaW5hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNp
bmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpIHx8IG1fc2hvdWxkVGVybWluYXRlV2hl
blBvc3NpYmxlID8gMF9zIDogaWRsZVRlcm1pbmF0aW9uRGVsYXkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oCmluZGV4IDJhYTU0MzkwM2FjYjU0Yzk3NGFjMjgzMmMwNzU3MmQ0OTkzNTBmMzku
Ljk5ZGEzODYwNmVjYWZlMWYwYzZmMzBkNTVjZDEwODlmNDJkNzQ2OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFi
bGVEb21haW47IH0KICAgICBJUEM6OkNvbm5lY3Rpb24mIGlwY0Nvbm5lY3Rpb24oKSBjb25zdDsK
IAorICAgIHZvaWQgdGVybWluYXRlV2hlblBvc3NpYmxlKCkgeyBtX3Nob3VsZFRlcm1pbmF0ZVdo
ZW5Qb3NzaWJsZSA9IHRydWU7IH0KKwogICAgIHZvaWQgbGF1bmNoU2hhcmVkV29ya2VyKFdlYlNo
YXJlZFdvcmtlciYpOwogICAgIHZvaWQgcG9zdENvbm5lY3RFdmVudChjb25zdCBXZWJTaGFyZWRX
b3JrZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Jik7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVTaGFyZWRXb3JrZXIoY29uc3QgV2ViU2hhcmVkV29ya2VyJik7CkBAIC04NSw2
ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9yZWdp
c3RyYWJsZURvbWFpbjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBI
YXNoU2V0PFdlYkNvcmU6OlNoYXJlZFdvcmtlck9iamVjdElkZW50aWZpZXI+PiBtX3NoYXJlZFdv
cmtlck9iamVjdHM7CiAgICAgV2ViQ29yZTo6VGltZXIgbV9pZGxlVGVybWluYXRpb25UaW1lcjsK
KyAgICBib29sIG1fc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlIHsgZmFsc2UgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNTI4ZTE0NjhiMDQ4OTY0
ZTNlMTc5NTZkMmE5OTE0MjY5OGQyYmFlZi4uNmMzMjFiM2Q3MTQ3NjliODRmZWJjNzRhMTMxOGM4
ZjlmMzdjZWZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNzgyLDYgKzE3ODIsMTEgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJt
aXNzaW9ucyhQQUw6OlNlc3MKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpHZXRPcmlnaW5zV2l0aFB1c2hBbmROb3RpZmljYXRpb25QZXJtaXNzaW9ucyB7
IHNlc3Npb25JRCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2li
bGUoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25u
ZWN0aW9uV2hlblBvc3NpYmxlKHdvcmtlclR5cGUsIHNlc3Npb25JRCwgcmVnaXN0cmFibGVEb21h
aW4sIHByb2Nlc3NJZGVudGlmaWVyKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBjM2U3YWI3ZDY0YzI3ZTA3MGVh
OGQ5MjQwNWVlNDllMjk5MzMyNWRkLi4yNTI4MzNmZjIwNTUwZDgyNDhjYzZlMWU1NTQ1OGNiMGU3
NzMzZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjk5LDYgKzI5OSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRhdGFUYXNrRGlkQ29tcGxldGVXaXRoRXJyb3IoRGF0YVRhc2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZvaWQgY2FuY2VsRGF0YVRhc2soRGF0YVRhc2tJZGVu
dGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKKyAgICB2b2lkIHRlcm1pbmF0ZVJlbW90ZVdvcmtl
ckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUsIFBBTDo6U2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1By
b3h5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDM0OTM3ZmI4MmQ2YWJiNzU4OTJmYzVmNDk1ZTBkMTdhMjkwMzEwMTIuLmJlOTZiNDFkZTI3
NTJmYzYzNTkzNDE2M2U1YjAyMDU1YWZlZGMyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTY4OSw5ICsxNjg5LDEwIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZShjb25zdCBVUkwm
IHVybCkKIAogICAgIGF1dG8gcmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB7IHVybCB9OwogICAgIGlmIChtX3JlZ2lzdHJhYmxlRG9tYWluICYmICptX3JlZ2lz
dHJhYmxlRG9tYWluICE9IHJlZ2lzdHJhYmxlRG9tYWluKSB7Ci0jaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgICAgICBkaXNhYmxlUmVtb3RlV29ya2VycyhSZW1vdGVXb3JrZXJUeXBlOjpT
ZXJ2aWNlV29ya2VyKTsKLSNlbmRpZgorICAgICAgICBpZiAoaXNSdW5uaW5nU2VydmljZVdvcmtl
cnMoKSkKKyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnRl
cm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdv
cmtlclR5cGU6OlNlcnZpY2VXb3JrZXIsIHdlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwg
Km1fcmVnaXN0cmFibGVEb21haW4sIGNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICAgICAg
aWYgKGlzUnVubmluZ1NoYXJlZFdvcmtlcnMoKSkKKyAgICAgICAgICAgIHdlYnNpdGVEYXRhU3Rv
cmUoKS5uZXR3b3JrUHJvY2VzcygpLnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0
aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGU6OlNoYXJlZFdvcmtlciwgd2Vic2l0ZURh
dGFTdG9yZSgpLnNlc3Npb25JRCgpLCAqbV9yZWdpc3RyYWJsZURvbWFpbiwgY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkpOwogCiAgICAgICAgIC8vIE51bGwgb3V0IHJlZ2lzdHJhYmxlIGRvbWFpbiBz
aW5jZSB0aGlzIHByb2Nlc3MgaGFzIG5vdyBiZWVuIHVzZWQgZm9yIHNldmVyYWwgZG9tYWlucy4K
ICAgICAgICAgbV9yZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHsgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBiMTI0ZDUyYjA1NGJiYmIxYWJlMjg1NTZiYTZkYTRhNDlkZWIwY2NlLi4w
YWFkZDAxMmRhODczYzJhMGQwYTU5ZjY2Yjg0ZDBjMzE2M2E1NzVhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjItMDMtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBSRUdSRVNTSU9OKHIyOTAzNTYtcjI5MDM1MT8pOiBbIGlPUyBFV1MgXSAzIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLyog
dGVzdHMgYXJlIGNvbnN0YW50IHRleHQgZmFpbHVyZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg5NDQwMDY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVuc2tpcCB0ZXN0cyB0aGF0IGFyZSBubyBsb25nZXIgZmFpbGluZy4KKworICAgICAgICAq
IHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAzLTAyICBPcmlvbCBCcnVm
YXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzc10gSW1wbGVtZW50ICd0ZXh0
LWRlY29yYXRpb24nIGFzIGEgc2hvcnRoYW5kLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggMTY0ZGU1ZGI5MDFjNjgwZDViNzc1NzRhZDJiNjU2MjUyMmQ4NTFhYS4uY2FhNDcyYmVi
ZWNjZjRlNTA2YmFiOWE5OGYxNTcxMGM5YmFmYjNkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDMtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAzNTYtcjI5MDM1MT8pOiBbIGlP
UyBFV1MgXSAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyLyogdGVzdHMgYXJlIGNvbnN0YW50IHRleHQgZmFpbHVyZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcxNjAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQwMDY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5n
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKwogMjAyMi0wMy0wMiAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3NdIEltcGxlbWVudCAndGV4dC1kZWNvcmF0aW9uJyBhcyBhIHNob3J0aGFu
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2hu
ZXNzLWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
cmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNGJm
NTJjOTJiODQ2NzE1YWQwMDdiNTA0OTQ0ODcwM2EyY2I4OTJhOC4uMzg4MjQ5MTRlMTJhNDgyOWYy
YjFhZTBlZDc1M2I5MWE2Yjk3NGFmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGhlIGhlYWRlcnMgb2YgRmV0
Y2hFdmVudCBzaG91bGRuJ3QgY29udGFpbiBmcmVzaG5lc3MgaGVhZGVycy4gYXNzZXJ0X2ZhbHNl
OiBpZi1ub25lLW1hdGNoIGhlYWRlciBtdXN0IG5vdCBiZSBzZXQgaW4gdGhlIEZldGNoRXZlbnQn
cyByZXF1ZXN0LiAodXJsID0gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRl
cnMtc2NyaXB0LnB5KSBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBUaGUgaGVhZGVycyBv
ZiBGZXRjaEV2ZW50IHNob3VsZG4ndCBjb250YWluIGZyZXNobmVzcyBoZWFkZXJzLgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNlMzA3NzRmYzhkODI5
YjU3N2JmZTFkMjAzMWQxMGY3MjE3ZjdlNjUuLjA3NWQ4ZjRhMjQ4NjA4MmMzNGNhMjBiMjk4MTEx
YTNmNjIxYzE5YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMTg4LDggKzIxODgsNiBAQCB3ZWJraXQub3JnL2IvMTUyNDQyIGZhc3Qvc2Nyb2xsaW5n
L3J0bC1wb2ludC1pbi1pZnJhbWUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTUyMjgy
IGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmluZy10cmFuc2l0aW9uLWxheWVydHJlZS5odG1s
IFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzcxNjAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGFydGl0aW9uZWQtc2Vy
dmljZS13b3JrZXIudGVudGF0aXZlLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9y
Zy9iLzE1MjkzNSBmYXN0L3Njcm9sbGluZy9zY3JvbGwtcG9zaXRpb24tb24tcmVsb2FkLXJ0bC5o
dG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNTMzNzEgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy94aHIvZ2V0cmVzcG9uc2VoZWFkZXItY2h1bmtlZC10cmFpbGVyLmh0bSBb
IFBhc3MgRmFpbHVyZSBdCkBAIC0zNTA0LDcgKzM1MDIsMyBAQCB3ZWJraXQub3JnL2IvMjM3Mjk1
IGZhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRpb24tZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbCBb
IFBhcwogd2Via2l0Lm9yZy9iLzIzNjc5NCBlZGl0aW5nL3NwZWxsaW5nL2VkaXRpbmctd29yZC13
aXRoLW1hcmtlci0yLmh0bWwgWyBQYXNzIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzIzNzE1OSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0OS5odG1sIFsgUGFzcyBDcmFzaCBdCi0KLXdl
YmtpdC5vcmcvYi8yMzcxNjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQotd2Via2l0Lm9yZy9iLzIzNzE2MiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9wYXJ0aXRpb25lZC1zZXJ2aWNlLXdvcmtlci1nZXRSZWdpc3RyYXRpb25zLnRlbnRhdGl2ZS5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453733</attachid>
            <date>2022-03-03 07:21:43 -0800</date>
            <delta_ts>2022-04-13 08:52:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237160-20220303072143.patch</filename>
            <type>text/plain</type>
            <size>39213</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY0NzhmMDhiYTliMmZl
YjNiNzAxMTYwNWVmMzhmZWM0OTBmZGNlNy4uY2NjNGY4ZDI4YWE1NTQ1MDk0MTUzMWE3NzMyNzA1
MDUyNWNmYzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAzLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjkwMzU2
LXIyOTAzNTE/KTogWyBpT1MgRVdTIF0gMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci8qIHRlc3RzIGFyZSBjb25zdGFudCB0ZXh0
IGZhaWx1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3MTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84OTQ0MDA2Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEluIHIyOTAzNTIsIEkgbWFkZSBh
IGNoYW5nZSBzbyB0aGF0IHRoZSBzZXJ2aWNlIHdvcmtlciBpcyBtb3JlIGxpa2VseSB0byBsYXVu
Y2ggaW4gdGhlIFdlYkNvbnRlbnQKKyAgICAgICAgcHJvY2VzcyB0aGF0IGNhdXNlZCBpdCB0byBs
YXVuY2guIFRoaXMgaXMgYmVuZWZpY2lhbCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1lbW9yeSB1c2Fn
ZS4KKworICAgICAgICBUaGUgcGFydGl0aW9uZWQtc2VydmljZS13b3JrZXIqLmh0bWwgc2Vydmlj
ZSB3b3JrZXIgdGVzdHMgYXJlIHJlbHlpbmcgb24gYW4gSUQgdmFyaWFibGUgdGhhdCBpcworICAg
ICAgICByYW5kb21seSBnZW5lcmF0ZWQgaW5zaWRlIHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgdGhl
eSBleHBlY3QgdGhpcyBJRCB0byBub3QgY2hhbmdlIGR1cmluZyB0aGUKKyAgICAgICAgZHVyYXRp
b24gb2YgdGhlIHRlc3QuIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgc2VydmljZSB3b3JrZXIgZXhp
dHMgLyByZWxhdW5jaGVzLCB0aG9zZSB0ZXN0cyBzdGFydAorICAgICAgICBmYWlsaW5nIGJlY2F1
c2UgdGhlIElEIGNoYW5nZXMuCisKKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgd2UgaGF2ZSBs
b2dpYyBpbiBXZWJQcm9jZXNzUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZy
YW1lKCkgdGhhdAorICAgICAgICB0ZXJtaW5hdGVzIHRoZSBzZXJ2aWNlIHdvcmtlcnMgcnVubmlu
ZyBpbnNpZGUgdGhlIFdlYlByb2Nlc3MgaWYgYSBuZXcgZVRMRCsxIHBhZ2UgaXMgbG9hZGVkIGlu
c2lkZQorICAgICAgICB0aGUgcHJvY2Vzcy4gV2UgZG8gc28gdG8gdHJ5IGFuZCBhY2hpZXZlIGJl
dHRlciBwcm9jZXNzIGlzb2xhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBzaXRlcy4gVGhlCisgICAg
ICAgIGlzc3VlIGlzIHRoYXQgdGhvc2UgdGVzdHMgbGF1bmNoIGEgc2VydmljZSB3b3JrZXIgYW5k
IHRoZW4gb3BlbiBhIG5ldyBjcm9zcy1zaXRlIHBvcHVwLiBXaGVuIHRoZQorICAgICAgICBjcm9z
cy1zaXRlIHBvcHVwIGxvYWRzIGluc2lkZSB0aGUgc2FtZSBwcm9jZXNzLCB3ZSdkIG1ha2UgdGhl
IGRlY2lzaW9uIHRvIHRlcm1pbmF0ZSB0aGUgc2VydmljZQorICAgICAgICB3b3JrZXJzIGluIHRo
aXMgcHJvY2VzcyBhbmQgcmVsYXVuY2ggdGhlbSBpbiBhIG5ldyBjbGVhbiBvbmUsIGNhdXNpbmcg
dGhlIHRlc3RzIHRvIGZhaWwuCisKKyAgICAgICAgV2hpbGUgaXQgaXMgdHJ1ZSBwZXIgdGhlIHNw
ZWNpZmljYXRpb24gdGhhdCBzZXJ2aWNlIHdvcmtlcnMgY2FuIGJlIHRlcm1pbmF0ZWQgLyByZWxh
dW5jaGVkIGF0CisgICAgICAgIGFsbW9zdCBhbnkgcG9pbnQsIHRoZXJlIGFyZSBleGNlcHRpb25z
LiBJbiBwYXJ0aWN1bGFyLCB3ZSBzaG91bGQga2VlcCBhIHNlcnZpY2Ugd29ya2VyIHJ1bm5pbmcK
KyAgICAgICAgaWYgaXQgc3RpbGwgaGFzIHBlbmRpbmcgZXh0ZW5kYWJsZSBldmVudHMuIEZvciB0
aGlzIHJlYXNvbiwgdGhlIHRlc3RzIHJlbHkgb24gRmV0Y2hFdmVudC53YWl0VW50aWwoKQorICAg
ICAgICB0byBrZWVwIHRoZSBzZXJ2aWNlIHdvcmtlciBydW5uaW5nLiBTYWRseSwgd2Ugd291bGQg
bm90IG9iZXkgdGhhdCBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNz
dWUsIHdlIG5vIGxvbmdlciB1bmNvbmRpdGlvbmFsbHkgY2xvc2UgdGhlIHNlcnZpY2Ugd29ya2Vy
IGNvbnRleHQgY29ubmVjdGlvbgorICAgICAgICB3aGVuIGEgV2ViUHJvY2VzcyBsb2FkcyBhIG5l
dyBlVExEKzEuIEluc3RlYWQsIHdlIHRlbGwgdGhlIG5ldHdvcmsgcHJvY2VzcyB0byBjbG9zZSB0
aGF0IGNvbm5lY3Rpb24KKyAgICAgICAgYXMgc29vbiBhcyBwb3NzaWJsZS4gV2hlbiB0aGUgbmV0
d29yayBwcm9jZXNzIHJlY2VpdmVzIHRoaXMgSVBDLCBpdCB0ZXJtaW5hdGVzIHRoZSBjb250ZXh0
CisgICAgICAgIGNvbm5lY3Rpb24gT05MWSBpZiB0aGUgc2VydmljZSB3b3JrZXJzIHVzaW5nIHRo
ZSBjb25uZWN0aW9uIGhhdmUgbm8gcGVuZGluZyBldmVudHMuIElmIHdlIGNhbm5vdAorICAgICAg
ICBjbG9zZSB0aGUgY29udGV4dCBjb25uZWN0aW9uIHJpZ2h0IGF3YXksIHdlIHNldCBhIGZsYWcg
b24gdGhlIGNvbnRleHQgY29ubmVjdGlvbiB0byBpbmRpY2F0ZSB0aGF0CisgICAgICAgIHdlIHNo
b3VsZCBjbG9zZSBpdCBhcyBzb29uIGFzIHBvc3NpYmxlLiBDdXJyZW50bHksIHRoaXMgZmxhZyBp
cyBvbmx5IHVzZWQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgcmlnaHQgYXdheSAo
bm8gMTAgc2Vjb25kIGRlbGF5KSBvbmNlIHRoZSBjb25uZWN0aW9uIG5vIGxvbmdlciBoYXMgYW55
IGNsaWVudHMuIEkgdGhpbmsgdGhhdCwgaWRlYWxseSwKKyAgICAgICAgd2UnZCBjbG9zZSB0aGUg
Y29ubmVjdGlvbiBhcyBzb29uIGFzIHRoZSBzZXJ2aWNlIHdvcmtlcnMgbm8gbG9uZ2VyIGhhdmUg
cGVuZGluZyBldmVudHMuIEhvd2V2ZXIsCisgICAgICAgIHRoaXMgYWRkcyBjb21wbGV4aXR5IGFu
ZCBpcyBlcnJvci1wcm9uZSBzbyBJIGRpZG4ndCBpbXBsZW1lbnQgaXQgaW4gdGhpcyBwYXRjaCBh
bmQgbWVyZWx5IGFkZGVkIGEKKyAgICAgICAgRklYTUUgY29tbWVudC4gQXMgaXQgc3RhbmRzLCBt
eSBwYXRjaCBTVElMTCByZWxhdW5jaGVzIHNlcnZpY2Ugd29ya2VycyBpbiBvcmlnaW4tY2xlYW4g
cHJvY2Vzc2VzCisgICAgICAgIGluIHRoZSBjb21tb24gY2FzZS4gSXQgb25seSBmYWlscyB0byBk
byBzbyBpbiB0aGUgY2FzZSB3aGVyZSB0aGVyZSBhcmUgcGVuZGluZyBzZXJ2aWNlIHdvcmtlcgor
ICAgICAgICBldmVudHMgd2hpY2ggaXMgYSBjYXNlIHdoZXJlIHdlIGhhZCB0aGUgY29ycmVjdG5l
c3MgYnVnIGFueXdheS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVuc2tpcHBlZCBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmZvckVhY2hTZXJ2aWNlV29ya2VyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp0ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlv
bldoZW5Qb3NzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dW5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNlcnZlciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZVdoZW5Qb3NzaWJs
ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6c2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlIGNvbnN0KToKKwogMjAyMi0wMy0wMyAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI5MDUx
Mik6IGltcG9ydGVkL2JsaW5rL2Zhc3QvdGFibGUvY3Jhc2gtb3V0cHV0LWVsZW1lbnQtYXMtY29s
dW1uLWdyb3VwLmh0bWwgYXNzZXJ0cyBzb21ldGltZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjY3ZmE4Yjc0YzI5
ZWYwMjIzNzkxY2M3YWM3MmViYmJhYjg3ZDRlNC4uOWEyMDZjOTNiM2FkYzBmZGZmYTczMjk3Zjdk
ZTViMDllZjgyNjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAyMi0wMy0wMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI5MDM1
Ni1yMjkwMzUxPyk6IFsgaU9TIEVXUyBdIDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvKiB0ZXN0cyBhcmUgY29uc3RhbnQgdGV4
dCBmYWlsdXJlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNzE2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODk0NDAwNjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbiByMjkwMzUyLCBJIG1hZGUg
YSBjaGFuZ2Ugc28gdGhhdCB0aGUgc2VydmljZSB3b3JrZXIgaXMgbW9yZSBsaWtlbHkgdG8gbGF1
bmNoIGluIHRoZSBXZWJDb250ZW50CisgICAgICAgIHByb2Nlc3MgdGhhdCBjYXVzZWQgaXQgdG8g
bGF1bmNoLiBUaGlzIGlzIGJlbmVmaWNpYWwgZm9yIHBlcmZvcm1hbmNlIGFuZCBtZW1vcnkgdXNh
Z2UuCisKKyAgICAgICAgVGhlIHBhcnRpdGlvbmVkLXNlcnZpY2Utd29ya2VyKi5odG1sIHNlcnZp
Y2Ugd29ya2VyIHRlc3RzIGFyZSByZWx5aW5nIG9uIGFuIElEIHZhcmlhYmxlIHRoYXQgaXMKKyAg
ICAgICAgcmFuZG9tbHkgZ2VuZXJhdGVkIGluc2lkZSB0aGUgc2VydmljZSB3b3JrZXIgYW5kIHRo
ZXkgZXhwZWN0IHRoaXMgSUQgdG8gbm90IGNoYW5nZSBkdXJpbmcgdGhlCisgICAgICAgIGR1cmF0
aW9uIG9mIHRoZSB0ZXN0LiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlIHNlcnZpY2Ugd29ya2VyIGV4
aXRzIC8gcmVsYXVuY2hlcywgdGhvc2UgdGVzdHMgc3RhcnQKKyAgICAgICAgZmFpbGluZyBiZWNh
dXNlIHRoZSBJRCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpc3N1ZSBpcyB0aGF0IHdlIGhhdmUg
bG9naWMgaW4gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZSgpIHRoYXQKKyAgICAgICAgdGVybWluYXRlcyB0aGUgc2VydmljZSB3b3JrZXJzIHJ1bm5p
bmcgaW5zaWRlIHRoZSBXZWJQcm9jZXNzIGlmIGEgbmV3IGVUTEQrMSBwYWdlIGlzIGxvYWRlZCBp
bnNpZGUKKyAgICAgICAgdGhlIHByb2Nlc3MuIFdlIGRvIHNvIHRvIHRyeSBhbmQgYWNoaWV2ZSBi
ZXR0ZXIgcHJvY2VzcyBpc29sYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgc2l0ZXMuIFRoZQorICAg
ICAgICBpc3N1ZSBpcyB0aGF0IHRob3NlIHRlc3RzIGxhdW5jaCBhIHNlcnZpY2Ugd29ya2VyIGFu
ZCB0aGVuIG9wZW4gYSBuZXcgY3Jvc3Mtc2l0ZSBwb3B1cC4gV2hlbiB0aGUKKyAgICAgICAgY3Jv
c3Mtc2l0ZSBwb3B1cCBsb2FkcyBpbnNpZGUgdGhlIHNhbWUgcHJvY2Vzcywgd2UnZCBtYWtlIHRo
ZSBkZWNpc2lvbiB0byB0ZXJtaW5hdGUgdGhlIHNlcnZpY2UKKyAgICAgICAgd29ya2VycyBpbiB0
aGlzIHByb2Nlc3MgYW5kIHJlbGF1bmNoIHRoZW0gaW4gYSBuZXcgY2xlYW4gb25lLCBjYXVzaW5n
IHRoZSB0ZXN0cyB0byBmYWlsLgorCisgICAgICAgIFdoaWxlIGl0IGlzIHRydWUgcGVyIHRoZSBz
cGVjaWZpY2F0aW9uIHRoYXQgc2VydmljZSB3b3JrZXJzIGNhbiBiZSB0ZXJtaW5hdGVkIC8gcmVs
YXVuY2hlZCBhdCAKKyAgICAgICAgYWxtb3N0IGFueSBwb2ludCwgdGhlcmUgYXJlIGV4Y2VwdGlv
bnMuIEluIHBhcnRpY3VsYXIsIHdlIHNob3VsZCBrZWVwIGEgc2VydmljZSB3b3JrZXIgcnVubmlu
ZworICAgICAgICBpZiBpdCBzdGlsbCBoYXMgcGVuZGluZyBleHRlbmRhYmxlIGV2ZW50cy4gRm9y
IHRoaXMgcmVhc29uLCB0aGUgdGVzdHMgcmVseSBvbiBGZXRjaEV2ZW50LndhaXRVbnRpbCgpCisg
ICAgICAgIHRvIGtlZXAgdGhlIHNlcnZpY2Ugd29ya2VyIHJ1bm5pbmcuIFNhZGx5LCB3ZSB3b3Vs
ZCBub3Qgb2JleSB0aGF0IGluIHRoaXMgY2FzZS4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBp
c3N1ZSwgd2Ugbm8gbG9uZ2VyIHVuY29uZGl0aW9uYWxseSBjbG9zZSB0aGUgc2VydmljZSB3b3Jr
ZXIgY29udGV4dCBjb25uZWN0aW9uCisgICAgICAgIHdoZW4gYSBXZWJQcm9jZXNzIGxvYWRzIGEg
bmV3IGVUTEQrMS4gSW5zdGVhZCwgd2UgdGVsbCB0aGUgbmV0d29yayBwcm9jZXNzIHRvIGNsb3Nl
IHRoYXQgY29ubmVjdGlvbgorICAgICAgICBhcyBzb29uIGFzIHBvc3NpYmxlLiBXaGVuIHRoZSBu
ZXR3b3JrIHByb2Nlc3MgcmVjZWl2ZXMgdGhpcyBJUEMsIGl0IHRlcm1pbmF0ZXMgdGhlIGNvbnRl
eHQgCisgICAgICAgIGNvbm5lY3Rpb24gT05MWSBpZiB0aGUgc2VydmljZSB3b3JrZXJzIHVzaW5n
IHRoZSBjb25uZWN0aW9uIGhhdmUgbm8gcGVuZGluZyBldmVudHMuIElmIHdlIGNhbm5vdAorICAg
ICAgICBjbG9zZSB0aGUgY29udGV4dCBjb25uZWN0aW9uIHJpZ2h0IGF3YXksIHdlIHNldCBhIGZs
YWcgb24gdGhlIGNvbnRleHQgY29ubmVjdGlvbiB0byBpbmRpY2F0ZSB0aGF0CisgICAgICAgIHdl
IHNob3VsZCBjbG9zZSBpdCBhcyBzb29uIGFzIHBvc3NpYmxlLiBDdXJyZW50bHksIHRoaXMgZmxh
ZyBpcyBvbmx5IHVzZWQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgcmlnaHQgYXdh
eSAobm8gMTAgc2Vjb25kIGRlbGF5KSBvbmNlIHRoZSBjb25uZWN0aW9uIG5vIGxvbmdlciBoYXMg
YW55IGNsaWVudHMuIEkgdGhpbmsgdGhhdCwgaWRlYWxseSwKKyAgICAgICAgd2UnZCBjbG9zZSB0
aGUgY29ubmVjdGlvbiBhcyBzb29uIGFzIHRoZSBzZXJ2aWNlIHdvcmtlcnMgbm8gbG9uZ2VyIGhh
dmUgcGVuZGluZyBldmVudHMuIEhvd2V2ZXIsCisgICAgICAgIHRoaXMgYWRkcyBjb21wbGV4aXR5
IGFuZCBpcyBlcnJvci1wcm9uZSBzbyBJIGRpZG4ndCBpbXBsZW1lbnQgaXQgaW4gdGhpcyBwYXRj
aCBhbmQgbWVyZWx5IGFkZGVkIGEKKyAgICAgICAgRklYTUUgY29tbWVudC4gQXMgaXQgc3RhbmRz
LCBteSBwYXRjaCBTVElMTCByZWxhdW5jaGVzIHNlcnZpY2Ugd29ya2VycyBpbiBvcmlnaW4tY2xl
YW4gcHJvY2Vzc2VzCisgICAgICAgIGluIHRoZSBjb21tb24gY2FzZS4gSXQgb25seSBmYWlscyB0
byBkbyBzbyBpbiB0aGUgY2FzZSB3aGVyZSB0aGVyZSBhcmUgcGVuZGluZyBzZXJ2aWNlIHdvcmtl
cgorICAgICAgICBldmVudHMgd2hpY2ggaXMgYSBjYXNlIHdoZXJlIHdlIGhhZCB0aGUgY29ycmVj
dG5lc3MgYnVnIGFueXdheS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZVJlbW90
ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246On5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpjbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFy
ZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2hhcmVkV29ya2VyU2VydmVyOjp0ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJs
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtl
clNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cmVtb3ZlU2hhcmVkV29y
a2VyT2JqZWN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvbldo
ZW5Qb3NzaWJsZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFp
bkZyYW1lKToKKwogMjAyMi0wMy0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMjg5NDc0KTogY2FjaGVTdG9yYWdlUGF0aCBpcyBlbXB0
eSBpbiBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
aW5kZXggZGI2Mjc3OTA3MjUyMzQ2N2UyYTI2OGUyM2UxNjAxZjIxMmI1YWUxZC4uOGUxZjVjZWVh
N2NjMjg4ZGYzNzg5YmQ0NTUzYmZkYTY2NTRhYTY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTczNiw2ICs3MzYsMjMg
QEAgdm9pZCBTV1NlcnZlcjo6Y29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiYgY29udGV4dENvbm4KICAgICB9CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmZv
ckVhY2hTZXJ2aWNlV29ya2VyKGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgU1dTZXJ2ZXJXb3Jr
ZXImKT4mIGFwcGx5KSBjb25zdAoreworICAgIGZvciAoYXV0byYgd29ya2VyIDogbV9ydW5uaW5n
T3JUZXJtaW5hdGluZ1dvcmtlcnMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCFhcHBseSh3b3Jr
ZXIpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFNXU2VydmVyOjp0ZXJt
aW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgcmVnaXN0cmFibGVEb21haW4sIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVy
KQoreworICAgIGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gY29udGV4dENvbm5lY3Rpb25Gb3JS
ZWdpc3RyYWJsZURvbWFpbihyZWdpc3RyYWJsZURvbWFpbik7CisgICAgaWYgKCFjb250ZXh0Q29u
bmVjdGlvbiB8fCBjb250ZXh0Q29ubmVjdGlvbi0+d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSAhPSBw
cm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dENvbm5lY3Rp
b24tPnRlcm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOworfQorCiB2b2lkIFNXU2VydmVyOjppbnN0YWxs
Q29udGV4dERhdGEoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQogewogICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIWRhdGEubG9hZGVkRnJvbURpc2ssICJXb3JrZXJzIHdlIGp1
c3QgcmVhZCBmcm9tIGRpc2sgc2hvdWxkIG9ubHkgYmUgbGF1bmNoZWQgYXMgbmVlZGVkIik7CkBA
IC0xMDM2LDcgKzEwNTMsOSBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwogCiAgICAgICAgICAg
ICBtX2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2luLnJlbW92ZShjbGllbnRPcmlnaW4pOwogICAg
ICAgICB9KTsKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJz
VGltZXItPnN0YXJ0T25lU2hvdChtX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkICYm
ICFNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3Vy
ZSgpICYmICFkaWRVbnJlZ2lzdGVyID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAwX3MpOwor
ICAgICAgICBhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IGNvbnRleHRDb25uZWN0aW9uRm9yUmVn
aXN0cmFibGVEb21haW4oY2xpZW50UmVnaXN0cmFibGVEb21haW4pOworICAgICAgICBib29sIHNo
b3VsZENvbnRleHRDb25uZWN0aW9uQmVUZXJtaW5hdGVkV2hlblBvc3NpYmxlID0gY29udGV4dENv
bm5lY3Rpb24gJiYgY29udGV4dENvbm5lY3Rpb24tPnNob3VsZFRlcm1pbmF0ZVdoZW5Qb3NzaWJs
ZSgpOworICAgICAgICBpdGVyYXRvci0+dmFsdWUudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1l
ci0+c3RhcnRPbmVTaG90KG1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgJiYgIU1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkg
JiYgIXNob3VsZENvbnRleHRDb25uZWN0aW9uQmVUZXJtaW5hdGVkV2hlblBvc3NpYmxlICYmICFk
aWRVbnJlZ2lzdGVyID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAwX3MpOwogICAgIH0KIAog
ICAgIC8vIElmIHRoZSBhcHAtYm91bmQgdmFsdWUgY2hhbmdlZCBhZnRlciB0aGlzIGNsaWVudCB3
YXMgcmVtb3ZlZCwgd2Uga25vdyBpdCB3YXMgdGhlIG9ubHkgYXBwLWJvdW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggYWZkNGY4
MzAxNzVhZmQzODkzNzdjZGQ0ZmNkZjQxYmRlNzE4OGMxYi4uNWEyZTJlNGE2MTk5NWY3YTE4ZTUw
MzliNDRjZTdmZmY5ZmZhZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTc5LDYgKzE3OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJik7CiAgICAgdm9pZCBt
YXRjaEFsbChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7CiAgICAgc3Rk
OjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBjbGFpbShTV1NlcnZlcldvcmtlciYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBQcm9jZXNzSWRlbnRpZmllcik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2ZXJzKCk7CiAKQEAg
LTIyOCw2ICsyMjksOCBAQCBwdWJsaWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJZEZyb21WaXNpYmxlQ2xpZW50SWQoY29uc3QgU3RyaW5nJiB2aXNpYmxl
SWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xp
ZW50SWRNYXAuZ2V0KHZpc2libGVJZGVudGlmaWVyKTsgfQogCisgICAgdm9pZCBmb3JFYWNoU2Vy
dmljZVdvcmtlcihjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IFNXU2VydmVyV29ya2VyJik+Jikg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgdm9pZCB2YWxpZGF0ZVJlZ2lzdHJhdGlvbkRvbWFpbihX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgU2VydmljZVdvcmtlckpvYlR5cGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKaW5kZXggNTQyOGFhNDY1NTQ1ODg0ODc5MDE3YzQ1MWQ5OGY4YWM5ZTYyYWQ3
Yy4uNjU2MzYyYTA5MTExMGI0YzEzNjdiNmQ1YTE0MDQ2MDQ4MzkyZWQ2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtNDAsOCArNDAsOSBAQCBzdGF0aWMg
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciBnZW5lcmF0ZVNlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25JZAogICAgIHJldHVybiBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25J
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogfQogCi1TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJh
YmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCi0gICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJh
dGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllcigpKQorU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZl
ciwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlm
aWVyKQorICAgIDogbV9zZXJ2ZXIoc2VydmVyKQorICAgICwgbV9pZGVudGlmaWVyKGdlbmVyYXRl
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIoKSkKICAgICAsIG1fcmVnaXN0cmFi
bGVEb21haW4oV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbikpCiAgICAgLCBtX3NlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiB7CkBAIC01MSw2
ICs1MiwxMSBAQCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5TV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24oKQogewogfQogCitTV1NlcnZlciogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpzZXJ2ZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlcnZlci5nZXQoKTsKK30KKwog
dm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0
YXJ0KGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYg
am9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKGF1dG8qIHdvcmtl
ciA9IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2VydmljZVdv
cmtlcklkZW50aWZpZXIpKQpAQCAtMTMxLDYgKzEzNywyNSBAQCB2b2lkIFNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyCiAgICAgICAgIHdvcmtlci0+ZGlkRmFpbEhlYXJ0QmVhdENoZWNrKCk7CiB9CiAKK3ZvaWQg
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXaGVuUG9zc2libGUoKQorewor
ICAgIG1fc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlID0gdHJ1ZTsKKworICAgIGJvb2wgaGFz
U2VydmljZVdvcmtlcldpdGhQZW5kaW5nRXZlbnRzID0gZmFsc2U7CisgICAgc2VydmVyKCktPmZv
ckVhY2hTZXJ2aWNlV29ya2VyKFsmXShhdXRvJiB3b3JrZXIpIHsKKyAgICAgICAgaWYgKHdvcmtl
ci5pc1J1bm5pbmcoKSAmJiB3b3JrZXIucmVnaXN0cmFibGVEb21haW4oKSA9PSBtX3JlZ2lzdHJh
YmxlRG9tYWluICYmIHdvcmtlci5oYXNQZW5kaW5nRXZlbnRzKCkpIHsKKyAgICAgICAgICAgIGhh
c1NlcnZpY2VXb3JrZXJXaXRoUGVuZGluZ0V2ZW50cyA9IHRydWU7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisKKyAg
ICAvLyBGSVhNRTogSWYgdGhlcmUgaXMgYSBzZXJ2aWNlIHdvcmtlciB3aXRoIHBlbmRpbmcgZXZl
bnRzIGFuZCB3ZSBkb24ndCBjbG9zZSB0aGUgY29ubmVjdGlvbiByaWdodCBhd2F5LCB3ZSdkIGlk
ZWFsbHkga2VlcAorICAgIC8vIHRyYWNrIG9mIHRoaXMgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9u
IG9uY2UgaXQgYmVjb21lcyBpZGxlLgorICAgIGlmICghaGFzU2VydmljZVdvcmtlcldpdGhQZW5k
aW5nRXZlbnRzKQorICAgICAgICBjbG9zZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAppbmRleCBjMDU2ZjY0OGRkYTAzZTVmYWI0OGQyYWU0NmU3MTM5NzU2
ZjVkNTQ0Li5iMDhhMzgzYThlOTQ5ZDAyNWVjNGE1YmU1ZTAyZmIwZDU2ZmM5ZDhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTQ5LDggKzQ5LDEzIEBAIGNsYXNz
IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB+U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7CiAKKyAgICBXRUJDT1JF
X0VYUE9SVCBTV1NlcnZlciogc2VydmVyKCkgY29uc3Q7CiAgICAgU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9CiAKKyAgICAvLyBUaGlzIGZsYWcgZ2V0cyBzZXQgd2hlbiB0aGUgc2VydmljZSB3b3Jr
ZXIgcHJvY2VzcyBpcyBubyBsb25nZXIgY2xlYW4gKGJlY2F1c2UgaXQgaGFzIGxvYWRlZCBzZXZl
cmFsIGVUTEQrMXMpLgorICAgIGJvb2wgc2hvdWxkVGVybWluYXRlV2hlblBvc3NpYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRUZXJtaW5hdGVXaGVuUG9zc2libGU7IH0KKyAgICB2b2lkIHRl
cm1pbmF0ZVdoZW5Qb3NzaWJsZSgpOworCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGhvc3Qg
cHJvY2VzcwogICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgU2VydmljZVdvcmtlckRhdGEmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFkTW9kZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpID0gMDsKQEAgLTYwLDYgKzY1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgSGFzaE1hcDxVUkwsIFNjcmlw
dEJ1ZmZlcj4mIGltcG9ydGVkU2NyaXB0cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFs
bENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZVB1c2hFdmVu
dChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWlu
dDhfdD4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgPSAwOwor
ICAgIHZpcnR1YWwgUHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25z
dCA9IDA7CiAKICAgICAvLyBNZXNzYWdlcyBiYWNrIGZyb20gdGhlIFNXIGhvc3QgcHJvY2Vzcwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC04MiwxMiArODgsMTYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9uc2l2ZW5l
c3MoKSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oU1dTZXJ2ZXIm
LCBSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworCisgICAgdmlydHVh
bCB2b2lkIGNsb3NlKCkgPSAwOwogCiBwcml2YXRlOgorICAgIFdlYWtQdHI8V2ViQ29yZTo6U1dT
ZXJ2ZXI+IG1fc2VydmVyOwogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW47CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4g
bV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7CisgICAgYm9vbCBtX3Nob3VsZFRlcm1pbmF0
ZVdoZW5Qb3NzaWJsZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4
IDQ4NTg0ZWRkOGQ0ZmRiMzYyNjRlZTdkMGFmNmJhNzg0ZTZhZGEyMDQuLjQ0NDQ4YmVmZDFlNDY4
NTZhYmJhY2RlZTZlMzFlOTgxZDMwMmIyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNp
bmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgiCisjaW5jbHVkZSAiUmVtb3Rl
V29ya2VyVHlwZS5oIgogI2luY2x1ZGUgIlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcy5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJTdG9yYWdlTWFuYWdl
clNldC5oIgpAQCAtNjAsNiArNjEsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQdXNoTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgIldlYlNoYXJlZFdvcmtlclNlcnZlci5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhRmV0Y2hPcHRpb24uaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKQEAg
LTIwNzcsNiArMjA3OSwyNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3Bl
bmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoQ29tcGxldGlvbkhhbmRsZQogICAgIHByZXBhcmVU
b1N1c3BlbmQodHJ1ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvbldoZW5Q
b3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWlu
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBh
dXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Np
b24pCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAod29ya2VyVHlwZSkgeworICAgIGNh
c2UgUmVtb3RlV29ya2VyVHlwZTo6U2VydmljZVdvcmtlcjoKKyAgICAgICAgaWYgKGF1dG8qIHN3
U2VydmVyID0gc2Vzc2lvbi0+c3dTZXJ2ZXIoKSkKKyAgICAgICAgICAgIHN3U2VydmVyLT50ZXJt
aW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShyZWdpc3RyYWJsZURvbWFpbiwgcHJv
Y2Vzc0lkZW50aWZpZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbW90ZVdvcmtlclR5
cGU6OlNoYXJlZFdvcmtlcjoKKyAgICAgICAgaWYgKGF1dG8qIHNoYXJlZFdvcmtlclNlcnZlciA9
IHNlc3Npb24tPnNoYXJlZFdvcmtlclNlcnZlcigpKQorICAgICAgICAgICAgc2hhcmVkV29ya2Vy
U2VydmVyLT50ZXJtaW5hdGVDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShyZWdpc3RyYWJs
ZURvbWFpbiwgcHJvY2Vzc0lkZW50aWZpZXIpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisK
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCIsIHRoaXMsIGlz
U3VzcGVuc2lvbkltbWluZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAppbmRleCBhMWYyYzc3NGE5MTYxODM0NDQ3NTJmZDcwNzFmMWE0MmJhOTFl
YTkxLi4wMGJlNzFkZDMzOWMwYjg5NTRhMzM4OTE3NjMzMTllMjVjYjdkYTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMDcsNiArMTA3
LDcgQEAgY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgUHJvY2Vzc0Fzc2VydGlv
bjsKIGNsYXNzIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVyczsKIGVudW0gY2xhc3MgQ2FsbERvd25s
b2FkRGlkU3RhcnQgOiBib29sOworZW51bSBjbGFzcyBSZW1vdGVXb3JrZXJUeXBlIDogYm9vbDsK
IGVudW0gY2xhc3MgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIDogYm9vbDsKIGVudW0gY2xh
c3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRh
RmV0Y2hPcHRpb24gOiB1aW50OF90OwpAQCAtNDYxLDYgKzQ2Miw3IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIHZvaWQgc2V0U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2UoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBpZGVudGlmaWVyKTsKICNlbmRpZgogCisgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNl
c3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUZsdXNoQ29va2llcyhQQUw6OlNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKICAgICB2b2lkIHJlZ2lz
dGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJikgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCAxMWQ2NWNiMjIxZTFiODMwZGM3NWY4YzBhNzNmMDBmZTU2OWUyYmQ3Li43NDk5MjU3YjM0
MTQwYmUxYjI4ZTdkYjA3MjAxYmMwODM3NjYzZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIwNyw2
ICsyMDcsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAjZW5kaWYKIAorICAgIFRlcm1pbmF0
ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKGVudW06Ym9vbCBXZWJL
aXQ6OlJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKTsKKwogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKICAgICBHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdlPiBtZXNzYWdlcykgQXN5
bmMKICAgICBQcm9jZXNzUHVzaE1lc3NhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdHJ1
Y3QgV2ViS2l0OjpXZWJQdXNoTWVzc2FnZSBwdXNoTWVzc2FnZSkgLT4gKGJvb2wgZGlkU3VjY2Vl
ZCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKaW5kZXggMjdmNmU4ZGE1ZjQxZmJlNDFlMTlmYzgwOGZlNTk3OGY2OGQ1MWU3ZC4u
ZTlhNWFmNDI3NTZiNDViZjMzZDRhNzcxY2Q0YjhhMTEwNGQ2MjczZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQ2LDkgKzQ2
LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFi
bGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU1dTZXJ2ZXImIHNlcnZlcikKLSAgICA6IFNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwgc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQorICAgIDogU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uKHNlcnZlciwgV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbiksIHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9zZXJ2
ZXIoc2VydmVyKQogICAgICwgbV93ZWJQYWdlUHJveHlJRCh3ZWJQYWdlUHJveHlJRCkKIHsKICAg
ICBzZXJ2ZXIuYWRkQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwpAQCAtNjQsOCArNjMsOCBAQCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24oKQogICAgIGZvciAoYXV0byYgZG93bmxvYWQgOiBkb3dubG9hZHMudmFsdWVzKCkpCiAg
ICAgICAgIGRvd25sb2FkLT5jb250ZXh0Q2xvc2VkKCk7CiAKLSAgICBpZiAobV9zZXJ2ZXIgJiYg
bV9zZXJ2ZXItPmNvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVEb21haW4ocmVnaXN0cmFi
bGVEb21haW4oKSkgPT0gdGhpcykKLSAgICAgICAgbV9zZXJ2ZXItPnJlbW92ZUNvbnRleHRDb25u
ZWN0aW9uKCp0aGlzKTsKKyAgICBpZiAoYXV0byogc2VydmVyID0gdGhpcy0+c2VydmVyKCk7IHNl
cnZlciAmJiBzZXJ2ZXItPmNvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVEb21haW4ocmVn
aXN0cmFibGVEb21haW4oKSkgPT0gdGhpcykKKyAgICAgICAgc2VydmVyLT5yZW1vdmVDb250ZXh0
Q29ubmVjdGlvbigqdGhpcyk7CiB9CiAKIElQQzo6Q29ubmVjdGlvbiYgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjppcGNDb25uZWN0aW9uKCkgY29uc3QKQEAgLTg1LDEzICs4NCwxNiBA
QCB1aW50NjRfdCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKLSAgICBpZiAoIW1fc2Vy
dmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2Vy
dmVyLT5jb25uZWN0aW9uKGRlc3RpbmF0aW9uSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigp
KSkKKyAgICBhdXRvKiBzZXJ2ZXIgPSB0aGlzLT5zZXJ2ZXIoKTsKKyAgICBpZiAoYXV0byogY29u
bmVjdGlvbiA9IHNlcnZlciA/IHNlcnZlci0+Y29ubmVjdGlvbihkZXN0aW5hdGlvbklkZW50aWZp
ZXIucHJvY2Vzc0lkZW50aWZpZXIoKSkgOiBudWxscHRyKQogICAgICAgICBjb25uZWN0aW9uLT5w
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1l
c3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbik7CiB9CiAKK3ZvaWQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjbG9zZSgpCit7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNsb3NlIHsgfSk7Cit9CisKIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQo
Y29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwgY29uc3QgU2Vydmlj
ZVdvcmtlckRhdGEmIHdvcmtlckRhdGEsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJU
aHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246Okluc3RhbGxTZXJ2aWNlV29ya2VyIHsgY29udGV4dERh
dGEsIHdvcmtlckRhdGEsIHVzZXJBZ2VudCwgd29ya2VyVGhyZWFkTW9kZSB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCBkOTViN2Nl
ODU0Njk4YzUxNjZkM2ExNTlhMzc4OGVkZTJkOWIyMjhhLi5iZTk2MTUyOGRiMmZhMGZiZGMwOTg1
NmFmY2YxZTE0OGQzNjVhMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBXZWJTV1NlcnZlckNv
bm5lY3Rpb247CiAKLWNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjogcHVibGlj
IFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2Fn
ZVNlbmRlciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbiBmaW5hbDogcHVibGljIFdlYkNvcmU6OlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJQYWdlUHJveHlJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNXU2VydmVyJik7CiAgICAgfldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbigpOwpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckRvd25s
b2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEb3du
bG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJik7CiAKLSAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0OworICAgIFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAg
TmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLm5l
dHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToKQEAgLTk3LDYgKzk3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTY3JpcHRCdWZmZXImLCBjb25zdCBIYXNoTWFwPFVSTCwg
V2ViQ29yZTo6U2NyaXB0QnVmZmVyPiYgaW1wb3J0ZWRTY3JpcHRzKSBmaW5hbDsKICAgICB2b2lk
IG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgZmluYWw7CiAgICAgdm9pZCBm
aXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CiAKICAgICB2b2lkIGNvbm5lY3Rp
b25Jc05vTG9uZ2VyTmVlZGVkKCkgZmluYWw7CiAgICAgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVz
cG9uc2l2ZW5lc3MoKSBmaW5hbDsKQEAgLTEwNCw3ICsxMDUsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgY29ubmVjdGlvbkNsb3NlZCgpOwogCiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIG1fY29ubmVjdGlvbjsKLSAgICBXZWFrUHRyPFdlYkNvcmU6OlNXU2VydmVyPiBtX3NlcnZl
cjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2Vha1B0cjxTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hlczsKICAgICBIYXNoTWFwPFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciwgV2Vha1B0cjxTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrPj4gbV9v
bmdvaW5nRG93bmxvYWRzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNo
YXJlZFdvcmtlclNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJl
ZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuY3BwCmluZGV4IDQ1ZTY5N2JhNTQ3OGQ4YjUw
MmZjZTVkMDQ4MDAwYjdiNGFkYzhhYTEuLjU4MWE2ZThlNDljYjc2NjAxNzE1MGM5MzA2NzA0ZmQ3
ODkwOGJiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2hhcmVk
V29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmNwcApAQCAtMjU5
LDQgKzI1OSwxNCBAQCB2b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6cG9zdEV4Y2VwdGlvblRv
V29ya2VyT2JqZWN0KFdlYkNvcmU6OlNoYXJlZFdvcmtlcklkZQogICAgIH0pOwogfQogCit2b2lk
IFdlYlNoYXJlZFdvcmtlclNlcnZlcjo6dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9z
c2libGUoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWlu
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBh
dXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IGNvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVE
b21haW4ocmVnaXN0cmFibGVEb21haW4pOworICAgIFJFTEVBU0VfTE9HKFNoYXJlZFdvcmtlciwg
IldlYlNoYXJlZFdvcmtlclNlcnZlcjo6dGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25XaGVuUG9z
c2libGU6IHByb2Nlc3NJZGVudGlmaWVyPSUiIFBSSXU2NCAiLCBjb250ZXh0Q29ubmVjdGlvbj0l
cCIsIHByb2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCksIGNvbnRleHRDb25uZWN0aW9uKTsKKyAg
ICBpZiAoIWNvbnRleHRDb25uZWN0aW9uIHx8IGNvbnRleHRDb25uZWN0aW9uLT53ZWJQcm9jZXNz
SWRlbnRpZmllcigpICE9IHByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBjb250ZXh0Q29ubmVjdGlvbi0+dGVybWluYXRlV2hlblBvc3NpYmxlKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaAppbmRleCAx
OGIzMTBlNTVhNmNhNmU1YzlmNjRmNzFjNTRhNTgwM2U3M2EwNmEyLi5mOGI0NWFlNGEwMThlYWYw
MzYxMGE1YjlhZmQ5ZmM1NjNiNjEyZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2
ZXIuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaGFyZWRXb3JrZXJPYmpl
Y3RJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpTaGFyZWRXb3JrZXJLZXkmLCBXZWJDb3JlOjpT
aGFyZWRXb3JrZXJPYmplY3RJZGVudGlmaWVyKTsKICAgICB2b2lkIHBvc3RFeGNlcHRpb25Ub1dv
cmtlck9iamVjdChXZWJDb3JlOjpTaGFyZWRXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKTsKIAorICAgIHZvaWQgdGVybWluYXRlQ29udGV4dENvbm5lY3Rpb25X
aGVuUG9zc2libGUoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCBhZGRDb250ZXh0Q29ubmVjdGlvbihXZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7CiAgICAgdm9pZCByZW1vdmVDb250
ZXh0Q29ubmVjdGlvbihXZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7
CiAgICAgdm9pZCBhZGRDb25uZWN0aW9uKHN0ZDo6dW5pcXVlX3B0cjxXZWJTaGFyZWRXb3JrZXJT
ZXJ2ZXJDb25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hh
cmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggYzhhZDg1ZWUzYzMw
YjAzYjc1NTFkMzM5ZmJjZDYwODMxZjE2ZWMwNi4uNDQ2YjllNTZkYTk1MTJjODUyOTFhZTcxZDBm
MDgzM2Y4MDJhMzk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
aGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVk
V29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2
b2lkIFdlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnJlbW92ZVNoYXJl
ZFdvcmtlck9iamVjdChXZWJDb3JlOgogICAgIGlmIChtX3NoYXJlZFdvcmtlck9iamVjdHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIENPTlRFWFRfQ09OTkVDVElPTl9SRUxFQVNFX0xPRygicmVtb3Zl
U2hhcmVkV29ya2VyT2JqZWN0OiBjb25uZWN0aW9uIGlzIG5vdyBpZGxlLCBzdGFydGluZyBhIHRp
bWVyIHRvIHRlcm1pbmF0ZSBpdCIpOwogICAgICAgICBBU1NFUlQoIW1faWRsZVRlcm1pbmF0aW9u
VGltZXIuaXNBY3RpdmUoKSk7Ci0gICAgICAgIG1faWRsZVRlcm1pbmF0aW9uVGltZXIuc3RhcnRP
bmVTaG90KE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkgPyAwX3MgOiBpZGxlVGVybWluYXRpb25EZWxheSk7CisgICAgICAgIG1faWRsZVRl
cm1pbmF0aW9uVGltZXIuc3RhcnRPbmVTaG90KE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xl
dG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgfHwgbV9zaG91bGRUZXJtaW5hdGVXaGVuUG9z
c2libGUgPyAwX3MgOiBpZGxlVGVybWluYXRpb25EZWxheSk7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRX
b3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKaW5kZXggMmFhNTQzOTAzYWNiNTRjOTc0YWMyODMyYzA3NTcyZDQ5OTM1MGYzOS4uOTlk
YTM4NjA2ZWNhZmUxZjBjNmYzMGQ1NWNkMTA4OWY0MmQ3NDY5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApA
QCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURv
bWFpbjsgfQogICAgIElQQzo6Q29ubmVjdGlvbiYgaXBjQ29ubmVjdGlvbigpIGNvbnN0OwogCisg
ICAgdm9pZCB0ZXJtaW5hdGVXaGVuUG9zc2libGUoKSB7IG1fc2hvdWxkVGVybWluYXRlV2hlblBv
c3NpYmxlID0gdHJ1ZTsgfQorCiAgICAgdm9pZCBsYXVuY2hTaGFyZWRXb3JrZXIoV2ViU2hhcmVk
V29ya2VyJik7CiAgICAgdm9pZCBwb3N0Q29ubmVjdEV2ZW50KGNvbnN0IFdlYlNoYXJlZFdvcmtl
ciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZmVycmVkTWVzc2FnZVBvcnQmKTsKICAgICB2b2lkIHRl
cm1pbmF0ZVNoYXJlZFdvcmtlcihjb25zdCBXZWJTaGFyZWRXb3JrZXImKTsKQEAgLTg1LDYgKzg3
LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBtX3JlZ2lzdHJh
YmxlRG9tYWluOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIEhhc2hT
ZXQ8V2ViQ29yZTo6U2hhcmVkV29ya2VyT2JqZWN0SWRlbnRpZmllcj4+IG1fc2hhcmVkV29ya2Vy
T2JqZWN0czsKICAgICBXZWJDb3JlOjpUaW1lciBtX2lkbGVUZXJtaW5hdGlvblRpbWVyOworICAg
IGJvb2wgbV9zaG91bGRUZXJtaW5hdGVXaGVuUG9zc2libGUgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzYmI0NGE0ODQzOGUyYzVjODg3
YWI4MmIxNmU0OTQ3ZGNhZjE5NDgwLi5lNTI0N2Y3MTUzYTBkMTgzZTUxYTRhMTE1ZmFkOGE3YWZj
N2ZlNTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE3ODIsNiArMTc4MiwxMSBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKFBBTDo6U2VzcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkdldE9yaWdpbnNXaXRoUHVzaEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zIHsgc2Vz
c2lvbklEIH0sIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShS
ZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluLCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6VGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rp
b25XaGVuUG9zc2libGUod29ya2VyVHlwZSwgc2Vzc2lvbklELCByZWdpc3RyYWJsZURvbWFpbiwg
cHJvY2Vzc0lkZW50aWZpZXIpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1
bmRlZiBNRVNTQUdFX0NIRUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGMzZTdhYjdkNjRjMjdlMDcwZWE4ZDky
NDA1ZWU0OWUyOTkzMzI1ZGQuLjI1MjgzM2ZmMjA1NTBkODI0OGNjNmUxZTU1NDU4Y2IwZTc3MzNm
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC0yOTksNiArMjk5LDggQEAgcHVibGljOgogICAgIHZvaWQgZGF0
YVRhc2tEaWRDb21wbGV0ZVdpdGhFcnJvcihEYXRhVGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImJik7CiAgICAgdm9pZCBjYW5jZWxEYXRhVGFzayhEYXRhVGFza0lkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAorICAgIHZvaWQgdGVybWluYXRlUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV29ya2VyVHlwZSwgUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9jZXNzUHJveHko
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MzQ5MzdmYjgyZDZhYmI3NTg5MmZjNWY0OTVlMGQxN2EyOTAzMTAxMi4uYmU5NmI0MWRlMjc1MmZj
NjM1OTM0MTYzZTViMDIwNTVhZmVkYzI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjg5LDkgKzE2ODksMTAgQEAgdm9pZCBXZWJQcm9jZXNz
UHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFVSTCYgdXJs
KQogCiAgICAgYXV0byByZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHsgdXJsIH07CiAgICAgaWYgKG1fcmVnaXN0cmFibGVEb21haW4gJiYgKm1fcmVnaXN0cmFi
bGVEb21haW4gIT0gcmVnaXN0cmFibGVEb21haW4pIHsKLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgICAgIGRpc2FibGVSZW1vdGVXb3JrZXJzKFJlbW90ZVdvcmtlclR5cGU6OlNlcnZp
Y2VXb3JrZXIpOwotI2VuZGlmCisgICAgICAgIGlmIChpc1J1bm5pbmdTZXJ2aWNlV29ya2Vycygp
KQorICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkudGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV29ya2Vy
VHlwZTo6U2VydmljZVdvcmtlciwgd2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpLCAqbV9y
ZWdpc3RyYWJsZURvbWFpbiwgY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgICAgICBpZiAo
aXNSdW5uaW5nU2hhcmVkV29ya2VycygpKQorICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZSgp
Lm5ldHdvcmtQcm9jZXNzKCkudGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25X
aGVuUG9zc2libGUoUmVtb3RlV29ya2VyVHlwZTo6U2hhcmVkV29ya2VyLCB3ZWJzaXRlRGF0YVN0
b3JlKCkuc2Vzc2lvbklEKCksICptX3JlZ2lzdHJhYmxlRG9tYWluLCBjb3JlUHJvY2Vzc0lkZW50
aWZpZXIoKSk7CiAKICAgICAgICAgLy8gTnVsbCBvdXQgcmVnaXN0cmFibGUgZG9tYWluIHNpbmNl
IHRoaXMgcHJvY2VzcyBoYXMgbm93IGJlZW4gdXNlZCBmb3Igc2V2ZXJhbCBkb21haW5zLgogICAg
ICAgICBtX3JlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDg3MzkzNmJiMWFjOGRmNGI5ZTA3ODA2MjI5NmM3ODIzMWNiNjg3MTQuLmM3YjBk
MmExZjI3ODk1OGQyODY5ZTI4OTAzYmQ5MWQ5NTI1MGIxOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMi0wMy0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04ocjI5MDM1Ni1yMjkwMzUxPyk6IFsgaU9TIEVXUyBdIDMgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvKiB0ZXN0
cyBhcmUgY29uc3RhbnQgdGV4dCBmYWlsdXJlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzE2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODk0
NDAwNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBV
bnNraXAgdGVzdHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGZhaWxpbmcuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRlIFdQVCBjc3Mtc2Nyb2xs
LXNuYXAgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk5YWQzZTM0MDYx
MzIyMWQ0NjBmNzhiNDY1N2NmNzNlY2NiMjRmZTUuLjllNDhlMTQyZjBiYjY3NDE0ODRiZDY3NDA5
MmIyYzhiYzEzNjBlYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAzLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgUkVHUkVTU0lPTihyMjkwMzU2LXIyOTAzNTE/KTogWyBpT1MgRVdTIF0gMyBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci8q
IHRlc3RzIGFyZSBjb25zdGFudCB0ZXh0IGZhaWx1cmVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTQ0MDA2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAg
ICAgIFJlYmFzZWxpbmUgdGVzdCB0aGF0IGlzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1
ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0w
MyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBk
YXRlIFdQVCBjc3Mtc2Nyb2xsLXNuYXAgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNGJmNTJjOTJiODQ2NzE1YWQwMDdiNTA0OTQ0ODcwM2Ey
Y2I4OTJhOC4uMzg4MjQ5MTRlMTJhNDgyOWYyYjFhZTBlZDc1M2I5MWE2Yjk3NGFmNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVy
cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVz
dC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgVGhlIGhlYWRlcnMgb2YgRmV0Y2hFdmVudCBzaG91bGRuJ3QgY29udGFpbiBmcmVz
aG5lc3MgaGVhZGVycy4gYXNzZXJ0X2ZhbHNlOiBpZi1ub25lLW1hdGNoIGhlYWRlciBtdXN0IG5v
dCBiZSBzZXQgaW4gdGhlIEZldGNoRXZlbnQncyByZXF1ZXN0LiAodXJsID0gaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtc2NyaXB0LnB5KSBleHBlY3RlZCBmYWxzZSBn
b3QgdHJ1ZQorUEFTUyBUaGUgaGVhZGVycyBvZiBGZXRjaEV2ZW50IHNob3VsZG4ndCBjb250YWlu
IGZyZXNobmVzcyBoZWFkZXJzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGNlMzA3NzRmYzhkODI5YjU3N2JmZTFkMjAzMWQxMGY3MjE3ZjdlNjUuLjA3
NWQ4ZjRhMjQ4NjA4MmMzNGNhMjBiMjk4MTExYTNmNjIxYzE5YjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTg4LDggKzIxODgsNiBAQCB3ZWJraXQu
b3JnL2IvMTUyNDQyIGZhc3Qvc2Nyb2xsaW5nL3J0bC1wb2ludC1pbi1pZnJhbWUuaHRtbCBbIFNr
aXAgXQogCiB3ZWJraXQub3JnL2IvMTUyMjgyIGNzczMvZmlsdGVycy9jb21wb3NpdGVkLWR1cmlu
Zy10cmFuc2l0aW9uLWxheWVydHJlZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8y
MzcxNjAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcGFydGl0aW9uZWQtc2VydmljZS13b3JrZXIudGVudGF0aXZlLmh0dHBzLmh0
bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzE1MjkzNSBmYXN0L3Njcm9sbGluZy9zY3Jv
bGwtcG9zaXRpb24tb24tcmVsb2FkLXJ0bC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcv
Yi8xNTMzNzEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZ2V0cmVzcG9uc2Vo
ZWFkZXItY2h1bmtlZC10cmFpbGVyLmh0bSBbIFBhc3MgRmFpbHVyZSBdCkBAIC0zNTA0LDcgKzM1
MDIsMyBAQCB3ZWJraXQub3JnL2IvMjM3Mjk1IGZhc3QvbWVkaWFzdHJlYW0vdmlkZW8tcm90YXRp
b24tZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbCBbIFBhcwogd2Via2l0Lm9yZy9iLzIzNjc5NCBlZGl0
aW5nL3NwZWxsaW5nL2VkaXRpbmctd29yZC13aXRoLW1hcmtlci0yLmh0bWwgWyBQYXNzIENyYXNo
IF0KIAogd2Via2l0Lm9yZy9iLzIzNzE1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0
OS5odG1sIFsgUGFzcyBDcmFzaCBdCi0KLXdlYmtpdC5vcmcvYi8yMzcxNjEgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
cmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
LQotd2Via2l0Lm9yZy9iLzIzNzE2MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wYXJ0aXRpb25lZC1zZXJ2aWNlLXdvcmtlci1n
ZXRSZWdpc3RyYXRpb25zLnRlbnRhdGl2ZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454939</attachid>
            <date>2022-03-17 01:16:20 -0700</date>
            <delta_ts>2022-04-13 08:52:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237160-20220317091618.patch</filename>
            <type>text/plain</type>
            <size>2595</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJlNjdiMWFiY2E4MmU2
MDA3NjAyODM5OWNjNGM3OWJlMWE2MGY0ZS4uOWFkZmQ2ZGJiNWJmOTIzOGVhMDE4ZGRlODg4MTgw
NWZlNmVjZjgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyOTAz
NTYtcjI5MDM1MT8pOiBbIGlPUyBFV1MgXSAzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLyogdGVzdHMgYXJlIGNvbnN0YW50IHRl
eHQgZmFpbHVyZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcxNjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQwMDY3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gd2UgdHJ5IHJldXNp
bmcgYSByZXNvdXJjZSBpbiB0aGUgTWVtb3J5Q2FjaGUgdGhhdCB3YXMgcHJvdmlkZWQgYnkgYSBz
ZXJ2aWNlIHdvcmtlciwgd2UgbWlnaHQgbmVlZCB0byByZXZhbGlkYXRlIGl0LgorICAgICAgICBJ
biB0aGF0IGNhc2UsIHdlIG1pZ2h0IGFkZCByZXZhbGlkYXRpb24gaGVhZGVycyB0aGF0IHdpbGwg
c2hvdyB1cCBpbiBzZXJ2aWNlIHdvcmtlcnMgZmV0Y2ggZXZlbnQgcmVxdWVzdC4KKyAgICAgICAg
VG8gcHJldmVudCB0aGlzLCB3ZSByZWxvYWQgaW5zdGVhZCBvZiByZXZhbGlkYXRpbmcgYXQgZG9j
dW1lbnQgbGV2ZWwuCisgICAgICAgIFRoZSBzZXJ2aWNlIHdvcmtlciB3aWxsIHRoZW4gYmUgYWJs
ZSB0byByZXZhbGlkYXRlIGl0c2VsZiB0aGUgcmVzb3VyY2Ugc2luY2UgaXQgaXMgcHJvYmFibHkg
aW4gaXRzIG1lbW9yeSBjYWNoZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHRlc3QgdGhhdCBpcyBu
byBsb25nZXIgZmxha3kuCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwOgorCiAyMDIyLTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBLZWVwIHNlcnZpY2Ugd29ya2VycyBhbGl2ZSB3aGVuIHRoZXkgYXJlIGlu
c3BlY3RlZCBldmVuIHRob3VnaCB0aGV5IHNob3VsZCBiZSB0ZXJtaW5hdGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCA4YzlkMGM4ZGFlZjRkNjI2YTFiNzQwNzFjZDlhZDUxYzcwODc1NjA2Li5iN2E5MWI0YWYwOWZm
YThkNjcyZWI5M2FkNGM3YzdiZmYwOGU1YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEzMzQsOCArMTMzNCwx
NCBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291
cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgIC8vIENoZWNrIGlmIHRoZSBjYWNoZSBo
ZWFkZXJzIHJlcXVpcmVzIHVzIHRvIHJldmFsaWRhdGUgKGNhY2hlIGV4cGlyYXRpb24gZm9yIGV4
YW1wbGUpLgogICAgIGlmIChyZXZhbGlkYXRpb25EZWNpc2lvbiAhPSBDYWNoZWRSZXNvdXJjZTo6
UmV2YWxpZGF0aW9uRGVjaXNpb246Ok5vKSB7CiAgICAgICAgIC8vIFNlZSBpZiB0aGUgcmVzb3Vy
Y2UgaGFzIHVzYWJsZSBFVGFnIG9yIExhc3QtbW9kaWZpZWQgaGVhZGVycy4KLSAgICAgICAgaWYg
KGV4aXN0aW5nUmVzb3VyY2UtPmNhblVzZUNhY2hlVmFsaWRhdG9yKCkpCisgICAgICAgIGlmIChl
eGlzdGluZ1Jlc291cmNlLT5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKSB7CisjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQorICAgICAgICAgICAgLy8gUmV2YWxpZGF0aW5nIHdpbGwgbWVhbiBleHBv
c2luZyBoZWFkZXJzIHRvIHRoZSBzZXJ2aWNlIHdvcmtlciwgbGV0J3MgcmVsb2FkIGdpdmVuIHRo
ZSBzZXJ2aWNlIHdvcmtlciBhbHJlYWR5IGhhbmRsZWQgaXQuCisgICAgICAgICAgICBpZiAoY2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0Lm9wdGlvbnMoKS5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVsb2FkOworI2VuZGlmCiAgICAgICAg
ICAgICByZXR1cm4gUmV2YWxpZGF0ZTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8g
Tm8sIG11c3QgcmVsb2FkLgogICAgICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhdGlvblBvbGljeSByZWxvYWRpbmcgZHVlIHRv
IG1pc3NpbmcgY2FjaGUgdmFsaWRhdG9ycy4iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>