<?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>229203</bug_id>
          
          <creation_ts>2021-08-17 14:22:57 -0700</creation_ts>
          <short_desc>[WK2] Implement process-swapping based on Cross-Origin-Opener-Policy HTTP header</short_desc>
          <delta_ts>2021-08-26 12:30: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>WebKit2</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=229532</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>
          
          <blocked>228755</blocked>
    
    <blocked>229465</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ayumi_kojima</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1784932</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-17 14:22:57 -0700</bug_when>
    <thetext>Implement process-swapping based on Cross-Origin-Opener-Policy HTTP header to improve security.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784936</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-17 14:46:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/82047686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784987</commentid>
    <comment_count>2</comment_count>
      <attachid>435727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-17 16:38:58 -0700</bug_when>
    <thetext>Created attachment 435727
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785000</commentid>
    <comment_count>3</comment_count>
      <attachid>435729</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-17 17:16:55 -0700</bug_when>
    <thetext>Created attachment 435729
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785136</commentid>
    <comment_count>4</comment_count>
      <attachid>435776</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-18 09:40:50 -0700</bug_when>
    <thetext>Created attachment 435776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785143</commentid>
    <comment_count>5</comment_count>
      <attachid>435778</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-18 09:48:01 -0700</bug_when>
    <thetext>Created attachment 435778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785172</commentid>
    <comment_count>6</comment_count>
      <attachid>435785</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-18 10:57:46 -0700</bug_when>
    <thetext>Created attachment 435785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785532</commentid>
    <comment_count>7</comment_count>
      <attachid>435785</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-19 11:26:24 -0700</bug_when>
    <thetext>Comment on attachment 435785
Patch

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:1042
&gt; +    if (m_isContinuingLoadAfterResponsePolicyCheck) {

Should this be std::exchange(m_isContinuingLoadAfterResponsePolicyCheck, false)?

&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:233
&gt; +    auto* previousMainFrame = m_page.mainFrame();

May as well use a RefPtr here.

&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.h:131
&gt; +        uint64_t listenerID, const UserData&amp;);

Can we keep all the parameters on one line?

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5638
&gt; +    if (!navigation) {

Why is this needed now but wasn&apos;t before?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1221
&gt; +    [webViewConfiguration preferences].javaScriptCanOpenWindowsAutomatically = YES;

Is this only needed on iOS?  Could we only do it on iOS if it is?
setJavaScriptCanOpenWindowsAutomaticallyIfNecessary(webViewConfiguration)

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:7226
&gt; +    // When the provisional load starts in the provisional process, kill the WebView&apos;s processes.

I don&apos;t understand this comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785535</commentid>
    <comment_count>8</comment_count>
      <attachid>435785</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-19 11:40:22 -0700</bug_when>
    <thetext>Comment on attachment 435785
Patch

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

&gt;&gt; Source/WebCore/loader/DocumentLoader.cpp:1042
&gt;&gt; +    if (m_isContinuingLoadAfterResponsePolicyCheck) {
&gt; 
&gt; Should this be std::exchange(m_isContinuingLoadAfterResponsePolicyCheck, false)?

I doesn&apos;t hurt. I will make the change.

&gt;&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:233
&gt;&gt; +    auto* previousMainFrame = m_page.mainFrame();
&gt; 
&gt; May as well use a RefPtr here.

OK

&gt;&gt; Source/WebKit/UIProcess/ProvisionalPageProxy.h:131
&gt;&gt; +        uint64_t listenerID, const UserData&amp;);
&gt; 
&gt; Can we keep all the parameters on one line?

Not new but OK.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5638
&gt;&gt; +    if (!navigation) {
&gt; 
&gt; Why is this needed now but wasn&apos;t before?

I&apos;ll double check if this is still needed. It might be a reminiscence of an earlier iteration. Basically, the issue is that we need a NavigationAction object to do process-swapping. We have the same logic in decidePolicyForNavigationAction, for the same reason.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1221
&gt;&gt; +    [webViewConfiguration preferences].javaScriptCanOpenWindowsAutomatically = YES;
&gt; 
&gt; Is this only needed on iOS?  Could we only do it on iOS if it is?
&gt; setJavaScriptCanOpenWindowsAutomaticallyIfNecessary(webViewConfiguration)

Yes, only iOS requires it but I didn&apos;t feel adding #ifdefs was worth it?

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:7226
&gt;&gt; +    // When the provisional load starts in the provisional process, kill the WebView&apos;s processes.
&gt; 
&gt; I don&apos;t understand this comment.

Oops, looks like a bad copy/paste. Will drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785542</commentid>
    <comment_count>9</comment_count>
      <attachid>435785</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-19 11:49:31 -0700</bug_when>
    <thetext>Comment on attachment 435785
Patch

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

&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1221
&gt;&gt;&gt; +    [webViewConfiguration preferences].javaScriptCanOpenWindowsAutomatically = YES;
&gt;&gt; 
&gt;&gt; Is this only needed on iOS?  Could we only do it on iOS if it is?
&gt;&gt; setJavaScriptCanOpenWindowsAutomaticallyIfNecessary(webViewConfiguration)
&gt; 
&gt; Yes, only iOS requires it but I didn&apos;t feel adding #ifdefs was worth it?

From our API:
/*! @abstract A Boolean value indicating whether JavaScript can open
 windows without user interaction.
 @discussion The default value is NO in iOS and YES in OS X.
 */
@property (nonatomic) BOOL javaScriptCanOpenWindowsAutomatically;

So this is the reason we need to set it to YES only on iOS: It is already YES on macOS by default. Therefore, it doesn&apos;t hurt to set it to YES no matter what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785544</commentid>
    <comment_count>10</comment_count>
      <attachid>435892</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-19 12:08:30 -0700</bug_when>
    <thetext>Created attachment 435892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785576</commentid>
    <comment_count>11</comment_count>
      <attachid>435892</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-19 14:18:39 -0700</bug_when>
    <thetext>Comment on attachment 435892
Patch

I think the imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html flakiness may be a regression from this patch. I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786464</commentid>
    <comment_count>12</comment_count>
      <attachid>436208</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 10:26:46 -0700</bug_when>
    <thetext>Created attachment 436208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786501</commentid>
    <comment_count>13</comment_count>
      <attachid>436222</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 12:18:49 -0700</bug_when>
    <thetext>Created attachment 436222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786599</commentid>
    <comment_count>14</comment_count>
      <attachid>436244</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 15:56:34 -0700</bug_when>
    <thetext>Created attachment 436244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786602</commentid>
    <comment_count>15</comment_count>
      <attachid>436246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-23 16:14:14 -0700</bug_when>
    <thetext>Created attachment 436246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786734</commentid>
    <comment_count>16</comment_count>
      <attachid>436285</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 07:38:53 -0700</bug_when>
    <thetext>Created attachment 436285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786838</commentid>
    <comment_count>17</comment_count>
      <attachid>436311</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 11:24:01 -0700</bug_when>
    <thetext>Created attachment 436311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786883</commentid>
    <comment_count>18</comment_count>
      <attachid>436319</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-24 12:19:53 -0700</bug_when>
    <thetext>Created attachment 436319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786926</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-24 14:11:48 -0700</bug_when>
    <thetext>Committed r281516 (240889@main): &lt;https://commits.webkit.org/240889@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436319.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787191</commentid>
    <comment_count>20</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-08-25 09:55:39 -0700</bug_when>
    <thetext>imported/w3c/web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html still shows up as a flaky test on EWS. I will create a new bug for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787739</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-08-26 12:30:47 -0700</bug_when>
    <thetext>Follow-up in https://trac.webkit.org/changeset/281632/webkit to fix fast/loader/reload-zero-byte-plugin.html.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435727</attachid>
            <date>2021-08-17 16:38:58 -0700</date>
            <delta_ts>2021-08-17 17:16:55 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>COOP_ProcessSwap_basic_wip.patch</filename>
            <type>text/plain</type>
            <size>79813</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggNzZmYmQ2ZTFmN2JjLi4wMzIzYTUxZDZjNTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0yLDggKzIsNiBAQCBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYQogQ09OU09MRSBNRVNTQUdFOiBG
ZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsu
aHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBv
bGljeSByZXNwb25zZSBoZWFkZXIuCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nl
c3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhl
YWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNr
cy4KIAogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IHdpbmRvdy5vcGVuKCkKIFBBU1Mg
Q09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiA8YT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ODllN2RjZWRjMzYuLmI2NTViN2Y3MjBkOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1z
ZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJj
ZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
cmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5
LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1z
dy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250ZXh0LmFueS5z
ZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDEwIEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2VydmljZS13
b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtl
ci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGlj
eSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAt
YmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdp
bi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsg
U2tpcCBdCiAKICMgUXVvdGEgY2hlY2sgbWlzc2luZyBpbiBXSzEKIGh0dHAvdGVzdHMvSW5kZXhl
ZERCL3N0b3JhZ2UtbGltaXQuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZmQ0NGU2NGZmNGEuLjdjYzgxMmFiODgwNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCAr
MzcxNSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGlj
aWVzL3JlZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Ut
d29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNr
aXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUt
amF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2Vy
dmljZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDEwIEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdv
cmtlci1pbnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2xheW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdv
cmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBT
a2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJl
LWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1s
L2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KIAogIyBObyBoZWFkZXIgZmls
dGVyaW5nIGZvciBXSzEKIGh0dHAvd3B0L2xvYWRpbmcvcmVkaXJlY3QtaGVhZGVycy5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjQuLjA0YjY0MTQ2NzMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCkBAIC03ODMsMTUgKzc4MywxMiBAQCBib29sIERvY3VtZW50TG9hZGVyOjpkb0Ny
b3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwog
CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3Npbmct
dGhlLXdlYi5odG1sI3Byb2Nlc3MtYS1uYXZpZ2F0ZS1mZXRjaCAoU3RlcCAxMi41LjYuMikKICAg
ICAvLyBJZiBzYW5kYm94RmxhZ3MgaXMgbm90IGVtcHR5IGFuZCByZXNwb25zZUNPT1AncyB2YWx1
ZSBpcyBub3QgInVuc2FmZS1ub25lIiwgdGhlbiBzZXQgcmVzcG9uc2UgdG8gYW4gYXBwcm9wcmlh
dGUgbmV0d29yayBlcnJvciBhbmQgYnJlYWsuCi0gICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAh
PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIG1fZnJhbWUtPmRv
Y3VtZW50KCktPmNyZWF0aW9uU2FuZGJveEZsYWdzKCkgIT0gU2FuZGJveE5vbmUpIHsKKyAgICBp
ZiAocmVzcG9uc2VDT09QLnZhbHVlICE9IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVu
c2FmZU5vbmUgJiYgZnJhbWVMb2FkZXIoKS0+ZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgIT0gU2Fu
ZGJveE5vbmUpIHsKICAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigp
LT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCA9IGVuZm9yY2VSZXNwb25z
ZUNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KHJlc3BvbnNlLnVybCgpLCByZXNwb25zZU9yaWdpbiwg
cmVzcG9uc2VDT09QKTsKLSAgICBpZiAobV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5u
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5z
d2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKLQogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC05OTgsOSArOTk1LDYgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGkKICAgICAgICAgfQogICAg
IH0KIAotICAgIGlmICghZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25zZShyZXNw
b25zZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCiAjaWYgIVVTRShDRikKQEAgLTEwNDIsMTEgKzEwMzYsMTkgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgQ29tcGxldGkKICAgICB9CiAjZW5kaWYKIAorICAgIGlmICghZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZShyZXNwb25zZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2spIHsKKyAgICAg
ICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uOjpVc2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBtYWluUmVz
b3VyY2VMb2FkZXIgPSB0aGlzLT5tYWluUmVzb3VyY2VMb2FkZXIoKTsKICAgICBpZiAobWFpblJl
c291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VMb2FkZXItPm1hcmtJbkFzeW5jUmVz
cG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBQb2xpY3lD
aGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVu
dFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVyID0gV1RGTW92ZShtYWluUmVz
b3VyY2VMb2FkZXIpLAorICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jl
c3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0
LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJj
ZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFBvbGljeUFjdGlvbiBwb2xpY3ks
IFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50aWZpZXIpIG11dGFibGUgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxpZEZvcihyZXF1ZXN0
SWRlbnRpZmllcikpOwogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3kp
OwpAQCAtMjAwOCw5ICsyMDEwLDE2IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6Om1heWJlTG9hZEVt
cHR5KCkKICAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRMb2FkRW1wdHkgPyAidGV4dC9odG1s
IiA6IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1l
KG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CiAg
ICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9yZXF1ZXN0LnVybCgpLCBtaW1lVHlw
ZSwgMCwgIlVURi04Il9zKTsKIAotICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0ZU1hY2hpbmUo
KS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkKKyAgICBpZiAoZnJhbWVMb2FkZXIo
KS0+c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkpIHsKICAg
ICAgICAgZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25zZShtX3Jlc3BvbnNlKTsK
IAorICAgICAgICAvLyBGSVhNRTogTm9uLWluaXRpYWwgYWJvdXQ6YmxhbmsgbG9hZHMgbWF5IGNh
dXNlIGEgYnJvd3NpbmcgY29udGV4dCBncm91cCBzd2l0Y2guIEhvd2V2ZXIsIHN1Y2ggbG9hZCBp
cyBzeW5jaHJvbm91cyBhbmQgZG9lc24ndAorICAgICAgICAvLyBpbnZvbHZlIGEgcmVzcG9uc2Ug
cG9saWN5IGRlY2lzaW9uLiBBcyBhIHJlc3VsdCwgd2Ugc2ltdWxhdGUgYSBicm93c2luZyBjb250
ZXh0IGdyb3VwIHN3aXRjaCB3aXRob3V0IGFjdHVhbGx5IHN3YXBwaW5nCisgICAgICAgIC8vIHBy
b2Nlc3MuCisgICAgICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCisgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5z
d2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKKyAgICB9CisKICAgICBmaW5pc2hlZExvYWRp
bmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyMzgsNiArMjI0Nyw3IEBAIHZvaWQgRG9j
dW1lbnRMb2FkZXI6OmNsZWFyTWFpblJlc291cmNlKCkKICNlbmRpZgogCiAgICAgbV9tYWluUmVz
b3VyY2UgPSBudWxscHRyOworICAgIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayA9IGZhbHNlOwogCiAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJD
bGllbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggZDhm
ZjFkYTNiZDY0Li4xYzg3MTQyZjQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oCkBAIC00MjUsNiArNDI1LDkgQEAgcHVibGljOgogCiAgICAgQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2N1cnJl
bnRDb29wRW5mb3JjZW1lbnRSZXN1bHQgPyBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQt
PmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5IDogQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgeyB9OyB9
CiAKKyAgICBib29sIGlzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2soKSBj
b25zdCB7IHJldHVybiBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2s7
IH0KKyAgICB2b2lkIHNldElzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2so
Ym9vbCBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKSB7IG1faXNDb250
aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayA9IGlzQ29udGludWluZ0xvYWRBZnRl
clJlc3BvbnNlUG9saWN5Q2hlY2s7IH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JU
IERvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVE
YXRhJik7CiAKQEAgLTU2MSw2ICs1NjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9nb3RGaXJz
dEJ5dGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0NsaWVudFJlZGlyZWN0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2sgeyBmYWxzZSB9Owog
CiAgICAgLy8gRklYTUU6IERvY3VtZW50OjptX3Byb2Nlc3NpbmdMb2FkRXZlbnQgYW5kIERvY3Vt
ZW50TG9hZGVyOjptX3dhc09ubG9hZERpc3BhdGNoZWQgYXJlIHJvdWdobHkgdGhlIHNhbWUKICAg
ICAvLyBhbmQgc2hvdWxkIGJlIG1lcmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAKaW5kZXggOGRjYTc1Yjk0MDc5Li45NjRlMmRkMTIwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlh
MTEzMjM4YTBhLi4xMjBhNGE1MjBiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIEZy
YW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0g
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3Jt
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSos
IFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmluZGV4IDk0YWU1NWE2NzY1Zi4u
MzcwZGY4ZmFhNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVk
ZSAiUmVmZXJyZXJQb2xpY3kuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRl
RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTYxLDggKzYyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1Bv
bGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KICAg
ICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQogCi0gICAgdm9pZCBzZXRTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9
IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSBjb25zdCB7
IHJldHVybiBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQorICAgIHZvaWQgc2V0U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
PSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KIAogICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KICAg
ICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1f
c3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9CkBAIC0xMTMsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CiAKICAgICBib29sIG1f
c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OworICAgIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8gfTsKICAgICBMb2NrSGlzdG9yeSBtX2xvY2tIaXN0b3J5IHsgTG9ja0hp
c3Rvcnk6Ok5vIH07CiAgICAgTG9ja0JhY2tGb3J3YXJkTGlzdCBtX2xvY2tCYWNrRm9yd2FyZExp
c3QgeyBMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9OwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVm
ZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDU0YWEzZWVmZGNlZi4uMWJiOTc2N2MyODdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAg
ICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2Fu
Y2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50
UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9
CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgot
ICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1l
bnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAg
IGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2
ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VM
b2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50
KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0
IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYg
c3lzdGVtUHJldmlld0luZm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEyMDUsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKICAgICBGUkFNRUxPQURFUl9SRUxFQVNF
X0xPRyhSZXNvdXJjZUxvYWRpbmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0OiBTdGFydGluZyBmcmFt
ZSBsb2FkIik7CiAKICAgICBtX3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7Ci0g
ICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKKyAgICBib29s
IGFscmVhZHlTZW50RGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5pc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCk7CisgICAgaWYgKCFhbHJlYWR5U2VudERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKQorICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZCgpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS5kb2N1
bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3MCwxMCArMTQ3MiwxMSBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAg
IFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNS
ZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzRGF0
YVVSTHNGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQo
KSk7CisgICAgbG9hZGVyLT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24pOwogICAgIGFk
ZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgpKTsKICAgICBh
cHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKG1fZnJh
bWUsIGxvYWRlciwgcmVxdWVzdCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQoKSkgeworICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAgICAgICAgbG9h
ZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmxvY2tCYWNrRm9y
d2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgICAgIGxv
YWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4NCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51
aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5n
V2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBT
ZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3Vy
cmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5n
U3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2OCw3ICszNzcx
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3Bl
PExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENv
bnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dp
dGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAg
IFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9j
dXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpD
b250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGlu
dWluZyk7CiAKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2Fj
aGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0
byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmM2JkYmVmY2EzOS4uZTU2YzA4ZjcwMzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBT
dWJzdGl0dXRlRGF0YTsKIGVudW0gY2xhc3MgQ2FjaGVQb2xpY3kgOiB1aW50OF90OwogZW51bSBj
bGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7CiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFVzZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBJc01h
aW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIFNob3VsZFVwZGF0ZUFw
cEluaXRpYXRlZFZhbHVlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICB2b2lkIGNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNr
Q29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lE
ZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW4oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzZWI1Y2VlNjQyNmMu
LjM5YmI0MDU0MDljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0
Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9y
bVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVj
aygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKaW5kZXgg
NmQ1ZGU4NGYyMTc5Li4xMDM3ZGY5OGVjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlz
dG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJlY3Rpb247
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQuaAppbmRleCA3NmUwOTM1MDViY2IuLmFiMTM1M2JjYzA4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdCB7IE5vLCBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMzksNyArMzksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZD4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObywKLSAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24KICAgICA+Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA0ODdjOWIyYjVlZjQuLjkyNTViZjMxM2M2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCB1c2luZyBTaGFyZWRTdHJpbmdIYXNoID0gdWlu
dDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDog
Ym9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKLWVudW0gY2xh
c3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogZW51bSBjbGFzcyBFdmVudFRocm90
dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBVbnJlc3BvbnNpdmUgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggZjA5ZDBiYzVlMzg3Li4yMmZlN2M1
ZTQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlvbmFy
eTsKQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdlYkNv
cmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSB7IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93IH07Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9Owor
ICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgeyBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07
CiAgICAgVXNlckRhdGEgdXNlckRhdGE7CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0Zvcndh
cmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCmluZGV4IGM2NTRjYjhjMTIyMS4uMTNmNjhhNzk3MDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNjYs
MTEgKzE2NiwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5h
dmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YQogewogICAgIFBST1ZJU0lPTkFM
UEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiIpOwogCi0g
ICAgbV9wYWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFz
ZVVSTCwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVz
LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyks
IG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAgIG1fcGFnZS5sb2FkRGF0YVdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogfQogCi12b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
IHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewor
ICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVM
RUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZFJlcXVlc3Q6Iik7CiAKICAgICAvLyBJZiB0
aGlzIGlzIGEgY2xpZW50LXNpZGUgcmVkaXJlY3QgY29udGludWluZyBpbiBhIG5ldyBwcm9jZXNz
LCB0aGVuIHRoZSBuZXcgcHJvY2VzcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZnJvbUl0ZW0ncyBVUkwu
IEluIHRoaXMgY2FzZSwKQEAgLTE3OSw3ICsxODAsOSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJl
cwogICAgIGlmIChuYXZpZ2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0Zv
cndhcmRMaXN0KCkgPT0gV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAg
ICBuYXZpZ2F0aW9uLmZyb21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nl
c3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9u
KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
LCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1Bh
Z2VBZnRlckNvbW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lv
bjsKKworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBu
YXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24m
IG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBAIC0xOTksNyArMjAyLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRp
b24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVzRGF0YSA9IHdlYnNp
dGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVw
ZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0YXRlcykpKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24u
bmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJh
bWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllcywg
V1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5p
dGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKICAgICBtX3Byb2Nlc3MtPnN0
YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0yMjcsOCArMjMwLDExIEBAIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgbWFpbiBmcmFt
ZSdzIGNvbW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRzIG1heSByZWx5IG9uIGl0IHVudGlsIHRo
ZSBuZXh0IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBtX3Bh
Z2UubWFpbkZyYW1lKCkpCisgICAgaWYgKGF1dG8qIG1haW5GcmFtZSA9IG1fcGFnZS5tYWluRnJh
bWUoKSkgewogICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwobWFp
bkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnVybCgpKTsKKyAgICAgICAgaWYgKCFtX2lzU2VydmVy
UmVkaXJlY3QgJiYgIW1haW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWQobWFpbkZyYW1lLT5w
cm92aXNpb25hbFVSTCgpKTsKKyAgICB9CiAKICAgICAvLyBOb3JtYWxseSwgbm90aWZpY2F0aW9u
IG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4K
ICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0byBhIHNlcnZl
ciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUgZnJvbSB0aGUg
bmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTMyMywxMiArMzI5LDEzIEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFt
ZUlkZW50aWZpZXIKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFt
ZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFs
aWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9h
ZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJh
bWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3Bv
bnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlz
dGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXgg
YTdmYjY2YTZkYWE3Li40Zjk0NTJlMGNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CiAgICAg
dWludDY0X3QgbmF2aWdhdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uSUQ7IH0K
ICAgICBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNp
b25hbExvYWRVUkw7IH0KKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21t
aXQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQ7
IH0KIAogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgY29uc3QgeyByZXR1cm4g
bV9kcmF3aW5nQXJlYS5nZXQoKTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiB0YWtlRHJhd2luZ0FyZWEoKTsKQEAgLTEwMiw3ICsxMDMsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGlu
ZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZp
c2liaWxpdHkpOwotICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCkBAIC0xMjQsNyArMTI1LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQp
OwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKLSAg
ICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsCisgICAgICAgIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9p
ZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0xNzEs
NiArMTczLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1
ZXN0OwogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgbV9wcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50OwogICAgIGJvb2wgbV93YXNDb21taXR0ZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0IHsgZmFsc2UgfTsKICAgICBV
UkwgbV9wcm92aXNpb25hbExvYWRVUkw7CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGYxOTA5MjI1MDljNy4uOTQzNTk0
MzA5YTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEz
OTAsNyArMTM5MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgYXV0byB0cmFuc2Fj
dGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCiAgICAgYXV0byB1cmwgPSBy
ZXF1ZXN0LnVybCgpOwotICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMpCisgICAgaWYgKHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKQogICAgICAgICBt
X3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3QodHJhbnNhY3Rpb24sIHsgbmF2aWdh
dGlvbi5uYXZpZ2F0aW9uSUQoKSwgdXJsLnN0cmluZygpIH0pOwogCiAgICAgTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnM7CkBAIC0xMzk4LDcgKzEzOTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkp
OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
czsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGlj
aWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tI
aXN0b3J5ID0gbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxv
Y2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKQEAg
LTE1MjUsNyArMTUyNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1l
dGVycy5NSU1FVHlwZSA9IE1JTUVUeXBlOwogICAgIGxvYWRQYXJhbWV0ZXJzLmVuY29kaW5nTmFt
ZSA9IGVuY29kaW5nOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJM
OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
czsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBV
c2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQo
KSk7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRl
UG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwpAQCAtMTU3OCw3ICsxNTc4LDcgQEAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVkUmVxdWVz
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXUKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUg
PSBzaW11bGF0ZWRSZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IGZhbHNlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm87CiAgICAgbG9hZFBh
cmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLT5sb2NrSGlzdG9yeSgpOwogICAgIGxv
YWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLT5sb2NrQmFja0Zv
cndhcmRMaXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5ID0gbmF2aWdhdGlvbi0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCk7CkBA
IC0zNTE4LDcgKzM1MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICAgICAg
aWYgKHN1c3BlbmRlZFBhZ2UgJiYgc3VzcGVuZGVkUGFnZS0+cGFnZUlzQ2xvc2VkT3JDbG9zaW5n
KCkpCiAgICAgICAgICAgICAgICAgc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKLSAgICAgICAg
ICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikpOworICAg
ICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24sIFdURk1v
dmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVzLCBudWxs
cHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBuYXZpZ2F0
aW9uLT5yZWxvYWRJdGVtKCkgPyBuYXZpZ2F0aW9uLT5yZWxvYWRJdGVtKCkgOiBuYXZpZ2F0aW9u
LT50YXJnZXRJdGVtKCk7CiAgICAgICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFj
dGlvbjo6VXNlICYmIGl0ZW0pIHsKQEAgLTM2MDUsNyArMzYwNSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmCiAKICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKICAg
ICBhdXRvKiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihtX3Byb3Zp
c2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCkpOwotICAgIGJvb2wgZGlkU3VzcGVuZFByZXZpb3Vz
UGFnZSA9IG5hdmlnYXRpb24gPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKCpuYXZpZ2F0
aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lvbmFsUGFnZS0+cHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3NpbmdVbnRpbEZpcnN0
TGF5ZXJGbHVzaCkgOiBmYWxzZTsKKyAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBu
YXZpZ2F0aW9uICYmICFtX3Byb3Zpc2lvbmFsUGFnZS0+c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VB
ZnRlckNvbW1pdCgpID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwg
bWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVy
Rmx1c2gpIDogZmFsc2U7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBtX3dl
YnNpdGVEYXRhU3RvcmUucHRyKCkgPT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkud2Vi
c2l0ZURhdGFTdG9yZSgpID8gV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Ok5v
IDogV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7CiAKICAgICAvLyBU
aGVyZSBpcyBubyB3YXkgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gdG8gdGhlIHBhZ2UgaW4gdGhl
IHByZXZpb3VzIHBhZ2Ugc28gY2xvc2UgaXQuCkBAIC0zNjIwLDExICszNjIwLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIEZyYW1lSW5mb0RhdGEmCiAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaWRDb21taXRQ
cm92aXNpb25hbFBhZ2Uob2xkV2ViUGFnZUlELCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3Bl
bmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQ
b2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0Vf
TE9HKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQ
SUQ9JWksIGhhc1N1c3BlbmRlZFBhZ2U9JWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCAhIXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZp
Z2F0aW9uICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0aW9u
Lm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgUkVMRUFT
RV9BU1NFUlQoIW5ld1Byb2Nlc3MtPmlzSW5Qcm9jZXNzQ2FjaGUoKSk7CisgICAgQVNTRVJUKHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vKTsKIAogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSkgewogICAgICAgICBXRUJQQUdFUFJP
WFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQ
cm9jZXNzOiBUaGVyZSBpcyBhbHJlYWR5IGEgcGVuZGluZyBwcm92aXNpb25hbCBsb2FkLCBjYW5j
ZWxsaW5nIGl0IChwcm92aXNvbmFsTmF2aWdhdGlvbklEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1
KSIsIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5uYXZpZ2F0
aW9uSUQoKSk7CkBAIC0zNjMzLDkgKzM2MzQsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMK
ICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJv
dmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdU
Rk1vdmUobmV3UHJvY2VzcyksIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2
aWdhdGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCksIG5hdmln
YXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKKyAgICBib29sIGlzU2VydmVyU2lkZVJlZGlyZWN0ID0gc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gJiYgbmF2aWdhdGlvbi5jdXJyZW50UmVx
dWVzdElzUmVkaXJlY3QoKTsKKyAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJv
dmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZNb3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpc1NlcnZlclNpZGVSZWRp
cmVjdCwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCi0gICAgYXV0byBjb250aW51YXRpb24g
PSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0gbWFr
ZVJlZihuYXZpZ2F0aW9uKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNp
ZXMpXSgpIG11dGFibGUgeworICAgIGF1dG8gY29udGludWF0aW9uID0gW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYobmF2aWdhdGlvbiks
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogaXRlbSA9IG5h
dmlnYXRpb24tPnRhcmdldEl0ZW0oKSkgewogICAgICAgICAgICAgTE9HKExvYWRpbmcsICJXZWJQ
YWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzIHRvIGJhY2sgaXRlbSBV
UkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMzY2MSw3ICsz
NjYzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAgICAgICAgaWYgKGF1dG8mIHN1YnN0
aXR1dGVEYXRhID0gbmF2aWdhdGlvbi0+c3Vic3RpdHV0ZURhdGEoKSkKICAgICAgICAgICAgIG1f
cHJvdmlzaW9uYWxQYWdlLT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5j
b250ZW50LmRhdGEoKSwgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1
dGVEYXRhLT5NSU1FVHlwZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0
YS0+YmFzZVVSTCwgc3Vic3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1
dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbiwgUmVzb3VyY2VS
ZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBudWxscHRyLCBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwor
ICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJl
c291cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwogICAgIH07CiAgICAgaWYgKG1faW5z
cGVjdG9yQ29udHJvbGxlci0+c2hvdWxkUGF1c2VMb2FkaW5nKCptX3Byb3Zpc2lvbmFsUGFnZSkp
CiAgICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0Q29udGludWVMb2FkaW5nQ2FsbGJh
Y2soKm1fcHJvdmlzaW9uYWxQYWdlLCBXVEZNb3ZlKGNvbnRpbnVhdGlvbikpOwpAQCAtNTYxNCwx
MyArNTYxNiwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogfQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1F
VHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3
YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQ
YWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlu
Zm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwKKyAgICBib29sIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC01NjMxLDkgKzU2MzUsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAg
ICBNRVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXF1ZXN0LnVybCgpKTsKICAgICBNRVNTQUdF
X0NIRUNLX1VSTChwcm9jZXNzLCByZXNwb25zZS51cmwoKSk7CiAgICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRlLT5u
YXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOworICAgIGlmICghbmF2aWdhdGlvbikg
eworICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1
ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0
LT5jdXJyZW50SXRlbSgpKTsKKyAgICAgICAgbmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi0+bmF2
aWdhdGlvbklEKCk7CisgICAgfQogICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpO
YXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUo
ZnJhbWVJbmZvKSwgdGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5
cGUsIGRvd25sb2FkQXR0cmlidXRlKTsKIAotICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZy
YW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBu
YXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFr
ZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1v
dmUobmF2aWdhdGlvbiksCiAgICAgICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8
U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFs
PE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6
Tm8pOwpAQCAtNTY0Miw5ICs1NjUwLDI4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAg
ICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVy
LCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9j
ZXNzKV0gKGNvbnN0IGF1dG8mIHBvbGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJ
RCwgbGlzdGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2Fu
ZGJveEV4dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAgICAgICB9KTsKKworICAg
ICAgICBhdXRvIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2Fk
SW5OZXdQcm9jZXNzOjpObzsKKyAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rp
b246OlVzZSAmJiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAgICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+
cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGlu
ZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2Ug
YW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFn
ZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFp
bigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJl
c3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xP
RyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBp
bmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAgICAgICAgICAg
cG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAgICAgICAgICAgICAgYXV0
byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNz
Rm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0aGlzLCByZXNwb25zZURv
bWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpu
YXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICAg
ICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJv
Y2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBy
ZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVs
bHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlcikpOworICAg
ICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQo
KSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciks
IHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAgfSwgU2hvdWxkRXhwZWN0
U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91bmREb21haW5SZXN1bHQ6
Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUpIHsKKyAgICAgICAg
bGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKG1fcG9s
aWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RG
TW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRh
dGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDNiZGNkZmRlMTU3Mi4uYmIzMWNhNmY5N2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjY5LDcgKzI2OSw3IEBAIGVudW0gY2xhc3Mg
Tm90aWZpY2F0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5n
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2VsZWN0aW9uRGlyZWN0aW9uIDogdWludDhf
dDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlIDogYm9vbDsKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgV3JpdGluZ0RpcmVjdGlvbiA6IHVpbnQ4
X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRh
JiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFt
ZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYm
KTsKICAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9w
dGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmID0gc3RkOjpudWxsb3B0KTsKQEAgLTIwNTksNyArMjA1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAotICAgICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9v
bCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZv
aWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJl
Z2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5Jik7CiAKQEAgLTI0NjEsNyArMjQ2MSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHJlcG9ydFBhZ2VMb2FkUmVzdWx0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0geyB9
KTsKIAotICAgIHZvaWQgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdh
dGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJik7CisgICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRl
UG9saWNpZXM+JiYpOwogCiAgICAgdm9pZCBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wpOwog
ICAgIHZvaWQgdXBkYXRlRm9udEF0dHJpYnV0ZXNBZnRlckVkaXRvclN0YXRlQ2hhbmdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggYTBiNzM5NTM2YjYwLi4yY2UzZjFkNDk2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwNyw3ICsxMDcsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwot
ICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6
Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lz
aW9uIFBvbGljeURlY2lzaW9uKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25E
YXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZjQxYmUzMGI3ODY0Li5hNDBlNjlkZmE1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbiA/ICptX3Jl
Z2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJh
YmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfSk7IH0KKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYgb3B0aW9u
YWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW47
IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAgYm9vbCBpc0luUHJv
Y2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDQwYmU2MWMyMGZjYi4uNGJjYWJmNDhkMzI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNiw3ICs4MTYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNo
b3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAg
ICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1
ZXN0LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rp
b25Vc2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3Rl
ZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRl
ciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBp
bmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgor
ICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5U
X1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBj
b250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVu
Y3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBA
IC04NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9s
aWN5RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQg
PSBwb2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4o
KnBvbGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvblVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVp
bnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZp
ZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8p
OwotICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSkpIHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNw
b25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgp
KS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVz
ZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAg
ICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVj
aXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAw
LCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFh
M2E4NjAxNzU3Mi4uOTY2NmQ2N2Y4NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3
RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7
CiAgICAgCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUq
LCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCmluZGV4IDRlNGJiY2ZiYmNkYS4uYTg5MTYyZGYwMzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTcyMyw3ICsx
NzIzLDcgQEAgTk9fUkVUVVJOIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3RXYWl0aW5nRm9yUHJv
Y2Vzc0xhdW5jaChMb2FkUGFyYW1ldGVycyYmLCBVUkwKICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVy
PiYmIHNoYXJlZEJ1ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNw
b25zZSYmIHJlc3BvbnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdlYlBhZ2U6Omxv
YWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFJlZjxTaGFyZWRCdWZmZXI+JiYgc2hhcmVk
QnVmZmVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RP
TUFJTlMpCiAgICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCAmbV9tYWluRnJhbWUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDc4ZDgzMGRhNDJkOS4uOGUzNGQ2ZDcxZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjQs
NyArMjI0LDcgQEAgZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsK
IGVudW0gY2xhc3MgSGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVt
IGNsYXNzIEhpZ2hsaWdodFZpc2liaWxpdHkgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25E
aXJlY3Rpb24gOiB1aW50OF90OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50
OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRHcmFudWxhcml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OwpAQCAtMTU3Miw3ICsxNTcyLDcg
QEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0g
ICAgdm9pZCBsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
LCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNv
bnN0IFVzZXJEYXRhJiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4s
IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNv
cmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4mJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0
ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0
dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBmODdiNDU5Zjg2Zjcu
LmYxYjVhODJkNGY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNjcsNyArMTY3LDcgQEAgR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUKICAgICBTY3JvbGxCeSh1aW50MzJfdCBzY3JvbGxEaXJlY3Rpb24sIHVpbnQz
Ml90IHNjcm9sbEdyYW51bGFyaXR5KQogICAgIENlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEo
KQogCi0gICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06
Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4g
d2Vic2l0ZVBvbGljaWVzKQorICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdh
dGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9y
d2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0Zvcndh
cmRUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNp
dGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQogCiAgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDE1MmZkYTFmNmVkNS4uMDUxNjI3MDA5YTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBk
aXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNv
cmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygp
IGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0
YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCmluZGV4IGJmZGUzZWQ3Njc5Yi4uMGNmYmVlZTA0NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQpAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoU2hvdygpCiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3U2hvdzp3ZWJWaWV3XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmll
dyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAppbmRleCA0ZDA0MGY1NjQ2ZWIuLmM1YWZhMTMzN2RiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNTE5LDcgKzUxOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgICAgIHVpLT53ZWJWaWV3U2hvdyh3ZWJWaWV3KTsK
IH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUt
PndlYlZpZXcoKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShtX3dlYkZyYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDZkYWMwYjA1MjE4My4uNjE0NjVjMTFmYzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRj
aERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3Rv
bmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBmOWI4ZGFmNjlmNDQuLmM4Y2IxNmIw
Nzk5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNTAsMTIgKzI1MCwx
NCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVy
PiB7CiAgICAgY29uc3QgY2hhciogX2J5dGVzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0
YU1hcHBpbmdzOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwogICAg
IEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBf
c2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
Qnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJp
bmc6KE5TU3RyaW5nICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRl
c3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNT
dHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOworLSAodm9pZClhZGRN
YXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBj
aGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUKQEAgLTI3Nyw2ICsyNzksMTMgQEAgLSAodm9pZClh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25z
dCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRh
dGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hl
bkRvbmU6Tk9dKTsKIH0KIAorLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNv
bnN0IGNoYXIqKWNvb3BWYWx1ZQoreworICAgIFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OnVybFN0cmluZyB0b0RhdGE6ZGF0YV07CisgICAgaWYgKGNvb3BWYWx1ZSkKKyAgICAgICAgX2Nv
b3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29vcFZhbHVlKTsKK30KKwogLSAodm9pZClzZXRTaG91
bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKIHsKICAgICBfc2hvdWxkUmVzcG9u
ZEFzeW5jaHJvbm91c2x5ID0gdmFsdWU7CkBAIC0zMTEsOCArMzIwLDE1IEBAIC0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNj
aGVtZVRhc2s+KXRhCiAgICAgICAgIFsoaWQ8V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBf
ZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpy
ZXF1ZXN0LmdldCgpXTsKICAgICB9CiAKLSAgICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3Nhcnko
W2ZpbmFsVVJMID0gcmV0YWluUHRyKGZpbmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFz
aykgewotICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5T
KFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgTUlNRVR5
cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6
bmlsXSk7CisgICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtzZWxmLCBmaW5hbFVSTCA9
IHJldGFpblB0cihmaW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0
aW9uYXJ5IGRpY3Rpb25hcnldOworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6
QCJ0ZXh0L2h0bWwiIGZvcktleTpAIkNvbnRlbnQtVHlwZSJdOworICAgICAgICBbaGVhZGVyRGlj
dGlvbmFyeSBzZXRPYmplY3Q6QCIxIiBmb3JLZXk6QCJDb250ZW50LUxlbmd0aCJdOworICAgICAg
ICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJp
bmddKTsKKyAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hl
YWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJdOworCisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBh
ZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdl
dCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBWZXJzaW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpo
ZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNw
b25zZS5nZXQoKV07CiAgICAgfSwgMC4xKTsKIApAQCAtNzE1MSwzICs3MTY3LDE2NiBAQCBURVNU
KFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVuRW50ZXJpbmdDYWNoZSkKICAgICAvLyBDbGVhciB0
aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0aGUgcHJvY2Vzc2VzIGFyZSBiZWluZyBjaGVja2Vk
IGZvciByZXNwb25zaXZlbmVzcy4KICAgICBbcHJvY2Vzc1Bvb2wgX2NsZWFyV2ViUHJvY2Vzc0Nh
Y2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BU
ZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWlu
Lmh0bWwiLCAiZm9vIik7Cit9Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitzdGF0aWMg
Y29uc3QgY2hhciogd2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVT
T1VSQ0UoCis8c2NyaXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3
aW5kb3cub3BlbigicG9wdXAuaHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0PgorKVBTT05SRVNP
VVJDRSI7CisKK2VudW0gY2xhc3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0
YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBF
eHBlY3RTd2FwIGV4cGVjdFN3YXApCit7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CisgICAgYXV0byBwcm9jZXNzUG9v
bCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29s
LmdldCgpXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dL
UHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJd
KSB7CisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKKyAgICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2Ft
ZU9yaWdpbjo6WWVzKSB7CisgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1l
T3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9w
b3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07
CisgICAgfSBlbHNlIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3Nz
T3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21h
aW4uaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOwor
ICAgIH0KKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5k
bGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKworICAgIC8vIFdoZW4gdGhlIHByb3Zpc2lvbmFsIGxvYWQgc3Rh
cnRzIGluIHRoZSBwcm92aXNpb25hbCBwcm9jZXNzLCBraWxsIHRoZSBXZWJWaWV3J3MgcHJvY2Vz
c2VzLgorICAgIF9fYmxvY2sgdW5zaWduZWQgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzID0gMDsK
KyAgICBuYXZpZ2F0aW9uRGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFu
ZGxlciA9IF57CisgICAgICAgICsrbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzOworICAgIH07CisK
KyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdl
dCgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTlVJRGVsZWdhdGUgYWxs
b2NdIGluaXRXaXRoTmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV0p
OworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBu
dW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ZG9uZSA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVX
ZWJWaWV3KTsKKyAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNUX0VRKDIsIG51bWJlck9mRGVjaWRl
UG9saWN5Q2FsbHMpOworICAgIEVYUEVDVF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRz
KTsgLy8gT25lIGluIGVhY2ggdmlldy4KKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKKyAgICBhdXRvIHBp
ZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1Rf
VFJVRSghIXBpZDIpOworCisgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQor
ICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1Rf
RVEocGlkMSwgcGlkMik7CisKKyAgICBib29sIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNl
OworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncuY2xvc2VkID8gJ3RydWUnIDog
J2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBOU1N0cmluZyAqaXNDbG9zZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7Cisg
ICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVY
UEVDVF9XS19TVFJFUShAInRydWUiLCBpc0Nsb3NlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaXNDbG9zZWQpOworICAgICAgICBmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUiIGNvbXBs
ZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAg
TlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChl
eHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmln
aW46OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dO
YW1lKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAg
ICAvLyBPcGVuZWUgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCisgICAgZmlu
aXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9u
SGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3Ry
aW5nICpoYXNPcGVuZXIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RT
d2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZh
bHNlIiwgaGFzT3BlbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtj
cmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIgY29tcGxldGlv
bkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0
cmluZyAqd2luZG93TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVj
dFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
Iiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0
cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5u
aW5nU2NyaXB0KTsKKworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtj
cmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4
dCIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBOU1N0cmluZyAqaW5uZXJUZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJwb3B1cCIsIGlubmVyVGV4dCk7CisgICAgICAgIGZpbmlzaGVk
UnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgY3JlYXRlZFdlYlZpZXcgPSBudWxs
cHRyOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1v
cmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIEV4cGVjdFN3YXA6Olll
cyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBFeHBlY3RT
d2FwOjpObyk7Cit9Cg==
</data>
<flag name="commit-queue"
          id="458613"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435729</attachid>
            <date>2021-08-17 17:16:55 -0700</date>
            <delta_ts>2021-08-18 10:19:15 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>COOP_ProcessSwap_basic_wip.patch</filename>
            <type>text/plain</type>
            <size>87669</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggNzZmYmQ2ZTFmN2JjLi4wMzIzYTUxZDZjNTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0yLDggKzIsNiBAQCBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYQogQ09OU09MRSBNRVNTQUdFOiBG
ZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsu
aHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBv
bGljeSByZXNwb25zZSBoZWFkZXIuCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nl
c3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhl
YWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNr
cy4KIAogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IHdpbmRvdy5vcGVuKCkKIFBBU1Mg
Q09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiA8YT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ODllN2RjZWRjMzYuLmI2NTViN2Y3MjBkOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1z
ZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJj
ZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
cmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5
LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1z
dy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250ZXh0LmFueS5z
ZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDEwIEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2VydmljZS13
b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtl
ci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGlj
eSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3MtT3JpZ2lu
LUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAt
YmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdp
bi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsg
U2tpcCBdCiAKICMgUXVvdGEgY2hlY2sgbWlzc2luZyBpbiBXSzEKIGh0dHAvdGVzdHMvSW5kZXhl
ZERCL3N0b3JhZ2UtbGltaXQuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZmQ0NGU2NGZmNGEuLjdjYzgxMmFiODgwNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCAr
MzcxNSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGlj
aWVzL3JlZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Ut
d29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNr
aXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJh
cHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUt
amF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2Vy
dmljZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDEwIEBAIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdv
cmtlci1pbnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2xheW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdv
cmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
IyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBT
a2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJl
LWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1s
L2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KIAogIyBObyBoZWFkZXIgZmls
dGVyaW5nIGZvciBXSzEKIGh0dHAvd3B0L2xvYWRpbmcvcmVkaXJlY3QtaGVhZGVycy5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjQuLjA0YjY0MTQ2NzMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCkBAIC03ODMsMTUgKzc4MywxMiBAQCBib29sIERvY3VtZW50TG9hZGVyOjpkb0Ny
b3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwog
CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3Npbmct
dGhlLXdlYi5odG1sI3Byb2Nlc3MtYS1uYXZpZ2F0ZS1mZXRjaCAoU3RlcCAxMi41LjYuMikKICAg
ICAvLyBJZiBzYW5kYm94RmxhZ3MgaXMgbm90IGVtcHR5IGFuZCByZXNwb25zZUNPT1AncyB2YWx1
ZSBpcyBub3QgInVuc2FmZS1ub25lIiwgdGhlbiBzZXQgcmVzcG9uc2UgdG8gYW4gYXBwcm9wcmlh
dGUgbmV0d29yayBlcnJvciBhbmQgYnJlYWsuCi0gICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAh
PSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIG1fZnJhbWUtPmRv
Y3VtZW50KCktPmNyZWF0aW9uU2FuZGJveEZsYWdzKCkgIT0gU2FuZGJveE5vbmUpIHsKKyAgICBp
ZiAocmVzcG9uc2VDT09QLnZhbHVlICE9IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVu
c2FmZU5vbmUgJiYgZnJhbWVMb2FkZXIoKS0+ZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgIT0gU2Fu
ZGJveE5vbmUpIHsKICAgICAgICAgY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlcigp
LT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCA9IGVuZm9yY2VSZXNwb25z
ZUNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KHJlc3BvbnNlLnVybCgpLCByZXNwb25zZU9yaWdpbiwg
cmVzcG9uc2VDT09QKTsKLSAgICBpZiAobV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5u
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5z
d2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKLQogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC05OTgsOSArOTk1LDYgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGkKICAgICAgICAgfQogICAg
IH0KIAotICAgIGlmICghZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25zZShyZXNw
b25zZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0
d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFy
ZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3Jl
IGRldGFpbHMuCiAjaWYgIVVTRShDRikKQEAgLTEwNDIsMTEgKzEwMzYsMTkgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgQ29tcGxldGkKICAgICB9CiAjZW5kaWYKIAorICAgIGlmICghZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZShyZXNwb25zZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2spIHsKKyAgICAg
ICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5QWN0aW9uOjpVc2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBtYWluUmVz
b3VyY2VMb2FkZXIgPSB0aGlzLT5tYWluUmVzb3VyY2VMb2FkZXIoKTsKICAgICBpZiAobWFpblJl
c291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VMb2FkZXItPm1hcmtJbkFzeW5jUmVz
cG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSBQb2xpY3lD
aGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVu
dFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9hZGVyID0gV1RGTW92ZShtYWluUmVz
b3VyY2VMb2FkZXIpLAorICAgIGZyYW1lTG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jl
c3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0
LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJj
ZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFBvbGljeUFjdGlvbiBwb2xpY3ks
IFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50aWZpZXIpIG11dGFibGUgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZpZXIuaXNWYWxpZEZvcihyZXF1ZXN0
SWRlbnRpZmllcikpOwogICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3kp
OwpAQCAtMjAwOCw5ICsyMDEwLDE2IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6Om1heWJlTG9hZEVt
cHR5KCkKICAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRMb2FkRW1wdHkgPyAidGV4dC9odG1s
IiA6IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1l
KG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CiAg
ICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9yZXF1ZXN0LnVybCgpLCBtaW1lVHlw
ZSwgMCwgIlVURi04Il9zKTsKIAotICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0ZU1hY2hpbmUo
KS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkKKyAgICBpZiAoZnJhbWVMb2FkZXIo
KS0+c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkpIHsKICAg
ICAgICAgZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25zZShtX3Jlc3BvbnNlKTsK
IAorICAgICAgICAvLyBGSVhNRTogTm9uLWluaXRpYWwgYWJvdXQ6YmxhbmsgbG9hZHMgbWF5IGNh
dXNlIGEgYnJvd3NpbmcgY29udGV4dCBncm91cCBzd2l0Y2guIEhvd2V2ZXIsIHN1Y2ggbG9hZCBp
cyBzeW5jaHJvbm91cyBhbmQgZG9lc24ndAorICAgICAgICAvLyBpbnZvbHZlIGEgcmVzcG9uc2Ug
cG9saWN5IGRlY2lzaW9uLiBBcyBhIHJlc3VsdCwgd2Ugc2ltdWxhdGUgYSBicm93c2luZyBjb250
ZXh0IGdyb3VwIHN3aXRjaCB3aXRob3V0IGFjdHVhbGx5IHN3YXBwaW5nCisgICAgICAgIC8vIHBy
b2Nlc3MuCisgICAgICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCisgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5z
d2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKKyAgICB9CisKICAgICBmaW5pc2hlZExvYWRp
bmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyMzgsNiArMjI0Nyw3IEBAIHZvaWQgRG9j
dW1lbnRMb2FkZXI6OmNsZWFyTWFpblJlc291cmNlKCkKICNlbmRpZgogCiAgICAgbV9tYWluUmVz
b3VyY2UgPSBudWxscHRyOworICAgIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayA9IGZhbHNlOwogCiAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJD
bGllbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5kZXggZDhm
ZjFkYTNiZDY0Li4xYzg3MTQyZjQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oCkBAIC00MjUsNiArNDI1LDkgQEAgcHVibGljOgogCiAgICAgQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kgY3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2N1cnJl
bnRDb29wRW5mb3JjZW1lbnRSZXN1bHQgPyBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQt
PmNyb3NzT3JpZ2luT3BlbmVyUG9saWN5IDogQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgeyB9OyB9
CiAKKyAgICBib29sIGlzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2soKSBj
b25zdCB7IHJldHVybiBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2s7
IH0KKyAgICB2b2lkIHNldElzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2so
Ym9vbCBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKSB7IG1faXNDb250
aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayA9IGlzQ29udGludWluZ0xvYWRBZnRl
clJlc3BvbnNlUG9saWN5Q2hlY2s7IH0KKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JU
IERvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVE
YXRhJik7CiAKQEAgLTU2MSw2ICs1NjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9nb3RGaXJz
dEJ5dGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0NsaWVudFJlZGlyZWN0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2sgeyBmYWxzZSB9Owog
CiAgICAgLy8gRklYTUU6IERvY3VtZW50OjptX3Byb2Nlc3NpbmdMb2FkRXZlbnQgYW5kIERvY3Vt
ZW50TG9hZGVyOjptX3dhc09ubG9hZERpc3BhdGNoZWQgYXJlIHJvdWdobHkgdGhlIHNhbWUKICAg
ICAvLyBhbmQgc2hvdWxkIGJlIG1lcmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAKaW5kZXggOGRjYTc1Yjk0MDc5Li45NjRlMmRkMTIwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlh
MTEzMjM4YTBhLi4xMjBhNGE1MjBiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIEZy
YW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0g
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3Jt
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSos
IFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmluZGV4IDk0YWU1NWE2NzY1Zi4u
MzcwZGY4ZmFhNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVk
ZSAiUmVmZXJyZXJQb2xpY3kuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRl
RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTYxLDggKzYyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koYm9vbCBjaGVja1Bv
bGljeSkgeyBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5ID0gY2hlY2tQb2xpY3k7IH0KICAg
ICBib29sIHNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeTsgfQogCi0gICAgdm9pZCBzZXRTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9
IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSBjb25zdCB7
IHJldHVybiBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQorICAgIHZvaWQgc2V0U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
PSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KIAogICAgIGNvbnN0IFN1YnN0aXR1dGVEYXRh
JiBzdWJzdGl0dXRlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Vic3RpdHV0ZURhdGE7IH0KICAg
ICB2b2lkIHNldFN1YnN0aXR1dGVEYXRhKGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBkYXRhKSB7IG1f
c3Vic3RpdHV0ZURhdGEgPSBkYXRhOyB9CkBAIC0xMTMsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CiAKICAgICBib29sIG1f
c2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OworICAgIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8gfTsKICAgICBMb2NrSGlzdG9yeSBtX2xvY2tIaXN0b3J5IHsgTG9ja0hp
c3Rvcnk6Ok5vIH07CiAgICAgTG9ja0JhY2tGb3J3YXJkTGlzdCBtX2xvY2tCYWNrRm9yd2FyZExp
c3QgeyBMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9OwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVm
ZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDU0YWEzZWVmZGNlZi4uMWJiOTc2N2MyODdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAg
ICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2Fu
Y2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50
UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9
CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgot
ICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1l
bnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAg
IGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2
ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VM
b2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50
KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0
IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYg
c3lzdGVtUHJldmlld0luZm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEyMDUsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKICAgICBGUkFNRUxPQURFUl9SRUxFQVNF
X0xPRyhSZXNvdXJjZUxvYWRpbmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0OiBTdGFydGluZyBmcmFt
ZSBsb2FkIik7CiAKICAgICBtX3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7Ci0g
ICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKKyAgICBib29s
IGFscmVhZHlTZW50RGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5pc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCk7CisgICAgaWYgKCFhbHJlYWR5U2VudERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKQorICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZCgpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS5kb2N1
bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3MCwxMCArMTQ3MiwxMSBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAg
IFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNS
ZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzRGF0
YVVSTHNGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQo
KSk7CisgICAgbG9hZGVyLT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24pOwogICAgIGFk
ZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgpKTsKICAgICBh
cHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKG1fZnJh
bWUsIGxvYWRlciwgcmVxdWVzdCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQoKSkgeworICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAgICAgICAgbG9h
ZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmxvY2tCYWNrRm9y
d2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgICAgIGxv
YWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4NCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51
aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5n
V2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBT
ZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3Vy
cmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5n
U3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2OCw3ICszNzcx
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3Bl
PExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENv
bnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dp
dGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAg
IFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9j
dXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpD
b250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGlu
dWluZyk7CiAKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2Fj
aGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0
byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmM2JkYmVmY2EzOS4uZTU2YzA4ZjcwMzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBT
dWJzdGl0dXRlRGF0YTsKIGVudW0gY2xhc3MgQ2FjaGVQb2xpY3kgOiB1aW50OF90OwogZW51bSBj
bGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7CiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFVzZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBJc01h
aW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIFNob3VsZFVwZGF0ZUFw
cEluaXRpYXRlZFZhbHVlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICB2b2lkIGNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lkIGNoZWNr
Q29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lE
ZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW4oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzZWI1Y2VlNjQyNmMu
LjM5YmI0MDU0MDljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0
Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9y
bVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVj
aygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKaW5kZXgg
NmQ1ZGU4NGYyMTc5Li4xMDM3ZGY5OGVjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlz
dG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJlY3Rpb247
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQuaAppbmRleCA3NmUwOTM1MDViY2IuLmFiMTM1M2JjYzA4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdCB7IE5vLCBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMzksNyArMzksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZD4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObywKLSAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24KICAgICA+Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA0ODdjOWIyYjVlZjQuLjkyNTViZjMxM2M2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCB1c2luZyBTaGFyZWRTdHJpbmdIYXNoID0gdWlu
dDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDog
Ym9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKLWVudW0gY2xh
c3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogZW51bSBjbGFzcyBFdmVudFRocm90
dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBVbnJlc3BvbnNpdmUgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggZjA5ZDBiYzVlMzg3Li4yMmZlN2M1
ZTQ0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlvbmFy
eTsKQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdlYkNv
cmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSB7IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93IH07Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9Owor
ICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgeyBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07
CiAgICAgVXNlckRhdGEgdXNlckRhdGE7CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hp
c3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0Zvcndh
cmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCmluZGV4IGM2NTRjYjhjMTIyMS4uMTNmNjhhNzk3MDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNjYs
MTEgKzE2NiwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5h
dmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YQogewogICAgIFBST1ZJU0lPTkFM
UEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiIpOwogCi0g
ICAgbV9wYWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFz
ZVVSTCwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVz
LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyks
IG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAgIG1fcGFnZS5sb2FkRGF0YVdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogfQogCi12b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
IHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewor
ICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVM
RUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZFJlcXVlc3Q6Iik7CiAKICAgICAvLyBJZiB0
aGlzIGlzIGEgY2xpZW50LXNpZGUgcmVkaXJlY3QgY29udGludWluZyBpbiBhIG5ldyBwcm9jZXNz
LCB0aGVuIHRoZSBuZXcgcHJvY2VzcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZnJvbUl0ZW0ncyBVUkwu
IEluIHRoaXMgY2FzZSwKQEAgLTE3OSw3ICsxODAsOSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJl
cwogICAgIGlmIChuYXZpZ2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0Zv
cndhcmRMaXN0KCkgPT0gV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAg
ICBuYXZpZ2F0aW9uLmZyb21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nl
c3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9u
KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
LCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1Bh
Z2VBZnRlckNvbW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lv
bjsKKworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBu
YXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24m
IG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBAIC0xOTksNyArMjAyLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRp
b24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVzRGF0YSA9IHdlYnNp
dGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVw
ZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0YXRlcykpKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24u
bmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJh
bWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllcywg
V1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5p
dGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKICAgICBtX3Byb2Nlc3MtPnN0
YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0yMjcsOCArMjMwLDExIEBAIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgbWFpbiBmcmFt
ZSdzIGNvbW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRzIG1heSByZWx5IG9uIGl0IHVudGlsIHRo
ZSBuZXh0IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBtX3Bh
Z2UubWFpbkZyYW1lKCkpCisgICAgaWYgKGF1dG8qIG1haW5GcmFtZSA9IG1fcGFnZS5tYWluRnJh
bWUoKSkgewogICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwobWFp
bkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnVybCgpKTsKKyAgICAgICAgaWYgKCFtX2lzU2VydmVy
UmVkaXJlY3QgJiYgIW1haW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWQobWFpbkZyYW1lLT5w
cm92aXNpb25hbFVSTCgpKTsKKyAgICB9CiAKICAgICAvLyBOb3JtYWxseSwgbm90aWZpY2F0aW9u
IG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4K
ICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0byBhIHNlcnZl
ciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUgZnJvbSB0aGUg
bmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTMyMywxMiArMzI5LDEzIEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFt
ZUlkZW50aWZpZXIKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFt
ZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFs
aWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9h
ZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJh
bWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3Bv
bnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxv
d2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlz
dGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXgg
YTdmYjY2YTZkYWE3Li44N2RjODQ1NjRlMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBGb3JtRGF0
YVJlZmVyZW5jZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
IHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOworZW51bSBjbGFzcyBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTgxLDYgKzgyLDcgQEAgcHVibGljOgogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudDsgfQogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAgICAgY29uc3QgVVJMJiBwcm92aXNpb25hbFVS
TCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxMb2FkVVJMOyB9CisgICAgYm9vbCBzaG91
bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRD
bG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0OyB9CiAKICAgICBEcmF3aW5nQXJlYVByb3h5KiBk
cmF3aW5nQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2luZ0FyZWEuZ2V0KCk7IH0KICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gdGFrZURyYXdpbmdBcmVhKCk7CkBAIC0x
MDIsNyArMTA0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGxvYWREYXRhKEFQSTo6
TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJz
dGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKLSAgICB2b2lkIGxvYWRSZXF1
ZXN0KEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwor
ICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gc3RkOjpudWxsb3B0KTsKICAg
ICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAgICAgdm9pZCBj
YW5jZWwoKTsKIApAQCAtMTI0LDcgKzEyNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIHN0ZDo6b3B0
aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLAorICAgICAgICB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJv
dmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBVc2VyRGF0YSYpOwpAQCAtMTcxLDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50IG1fcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDsKICAgICBib29sIG1fd2Fz
Q29tbWl0dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VB
ZnRlckNvbW1pdCB7IGZhbHNlIH07CiAgICAgVVJMIG1fcHJvdmlzaW9uYWxMb2FkVVJMOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBmMTkwOTIyNTA5YzcuLjk0MzU5NDMwOWE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzkwLDcgKzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2NlcwogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNh
Y3Rpb24oKTsKIAogICAgIGF1dG8gdXJsID0gcmVxdWVzdC51cmwoKTsKLSAgICBpZiAoc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVz
KQorICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpObykKICAgICAgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElS
ZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIHVybC5zdHJp
bmcoKSB9KTsKIAogICAgIExvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3
ICsxMzk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICBsb2FkUGFyYW1ldGVycy5y
ZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBs
b2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAg
IGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVz
KTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24ubG9ja0hpc3Rv
cnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlv
bi5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CkBAIC0xNTI1LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsCiAgICAgbG9hZFBhcmFtZXRlcnMuTUlNRVR5cGUgPSBNSU1FVHlwZTsKICAg
ICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUgPSBlbmNvZGluZzsKICAgICBsb2FkUGFyYW1l
dGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAg
IGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNlckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2Jq
ZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNp
dGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVy
cy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTsKQEAgLTE1NzgsNyArMTU3OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1CiAgICAg
bG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gc2ltdWxhdGVkUmVzcG9uc2UudGV4dEVuY29k
aW5nTmFtZSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3Jl
OjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdzsKLSAgICBsb2Fk
UGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBmYWxzZTsKKyAgICBsb2Fk
UGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdh
dGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRM
aXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0
ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRpb24tPmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwpAQCAtMzUxOCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAgIGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRl
ZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRl
ZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNz
Rm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFu
Z2UocG9saWNpZXMsIG51bGxwdHIpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbklu
TmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwg
c3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlv
bi0+cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+dGFyZ2V0SXRlbSgpOwogICAgICAgICAgICAg
aWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1
LDcgKzM2MDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgbV9wcm9jZXNzLT5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CiAgICAgYXV0byogbmF2aWdhdGlvbiA9IG5hdmlnYXRp
b25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsK
LSAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1
cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwgbWFpbkZyYW1lSURJblByZXZpb3VzUHJv
Y2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQoKSwg
c2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVyRmx1c2gpIDogZmFsc2U7CisgICAgYm9v
bCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiAmJiAhbV9wcm92aXNpb25hbFBh
Z2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoKSA/IHN1c3BlbmRDdXJyZW50
UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3Ms
IG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOwogICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJzaXRlRGF0YVN0b3JlLnB0cigpID09ICZtX3By
b3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNpdGVEYXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQ
cm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5n
RGF0YVN0b3JlOjpZZXMpOwogCiAgICAgLy8gVGhlcmUgaXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUg
dG8gcmV0dXJuIHRvIHRoZSBwYWdlIGluIHRoZSBwcmV2aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpA
QCAtMzYyMCwxMSArMzYyMCwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9u
YWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgIG1faW5z
cGVjdG9yQ29udHJvbGxlci0+ZGlkQ29tbWl0UHJvdmlzaW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwg
bV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRy
PFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQ
b2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVk
UGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJv
Y2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQog
ewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiY29udGludWVOYXZpZ2F0
aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNzUElEPSVpLCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwg
bmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgISFzdXNwZW5kZWRQYWdlKTsKICAgICBM
T0coTG9hZGluZywgIkNvbnRpbnVpbmcgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEg
bmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5s
b2dnaW5nU3RyaW5nKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFuZXdQcm9jZXNzLT5pc0luUHJv
Y2Vzc0NhY2hlKCkpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0g
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAKICAgICBpZiAobV9wcm92aXNpb25h
bFBhZ2UpIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGlu
ZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzczogVGhlcmUgaXMgYWxyZWFkeSBhIHBl
bmRpbmcgcHJvdmlzaW9uYWwgbG9hZCwgY2FuY2VsbGluZyBpdCAocHJvdmlzb25hbE5hdmlnYXRp
b25JRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSkiLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdh
dGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCkpOwpAQCAtMzYzMyw5ICszNjM0LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0g
bnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJv
dmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZNb3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJl
bnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHdlYnNpdGVQb2xpY2llcy5nZXQoKSk7CisgICAgYm9v
bCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCk7CisgICAgbV9wcm92
aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RG
TW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZp
Z2F0aW9uSUQoKSwgaXNTZXJ2ZXJTaWRlUmVkaXJlY3QsIG5hdmlnYXRpb24uY3VycmVudFJlcXVl
c3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgd2Vic2l0ZVBvbGljaWVzLmdldCgp
KTsKIAotICAgIGF1dG8gY29udGludWF0aW9uID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYobmF2aWdhdGlvbiksIHdlYnNpdGVQb2xp
Y2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNv
bnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmln
YXRpb24gPSBtYWtlUmVmKG5hdmlnYXRpb24pLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHdlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKGF1dG8qIGl0ZW0gPSBuYXZpZ2F0aW9uLT50YXJnZXRJdGVtKCkpIHsKICAg
ICAgICAgICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyB0byBiYWNrIGl0ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRm
OCgpLmRhdGEoKSk7CiAKQEAgLTM2NjEsNyArMzY2Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBzCiAgICAgICAgIGlmIChhdXRvJiBzdWJzdGl0dXRlRGF0YSA9IG5hdmlnYXRpb24tPnN1YnN0
aXR1dGVEYXRhKCkpCiAgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEobmF2
aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVEYXRh
LT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1dGVE
YXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRhLT51
c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+c2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRS
ZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRS
ZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBXVEZN
b3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKKyAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdl
LT5sb2FkUmVxdWVzdChuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5j
dXJyZW50UmVxdWVzdCgpIH0sIG51bGxwdHIsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0Rh
dGEpKTsKICAgICB9OwogICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXItPnNob3VsZFBhdXNl
TG9hZGluZygqbV9wcm92aXNpb25hbFBhZ2UpKQogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xs
ZXItPnNldENvbnRpbnVlTG9hZGluZ0NhbGxiYWNrKCptX3Byb3Zpc2lvbmFsUGFnZSwgV1RGTW92
ZShjb250aW51YXRpb24pKTsKQEAgLTU2MTQsMTMgKzU2MTYsMTUgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgRnJhbWUKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisg
ICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKKyAgICBib29sIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwg
ZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0
ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZv
KSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01J
TUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUsCisgICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTYzMSw5ICs1NjM1LDEzIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2Vzcywg
cmVxdWVzdC51cmwoKSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVzcG9uc2Uu
dXJsKCkpOwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBuYXZpZ2F0
aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpIDogbnVs
bHB0cjsKKyAgICBpZiAoIW5hdmlnYXRpb24pIHsKKyAgICAgICAgbmF2aWdhdGlvbiA9IG1fbmF2
aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0
KHJlcXVlc3QpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSk7CisgICAgICAgIG5h
dmlnYXRpb25JRCA9IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpOworICAgIH0KICAgICBhdXRv
IG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJ
OjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZyYW1lSW5mbyksIHRoaXMpLmdldCgpLCByZXF1
ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAg
ICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJ
RCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlv
biksCisgICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVu
ZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQs
IGZyYW1lSUQsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxp
c3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9j
ZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6
OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJy
b3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4g
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1F
OiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBj
bGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5Lgog
ICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vKTsKQEAgLTU2NDIsOSArNTY1MCwyOCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lz
aW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVu
ZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2VzcyldIChjb25zdCBhdXRvJiBwb2xpY3lEZWNp
c2lvbikgewogICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9u
LCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2Vi
UGFnZUlEKTsKICAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87CisgICAgICAgIGlm
IChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCkgeworICAgICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VE
b21haW4geyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKKyAgICAgICAg
ICAgIC8vIEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcgaW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mg
b25seSBjb250YWlucyBhIHNpbmdsZSBwYWdlIGFuZCBpcyBvcmlnaW4tY2xlYW4uCisgICAgICAg
ICAgICBpZiAodGhpcy0+cHJvY2VzcygpLnBhZ2VDb3VudCgpID4gMSB8fCAodGhpcy0+cHJvY2Vz
cygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAmJiAqdGhpcy0+cHJvY2VzcygpLm9wdGlv
bmFsUmVnaXN0cmFibGVEb21haW4oKSAhPSByZXNwb25zZURvbWFpbikpIHsKKyAgICAgICAgICAg
ICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3YXBwaW5nIGR1ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSIpOworICAgICAgICAgICAgICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6
SWdub3JlOworICAgICAgICAgICAgICAgIGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3By
b2Nlc3MtPnByb2Nlc3NQb29sKCkucHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVE
YXRhU3RvcmUoKSwgdGhpcywgcmVzcG9uc2VEb21haW4pOworICAgICAgICAgICAgICAgIGNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92ZShw
cm9jZXNzRm9yTmF2aWdhdGlvbiksIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lv
biwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vz
cyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6OlllczsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lB
Y3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3Bv
bnNlKSwgV1RGTW92ZShzZW5kZXIpKTsKKyAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihw
b2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlv
blJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpLCB7IH0sIHdpbGxDb250aW51ZUxvYWRJbk5ld1By
b2Nlc3MpOwogICAgIH0sIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm8sIFNob3Vs
ZEV4cGVjdEFwcEJvdW5kRG9tYWluUmVzdWx0OjpObykpOworCisgICAgaWYgKHdhc0FsbG93ZWRC
eUluamVjdGVkQnVuZGxlKSB7CisgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmIChtX3BvbGljeUNsaWVudCkKICAgICAgICAgbV9wb2xpY3lD
bGllbnQtPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKCp0aGlzLCAqZnJhbWUsIHJlc3BvbnNlLCBy
ZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURk1vdmUobGlzdGVuZXIpLCBwcm9jZXNzLT50cmFu
c2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAgICAgZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzYmRjZGZkZTE1NzIu
LmJiMzFjYTZmOTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTI2OSw3ICsyNjksNyBAQCBlbnVtIGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlvbiA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZSA6
IGJvb2w7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7Citl
bnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90OwogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0OwpA
QCAtMTc0MSw3ICsxNzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7
CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJh
bWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVu
ZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1l
VGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3Rk
OjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdh
dGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9w
dCk7CkBAIC0yMDU5LDcgKzIwNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVS
TCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCkBAIC0yNDYxLDcgKzI0
NjEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXBvcnRQYWdlTG9hZFJlc3VsdChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CiAKLSAgICB2b2lkIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYpOworICAgIHZvaWQg
Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYsIHN0ZDo6dW5p
cXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKIAogICAgIHZvaWQgc2V0
TmVlZHNGb250QXR0cmlidXRlcyhib29sKTsKICAgICB2b2lkIHVwZGF0ZUZvbnRBdHRyaWJ1dGVz
QWZ0ZXJFZGl0b3JTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGEwYjczOTUzNmI2MC4uMmNlM2YxZDQ5NjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93
ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNw
b25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAg
ICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+
IChzdHJ1Y3QgV2ViS2l0OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25v
dXMKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NC4uYTQwZTY5ZGZhNTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTUzLDYg
KzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWlu
KGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIGNvbnN0IHsgcmV0dXJu
IG1fcmVnaXN0cmFibGVEb21haW4gPyAqbV9yZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gOiBm
YWxzZTsgfQogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWlu
KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbi52YWx1ZV9vcihXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB7IH0pOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4mIG9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7
IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9CiAgICAgdm9pZCBzZXRJc0luUHJvY2Vzc0Nh
Y2hlKGJvb2wpOwogICAgIGJvb2wgaXNJblByb2Nlc3NDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNJblByb2Nlc3NDYWNoZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCA0MGJlNjFjMjBmY2IuLjRiY2FiZjQ4ZDMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KCkKICAgICB3ZWJQYWdlLT5zaG93KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIGF1dG8qIHdlYlBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBAIC04MzUsNyArODM1LDkgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVu
dC4KICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0
ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBt
X2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwotICAgIGlmIChwb2xp
Y3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlKSB7CisgICAgLy8gSWYgYSBicm93c2lu
ZyBjb250ZXh0IHN3aXRjaCBpcyByZXF1ZXN0ZWQsIHdlIHN0aWxsIG5lZWQgdG8gc2VuZCB0aGUg
SVBDIHRvIHRoZSBVSVByb2Nlc3MgaW4gb3JkZXIgdG8gcHJvY2Vzcy1zd2FwIGlmIG5lY2Vzc2Fy
eSwgZXZlbiB0aG91Z2ggdGhlCisgICAgLy8gaW5qZWN0ZWQgYnVuZGxlIGhhcyBhbHJlYWR5IGhh
bmRsZWQgdGhlIHBvbGljeSBkZWNpc2lvbi4KKyAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvblVzZSAmJiAhbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkgewog
ICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogY29udGludWluZyBiZWNhdXNlIGluamVjdGVkIGJ1
bmRsZSBzYXlzIHNvIik7CiAgICAgICAgIGZ1bmN0aW9uKFBvbGljeUFjdGlvbjo6VXNlLCBpZGVu
dGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ3LDkgKzg0OSwxMCBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9ucwogICAgIGF1dG8qIHBvbGljeURvY3VtZW50TG9hZGVyID0gY29yZUZyYW1l
ID8gY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkgOiBudWxs
cHRyOwogICAgIGF1dG8gbmF2aWdhdGlvbklEID0gcG9saWN5RG9jdW1lbnRMb2FkZXIgPyBzdGF0
aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlciY+KCpwb2xpY3lEb2N1bWVudExvYWRlcikubmF2aWdh
dGlvbklEKCkgOiAwOwogCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSA9IHBv
bGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2U7CiAgICAgYXV0byBwcm90ZWN0b3Ig
PSBtX2ZyYW1lLmNvcHlSZWYoKTsKICAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+
c2V0VXBQb2xpY3lMaXN0ZW5lcihpZGVudGlmaWVyLCBXVEZNb3ZlKGZ1bmN0aW9uKSwgV2ViRnJh
bWU6OkZvck5hdmlnYXRpb25BY3Rpb246Ok5vKTsKLSAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJh
bWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9u
c2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVy
SUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpKSB7CisgICAgaWYgKCF3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlKG1fZnJhbWUt
PmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93UmVzcG9uc2UsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
bGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2Jq
ZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsKICAgICAgICAgV0VCRlJB
TUVMT0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2U6IGlnbm9yaW5nIGJlY2F1c2UgV2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSBmYWlsZWQiKTsKICAgICAgICAgbV9mcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgaWRlbnRpZmllciwgc3RkOjpudWxs
b3B0LCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0gfSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhYTNhODYwMTc1NzIuLjk2NjZkNjdmODYyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFs
OworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikg
ZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihj
b25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2Rl
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0ZTRiYmNm
YmJjZGEuLmE4OTE2MmRmMDMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBh
Z2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nlc3NMYXVuY2goTG9hZFBhcmFtZXRlcnMmJiwg
VVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdl
Ojpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBT
dWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5Vmlz
aWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlv
bklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVz
LCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVE
YXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kp
CiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAgIHNldElzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgJm1fbWFpbkZyYW1l
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCA3OGQ4MzBkYTQyZDkuLjhlMzRkNmQ3MWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjI0LDcgKzIyNCw3IEBAIGVudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdodFJlcXVlc3RP
cmlnaW5hdGVkSW5BcHAgOiBib29sOwogZW51bSBjbGFzcyBIaWdobGlnaHRWaXNpYmlsaXR5IDog
Ym9vbDsKIGVudW0gY2xhc3MgU2VsZWN0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKLWVudW0gY2xh
c3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0R3JhbnVs
YXJpdHkgOiB1aW50OF90OwogZW51bSBjbGFzcyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIDog
dWludDhfdDsKQEAgLTE1NzIsNyArMTU3Miw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgc291
cmNlRm9yRnJhbWUoV2ViRnJhbWUqKTsKIAotICAgIHZvaWQgbG9hZERhdGFJbXBsKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4m
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOworICAgIHZvaWQgbG9hZERhdGFJbXBsKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFp
bGluZ1VSTCwgY29uc3QgVXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluPiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJp
bGl0eSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIAogICAgIC8vIEFj
dGlvbnMKICAgICB2b2lkIHRyeUNsb3NlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggZjg3YjQ1OWY4NmY3Li5mMWI1YTgyZDRmOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50
OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2Nyb2xsQnkodWlu
dDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBD
ZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0o
dWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9h
ZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxX
ZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBHb1RvQmFj
a0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJD
b3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNp
ZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1l
KFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxNTJmZGExZjZlZDUuLjA1MTYyNzAw
OWE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmlu
YWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBm
aW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFt
ZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVj
aXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBiZmRlM2VkNzY3OWIuLjBjZmJl
ZWUwNDQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTg1NSw3ICs4NTUsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIFtbd2ViVmll
dyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlld1Nob3c6d2ViVmlld107CiB9CiAKLXZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiBm
dW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0
aW9uKQogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNGQwNDBmNTY0NmViLi5j
NWFmYTEzMzdkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1
MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgICAg
ICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdl
YlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA2
ZGFjMGIwNTIxODMuLjYxNDY1YzExZmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRp
b25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdURjo6
U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5j
ZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
aW5kZXggZjliOGRhZjY5ZjQ0Li43OTlmZWIwMDI4MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQpAQCAtMjUwLDEyICsyNTAsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1lIDog
TlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewogICAgIGNvbnN0IGNoYXIqIF9ieXRlczsK
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBfcmVkaXJlY3RzOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZXRhaW5QdHI8TlNEYXRhPj4gX2RhdGFNYXBwaW5nczsKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBfY29vcFZhbHVlczsKICAgICBIYXNoU2V0PGlkIDxXS1VSTFNjaGVtZVRhc2s+
PiBfcnVubmluZ1Rhc2tzOwogICAgIGJvb2wgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseTsK
IH0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEJ5dGVzOihjb25zdCBjaGFyKilieXRlczsKIC0g
KHZvaWQpYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXNvdXJjZVVSTFN0cmlu
ZyB0b1VSTFN0cmluZzooTlNTdHJpbmcgKilkZXN0aW5hdGlvblVSTFN0cmluZzsKIC0gKHZvaWQp
YWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29u
c3QgY2hhciopZGF0YTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5n
ICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25z
dCBjaGFyKiljb29wVmFsdWU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2NoZW1lCkBA
IC0yNzcsNiArMjc5LDEzIEBAIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3Ry
aW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YQogICAgIF9kYXRhTWFwcGlu
Z3Muc2V0KHVybFN0cmluZywgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKilkYXRh
IGxlbmd0aDpzdHJsZW4oZGF0YSkgZnJlZVdoZW5Eb25lOk5PXSk7CiB9CiAKKy0gKHZvaWQpYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3Qg
Y2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUKK3sKKyAgICBb
c2VsZiBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFdOworICAg
IGlmIChjb29wVmFsdWUpCisgICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BW
YWx1ZSk7Cit9CisKIC0gKHZvaWQpc2V0U2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OihCT09M
KXZhbHVlCiB7CiAgICAgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseSA9IHZhbHVlOwpAQCAt
MzExLDggKzMyMCwxNSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3Rh
cnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbKGlkPFdL
VVJMU2NoZW1lVGFza1ByaXZhdGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpyZWRpcmVj
dFJlc3BvbnNlLmdldCgpIG5ld1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQogCi0gICAg
ZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVS
TCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKLSAgICAgICAgUmV0YWluUHRyPE5TVVJM
UmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRX
aXRoVVJMOmZpbmFsVVJMLmdldCgpIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRl
bnRMZW5ndGg6MSB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgIGRvQXN5bmNocm9ub3VzbHlJ
Zk5lY2Vzc2FyeShbc2VsZiwgZmluYWxVUkwgPSByZXRhaW5QdHIoZmluYWxVUkwpXShpZCA8V0tV
UkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGhlYWRl
ckRpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKyAgICAgICAg
W2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAidGV4dC9odG1sIiBmb3JLZXk6QCJDb250ZW50
LVR5cGUiXTsKKyAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAiMSIgZm9yS2V5
OkAiQ29udGVudC1MZW5ndGgiXTsKKyAgICAgICAgYXV0byBjb29wVmFsdWUgPSBfY29vcFZhbHVl
cy5nZXQoW2ZpbmFsVVJMIGFic29sdXRlU3RyaW5nXSk7CisgICAgICAgIGlmICghY29vcFZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDooTlNT
dHJpbmcgKiljb29wVmFsdWUgZm9yS2V5OkAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiXTsK
KworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFs
bG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBIVFRQVmVyc2lv
bjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwogICAgICAgICBb
dGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogICAgIH0sIDAuMSk7CiAK
QEAgLTQwOSw4ICs0MjUsNiBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBm
dW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAotI2lmIFBMQVRG
T1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc1NpdGVOb09wZW5l
clRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKQEAgLTQ4OCw2ICs1MDIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCisjaWYgUExBVEZPUk0oTUFDKQogc3Rh
dGljIGNvbnN0IGNoYXIqIGxpbmtUb0FwcGxlVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8
c2NyaXB0Pgogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZl
bnQpIHsKQEAgLTQ5Nyw4ICs1MTIsNyBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNo
b3cnLCBmdW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiA8YSBpZD0idGVzdExpbmsiIGhyZWY9
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CiApUFNPTlJFU09V
UkNFIjsKLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKyNlbmRpZgogCiBzdGF0aWMgUmV0YWlu
UHRyPF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gcHNvblByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbigpCiB7CkBAIC0xMTk3LDggKzEyMTEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBCYWNrTmF2
aWdhdGlvbkFmdGVyU2Vzc2lvblJlc3RvcmUpCiAgICAgRVhQRUNUX05FKHBpZDMsIHBpZDQpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5k
b3dPcGVuTm9PcGVuZXIpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBw
c29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CkBAIC0xMjA2LDYgKzEyMTgsNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJv
Y2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10u
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhh
bmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVy
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRt
bCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JV
UkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMjQ1LDYgKzEyNTgsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBDcm9zc09yaWdpbkJ1dFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3
ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnBy
b2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
LmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBo
YW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxl
ciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5
dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5k
bGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyODUsNiArMTI5OSw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQogCiAgICAgYXV0
byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29s
OnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0
byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFu
ZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
Lmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMzI0LDYgKzEzMzksNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0Nv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9v
bC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9
IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0V2l0aEJ5dGVzOndpbmRvd09wZW5TYW1l
U2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKQEAg
LTEzNjIsNiArMTM3OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0
V2l0aE9wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmln
dXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFs
bG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVX
aXRoRXhwbGljaXRPcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBz
ZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpA
QCAtMTQwMSw2ICsxNDE4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJn
ZXRJbXBsaWNpdE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05T
Y2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Ny
b3NzU2l0ZVdpdGhJbXBsaWNpdE5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
IlBTT04iXTsKQEAgLTE0NDAsNiArMTQ1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0
ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNP
TlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5r
Q3Jvc3NTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBz
ZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpA
QCAtMTQ3OSw2ICsxNDk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1Rhcmdl
dE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxs
b2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua1NhbWVTaXRlTm9P
cGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTUxMSw4ICsx
NTMxLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQog
ICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
LQogVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3V2ViVmlldykKIHsKICAg
ICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24oKTsKQEAgLTUwOTQsOCArNTExMiw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRpbmdT
dGF0ZUFmdGVyUG9saWN5RGVjaXNpb24pCiAgICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2ZXI6bG9h
ZE9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJVUkwiIGNvbnRleHQ6d2ViVmlldy5nZXQoKV07
CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiBzYXZlT3BlbmVy
VGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewpAQCAtNTEwNyw2ICs1MTIzLDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
KCkgewogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nl
c3NTd2FwcGluZ09mT3BlbmVyKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSA9IFlFUzsKKwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1l
U2l0ZVdpdGhPcGVuZXJUZXN0Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4yLmh0bWwiLgogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVzdEJ5dGVz
XTsKQEAgLTUxODAsNiArNTE5OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRl
ckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lcikKIFRFU1QoUHJvY2Vzc1N3YXAs
IE9wZW5lckxpbmtBZnRlckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lZSkKIHsK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107
IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRs
ZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIu
aHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTIzNSw4ICs1MjU0LDYgQEAg
VEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2Fw
cGluZ09mT3BlbmVlKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKLQogZW51bSBjbGFzcyBFeHBlY3RTd2FwIHsgTm8sIFllcyB9Owogc3RhdGljIHZvaWQg
cnVuUHJvY2Vzc1N3YXBEdWVUb1JlbGF0ZWRXZWJWaWV3VGVzdChOU1VSTCogcmVsYXRlZFZpZXdV
UkwsIE5TVVJMKiB0YXJnZXRVUkwsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKQEAgLTcxNTEs
MyArNzE2OCwxNjcgQEAgVEVTVChXZWJQcm9jZXNzQ2FjaGUsIENsZWFyV2hlbkVudGVyaW5nQ2Fj
aGUpCiAgICAgLy8gQ2xlYXIgdGhlIFdlYlByb2Nlc3MgY2FjaGUgd2hpbGUgdGhlIHByb2Nlc3Nl
cyBhcmUgYmVpbmcgY2hlY2tlZCBmb3IgcmVzcG9uc2l2ZW5lc3MuCiAgICAgW3Byb2Nlc3NQb29s
IF9jbGVhcldlYlByb2Nlc3NDYWNoZV07CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dP
cGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2NyaXB0Pgor
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3BlbigicHNvbjov
L3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+CispUFNPTlJF
U09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRl
c3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICB3ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAiZm9vIik7Cit9Cis8
L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJv
b2wgeyBObywgWWVzIH07CitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0
IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgSXNTYW1lT3Jp
Z2luIGlzU2FtZU9yaWdpbiwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQoreworICAgIGF1dG8gcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwor
ICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKwor
ICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9j
ZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwor
ICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNl
cyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNF
cXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsKKyAgICAg
ICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVt
ZSBhbGxvY10gaW5pdF0pOworICAgIGlmIChpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZ
ZXMpIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09Q
VGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIFtoYW5kbGVyIGFk
ZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwi
IHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9IGVs
c2UgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93
d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09Q
VGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIFtoYW5kbGVyIGFk
ZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiB0
b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgfQorICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkg
Zm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBuYXZp
Z2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOworCisgICAgLy8gV2hlbiB0aGUgcHJvdmlzaW9uYWwgbG9hZCBzdGFydHMgaW4gdGhl
IHByb3Zpc2lvbmFsIHByb2Nlc3MsIGtpbGwgdGhlIFdlYlZpZXcncyBwcm9jZXNzZXMuCisgICAg
X19ibG9jayB1bnNpZ25lZCBudW1iZXJPZlByb3Zpc2lvbmFsTG9hZHMgPSAwOworICAgIG5hdmln
YXRpb25EZWxlZ2F0ZS0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb25IYW5kbGVyID0gXnsK
KyAgICAgICAgKytudW1iZXJPZlByb3Zpc2lvbmFsTG9hZHM7CisgICAgfTsKKworICAgIFt3ZWJW
aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAg
IGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhOYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXSk7CisgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIG51bWJlck9mRGVj
aWRlUG9saWN5Q2FsbHMgPSAwOworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFs
c2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdlYlZpZXcpOwor
ICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxs
cyk7CisgICAgRVhQRUNUX0VRKDJVLCBudW1iZXJPZlByb3Zpc2lvbmFsTG9hZHMpOyAvLyBPbmUg
aW4gZWFjaCB2aWV3LgorCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDEpOworICAgIGF1dG8gcGlkMiA9IFtjcmVh
dGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9UUlVFKCEhcGlk
Mik7CisKKyAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAgICAgIEVY
UEVDVF9ORShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBw
aWQyKTsKKworICAgIGJvb2wgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidy5jbG9zZWQgPyAndHJ1ZScgOiAnZmFsc2UnIiBj
b21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIE5TU3RyaW5nICppc0Nsb3NlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYg
KGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAidHJ1ZSIsIGlzQ2xvc2VkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKEAiZmFsc2UiLCBpc0Nsb3NlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1Nj
cmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncubmFtZSIgY29tcGxldGlvbkhhbmRs
ZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAq
d2luZG93TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAg
PT0gRXhwZWN0U3dhcDo6Tm8gJiYgaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKQor
ICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwgd2luZG93TmFtZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05hbWUpOworICAg
ICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIC8vIE9wZW5l
ZSBzaG91bGQgbm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KKyAgICBmaW5pc2hlZFJ1bm5p
bmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OkAid2luZG93Lm9wZW5lciA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRpb25IYW5kbGVyOiBb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc09w
ZW5lciA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhw
ZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBoYXNP
cGVuZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ0cnVl
IiwgaGFzT3BlbmVyKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1Njcmlw
dCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5uYW1lIiBjb21wbGV0aW9uSGFuZGxlcjog
WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3aW5k
b3dOYW1lID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBF
eHBlY3RTd2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dO
YW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwg
d2luZG93TmFtZSk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQp
OworCisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0IiBjb21wbGV0
aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5T
U3RyaW5nICppbm5lclRleHQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIEVYUEVDVF9X
S19TVFJFUShAInBvcHVwIiwgaW5uZXJUZXh0KTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2Ny
aXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICBjcmVhdGVkV2ViVmlldyA9IG51bGxwdHI7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVz
LCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmln
aW46OlllcywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2lu
QWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1h
bGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
K30K
</data>
<flag name="commit-queue"
          id="458684"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435776</attachid>
            <date>2021-08-18 09:40:50 -0700</date>
            <delta_ts>2021-08-18 09:47:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210818094050.patch</filename>
            <type>text/plain</type>
            <size>109376</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1NjUyOTU2ZWVlOTAy
OWU4ZTg4MjU4MmJjMjA2ZjExYzQyYTRkNC4uOWIyYjgxZWJkNTkzNGY4MzI2ODliNTg1NTk4ZDgw
NGE5NGE2ZTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTA4LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVjZW50bHkgYWRkZWQgc3VwcG9y
dCBmb3IgdGhlIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IChDT09QKSBIVFRQIGhlYWRlci4g
SG93ZXZlciwKKyAgICAgICAgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcgY29udGV4dCBncm91cCBv
biBIVFRQIHJlc3BvbnNlLCB3ZSB3b3VsZCBrZWVwIHVzaW5nIHRoZSBzYW1lCisgICAgICAgIFdl
YlByb2Nlc3MuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9j
ZXNzIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0
d29yayByZXNwb25zZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5h
YmxlIFdlYiBBUElzCisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAg
ICAgRm9yIHByb2Nlc3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMg
YXMgcHJvY2Vzcy1zd2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZm
ZXJlbmNlcyBhcmUgdGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBk
ZWNpc2lvbiBpbnN0ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0g
V2UgdXNlZCB0byBoYXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVt
LiBJdCBpcyBub3cgdHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRo
aXMgbmV3IHN0YXRlCisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGlj
eSBkZWxlZ2F0ZSBjYWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAg
ICAgICAgIHNlbmRpbmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0
ZXIgcHJvY2VzLXN3YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24g
bmF2aWdhdGlvbiByZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBv
ZiB0cnlpbmcKKyAgICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LiBQZXIgdGhlIHNwZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQK
KyAgICAgICAgICBncm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5l
ZWRzIHRvIGJlIGRpc2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgQ09PUC9DT0VQIGxheW91dCB0ZXN0cyB0aGF0IGFyZSBzdGls
bCBwYXNzaW5nIGFuZCBuZXcgQVBJIHRlc3RzCisgICAgICAgIHRoYXQgdmFsaWRhdGUgdGhhdCB3
ZSBhcmUgaW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRvQ3Jvc3NP
cmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI6Om1heWJlTG9hZEVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjpjbGVhck1haW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aXNDb250aW51aW5nTG9hZEFmdGVy
UmVzcG9uc2VQb2xpY3lDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExv
YWRlcjo6c2V0SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayk6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0Ojpz
ZXRTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdDo6c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIGNvbnN0KToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNoZWNrQ29udGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cHJl
cGFyZUZvckxvYWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRl
bSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmg6
CisgICAgICAgICogbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOgorCiAyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggdW5kZXIgSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxi
YWNrOjpoYW5kbGVFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI2ZjJlMDY1MjE5YzViNWU2Nzc5MWZkMjA2
MmYzYjUwODQzZjE4NTIuLjczZWZhNzcwMDNmOWJhZmNmZjdkYmUzNDA3Y2VhMThlNzY4NjhmMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGlu
ZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAorICAg
ICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVzcG9u
c2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3MuIFRo
aXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4gc3dp
dGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNwb25z
ZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBBUElz
CisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHByb2Nl
c3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vzcy1z
d2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBhcmUg
dGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBpbnN0
ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0byBo
YXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBub3cg
dHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0YXRl
CisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0ZSBj
YWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNlbmRp
bmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2VzLXN3
YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlvbiBy
ZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcKKyAg
ICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhlIHNw
ZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgICBn
cm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJlIGRp
c2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgICogU2hhcmVkL0xv
YWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFs
UGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRl
TWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENs
b3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1
ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0
cmFibGVEb21haW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bG9hZERhdGFJbXBsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAy
MDIxLTA4LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKGlPUyAxNSk6IERvdWJsZURvd24gQ2FzaW5vIGFwcCB3b24ndCBsb2Fk
IHBhc3QgbGF1bmNoIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiNTg2N2Fm
Nzc2ZmM1MzAyYjViYTc1OGQzMTQ0MjVmMGY5NDBhZThlLi5hMDQyOGZiNTg5ZWNhYjI1M2U5Mzdi
YmI0Yzk5YmFhNjcwOTYxMGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMjEtMDgt
MTYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICAibWFrZSBh
bmFseXplIiBzaG91bGQgcnVuIGNsYW5nIHN0YXRpYyBhbmFseXplciBpbiBkZWVwIG1vZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAxZGI3NTBlOWVlN2Y0OWMzNDg1ODNjMWM2Nzg0
YTA5ZjM1ODBmZWU1Li44YmFhZjE4MmEzYWNhNWZiM2VjYjUxOTljZTFkNjFhN2NkNTBlYzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMTgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1l
bnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBI
VFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDIxLTA4LTEzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xp
Y3kgc3VwcG9ydCBmb3IgQmxvYiBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcAppbmRleCAzZTRmZjllMDQ5NjRiMTZiNDI4MDkyNmNmOWUwMzI4MDUwM2M3YmUwLi40
NDMxNmVkYjVhN2Y0MDE0ZWViMmJiOGZhZjVhNzkxOGIyMmU4OGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTc4MywxNSArNzgzLDEyIEBAIGJvb2wgRG9j
dW1lbnRMb2FkZXI6OmRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zCiAKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9icm93c2luZy10aGUtd2ViLmh0bWwjcHJvY2Vzcy1hLW5hdmlnYXRlLWZldGNoIChT
dGVwIDEyLjUuNi4yKQogICAgIC8vIElmIHNhbmRib3hGbGFncyBpcyBub3QgZW1wdHkgYW5kIHJl
c3BvbnNlQ09PUCdzIHZhbHVlIGlzIG5vdCAidW5zYWZlLW5vbmUiLCB0aGVuIHNldCByZXNwb25z
ZSB0byBhbiBhcHByb3ByaWF0ZSBuZXR3b3JrIGVycm9yIGFuZCBicmVhay4KLSAgICBpZiAocmVz
cG9uc2VDT09QLnZhbHVlICE9IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5v
bmUgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y3JlYXRpb25TYW5kYm94RmxhZ3MoKSAhPSBTYW5k
Ym94Tm9uZSkgeworICAgIGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBmcmFtZUxvYWRlcigpLT5lZmZlY3RpdmVTYW5k
Ym94RmxhZ3MoKSAhPSBTYW5kYm94Tm9uZSkgewogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VM
b2FkKGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0
ID0gZW5mb3JjZVJlc3BvbnNlQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kocmVzcG9uc2UudXJsKCks
IHJlc3BvbnNlT3JpZ2luLCByZXNwb25zZUNPT1ApOwotICAgIGlmIChtX2N1cnJlbnRDb29wRW5m
b3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCi0gICAgICAg
IGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOwotCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTk5OCw5ICs5OTUsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpy
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0
aQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxp
bmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhlcmUg
aXMgYSBidWcgaW4gQ0ZOZXR3b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBl
dmVuIHdoZW4gbG9hZHMgYXJlIGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0v
NjMwNDYwMD4gZm9yIG1vcmUgZGV0YWlscy4KICNpZiAhVVNFKENGKQpAQCAtMTA0MiwxMSArMTAz
NiwxOSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgIH0KICNlbmRpZgogCisgICAgaWYg
KCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjaykgeworICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rp
b246OlVzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3Vy
Y2VMb2FkZXI+IG1haW5SZXNvdXJjZUxvYWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigp
OwogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRl
ci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRl
bnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2Fk
ZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIg
PSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tD
b250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29w
RW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdU
Rk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBj
b21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9s
aWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmll
cikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5p
c1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250
ZW50UG9saWN5KHBvbGljeSk7CkBAIC0yMDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExv
YWRlcjo6bWF5YmVMb2FkRW1wdHkoKQogICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRF
bXB0eSA/ICJ0ZXh0L2h0bWwiIDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlN
RVR5cGVGb3JVUkxTY2hlbWUobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVl
c3QudXJsKCksIG1pbWVUeXBlLCAwLCAiVVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVy
KCktPnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAg
IGlmIChmcmFtZUxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1
bWVudExvYWQoKSkgewogICAgICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3Bv
bnNlKG1fcmVzcG9uc2UpOwogCisgICAgICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpi
bGFuayBsb2FkcyBtYXkgY2F1c2UgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93
ZXZlciwgc3VjaCBsb2FkIGlzIHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGlu
dm9sdmUgYSByZXNwb25zZSBwb2xpY3kgZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0
ZSBhIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBp
bmcgcHJvY2Vzcy4KKyAgICAgICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVy
KCktPnN3aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVk
TG9hZGluZygpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9p
ZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21h
aW5SZXNvdXJjZSA9IG51bGxwdHI7CisgICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrID0gZmFsc2U7CiAKICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdv
cmtlckNsaWVudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRl
eCBkOGZmMWRhM2JkNjQwNmM1ZDc2NDg3NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3
MTJlZjRjYmU4NzkwN2E3NjZiM2UwMmNlYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaApAQCAtNDI1LDYgKzQyNSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5IGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsg
fTsgfQogCisgICAgYm9vbCBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNr
KCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrOyB9CisgICAgdm9pZCBzZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrKGJvb2wgaXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lz
Q29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VY
UE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0
dXRlRGF0YSYpOwogCkBAIC01NjEsNiArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290
Rmlyc3RCeXRlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2lzTG9hZGluZ011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2Ug
fTsKIAogICAgIC8vIEZJWE1FOiBEb2N1bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBE
b2N1bWVudExvYWRlcjo6bV93YXNPbmxvYWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1l
CiAgICAgLy8gYW5kIHNob3VsZCBiZSBtZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCmluZGV4IDhkY2E3NWI5NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcu
Ljk2NGUyZGQxMjA3MDMzMWE2NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
NjlhMTEzMjM4YTBhOGM2YTZmZTViMDM2ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEy
ZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAg
RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAK
LSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZv
cm1TdGF0ZSosIGNvbnN0IFN0cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRl
KiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVm
MzgxNGJlZjQ1NWYyZGJhZTA2ZDAzZGYyNDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5
ZjhjOTgyMWUyNTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1
ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0
ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQ
b2xpY3kpIHsgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAg
ICAgYm9vbCBzaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hv
dWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
PSB2YWx1ZTsgfQotICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
ID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0
YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAg
ICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBt
X3N1YnN0aXR1dGVEYXRhID0gZGF0YTsgfQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBt
X3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vIH07CiAgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tI
aXN0b3J5OjpObyB9OwogICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRM
aXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3Jl
ZmVycmVyUG9saWN5IHsgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZk
NTYwNWUxNTRiMDlmLi4xYmI5NzY3YzI4N2NjZjhkMTMwMTkzNDdiYjNhNDMxOGIyZjYyYWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0K
IAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAg
ICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2Fu
Y2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50
UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9
CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgot
ICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFj
dGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1l
bnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAg
IGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2
ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRM
b2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VM
b2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50
KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0
IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYg
c3lzdGVtUHJldmlld0luZm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+
JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEyMDUsOSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKICAgICBGUkFNRUxPQURFUl9SRUxFQVNF
X0xPRyhSZXNvdXJjZUxvYWRpbmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0OiBTdGFydGluZyBmcmFt
ZSBsb2FkIik7CiAKICAgICBtX3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7Ci0g
ICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKKyAgICBib29s
IGFscmVhZHlTZW50RGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5pc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCk7CisgICAgaWYgKCFhbHJlYWR5U2VudERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKQorICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZCgpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS5kb2N1
bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3MCwxMCArMTQ3MiwxMSBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAg
IFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9h
ZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7
CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNS
ZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzRGF0
YVVSTHNGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQo
KSk7CisgICAgbG9hZGVyLT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24pOwogICAgIGFk
ZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgpKTsKICAgICBh
cHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKG1fZnJh
bWUsIGxvYWRlciwgcmVxdWVzdCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQoKSkgeworICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAgICAgICAgbG9h
ZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmxvY2tCYWNrRm9y
d2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgICAgIGxv
YWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4NCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51
aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5n
V2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBT
ZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3Vy
cmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5n
U3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2OCw3ICszNzcx
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3Bl
PExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENv
bnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dp
dGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAg
IFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9j
dXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpD
b250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGlu
dWluZyk7CiAKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2Fj
aGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0
byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmM2JkYmVmY2EzOWZiZmMyM2Y5ZDE0YzliMjcx
MTIyNmRlMjRhMGIuLmU1NmMwOGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIyYWY1MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBAIGNsYXNzIFN1
YnN0aXR1dGVEYXRhOwogZW51bSBjbGFzcyBDYWNoZVBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIE5ld0xvYWRJblByb2dyZXNzIDogYm9vbDsKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uIDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVXNlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIElzTWFp
blJlc291cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgU2hvdWxkVXBkYXRlQXBw
SW5pdGlhdGVkVmFsdWUgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtMjIwLDcgKzIyMCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hl
Y2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOworICAgIHZvaWQgY2hlY2tD
b250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDNlYjVjZWU2NDI2YzQ0
ZGMxNzQyMjIxNWZhYWIxNTY5MzFkYjJkOWQuLjM5YmI0MDU0MDljNDE3NDc4NWE5MzcyMjgzMDAx
ODYzYzBhODc3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1T
dGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2so
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDZk
NWRlODRmMjE3OTg4NjNiYThlZWRlOGI2NDZmZTk0OGE0NTg4MmIuLjEwMzdkZjk4ZWM0MTU1NGJm
YjFkYjYyYjg5NjgyZDgzN2ZhNjU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9y
eUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJlY3Rpb247CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQuaAppbmRleCA3NmUwOTM1MDViY2JiZTY2ZDIyNDUyZDJmNWI3OTViM2Q1ZDg1M2E0Li5hYjEz
NTNiY2MwODJlNDFiYTU4OWM5YzI5YzIxMDg1M2EzOTk1Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90IHsgTm8sIFllc0FmdGVyTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24gfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCkBAIC0zOSw3ICszOSw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkPiB7CiAgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLAogICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vLAotICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllcwor
ICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2
aWdhdGlvblBvbGljeURlY2lzaW9uLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbgogICAgID47CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDQ4N2M5YjJiNWVmNDk0NmM5Y2JlOTg5ZjNlNzc2MWYwOGU2MWQ4
MGUuLjkyNTViZjMxM2M2N2Q3MTQ4MTVjZjc4MTUyNjZmZmQ4MDViMjJmNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgdXNpbmcgU2hhcmVkU3RyaW5nSGFzaCA9IHVpbnQzMl90
OwogZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6IGJvb2w7
CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3MgRXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IGYwOWQwYmM1ZTM4NzMxYWVhNzVkYzIzZjc5
MDlmM2Y2ZDBlMjAwZDQuLjIyZmU3YzVlNDQ4ZGNlMjNjYjVlMzkwMzQ4ZTVkYmQ3MzNhNDM2ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKQEAg
LTY2LDcgKzY3LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7
IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07
Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OworICAgIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgeyBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAg
VXNlckRhdGEgdXNlckRhdGE7CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hpc3Rvcnkg
eyBXZWJDb3JlOjpMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFja0Zvcndh
cmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0
OjpObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuY3BwCmluZGV4IGM2NTRjYjhjMTIyMWFmODExZjZiMGE3M2IzZTFkZjk0MzViMmI3NmQuLjY0
OTlmMTE3MTdmNTZmZDY1OTkwOTFhYjJmMTNkZTk2NmY1MGYyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU4LDcgKzU4LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFBST1ZJU0lPTkFMUEFHRVBST1hZ
X1JFTEVBU0VfTE9HKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhjaGFubmVsLCAiJXAg
LSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgUElEPSVp
LCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lvbmFsUGFnZVByb3h5OjoiIGZtdCwg
dGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fbmF2aWdhdGlvbklELCAjI19f
VkFfQVJHU19fKQogI2RlZmluZSBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPR19FUlJP
UihjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgIiVwIC0gW3Bh
Z2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJRD0laSwgbmF2
aWdhdGlvbklEPSUiIFBSSXU2NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBmbXQsIHRoaXMs
IG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwgIyNfX1ZBX0FS
R1NfXykKIAotUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBh
Z2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1
ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCitQ
cm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBw
YWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNw
ZW5kZWRQYWdlUHJveHk+IHN1c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9v
bCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCBBUEk6OldlYnNp
dGVQb2xpY2llcyogd2Vic2l0ZVBvbGljaWVzKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBt
X3dlYlBhZ2VJRChzdXNwZW5kZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQ
YWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nl
c3MpKQpAQCAtNjYsNiArNjYsNyBAQCBQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQ
YWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1BybwogICAgICwgbV9p
c1NlcnZlclJlZGlyZWN0KGlzU2VydmVyUmVkaXJlY3QpCiAgICAgLCBtX3JlcXVlc3QocmVxdWVz
dCkKICAgICAsIG1fcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudChwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50KQorICAgICwgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0
KHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQpCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICAsIG1fcHJvdmlzaW9uYWxMb2FkQWN0aXZpdHkobV9wcm9jZXNzLT50aHJvdHRs
ZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHkoIlByb3Zpc2lvbmFsIExvYWQiX3MpKQogI2VuZGlmCkBA
IC0xNjIsMTYgKzE2MywxOCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojppbml0aWFsaXpl
V2ViUGFnZShSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2VicwogICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkp
OwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5hdmlnYXRp
b24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3Ry
aW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFN1YnN0aXR1dGVEYXRhOjpT
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KQordm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lv
bkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKIHsKICAgICBQUk9W
SVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YToi
KTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCi0gICAgbV9wYWdlLmxvYWREYXRhV2l0
aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmln
YXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFdlYkNv
cmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmln
YXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBtaW1lVHlw
ZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVz
KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBz
dGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0
ZVBvbGljaWVzKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpO
YXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgUFJP
VklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZFJlcXVl
c3Q6Iik7CisgICAgQVNTRVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKIAogICAgIC8vIElmIHRoaXMgaXMg
YSBjbGllbnQtc2lkZSByZWRpcmVjdCBjb250aW51aW5nIGluIGEgbmV3IHByb2Nlc3MsIHRoZW4g
dGhlIG5ldyBwcm9jZXNzIHdpbGwgb3ZlcndyaXRlIHRoZSBmcm9tSXRlbSdzIFVSTC4gSW4gdGhp
cyBjYXNlLAogICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVwZGF0ZSBmcm9tSXRlbSdz
IHByb2Nlc3NJZGVudGlmaWVyIGFzIHdlIHdhbnQgZnV0dXJlIG5hdmlnYXRpb25zIHRvIHRoaXMg
QmFja0ZvcndhcmQgaXRlbSB0byBoYXBwZW4gaW4gdGhlCkBAIC0xNzksNyArMTgyLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZp
Z2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBpZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5h
dmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2Fy
ZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vz
c0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBt
X3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5s
YXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3Bh
Z2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBt
X3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0
TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRh
LCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+
JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTk5LDcgKzIwMiw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBXZWJCCiAgICAgICAgIHdlYnNpdGVQb2xpY2llc0RhdGEgPSB3ZWJzaXRlUG9saWNpZXMtPmRh
dGEoKTsKICAgICAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVCYWNrRm9yd2Fy
ZExpc3RGb3JSZWF0dGFjaChXVEZNb3ZlKGl0ZW1TdGF0ZXMpKSk7Ci0gICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgp
LCBpdGVtLml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwg
V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0
ZVBvbGljaWVzRGF0YSkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0Zv
cndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZp
Z2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llc0RhdGEpKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVu
ZXNzVGltZXIoKTsKIH0KIApAQCAtMjI3LDggKzIzMCw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgbWFpbiBmcmFtZSdzIGNvbW1pdHRlZCBV
UkwgYXMgc29tZSBjbGllbnRzIG1heSByZWx5IG9uIGl0IHVudGlsIHRoZSBuZXh0IGxvYWQgaXMg
Y29tbWl0dGVkLgotICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBtX3BhZ2UubWFpbkZyYW1lKCkp
Ci0gICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTChtYWluRnJhbWUt
PmZyYW1lTG9hZFN0YXRlKCkudXJsKCkpOworICAgIGF1dG8qIHByZXZpb3VzTWFpbkZyYW1lID0g
bV9wYWdlLm1haW5GcmFtZSgpOworICAgIGlmIChwcmV2aW91c01haW5GcmFtZSkKKyAgICAgICAg
bV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuc2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51
cmwoKSk7CiAKICAgICAvLyBOb3JtYWxseSwgbm90aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGly
ZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUg
cHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRo
YXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUgZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJv
Y2Vzcy4KQEAgLTIzNiw2ICsyNDAsMTAgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
Q3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2Vy
dmVyUmVkaXJlY3QpIHsKICAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlk
U3RhcnRQcm92aXNpb25hbExvYWQobV9yZXF1ZXN0LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklE
LCBXVEZNb3ZlKG1fcmVxdWVzdCksIHsgfSk7CisgICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5G
cmFtZSAmJiAhcHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7
CisgICAgICAgIC8vIEluIGNhc2Ugb2YgYSBwcm9jZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9s
aWN5LCB0aGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhl
IG5ldyBtYWluIGZyYW1lIGRvZXNuJ3Qga25vdyBhYm91dCBpdAorICAgICAgICAvLyBzbyB3ZSBu
ZWVkIHRvIHRlbGwgaXQgc28gaXQgY2FuIHVwZGF0ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAg
ICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJh
bWUtPnByb3Zpc2lvbmFsVVJMKCkpOwogICAgIH0KIH0KIApAQCAtMzIzLDEyICszMzEsMTMgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKEZyYW1lSWRlbnRpZmllcgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZv
RGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBp
ZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5
cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdl
LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRp
b25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1
dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaAppbmRleCBhN2ZiNjZhNmRhYTczN2M5MDYwOTA3YzA4OTZmMGNiYzk0ZWIzODBlLi42YWJj
YTk4ZjJmYTU4N2IyNWEwZjk3NmViNWM0MDVkNzRiNDIwMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xh
c3MgRm9ybURhdGFSZWZlcmVuY2U7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKK2VudW0gY2xhc3Mg
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC03MSw3ICs3Miw3IEBAIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVp
bnQzMl90OwogY2xhc3MgUHJvdmlzaW9uYWxQYWdlUHJveHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdl
UHJveHk+LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsKKyAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQ
YWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJl
Y3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqKTsKICAgICB+UHJvdmlzaW9uYWxQYWdlUHJveHkoKTsKIAogICAgIFdl
YlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQpAQCAtODIsNiArODMs
OCBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklEKCkgY29uc3QgeyByZXR1cm4g
bV9uYXZpZ2F0aW9uSUQ7IH0KICAgICBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9wcm92aXNpb25hbExvYWRVUkw7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2xvc2VQ
cmV2aW91c1BhZ2VBZnRlckNvbW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xvc2VQcmV2
aW91c1BhZ2VBZnRlckNvbW1pdDsgfQorCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0Fy
ZWEoKSBjb25zdCB7IHJldHVybiBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgc3RkOjp1bmlx
dWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IHRha2VEcmF3aW5nQXJlYSgpOwogCkBAIC0xMDEsOCAr
MTA0LDggQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotICAgIHZvaWQgbG9hZERhdGEoQVBJ
OjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwotICAgIHZvaWQgbG9hZFJl
cXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6
T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7
CisgICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3Jl
OjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGxv
YWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBnb1Rv
QmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
LCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAK
QEAgLTEyNCw3ICsxMjcsOCBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBh
Z2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWlu
dDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wg
bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwKKyAgICAgICAgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFVSTCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNl
ckRhdGEmKTsKQEAgLTE3MSw2ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBt
X3Byb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ7CiAgICAgYm9vbCBtX3dhc0NvbW1pdHRlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQg
eyBmYWxzZSB9OwogICAgIFVSTCBtX3Byb3Zpc2lvbmFsTG9hZFVSTDsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjE5
MDkyMjUwOWM3ZGFiNGJjMWQyZGUyM2Q0M2ZkY2I0ZTgyMjBlYy4uMmUyYjY5NTQ3Y2VlZGJmMjk3
N2FjNDU1MDk5MjRiNjE5NTg4MTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0xMzkwLDcgKzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlcwog
ICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIAog
ICAgIGF1dG8gdXJsID0gcmVxdWVzdC51cmwoKTsKLSAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKQorICAgIGlmIChz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObykKICAgICAgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5z
YWN0aW9uLCB7IG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIHVybC5zdHJpbmcoKSB9KTsKIAog
ICAgIExvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RG
TW92ZShyZXF1ZXN0KTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVy
cy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMo
dXNlckRhdGEpLmdldCgpKTsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0
ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAgICBs
b2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFja0Zv
cndhcmRMaXN0KCk7CkBAIC0xNTI1LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
CiAgICAgbG9hZFBhcmFtZXRlcnMuTUlNRVR5cGUgPSBNSU1FVHlwZTsKICAgICBsb2FkUGFyYW1l
dGVycy5lbmNvZGluZ05hbWUgPSBlbmNvZGluZzsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJM
U3RyaW5nID0gYmFzZVVSTDsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXM7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0
ZXJzLnVzZXJEYXRhID0gVXNlckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxl
cyh1c2VyRGF0YSkuZ2V0KCkpOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKQEAgLTE1
NzgsNyArMTU3OCw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9h
ZFNpbXVsYXRlZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRl
cnMuZW5jb2RpbmdOYW1lID0gc2ltdWxhdGVkUmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwogICAgIGxvYWRQYXJh
bWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdzsKLSAgICBsb2FkUGFyYW1ldGVycy5z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1ldGVycy5z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hp
c3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdh
dGlvbi0+bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGlyZWN0U291cmNl
Rm9ySGlzdG9yeSgpOwpAQCAtMzUxOCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
Y2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IEEKICAgICAgICAgICAgIGlmIChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJ
c0Nsb3NlZE9yQ2xvc2luZygpKQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxs
cHRyOwogCi0gICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdh
dGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlv
biksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMs
IG51bGxwdHIpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vzcyhu
YXZpZ2F0aW9uLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZp
Z2F0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5n
ZShwb2xpY2llcywgbnVsbHB0cikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0
byBpdGVtID0gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRl
bSgpIDogbmF2aWdhdGlvbi0+dGFyZ2V0SXRlbSgpOwogICAgICAgICAgICAgaWYgKHBvbGljeUFj
dGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1LDcgKzM2MDUsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3dlYlBhZ2VJRCk7CiAgICAgYXV0byogbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5h
dmlnYXRpb24obV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsKLSAgICBib29sIGRp
ZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQ
b3NzaWJsZSgqbmF2aWdhdGlvbiwgbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92
aXNpb25hbFBhZ2UtPnByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlD
bG9zaW5nVW50aWxGaXJzdExheWVyRmx1c2gpIDogZmFsc2U7CisgICAgYm9vbCBkaWRTdXNwZW5k
UHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2UtPnNob3VsZENs
b3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2li
bGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlzaW9u
YWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2Vi
UGFnZSgqdGhpcywgbV93ZWJzaXRlRGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zpc2lvbmFsUGFn
ZS0+cHJvY2VzcygpLndlYnNpdGVEYXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94eTo6RW5kc1Vz
aW5nRGF0YVN0b3JlOjpObyA6IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZ
ZXMpOwogCiAgICAgLy8gVGhlcmUgaXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUgdG8gcmV0dXJuIHRv
IHRoZSBwYWdlIGluIHRoZSBwcmV2aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpAQCAtMzYyMCwxMSAr
MzYyMCwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogICAgIG1faW5zcGVjdG9yQ29udHJv
bGxlci0+ZGlkQ29tbWl0UHJvdmlzaW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwgbV93ZWJQYWdlSUQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBh
Z2VQcm94eT4mJiBzdXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nl
c3MsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYm
IHN1c3BlbmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdFQlBB
R0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzOiBuZXdQcm9jZXNzUElEPSVpLCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwgbmV3UHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywg
IkNvbnRpbnVpbmcgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9j
ZXNzIiwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5n
KCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkp
OworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpObyk7CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAg
ICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImNvbnRpbnVl
TmF2aWdhdGlvbkluTmV3UHJvY2VzczogVGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcHJvdmlz
aW9uYWwgbG9hZCwgY2FuY2VsbGluZyBpdCAocHJvdmlzb25hbE5hdmlnYXRpb25JRD0lbGx1LCBu
YXZpZ2F0aW9uSUQ9JWxsdSkiLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5h
dmlnYXRpb24ubmF2aWdhdGlvbklEKCkpOwpAQCAtMzYzMyw5ICszNjM0LDEwIEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdl
UHJveHk+KCp0aGlzLCBXVEZNb3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2Up
LCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNS
ZWRpcmVjdCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIHdlYnNpdGVQb2xpY2llcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRpbnVh
dGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24g
PSBtYWtlUmVmKG5hdmlnYXRpb24pLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcyldKCkgbXV0YWJsZSB7CisgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJl
cXVlc3RJc1JlZGlyZWN0KCk7CisgICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVy
Q29tbWl0ID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb247CisgICAgbV9wcm92
aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RG
TW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZp
Z2F0aW9uSUQoKSwgaXNTZXJ2ZXJTaWRlUmVkaXJlY3QsIG5hdmlnYXRpb24uY3VycmVudFJlcXVl
c3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgc2hvdWxkQ2xvc2VQcmV2aW91c1Bh
Z2VBZnRlckNvbW1pdCwgd2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKKyAgICBhdXRvIGNvbnRpbnVh
dGlvbiA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24g
PSBtYWtlUmVmKG5hdmlnYXRpb24pLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHdlYnNp
dGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKGF1dG8qIGl0ZW0gPSBuYXZpZ2F0aW9uLT50YXJnZXRJdGVtKCkpIHsKICAgICAgICAg
ICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3
UHJvY2VzcyB0byBiYWNrIGl0ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRmOCgpLmRh
dGEoKSk7CiAKQEAgLTM2NTksOSArMzY2MSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAg
ICAgICAgIC8vIEZJWE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBs
YXN0IHBvbGljeSBkZWxlZ2F0ZSwgZXRjCiAgICAgICAgIEFTU0VSVCghbmF2aWdhdGlvbi0+Y3Vy
cmVudFJlcXVlc3QoKS5pc0VtcHR5KCkpOwogICAgICAgICBpZiAoYXV0byYgc3Vic3RpdHV0ZURh
dGEgPSBuYXZpZ2F0aW9uLT5zdWJzdGl0dXRlRGF0YSgpKQotICAgICAgICAgICAgbV9wcm92aXNp
b25hbFBhZ2UtPmxvYWREYXRhKG5hdmlnYXRpb24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQu
ZGF0YSgpLCBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEt
Pk1JTUVUeXBlLCBzdWJzdGl0dXRlRGF0YS0+ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNl
VVJMLCBzdWJzdGl0dXRlRGF0YS0+dXNlckRhdGEuZ2V0KCksIGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSwgc3Vic3RpdHV0ZURhdGEt
PnNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFn
ZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRhKCks
IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlNRVR5
cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkwsIHN1
YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVz
RGF0YSksIHN1YnN0aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdh
dGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBu
dWxscHRyLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzRGF0YSkpOworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0
KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0
KCkgfSwgbnVsbHB0ciwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwogICAgIH07
CiAgICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2hvdWxkUGF1c2VMb2FkaW5nKCptX3By
b3Zpc2lvbmFsUGFnZSkpCiAgICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0Q29udGlu
dWVMb2FkaW5nQ2FsbGJhY2soKm1fcHJvdmlzaW9uYWxQYWdlLCBXVEZNb3ZlKGNvbnRpbnVhdGlv
bikpOwpAQCAtNTYxNCwxMyArNTYxNiwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZN
b3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVl
c3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJE
YXRhKTsKKyAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25s
b2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwKKyAgICBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjMxLDkgKzU2MzUsMTMgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywKICAgICBNRVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXF1ZXN0LnVybCgp
KTsKICAgICBNRVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXNwb25zZS51cmwoKSk7CiAgICAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2
aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOworICAgIGlm
ICghbmF2aWdhdGlvbikgeworICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUt
PmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1f
YmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKKyAgICAgICAgbmF2aWdhdGlvbklEID0g
bmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCk7CisgICAgfQogICAgIGF1dG8gbmF2aWdhdGlvblJl
c3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6
Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgdGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNl
LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlKTsKIAotICAgIGF1dG8gbGlzdGVu
ZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBpZGVudGlmaWVy
LCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRv
IGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2
aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAgICAgIHByb2Nlc3MsIG5hdmlnYXRp
b25SZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5n
LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUg
QVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8pOwpAQCAtNTY0Miw5ICs1NjUwLDI4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsCiAgICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNy
ZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNz
ID0gV1RGTW92ZShwcm9jZXNzKV0gKGNvbnN0IGF1dG8mIHBvbGljeURlY2lzaW9uKSB7CiAgICAg
ICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdv
cmtFeHRlbnNpb25zU2FuZGJveEV4dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAg
ICAgICB9KTsKKworICAgICAgICBhdXRvIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBX
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObzsKKyAgICAgICAgaWYgKHBvbGljeUFjdGlv
biA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
KSB7CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmln
YXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQg
cHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5z
IGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlz
LT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxS
ZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJs
ZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6
IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Cisg
ICAgICAgICAgICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAg
ICAgICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0
aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZp
Z2F0aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsK
KyAgICAgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRp
bnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdh
dGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3Zl
KHNlbmRlcikpOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwg
bmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBX
VEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAg
fSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91
bmREb21haW5SZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUpIHsKKyAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNU
b09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDNiZGNkZmRlMTU3MmEwNWUyNDQyNjk3NjYy
NDMzZmYyZTk2ODA0YTUuLmJiMzFjYTZmOTdjYWI2NWY3YzBiZThjMWFjYWRjMWJkZWVjOWRmYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjksNyArMjY5LDcg
QEAgZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJl
Y3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBj
bGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGly
ZWN0aW9uIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAg
ICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA1OSw3
ICsyMDU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAg
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
UmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJp
YnV0ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3Rh
dGVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCBhMGI3Mzk1MzZiNjAzZjQ4YjY5OTliMjc0YjE0ZTYyNjJkMzEyODEz
Li4yY2UzZjFkNDk2MTQyMTAzZGZjYTZhYmFlNTA0OGUyMGY2OTBkODU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyAr
MTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xp
Y3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBT
dHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlw
ZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Ym9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYu
LmE0MGU2OWRmYTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURv
bWFpbiA/ICptX3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVy
biBtX3JlZ2lzdHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHsgfSk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiYgb3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0
cmFibGVEb21haW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAg
Ym9vbCBpc0luUHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDQwYmU2MWMyMGZjYjhk
M2FmNzEwM2ZhY2MzNzNhMjBjOTE2NjMzMDkuLjRiY2FiZjQ4ZDMyNjc2NDZjZDFiMzU3MzE0N2I5
Mzc1NzFkYjZjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcg
KzgxNiw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAg
d2ViUGFnZS0+c2hvdygpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rp
b24mJiBmdW5jdGlvbikKIHsKICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwog
ICAgIGlmICghd2ViUGFnZSkgewpAQCAtODM1LDcgKzgzNSw5IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zCiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgV0tCdW5kbGVQ
YWdlUG9saWN5QWN0aW9uIHBvbGljeSA9IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xp
ZW50KCkuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIoKSwgcmVz
cG9uc2UsIHJlcXVlc3QsIHVzZXJEYXRhKTsKLSAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvblVzZSkgeworICAgIC8vIElmIGEgYnJvd3NpbmcgY29udGV4dCBzd2l0Y2gg
aXMgcmVxdWVzdGVkLCB3ZSBzdGlsbCBuZWVkIHRvIHNlbmQgdGhlIElQQyB0byB0aGUgVUlQcm9j
ZXNzIGluIG9yZGVyIHRvIHByb2Nlc3Mtc3dhcCBpZiBuZWNlc3NhcnksIGV2ZW4gdGhvdWdoIHRo
ZQorICAgIC8vIGluamVjdGVkIGJ1bmRsZSBoYXMgYWxyZWFkeSBoYW5kbGVkIHRoZSBwb2xpY3kg
ZGVjaXNpb24uCisgICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2Ug
JiYgIW5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpIHsKICAgICAgICAgV0VCRlJBTUVM
T0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2U6IGNvbnRpbnVpbmcgYmVjYXVzZSBpbmplY3RlZCBidW5kbGUgc2F5cyBzbyIpOwog
ICAgICAgICBmdW5jdGlvbihQb2xpY3lBY3Rpb246OlVzZSwgaWRlbnRpZmllcik7CiAgICAgICAg
IHJldHVybjsKQEAgLTg0Nyw5ICs4NDksMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAg
ICBhdXRvKiBwb2xpY3lEb2N1bWVudExvYWRlciA9IGNvcmVGcmFtZSA/IGNvcmVGcmFtZS0+bG9h
ZGVyKCkucHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpIDogbnVsbHB0cjsKICAgICBhdXRvIG5h
dmlnYXRpb25JRCA9IHBvbGljeURvY3VtZW50TG9hZGVyID8gc3RhdGljX2Nhc3Q8V2ViRG9jdW1l
bnRMb2FkZXImPigqcG9saWN5RG9jdW1lbnRMb2FkZXIpLm5hdmlnYXRpb25JRCgpIDogMDsKIAor
ICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUgPSBwb2xpY3kgPT0gV0tCdW5kbGVQ
YWdlUG9saWN5QWN0aW9uVXNlOwogICAgIGF1dG8gcHJvdGVjdG9yID0gbV9mcmFtZS5jb3B5UmVm
KCk7CiAgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVu
ZXIoaWRlbnRpZmllciwgV1RGTW92ZShmdW5jdGlvbiksIFdlYkZyYW1lOjpGb3JOYXZpZ2F0aW9u
QWN0aW9uOjpObyk7Ci0gICAgaWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+
aW5mbygpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5T
aG93UmVzcG9uc2UsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpKSkgeworICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJh
bWUtPmluZm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwg
Y2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIFVzZXJE
YXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNl
ckRhdGEuZ2V0KCkpLmdldCgpKSkpKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JF
TEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBpZ25v
cmluZyBiZWNhdXNlIFdlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgZmFpbGVk
Iik7CiAgICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklE
LCBQb2xpY3lEZWNpc2lvbiB7IGlkZW50aWZpZXIsIHN0ZDo6bnVsbG9wdCwgUG9saWN5QWN0aW9u
OjpJZ25vcmUsIDAsIHsgfSwgeyB9IH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggYWEzYTg2MDE3NTcyNjU0MTM4NTJhNGI5ZTg5NTY0YmI0ZDFhM2YzYi4uOTY2NmQ2
N2Y4NjIwOGQ5YjZjNjRmNDExZGJkNjNiZjAxNTkwYTcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1l
KiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdl
YkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hv
dygpIGZpbmFsOwogICAgIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAg
ICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0ZTRiYmNmYmJjZGFlZWEwYjEyNWY3YjBk
OGU2M2YwZGZlODIzYWY3Li5hODkxNjJkZjAzMmUxYzhhMzM4Y2YwNTI3MzU1MmQzZDMxOTg3ZTc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTcyMyw3ICsxNzIzLDcgQEAgTk9fUkVUVVJOIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3RXYWl0
aW5nRm9yUHJvY2Vzc0xhdW5jaChMb2FkUGFyYW1ldGVycyYmLCBVUkwKICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hh
cmVkQnVmZmVyPiYmIHNoYXJlZEJ1ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNz
aW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdl
YlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFJlZjxTaGFyZWRCdWZmZXI+
JiYgc2hhcmVkQnVmZmVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVzcG9uc2UsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICNpZiBFTkFCTEUoQVBQ
X0JPVU5EX0RPTUFJTlMpCiAgICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCAmbV9tYWluRnJhbWUuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDc4ZDgzMGRhNDJkOTU2N2Nk
Zjk1Y2ZhMWZlMzI3MzMwMmZmM2IyMWMuLjhlMzRkNmQ3MWVkNGMwMjk5ZTA1Yzc2NWMwN2E0YTAz
YmQ5ZGNlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTIyNCw3ICsyMjQsNyBAQCBlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUg
OiBib29sOwogZW51bSBjbGFzcyBIaWdobGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwIDogYm9v
bDsKIGVudW0gY2xhc3MgSGlnaGxpZ2h0VmlzaWJpbGl0eSA6IGJvb2w7CiBlbnVtIGNsYXNzIFNl
bGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0
aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTcyLDcg
KzE1NzIsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1l
Kik7CiAKLSAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGlu
Z1VSTCwgY29uc3QgVXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWRE
YXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJE
YXRhJiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6
OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlD
bG9zZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGY4N2I0
NTlmODZmNzBlNjA1OTI0NjNiZDllNTkxNzc3ZjlmMDIyMDAuLmYxYjVhODJkNGY5ODY1YWU2ZTBh
ODJmZDU3MmYyM2Q5NzkzYTRlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9u
LCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2li
bGVBcmVhKCkKIAotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0
ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBl
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2ll
c0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIg
YmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJh
Y2tGb3J3YXJkVHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZl
cnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCAxNTJmZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4w
NTE2MjcwMDlhNjZlMTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZy
YW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
U2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
ICBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCmluZGV4IGJmZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQu
LjBjZmJlZWUwNDQ3ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJd
IHdlYlZpZXdTaG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3
ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFk
MGEuLmM1YWZhMTMzN2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmll
dyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZy
YW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2
NWFlOTQyYzI5Yjg5NmQ4Li42MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWIy
NDA4MzUzNjZlMjgxNGNiY2YwZWI1MGIzMjU2OGYzYTNiMWUyMy4uYmI1ZjE3YmQ4YjBjNGQ0ZWY1
NjVhYjMwMmJjNTIzZWRkMjgzZjQ3NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTE4ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mt
c3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIHRvIHZhbGlk
YXRlIHRoYXQgd2UgYXJlIGluZGVlZCBwcm9jZXNzLXN3YXBwaW5nLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToK
KyAgICAgICAgKC1bUFNPTlNjaGVtZSBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp0b0RhdGE6d2l0
aENPT1BWYWx1ZTpdKToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2No
ZW1lVGFzazpdKToKKwogMjAyMS0wOC0xOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RLXSBJbmNyZWFzZSB0aGUgc3RhcnR1cCBw
ZXJmb3JtYW5jZSBvZiB3ZWJraXQtZmxhdHBhawpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KaW5kZXggZjliOGRhZjY5ZjQ0NzQyNzk1ZmQ4ZjkxNmM2ZjZmODViNDBlNDg2MS4uNmVmNTUy
MjQxM2E1ZWI5MDUxMDA2NTI0NDMxMWQ4NDYwOGQ1NTQ3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCkBAIC0yNTAsMTIgKzI1MCwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUg
OiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAgICAgY29uc3QgY2hhciogX2J5dGVz
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBpbmdzOworICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFz
az4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5
OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwog
LSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJMU3Ry
aW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhOworLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNv
bnN0IGNoYXIqKWNvb3BWYWx1ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUK
QEAgLTI3Nyw2ICsyNzksMTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNT
dHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBw
aW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRh
dGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAorLSAodm9pZClh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25z
dCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQoreworICAg
IFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07Cisg
ICAgaWYgKGNvb3BWYWx1ZSkKKyAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29v
cFZhbHVlKTsKK30KKwogLSAodm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJP
T0wpdmFsdWUKIHsKICAgICBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5ID0gdmFsdWU7CkBA
IC0zMTEsOCArMzIwLDE1IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBz
dGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIFsoaWQ8
V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJlZGly
ZWN0UmVzcG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAgICB9CiAKLSAg
ICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW2ZpbmFsVVJMID0gcmV0YWluUHRyKGZpbmFs
VVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgewotICAgICAgICBSZXRhaW5QdHI8TlNV
UkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29u
dGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgZG9Bc3luY2hyb25vdXNs
eUlmTmVjZXNzYXJ5KFtzZWxmLCBmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVSTCldKGlkIDxX
S1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVh
ZGVyRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAgICAg
ICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ0ZXh0L2h0bWwiIGZvcktleTpAIkNvbnRl
bnQtVHlwZSJdOworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCIxIiBmb3JL
ZXk6QCJDb250ZW50LUxlbmd0aCJdOworICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFs
dWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb29wVmFs
dWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihO
U1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJd
OworCisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBWZXJz
aW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAgICAgfSwgMC4xKTsK
IApAQCAtNDA5LDggKzQyNSw2IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycs
IGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCi0jaWYgUExB
VEZPUk0oTUFDKQotCiBzdGF0aWMgY29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzU2l0ZU5vT3Bl
bmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewpAQCAtNDg4LDYgKzUwMiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNPVVJDRSI7CiAKKyNpZiBQTEFURk9STShNQUMpCiBz
dGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgK
IDxzY3JpcHQ+CiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihl
dmVudCkgewpAQCAtNDk3LDggKzUxMiw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdl
c2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0TGluayIgaHJl
Zj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5OYXZpZ2F0ZTwvYT4KIClQU09OUkVT
T1VSQ0UiOwotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2VuZGlmCiAKIHN0YXRpYyBSZXRh
aW5QdHI8X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBwc29uUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uKCkKIHsKQEAgLTExOTcsOCArMTIxMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2tO
YXZpZ2F0aW9uQWZ0ZXJTZXNzaW9uUmVzdG9yZSkKICAgICBFWFBFQ1RfTkUocGlkMywgcGlkNCk7
CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdp
bmRvd09wZW5Ob09wZW5lcikKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9
IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTEyMDYsNiArMTIxOCw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8g
aGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRs
ZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZv
clVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyNDUsNiArMTI1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIENyb3NzT3JpZ2luQnV0U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBhdXRv
IHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6
cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRv
IGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkJ1dFNhbWVTaXRlTm9PcGVuZXJUZXN0
Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhh
bmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI4NSw2ICsxMjk5LDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIpCiAKICAgICBh
dXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bv
b2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBh
dXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21h
aW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdl
dCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEzMjQsNiArMTMzOSw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3
Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQ
b29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVy
ID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6d2luZG93T3BlblNh
bWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0
VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKIApA
QCAtMTM2Miw2ICsxMzc4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJn
ZXRXaXRoT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUg
YWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0
ZVdpdGhFeHBsaWNpdE9wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CkBAIC0xNDAxLDYgKzE0MTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1Rh
cmdldEltcGxpY2l0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNP
TlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5r
Q3Jvc3NTaXRlV2l0aEltcGxpY2l0Tm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1l
OkAiUFNPTiJdOwpAQCAtMTQ0MCw2ICsxNDU4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NT
aXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07Cisg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQ
U09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0Qmxh
bmtDcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CkBAIC0xNDc5LDYgKzE0OTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFy
Z2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBh
bGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rU2FtZVNpdGVO
b09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVt
ZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNTExLDgg
KzE1MzEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIp
CiAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQotCiBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdEZyb21OZXdXZWJWaWV3KQogewog
ICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbigpOwpAQCAtNTA5NCw4ICs1MTEyLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZGlu
Z1N0YXRlQWZ0ZXJQb2xpY3lEZWNpc2lvbikKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjps
b2FkT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIlVSTCIgY29udGV4dDp3ZWJWaWV3LmdldCgp
XTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHNhdmVPcGVu
ZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CkBAIC01MTA3LDYgKzUxMjMsOCBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJv
Y2Vzc1N3YXBwaW5nT2ZPcGVuZXIpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5ID0gWUVTOworCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05T
Y2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNh
bWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0
ZXNdOwpAQCAtNTE4MCw2ICs1MTk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0Fm
dGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogVEVTVChQcm9jZXNzU3dh
cCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVlKQog
ewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4xLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5dGVz
XTsgLy8gT3BlbnMgInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBbaGFu
ZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
Mi5odG1sIiB0b0RhdGE6c2F2ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MjM1LDggKzUyNTQsNiBA
QCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3
YXBwaW5nT2ZPcGVuZWUpCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCi0jZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQotCiBlbnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CiBzdGF0aWMgdm9p
ZCBydW5Qcm9jZXNzU3dhcER1ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5TVVJMKiByZWxhdGVkVmll
d1VSTCwgTlNVUkwqIHRhcmdldFVSTCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewpAQCAtNzE1
MSwzICs3MTY4LDIzNCBAQCBURVNUKFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVuRW50ZXJpbmdD
YWNoZSkKICAgICAvLyBDbGVhciB0aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0aGUgcHJvY2Vz
c2VzIGFyZSBiZWluZyBjaGVja2VkIGZvciByZXNwb25zaXZlbmVzcy4KICAgICBbcHJvY2Vzc1Bv
b2wgX2NsZWFyV2ViUHJvY2Vzc0NhY2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRv
d09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+
Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+CispUFNP
TlJFU09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1lT3JpZ2luQ09P
UFRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICB3ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAiZm9vIik7Cit9
Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6
IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9v
bCB7IE5vLCBZZXMgfTsKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3Qg
Y2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmln
aW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVj
dCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJvY2Vz
c1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2ViVmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNz
UG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOworICAgIGZvciAoX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFs
RmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAi
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbd2ViVmll
d0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0p
OworICAgIGlmIChpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsKKyAgICAgICAg
W2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhD
T09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9
PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRS
ZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIg
dG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3Qu
aHRtbCJdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJw
b3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGlu
YXRpb25DT09QXTsKKyAgICB9IGVsc2UgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07
CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93
d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAgICAgICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9w
dXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0
aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1h
cHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9E
YXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0KKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZv
clVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdh
dGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKworICAgIC8vIFdoZW4gdGhlIHByb3Zpc2lvbmFsIGxvYWQgc3RhcnRzIGluIHRoZSBw
cm92aXNpb25hbCBwcm9jZXNzLCBraWxsIHRoZSBXZWJWaWV3J3MgcHJvY2Vzc2VzLgorICAgIF9f
YmxvY2sgdW5zaWduZWQgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzID0gMDsKKyAgICBuYXZpZ2F0
aW9uRGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFuZGxlciA9IF57Cisg
ICAgICAgICsrbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzOworICAgIH07CisKKyAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKyAgICBh
dXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTlVJRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV0pOworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBzZXJ2ZXJSZWRpcmVj
dGVkID0gZmFsc2U7CisgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CisgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNl
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGlmIChkb1Nl
cnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAg
IEVYUEVDVF9FUSgzLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VR
KDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfRkFMU0Uoc2Vy
dmVyUmVkaXJlY3RlZCk7CisgICAgfQorICAgIEVYUEVDVF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNp
b25hbExvYWRzKTsgLy8gT25lIGluIGVhY2ggdmlldy4KKworICAgIGF1dG8gcGlkMSA9IFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKKyAg
ICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAg
ICBFWFBFQ1RfVFJVRSghIXBpZDIpOworCisgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dh
cDo6WWVzKQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAg
ICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBib29sIGZpbmlzaGVkUnVubmluZ1Njcmlw
dCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncuY2xvc2VkID8g
J3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaXNDbG9zZWQgPSAoTlNTdHJpbmcgKily
ZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBpc0Nsb3NlZCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaXNDbG9zZWQpOworICAgICAg
ICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5p
bmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5h
bWUiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAg
ICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJ
c1NhbWVPcmlnaW46OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdp
bmRvd05hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIi
LCB3aW5kb3dOYW1lKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1Njcmlw
dCk7CisKKyAgICAvLyBPcGVuZWUgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUu
CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBj
b21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIE5TU3RyaW5nICpoYXNPcGVuZXIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlm
IChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19T
VFJFUShAImZhbHNlIiwgaGFzT3BlbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7CisgICAgICAgIGZpbmlzaGVkUnVubmlu
Z1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNl
OworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBOU1N0cmluZyAqd2luZG93TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAg
aWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNl
OworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5
LmlubmVyVGV4dCIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBOU1N0cmluZyAqaW5uZXJUZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0
OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwb3B1cCIsIGlubmVyVGV4dCk7CisgICAgICAg
IGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgY3JlYXRlZFdlYlZp
ZXcgPSBudWxscHRyOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRy
LCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIp
Cit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5v
bmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQoreworICAgIC8vIFdlIGV4cGVjdCBh
IHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4u
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4i
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dh
cDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRo
b3V0Q09PUFdpdGhSZWRpcmVjdCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxw
dHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVz
LCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChu
dWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5z
YWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4MGNhZDAxNjZiNjNiN2FjNDUxZTEwNmVlZTk5ODAyZDNiOGRlNmVh
Li41YWZmZjg1ZjUxN2VjYzk0OWFlNDFiMmYxNGUwMjIyYjJiNjk0NjVlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTa2lwIENPT1AgdGVzdHMgb24gV0sxIGFzIHdlIG9ubHkgaGF2ZSBhIHdvcmtpbmcgaW1wbGVt
ZW50YXRpb24gZm9yIFdLMi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAy
MS0wOC0xOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgcG9zaXRpb246IHN0aWNreSB3aXRoIGRpc3BsYXk6IGlubGluZS1ibG9jawpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNDk2ZGQzODA4MjI0YWYxYjM4MDMyNmJlZTNmNzg0YzEx
Mjk0NTA2Zi4uOGQ4ZTc2MDUxMmM0ZTYwMTc1NGY4MjA2ZGExNzgxYWE2OGUyMzA5MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMTggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQg
cHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQ
IGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaW5vciB0ZXN0IHJlYmFzZWxpbmUg
ZHVlIHRvIGxvZ2dpbmcgY2hhbmdlcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBEb2N1bWVudCBsb2FkIGV2ZW50cyBzaG91bGQgdXBkYXRl
IHRpbWluZyBpbiBQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcgZXZlbiBhZnRlciBpdHMgaW5z
dGFudGlhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1
cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYzYWM0N2UyYjk1ZmY0
NzU0MTQ2Njc2Li4wMzIzYTUxZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2OGIzZWMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMiw4ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0
byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2EKIENPTlNPTEUg
TUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29t
bW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVT
U0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxh
bmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1S
ZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBB
UEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBk
dWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQg
bG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSBy
ZXNwb25zZSBoZWFkZXIuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBo
dHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29u
dHJvbCBjaGVja3MuCiAKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiB3aW5kb3cub3Bl
bigpCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTQyYWJiZDE2NjYxYTAyNTg0
ODk1NjQ4MTNjMTQwODJiMzQ4YWRhNS4uZjk1NWIxYWEzNDJlMGE2ZTgyMTk1ZDA1ZDRmMzQzODU4
ZWIwYWYzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y29udGVudC1zZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdp
bi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1
cC1jb29wLWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAt
Y29vcC1ieS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250
ZXh0LmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDExIEBA
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQt
c2VydmljZS13b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2
aWNlLXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVk
ZGVyLVBvbGljeSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jv
c3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Ny
b3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lw
IF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kg
WyBTa2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNr
aXAgXQogCiAjIFF1b3RhIGNoZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rlc3RzL0luZGV4ZWRE
Qi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmEyNWFjMTg3MzM1ZWQxYWZhZGE3MDhhMzQyNThi
YjUxZmE3MzBlOS4uMTRjNjBjMjZjY2ZhNTc5YzVlYzhiODVlYTE3YzVlNTdjYjljNTc1YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCArMzcx
NSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGljaWVz
L3JlZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Utd29y
a2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2
YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2Vydmlj
ZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdvcmtl
ci1pbnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xh
eW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmts
ZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBO
byBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lw
IF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNv
cnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4t
ZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRlcmluZyBmb3IgV0sx
CiBodHRwL3dwdC9sb2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435778</attachid>
            <date>2021-08-18 09:48:01 -0700</date>
            <delta_ts>2021-08-18 10:57:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210818094800.patch</filename>
            <type>text/plain</type>
            <size>110498</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1NjUyOTU2ZWVlOTAy
OWU4ZTg4MjU4MmJjMjA2ZjExYzQyYTRkNC4uNzU2MDM0ODM0Njg0ZDg2MWY1YTI2ZDI1Y2FkOGQz
YjRmYjQ0ZGQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVjZW50bHkgYWRkZWQgc3VwcG9y
dCBmb3IgdGhlIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IChDT09QKSBIVFRQIGhlYWRlci4g
SG93ZXZlciwKKyAgICAgICAgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcgY29udGV4dCBncm91cCBv
biBIVFRQIHJlc3BvbnNlLCB3ZSB3b3VsZCBrZWVwIHVzaW5nIHRoZSBzYW1lCisgICAgICAgIFdl
YlByb2Nlc3MuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9j
ZXNzIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0
d29yayByZXNwb25zZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5h
YmxlIFdlYiBBUElzCisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAg
ICAgRm9yIHByb2Nlc3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMg
YXMgcHJvY2Vzcy1zd2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZm
ZXJlbmNlcyBhcmUgdGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBk
ZWNpc2lvbiBpbnN0ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0g
V2UgdXNlZCB0byBoYXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVt
LiBJdCBpcyBub3cgdHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRo
aXMgbmV3IHN0YXRlCisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGlj
eSBkZWxlZ2F0ZSBjYWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAg
ICAgICAgIHNlbmRpbmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0
ZXIgcHJvY2VzLXN3YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24g
bmF2aWdhdGlvbiByZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBv
ZiB0cnlpbmcKKyAgICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LiBQZXIgdGhlIHNwZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQK
KyAgICAgICAgICBncm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5l
ZWRzIHRvIGJlIGRpc2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAg
IE9uZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRo
ZSBIVFRQIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nl
c3Mtc3dhcC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRz
IGNhbmNlbGxlZCB1cG9uIHJlY2VpdmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBh
bmQgZGVjaWRpbmcgdG8gcHJvY2Vzcy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNz
dWVkIGJ5IHRoZSBuZXcKKyAgICAgICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxs
IGFkZHJlc3MgdGhpcyBpbiBhIGZvbGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAor
ICAgICAgICBjb21wbGV4aXR5LiBXZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBp
biB0aGUgbmV0d29yayBwcm9jZXNzIGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRv
IHRoZSBuZXcgb25lIGluIGNhc2Ugb2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgQ09PUC9DT0VQIGxheW91dCB0ZXN0cyB0aGF0IGFyZSBzdGlsbCBwYXNzaW5n
IGFuZCBuZXcgQVBJIHRlc3RzCisgICAgICAgIHRoYXQgdmFsaWRhdGUgdGhhdCB3ZSBhcmUgaW5k
ZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRvQ3Jvc3NPcmlnaW5PcGVu
ZXJIYW5kbGluZ09mUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1h
eWJlTG9hZEVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjbGVhck1h
aW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQ
b2xpY3lDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0
SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dDo6c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29u
dGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxv
YWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmg6CisgICAgICAg
ICogbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorCiAyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ3Jhc2ggdW5kZXIgSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpoYW5k
bGVFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI2ZjJlMDY1MjE5YzViNWU2Nzc5MWZkMjA2MmYzYjUwODQz
ZjE4NTIuLjZjNmVkOTBmYTc4ZmY3MzUzMzZhMzRlY2Y5ZTZjNDg5N2Y4OTBjNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBv
biBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAorICAgICAgICB3aGVu
IHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdv
dWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3MuIFRoaXMgcGF0Y2gg
bWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4gc3dpdGNoaW5nIGJy
b3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNwb25zZSBhcyB0aGlz
IHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBBUElzCisgICAgICAg
IHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHByb2Nlc3Mtc3dhcHBp
bmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vzcy1zd2FwIG9uIG5h
dmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBhcmUgdGhhdDoKKyAg
ICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBpbnN0ZWFkIG9mIG5h
dmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0byBoYXZlIGEgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBub3cgdHJpLXN0YXRl
OiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgWWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0YXRlCisgICAgICAg
ICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0ZSBjYWxscyBhZnRl
ciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNlbmRpbmcgZHVwbGlj
YXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2VzLXN3YXBwaW5nLgor
ICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlvbiByZXNwb25zZSwg
d2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcKKyAgICAgICAgICB0
byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhlIHNwZWNpZmljYXRp
b24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgICBncm91cCBzd2l0
Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJlIGRpc2NhcmRlZCAo
d2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBvcnRhbnQgdGhpbmcg
dG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJlcXVlc3QgdG8gdGhl
IHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4gVGhpcyBpcyBiZWNh
dXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxlZCB1cG9uIHJlY2Vp
dmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRpbmcgdG8gcHJvY2Vz
cy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRoZSBuZXcKKyAgICAg
ICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3MgdGhpcyBpbiBhIGZv
bGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBjb21wbGV4aXR5LiBX
ZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0d29yayBwcm9jZXNz
IGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcgb25lIGluIGNhc2Ug
b2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAo
V2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0
ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmln
YXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0
ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29t
bWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4gY29uc3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbXBsKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4LTE4ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKGlP
UyAxNSk6IERvdWJsZURvd24gQ2FzaW5vIGFwcCB3b24ndCBsb2FkIHBhc3QgbGF1bmNoIHBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiNTg2N2FmNzc2ZmM1MzAyYjViYTc1OGQz
MTQ0MjVmMGY5NDBhZThlLi5hMDQyOGZiNTg5ZWNhYjI1M2U5MzdiYmI0Yzk5YmFhNjcwOTYxMGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBs
ZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMTYgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICAibWFrZSBhbmFseXplIiBzaG91bGQgcnVu
IGNsYW5nIHN0YXRpYyBhbmFseXplciBpbiBkZWVwIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZwppbmRleCAxZGI3NTBlOWVlN2Y0OWMzNDg1ODNjMWM2Nzg0YTA5ZjM1ODBmZWU1Li44YmFh
ZjE4MmEzYWNhNWZiM2VjYjUxOTljZTFkNjFhN2NkNTBlYzEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGlu
ZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorCiAyMDIxLTA4LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgc3VwcG9ydCBmb3IgQmxv
YiBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjRiMTZiNDI4MDkyNmNmOWUwMzI4MDUwM2M3YmUwLi40NDMxNmVkYjVhN2Y0MDE0ZWVi
MmJiOGZhZjVhNzkxOGIyMmU4OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTc4MywxNSArNzgzLDEyIEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2luZy10
aGUtd2ViLmh0bWwjcHJvY2Vzcy1hLW5hdmlnYXRlLWZldGNoIChTdGVwIDEyLjUuNi4yKQogICAg
IC8vIElmIHNhbmRib3hGbGFncyBpcyBub3QgZW1wdHkgYW5kIHJlc3BvbnNlQ09PUCdzIHZhbHVl
IGlzIG5vdCAidW5zYWZlLW5vbmUiLCB0aGVuIHNldCByZXNwb25zZSB0byBhbiBhcHByb3ByaWF0
ZSBuZXR3b3JrIGVycm9yIGFuZCBicmVhay4KLSAgICBpZiAocmVzcG9uc2VDT09QLnZhbHVlICE9
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Y3JlYXRpb25TYW5kYm94RmxhZ3MoKSAhPSBTYW5kYm94Tm9uZSkgeworICAgIGlm
IChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSAmJiBmcmFtZUxvYWRlcigpLT5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKSAhPSBTYW5k
Ym94Tm9uZSkgewogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCkt
PmNhbmNlbGxlZEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID0gZW5mb3JjZVJlc3BvbnNl
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kocmVzcG9uc2UudXJsKCksIHJlc3BvbnNlT3JpZ2luLCBy
ZXNwb25zZUNPT1ApOwotICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPnN3
aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTk5OCw5ICs5OTUsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3Bv
bnNlKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3
b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJl
IGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUg
ZGV0YWlscy4KICNpZiAhVVNFKENGKQpAQCAtMTA0MiwxMSArMTAzNiwxOSBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aQogICAgIH0KICNlbmRpZgogCisgICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3Bl
bmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeworICAgICAg
ICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNv
dXJjZUxvYWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVz
b3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNw
b25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNo
ZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50
UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNv
dXJjZUxvYWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVz
cG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQt
Pm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNl
TG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJ
ZGVudGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7
CkBAIC0yMDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1w
dHkoKQogICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwi
IDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUo
bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAg
ICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBl
LCAwLCAiVVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgp
LmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigp
LT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAg
ICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwog
CisgICAgICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1
c2UgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlz
IHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBw
b2xpY3kgZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRl
eHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAg
ICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5n
Q29udGV4dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6
Y2xlYXJNYWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxw
dHI7CisgICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFs
c2U7CiAKICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1
ZDc2NDg3NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZi
M2UwMmNlYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1
LDYgKzQyNSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2Vt
ZW50UmVzdWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9w
ZW5lclBvbGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBp
c0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4g
bV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51
aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRl
clJlc3BvbnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGlj
eUNoZWNrOyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRl
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01
NjEsNiArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
TG9hZGluZ011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVp
bmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1F
OiBEb2N1bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93
YXNPbmxvYWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3Vs
ZCBiZSBtZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhk
Y2E3NWI5NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2
NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZm
ZTViMDM2ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5
ODg0ZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3Jl
YXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0
cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25N
b2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2
ZDAzZGYyNDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRD
aGVja05ld1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVj
a05ld1dpbmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQ
b2xpY3k7IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wg
dmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJv
b2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEo
KSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0
dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0g
ZGF0YTsgfQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2lu
ZG93UG9saWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHsgZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07
CiAgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAg
IExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVm
ZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4xYmI5
NzY3YzI4N2NjZjhkMTMwMTkzNDdiYjNhNDMxOGIyZjYyYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpz
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBv
bGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyAr
NDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTog
VmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxv
YWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRB
dHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5j
dGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQs
IGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5l
d0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8s
IHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEyMDUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpwcmVwYXJl
Rm9yTG9hZFN0YXJ0KCkKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRp
bmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0OiBTdGFydGluZyBmcmFtZSBsb2FkIik7CiAKICAgICBt
X3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7Ci0gICAgbV9jbGllbnQtPmRpc3Bh
dGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKKyAgICBib29sIGFscmVhZHlTZW50RGlkU3Rh
cnRQcm92aXNpb25hbExvYWQgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIgJiYgbV9wcm92
aXNpb25hbERvY3VtZW50TG9hZGVyLT5pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGlj
eUNoZWNrKCk7CisgICAgaWYgKCFhbHJlYWR5U2VudERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKQor
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOwogCiAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3MCwxMCArMTQ3MiwxMSBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAgIFJlZjxEb2N1bWVudExvYWRl
cj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CiAgICAgbG9hZGVyLT5zZXRB
bGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9y
VXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUo
cmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKSk7CisgICAgbG9hZGVyLT5z
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKHJlcXVlc3Quc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24pOwogICAgIGFkZFNhbWVTaXRlSW5mb1RvUmVx
dWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgpKTsKICAgICBhcHBseVNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKG1fZnJhbWUsIGxvYWRlciwgcmVxdWVz
dCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSkgewor
ICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpICE9IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAgICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rv
cnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2Nr
QmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgICAgIGxvYWRlci0+c2V0SXNDbGllbnRS
ZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBT
ZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3Vy
cmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2Fk
Q29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBTZXRGb3JTY29wZTxMb2FkQ29u
dGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5n
U3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdX
aXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOwogICAgIGxv
YWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2OCw3ICszNzcxLDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgSGlzdG9y
eUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBJbml0aWF0ZWRC
eU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3Rh
dGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExv
YWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRD
b250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVp
bmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3Rv
cnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKICAgICBpZiAo
Q2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmdl
dChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0byBkb2N1bWVudExvYWRlciA9
IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IDZmM2JkYmVmY2EzOWZiZmMyM2Y5ZDE0YzliMjcxMTIyNmRlMjRhMGIuLmU1NmMw
OGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIyYWY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBAIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogZW51
bSBjbGFzcyBDYWNoZVBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dy
ZXNzIDogYm9vbDsKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhf
dDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0g
Y2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
VXNlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIElzTWFpblJlc291cmNlIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgU2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUgOiBi
b29sIHsgTm8sIFllcyB9OwpAQCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIENvbnRlbnRQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uJiYpOworICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDNlYjVjZWU2NDI2YzQ0ZGMxNzQyMjIxNWZhYWIxNTY5
MzFkYjJkOWQuLjM5YmI0MDU0MDljNDE3NDc4NWE5MzcyMjgzMDAxODYzYzBhODc3NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xOTAsNyArMTkwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lz
aW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDZkNWRlODRmMjE3OTg4NjNiYThl
ZWRlOGI2NDZmZTk0OGE0NTg4MmIuLjEwMzdkZjk4ZWM0MTU1NGJmYjFkYjYyYjg5NjgyZDgzN2Zh
NjU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC0z
Nyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWlu
dDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJlY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaAppbmRleCA3NmUwOTM1
MDViY2JiZTY2ZDIyNDUyZDJmNWI3OTViM2Q1ZDg1M2E0Li5hYjEzNTNiY2MwODJlNDFiYTU4OWM5
YzI5YzIxMDg1M2EzOTk1Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBi
b29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
OiB1aW50OF90IHsgTm8sIFllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRl
clJlc3BvbnNlUG9saWN5RGVjaXNpb24gfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBA
IC0zOSw3ICszOSw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLAogICAgICAg
ICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLAotICAgICAgICBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcworICAgICAgICBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbgogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IDQ4N2M5YjJiNWVmNDk0NmM5Y2JlOTg5ZjNlNzc2MWYwOGU2MWQ4MGUuLjkyNTViZjMxM2M2N2Q3
MTQ4MTVjZjc4MTUyNjZmZmQ4MDViMjJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNzAsNyArMTcw
LDcgQEAgdXNpbmcgU2hhcmVkU3RyaW5nSGFzaCA9IHVpbnQzMl90OwogZW51bSBjbGFzcyBDYW5X
cmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRl
U2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3MgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsg
UmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1l
dGVycy5oCmluZGV4IGYwOWQwYmM1ZTM4NzMxYWVhNzVkYzIzZjc5MDlmM2Y2ZDBlMjAwZDQuLjIy
ZmU3YzVlNDQ4ZGNlMjNjYjVlMzkwMzQ4ZTVkYmQ3MzNhNDM2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVQ
b2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKQEAgLTY2LDcgKzY3LDcgQEAgc3Ry
dWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07Ci0gICAgYm9vbCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAgVXNlckRhdGEgdXNlckRhdGE7
CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlz
dG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGM2NTRj
YjhjMTIyMWFmODExZjZiMGE3M2IzZTFkZjk0MzViMmI3NmQuLjY0OTlmMTE3MTdmNTZmZDY1OTkw
OTFhYjJmMTNkZTk2NmY1MGYyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAjZGVmaW5lIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKGNoYW5u
ZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIg
UFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIg
UFJJdTY0ICJdIFByb3Zpc2lvbmFsUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50
aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fbmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogI2RlZmlu
ZSBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBmbXQsIC4u
LikgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgIiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2
NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJRD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2
NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBmbXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVy
KCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwgIyNfX1ZBX0FSR1NfXykKIAotUHJvdmlzaW9u
YWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFn
ZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2
ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCitQcm92aXNpb25hbFBhZ2VQcm94
eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1
c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRD
bG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCBBUEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0
ZVBvbGljaWVzKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5k
ZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQpAQCAtNjYsNiArNjYs
NyBAQCBQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVBy
b3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1BybwogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlz
U2VydmVyUmVkaXJlY3QpCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1fcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQorICAg
ICwgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KHNob3VsZENsb3NlUHJldmlv
dXNQYWdlQWZ0ZXJDb21taXQpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fcHJv
dmlzaW9uYWxMb2FkQWN0aXZpdHkobV9wcm9jZXNzLT50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0
aXZpdHkoIlByb3Zpc2lvbmFsIExvYWQiX3MpKQogI2VuZGlmCkBAIC0xNjIsMTYgKzE2MywxOCBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZShSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2VicwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
d2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9S
RUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YToiKTsKKyAgICBBU1NFUlQoc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pOwogCi0gICAgbV9wYWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVU
eXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAg
IG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBtaW1lVHlwZSwgZW5jb2RpbmcsIGJhc2VV
UkwsIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0
TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHNlc3Npb25I
aXN0b3J5VmlzaWJpbGl0eSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZFJlcXVlc3Q6Iik7CisgICAgQVNTRVJU
KHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vKTsKIAogICAgIC8vIElmIHRoaXMgaXMgYSBjbGllbnQtc2lkZSByZWRp
cmVjdCBjb250aW51aW5nIGluIGEgbmV3IHByb2Nlc3MsIHRoZW4gdGhlIG5ldyBwcm9jZXNzIHdp
bGwgb3ZlcndyaXRlIHRoZSBmcm9tSXRlbSdzIFVSTC4gSW4gdGhpcyBjYXNlLAogICAgIC8vIHdl
IG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVwZGF0ZSBmcm9tSXRlbSdzIHByb2Nlc3NJZGVudGlmaWVy
IGFzIHdlIHdhbnQgZnV0dXJlIG5hdmlnYXRpb25zIHRvIHRoaXMgQmFja0ZvcndhcmQgaXRlbSB0
byBoYXBwZW4gaW4gdGhlCkBAIC0xNzksNyArMTgyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpS
ZXMKICAgICBpZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tG
b3J3YXJkTGlzdCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAg
ICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9j
ZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2
aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlv
bigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdh
dGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigp
LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0
ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVz
KQpAQCAtMTk5LDcgKzIwMiw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNr
Rm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCCiAgICAgICAgIHdl
YnNpdGVQb2xpY2llc0RhdGEgPSB3ZWJzaXRlUG9saWNpZXMtPmRhdGEoKTsKICAgICAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChX
VEZNb3ZlKGl0ZW1TdGF0ZXMpKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAq
bmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJk
RnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
c0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0Rh
dGEpKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIApA
QCAtMjI3LDggKzIzMCw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1h
aW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gUmVzdG9yZSB0aGUgbWFpbiBmcmFtZSdzIGNvbW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRz
IG1heSByZWx5IG9uIGl0IHVudGlsIHRoZSBuZXh0IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlm
IChhdXRvKiBtYWluRnJhbWUgPSBtX3BhZ2UubWFpbkZyYW1lKCkpCi0gICAgICAgIG1fbWFpbkZy
YW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTChtYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCku
dXJsKCkpOworICAgIGF1dG8qIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgp
OworICAgIGlmIChwcmV2aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1l
TG9hZFN0YXRlKCkuc2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBO
b3JtYWxseSwgbm90aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhl
IFdlYkNvbnRlbnQgcHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBp
biByZXNwb25zZSB0byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdp
bGwgbm90IGNvbWUgZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsy
NDAsMTAgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAg
ICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExv
YWQobV9yZXF1ZXN0LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVz
dCksIHsgfSk7CisgICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNN
YWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNh
c2Ugb2YgYSBwcm9jZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRv
ZXNuJ3Qga25vdyBhYm91dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28g
aXQgY2FuIHVwZGF0ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+
ZGlkU3RhcnRQcm92aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJM
KCkpOwogICAgIH0KIH0KIApAQCAtMzIzLDEyICszMzEsMTMgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRp
ZmllcgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlu
cHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFn
ZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dl
YlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0
aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmli
dXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBX
VEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJl
cXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklE
LCB1c2VyRGF0YSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCBhN2ZiNjZh
NmRhYTczN2M5MDYwOTA3YzA4OTZmMGNiYzk0ZWIzODBlLi42YWJjYTk4ZjJmYTU4N2IyNWEwZjk3
NmViNWM0MDVkNzRiNDIwMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRm9ybURhdGFSZWZlcmVu
Y2U7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3Qg
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03MSw3ICs3
Miw3IEBAIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgUHJv
dmlzaW9uYWxQYWdlUHJveHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqKTsKKyAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGJvb2wgc2hv
dWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsK
ICAgICB+UHJvdmlzaW9uYWxQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAg
dWludDY0X3QgbmF2aWdhdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uSUQ7IH0K
ICAgICBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNp
b25hbExvYWRVUkw7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1p
dDsgfQorCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVy
biBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IHRha2VEcmF3aW5nQXJlYSgpOwogCkBAIC0xMDEsOCArMTA0LDggQEAgcHVibGljOgog
I2VuZGlmCiAjZW5kaWYKIAotICAgIHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNz
aW9uSGlzdG9yeVZpc2liaWxpdHkpOwotICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0
aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkRGF0
YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VV
UkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6
U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2
aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQ
STo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJz
aXRlUG9saWNpZXM+JiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKQEAgLTEyNCw3ICsxMjcsOCBA
QCBwcml2YXRlOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7
CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAg
ICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwKKyAgICAgICAgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lk
IGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE3MSw2
ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVl
c3Q7CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBtX3Byb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQ7CiAgICAgYm9vbCBtX3dhc0NvbW1pdHRlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgeyBmYWxzZSB9OwogICAgIFVS
TCBtX3Byb3Zpc2lvbmFsTG9hZFVSTDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjE5MDkyMjUwOWM3ZGFiNGJjMWQy
ZGUyM2Q0M2ZkY2I0ZTgyMjBlYy4uMmUyYjY5NTQ3Y2VlZGJmMjk3N2FjNDU1MDk5MjRiNjE5NTg4
MTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzkw
LDcgKzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGF1dG8gdHJhbnNhY3Rp
b24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIAogICAgIGF1dG8gdXJsID0gcmVx
dWVzdC51cmwoKTsKLSAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKQorICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObykKICAgICAgICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIHVybC5zdHJpbmcoKSB9KTsKIAogICAgIExvYWRQYXJhbWV0ZXJz
IGxvYWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXMKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJE
YXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsK
LSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7
CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2ll
cyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlz
dG9yeSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2Nr
QmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CkBAIC0x
NTI1LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgbG9hZFBhcmFtZXRl
cnMuTUlNRVR5cGUgPSBNSU1FVHlwZTsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUg
PSBlbmNvZGluZzsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsK
LSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7
CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKQEAgLTE1NzgsNyArMTU3OCw3IEBAIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3Qo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0g
c2ltdWxhdGVkUmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdzsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vOwogICAgIGxvYWRQYXJh
bWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3
YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwpAQCAt
MzUxOCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAgIGlm
IChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygp
KQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAgICAg
ICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNw
ZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIpKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3Zl
KHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0
cikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlv
bi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+
dGFyZ2V0SXRlbSgpOwogICAgICAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rp
b246OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1LDcgKzM2MDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlu
Zm9EYXRhJgogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CiAgICAg
YXV0byogbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNp
b25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsKLSAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1Bh
Z2UgPSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlv
biwgbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExh
eWVyRmx1c2gpIDogZmFsc2U7CisgICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2
aWdhdGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0
ZXJDb21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1h
aW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZs
dXNoKSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJz
aXRlRGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNp
dGVEYXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6
IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogCiAgICAgLy8gVGhl
cmUgaXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUgdG8gcmV0dXJuIHRvIHRoZSBwYWdlIGluIHRoZSBw
cmV2aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpAQCAtMzYyMCwxMSArMzYyMCwxMiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBGcmFtZUluZm9EYXRhJgogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkQ29tbWl0UHJv
dmlzaW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5k
ZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6
V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9s
aWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xP
RyhMb2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNzUElE
PSVpLCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywgIkNvbnRpbnVpbmcgbmF2aWdh
dGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdhdGlvbi5u
YXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkpOworICAgIEFTU0VSVChzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byk7CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgV0VCUEFHRVBST1hZ
X1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzczogVGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcHJvdmlzaW9uYWwgbG9hZCwgY2FuY2Vs
bGluZyBpdCAocHJvdmlzb25hbE5hdmlnYXRpb25JRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSki
LCBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlv
bklEKCkpOwpAQCAtMzYzMyw5ICszNjM0LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAg
ICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zp
c2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZN
b3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0
aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHdlYnNp
dGVQb2xpY2llcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRp
b24pLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyldKCkgbXV0YWJs
ZSB7CisgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCk7
CisgICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0ID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb247CisgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtl
VW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwg
V1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXNTZXJ2
ZXJTaWRlUmVkaXJlY3QsIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKKyAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRp
b24pLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHdlYnNpdGVQb2xpY2llcyA9IFdURk1v
dmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGl0ZW0g
PSBuYXZpZ2F0aW9uLT50YXJnZXRJdGVtKCkpIHsKICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAi
V2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyB0byBiYWNrIGl0
ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTM2NTks
OSArMzY2MSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIC8vIEZJWE1FOiBX
b3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBkZWxlZ2F0
ZSwgZXRjCiAgICAgICAgIEFTU0VSVCghbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKS5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAoYXV0byYgc3Vic3RpdHV0ZURhdGEgPSBuYXZpZ2F0aW9uLT5z
dWJzdGl0dXRlRGF0YSgpKQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWREYXRh
KG5hdmlnYXRpb24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJzdGl0dXRl
RGF0YS0+Y29udGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBzdWJzdGl0
dXRlRGF0YS0+ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0dXRlRGF0
YS0+dXNlckRhdGEuZ2V0KCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5Vmlz
aWJpbGl0eSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEobmF2aWdh
dGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVEYXRhLT5j
b250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRh
LT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRhLT51c2Vy
RGF0YS5nZXQoKSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1dGVE
YXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1
ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBudWxscHRyLCBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOworICAg
ICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291
cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCks
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwogICAgIH07CiAgICAgaWYgKG1faW5zcGVj
dG9yQ29udHJvbGxlci0+c2hvdWxkUGF1c2VMb2FkaW5nKCptX3Byb3Zpc2lvbmFsUGFnZSkpCiAg
ICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0Q29udGludWVMb2FkaW5nQ2FsbGJhY2so
Km1fcHJvdmlzaW9uYWxQYWdlLCBXVEZNb3ZlKGNvbnRpbnVhdGlvbikpOwpAQCAtNTYxNCwxMyAr
NTYxNiwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAot
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwg
ZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
bGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9v
bCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwKKyAgICBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC01NjMxLDkgKzU2MzUsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBN
RVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXF1ZXN0LnVybCgpKTsKICAgICBNRVNTQUdFX0NI
RUNLX1VSTChwcm9jZXNzLCByZXNwb25zZS51cmwoKSk7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZp
Z2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOworICAgIGlmICghbmF2aWdhdGlvbikgewor
ICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0
TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5j
dXJyZW50SXRlbSgpKTsKKyAgICAgICAgbmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCk7CisgICAgfQogICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpOYXZp
Z2F0aW9uUmVzcG9uc2U6OmNyZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJh
bWVJbmZvKSwgdGhpcykuZ2V0KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUs
IGRvd25sb2FkQXR0cmlidXRlKTsKIAotICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1l
LT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZp
Z2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJl
ZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgbmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUo
bmF2aWdhdGlvbiksCiAgICAgICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2Fm
ZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSBt
dXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNp
ZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVy
VXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8p
OwpAQCAtNTY0Miw5ICs1NjUwLDI4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAg
IGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBb
d2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNz
KV0gKGNvbnN0IGF1dG8mIHBvbGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBwcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwg
bGlzdGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJv
eEV4dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAgICAgICB9KTsKKworICAgICAg
ICBhdXRvIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzOjpObzsKKyAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246
OlVzZSAmJiBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CisgICAgICAgICAgICBS
ZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVz
cG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBp
biBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5k
IGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNv
dW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigp
ICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3Bv
bnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhM
b2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBpbmcg
ZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAgICAgICAgICAgcG9s
aWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAgICAgICAgICAgICAgYXV0byBw
cm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9y
UmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0aGlzLCByZXNwb25zZURvbWFp
bik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZp
Z2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVz
QWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICB3
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vz
czo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAgICAgICByZWNl
aXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0
ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAg
ICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwg
bnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsg
fSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAgfSwgU2hvdWxkRXhwZWN0U2Fm
ZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91bmREb21haW5SZXN1bHQ6Ok5v
KSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUpIHsKKyAgICAgICAgbGlz
dGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKG1fcG9saWN5
Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
KnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgV1RGTW92
ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDNiZGNkZmRlMTU3MmEwNWUyNDQyNjk3NjYyNDMzZmYyZTk2ODA0YTUuLmJi
MzFjYTZmOTdjYWI2NWY3YzBiZThjMWFjYWRjMWJkZWVjOWRmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjksNyArMjY5LDcgQEAgZW51bSBjbGFzcyBOb3Rp
ZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xp
Y3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90Owog
ZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGlyZWN0aW9uIDogdWludDhfdDsK
IAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0MSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5m
bywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBV
c2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwog
ICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBl
bmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4m
JiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3Rp
dHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVz
dFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9u
YWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA1OSw3ICsyMDU5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wg
Y2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1
bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5T
YWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkmKTsKIApAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVw
b3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0pOwog
Ci0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
Jiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6V2Vic2l0
ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhB
UEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmLCBS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xp
Y2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJpYnV0ZXMoYm9vbCk7CiAgICAg
dm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3RhdGVDaGFuZ2UoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBh
MGI3Mzk1MzZiNjAzZjQ4YjY5OTliMjc0YjE0ZTYyNjJkMzEyODEzLi4yY2UzZjFkNDk2MTQyMTAz
ZGZjYTZhYmFlNTA0OGUyMGY2OTBkODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRy
aWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisg
ICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwg
dWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVl
c3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0OjpQb2xpY3lEZWNpc2lvbiBQ
b2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0
cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGY0
MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYuLmE0MGU2OWRmYTUyMmRlZGVi
YWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc01h
dGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbiA/ICptX3JlZ2lzdHJh
YmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9t
YWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfSk7IH0KKyAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYgb3B0aW9uYWxSZWdp
c3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW47IH0KICAg
ICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAgYm9vbCBpc0luUHJvY2Vzc0Nh
Y2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hlOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDQwYmU2MWMyMGZjYjhkM2FmNzEwM2ZhY2MzNzNhMjBj
OTE2NjMzMDkuLjRiY2FiZjQ4ZDMyNjc2NDZjZDFiMzU3MzE0N2I5Mzc1NzFkYjZjZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCiAgICAgd2ViUGFnZS0+c2hvdygpOwog
fQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsK
ICAgICBhdXRvKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkg
ewpAQCAtODM1LDcgKzgzNSw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAKICAgICAvLyBO
b3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBv
bGljeSA9IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2Uod2ViUGFnZSwgbV9mcmFtZS5wdHIoKSwgcmVzcG9uc2UsIHJlcXVlc3QsIHVz
ZXJEYXRhKTsKLSAgICBpZiAocG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSkg
eworICAgIC8vIElmIGEgYnJvd3NpbmcgY29udGV4dCBzd2l0Y2ggaXMgcmVxdWVzdGVkLCB3ZSBz
dGlsbCBuZWVkIHRvIHNlbmQgdGhlIElQQyB0byB0aGUgVUlQcm9jZXNzIGluIG9yZGVyIHRvIHBy
b2Nlc3Mtc3dhcCBpZiBuZWNlc3NhcnksIGV2ZW4gdGhvdWdoIHRoZQorICAgIC8vIGluamVjdGVk
IGJ1bmRsZSBoYXMgYWxyZWFkeSBoYW5kbGVkIHRoZSBwb2xpY3kgZGVjaXNpb24uCisgICAgaWYg
KHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UgJiYgIW5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gpIHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFT
RV9MT0coTmV0d29yaywgImRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGNvbnRpbnVp
bmcgYmVjYXVzZSBpbmplY3RlZCBidW5kbGUgc2F5cyBzbyIpOwogICAgICAgICBmdW5jdGlvbihQ
b2xpY3lBY3Rpb246OlVzZSwgaWRlbnRpZmllcik7CiAgICAgICAgIHJldHVybjsKQEAgLTg0Nyw5
ICs4NDksMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKICAgICBhdXRvKiBwb2xpY3lEb2N1
bWVudExvYWRlciA9IGNvcmVGcmFtZSA/IGNvcmVGcmFtZS0+bG9hZGVyKCkucHJvdmlzaW9uYWxE
b2N1bWVudExvYWRlcigpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25JRCA9IHBvbGlj
eURvY3VtZW50TG9hZGVyID8gc3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXImPigqcG9saWN5
RG9jdW1lbnRMb2FkZXIpLm5hdmlnYXRpb25JRCgpIDogMDsKIAorICAgIGJvb2wgd2FzQWxsb3dl
ZEJ5SW5qZWN0ZWRCdW5kbGUgPSBwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNl
OwogICAgIGF1dG8gcHJvdGVjdG9yID0gbV9mcmFtZS5jb3B5UmVmKCk7CiAgICAgdWludDY0X3Qg
bGlzdGVuZXJJRCA9IG1fZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXIoaWRlbnRpZmllciwgV1RG
TW92ZShmdW5jdGlvbiksIFdlYkZyYW1lOjpGb3JOYXZpZ2F0aW9uQWN0aW9uOjpObyk7Ci0gICAg
aWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93UmVzcG9uc2UsIGRvd25s
b2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKSkgewor
ICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNlLCBk
b3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgp
KSkpKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0VfTE9HKE5ldHdvcmss
ICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBpZ25vcmluZyBiZWNhdXNlIFdlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgZmFpbGVkIik7CiAgICAgICAgIG1fZnJh
bWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lEZWNpc2lvbiB7
IGlkZW50aWZpZXIsIHN0ZDo6bnVsbG9wdCwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwg
eyB9IH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYWEzYTg2MDE3
NTcyNjU0MTM4NTJhNGI5ZTg5NTY0YmI0ZDFhM2YzYi4uOTY2NmQ2N2Y4NjIwOGQ5YjZjNjRmNDEx
ZGJkNjNiZjAxNTkwYTcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEyOSw3
ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBh
Z2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1lT3Bl
bmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogICAgIAot
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29y
ZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xp
Y3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA0ZTRiYmNmYmJjZGFlZWEwYjEyNWY3YjBkOGU2M2YwZGZlODIzYWY3Li5h
ODkxNjJkZjAzMmUxYzhhMzM4Y2YwNTI3MzU1MmQzZDMxOTg3ZTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTcyMyw3ICsxNzIzLDcgQEAg
Tk9fUkVUVVJOIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3RXYWl0aW5nRm9yUHJvY2Vzc0xhdW5j
aChMb2FkUGFyYW1ldGVycyYmLCBVUkwKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJl
ZEJ1ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJl
c3BvbnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxp
dHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1w
bCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFJlZjxTaGFyZWRCdWZmZXI+JiYgc2hhcmVkQnVmZmVyLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIGNv
bnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbiwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9u
SGlzdG9yeVZpc2liaWxpdHksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAg
ICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihpc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCAmbV9tYWluRnJhbWUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDc4ZDgzMGRhNDJkOTU2N2NkZjk1Y2ZhMWZlMzI3MzMwMmZm
M2IyMWMuLjhlMzRkNmQ3MWVkNGMwMjk5ZTA1Yzc2NWMwN2E0YTAzYmQ5ZGNlMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyNCw3ICsyMjQsNyBA
QCBlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOwogZW51bSBjbGFz
cyBIaWdobGlnaHRSZXF1ZXN0T3JpZ2luYXRlZEluQXBwIDogYm9vbDsKIGVudW0gY2xhc3MgSGln
aGxpZ2h0VmlzaWJpbGl0eSA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6
IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7
CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVudW0gY2xhc3MgV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTcyLDcgKzE1NzIsNyBAQCBwcml2YXRl
OgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1lKik7CiAKLSAgICB2b2lkIGxv
YWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgVXNlckRh
dGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgV2ViQ29yZTo6
U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpT
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGY4N2I0NTlmODZmNzBlNjA1OTI0NjNi
ZDllNTkxNzc3ZjlmMDIyMDAuLmYxYjVhODJkNGY5ODY1YWU2ZTBhODJmZDU3MmYyM2Q5NzkzYTRl
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGlu
Z0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
CiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxH
cmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xp
Y2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAog
ICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxNTJm
ZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4wNTE2MjcwMDlhNjZlMTI0YWE5
NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0
ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1l
T3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0g
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBX
ZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNl
bFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGJm
ZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQuLjBjZmJlZWUwNDQ3ZDJlMjg1
NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93
KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdTaG93OndlYlZp
ZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmll
dyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFkMGEuLmM1YWZhMTMzN2RiNGUy
ZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0
aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2NWFlOTQyYzI5Yjg5NmQ4Li42
MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0
TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsK
IAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRl
KiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWIyNDA4MzUzNjZlMjgxNGNiY2Yw
ZWI1MGIzMjU2OGYzYTNiMWUyMy4uYmI1ZjE3YmQ4YjBjNGQ0ZWY1NjVhYjMwMmJjNTIzZWRkMjgz
ZjQ3NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24g
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIHRvIHZhbGlkYXRlIHRoYXQgd2UgYXJlIGlu
ZGVlZCBwcm9jZXNzLXN3YXBwaW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bUFNPTlNj
aGVtZSBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp0b0RhdGE6d2l0aENPT1BWYWx1ZTpdKToKKyAg
ICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAy
MS0wOC0xOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW0ZsYXRwYWsgU0RLXSBJbmNyZWFzZSB0aGUgc3RhcnR1cCBwZXJmb3JtYW5jZSBvZiB3ZWJr
aXQtZmxhdHBhawpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggZjliOGRhZjY5
ZjQ0NzQyNzk1ZmQ4ZjkxNmM2ZjZmODViNDBlNDg2MS4uNmVmNTUyMjQxM2E1ZWI5MDUxMDA2NTI0
NDMxMWQ4NDYwOGQ1NTQ3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0y
NTAsMTIgKzI1MCwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPiB7CiAgICAgY29uc3QgY2hhciogX2J5dGVzOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxO
U0RhdGE+PiBfZGF0YU1hcHBpbmdzOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29w
VmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7
CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVj
dEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihO
U1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOwor
LSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9E
YXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1
ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUKQEAgLTI3Nyw2ICsyNzksMTMg
QEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcg
dG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3RyaW5n
LCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxlbihk
YXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAorLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0
cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhD
T09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQoreworICAgIFtzZWxmIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07CisgICAgaWYgKGNvb3BWYWx1ZSkK
KyAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29vcFZhbHVlKTsKK30KKwogLSAo
dm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKIHsKICAgICBf
c2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5ID0gdmFsdWU7CkBAIC0zMTEsOCArMzIwLDE1IEBA
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6
KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIFsoaWQ8V0tVUkxTY2hlbWVUYXNrUHJp
dmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkg
bmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAgICB9CiAKLSAgICBkb0FzeW5jaHJvbm91c2x5
SWZOZWNlc3NhcnkoW2ZpbmFsVVJMID0gcmV0YWluUHRyKGZpbmFsVVJMKV0oaWQgPFdLVVJMU2No
ZW1lVGFzaz4gdGFzaykgewotICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwu
Z2V0KCkgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRF
bmNvZGluZ05hbWU6bmlsXSk7CisgICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtzZWxm
LCBmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRh
c2spIHsKKyAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtO
U011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAgICAgICBbaGVhZGVyRGljdGlvbmFy
eSBzZXRPYmplY3Q6QCJ0ZXh0L2h0bWwiIGZvcktleTpAIkNvbnRlbnQtVHlwZSJdOworICAgICAg
ICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCIxIiBmb3JLZXk6QCJDb250ZW50LUxlbmd0
aCJdOworICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwg
YWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1
ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJdOworCisgICAgICAgIGF1dG8g
cmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBWZXJzaW9uOkAiSFRUUC8xLjEiIGhl
YWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVS
ZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAgICAgfSwgMC4xKTsKIApAQCAtNDA5LDggKzQyNSw2
IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7
CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0
aWMgY29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzID0gUiJQ
U09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpAQCAt
NDg4LDYgKzUwMiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIDwvc2NyaXB0Pgog
KVBTT05SRVNPVVJDRSI7CiAKKyNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMgY29uc3QgY2hhciog
bGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewpAQCAtNDk3LDgg
KzUxMiw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2
ZW50KSB7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBs
ZS5jb20vbWFpbi5odG1sIj5OYXZpZ2F0ZTwvYT4KIClQU09OUkVTT1VSQ0UiOwotCi0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQorI2VuZGlmCiAKIHN0YXRpYyBSZXRhaW5QdHI8X1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uPiBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCkKIHsKQEAgLTEx
OTcsOCArMTIxMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXNz
aW9uUmVzdG9yZSkKICAgICBFWFBFQ1RfTkUocGlkMywgcGlkNCk7CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikK
IHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24oKTsKQEAgLTEyMDYsNiArMTIxOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93
T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04i
XTsKQEAgLTEyNDUsNiArMTI1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0
U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRv
d09wZW5Dcm9zc09yaWdpbkJ1dFNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI4NSw2ICsxMjk5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
Q3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndp
bmRvd09wZW5Dcm9zc1NpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
IlBTT04iXTsKQEAgLTEzMjQsNiArMTMzOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRl
V2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05T
Y2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6d2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0
Qnl0ZXNdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpo
YW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKIApAQCAtMTM2Miw2ICsxMzc4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaXRoT3BlbmVyKQogCiAg
ICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZVdpdGhFeHBsaWNpdE9wZW5l
clRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDAxLDYgKzE0MTgs
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldEltcGxpY2l0Tm9PcGVu
ZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
c2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEltcGxp
Y2l0Tm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQ0
MCw2ICsxNDU4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXROb09w
ZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVOb09wZW5l
clRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDc5LDYgKzE0OTgs
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAg
ICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107
CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNTExLDggKzE1MzEsNiBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAgICAgRVhQRUNUX0VRKHBp
ZDEsIHBpZDIpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NT
d2FwLCBTZXJ2ZXJSZWRpcmVjdEZyb21OZXdXZWJWaWV3KQogewogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTA5
NCw4ICs1MTEyLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZGluZ1N0YXRlQWZ0ZXJQb2xpY3lE
ZWNpc2lvbikKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjpsb2FkT2JzZXJ2ZXIuZ2V0KCkg
Zm9yS2V5UGF0aDpAIlVSTCIgY29udGV4dDp3ZWJWaWV3LmdldCgpXTsKIH0KIAotI2lmIFBMQVRG
T1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHNhdmVPcGVuZXJUZXN0Qnl0ZXMgPSBSIlBT
T05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC01
MTA3LDYgKzUxMjMsOCBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiBURVNUKFByb2Nl
c3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVu
ZXIpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVT
OworCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRd
KTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRl
c3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTE4MCw2ICs1
MTk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFBy
b2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVy
QVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVlKQogewogICAgIGF1dG8gd2ViVmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBh
ZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0
YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6c2F2
ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MjM1LDggKzUyNTQsNiBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZWUpCiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBlbnVtIGNs
YXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CiBzdGF0aWMgdm9pZCBydW5Qcm9jZXNzU3dhcER1
ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5TVVJMKiByZWxhdGVkVmlld1VSTCwgTlNVUkwqIHRhcmdl
dFVSTCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewpAQCAtNzE1MSwzICs3MTY4LDIzNCBAQCBU
RVNUKFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVuRW50ZXJpbmdDYWNoZSkKICAgICAvLyBDbGVh
ciB0aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0aGUgcHJvY2Vzc2VzIGFyZSBiZWluZyBjaGVj
a2VkIGZvciByZXNwb25zaXZlbmVzcy4KICAgICBbcHJvY2Vzc1Bvb2wgX2NsZWFyV2ViUHJvY2Vz
c0NhY2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc09yaWdpbkNP
T1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LmFwcGxlLmNvbS9w
b3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworc3Rh
dGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNP
TlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3
ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAiZm9vIik7Cit9Cis8L3NjcmlwdD4KKylQU09O
UkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07
CitlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0
YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBE
b1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5ID0gWUVTOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
ZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAg
ICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVd
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGhhbmRs
ZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIGlmIChpc1NhbWVP
cmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6
d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09P
UF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJdOworICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1
ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVy
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0
bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9
IGVsc2UgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5D
T09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1Nl
cnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAg
ICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxl
LmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVw
LWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3Qu
aHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENP
T1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0KKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04i
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3
Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRv
cHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIC8vIFdo
ZW4gdGhlIHByb3Zpc2lvbmFsIGxvYWQgc3RhcnRzIGluIHRoZSBwcm92aXNpb25hbCBwcm9jZXNz
LCBraWxsIHRoZSBXZWJWaWV3J3MgcHJvY2Vzc2VzLgorICAgIF9fYmxvY2sgdW5zaWduZWQgbnVt
YmVyT2ZQcm92aXNpb25hbExvYWRzID0gMDsKKyAgICBuYXZpZ2F0aW9uRGVsZWdhdGUtPmRpZFN0
YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFuZGxlciA9IF57CisgICAgICAgICsrbnVtYmVyT2ZQ
cm92aXNpb25hbExvYWRzOworICAgIH07CisKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBh
ZG9wdE5TKFtbUFNPTlVJRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmF2aWdhdGlvbkRlbGVnYXRl
Om5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6
dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CisgICAg
bnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3JlYXRl
V2ViVmlldyk7CisgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9
PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgIEVYUEVDVF9FUSgzLCBudW1i
ZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc2VydmVyUmVkaXJl
Y3RlZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDIsIG51bWJlck9mRGVjaWRl
UG9saWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfRkFMU0Uoc2VydmVyUmVkaXJlY3RlZCk7Cisg
ICAgfQorICAgIEVYUEVDVF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzKTsgLy8gT25l
IGluIGVhY2ggdmlldy4KKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKKyAgICBhdXRvIHBpZDIgPSBbY3Jl
YXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfVFJVRSghIXBp
ZDIpOworCisgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICBF
WFBFQ1RfTkUocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfRVEocGlkMSwg
cGlkMik7CisKKyAgICBib29sIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncuY2xvc2VkID8gJ3RydWUnIDogJ2ZhbHNlJyIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBOU1N0cmluZyAqaXNDbG9zZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlm
IChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19T
VFJFUShAInRydWUiLCBpc0Nsb3NlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAImZhbHNlIiwgaXNDbG9zZWQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUiIGNvbXBsZXRpb25IYW5k
bGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcg
KndpbmRvd05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2Fw
ID09IEV4cGVjdFN3YXA6Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsKKyAg
ICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICAvLyBPcGVu
ZWUgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCisgICAgZmluaXNoZWRSdW5u
aW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAIndpbmRvdy5vcGVuZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9uSGFuZGxlcjog
WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNP
cGVuZXIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4
cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaGFz
T3BlbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1
ZSIsIGhhc09wZW5lcik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6
IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2lu
ZG93TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0g
RXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93
TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIs
IHdpbmRvd05hbWUpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0
KTsKKworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCIgY29tcGxl
dGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBO
U1N0cmluZyAqaW5uZXJUZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJwb3B1cCIsIGlubmVyVGV4dCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1Nj
cmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgY3JlYXRlZFdlYlZpZXcgPSBudWxscHRyOworfQor
CitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
Cit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwg
InNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpO
bywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1Nh
bWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFs
bG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNz
U3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luV2l0aFJlZGlyZWN0KQoreworICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUg
cmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVj
dCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmln
aW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRv
Q09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1u
b25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVP
cmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRy
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
MGNhZDAxNjZiNjNiN2FjNDUxZTEwNmVlZTk5ODAyZDNiOGRlNmVhLi41YWZmZjg1ZjUxN2VjYzk0
OWFlNDFiMmYxNGUwMjIyYjJiNjk0NjVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDgt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBs
ZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTa2lwIENPT1AgdGVzdHMg
b24gV0sxIGFzIHdlIG9ubHkgaGF2ZSBhIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdLMi4K
KworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wOC0xOCAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgcG9zaXRpb246IHN0aWNr
eSB3aXRoIGRpc3BsYXk6IGlubGluZS1ibG9jawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggNDk2ZGQzODA4MjI0YWYxYjM4MDMyNmJlZTNmNzg0YzExMjk0NTA2Zi4uOGQ4ZTc2MDUx
MmM0ZTYwMTc1NGY4MjA2ZGExNzgxYWE2OGUyMzA5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBi
YXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNaW5vciB0ZXN0IHJlYmFzZWxpbmUgZHVlIHRvIGxvZ2dpbmcgY2hh
bmdlcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDgtMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBEb2N1bWVudCBsb2FkIGV2ZW50cyBzaG91bGQgdXBkYXRlIHRpbWluZyBpbiBQZXJmb3Jt
YW5jZU5hdmlnYXRpb25UaW1pbmcgZXZlbiBhZnRlciBpdHMgaW5zdGFudGlhdGlvbgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYzYWM0N2UyYjk1ZmY0NzU0MTQ2Njc2Li4wMzIzYTUx
ZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2OGIzZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsy
LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAu
MTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2EKIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJ
IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxv
YWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVz
cG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEy
Ny4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJl
c291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCi1D
T05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIFBB
U1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiB3aW5kb3cub3BlbigpCiBQQVNTIENPT1ArQ09F
UCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMTQyYWJiZDE2NjYxYTAyNTg0ODk1NjQ4MTNjMTQwODJiMzQ4
YWRhNS4uZjk1NWIxYWEzNDJlMGE2ZTgyMTk1ZDA1ZDRmMzQzODU4ZWIwYWYzNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUzLDggKzM1
Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1w
b2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cu
aHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3LWZyb20t
Y29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1zdy5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1p
bmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250ZXh0LmFueS5zZXJ2aWNld29y
a2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDExIEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50
ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdv
cmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGh0
dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5odHRwcy5o
dG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEu
CisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVy
LVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1
cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAg
XQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQogCiAjIFF1b3RhIGNo
ZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggZmEyNWFjMTg3MzM1ZWQxYWZhZGE3MDhhMzQyNThiYjUxZmE3MzBlOS4uMTRjNjBj
MjZjY2ZhNTc5YzVlYzhiODVlYTE3YzVlNTdjYjljNTc1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCArMzcxNSw2IEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGljaWVzL3JlZmVycmVyLW9yaWdpbi13
aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9w
b2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Utd29ya2VyLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
ZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNv
b3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29w
LWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9j
ZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3Jt
YWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgU2tp
cCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91dC13b3JrbGV0LXNlcnZp
Y2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXIt
aW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1i
ZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBD
cm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwv
Y3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsg
U2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRlcmluZyBmb3IgV0sxCiBodHRwL3dwdC9sb2FkaW5n
L3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435785</attachid>
            <date>2021-08-18 10:57:46 -0700</date>
            <delta_ts>2021-08-19 12:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210818105746.patch</filename>
            <type>text/plain</type>
            <size>110496</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1NjUyOTU2ZWVlOTAy
OWU4ZTg4MjU4MmJjMjA2ZjExYzQyYTRkNC4uNzU2MDM0ODM0Njg0ZDg2MWY1YTI2ZDI1Y2FkOGQz
YjRmYjQ0ZGQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVjZW50bHkgYWRkZWQgc3VwcG9y
dCBmb3IgdGhlIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IChDT09QKSBIVFRQIGhlYWRlci4g
SG93ZXZlciwKKyAgICAgICAgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcgY29udGV4dCBncm91cCBv
biBIVFRQIHJlc3BvbnNlLCB3ZSB3b3VsZCBrZWVwIHVzaW5nIHRoZSBzYW1lCisgICAgICAgIFdl
YlByb2Nlc3MuIFRoaXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9j
ZXNzIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0
d29yayByZXNwb25zZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5h
YmxlIFdlYiBBUElzCisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAg
ICAgRm9yIHByb2Nlc3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMg
YXMgcHJvY2Vzcy1zd2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZm
ZXJlbmNlcyBhcmUgdGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBk
ZWNpc2lvbiBpbnN0ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0g
V2UgdXNlZCB0byBoYXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVt
LiBJdCBpcyBub3cgdHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRo
aXMgbmV3IHN0YXRlCisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGlj
eSBkZWxlZ2F0ZSBjYWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAg
ICAgICAgIHNlbmRpbmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0
ZXIgcHJvY2VzLXN3YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24g
bmF2aWdhdGlvbiByZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBv
ZiB0cnlpbmcKKyAgICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LiBQZXIgdGhlIHNwZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQK
KyAgICAgICAgICBncm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5l
ZWRzIHRvIGJlIGRpc2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAg
IE9uZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRo
ZSBIVFRQIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nl
c3Mtc3dhcC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRz
IGNhbmNlbGxlZCB1cG9uIHJlY2VpdmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBh
bmQgZGVjaWRpbmcgdG8gcHJvY2Vzcy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNz
dWVkIGJ5IHRoZSBuZXcKKyAgICAgICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxs
IGFkZHJlc3MgdGhpcyBpbiBhIGZvbGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAor
ICAgICAgICBjb21wbGV4aXR5LiBXZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBp
biB0aGUgbmV0d29yayBwcm9jZXNzIGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRv
IHRoZSBuZXcgb25lIGluIGNhc2Ugb2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgIENvdmVyZWQg
YnkgZXhpc3RpbmcgQ09PUC9DT0VQIGxheW91dCB0ZXN0cyB0aGF0IGFyZSBzdGlsbCBwYXNzaW5n
IGFuZCBuZXcgQVBJIHRlc3RzCisgICAgICAgIHRoYXQgdmFsaWRhdGUgdGhhdCB3ZSBhcmUgaW5k
ZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRvQ3Jvc3NPcmlnaW5PcGVu
ZXJIYW5kbGluZ09mUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1h
eWJlTG9hZEVtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpjbGVhck1h
aW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQ
b2xpY3lDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0
SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRS
ZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0OjpzZXRTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dDo6c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29u
dGVudFBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxv
YWRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmg6CisgICAgICAg
ICogbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorCiAyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ3Jhc2ggdW5kZXIgSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrOjpoYW5k
bGVFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI2ZjJlMDY1MjE5YzViNWU2Nzc5MWZkMjA2MmYzYjUwODQz
ZjE4NTIuLjZjNmVkOTBmYTc4ZmY3MzUzMzZhMzRlY2Y5ZTZjNDg5N2Y4OTBjNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBv
biBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAorICAgICAgICB3aGVu
IHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdv
dWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3MuIFRoaXMgcGF0Y2gg
bWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4gc3dpdGNoaW5nIGJy
b3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNwb25zZSBhcyB0aGlz
IHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBBUElzCisgICAgICAg
IHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHByb2Nlc3Mtc3dhcHBp
bmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vzcy1zd2FwIG9uIG5h
dmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBhcmUgdGhhdDoKKyAg
ICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBpbnN0ZWFkIG9mIG5h
dmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0byBoYXZlIGEgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBub3cgdHJpLXN0YXRl
OiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgWWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0YXRlCisgICAgICAg
ICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0ZSBjYWxscyBhZnRl
ciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNlbmRpbmcgZHVwbGlj
YXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2VzLXN3YXBwaW5nLgor
ICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlvbiByZXNwb25zZSwg
d2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcKKyAgICAgICAgICB0
byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhlIHNwZWNpZmljYXRp
b24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgICBncm91cCBzd2l0
Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJlIGRpc2NhcmRlZCAo
d2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBvcnRhbnQgdGhpbmcg
dG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJlcXVlc3QgdG8gdGhl
IHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4gVGhpcyBpcyBiZWNh
dXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxlZCB1cG9uIHJlY2Vp
dmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRpbmcgdG8gcHJvY2Vz
cy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRoZSBuZXcKKyAgICAg
ICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3MgdGhpcyBpbiBhIGZv
bGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBjb21wbGV4aXR5LiBX
ZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0d29yayBwcm9jZXNz
IGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcgb25lIGluIGNhc2Ug
b2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAo
V2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0
ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmln
YXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0
ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29t
bWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4gY29uc3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbXBsKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4LTE4ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKGlP
UyAxNSk6IERvdWJsZURvd24gQ2FzaW5vIGFwcCB3b24ndCBsb2FkIHBhc3QgbGF1bmNoIHBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiNTg2N2FmNzc2ZmM1MzAyYjViYTc1OGQz
MTQ0MjVmMGY5NDBhZThlLi5hMDQyOGZiNTg5ZWNhYjI1M2U5MzdiYmI0Yzk5YmFhNjcwOTYxMGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgt
MTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBs
ZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMTYgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICAibWFrZSBhbmFseXplIiBzaG91bGQgcnVu
IGNsYW5nIHN0YXRpYyBhbmFseXplciBpbiBkZWVwIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZwppbmRleCAxZGI3NTBlOWVlN2Y0OWMzNDg1ODNjMWM2Nzg0YTA5ZjM1ODBmZWU1Li44YmFh
ZjE4MmEzYWNhNWZiM2VjYjUxOTljZTFkNjFhN2NkNTBlYzEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMTggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGlu
ZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorCiAyMDIxLTA4LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgc3VwcG9ydCBmb3IgQmxv
YiBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjRiMTZiNDI4MDkyNmNmOWUwMzI4MDUwM2M3YmUwLi40NDMxNmVkYjVhN2Y0MDE0ZWVi
MmJiOGZhZjVhNzkxOGIyMmU4OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTc4MywxNSArNzgzLDEyIEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2luZy10
aGUtd2ViLmh0bWwjcHJvY2Vzcy1hLW5hdmlnYXRlLWZldGNoIChTdGVwIDEyLjUuNi4yKQogICAg
IC8vIElmIHNhbmRib3hGbGFncyBpcyBub3QgZW1wdHkgYW5kIHJlc3BvbnNlQ09PUCdzIHZhbHVl
IGlzIG5vdCAidW5zYWZlLW5vbmUiLCB0aGVuIHNldCByZXNwb25zZSB0byBhbiBhcHByb3ByaWF0
ZSBuZXR3b3JrIGVycm9yIGFuZCBicmVhay4KLSAgICBpZiAocmVzcG9uc2VDT09QLnZhbHVlICE9
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Y3JlYXRpb25TYW5kYm94RmxhZ3MoKSAhPSBTYW5kYm94Tm9uZSkgeworICAgIGlm
IChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSAmJiBmcmFtZUxvYWRlcigpLT5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKSAhPSBTYW5k
Ym94Tm9uZSkgewogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCkt
PmNhbmNlbGxlZEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID0gZW5mb3JjZVJlc3BvbnNl
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kocmVzcG9uc2UudXJsKCksIHJlc3BvbnNlT3JpZ2luLCBy
ZXNwb25zZUNPT1ApOwotICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPnN3
aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTk5OCw5ICs5OTUsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3Bv
bnNlKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3
b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJl
IGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUg
ZGV0YWlscy4KICNpZiAhVVNFKENGKQpAQCAtMTA0MiwxMSArMTAzNiwxOSBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aQogICAgIH0KICNlbmRpZgogCisgICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3Bl
bmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeworICAgICAg
ICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNv
dXJjZUxvYWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVz
b3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNw
b25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNo
ZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50
UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNv
dXJjZUxvYWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVz
cG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQt
Pm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNl
TG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJ
ZGVudGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7
CkBAIC0yMDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1w
dHkoKQogICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwi
IDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUo
bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAg
ICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBl
LCAwLCAiVVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgp
LmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigp
LT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAg
ICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwog
CisgICAgICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1
c2UgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlz
IHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBw
b2xpY3kgZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRl
eHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAg
ICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5n
Q29udGV4dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6
Y2xlYXJNYWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxw
dHI7CisgICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFs
c2U7CiAKICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1
ZDc2NDg3NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZi
M2UwMmNlYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1
LDYgKzQyNSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3Nz
T3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2Vt
ZW50UmVzdWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9w
ZW5lclBvbGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBp
c0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4g
bV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51
aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRl
clJlc3BvbnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGlj
eUNoZWNrOyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRl
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01
NjEsNiArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
TG9hZGluZ011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVp
bmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1F
OiBEb2N1bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93
YXNPbmxvYWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3Vs
ZCBiZSBtZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhk
Y2E3NWI5NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2
NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZm
ZTViMDM2ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5
ODg0ZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3Jl
YXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0
cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25N
b2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7
CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2
ZDAzZGYyNDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRD
aGVja05ld1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVj
a05ld1dpbmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQ
b2xpY3k7IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wg
dmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJv
b2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEo
KSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0
dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0g
ZGF0YTsgfQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2lu
ZG93UG9saWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHsgZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07
CiAgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAg
IExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVm
ZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAppbmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4xYmI5
NzY3YzI4N2NjZjhkMTMwMTkzNDdiYjNhNDMxOGIyZjYyYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpz
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBv
bGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyAr
NDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTog
VmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxv
YWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRB
dHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5j
dGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQs
IGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5l
d0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8s
IHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEyMDUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpwcmVwYXJl
Rm9yTG9hZFN0YXJ0KCkKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRp
bmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0OiBTdGFydGluZyBmcmFtZSBsb2FkIik7CiAKICAgICBt
X3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jlc3NTdGFydGVkKCk7Ci0gICAgbV9jbGllbnQtPmRpc3Bh
dGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKKyAgICBib29sIGFscmVhZHlTZW50RGlkU3Rh
cnRQcm92aXNpb25hbExvYWQgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIgJiYgbV9wcm92
aXNpb25hbERvY3VtZW50TG9hZGVyLT5pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGlj
eUNoZWNrKCk7CisgICAgaWYgKCFhbHJlYWR5U2VudERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKQor
ICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOwogCiAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3MCwxMCArMTQ3MiwxMSBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAgIFJlZjxEb2N1bWVudExvYWRl
cj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0ZURhdGEoKSk7CiAgICAgbG9hZGVyLT5zZXRB
bGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9y
VXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUo
cmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKSk7CisgICAgbG9hZGVyLT5z
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKHJlcXVlc3Quc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24pOwogICAgIGFkZFNhbWVTaXRlSW5mb1RvUmVx
dWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgpKTsKICAgICBhcHBseVNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9hZGVyKG1fZnJhbWUsIGxvYWRlciwgcmVxdWVz
dCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSkgewor
ICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpICE9IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAgICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rv
cnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0LmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2Nr
QmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAgICAgICAgIGxvYWRlci0+c2V0SXNDbGllbnRS
ZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBT
ZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3Vy
cmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2Fk
Q29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKKyAgICBTZXRGb3JTY29wZTxMb2FkQ29u
dGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5n
U3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdX
aXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOwogICAgIGxv
YWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2OCw3ICszNzcxLDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgSGlzdG9y
eUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBJbml0aWF0ZWRC
eU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3Rh
dGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExv
YWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRD
b250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVp
bmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3Rv
cnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKICAgICBpZiAo
Q2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmdl
dChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAgICAgICAgYXV0byBkb2N1bWVudExvYWRlciA9
IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IDZmM2JkYmVmY2EzOWZiZmMyM2Y5ZDE0YzliMjcxMTIyNmRlMjRhMGIuLmU1NmMw
OGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIyYWY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBAIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogZW51
bSBjbGFzcyBDYWNoZVBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dy
ZXNzIDogYm9vbDsKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhf
dDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0g
Y2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
VXNlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNsYXNzIElzTWFpblJlc291cmNlIDogYm9vbCB7
IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgU2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUgOiBi
b29sIHsgTm8sIFllcyB9OwpAQCAtMjIwLDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIENvbnRlbnRQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uJiYpOworICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7
CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDNlYjVjZWU2NDI2YzQ0ZGMxNzQyMjIxNWZhYWIxNTY5
MzFkYjJkOWQuLjM5YmI0MDU0MDljNDE3NDc4NWE5MzcyMjgzMDAxODYzYzBhODc3NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xOTAsNyArMTkwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lz
aW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDZkNWRlODRmMjE3OTg4NjNiYThl
ZWRlOGI2NDZmZTk0OGE0NTg4MmIuLjEwMzdkZjk4ZWM0MTU1NGJmYjFkYjYyYjg5NjgyZDgzN2Zh
NjU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC0z
Nyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWlu
dDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJlY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaAppbmRleCA3NmUwOTM1
MDViY2JiZTY2ZDIyNDUyZDJmNWI3OTViM2Q1ZDg1M2E0Li5hYjEzNTNiY2MwODJlNDFiYTU4OWM5
YzI5YzIxMDg1M2EzOTk1Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBi
b29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
OiB1aW50OF90IHsgTm8sIFllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRl
clJlc3BvbnNlUG9saWN5RGVjaXNpb24gfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBA
IC0zOSw3ICszOSw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkPiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLAogICAgICAg
ICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLAotICAgICAgICBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcworICAgICAgICBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbgogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4
IDQ4N2M5YjJiNWVmNDk0NmM5Y2JlOTg5ZjNlNzc2MWYwOGU2MWQ4MGUuLjkyNTViZjMxM2M2N2Q3
MTQ4MTVjZjc4MTUyNjZmZmQ4MDViMjJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNzAsNyArMTcw
LDcgQEAgdXNpbmcgU2hhcmVkU3RyaW5nSGFzaCA9IHVpbnQzMl90OwogZW51bSBjbGFzcyBDYW5X
cmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRl
U2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3MgRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsg
UmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1l
dGVycy5oCmluZGV4IGYwOWQwYmM1ZTM4NzMxYWVhNzVkYzIzZjc5MDlmM2Y2ZDBlMjAwZDQuLjIy
ZmU3YzVlNDQ4ZGNlMjNjYjVlMzkwMzQ4ZTVkYmQ3MzNhNDM2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVQ
b2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKQEAgLTY2LDcgKzY3LDcgQEAgc3Ry
dWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07Ci0gICAgYm9vbCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAgVXNlckRhdGEgdXNlckRhdGE7
CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlz
dG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGM2NTRj
YjhjMTIyMWFmODExZjZiMGE3M2IzZTFkZjk0MzViMmI3NmQuLjY0OTlmMTE3MTdmNTZmZDY1OTkw
OTFhYjJmMTNkZTk2NmY1MGYyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAjZGVmaW5lIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKGNoYW5u
ZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIg
UFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIg
UFJJdTY0ICJdIFByb3Zpc2lvbmFsUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50
aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fbmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogI2RlZmlu
ZSBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBmbXQsIC4u
LikgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwgIiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2
NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJRD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2
NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBmbXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVy
KCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwgIyNfX1ZBX0FSR1NfXykKIAotUHJvdmlzaW9u
YWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFn
ZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2
ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCitQcm92aXNpb25hbFBhZ2VQcm94
eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1
c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRD
bG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCBBUEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0
ZVBvbGljaWVzKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5k
ZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQpAQCAtNjYsNiArNjYs
NyBAQCBQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVBy
b3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1BybwogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlz
U2VydmVyUmVkaXJlY3QpCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1fcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQorICAg
ICwgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KHNob3VsZENsb3NlUHJldmlv
dXNQYWdlQWZ0ZXJDb21taXQpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fcHJv
dmlzaW9uYWxMb2FkQWN0aXZpdHkobV9wcm9jZXNzLT50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0
aXZpdHkoIlByb3Zpc2lvbmFsIExvYWQiX3MpKQogI2VuZGlmCkBAIC0xNjIsMTYgKzE2MywxOCBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZShSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2VicwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5pbWF0aW9uKCkpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
d2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9S
RUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YToiKTsKKyAgICBBU1NFUlQoc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pOwogCi0gICAgbV9wYWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVU
eXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAg
IG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBtaW1lVHlwZSwgZW5jb2RpbmcsIGJhc2VV
UkwsIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0
TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHNlc3Npb25I
aXN0b3J5VmlzaWJpbGl0eSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZFJlcXVlc3Q6Iik7CisgICAgQVNTRVJU
KHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vKTsKIAogICAgIC8vIElmIHRoaXMgaXMgYSBjbGllbnQtc2lkZSByZWRp
cmVjdCBjb250aW51aW5nIGluIGEgbmV3IHByb2Nlc3MsIHRoZW4gdGhlIG5ldyBwcm9jZXNzIHdp
bGwgb3ZlcndyaXRlIHRoZSBmcm9tSXRlbSdzIFVSTC4gSW4gdGhpcyBjYXNlLAogICAgIC8vIHdl
IG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVwZGF0ZSBmcm9tSXRlbSdzIHByb2Nlc3NJZGVudGlmaWVy
IGFzIHdlIHdhbnQgZnV0dXJlIG5hdmlnYXRpb25zIHRvIHRoaXMgQmFja0ZvcndhcmQgaXRlbSB0
byBoYXBwZW4gaW4gdGhlCkBAIC0xNzksNyArMTgyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpS
ZXMKICAgICBpZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tG
b3J3YXJkTGlzdCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAg
ICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9j
ZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2
aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlv
bigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdh
dGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigp
LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0
ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9y
d2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVz
KQpAQCAtMTk5LDcgKzIwMiw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNr
Rm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCCiAgICAgICAgIHdl
YnNpdGVQb2xpY2llc0RhdGEgPSB3ZWJzaXRlUG9saWNpZXMtPmRhdGEoKTsKICAgICAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChX
VEZNb3ZlKGl0ZW1TdGF0ZXMpKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAq
bmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJk
RnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
c0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0Rh
dGEpKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIApA
QCAtMjI3LDggKzIzMCw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1h
aW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gUmVzdG9yZSB0aGUgbWFpbiBmcmFtZSdzIGNvbW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRz
IG1heSByZWx5IG9uIGl0IHVudGlsIHRoZSBuZXh0IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlm
IChhdXRvKiBtYWluRnJhbWUgPSBtX3BhZ2UubWFpbkZyYW1lKCkpCi0gICAgICAgIG1fbWFpbkZy
YW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTChtYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCku
dXJsKCkpOworICAgIGF1dG8qIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgp
OworICAgIGlmIChwcmV2aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1l
TG9hZFN0YXRlKCkuc2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBO
b3JtYWxseSwgbm90aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhl
IFdlYkNvbnRlbnQgcHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBp
biByZXNwb25zZSB0byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdp
bGwgbm90IGNvbWUgZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsy
NDAsMTAgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAg
ICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExv
YWQobV9yZXF1ZXN0LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVz
dCksIHsgfSk7CisgICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNN
YWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNh
c2Ugb2YgYSBwcm9jZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRv
ZXNuJ3Qga25vdyBhYm91dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28g
aXQgY2FuIHVwZGF0ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+
ZGlkU3RhcnRQcm92aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJM
KCkpOwogICAgIH0KIH0KIApAQCAtMzIzLDEyICszMzEsMTMgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRp
ZmllcgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1
bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlu
cHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFn
ZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dl
YlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0
aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmli
dXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBX
VEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJl
cXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklE
LCB1c2VyRGF0YSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCBhN2ZiNjZh
NmRhYTczN2M5MDYwOTA3YzA4OTZmMGNiYzk0ZWIzODBlLi42YWJjYTk4ZjJmYTU4N2IyNWEwZjk3
NmViNWM0MDVkNzRiNDIwMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRm9ybURhdGFSZWZlcmVu
Y2U7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3Qg
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03MSw3ICs3
Miw3IEBAIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgUHJv
dmlzaW9uYWxQYWdlUHJveHkgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqKTsKKyAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGJvb2wgc2hv
dWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsK
ICAgICB+UHJvdmlzaW9uYWxQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAg
dWludDY0X3QgbmF2aWdhdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uSUQ7IH0K
ICAgICBjb25zdCBVUkwmIHByb3Zpc2lvbmFsVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNp
b25hbExvYWRVUkw7IH0KIAorICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1p
dDsgfQorCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVy
biBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IHRha2VEcmF3aW5nQXJlYSgpOwogCkBAIC0xMDEsOCArMTA0LDggQEAgcHVibGljOgog
I2VuZGlmCiAjZW5kaWYKIAotICAgIHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNz
aW9uSGlzdG9yeVZpc2liaWxpdHkpOwotICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0
aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkRGF0
YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VV
UkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6
U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2
aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQ
STo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJz
aXRlUG9saWNpZXM+JiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKQEAgLTEyNCw3ICsxMjcsOCBA
QCBwcml2YXRlOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7
CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAg
ICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwKKyAgICAgICAgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lk
IGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE3MSw2
ICsxNzUsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVl
c3Q7CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBtX3Byb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQ7CiAgICAgYm9vbCBtX3dhc0NvbW1pdHRlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgeyBmYWxzZSB9OwogICAgIFVS
TCBtX3Byb3Zpc2lvbmFsTG9hZFVSTDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjE5MDkyMjUwOWM3ZGFiNGJjMWQy
ZGUyM2Q0M2ZkY2I0ZTgyMjBlYy4uOGFhZTgzM2Y5MzY4ODlhNzQ4YTU5MWI5ZjhkNGIwZDM4MTVl
NjAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzkw
LDcgKzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGF1dG8gdHJhbnNhY3Rp
b24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIAogICAgIGF1dG8gdXJsID0gcmVx
dWVzdC51cmwoKTsKLSAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKQorICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObykKICAgICAgICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIHVybC5zdHJpbmcoKSB9KTsKIAogICAgIExvYWRQYXJhbWV0ZXJz
IGxvYWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXMKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJE
YXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsK
LSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7
CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2ll
cyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlz
dG9yeSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2Nr
QmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CkBAIC0x
NTI1LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgbG9hZFBhcmFtZXRl
cnMuTUlNRVR5cGUgPSBNSU1FVHlwZTsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUg
PSBlbmNvZGluZzsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsK
LSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7
CisgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKQEAgLTE1NzgsNyArMTU3OCw3IEBAIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3Qo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0g
c2ltdWxhdGVkUmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJMOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdzsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vOwogICAgIGxvYWRQYXJh
bWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3
YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwpAQCAt
MzUxOCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAgIGlm
IChzdXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygp
KQogICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAgICAg
ICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNw
ZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIpKTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3Zl
KHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0
cikpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlv
bi0+cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+
dGFyZ2V0SXRlbSgpOwogICAgICAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rp
b246OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1LDcgKzM2MDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlu
Zm9EYXRhJgogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CiAgICAg
YXV0byogbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNp
b25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsKLSAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1Bh
Z2UgPSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlv
biwgbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExh
eWVyRmx1c2gpIDogZmFsc2U7CisgICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2
aWdhdGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0
ZXJDb21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1h
aW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZs
dXNoKSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJz
aXRlRGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNp
dGVEYXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6
IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogCiAgICAgLy8gVGhl
cmUgaXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUgdG8gcmV0dXJuIHRvIHRoZSBwYWdlIGluIHRoZSBw
cmV2aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpAQCAtMzYyMCwxMSArMzYyMCwxMiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBGcmFtZUluZm9EYXRhJgogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkQ29tbWl0UHJv
dmlzaW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5k
ZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6
V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9s
aWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xP
RyhMb2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNzUElE
PSVpLCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywgIkNvbnRpbnVpbmcgbmF2aWdh
dGlvbiAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdhdGlvbi5u
YXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkpOworICAgIEFTU0VSVChzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byk7CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgV0VCUEFHRVBST1hZ
X1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzczogVGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcHJvdmlzaW9uYWwgbG9hZCwgY2FuY2Vs
bGluZyBpdCAocHJvdmlzb25hbE5hdmlnYXRpb25JRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSki
LCBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlv
bklEKCkpOwpAQCAtMzYzMyw5ICszNjM0LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAg
ICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zp
c2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZN
b3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0
aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHdlYnNp
dGVQb2xpY2llcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRp
b24pLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyldKCkgbXV0YWJs
ZSB7CisgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCk7
CisgICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0ID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uOworICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVVu
aXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdURk1vdmUobmV3UHJvY2VzcyksIFdU
Rk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGlzU2VydmVy
U2lkZVJlZGlyZWN0LCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIHdlYnNp
dGVQb2xpY2llcy5nZXQoKSk7CisgICAgYXV0byBjb250aW51YXRpb24gPSBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0gbWFrZVJlZihuYXZpZ2F0aW9u
KSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBpdGVtID0g
bmF2aWdhdGlvbi0+dGFyZ2V0SXRlbSgpKSB7CiAgICAgICAgICAgICBMT0coTG9hZGluZywgIldl
YlBhZ2VQcm94eSAlcCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MgdG8gYmFjayBpdGVt
IFVSTCAlcyIsIHRoaXMsIGl0ZW0tPnVybCgpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0zNjU5LDkg
KzM2NjEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICAvLyBGSVhNRTogV29y
ayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUs
IGV0YwogICAgICAgICBBU1NFUlQoIW5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkuaXNFbXB0
eSgpKTsKICAgICAgICAgaWYgKGF1dG8mIHN1YnN0aXR1dGVEYXRhID0gbmF2aWdhdGlvbi0+c3Vi
c3RpdHV0ZURhdGEoKSkKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkRGF0YShu
YXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwgc3Vic3RpdHV0ZURh
dGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlwZSwgc3Vic3RpdHV0
ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vic3RpdHV0ZURhdGEt
PnVzZXJEYXRhLmdldCgpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUo
d2Vic2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHkpOworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWREYXRhKG5hdmlnYXRp
b24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJzdGl0dXRlRGF0YS0+Y29u
dGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBzdWJzdGl0dXRlRGF0YS0+
ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0dXRlRGF0YS0+dXNlckRh
dGEuZ2V0KCksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0
YS0+c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
bV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVz
dCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKKyAgICAg
ICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0aW9uLCBSZXNvdXJj
ZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51bGxwdHIsIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBX
VEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKICAgICB9OwogICAgIGlmIChtX2luc3BlY3Rv
ckNvbnRyb2xsZXItPnNob3VsZFBhdXNlTG9hZGluZygqbV9wcm92aXNpb25hbFBhZ2UpKQogICAg
ICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnNldENvbnRpbnVlTG9hZGluZ0NhbGxiYWNrKCpt
X3Byb3Zpc2lvbmFsUGFnZSwgV1RGTW92ZShjb250aW51YXRpb24pKTsKQEAgLTU2MTQsMTMgKzU2
MTYsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWUKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlu
Zm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwK
KyAgICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdD
b250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVu
dGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUs
IGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZy
YW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNw
b25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxp
c3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wg
d2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsCisgICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNTYzMSw5ICs1NjM1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgTUVT
U0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVxdWVzdC51cmwoKSk7CiAgICAgTUVTU0FHRV9DSEVD
S19VUkwocHJvY2VzcywgcmVzcG9uc2UudXJsKCkpOwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdh
dGlvbihuYXZpZ2F0aW9uSUQpIDogbnVsbHB0cjsKKyAgICBpZiAoIW5hdmlnYXRpb24pIHsKKyAg
ICAgICAgbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5h
dmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3Vy
cmVudEl0ZW0oKSk7CisgICAgICAgIG5hdmlnYXRpb25JRCA9IG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpOworICAgIH0KICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6TmF2aWdh
dGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZyYW1l
SW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBlLCBk
b3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+
c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdh
dGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYo
ZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5h
dmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVC
cm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikgbXV0
YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBvbGljaWVz
KiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVz
ZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vKTsK
QEAgLTU2NDIsOSArNTY1MCwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgICAgICBh
dXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dl
YlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vzcyld
IChjb25zdCBhdXRvJiBwb2xpY3lEZWNpc2lvbikgewogICAgICAgICAgICAgcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxp
c3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hF
eHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlEKTsKICAgICAgICAgfSk7CisKKyAgICAgICAg
YXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3
UHJvY2Vzczo6Tm87CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpV
c2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkgeworICAgICAgICAgICAgUmVn
aXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4geyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJlc3Bv
bnNlKCkudXJsKCkgfTsKKyAgICAgICAgICAgIC8vIEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcgaW4g
Y2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25seSBjb250YWlucyBhIHNpbmdsZSBwYWdlIGFuZCBp
cyBvcmlnaW4tY2xlYW4uCisgICAgICAgICAgICBpZiAodGhpcy0+cHJvY2VzcygpLnBhZ2VDb3Vu
dCgpID4gMSB8fCAodGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAm
JiAqdGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAhPSByZXNwb25z
ZURvbWFpbikpIHsKKyAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9h
ZGluZywgImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3YXBwaW5nIGR1
ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIpOworICAgICAgICAgICAgICAgIHBvbGlj
eUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6SWdub3JlOworICAgICAgICAgICAgICAgIGF1dG8gcHJv
Y2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJvY2Vzc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9uc2VEb21haW4p
OworICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcygqbmF2aWdh
dGlvbiwgbnVsbHB0ciwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgd2ls
bENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6
OlllczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgcmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIG51bGxwdHIs
IFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpKTsKKyAgICAgICAg
cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIG51
bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpLCB7IH0s
IHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MpOwogICAgIH0sIFNob3VsZEV4cGVjdFNhZmVC
cm93c2luZ1Jlc3VsdDo6Tm8sIFNob3VsZEV4cGVjdEFwcEJvdW5kRG9tYWluUmVzdWx0OjpObykp
OworCisgICAgaWYgKHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlKSB7CisgICAgICAgIGxpc3Rl
bmVyLT51c2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtX3BvbGljeUNs
aWVudCkKICAgICAgICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKCp0
aGlzLCAqZnJhbWUsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIFdURk1vdmUo
bGlzdGVuZXIpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAzYmRjZGZkZTE1NzJhMDVlMjQ0MjY5NzY2MjQzM2ZmMmU5NjgwNGE1Li5iYjMx
Y2E2Zjk3Y2FiNjVmN2MwYmU4YzFhY2FkYzFiZGVlYzlkZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjY5LDcgKzI2OSw3IEBAIGVudW0gY2xhc3MgTm90aWZp
Y2F0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2VsZWN0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgU2hvdWxkU2FtcGxlIDogYm9vbDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgV3JpdGluZ0RpcmVjdGlvbiA6IHVpbnQ4X3Q7CiAK
IHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8s
IHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAg
ICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYs
IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmID0gc3RkOjpudWxsb3B0KTsKQEAgLTIwNTksNyArMjA1OSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAotICAgICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgdW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2Fm
ZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5Jik7CiAKQEAgLTI0NjEsNyArMjQ2MSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlcG9y
dFBhZ2VMb2FkUmVzdWx0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0geyB9KTsKIAot
ICAgIHZvaWQgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYs
IHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxBUEk6OldlYnNpdGVQ
b2xpY2llcz4mJik7CisgICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJ
OjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYpOwogCiAgICAgdm9pZCBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wpOwogICAgIHZv
aWQgdXBkYXRlRm9udEF0dHJpYnV0ZXNBZnRlckVkaXRvclN0YXRlQ2hhbmdlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTBi
NzM5NTM2YjYwM2Y0OGI2OTk5YjI3NGIxNGU2MjYyZDMxMjgxMy4uMmNlM2YxZDQ5NjE0MjEwM2Rm
Y2E2YWJhZTUwNDhlMjBmNjkwZDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTA3LDcgKzEwNyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmli
dXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAg
IERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoc3RydWN0IFdlYktpdDo6UG9saWN5RGVjaXNpb24gUG9s
aWN5RGVjaXNpb24pIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBmNDFi
ZTMwYjc4NjQ0MTJlMjI3Yjc2NDEyODlkMmVjMDU4Y2Y3MTc2Li5hNDBlNjlkZmE1MjJkZWRlYmFm
ZGI1ZmM2YjllNzFmY2I5YjRiMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMTUzLDYgKzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNNYXRj
aGluZ1JlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4pIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW4gPyAqbV9yZWdpc3RyYWJs
ZURvbWFpbiA9PSBkb21haW4gOiBmYWxzZTsgfQogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlZ2lzdHJhYmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFp
bi52YWx1ZV9vcihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH0pOyB9CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mIG9wdGlvbmFsUmVnaXN0
cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9CiAgICAg
dm9pZCBzZXRJc0luUHJvY2Vzc0NhY2hlKGJvb2wpOwogICAgIGJvb2wgaXNJblByb2Nlc3NDYWNo
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJblByb2Nlc3NDYWNoZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCA0MGJlNjFjMjBmY2I4ZDNhZjcxMDNmYWNjMzczYTIwYzkx
NjYzMzA5Li40YmNhYmY0OGQzMjY3NjQ2Y2QxYjM1NzMxNDdiOTM3NTcxZGI2Y2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNiw3ICs4MTYsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1
bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAg
ICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpIHsK
QEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAgICAgLy8gTm90
aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBwb2xp
Y3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1ZXN0LCB1c2Vy
RGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UpIHsK
KyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwgd2Ugc3Rp
bGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byBwcm9j
ZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBpbmplY3RlZCBi
dW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgorICAgIGlmIChw
b2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0Vf
TE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5n
IGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9s
aWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBAIC04NDcsOSAr
ODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9saWN5RG9jdW1l
bnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQgPSBwb2xpY3lE
b2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4oKnBvbGljeURv
Y3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdhc0FsbG93ZWRC
eUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZTsK
ICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVpbnQ2NF90IGxp
c3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1v
dmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwotICAgIGlm
ICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9h
ZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsKKyAg
ICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZp
ZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwgZG93
bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkp
KSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAi
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVzZSBXZWJQYWdl
UHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAgICBtX2ZyYW1l
LT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBp
ZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsg
fSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFhM2E4NjAxNzU3
MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2YzY0ZjQxMWRi
ZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdl
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5l
clBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6
OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5
Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggNGU0YmJjZmJiY2RhZWVhMGIxMjVmN2IwZDhlNjNmMGRmZTgyM2FmNy4uYTg5
MTYyZGYwMzJlMWM4YTMzOGNmMDUyNzM1NTJkM2QzMTk4N2U3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIE5P
X1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nlc3NMYXVuY2go
TG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRC
dWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1ZmZlciwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBjb25z
dCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhp
c3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAg
IHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCA3OGQ4MzBkYTQyZDk1NjdjZGY5NWNmYTFmZTMyNzMzMDJmZjNi
MjFjLi44ZTM0ZDZkNzFlZDRjMDI5OWUwNWM3NjVjMDdhNGEwM2JkOWRjZTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjQsNyArMjI0LDcgQEAg
ZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3Mg
SGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hs
aWdodFZpc2liaWxpdHkgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1
aW50OF90OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwor
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRHcmFudWxhcml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAgcHJpdmF0ZToK
IAogICAgIFN0cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0gICAgdm9pZCBsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRh
Jiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwodWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4m
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBmODdiNDU5Zjg2ZjcwZTYwNTkyNDYzYmQ5
ZTU5MTc3N2Y5ZjAyMjAwLi5mMWI1YTgyZDRmOTg2NWFlNmUwYTgyZmQ1NzJmMjNkOTc5M2E0ZWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3Jh
bnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNp
ZXMpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKICAg
ICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMTUyZmRh
MWY2ZWQ1N2UyOTlhZGUzNGQwN2VlOGRiYjRlMmMxZWVhNy4uMDUxNjI3MDA5YTY2ZTEyNGFhOTYz
NjM3ODRhNmQ3NGNlYjA0M2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9w
ZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQ
b2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBiZmRl
M2VkNzY3OWI5Yjk4MGM4NWYzM2QxODkxZjhjNzg1ZWVkODZkLi4wY2ZiZWVlMDQ0N2QyZTI4NTc3
MjJmZTBhNjY0MTUxOTQwOWIyYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAt
ODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygp
CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3
XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXco
bV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0
ZDA0MGY1NjQ2ZWI4MjQxYTkyYmM3YzJkYzc4ZjZkZmQ5NmRhZDBhLi5jNWFmYTEzMzdkYjRlMmZi
NjdjZWU0MGYxMDQ1ZjFjNjk2YWMyN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hT
aG93KCkKICAgICAgICAgdWktPndlYlZpZXdTaG93KHdlYlZpZXcpOwogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlv
bikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggNmRhYzBiMDUyMTgzOTE2NjIwODk2NDFmNjVhZTk0MmMyOWI4OTZkOC4uNjE0
NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVhNjExYWZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1p
bGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9y
bVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDViMjQwODM1MzY2ZTI4MTRjYmNmMGVi
NTBiMzI1NjhmM2EzYjFlMjMuLmJiNWYxN2JkOGIwYzRkNGVmNTY1YWIzMDJiYzUyM2VkZDI4M2Y0
NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wOC0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZSB0byB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBpbmRl
ZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05TY2hl
bWUgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6dG9EYXRhOndpdGhDT09QVmFsdWU6XSk6CisgICAg
ICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisKIDIwMjEt
MDgtMTggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtGbGF0cGFrIFNES10gSW5jcmVhc2UgdGhlIHN0YXJ0dXAgcGVyZm9ybWFuY2Ugb2Ygd2Via2l0
LWZsYXRwYWsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGY5YjhkYWY2OWY0
NDc0Mjc5NWZkOGY5MTZjNmY2Zjg1YjQwZTQ4NjEuLjZlZjU1MjI0MTNhNWViOTA1MTAwNjUyNDQz
MTFkODQ2MDhkNTU0N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMjUw
LDEyICsyNTAsMTQgQEAgQGludGVyZmFjZSBQU09OU2NoZW1lIDogTlNPYmplY3QgPFdLVVJMU2No
ZW1lSGFuZGxlcj4gewogICAgIGNvbnN0IGNoYXIqIF9ieXRlczsKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBfcmVkaXJlY3RzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNE
YXRhPj4gX2RhdGFNYXBwaW5nczsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBfY29vcFZh
bHVlczsKICAgICBIYXNoU2V0PGlkIDxXS1VSTFNjaGVtZVRhc2s+PiBfcnVubmluZ1Rhc2tzOwog
ICAgIGJvb2wgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseTsKIH0KIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEJ5dGVzOihjb25zdCBjaGFyKilieXRlczsKIC0gKHZvaWQpYWRkUmVkaXJlY3RG
cm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXNvdXJjZVVSTFN0cmluZyB0b1VSTFN0cmluZzooTlNT
dHJpbmcgKilkZXN0aW5hdGlvblVSTFN0cmluZzsKIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YTsKKy0g
KHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0
YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWU7
CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2NoZW1lCkBAIC0yNzcsNiArMjc5LDEzIEBA
IC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRv
RGF0YTooY29uc3QgY2hhciopZGF0YQogICAgIF9kYXRhTWFwcGluZ3Muc2V0KHVybFN0cmluZywg
W05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lkKilkYXRhIGxlbmd0aDpzdHJsZW4oZGF0
YSkgZnJlZVdoZW5Eb25lOk5PXSk7CiB9CiAKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09P
UFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUKK3sKKyAgICBbc2VsZiBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFdOworICAgIGlmIChjb29wVmFsdWUpCisg
ICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcsIGNvb3BWYWx1ZSk7Cit9CisKIC0gKHZv
aWQpc2V0U2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OihCT09MKXZhbHVlCiB7CiAgICAgX3No
b3VsZFJlc3BvbmRBc3luY2hyb25vdXNseSA9IHZhbHVlOwpAQCAtMzExLDggKzMyMCwxNSBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihp
ZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbKGlkPFdLVVJMU2NoZW1lVGFza1ByaXZh
dGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpyZWRpcmVjdFJlc3BvbnNlLmdldCgpIG5l
d1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQogCi0gICAgZG9Bc3luY2hyb25vdXNseUlm
TmVjZXNzYXJ5KFtmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVSTCldKGlkIDxXS1VSTFNjaGVt
ZVRhc2s+IHRhc2spIHsKLSAgICAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNl
ID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdl
dCgpIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MSB0ZXh0RW5j
b2RpbmdOYW1lOm5pbF0pOworICAgIGRvQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShbc2VsZiwg
ZmluYWxVUkwgPSByZXRhaW5QdHIoZmluYWxVUkwpXShpZCA8V0tVUkxTY2hlbWVUYXNrPiB0YXNr
KSB7CisgICAgICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGhlYWRlckRpY3Rpb25hcnkgPSBbTlNN
dXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKyAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkg
c2V0T2JqZWN0OkAidGV4dC9odG1sIiBmb3JLZXk6QCJDb250ZW50LVR5cGUiXTsKKyAgICAgICAg
W2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAiMSIgZm9yS2V5OkAiQ29udGVudC1MZW5ndGgi
XTsKKyAgICAgICAgYXV0byBjb29wVmFsdWUgPSBfY29vcFZhbHVlcy5nZXQoW2ZpbmFsVVJMIGFi
c29sdXRlU3RyaW5nXSk7CisgICAgICAgIGlmICghY29vcFZhbHVlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDooTlNTdHJpbmcgKiljb29wVmFsdWUg
Zm9yS2V5OkAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiXTsKKworICAgICAgICBhdXRvIHJl
c3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpm
aW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBIVFRQVmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFk
ZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwogICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVz
cG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogICAgIH0sIDAuMSk7CiAKQEAgLTQwOSw4ICs0MjUsNiBA
QCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewog
PC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAotI2lmIFBMQVRGT1JNKE1BQykKLQogc3RhdGlj
IGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlcyA9IFIiUFNP
TlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKQEAgLTQ4
OCw2ICs1MDIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiA8L3NjcmlwdD4KIClQ
U09OUkVTT1VSQ0UiOwogCisjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIGNvbnN0IGNoYXIqIGxp
bmtUb0FwcGxlVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZlbnQpIHsKQEAgLTQ5Nyw4ICs1
MTIsNyBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVu
dCkgewogPC9zY3JpcHQ+CiA8YSBpZD0idGVzdExpbmsiIGhyZWY9InBzb246Ly93d3cuYXBwbGUu
Y29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CiApUFNPTlJFU09VUkNFIjsKLQotI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKKyNlbmRpZgogCiBzdGF0aWMgUmV0YWluUHRyPF9XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbj4gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpCiB7CkBAIC0xMTk3
LDggKzEyMTEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBCYWNrTmF2aWdhdGlvbkFmdGVyU2Vzc2lv
blJlc3RvcmUpCiAgICAgRVhQRUNUX05FKHBpZDMsIHBpZDQpOwogfQogCi0jaWYgUExBVEZPUk0o
TUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiB7
CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uKCk7CkBAIC0xMjA2LDYgKzEyMTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9z
c1NpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwor
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
UFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJM
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09w
ZW5Dcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CkBAIC0xMjQ1LDYgKzEyNTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc09yaWdpbkJ1dFNh
bWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dP
cGVuQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlBTT04iXTsKQEAgLTEyODUsNiArMTI5OSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgp
XTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHRO
UyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5k
b3dPcGVuQ3Jvc3NTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQ
U09OIl07CkBAIC0xMzI0LDYgKzEzMzksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdp
bmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0V2l0aEJ5dGVzOndpbmRvd09wZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5
dGVzXSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFu
ZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKQEAgLTEzNjIsNiArMTM3OCw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0V2l0aE9wZW5lcikKIAogICAg
IGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNz
UG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAg
IGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAg
W2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVXaXRoRXhwbGljaXRPcGVuZXJU
ZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQwMSw2ICsxNDE4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRJbXBsaWNpdE5vT3BlbmVy
KQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNl
dFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZ
RVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRd
KTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZVdpdGhJbXBsaWNp
dE5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2No
ZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTE0NDAs
NiArMTQ1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVu
ZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
c2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rQ3Jvc3NTaXRlTm9PcGVuZXJU
ZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQ3OSw2ICsxNDk4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogCiAgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQ
b29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua1NhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwog
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0
KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTUxMSw4ICsxNTMxLDYgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogICAgIEVYUEVDVF9FUShwaWQx
LCBwaWQyKTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLQogVEVTVChQcm9jZXNzU3dh
cCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3V2ViVmlldykKIHsKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTUwOTQs
OCArNTExMiw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRpbmdTdGF0ZUFmdGVyUG9saWN5RGVj
aXNpb24pCiAgICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2ZXI6bG9hZE9ic2VydmVyLmdldCgpIGZv
cktleVBhdGg6QCJVUkwiIGNvbnRleHQ6d2ViVmlldy5nZXQoKV07CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiBzYXZlT3BlbmVyVGVzdEJ5dGVzID0gUiJQU09O
UkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpAQCAtNTEw
Nyw2ICs1MTIzLDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogVEVTVChQcm9jZXNz
U3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVy
KQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsK
KwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7
CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lU2l0ZVdpdGhPcGVuZXJUZXN0
Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLgogICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVzdEJ5dGVzXTsKQEAgLTUxODAsNiArNTE5
OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnRyb2xsZWRQcm9j
ZXNzU3dhcHBpbmdPZk9wZW5lcikKIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQ
SUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lZSkKIHsKICAgICBhdXRvIHdlYlZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6
d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVP
cGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTIzNSw4ICs1MjU0LDYgQEAgVEVTVChQcm9jZXNzU3dhcCwg
T3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVlKQogICAg
IGRvbmUgPSBmYWxzZTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLQogZW51bSBjbGFz
cyBFeHBlY3RTd2FwIHsgTm8sIFllcyB9Owogc3RhdGljIHZvaWQgcnVuUHJvY2Vzc1N3YXBEdWVU
b1JlbGF0ZWRXZWJWaWV3VGVzdChOU1VSTCogcmVsYXRlZFZpZXdVUkwsIE5TVVJMKiB0YXJnZXRV
UkwsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKQEAgLTcxNTEsMyArNzE2OCwyMzQgQEAgVEVT
VChXZWJQcm9jZXNzQ2FjaGUsIENsZWFyV2hlbkVudGVyaW5nQ2FjaGUpCiAgICAgLy8gQ2xlYXIg
dGhlIFdlYlByb2Nlc3MgY2FjaGUgd2hpbGUgdGhlIHByb2Nlc3NlcyBhcmUgYmVpbmcgY2hlY2tl
ZCBmb3IgcmVzcG9uc2l2ZW5lc3MuCiAgICAgW3Byb2Nlc3NQb29sIF9jbGVhcldlYlByb2Nlc3ND
YWNoZV07CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09Q
VGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2NyaXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3BlbigicHNvbjovL3d3dy5hcHBsZS5jb20vcG9w
dXAuaHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0PgorKVBTT05SRVNPVVJDRSI7CisKK3N0YXRp
YyBjb25zdCBjaGFyKiB3aW5kb3dPcGVuU2FtZU9yaWdpbkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05S
RVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgdyA9
IHdpbmRvdy5vcGVuKCJwb3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+CispUFNPTlJF
U09VUkNFIjsKKworZW51bSBjbGFzcyBJc1NhbWVPcmlnaW4gOiBib29sIHsgTm8sIFllcyB9Owor
ZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6IGJvb2wgeyBObywgWWVzIH07CitzdGF0
aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNvbnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgSXNTYW1lT3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVkaXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0
U3dhcCkKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dL
UHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3
ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSA9IFlFUzsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZl
YXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAg
ICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9s
aWN5RW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBoYW5kbGVy
ID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKKyAgICBpZiAoaXNTYW1lT3Jp
Z2luID09IElzU2FtZU9yaWdpbjo6WWVzKSB7CisgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndp
bmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1Bd
OworICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcykgeworICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvVVJMU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAgICAgICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6
ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC5odG1s
IiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgfSBl
bHNlIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQ09P
UFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBpZiAoZG9TZXJ2
ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgeworICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5j
b20vcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1h
ZnRlci1yZWRpcmVjdC5odG1sIl07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0
bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09Q
VmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisKKyAgICAvLyBXaGVu
IHRoZSBwcm92aXNpb25hbCBsb2FkIHN0YXJ0cyBpbiB0aGUgcHJvdmlzaW9uYWwgcHJvY2Vzcywg
a2lsbCB0aGUgV2ViVmlldydzIHByb2Nlc3Nlcy4KKyAgICBfX2Jsb2NrIHVuc2lnbmVkIG51bWJl
ck9mUHJvdmlzaW9uYWxMb2FkcyA9IDA7CisgICAgbmF2aWdhdGlvbkRlbGVnYXRlLT5kaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbkhhbmRsZXIgPSBeeworICAgICAgICArK251bWJlck9mUHJv
dmlzaW9uYWxMb2FkczsKKyAgICB9OworCisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRv
cHROUyhbW1BTT05VSURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE5hdmlnYXRpb25EZWxlZ2F0ZTpu
YXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVp
RGVsZWdhdGUuZ2V0KCldOworCisgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNlOworICAgIG51
bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMgPSAwOworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdl
YlZpZXcpOworICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0g
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgeworICAgICAgICBFWFBFQ1RfRVEoMywgbnVtYmVy
T2ZEZWNpZGVQb2xpY3lDYWxscyk7CisgICAgICAgIEVYUEVDVF9UUlVFKHNlcnZlclJlZGlyZWN0
ZWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUSgyLCBudW1iZXJPZkRlY2lkZVBv
bGljeUNhbGxzKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKHNlcnZlclJlZGlyZWN0ZWQpOworICAg
IH0KKyAgICBFWFBFQ1RfRVEoMlUsIG51bWJlck9mUHJvdmlzaW9uYWxMb2Fkcyk7IC8vIE9uZSBp
biBlYWNoIHZpZXcuCisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9UUlVFKCEhcGlkMSk7CisgICAgYXV0byBwaWQyID0gW2NyZWF0
ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQy
KTsKKworICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgRVhQ
RUNUX05FKHBpZDEsIHBpZDIpOworICAgIGVsc2UKKyAgICAgICAgRVhQRUNUX0VRKHBpZDEsIHBp
ZDIpOworCisgICAgYm9vbCBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3LmNsb3NlZCA/ICd0cnVlJyA6ICdmYWxzZSciIGNv
bXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgTlNTdHJpbmcgKmlzQ2xvc2VkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAo
ZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJ0cnVlIiwgaXNDbG9zZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJmYWxzZSIsIGlzQ2xvc2VkKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2Ny
aXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkUnVubmluZ1NjcmlwdCk7CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7Cisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidy5uYW1lIiBjb21wbGV0aW9uSGFuZGxl
cjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3
aW5kb3dOYW1lID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9
PSBFeHBlY3RTd2FwOjpObyAmJiBpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpCisg
ICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28iLCB3aW5kb3dOYW1lKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAg
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgLy8gT3BlbmVl
IHNob3VsZCBub3QgaGF2ZSBhbiBvcGVuZXIgb3IgYSBuYW1lLgorICAgIGZpbmlzaGVkUnVubmlu
Z1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJ3aW5kb3cub3BlbmVyID8gJ3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaGFzT3Bl
bmVyID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBl
Y3RTd2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIsIGhhc09w
ZW5lcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUi
LCBoYXNPcGVuZXIpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0
KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVyOiBb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndpbmRv
d05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4
cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05h
bWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28iLCB3
aW5kb3dOYW1lKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CisKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiIGNvbXBsZXRp
b25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNT
dHJpbmcgKmlubmVyVGV4dCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKEAicG9wdXAiLCBpbm5lclRleHQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNo
ZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQor
eworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNT
YW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1l
T3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJz
YW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZ
ZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxv
d1BvcHVwKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93
LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
U2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXAyKQoreworICAgIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bldpdGhSZWRpcmVjdCkKK3sKKyAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJl
ZGlyZWN0IGRvZXNuJ3QgaGF2ZSBDT09QPXNhbWUtb3JpZ2luLgorICAgIHJ1bkNPT1BQcm9jZXNz
U3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3Qp
Cit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBJc1NhbWVP
cmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3Jp
Z2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2lu
IiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NP
T1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9u
ZSIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInNhbWUtb3JpZ2luIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3Jp
Z2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQor
CitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODBj
YWQwMTY2YjYzYjdhYzQ1MWUxMDZlZWU5OTgwMmQzYjhkZTZlYS4uNWFmZmY4NWY1MTdlY2M5NDlh
ZTQxYjJmMTRlMDIyMmIyYjY5NDY1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4LTE4
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVt
ZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kg
SFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2tpcCBDT09QIHRlc3RzIG9u
IFdLMSBhcyB3ZSBvbmx5IGhhdmUgYSB3b3JraW5nIGltcGxlbWVudGF0aW9uIGZvciBXSzIuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDgtMTggIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIHBvc2l0aW9uOiBzdGlja3kg
d2l0aCBkaXNwbGF5OiBpbmxpbmUtYmxvY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IDQ5NmRkMzgwODIyNGFmMWIzODAzMjZiZWUzZjc4NGMxMTI5NDUwNmYuLjhkOGU3NjA1MTJj
NGU2MDE3NTRmODIwNmRhMTc4MWFhNjhlMjMwOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFz
ZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWlub3IgdGVzdCByZWJhc2VsaW5lIGR1ZSB0byBsb2dnaW5nIGNoYW5n
ZXMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA4
LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgRG9jdW1lbnQgbG9hZCBldmVudHMgc2hvdWxkIHVwZGF0ZSB0aW1pbmcgaW4gUGVyZm9ybWFu
Y2VOYXZpZ2F0aW9uVGltaW5nIGV2ZW4gYWZ0ZXIgaXRzIGluc3RhbnRpYXRpb24KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggNzZmYmQ2ZTFmN2JjNzg4MzlmM2FjNDdlMmI5NWZmNDc1NDE0NjY3Ni4uMDMyM2E1MWQ2
YzUwMzc4MDdhYjI5MmJjNmJlYjQzOWU3NjhiM2VjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw2
IEBAIENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBj
YW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2Fk
IHRvIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2
aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3Bv
bnNlIGhlYWRlci4KIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBz
Oi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNv
dXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgotQ09O
U09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9jb21tb24vYmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogCiBQQVNT
IENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogd2luZG93Lm9wZW4oKQogUEFTUyBDT09QK0NPRVAg
YmxvYiBVUkwgcG9wdXA6IDxhPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDE0MmFiYmQxNjY2MWEwMjU4NDg5NTY0ODEzYzE0MDgyYjM0OGFk
YTUuLmY5NTViMWFhMzQyZTBhNmU4MjE5NWQwNWQ0ZjM0Mzg1OGViMGFmMzcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM1Myw4ICszNTMs
NiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9s
aWN5L3dvcmtlci1zcmMvc2VydmljZS13b3JrZQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbiBbIFNraXAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5IFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3N3Lmh0
dHBzLndpbmRvdy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1zdy1mcm9tLWNv
b3AuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3cuaHR0cHMuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2ZXItdGltaW5n
L3NlcnZpY2Vfd29ya2VyX2lkbC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbmZyYXN0cnVjdHVyZS9zZXJ2ZXIvY29udGV4dC5hbnkuc2VydmljZXdvcmtl
ci5odG1sIFsgU2tpcCBdCkBAIC0zNzEsMTAgKzM2OSwxMSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVy
Y2VwdAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9wYWludC13b3Jr
bGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiBodHRw
L3dwdC93ZWJydGMvdHJhbnNmZXItZGF0YWNoYW5uZWwtc2VydmljZS13b3JrZXIuaHR0cHMuaHRt
bCBbIFNraXAgXQogCi0jIE5vIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgor
IyBObyBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSAvIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Q
b2xpY3kgaW4gV0sxLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAu
aHR0cHMuaHRtbCBbIFNraXAgXQotaHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXIt
cG9saWN5L3JlcXVpcmUtY29ycC5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0K
K2h0dHAvd3B0L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9o
dG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KIAogIyBRdW90YSBjaGVj
ayBtaXNzaW5nIGluIFdLMQogaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC5odHRw
cy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGZhMjVhYzE4NzMzNWVkMWFmYWRhNzA4YTM0MjU4YmI1MWZhNzMwZTkuLjE0YzYwYzI2
Y2NmYTU3OWM1ZWM4Yjg1ZWExN2M1ZTU3Y2I5YzU3NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzE1LDggKzM3MTUsNiBAQCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci1vcmlnaW4td2hl
bi1jcm9zcy1vcgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcG9s
aWNpZXMvcmVmZXJyZXItdW5zYWZlLXVybC1zZXJ2aWNlLXdvcmtlci5odHRwcy5odG1sIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rl
c3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29w
LWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1i
eS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vz
c2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdpdGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFs
aXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBbIFNraXAg
XQpAQCAtMzcyNSwxMCArMzcyMywxMSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1zZXJ2aWNl
LXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9wYWludC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWlu
dGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVk
ZGVyLVBvbGljeSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jv
c3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Ny
b3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lw
IF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3Bl
bmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kg
WyBTa2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNr
aXAgXQogCiAjIE5vIGhlYWRlciBmaWx0ZXJpbmcgZm9yIFdLMQogaHR0cC93cHQvbG9hZGluZy9y
ZWRpcmVjdC1oZWFkZXJzLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435892</attachid>
            <date>2021-08-19 12:08:30 -0700</date>
            <delta_ts>2021-08-23 10:26:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210819120830.patch</filename>
            <type>text/plain</type>
            <size>113604</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhlOTQ0YmFhZGY4MmFi
OWZiZDM3ZmRjZWFiMWUwYmVmNmQwNGE5Mi4uNWQwZDQzYjMzNjFhZjI5ZGYxMGZjY2U1MWI5OTJm
OGExZDRlNmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEVsZW1lbnQ6OmNsaWVudFJlY3QoKSB3aGljaCBkb2Vz
IG5vdCByZXR1cm4gYSB2YWx1ZSBpbiB3ZWItZXhwb3NlZCAiY2xpZW50IiBjb29yZGluYXRlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBjNDIwYzM3NDc1YWFhMjJlNTIzN2VlNmY1NTNlNjA1NmRlNGRiZDMwLi44ODA4
NjQyZDZkN2NmYjA2MGI1MDBkNGYyM2E3ZmFmYjgwYjAyYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDY2IEBACisyMDIxLTA4LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIw
NDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAg
ICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Q
b2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGlu
ZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAg
dXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3MuIFRoaXMgcGF0Y2ggbWFrZXMgaXQg
c28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nCisg
ICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNwb25zZSBhcyB0aGlzIHdpbGwgYmUg
cmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBBUElzCisgICAgICAgIHN1Y2ggYXMg
U2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHByb2Nlc3Mtc3dhcHBpbmcsIHdlIHJl
dXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vzcy1zd2FwIG9uIG5hdmlnYXRpb24g
KFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBhcmUgdGhhdDoKKyAgICAgICAgLSBX
ZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBpbnN0ZWFkIG9mIG5hdmlnYXRpb24g
cG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0byBoYXZlIGEgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBub3cgdHJpLXN0YXRlOiBObywKKyAg
ICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25z
ZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0YXRlCisgICAgICAgICAgdG8gYXZv
aWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0ZSBjYWxscyBhZnRlciBwcm9jZXNz
LXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNlbmRpbmcgZHVwbGljYXRlIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2VzLXN3YXBwaW5nLgorICAgICAgICAt
IEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlvbiByZXNwb25zZSwgd2UgY2xvc2Ug
dGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcKKyAgICAgICAgICB0byBwdXQgaXQg
aW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhlIHNwZWNpZmljYXRpb24sIGluIGEg
Y2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgICBncm91cCBzd2l0Y2gsIHRoZSBw
cmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJlIGRpc2NhcmRlZCAod2hpY2ggaXMg
V2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBp
cyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBB
R0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBv
bi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxlZCB1cG9uIHJlY2VpdmluZyB0aGUK
KyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRpbmcgdG8gcHJvY2Vzcy1zd2FwIGFu
ZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRoZSBuZXcKKyAgICAgICAgV2ViUHJv
Y2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3MgdGhpcyBpbiBhIGZvbGxvdy11cCB0
byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBjb21wbGV4aXR5LiBXZSB3aWxsIG5l
ZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0d29yayBwcm9jZXNzIGZyb20gdGhl
IG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcgb25lIGluIGNhc2Ugb2YgcHJvY2Vz
cy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQg
Y29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFy
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlz
aW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmln
YXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4gY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbXBsKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4LTE5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBFbGVtZW50OjpjbGllbnRS
ZWN0KCkgd2hpY2ggZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUgaW4gd2ViLWV4cG9zZWQgImNsaWVu
dCIgY29vcmRpbmF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA3YmY3ZTE3Yzhm
Zjg3NDAwZmM2MGI5ZTZlNWU3MjBlYmVjN2VhMDVhLi4zYjUwMDczN2NkZDA4ZGQ3N2FjMjI3NGQ1
NmZmYTQ3NDE2YTY0NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjEtMDgtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0
NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKwogMjAyMS0wOC0x
OSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgRWxlbWVudDo6Y2xpZW50UmVjdCgpIHdoaWNoIGRvZXMgbm90IHJldHVybiBhIHZhbHVlIGlu
IHdlYi1leHBvc2VkICJjbGllbnQiIGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKaW5kZXggYWE4ODc4MTIwMTk5ZTMwNTVmZWJlOWY5MzQ0YjhkZTY2Y2Q0MWUzMi4uZGZmZDg4
ZDcyOGM0ZGZlZTFhNmY2YmU0N2JiMWJlMGFmNGRhMTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcg
YmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorCiAyMDIxLTA4LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW5hbWUgTWVkaWFQbGF5ZXI6OnNldFZpc2libGUgdG8gTWVkaWFQbGF5ZXI6
OnNldFBhZ2VJc1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2Y2Y5ZTAzMjgwNTAzYzdiZTAuLjRkMzJhZTRh
OWQ1OWY5ZWNlMWRhZTY1OTA2NjQ3OTg0OTJiNTM3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1ICs3ODMsMTIgQEAgYm9vbCBEb2N1bWVudExv
YWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNzLWEtbmF2aWdhdGUtZmV0Y2ggKFN0ZXAgMTIu
NS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdzIGlzIG5vdCBlbXB0eSBhbmQgcmVzcG9uc2VD
T09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9uZSIsIHRoZW4gc2V0IHJlc3BvbnNlIHRvIGFu
IGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5kIGJyZWFrLgotICAgIGlmIChyZXNwb25zZUNP
T1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25l
KSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGlj
eVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9hZGVyKCktPmVmZmVjdGl2ZVNhbmRib3hGbGFn
cygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAgIGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJh
bWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQgPSBlbmZv
cmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBvbGljeShyZXNwb25zZS51cmwoKSwgcmVzcG9u
c2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKLSAgICAgICAgZnJhbWVM
b2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0c0dyb3VwKCk7Ci0KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNl
UmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVz
cG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBUaGVyZSBpcyBhIGJ1
ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hl
biBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAw
PiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0UoQ0YpCkBAIC0xMDQyLDExICsxMDM2LDE5IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoIWRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZShtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3Bv
bnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAgICAgICBjb250aW51ZUFmdGVyQ29udGVudFBv
bGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBS
ZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNvdXJjZUxvYWRlciA9IHRoaXMtPm1haW5S
ZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1h
aW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAg
YXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7
Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVl
c3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWlu
UmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCisgICAgZnJhbWVM
b2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVy
LCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1haW5SZXNv
dXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCksIHJlcXVlc3RJ
ZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJl
c3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3Bv
bnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVyKSk7CiAgICAgICAgIGNv
bnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CkBAIC0yMDA4LDkgKzIwMTAsMTUgQEAg
Ym9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQogICAgIFN0cmluZyBtaW1lVHlw
ZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwiIDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50
KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUobV9yZXF1ZXN0LnVybCgpLnByb3RvY29s
KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VS
ZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBlLCAwLCAiVVRGLTgiX3MpOwogCi0gICAg
aWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3Vt
ZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0
ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAgICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVy
SGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwogCisgICAgICAgIC8vIEZJWE1FOiBOb24t
aW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1c2UgYSBicm93c2luZyBjb250ZXh0IGdy
b3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlzIHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0
CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBwb2xpY3kgZGVjaXNpb24uIEFzIGEgcmVz
dWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQg
YWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAgICAgaWYgKG1fY3VycmVudENvb3BFbmZv
cmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAg
ICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOworICAgIH0K
KwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjIzOCw2
ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWluUmVzb3VyY2UoKQogI2Vu
ZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxwdHI7CisgICAgbV9pc0NvbnRpbnVpbmdM
b2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFsc2U7CiAKICAgICB1bnJlZ2lzdGVyVGVt
cG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1ZDc2NDg3NmFhZDQ5YmJkMDA0YWMxNzcw
Li4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZiM2UwMmNlYjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1LDYgKzQyNSw5IEBAIHB1YmxpYzoKIAog
ICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID8gbV9jdXJyZW50Q29v
cEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGljeSA6IENyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNw
b25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJS
ZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBzZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJS
ZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2sgPSBp
c0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisKIHByb3RlY3RlZDoK
ICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01NjEsNiArNTY0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDbGllbnRS
ZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTG9hZGluZ011bHRpcGFydENvbnRlbnQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGlj
eUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1FOiBEb2N1bWVudDo6bV9wcm9jZXNzaW5n
TG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93YXNPbmxvYWREaXNwYXRjaGVkIGFyZSBy
b3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3VsZCBiZSBtZXJnZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhkY2E3NWI5NDA3OTUwNzg5MjM2ZDJhYTEy
MGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcg
QEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogewogfQogCi12
b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQor
dm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rp
b24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZmZTViMDM2ZGYwN2Y0ODM5Zjc5YWQ3MC4u
MTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05Niw3ICs5Niw3IEBA
IHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hT
aG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNo
ZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lD
aGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5k
ZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2ZDAzZGYyNDZkYS4uMzcwZGY4ZmFhNWM3
NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJU
eXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5j
bHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02
MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSA9IGNo
ZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7IH0KIAotICAgIHZvaWQgc2V0
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0K
KyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZChTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSB7IG1fc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CisgICAgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CiAKICAgICBjb25z
dCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0
aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0YShjb25zdCBTdWJzdGl0dXRl
RGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0gZGF0YTsgfQpAQCAtMTEzLDcgKzExNCw3
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5
OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5IHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgZmFsc2UgfTsKKyAgICBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAgTG9ja0hpc3RvcnkgbV9sb2Nr
SGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbV9s
b2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZl
cnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5n
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1NGFhM2VlZmRjZWZm
NGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4xYmI5NzY3YzI4N2NjZjhkMTMwMTkzNDdiYjNh
NDMxOGIyZjYyYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQx
Myw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVm
ZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQg
RnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBm
dW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAg
Ly8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQ
b2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVj
ayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmll
ciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShm
dW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
cmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwg
YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1l
TG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNz
ZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiBy
ZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVu
ZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0
ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCkBAIC0xMjA1LDcgKzEy
MDUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkKICAgICBGUkFN
RUxPQURFUl9SRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRpbmcsICJwcmVwYXJlRm9yTG9hZFN0YXJ0
OiBTdGFydGluZyBmcmFtZSBsb2FkIik7CiAKICAgICBtX3Byb2dyZXNzVHJhY2tlci0+cHJvZ3Jl
c3NTdGFydGVkKCk7Ci0gICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExv
YWQoKTsKKyAgICBib29sIGFscmVhZHlTZW50RGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBtX3By
b3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIgJiYgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5p
c0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCk7CisgICAgaWYgKCFhbHJl
YWR5U2VudERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKQorICAgICAgICBtX2NsaWVudC0+ZGlzcGF0
Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgewpAQCAtMTQ3
MCwxMCArMTQ3MiwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3Qm
JiByZXF1ZXN0KQogICAgIFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNy
ZWF0ZURvY3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vi
c3RpdHV0ZURhdGEoKSk7CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZy
YW1lKHJlcXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCkpOwogICAgIGxvYWRl
ci0+c2V0QWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xp
ZW50T3JVc2VySW5wdXQoKSk7CisgICAgbG9hZGVyLT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJS
ZXNwb25zZVBvbGljeUNoZWNrKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkg
PT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVj
aXNpb24pOwogICAgIGFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKGxvYWRlci0+cmVx
dWVzdCgpKTsKICAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3Vt
ZW50TG9hZGVyKG1fZnJhbWUsIGxvYWRlciwgcmVxdWVzdCk7CiAKLSAgICBpZiAocmVxdWVzdC5z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSkgeworICAgIGlmIChyZXF1ZXN0LnNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8p
IHsKICAgICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkocmVx
dWVzdC5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CiAgICAgICAgIGlmIChyZXF1
ZXN0LmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsK
ICAgICAgICAgICAgIGxvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEs
NyArMTQ4NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJl
cXVlc3QpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWlu
Z1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUs
IHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPyBMb2FkQ29udGludWluZ1N0
YXRlOjpDb250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250
aW51aW5nKTsKKyAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5n
TG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/
IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51
aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApA
QCAtMzc2OCw3ICszNzcxLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb20KIAogICAgIGF1dG8g
aW5pdGlhdGVkQnlNYWluRnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAot
ICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQo
bV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
ID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0
ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVp
bmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29u
dGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdT
dGF0ZTo6Tm90Q29udGludWluZyk7CiAKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9
IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkp
IHsKICAgICAgICAgYXV0byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9h
ZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmM2JkYmVmY2EzOWZi
ZmMyM2Y5ZDE0YzliMjcxMTIyNmRlMjRhMGIuLmU1NmMwOGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVj
ZDg4NDIyYWY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC04Miw3ICs4
Miw3IEBAIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogZW51bSBjbGFzcyBDYWNoZVBvbGljeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dyZXNzIDogYm9vbDsKIGVudW0gY2xhc3Mg
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgVXNlZExlZ2FjeVRMUyA6IGJvb2w7CiBl
bnVtIGNsYXNzIElzTWFpblJlc291cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3Mg
U2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtMjIw
LDcgKzIyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsK
IAotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwor
ICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
Q29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0
T3BlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IDNlYjVjZWU2NDI2YzQ0ZGMxNzQyMjIxNWZhYWIxNTY5MzFkYjJkOWQuLjM5YmI0MDU0MDljNDE3
NDc4NWE5MzcyMjgzMDAxODYzYzBhODc3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsUG9saWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5oCmluZGV4IDZkNWRlODRmMjE3OTg4NjNiYThlZWRlOGI2NDZmZTk0OGE0NTg4MmIuLjEw
MzdkZjk4ZWM0MTU1NGJmYjFkYjYyYjg5NjgyZDgzN2ZhNjU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEZyYW1l
OwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWVu
dW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3Mg
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogc3RydWN0IFN0cmluZ1dp
dGhEaXJlY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQuaAppbmRleCA3NmUwOTM1MDViY2JiZTY2ZDIyNDUyZDJmNWI3OTVi
M2Q1ZDg1M2E0Li5hYjEzNTNiY2MwODJlNDFiYTU4OWM5YzI5YzIxMDg1M2EzOTk1Mjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBj
bGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90IHsgTm8sIFllc0FmdGVy
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24g
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC0zOSw3ICszOSw4IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
PiB7CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLAogICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Ok5vLAotICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6OlllcworICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLAorICAgICAgICBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lv
bgogICAgID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDQ4N2M5YjJiNWVmNDk0NmM5Y2JlOTg5
ZjNlNzc2MWYwOGU2MWQ4MGUuLjkyNTViZjMxM2M2N2Q3MTQ4MTVjZjc4MTUyNjZmZmQ4MDViMjJm
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgdXNpbmcgU2hhcmVkU3RyaW5n
SGFzaCA9IHVpbnQzMl90OwogZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3Mg
RGlkV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7
Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNs
YXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3Mg
RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZl
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IGYwOWQwYmM1ZTM4
NzMxYWVhNzVkYzIzZjc5MDlmM2Y2ZDBlMjAwZDQuLjIyZmU3YzVlNDQ4ZGNlMjNjYjVlMzkwMzQ4
ZTVkYmQ3MzNhNDM2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpDX0NMQVNTIE5T
RGljdGlvbmFyeTsKQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKIAog
ICAgIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSB7IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93IH07Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBm
YWxzZSB9OworICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgeyBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Ok5vIH07CiAgICAgVXNlckRhdGEgdXNlckRhdGE7CiAgICAgV2ViQ29yZTo6TG9ja0hpc3Rv
cnkgbG9ja0hpc3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBXZWJDb3Jl
OjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2Nr
QmFja0ZvcndhcmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGM2NTRjYjhjMTIyMWFmODExZjZiMGE3M2IzZTFk
Zjk0MzViMmI3NmQuLjQxY2QzNWRiZmE4ZDBlMzRiZDFlYjQ5ZjVkNTc0ZjJjMzcwMGJkNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
QEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFBST1ZJ
U0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xP
RyhjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQ
Ukl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fbmF2
aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogI2RlZmluZSBQUk9WSVNJT05BTFBBR0VQUk9YWV9S
RUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1IoY2hh
bm5lbCwgIiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0
ICIsIFBJRD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94
eTo6IiBmbXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX25hdmlnYXRp
b25JRCwgIyNfX1ZBX0FSR1NfXykKIAotUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFs
UGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJz
aXRlUG9saWNpZXMpCitQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6
dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29t
bWl0LCBBUEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0ZVBvbGljaWVzKQogICAgIDogbV9wYWdl
KHBhZ2UpCiAgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5kZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+
d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fcHJvY2Vz
cyhXVEZNb3ZlKHByb2Nlc3MpKQpAQCAtNjYsNiArNjYsNyBAQCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1BybwogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlzU2VydmVyUmVkaXJlY3QpCiAgICAgLCBt
X3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1fcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudChw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQorICAgICwgbV9zaG91bGRDbG9zZVByZXZpb3Vz
UGFnZUFmdGVyQ29tbWl0KHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQpCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fcHJvdmlzaW9uYWxMb2FkQWN0aXZpdHkobV9w
cm9jZXNzLT50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHkoIlByb3Zpc2lvbmFsIExvYWQi
X3MpKQogI2VuZGlmCkBAIC0xNjIsMTYgKzE2MywxOCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojppbml0aWFsaXplV2ViUGFnZShSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vi
cwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGcmVlemVMYXllclRyZWVEdWVUb1N3
aXBlQW5pbWF0aW9uKCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0
YShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29u
c3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4s
IHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNp
YmlsaXR5KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0
dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSkKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBp
bmcsICJsb2FkRGF0YToiKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
ICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCi0gICAgbV9w
YWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93
ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwg
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksIG5hdmln
YXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9u
LCBkYXRhLCBtaW1lVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUo
d2Vic2l0ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiB9CiAK
LXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBp
c05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9h
ZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNp
ZXMpCiB7CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBw
aW5nLCAibG9hZFJlcXVlc3Q6Iik7CisgICAgQVNTRVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCAhPSBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKIAogICAg
IC8vIElmIHRoaXMgaXMgYSBjbGllbnQtc2lkZSByZWRpcmVjdCBjb250aW51aW5nIGluIGEgbmV3
IHByb2Nlc3MsIHRoZW4gdGhlIG5ldyBwcm9jZXNzIHdpbGwgb3ZlcndyaXRlIHRoZSBmcm9tSXRl
bSdzIFVSTC4gSW4gdGhpcyBjYXNlLAogICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVw
ZGF0ZSBmcm9tSXRlbSdzIHByb2Nlc3NJZGVudGlmaWVyIGFzIHdlIHdhbnQgZnV0dXJlIG5hdmln
YXRpb25zIHRvIHRoaXMgQmFja0ZvcndhcmQgaXRlbSB0byBoYXBwZW4gaW4gdGhlCkBAIC0xNzks
NyArMTgyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpO
YXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBpZiAobmF2aWdhdGlvbi5m
cm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IFdlYkNvcmU6
OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgp
LT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZp
ZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0
KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNp
ZXMpKTsKKyAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwg
bmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpX
ZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTk5LDcgKzIwMiw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBXZWJCCiAgICAgICAgIHdlYnNpdGVQb2xpY2llc0RhdGEgPSB3ZWJz
aXRlUG9saWNpZXMtPmRhdGEoKTsKICAgICAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
cGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChXVEZNb3ZlKGl0ZW1TdGF0ZXMpKSk7Ci0g
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9u
Lm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZy
YW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMs
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0u
aXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKSk7CiAgICAgbV9wcm9jZXNzLT5z
dGFydFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIApAQCAtMjI3LDggKzIzMCw5IEBAIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgbWFpbiBmcmFt
ZSdzIGNvbW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRzIG1heSByZWx5IG9uIGl0IHVudGlsIHRo
ZSBuZXh0IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBtX3Bh
Z2UubWFpbkZyYW1lKCkpCi0gICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNl
dFVSTChtYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkudXJsKCkpOworICAgIFJlZlB0ciBwcmV2
aW91c01haW5GcmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKTsKKyAgICBpZiAocHJldmlvdXNNYWlu
RnJhbWUpCisgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTChwcmV2
aW91c01haW5GcmFtZS0+dXJsKCkpOwogCiAgICAgLy8gTm9ybWFsbHksIG5vdGlmaWNhdGlvbiBv
ZiBhIHNlcnZlciByZWRpcmVjdCBjb21lcyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuCiAg
ICAgLy8gSWYgd2UgYXJlIHByb2Nlc3Mgc3dhcHBpbmcgaW4gcmVzcG9uc2UgdG8gYSBzZXJ2ZXIg
cmVkaXJlY3QgdGhlbiB0aGF0IG5vdGlmaWNhdGlvbiB3aWxsIG5vdCBjb21lIGZyb20gdGhlIG5l
dyBXZWJDb250ZW50IHByb2Nlc3MuCkBAIC0yMzYsNiArMjQwLDEwIEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
ICAgICBpZiAobV9pc1NlcnZlclJlZGlyZWN0KSB7CiAgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFt
ZUxvYWRTdGF0ZSgpLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKG1fcmVxdWVzdC51cmwoKSk7CiAg
ICAgICAgIG1fcGFnZS5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX21haW5GcmFtZS0+ZnJhbWVJRCgp
LCBtX25hdmlnYXRpb25JRCwgV1RGTW92ZShtX3JlcXVlc3QpLCB7IH0pOworICAgIH0gZWxzZSBp
ZiAocHJldmlvdXNNYWluRnJhbWUgJiYgIXByZXZpb3VzTWFpbkZyYW1lLT5wcm92aXNpb25hbFVS
TCgpLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBJbiBjYXNlIG9mIGEgcHJvY2VzcyBzd2FwIGFm
dGVyIHJlc3BvbnNlIHBvbGljeSwgdGhlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIGFscmVhZHkg
aGFwcGVuZWQgYnV0IHRoZSBuZXcgbWFpbiBmcmFtZSBkb2Vzbid0IGtub3cgYWJvdXQgaXQKKyAg
ICAgICAgLy8gc28gd2UgbmVlZCB0byB0ZWxsIGl0IHNvIGl0IGNhbiB1cGRhdGUgaXRzIHByb3Zp
c2lvbmFsIFVSTC4KKyAgICAgICAgbV9tYWluRnJhbWUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
KHByZXZpb3VzTWFpbkZyYW1lLT5wcm92aXNpb25hbFVSTCgpKTsKICAgICB9CiB9CiAKQEAgLTMy
MiwxMyArMzMwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2lu
YXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJ
RCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBm
cmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVz
cG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJh
bWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRh
KTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IGE3ZmI2NmE2ZGFhNzM3Yzkw
NjA5MDdjMDg5NmYwY2JjOTRlYjM4MGUuLjI3MTRiMmE1YjU0N2YyNjY3ZmNiNDZmY2VmMWI1Nzg0
ZmJjZjU4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
OiB1aW50OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxLDcgKzcyLDcgQEAgdXNp
bmcgTGF5ZXJIb3N0aW5nQ29udGV4dElEID0gdWludDMyX3Q7CiBjbGFzcyBQcm92aXNpb25hbFBh
Z2VQcm94eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2Fn
ZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUHJv
dmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
c3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBBUEk6OldlYnNpdGVQb2xpY2llcyopOwor
ICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRDbG9zZVBy
ZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCBBUEk6OldlYnNpdGVQb2xpY2llcyopOwogICAgIH5Qcm92
aXNpb25hbFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlOyB9CkBAIC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25JRDsgfQogICAgIGNvbnN0
IFVSTCYgcHJvdmlzaW9uYWxVUkwoKSBjb25zdCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsTG9hZFVS
TDsgfQogCisgICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0OyB9CisKICAg
ICBEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2lu
Z0FyZWEuZ2V0KCk7IH0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gdGFr
ZURyYXdpbmdBcmVhKCk7CiAKQEAgLTEwMSw4ICsxMDQsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICNl
bmRpZgogCi0gICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eSk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlv
bmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmID0gc3RkOjpudWxsb3B0KTsKKyAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2
aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0
ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlz
dG9yeVZpc2liaWxpdHkpOworICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0g
c3RkOjpudWxsb3B0KTsKICAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0
aW9uJiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2ll
cz4mJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIApAQCAtMTIwLDExICsxMjMsOCBAQCBwcml2YXRl
OgogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25T
ZXQ8SVBDOjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKLSAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5m
b0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJQ
YWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVp
bnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFt
ZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2lu
YXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKKyAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZv
RGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAg
dm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0x
MzksOSArMTM5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlRGljdGlvbmFyeUZyb21XZWJQcm9jZXNzKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ6OlZhbHVlRGljdGlvbmFyeSYsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9p
ZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9p
ZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50
aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdENv
dW50cyYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0
YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJh
bWVJbmZvLAotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRp
b25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgcmVxdWVzdFBh
c3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVO
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNlbmRpZgpA
QCAtMTcxLDYgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVxdWVzdDsKICAgICBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IG1fcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudDsKICAgICBib29sIG1fd2FzQ29tbWl0dGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCB7IGZhbHNlIH07
CiAgICAgVVJMIG1fcHJvdmlzaW9uYWxMb2FkVVJMOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyNjdkYjk5Mjg2M2M1
MGQwOTRiMjRmYzQyNTZjMzY2MmRhN2VmYjRlLi5iM2JlZjYxOTUyM2EyMmY4NmU4MjMwN2IyOWY0
MWY3NjlmNmFlYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTEzOTAsNyArMTM5MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgYXV0byB0
cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCiAgICAgYXV0byB1
cmwgPSByZXF1ZXN0LnVybCgpOwotICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
IT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMpCisgICAgaWYgKHNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKQogICAg
ICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3QodHJhbnNhY3Rpb24sIHsg
bmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgdXJsLnN0cmluZygpIH0pOwogCiAgICAgTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CkBAIC0xMzk4LDcgKzEzOTgsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVl
c3QpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRh
ID0gVXNlckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSku
Z2V0KCkpOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6OlllczsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
PSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0
ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0
ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3Qo
KTsKQEAgLTE1MjUsNyArMTUyNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2Fk
UGFyYW1ldGVycy5NSU1FVHlwZSA9IE1JTUVUeXBlOwogICAgIGxvYWRQYXJhbWV0ZXJzLmVuY29k
aW5nTmFtZSA9IGVuY29kaW5nOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBi
YXNlVVJMOwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6OlllczsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
PSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRh
dGEgPSBVc2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRh
KS5nZXQoKSk7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwpAQCAtMTU3OCw3ICsxNTc4
LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVk
UmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXUKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGlu
Z05hbWUgPSBzaW11bGF0ZWRSZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgbG9hZFBh
cmFtZXRlcnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA9IGZhbHNlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm87CiAgICAg
bG9hZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLT5sb2NrSGlzdG9yeSgpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLT5sb2Nr
QmFja0ZvcndhcmRMaXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5ID0gbmF2aWdhdGlvbi0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5
KCk7CkBAIC0zNTE4LDcgKzM1MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAg
ICAgICAgaWYgKHN1c3BlbmRlZFBhZ2UgJiYgc3VzcGVuZGVkUGFnZS0+cGFnZUlzQ2xvc2VkT3JD
bG9zaW5nKCkpCiAgICAgICAgICAgICAgICAgc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKLSAg
ICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZN
b3ZlKHN1c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikp
OworICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24s
IFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVz
LCBudWxscHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBu
YXZpZ2F0aW9uLT5yZWxvYWRJdGVtKCkgPyBuYXZpZ2F0aW9uLT5yZWxvYWRJdGVtKCkgOiBuYXZp
Z2F0aW9uLT50YXJnZXRJdGVtKCk7CiAgICAgICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBv
bGljeUFjdGlvbjo6VXNlICYmIGl0ZW0pIHsKQEAgLTM2MDUsNyArMzYwNSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lSW5mb0RhdGEmCiAKICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlE
KTsKICAgICBhdXRvKiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbiht
X3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCkpOwotICAgIGJvb2wgZGlkU3VzcGVuZFBy
ZXZpb3VzUGFnZSA9IG5hdmlnYXRpb24gPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKCpu
YXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lvbmFsUGFn
ZS0+cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3NpbmdVbnRp
bEZpcnN0TGF5ZXJGbHVzaCkgOiBmYWxzZTsKKyAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1Bh
Z2UgPSBuYXZpZ2F0aW9uICYmICFtX3Byb3Zpc2lvbmFsUGFnZS0+c2hvdWxkQ2xvc2VQcmV2aW91
c1BhZ2VBZnRlckNvbW1pdCgpID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdh
dGlvbiwgbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJz
dExheWVyRmx1c2gpIDogZmFsc2U7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlz
LCBtX3dlYnNpdGVEYXRhU3RvcmUucHRyKCkgPT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNz
KCkud2Vic2l0ZURhdGFTdG9yZSgpID8gV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3Rv
cmU6Ok5vIDogV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7CiAKICAg
ICAvLyBUaGVyZSBpcyBubyB3YXkgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gdG8gdGhlIHBhZ2Ug
aW4gdGhlIHByZXZpb3VzIHBhZ2Ugc28gY2xvc2UgaXQuCkBAIC0zNjIwLDExICszNjIwLDEyIEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmCiAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaWRD
b21taXRQcm92aXNpb25hbFBhZ2Uob2xkV2ViUGFnZUlELCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYm
IHN1c3BlbmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVk
UGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JF
TEVBU0VfTE9HKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1By
b2Nlc3NQSUQ9JWksIGhhc1N1c3BlbmRlZFBhZ2U9JWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCAhIXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWlu
ZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZp
Z2F0aW9uLm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAg
UkVMRUFTRV9BU1NFUlQoIW5ld1Byb2Nlc3MtPmlzSW5Qcm9jZXNzQ2FjaGUoKSk7CisgICAgQVNT
RVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6Ok5vKTsKIAogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSkgewogICAgICAgICBXRUJQ
QUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiY29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzOiBUaGVyZSBpcyBhbHJlYWR5IGEgcGVuZGluZyBwcm92aXNpb25hbCBsb2Fk
LCBjYW5jZWxsaW5nIGl0IChwcm92aXNvbmFsTmF2aWdhdGlvbklEPSVsbHUsIG5hdmlnYXRpb25J
RD0lbGx1KSIsIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5u
YXZpZ2F0aW9uSUQoKSk7CkBAIC0zNjMzLDkgKzM2MzQsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHMKICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KIAotICAg
IG1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRo
aXMsIFdURk1vdmUobmV3UHJvY2VzcyksIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCks
IG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgd2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGludWF0aW9uID0gW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYo
bmF2aWdhdGlvbiksIHdlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0o
KSBtdXRhYmxlIHsKKyAgICBib29sIGlzU2VydmVyU2lkZVJlZGlyZWN0ID0gc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gJiYgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdElzUmVk
aXJlY3QoKTsKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgPSBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb247CisgICAgbV9wcm92aXNpb25hbFBhZ2Ug
PSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9j
ZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwg
aXNTZXJ2ZXJTaWRlUmVkaXJlY3QsIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1p
dCwgd2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKKyAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5h
dmlnYXRpb24pLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHdlYnNpdGVQb2xpY2llcyA9
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8q
IGl0ZW0gPSBuYXZpZ2F0aW9uLT50YXJnZXRJdGVtKCkpIHsKICAgICAgICAgICAgIExPRyhMb2Fk
aW5nLCAiV2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyB0byBi
YWNrIGl0ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAg
LTM2NTksOSArMzY2MSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIC8vIEZJ
WE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBk
ZWxlZ2F0ZSwgZXRjCiAgICAgICAgIEFTU0VSVCghbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3Qo
KS5pc0VtcHR5KCkpOwogICAgICAgICBpZiAoYXV0byYgc3Vic3RpdHV0ZURhdGEgPSBuYXZpZ2F0
aW9uLT5zdWJzdGl0dXRlRGF0YSgpKQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxv
YWREYXRhKG5hdmlnYXRpb24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJz
dGl0dXRlRGF0YS0+Y29udGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBz
dWJzdGl0dXRlRGF0YS0+ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0
dXRlRGF0YS0+dXNlckRhdGEuZ2V0KCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwg
V1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEo
bmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVE
YXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1
dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRh
LT51c2VyRGF0YS5nZXQoKSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0
aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbiwgUmVzb3Vy
Y2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBudWxscHRyLCBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkp
OworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24s
IFJlc291cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0
ciwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwogICAgIH07CiAgICAgaWYgKG1f
aW5zcGVjdG9yQ29udHJvbGxlci0+c2hvdWxkUGF1c2VMb2FkaW5nKCptX3Byb3Zpc2lvbmFsUGFn
ZSkpCiAgICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0Q29udGludWVMb2FkaW5nQ2Fs
bGJhY2soKm1fcHJvdmlzaW9uYWxQYWdlLCBXVEZNb3ZlKGNvbnRpbnVhdGlvbikpOwpAQCAtNTYx
NCwxMyArNTYxNiwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5m
byksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dN
SU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBh
Z2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwK
LSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRh
JiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTYzMyw3ICs1NjM1LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2
aWdhdGlvbklEID8gbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6
IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uUmVzcG9uc2UgPSBBUEk6Ok5hdmlnYXRpb25S
ZXNwb25zZTo6Y3JlYXRlKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShmcmFtZUluZm8p
LCB0aGlzKS5nZXQoKSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUpOwogCi0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVw
UG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCB3ZWJQYWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24g
PSBXVEZNb3ZlKG5hdmlnYXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1l
LT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgd2ViUGFnZUlELCBmcmFtZUlELCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0
aW9uKSwKICAgICAgICAgcHJvY2VzcywgbmF2aWdhdGlvblJlc3BvbnNlXSAoUG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxTYWZlQnJvd3Np
bmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pIG11dGFibGUg
ewogICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMg
bnVsbHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRo
UG9saWNpZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CkBAIC01
NjQyLDkgKzU2NDQsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICAgICAgYXV0byBz
ZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdl
SUQsIGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoY29u
c3QgYXV0byYgcG9saWN5RGVjaXNpb24pIHsKICAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5l
cklELCBwb2xpY3lEZWNpc2lvbiwgY3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
aW9ucyhwcm9jZXNzKSksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOworCisgICAgICAgIGF1dG8g
d2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nl
c3M6Ok5vOworICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYm
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggJiYgbmF2aWdhdGlvbikgeworICAgICAg
ICAgICAgUmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4geyBuYXZpZ2F0aW9uUmVzcG9u
c2UtPnJlc3BvbnNlKCkudXJsKCkgfTsKKyAgICAgICAgICAgIC8vIEF2b2lkIHByb2Nlc3Mtc3dh
cHBpbmcgaW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25seSBjb250YWlucyBhIHNpbmdsZSBw
YWdlIGFuZCBpcyBvcmlnaW4tY2xlYW4uCisgICAgICAgICAgICBpZiAodGhpcy0+cHJvY2Vzcygp
LnBhZ2VDb3VudCgpID4gMSB8fCAodGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVE
b21haW4oKSAmJiAqdGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAh
PSByZXNwb25zZURvbWFpbikpIHsKKyAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFT
RV9MT0coTG9hZGluZywgImRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkOiBQcm9jZXNzLXN3
YXBwaW5nIGR1ZSB0byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSIpOworICAgICAgICAgICAg
ICAgIHBvbGljeUFjdGlvbiA9IFBvbGljeUFjdGlvbjo6SWdub3JlOworICAgICAgICAgICAgICAg
IGF1dG8gcHJvY2Vzc0Zvck5hdmlnYXRpb24gPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucHJv
Y2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHdlYnNpdGVEYXRhU3RvcmUoKSwgdGhpcywgcmVzcG9u
c2VEb21haW4pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cygqbmF2aWdhdGlvbiwgbnVsbHB0ciwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAg
ICAgICAgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5l
d1Byb2Nlc3M6OlllczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCks
IG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5kZXIpKTsK
KyAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24u
Z2V0KCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvblJlc3BvbnNlKSwgV1RGTW92ZShzZW5k
ZXIpLCB7IH0sIHdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MpOwogICAgIH0sIFNob3VsZEV4
cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm8sIFNob3VsZEV4cGVjdEFwcEJvdW5kRG9tYWluUmVz
dWx0OjpObykpOworCisgICAgaWYgKHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlKSB7CisgICAg
ICAgIGxpc3RlbmVyLT51c2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICht
X3BvbGljeUNsaWVudCkKICAgICAgICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKCp0aGlzLCAqZnJhbWUsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUs
IFdURk1vdmUobGlzdGVuZXIpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVz
ZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAzYjQ2OGVjNjQ4NmM0NmZkN2Y1NTcwZWZmYWQ2MjA4ZWYyYTVh
NGQ0Li40YzcwOTljNDhjMDVlNjNmZWU4Y2Y0ODFlYWUwMTVhOTkxMzMyNTI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjY5LDcgKzI2OSw3IEBAIGVudW0gY2xh
c3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFy
aW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgU2VsZWN0aW9uRGlyZWN0aW9uIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlIDogYm9vbDsKLWVudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgV3JpdGluZ0RpcmVjdGlvbiA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBBcHBIaWdobGlnaHQ7CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJh
bWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdG
cmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0Rh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVy
cyYmKTsKICAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFdlYkNvcmU6
OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9h
ZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6
Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmID0gc3RkOjpudWxsb3B0KTsKQEAgLTIwNTksNyArMjA1OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAotICAgICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5Jik7CiAKQEAgLTI0NjEsNyArMjQ2MSw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHJlcG9ydFBhZ2VMb2FkUmVzdWx0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0g
eyB9KTsKIAotICAgIHZvaWQgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2
aWdhdGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxBUEk6
OldlYnNpdGVQb2xpY2llcz4mJik7CisgICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94
eT4mJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJz
aXRlUG9saWNpZXM+JiYpOwogCiAgICAgdm9pZCBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wp
OwogICAgIHZvaWQgdXBkYXRlRm9udEF0dHJpYnV0ZXNBZnRlckVkaXRvclN0YXRlQ2hhbmdlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggYTBiNzM5NTM2YjYwM2Y0OGI2OTk5YjI3NGIxNGU2MjYyZDMxMjgxMy4uMmNlM2YxZDQ5
NjE0MjEwM2RmY2E2YWJhZTUwNDhlMjBmNjkwZDg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTA3LDcgKzEwNyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgICMgUG9saWN5IG1lc3NhZ2Vz
Ci0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25s
b2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQorICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBk
b3dubG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6
RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBw
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktp
dDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFs
PFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWlu
RnJhbWUsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoc3RydWN0IFdlYktpdDo6UG9saWN5RGVj
aXNpb24gUG9saWN5RGVjaXNpb24pIFN5bmNocm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlv
bkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApp
bmRleCBmNDFiZTMwYjc4NjQ0MTJlMjI3Yjc2NDEyODlkMmVjMDU4Y2Y3MTc2Li5hNDBlNjlkZmE1
MjJkZWRlYmFmZGI1ZmM2YjllNzFmY2I5YjRiMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTUzLDYgKzE1Myw3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4pIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW4gPyAqbV9y
ZWdpc3RyYWJsZURvbWFpbiA9PSBkb21haW4gOiBmYWxzZTsgfQogICAgIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3Ry
YWJsZURvbWFpbi52YWx1ZV9vcihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IH0pOyB9Cisg
ICAgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mIG9wdGlv
bmFsUmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWlu
OyB9CiAgICAgdm9pZCBzZXRJc0luUHJvY2Vzc0NhY2hlKGJvb2wpOwogICAgIGJvb2wgaXNJblBy
b2Nlc3NDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJblByb2Nlc3NDYWNoZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0MGJlNjFjMjBmY2I4ZDNhZjcxMDNmYWNj
MzczYTIwYzkxNjYzMzA5Li40YmNhYmY0OGQzMjY3NjQ2Y2QxYjM1NzMxNDdiOTM3NTcxZGI2Y2Rh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNiw3ICs4MTYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNo
b3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAg
ICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1
ZXN0LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rp
b25Vc2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3Rl
ZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRl
ciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBp
bmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgor
ICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5U
X1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBj
b250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVu
Y3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBA
IC04NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9s
aWN5RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQg
PSBwb2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4o
KnBvbGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvblVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVp
bnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZp
ZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8p
OwotICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSkpIHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNw
b25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgp
KS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVz
ZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAg
ICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVj
aXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAw
LCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFh
M2E4NjAxNzU3MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2
YzY0ZjQxMWRiZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdG
cmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsK
ICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZThlZWQ1NWVlYzRlZWUyMGI3NzNiYjk0YzQ2MGFiMjQ0MWYw
OGRmYi4uNDk4MDVkYTNkMWE5YzE2Mzg4MTcxNjVkMzE3ODg5ZWYyMTdjZmVmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcy
Myw3IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nl
c3NMYXVuY2goTG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdh
dGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4m
JiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9u
c2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1
ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkg
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQogICAgIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3OGQ4MzBkYTQyZDk1NjdjZGY5NWNmYTFmZTMy
NzMzMDJmZjNiMjFjLi44ZTM0ZDZkNzFlZDRjMDI5OWUwNWM3NjVjMDdhNGEwM2JkOWRjZTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjQsNyAr
MjI0LDcgQEAgZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVu
dW0gY2xhc3MgSGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNs
YXNzIEhpZ2hsaWdodFZpc2liaWxpdHkgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJl
Y3Rpb24gOiB1aW50OF90OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
OiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90
OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFRleHRHcmFudWxhcml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAg
cHJpdmF0ZToKIAogICAgIFN0cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0gICAg
dm9pZCBsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBS
ZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0
IFVzZXJEYXRhJiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdl
YkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwodWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0ZDo6
b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBmODdiNDU5Zjg2ZjcwZTYw
NTkyNDYzYmQ5ZTU5MTc3N2Y5ZjAyMjAwLi5mMWI1YTgyZDRmOTg2NWFlNmUwYTgyZmQ1NzJmMjNk
OTc5M2E0ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZQogICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qg
c2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAK
LSAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06
dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29s
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJz
aXRlUG9saWNpZXMpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJk
SXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5
cGUsIGVudW06dWludDhfdCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlv
bigpCiAKICAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggMTUyZmRhMWY2ZWQ1N2UyOTlhZGUzNGQwN2VlOGRiYjRlMmMxZWVhNy4uMDUxNjI3MDA5YTY2
ZTEyNGFhOTYzNjM3ODRhNmQ3NGNlYjA0M2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0
Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpO
ZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5h
bDsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0
YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9p
ZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpp
bmRleCBiZmRlM2VkNzY3OWI5Yjk4MGM4NWYzM2QxODkxZjhjNzg1ZWVkODZkLi4wY2ZiZWVlMDQ0
N2QyZTI4NTc3MjJmZTBhNjY0MTUxOTQwOWIyYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbQpAQCAtODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoU2hvdygpCiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hv
dzp3ZWJWaWV3XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdl
dFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCA0ZDA0MGY1NjQ2ZWI4MjQxYTkyYmM3YzJkYzc4ZjZkZmQ5NmRhZDBhLi5jNWFmYTEz
MzdkYjRlMmZiNjdjZWU0MGYxMDQ1ZjFjNjk2YWMyN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hTaG93KCkKICAgICAgICAgdWktPndlYlZpZXdTaG93KHdlYlZpZXcpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24m
JiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmll
dygpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggNmRhYzBiMDUyMTgzOTE2NjIwODk2NDFmNjVhZTk0MmMyOWI4
OTZkOC4uNjE0NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVhNjExYWZkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFj
aExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2Vi
Q29yZTo6Rm9ybVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDkwYWY4ZGQ5NDllOGJl
YWRjOTRhOGZjNTIwYjM0MTUzMTM5YmYxZmUuLmZmOGRkM2EzMWQ2ZDI4MmM4MjI3MWQ2MDY5NDFm
YWE2NjVmMzFiYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJh
c2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIHRvIHZhbGlkYXRlIHRoYXQg
d2UgYXJlIGluZGVlZCBwcm9jZXNzLXN3YXBwaW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAg
KC1bUFNPTlNjaGVtZSBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp0b0RhdGE6d2l0aENPT1BWYWx1
ZTpdKToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpd
KToKKwogMjAyMS0wOC0xOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgZG9jdW1lbnQuaGFzRm9jdXMoKSByZXR1cm5zIHRydWUgZm9yIHVuZm9j
dXNlZCBwYWdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggZjliOGRhZjY5
ZjQ0NzQyNzk1ZmQ4ZjkxNmM2ZjZmODViNDBlNDg2MS4uMjI0Yzk0MmU4N2M3NGU0NjU0NzIyMGQ4
ZjRiNTg1NGE0YTE2ODVmZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0y
NTAsMTIgKzI1MCwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPiB7CiAgICAgY29uc3QgY2hhciogX2J5dGVzOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxO
U0RhdGE+PiBfZGF0YU1hcHBpbmdzOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29w
VmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7
CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVj
dEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihO
U1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOwor
LSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9E
YXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1
ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUKQEAgLTI3Nyw2ICsyNzksMTMg
QEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcg
dG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3RyaW5n
LCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxlbihk
YXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAorLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0
cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhD
T09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQoreworICAgIFtzZWxmIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07CisgICAgaWYgKGNvb3BWYWx1ZSkK
KyAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywgY29vcFZhbHVlKTsKK30KKwogLSAo
dm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKIHsKICAgICBf
c2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5ID0gdmFsdWU7CkBAIC0zMTEsOCArMzIwLDE1IEBA
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6
KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIFsoaWQ8V0tVUkxTY2hlbWVUYXNrUHJp
dmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkg
bmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAgICB9CiAKLSAgICBkb0FzeW5jaHJvbm91c2x5
SWZOZWNlc3NhcnkoW2ZpbmFsVVJMID0gcmV0YWluUHRyKGZpbmFsVVJMKV0oaWQgPFdLVVJMU2No
ZW1lVGFzaz4gdGFzaykgewotICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwu
Z2V0KCkgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRF
bmNvZGluZ05hbWU6bmlsXSk7CisgICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtzZWxm
LCBmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRh
c2spIHsKKyAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtO
U011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAgICAgICBbaGVhZGVyRGljdGlvbmFy
eSBzZXRPYmplY3Q6QCJ0ZXh0L2h0bWwiIGZvcktleTpAIkNvbnRlbnQtVHlwZSJdOworICAgICAg
ICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCIxIiBmb3JLZXk6QCJDb250ZW50LUxlbmd0
aCJdOworICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwg
YWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1
ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSJdOworCisgICAgICAgIGF1dG8g
cmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBWZXJzaW9uOkAiSFRUUC8xLjEiIGhl
YWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVS
ZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAgICAgfSwgMC4xKTsKIApAQCAtNDA5LDggKzQyNSw2
IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7
CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0
aWMgY29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzID0gUiJQ
U09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpAQCAt
NDg4LDYgKzUwMiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIDwvc2NyaXB0Pgog
KVBTT05SRVNPVVJDRSI7CiAKKyNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMgY29uc3QgY2hhciog
bGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewpAQCAtNDk3LDgg
KzUxMiw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2
ZW50KSB7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBs
ZS5jb20vbWFpbi5odG1sIj5OYXZpZ2F0ZTwvYT4KIClQU09OUkVTT1VSQ0UiOwotCi0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQorI2VuZGlmCiAKIHN0YXRpYyBSZXRhaW5QdHI8X1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uPiBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCkKIHsKQEAgLTEx
OTcsOCArMTIxMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXNz
aW9uUmVzdG9yZSkKICAgICBFWFBFQ1RfTkUocGlkMywgcGlkNCk7CiB9CiAKLSNpZiBQTEFURk9S
TShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikK
IHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24oKTsKQEAgLTEyMDYsNiArMTIxOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93
T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04i
XTsKQEAgLTEyNDUsNiArMTI1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0
U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRv
d09wZW5Dcm9zc09yaWdpbkJ1dFNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI4NSw2ICsxMjk5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
Q3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndp
bmRvd09wZW5Dcm9zc1NpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
IlBTT04iXTsKQEAgLTEzMjQsNiArMTMzOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRl
V2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05T
Y2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6d2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0
Qnl0ZXNdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpo
YW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKIApAQCAtMTM2Miw2ICsxMzc4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaXRoT3BlbmVyKQogCiAg
ICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZVdpdGhFeHBsaWNpdE9wZW5l
clRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDAxLDYgKzE0MTgs
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldEltcGxpY2l0Tm9PcGVu
ZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
c2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEltcGxp
Y2l0Tm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQ0
MCw2ICsxNDU4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXROb09w
ZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVOb09wZW5l
clRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDc5LDYgKzE0OTgs
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAg
ICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107
CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNTExLDggKzE1MzEsNiBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAgICAgRVhQRUNUX0VRKHBp
ZDEsIHBpZDIpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NT
d2FwLCBTZXJ2ZXJSZWRpcmVjdEZyb21OZXdXZWJWaWV3KQogewogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTA5
NCw4ICs1MTEyLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZGluZ1N0YXRlQWZ0ZXJQb2xpY3lE
ZWNpc2lvbikKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjpsb2FkT2JzZXJ2ZXIuZ2V0KCkg
Zm9yS2V5UGF0aDpAIlVSTCIgY29udGV4dDp3ZWJWaWV3LmdldCgpXTsKIH0KIAotI2lmIFBMQVRG
T1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHNhdmVPcGVuZXJUZXN0Qnl0ZXMgPSBSIlBT
T05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC01
MTA3LDYgKzUxMjMsOCBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiBURVNUKFByb2Nl
c3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVu
ZXIpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVT
OworCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRd
KTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRl
c3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTE4MCw2ICs1
MTk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFBy
b2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVy
QVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVlKQogewogICAgIGF1dG8gd2ViVmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBh
ZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0
YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6c2F2
ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MjM1LDggKzUyNTQsNiBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZWUpCiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBlbnVtIGNs
YXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CiBzdGF0aWMgdm9pZCBydW5Qcm9jZXNzU3dhcER1
ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5TVVJMKiByZWxhdGVkVmlld1VSTCwgTlNVUkwqIHRhcmdl
dFVSTCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewpAQCAtNzE1MSwzICs3MTY4LDIzMyBAQCBU
RVNUKFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVuRW50ZXJpbmdDYWNoZSkKICAgICAvLyBDbGVh
ciB0aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0aGUgcHJvY2Vzc2VzIGFyZSBiZWluZyBjaGVj
a2VkIGZvciByZXNwb25zaXZlbmVzcy4KICAgICBbcHJvY2Vzc1Bvb2wgX2NsZWFyV2ViUHJvY2Vz
c0NhY2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc09yaWdpbkNP
T1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LmFwcGxlLmNvbS9w
b3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworc3Rh
dGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNP
TlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3
ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAiZm9vIik7Cit9Cis8L3NjcmlwdD4KKylQU09O
UkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07
CitlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0
YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwg
Y29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBE
b1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5ID0gWUVTOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
ZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAg
ICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVd
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGhhbmRs
ZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIGlmIChpc1NhbWVP
cmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6
d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09P
UF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJdOworICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1
ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVy
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0
bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9
IGVsc2UgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5D
T09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1Nl
cnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAg
ICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxl
LmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVw
LWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3Qu
aHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENP
T1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0KKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04i
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3
Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRv
cHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIF9fYmxv
Y2sgdW5zaWduZWQgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzID0gMDsKKyAgICBuYXZpZ2F0aW9u
RGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFuZGxlciA9IF57CisgICAg
ICAgICsrbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzOworICAgIH07CisKKyAgICBbd2ViVmlldyBz
ZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRv
IHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTlVJRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmF2
aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV0pOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBzZXJ2ZXJSZWRpcmVjdGVk
ID0gZmFsc2U7CisgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CisgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGlmIChkb1NlcnZl
clNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgIEVY
UEVDVF9FUSgzLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDIs
IG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfRkFMU0Uoc2VydmVy
UmVkaXJlY3RlZCk7CisgICAgfQorICAgIEVYUEVDVF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNpb25h
bExvYWRzKTsgLy8gT25lIGluIGVhY2ggdmlldy4KKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKKyAgICBh
dXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBF
WFBFQ1RfVFJVRSghIXBpZDIpOworCisgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6
WWVzKQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAgICBF
WFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBib29sIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9
IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncuY2xvc2VkID8gJ3Ry
dWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9y
ICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaXNDbG9zZWQgPSAoTlNTdHJpbmcgKilyZXN1
bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBpc0Nsb3NlZCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaXNDbG9zZWQpOworICAgICAgICBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUi
IGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAg
IGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJc1Nh
bWVPcmlnaW46OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRv
d05hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3
aW5kb3dOYW1lKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CisKKyAgICAvLyBPcGVuZWUgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCisg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21w
bGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAg
IE5TU3RyaW5nICpoYXNPcGVuZXIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChl
eHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAImZhbHNlIiwgaGFzT3BlbmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1Nj
cmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwor
ICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIgY29t
cGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBOU1N0cmluZyAqd2luZG93TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYg
KGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNo
ZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwor
ICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5Lmlu
bmVyVGV4dCIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBOU1N0cmluZyAqaW5uZXJUZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0Owor
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwb3B1cCIsIGlubmVyVGV4dCk7CisgICAgICAgIGZp
bmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgY3JlYXRlZFdlYlZpZXcg
PSBudWxscHRyOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRv
Q09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAi
c2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2Ft
ZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVy
U2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUi
LCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2Fw
OjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21D
T09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIp
Cit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAi
LCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30K
KworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmln
aW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQoreworICAgIC8vIFdlIGV4cGVjdCBhIHN3
YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0
Q09PUFdpdGhSZWRpcmVjdCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIs
IG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBF
eHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxs
cHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dh
cFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
bjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZl
LW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVj
dFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdp
bkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Ny
b3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2ZWY4YTZkNDQyNTI5MDJhYWRhMGE5OTdjZDI4ZWNhNGE2YzA0MmQ1Li45
YzdjMmQ2MDFkMGE2ZTQzMWRjOTllOWE0OTdiYmI1NjIzMmNlYWJjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjEtMDgtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0
NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFNraXAgQ09PUCB0ZXN0cyBvbiBXSzEgYXMgd2Ugb25seSBoYXZlIGEgd29ya2luZyBpbXBsZW1l
bnRhdGlvbiBmb3IgV0syLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIx
LTA4LTE5ICBBeXVtaSBLb2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29tPgogCiAgICAgICAg
IFsgV2luIEVXUyBdIGh0dHAvdGVzdHMvc2VjdXJpdHkvbm8tamF2YXNjcmlwdC1yZWZyZXNoLXNw
YWNlcy5weSBpcyBmbGFreSBjcmFzaGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IGVlMWJjZGQxZjVmMzk1NTFkMGZiMjgxMWY0MjA4YzhiYzVmZGZmY2MuLjkxOGZkNmQzZmVj
MjNiMmEzY2IzMjlmNGQzOGVmMzNlZTk5YTEzNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFz
ZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICBNaW5vciB0ZXN0IHJlYmFzZWxpbmUgZHVlIHRvIGxvZ2dpbmcgY2hh
bmdlcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDgtMTkgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1pbXBvcnQg
aHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvdGhlLWRpYWxvZy1lbGVtZW50IFdQ
VCAtIEF1Z3VzdCAxOXRoIDIwMjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2Vw
LWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAt
YmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNzZmYmQ2ZTFmN2JjNzg4MzlmM2Fj
NDdlMmI5NWZmNDc1NDE0NjY3Ni4uMDMyM2E1MWQ2YzUwMzc4MDdhYjI5MmJjNmJlYjQzOWU3Njhi
M2VjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogQ2FuY2Vs
bGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNh
CiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAu
MTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBD
T05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9z
cy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhlYWRlci4KIENPTlNPTEUgTUVTU0FH
RTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2Js
YW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTog
Q2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRt
bCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJj
ZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fu
bm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBkdWUgdG8g
YWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDog
d2luZG93Lm9wZW4oKQogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IDxhPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUyYTJkMzQ0
Nzk2MjRmMzBlZDI3M2MxODEyMjEwY2JlMzQyOGE4ZjEuLjRjNWVmNDY4YzNhODc5OGUzZTQzZmFj
NWEyOGExNTM5ZjhmYjZhOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTM1Myw4ICszNTMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3dvcmtlci1zcmMvc2VydmljZS13b3Jr
ZQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0
aW5hdGlvbiBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9j
cm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL3JhbmdlL3N3Lmh0dHBzLndpbmRvdy5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvcG9wdXAtY29vcC1ieS1zdy1mcm9tLWNvb3AuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L3BvcHVwLWNvb3AtYnktc3cuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2ZXItdGltaW5nL3NlcnZpY2Vfd29ya2VyX2lkbC5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbmZyYXN0cnVjdHVyZS9z
ZXJ2ZXIvY29udGV4dC5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzEsMTAg
KzM2OSwxMSBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91
dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrbGV0cy9wYWludC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2Vw
dGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiBodHRwL3dwdC93ZWJydGMvdHJhbnNmZXItZGF0YWNo
YW5uZWwtc2VydmljZS13b3JrZXIuaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIE5vIENyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgorIyBObyBDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSAvIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMuaHRtbCBbIFNraXAgXQotaHR0cC93
cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcXVpcmUtY29ycC5odHRwcy5o
dG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1w
b2xpY3kgWyBTa2lwIF0KIAogIyBRdW90YSBjaGVjayBtaXNzaW5nIGluIFdLMQogaHR0cC90ZXN0
cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC5odHRwcy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEzM2M3ZThkNjhlZjA3MTVlMWE0
ZGIxZDdkMTEyZjVhNzUxNTcyOWEuLjgzODA2YjE1M2RmZWYwMzkxOWY5NTUyODQ1OTM3NDM2ODEw
NjdmYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
NzE1LDggKzM3MTUsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9wb2xpY2llcy9yZWZlcnJlci1vcmlnaW4td2hlbi1jcm9zcy1vcgogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcG9saWNpZXMvcmVmZXJyZXItdW5zYWZlLXVybC1z
ZXJ2aWNlLXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xp
Y3kgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1s
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmcvc2VydmljZV93b3Jr
ZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yL2ludGVncmF0aW9uLXdp
dGgtdGhlLWphdmFzY3JpcHQtYWdlbnQtZm9ybWFsaXNtL3JlcXVpcmVzLWZhaWx1cmUuaHR0cHMu
YW55LnNlcnZpY2V3b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtMzcyNSwxMCArMzcyMywxMSBAQCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtc2Vy
dmljZS13b3JrZXItaW50ZXJjZXB0aQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrbGV0cy9sYXlvdXQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9w
YWludC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tp
cCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCisjIE5vIENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBp
biBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5o
dG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kv
cmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93
cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQogCiAjIE5vIGhlYWRlciBmaWx0ZXJp
bmcgZm9yIFdLMQogaHR0cC93cHQvbG9hZGluZy9yZWRpcmVjdC1oZWFkZXJzLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436208</attachid>
            <date>2021-08-23 10:26:46 -0700</date>
            <delta_ts>2021-08-23 12:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210823102645.patch</filename>
            <type>text/plain</type>
            <size>113477</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhkZmZiYjE2NzliYTMy
NDJlOWY2ZmJhYTljNzdlY2JjNzIzNjc1OC4uNTU1NTJiMjI2NTNmODU4Mzc3ZTU1NjA3ODUxMjNj
YjJiMzEwNWI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFN0aWNreSBwb3NpdGlvbiBzaG91bGQgbm90IHVzZSB0cmFuc2Zv
cm1lZCBwb3NpdGlvbiB0byBjb21wdXRlIHN0aWNreSBvZmZzZXQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRlNzM0
MGM4MjgxZTQ4ZTgwYjg2N2ZkOGY1ODFlYWM1NTlmN2QwYjQuLmYxN2JjN2ZhYWZlZmMwY2Q0Yjk4
YTEyN2Q5YTg1ZDE1ZGJjMTg2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDgt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBs
ZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFdlIHJlY2VudGx5IGFk
ZGVkIHN1cHBvcnQgZm9yIHRoZSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSAoQ09PUCkgSFRU
UCBoZWFkZXIuIEhvd2V2ZXIsCisgICAgICAgIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nIGNvbnRl
eHQgZ3JvdXAgb24gSFRUUCByZXNwb25zZSwgd2Ugd291bGQga2VlcCB1c2luZyB0aGUgc2FtZSAK
KyAgICAgICAgV2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBz
d2FwIFdlYlByb2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBn
cm91cCBvbiBuZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1
cmVseSByZS1lbmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZl
ci4KKworICAgICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUg
c2FtZSBsb2dpYyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAg
IEEgZmV3IGRpZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9u
c2UgcG9saWN5IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24K
KyAgICAgICAgLSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
WWVzL05vIGVudW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVy
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24u
IFdlIG5lZWQgdGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVz
cG9uc2UgcG9saWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRv
IGF2b2lkCisgICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExv
YWQgSVBDcyBhZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1z
d2FwcGluZyBvbiBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFn
ZSBpbnN0ZWFkIG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3Np
bmcgY29udGV4dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5n
IGNvbnRleHQgbmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSku
CisKKyAgICAgICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVu
dGx5IHNlbmQgdGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAg
ICAgIGEgcHJvY2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3Vy
cmVudGx5IGdldHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3Jr
IHJlc3BvbnNlIGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxv
YWQgZ2V0cyBpc3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBw
aW5nLiBJIHdpbGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNo
IHNpemUgYW5kCisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9u
IHRoZSBsb2FkIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MK
KyAgICAgICAgdG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAg
ICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBh
Z2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6
Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDcmVhdGVNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQ
cm94eTo6c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
b3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMjEtMDgtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3MTE0Nik6IGVkaXRpbmcvc2VsZWN0aW9u
L2lvcy9zY3JvbGxpbmctdG8tZm9jdXNlZC1lbGVtZW50LWluc2lkZS1pZnJhbWUuaHRtbCBpcyBm
YWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDFlMWI4ZTUzOGY4ZmUyNzNi
Nzc1NDVkODAxYjExMzM2ZDU4MTc5MC4uZDMxMjI4MWU2ODhkMzkzNjEzODI0MmU2YmQ3Yjc0MDk4
ZGU0MzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dL
Ml0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMTkgIE1lZ2Fu
IEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgb2xk
IHVudXNlZCBjb2RlIGFuZCBvdXQgb2YgZGF0ZSBjb21tZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwppbmRleCA3ZGU5MTA3ZGE5Zjg0NjkwZDFhNTk3OGJjMWEzNDVjMGY2Yzc4YzdmLi40
NThmYTE2MGU5MTg3ZDhhMTRjNGEyZmZhYjU5YWFkYWFkMzRlMzcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2Fw
cGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjEgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dpbl0gQ3Jhc2ggdW5kZXIgRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJh
Y2tGb250CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjRiMTZiNDI4MDkyNmNmOWUwMzI4MDUwM2M3YmUwLi40ZDMyYWU0YTlkNTlmOWVjZTFk
YWU2NTkwNjY0Nzk4NDkyYjUzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTc4MywxNSArNzgzLDEyIEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2luZy10
aGUtd2ViLmh0bWwjcHJvY2Vzcy1hLW5hdmlnYXRlLWZldGNoIChTdGVwIDEyLjUuNi4yKQogICAg
IC8vIElmIHNhbmRib3hGbGFncyBpcyBub3QgZW1wdHkgYW5kIHJlc3BvbnNlQ09PUCdzIHZhbHVl
IGlzIG5vdCAidW5zYWZlLW5vbmUiLCB0aGVuIHNldCByZXNwb25zZSB0byBhbiBhcHByb3ByaWF0
ZSBuZXR3b3JrIGVycm9yIGFuZCBicmVhay4KLSAgICBpZiAocmVzcG9uc2VDT09QLnZhbHVlICE9
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Y3JlYXRpb25TYW5kYm94RmxhZ3MoKSAhPSBTYW5kYm94Tm9uZSkgeworICAgIGlm
IChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSAmJiBmcmFtZUxvYWRlcigpLT5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKSAhPSBTYW5k
Ym94Tm9uZSkgewogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCkt
PmNhbmNlbGxlZEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID0gZW5mb3JjZVJlc3BvbnNl
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kocmVzcG9uc2UudXJsKCksIHJlc3BvbnNlT3JpZ2luLCBy
ZXNwb25zZUNPT1ApOwotICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPnN3
aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTk5OCw5ICs5OTUsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3Bv
bnNlKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3
b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJl
IGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUg
ZGV0YWlscy4KICNpZiAhVVNFKENGKQpAQCAtMTA0MiwxMSArMTAzNiwxOSBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aQogICAgIH0KICNlbmRpZgogCisgICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3Bl
bmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHN0ZDo6ZXhjaGFuZ2UobV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrLCBmYWxzZSkpIHsKKyAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5
QWN0aW9uOjpVc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgUmVmUHRyPFN1YnJl
c291cmNlTG9hZGVyPiBtYWluUmVzb3VyY2VMb2FkZXIgPSB0aGlzLT5tYWluUmVzb3VyY2VMb2Fk
ZXIoKTsKICAgICBpZiAobWFpblJlc291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VM
b2FkZXItPm1hcmtJbkFzeW5jUmVzcG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVz
dElkZW50aWZpZXIgPSBQb2xpY3lDaGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGZyYW1l
TG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmll
ciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9h
ZGVyID0gV1RGTW92ZShtYWluUmVzb3VyY2VMb2FkZXIpLAorICAgIGZyYW1lTG9hZGVyKCktPmNo
ZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgbV9jdXJyZW50
Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIg
PSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
ID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0g
KFBvbGljeUFjdGlvbiBwb2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50
aWZpZXIpIG11dGFibGUgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZp
ZXIuaXNWYWxpZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpOwogICAgICAgICBjb250aW51ZUFmdGVy
Q29udGVudFBvbGljeShwb2xpY3kpOwpAQCAtMjAwOCw5ICsyMDEwLDE1IEBAIGJvb2wgRG9jdW1l
bnRMb2FkZXI6Om1heWJlTG9hZEVtcHR5KCkKICAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRM
b2FkRW1wdHkgPyAidGV4dC9odG1sIiA6IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmdlbmVyYXRl
ZE1JTUVUeXBlRm9yVVJMU2NoZW1lKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSk7CiAgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9y
ZXF1ZXN0LnVybCgpLCBtaW1lVHlwZSwgMCwgIlVURi04Il9zKTsKIAotICAgIGlmIChmcmFtZUxv
YWRlcigpLT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkK
KyAgICBpZiAoZnJhbWVMb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFs
RG9jdW1lbnRMb2FkKCkpIHsKICAgICAgICAgZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZS
ZXNwb25zZShtX3Jlc3BvbnNlKTsKIAorICAgICAgICAvLyBGSVhNRTogTm9uLWluaXRpYWwgYWJv
dXQ6YmxhbmsgbG9hZHMgbWF5IGNhdXNlIGEgYnJvd3NpbmcgY29udGV4dCBncm91cCBzd2l0Y2gu
IEhvd2V2ZXIsIHN1Y2ggbG9hZCBpcyBzeW5jaHJvbm91cyBhbmQgZG9lc24ndAorICAgICAgICAv
LyBpbnZvbHZlIGEgcmVzcG9uc2UgcG9saWN5IGRlY2lzaW9uLiBBcyBhIHJlc3VsdCwgd2Ugc2lt
dWxhdGUgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaCB3aXRob3V0IGFjdHVhbGx5IHN3
YXBwaW5nIHByb2Nlc3MuCisgICAgICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1
bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCisgICAgICAgICAgICBmcmFtZUxv
YWRlcigpLT5zd2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKKyAgICB9CisKICAgICBmaW5p
c2hlZExvYWRpbmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyMzgsNiArMjI0Niw3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNsZWFyTWFpblJlc291cmNlKCkKICNlbmRpZgogCiAgICAg
bV9tYWluUmVzb3VyY2UgPSBudWxscHRyOworICAgIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVz
cG9uc2VQb2xpY3lDaGVjayA9IGZhbHNlOwogCiAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZp
Y2VXb3JrZXJDbGllbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
aW5kZXggZDhmZjFkYTNiZDY0MDZjNWQ3NjQ4NzZhYWQ0OWJiZDAwNGFjMTc3MC4uMWM4NzE0MmY0
OWZhNzEyZWY0Y2JlODc5MDdhNzY2YjNlMDJjZWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmgKQEAgLTQyNSw2ICs0MjUsOSBAQCBwdWJsaWM6CiAKICAgICBDcm9zc09y
aWdpbk9wZW5lclBvbGljeSBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCA/IG1fY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+Y3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgOiBDcm9zc09yaWdpbk9wZW5lclBvbGlj
eSB7IH07IH0KIAorICAgIGJvb2wgaXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lD
aGVjaygpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjazsgfQorICAgIHZvaWQgc2V0SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayhib29sIGlzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2spIHsg
bV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gaXNDb250aW51aW5n
TG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjazsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmKTsKIApAQCAtNTYxLDYgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2dvdEZpcnN0Qnl0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ2xpZW50UmVkaXJlY3QgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50IHsgZmFsc2UgfTsK
KyAgICBib29sIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayB7IGZh
bHNlIH07CiAKICAgICAvLyBGSVhNRTogRG9jdW1lbnQ6Om1fcHJvY2Vzc2luZ0xvYWRFdmVudCBh
bmQgRG9jdW1lbnRMb2FkZXI6Om1fd2FzT25sb2FkRGlzcGF0Y2hlZCBhcmUgcm91Z2hseSB0aGUg
c2FtZQogICAgIC8vIGFuZCBzaG91bGQgYmUgbWVyZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcAppbmRleCA4ZGNhNzViOTQwNzk1MDc4OTIzNmQyYWExMjBmNDNhN2IzYjFj
NmQ3Li45NjRlMmRkMTIwNzAzMzFhNjVjYTM0MWFjNzBlNGIyODc0MjAwYTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1w
dHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDY5YTExMzIzOGEwYThjNmE2ZmU1YjAzNmRmMDdmNDgzOWY3OWFkNzAuLjEyMGE0YTUyMGJk
MWYxMmQ3M2QxNGY2MmVlMGVlNDBiOTg4NGVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgog
ICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFs
OwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1T
dGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmluZGV4IDk0YWU1NWE2
NzY1ZjM4MTRiZWY0NTVmMmRiYWUwNmQwM2RmMjQ2ZGEuLjM3MGRmOGZhYTVjNzY0NGRkNTg4OGE4
N2IyOWY4Yzk4MjFlMjU1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVl
c3QuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNp
bmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2luY2x1ZGUgIlN1YnN0
aXR1dGVEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjEsOCArNjIsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShib29sIGNo
ZWNrUG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgPSBjaGVja1BvbGljeTsg
fQogICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OyB9CiAKLSAgICB2b2lkIHNldFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CisgICAgdm9pZCBz
ZXRTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCkgeyBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQorICAgIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQogCiAgICAgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsg
fQogICAgIHZvaWQgc2V0U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vic3RpdHV0ZURhdGEmIGRhdGEp
IHsgbV9zdWJzdGl0dXRlRGF0YSA9IGRhdGE7IH0KQEAgLTExMyw3ICsxMTQsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKIAogICAgIGJv
b2wgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CisgICAgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpObyB9OwogICAgIExvY2tIaXN0b3J5IG1fbG9ja0hpc3RvcnkgeyBM
b2NrSGlzdG9yeTo6Tm8gfTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1fbG9ja0JhY2tGb3J3
YXJkTGlzdCB7IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgUmVmZXJyZXJQb2xpY3kg
bV9yZWZlcnJlclBvbGljeSB7IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTRhYTNlZWZkY2VmZjRmY2NlNmFlNWEy
YzBmZDU2MDVlMTU0YjA5Zi4uMWJiOTc2N2MyODdjY2Y4ZDEzMDE5MzQ3YmIzYTQzMThiMmY2MmFm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIENv
bnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVy
OjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7
CiAgICAgaWYgKCFhY3RpdmVEb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAgIC8vIExvYWQgd2Fz
IGNhbmNlbGxlZApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29u
dGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlCiAg
ICAgfQogCiAgICAgLy8gRklYTUU6IFZhbGlkYXRlIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRpZmll
ci4KLSAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNl
LCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURv
Y3VtZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIFdURk1vdmUoZnVuY3Rpb24pKTsK
KyAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBh
Y3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y2hh
bmdlTG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBF
dmVudCogdHJpZ2dlcmluZ0V2ZW50LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJyZXJQb2xp
Y3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgc3RkOjpvcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4gb3BlbmVyUG9saWN5LCBj
b25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lzdGVtUHJldmlld0lu
Zm8mIHN5c3RlbVByZXZpZXdJbmZvLCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQpAQCAtMTIwNSw3ICsxMjA1LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRTdGFydCgpCiAgICAgRlJBTUVMT0FERVJfUkVM
RUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAicHJlcGFyZUZvckxvYWRTdGFydDogU3RhcnRpbmcg
ZnJhbWUgbG9hZCIpOwogCiAgICAgbV9wcm9ncmVzc1RyYWNrZXItPnByb2dyZXNzU3RhcnRlZCgp
OwotICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCk7CisgICAg
Ym9vbCBhbHJlYWR5U2VudERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyICYmIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+aXNDb250aW51aW5n
TG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaygpOworICAgIGlmICghYWxyZWFkeVNlbnREaWRT
dGFydFByb3Zpc2lvbmFsTG9hZCkKKyAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQ
cm92aXNpb25hbExvYWQoKTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUu
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKQEAgLTE0NzAsMTAgKzE0NzIs
MTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCkK
ICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVhdGVEb2N1bWVu
dExvYWRlcihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LnN1YnN0aXR1dGVEYXRh
KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzV2ViQXJjaGl2ZUZvck1haW5GcmFtZShyZXF1ZXN0
LmlzUmVxdWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKICAgICBsb2FkZXItPnNldEFsbG93
c0RhdGFVUkxzRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklu
cHV0KCkpOworICAgIGxvYWRlci0+c2V0SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayhyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpID09IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uKTsKICAg
ICBhZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChsb2FkZXItPnJlcXVlc3QoKSk7CiAg
ICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlciht
X2ZyYW1lLCBsb2FkZXIsIHJlcXVlc3QpOwogCi0gICAgaWYgKHJlcXVlc3Quc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkKCkpIHsKKyAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKSB7CiAgICAgICAg
IGxvYWRlci0+c2V0Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KHJlcXVlc3QuY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwogICAgICAgICBpZiAocmVxdWVzdC5sb2NrQmFj
a0ZvcndhcmRMaXN0KCkgPT0gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKSB7CiAgICAgICAgICAg
ICBsb2FkZXItPnNldElzQ2xpZW50UmVkaXJlY3QodHJ1ZSk7CkBAIC0xNDgxLDcgKzE0ODQsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29u
dGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCByZXF1ZXN0LnNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGlu
dWluZ1dpdGhSZXF1ZXN0IDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7Cisg
ICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZCht
X2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCByZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGlu
dWluZ1N0YXRlOjpDb250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpO
b3RDb250aW51aW5nKTsKICAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKQEAgLTM3NjgsNyAr
Mzc3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlz
dG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tCiAKICAgICBhdXRvIGluaXRpYXRlZEJ5
TWFpbkZyYW1lID0gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247CiAKLSAgICBTZXRGb3JT
Y29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExv
YWRDb250aW51aW5nU3RhdGUsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6OlllcyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVp
bmdXaXRoSGlzdG9yeUl0ZW0gOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsK
KyAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJk
KG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0
ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOwogCiAgICAgaWYgKENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5nZXQoaXRlbSwgbV9mcmFtZS5wYWdlKCkpKSB7CiAgICAgICAg
IGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBjYWNoZWRQYWdlLT5kb2N1bWVudExvYWRlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA2ZjNiZGJlZmNhMzlmYmZjMjNmOWQxNGM5
YjI3MTEyMjZkZTI0YTBiLi5lNTZjMDhmNzAzNmE1ZGZiNzMzYzJlNWY1Y2VlY2Q4ODQyMmFmNTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtODIsNyArODIsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGVudW0gY2xhc3MgQ2FjaGVQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7CiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVzZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBJ
c01haW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIFNob3VsZFVwZGF0
ZUFwcEluaXRpYXRlZFZhbHVlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTIyMCw3ICsyMjAsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICB2b2lk
IGNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lkIGNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW4oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzZWI1Y2VlNjQy
NmM0NGRjMTc0MjIyMTVmYWFiMTU2OTMxZGIyZDlkLi4zOWJiNDA1NDA5YzQxNzQ3ODVhOTM3MjI4
MzAwMTg2M2MwYTg3NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUq
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBG
b3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNo
ZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAppbmRl
eCA2ZDVkZTg0ZjIxNzk4ODYzYmE4ZWVkZThiNjQ2ZmU5NDhhNDU4ODJiLi4xMDM3ZGY5OGVjNDE1
NTRiZmIxZGI2MmI4OTY4MmQ4MzdmYTY1NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEhp
c3RvcnlJdGVtOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi1lbnVtIGNsYXNzIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBTdHJpbmdXaXRoRGlyZWN0aW9u
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLmgKaW5kZXggNzZlMDkzNTA1YmNiYmU2NmQyMjQ1MmQyZjViNzk1YjNkNWQ4NTNhNC4u
YWIxMzUzYmNjMDgyZTQxYmE1ODljOWMyOWMyMTA4NTNhMzk5NTI4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdCB7IE5vLCBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMzksNyArMzksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZD4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObywKLSAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24KICAgICA+Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA0ODdjOWIyYjVlZjQ5NDZjOWNiZTk4OWYzZTc3NjFmMDhl
NjFkODBlLi45MjU1YmYzMTNjNjdkNzE0ODE1Y2Y3ODE1MjY2ZmZkODA1YjIyZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHVzaW5nIFNoYXJlZFN0cmluZ0hhc2ggPSB1aW50
MzJfdDsKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdyYXAgOiBi
b29sOwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogCiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0
bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUsIFVucmVzcG9uc2l2ZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCAwNjIwOTY0NjhmZTg3YjY4YzE5ZWYz
ODA3N2EyNWE5MjFkOWQ0ZWZmLi5lNWM1N2IwNDA0OWM4YjIwYjZiZDYxMWNmYzhmNmIwMWY3OGMw
N2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXNEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3Vic3RpdHV0ZURhdGEuaD4KIAogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7
CkBAIC02Niw3ICs2Nyw3IEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAgICAgc3RkOjpvcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXM7CiAKICAgICBXZWJDb3Jl
OjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyB9OwotICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgZmFsc2UgfTsKKyAg
ICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIHsgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyB9Owog
ICAgIFVzZXJEYXRhIHVzZXJEYXRhOwogICAgIFdlYkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tG
b3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcAppbmRleCBjNjU0Y2I4YzEyMjFhZjgxMWY2YjBhNzNiM2UxZGY5NDM1YjJiNzZk
Li40MWNkMzVkYmZhOGQwZTM0YmQxZWI0OWY1ZDU3NGYyYzM3MDBiZDU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC01OCw3ICs1
OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogI2RlZmluZSBQUk9WSVNJT05BTFBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0coY2hhbm5lbCwg
IiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJ
RD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBm
bXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwg
IyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0df
RVJST1IoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsICIlcCAt
IFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWks
IG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIl0gUHJvdmlzaW9uYWxQYWdlUHJveHk6OiIgZm10LCB0
aGlzLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0
KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9uYXZpZ2F0aW9uSUQsICMjX19W
QV9BUkdTX18pCiAKLVByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBBUEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0ZVBvbGljaWVz
KQorUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8
U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqIHdlYnNpdGVQb2xpY2llcykKICAgICA6IG1fcGFnZShwYWdlKQogICAg
ICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgp
IDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShw
cm9jZXNzKSkKQEAgLTY2LDYgKzY2LDcgQEAgUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lv
bmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm8KICAgICAs
IG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQogICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCiAgICAgLCBtX3Byb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQocHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCkKKyAgICAsIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdChzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgLCBtX3Byb3Zpc2lvbmFsTG9hZEFjdGl2aXR5KG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5KCJQcm92aXNpb25hbCBMb2FkIl9zKSkKICNlbmRp
ZgpAQCAtMTYyLDE2ICsxNjMsMTggQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6aW5pdGlh
bGl6ZVdlYlBhZ2UoUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnMKICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlv
bigpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0
YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6
T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNl
c3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpCiB7CiAgICAg
UFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZERh
dGE6Iik7CisgICAgQVNTRVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKIAotICAgIG1fcGFnZS5sb2FkRGF0
YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBu
YXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3RO
YXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhp
c3RvcnlWaXNpYmlsaXR5KTsKKyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgbWlt
ZVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xp
Y2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAg
IFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImxvYWRS
ZXF1ZXN0OiIpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gV2Vi
Q29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAKICAgICAvLyBJZiB0aGlz
IGlzIGEgY2xpZW50LXNpZGUgcmVkaXJlY3QgY29udGludWluZyBpbiBhIG5ldyBwcm9jZXNzLCB0
aGVuIHRoZSBuZXcgcHJvY2VzcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZnJvbUl0ZW0ncyBVUkwuIElu
IHRoaXMgY2FzZSwKICAgICAvLyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSB1cGRhdGUgZnJvbUl0
ZW0ncyBwcm9jZXNzSWRlbnRpZmllciBhcyB3ZSB3YW50IGZ1dHVyZSBuYXZpZ2F0aW9ucyB0byB0
aGlzIEJhY2tGb3J3YXJkIGl0ZW0gdG8gaGFwcGVuIGluIHRoZQpAQCAtMTc5LDcgKzE4Miw3IEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJvbUl0ZW0oKSAm
JiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+c2V0TGFzdFBy
b2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogCi0g
ICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRp
b24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1
c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAg
bV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24u
bGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2Vy
RGF0YSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlv
biwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGlj
aWVzPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTE5OSw3ICsyMDIsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgV2ViQgogICAgICAgICB3ZWJzaXRlUG9saWNpZXNEYXRhID0gd2Vic2l0ZVBvbGljaWVz
LT5kYXRhKCk7CiAgICAgCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlQmFja0Zv
cndhcmRMaXN0Rm9yUmVhdHRhY2goV1RGTW92ZShpdGVtU3RhdGVzKSkpOwotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9u
SUQoKSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBl
KCksIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llc0RhdGEpKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAq
bmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgV1RG
TW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOwogICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25z
aXZlbmVzc1RpbWVyKCk7CiB9CiAKQEAgLTIyNyw4ICsyMzAsOSBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIFJlc3RvcmUgdGhlIG1haW4gZnJhbWUncyBjb21taXR0
ZWQgVVJMIGFzIHNvbWUgY2xpZW50cyBtYXkgcmVseSBvbiBpdCB1bnRpbCB0aGUgbmV4dCBsb2Fk
IGlzIGNvbW1pdHRlZC4KLSAgICBpZiAoYXV0byogbWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFt
ZSgpKQotICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwobWFpbkZy
YW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnVybCgpKTsKKyAgICBSZWZQdHIgcHJldmlvdXNNYWluRnJh
bWUgPSBtX3BhZ2UubWFpbkZyYW1lKCk7CisgICAgaWYgKHByZXZpb3VzTWFpbkZyYW1lKQorICAg
ICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwocHJldmlvdXNNYWluRnJh
bWUtPnVybCgpKTsKIAogICAgIC8vIE5vcm1hbGx5LCBub3RpZmljYXRpb24gb2YgYSBzZXJ2ZXIg
cmVkaXJlY3QgY29tZXMgZnJvbSB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgogICAgIC8vIElmIHdl
IGFyZSBwcm9jZXNzIHN3YXBwaW5nIGluIHJlc3BvbnNlIHRvIGEgc2VydmVyIHJlZGlyZWN0IHRo
ZW4gdGhhdCBub3RpZmljYXRpb24gd2lsbCBub3QgY29tZSBmcm9tIHRoZSBuZXcgV2ViQ29udGVu
dCBwcm9jZXNzLgpAQCAtMjM2LDYgKzI0MCwxMCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgaWYgKG1f
aXNTZXJ2ZXJSZWRpcmVjdCkgewogICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUo
KS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChtX3JlcXVlc3QudXJsKCkpOwogICAgICAgICBtX3Bh
Z2UuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgbV9uYXZpZ2F0
aW9uSUQsIFdURk1vdmUobV9yZXF1ZXN0KSwgeyB9KTsKKyAgICB9IGVsc2UgaWYgKHByZXZpb3Vz
TWFpbkZyYW1lICYmICFwcmV2aW91c01haW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgLy8gSW4gY2FzZSBvZiBhIHByb2Nlc3Mgc3dhcCBhZnRlciByZXNwb25z
ZSBwb2xpY3ksIHRoZSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCBhbHJlYWR5IGhhcHBlbmVkIGJ1
dCB0aGUgbmV3IG1haW4gZnJhbWUgZG9lc24ndCBrbm93IGFib3V0IGl0CisgICAgICAgIC8vIHNv
IHdlIG5lZWQgdG8gdGVsbCBpdCBzbyBpdCBjYW4gdXBkYXRlIGl0cyBwcm92aXNpb25hbCBVUkwu
CisgICAgICAgIG1fbWFpbkZyYW1lLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChwcmV2aW91c01h
aW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKSk7CiAgICAgfQogfQogCkBAIC0zMjIsMTMgKzMzMCwx
MiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJ
bmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0
KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJE
YXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAot
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRp
b25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RG
TW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCBhN2ZiNjZhNmRhYTczN2M5MDYwOTA3YzA4OTZm
MGNiYzk0ZWIzODBlLi4yNzE0YjJhNWI1NDdmMjY2N2ZjYjQ2ZmNlZjFiNTc4NGZiY2Y1ODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllcjsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03MSw3ICs3Miw3IEBAIHVzaW5nIExheWVySG9z
dGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgUHJvdmlzaW9uYWxQYWdlUHJveHkgOiBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFByb3Zpc2lvbmFsUGFn
ZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVl
X3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNT
ZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsKKyAgICBQcm92aXNp
b25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VB
ZnRlckNvbW1pdCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsKICAgICB+UHJvdmlzaW9uYWxQYWdl
UHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZTsgfQpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uSUQ7IH0KICAgICBjb25zdCBVUkwmIHByb3Zp
c2lvbmFsVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbExvYWRVUkw7IH0KIAorICAg
IGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdDsgfQorCiAgICAgRHJhd2luZ0Fy
ZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVybiBtX2RyYXdpbmdBcmVhLmdldCgp
OyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IHRha2VEcmF3aW5nQXJl
YSgpOwogCkBAIC0xMDEsOCArMTA0LDggQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotICAg
IHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkp
OwotICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4m
JiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5KTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9w
dCk7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYpOwogICAg
IHZvaWQgY2FuY2VsKCk7CiAKQEAgLTEyMCwxMSArMTIzLDggQEAgcHJpdmF0ZToKICAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
c2VuZE1lc3NhZ2UoVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mJiwgT3B0aW9uU2V0PElQQzo6U2Vu
ZE9wdGlvbj4sIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpEZWNvZGVyKik+LCB1aW50NjRfdD4+JiYpIGZpbmFsOwogCi0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3Jp
Z2luYXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0
ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpAQCAtMTM5LDkgKzEzOSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rp
b25hcnlGcm9tV2ViUHJvY2Vzcyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1
ZURpY3Rpb25hcnkmLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgc3RhcnRVUkxT
Y2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0Zvcndh
cmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMmKT4mJik7
Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBi
b29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBG
cmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIHJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAjZW5kaWYKQEAgLTE3MSw2ICsx
NjksNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7
CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBtX3Byb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ7CiAgICAgYm9vbCBtX3dhc0NvbW1pdHRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgeyBmYWxzZSB9OwogICAgIFVSTCBt
X3Byb3Zpc2lvbmFsTG9hZFVSTDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzAzZTNkYmNlMGNlNjZkNDAwYmE5M2U5
NWNmZGFmY2YwNzk5MTI4Ni4uMzUxMWI3YmYzZGU1NjMyY2MwYjBlZDIyMGIyYjgzNTNlNmUxMTc2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzkwLDcg
KzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIAogICAgIGF1dG8gdXJsID0gcmVxdWVz
dC51cmwoKTsKLSAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKQorICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObykKICAgICAgICAgbV9wYWdl
TG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRpb24u
bmF2aWdhdGlvbklEKCksIHVybC5zdHJpbmcoKSB9KTsKIAogICAgIExvYWRQYXJhbWV0ZXJzIGxv
YWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXMKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBs
b2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRh
KHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsKLSAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9y
eSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFj
a0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CkBAIC0xNTI1
LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgbG9hZFBhcmFtZXRlcnMu
TUlNRVR5cGUgPSBNSU1FVHlwZTsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUgPSBl
bmNvZGluZzsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKLSAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNlckRh
dGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGlj
aWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0g
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKQEAgLTE1NzgsNyArMTU3OCw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gc2lt
dWxhdGVkUmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJh
c2VVUkxTdHJpbmcgPSBiYXNlVVJMOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdzsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vOwogICAgIGxvYWRQYXJhbWV0
ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFy
YW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJk
TGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwpAQCAtMzUx
OCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAgIGlmIChz
dXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpKQog
ICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAgICAgICBj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5k
ZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlvbi0+
cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+dGFy
Z2V0SXRlbSgpOwogICAgICAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246
OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1LDcgKzM2MDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJgogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CiAgICAgYXV0
byogbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNpb25h
bFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsKLSAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2Ug
PSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwg
bWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVy
Rmx1c2gpIDogZmFsc2U7CisgICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdh
dGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJD
b21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5G
cmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNo
KSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJzaXRl
RGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNpdGVE
YXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6IFdl
YlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogCiAgICAgLy8gVGhlcmUg
aXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUgdG8gcmV0dXJuIHRvIHRoZSBwYWdlIGluIHRoZSBwcmV2
aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpAQCAtMzYyMCwxMSArMzYyMCwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBG
cmFtZUluZm9EYXRhJgogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkQ29tbWl0UHJvdmlz
aW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQ
YWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhM
b2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNzUElEPSVp
LCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
ISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywgIkNvbnRpbnVpbmcgbmF2aWdhdGlv
biAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdhdGlvbi5uYXZp
Z2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkpOwogICAgIFJFTEVBU0VfQVNT
RVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkpOworICAgIEFTU0VSVChzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7
CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JF
TEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
czogVGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcHJvdmlzaW9uYWwgbG9hZCwgY2FuY2VsbGlu
ZyBpdCAocHJvdmlzb25hbE5hdmlnYXRpb25JRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSkiLCBt
X3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklE
KCkpOwpAQCAtMzYzMyw5ICszNjM0LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAg
ICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zpc2lv
bmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZNb3Zl
KG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmlnYXRp
b25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0aW9u
LmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHdlYnNpdGVQ
b2xpY2llcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRpb24p
LCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyldKCkgbXV0YWJsZSB7
CisgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCk7Cisg
ICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0ID0gc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJS
ZXNwb25zZVBvbGljeURlY2lzaW9uOworICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1
ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdURk1vdmUobmV3UHJvY2VzcyksIFdURk1v
dmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGlzU2VydmVyU2lk
ZVJlZGlyZWN0LCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIHdlYnNpdGVQ
b2xpY2llcy5nZXQoKSk7CisgICAgYXV0byBjb250aW51YXRpb24gPSBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0gbWFrZVJlZihuYXZpZ2F0aW9uKSwg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBpdGVtID0gbmF2
aWdhdGlvbi0+dGFyZ2V0SXRlbSgpKSB7CiAgICAgICAgICAgICBMT0coTG9hZGluZywgIldlYlBh
Z2VQcm94eSAlcCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MgdG8gYmFjayBpdGVtIFVS
TCAlcyIsIHRoaXMsIGl0ZW0tPnVybCgpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0zNjU5LDkgKzM2
NjEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICAvLyBGSVhNRTogV29yayBv
dXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0
YwogICAgICAgICBBU1NFUlQoIW5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkuaXNFbXB0eSgp
KTsKICAgICAgICAgaWYgKGF1dG8mIHN1YnN0aXR1dGVEYXRhID0gbmF2aWdhdGlvbi0+c3Vic3Rp
dHV0ZURhdGEoKSkKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkRGF0YShuYXZp
Z2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwgc3Vic3RpdHV0ZURhdGEt
PmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlwZSwgc3Vic3RpdHV0ZURh
dGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vic3RpdHV0ZURhdGEtPnVz
ZXJEYXRhLmdldCgpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vi
c2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxp
dHkpOworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWREYXRhKG5hdmlnYXRpb24s
IHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJzdGl0dXRlRGF0YS0+Y29udGVu
dC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBzdWJzdGl0dXRlRGF0YS0+ZW5j
b2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0dXRlRGF0YS0+dXNlckRhdGEu
Z2V0KCksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9w
cm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7
IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKKyAgICAgICAg
ICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0aW9uLCBSZXNvdXJjZVJl
cXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51bGxwdHIsIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBXVEZN
b3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKICAgICB9OwogICAgIGlmIChtX2luc3BlY3RvckNv
bnRyb2xsZXItPnNob3VsZFBhdXNlTG9hZGluZygqbV9wcm92aXNpb25hbFBhZ2UpKQogICAgICAg
ICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnNldENvbnRpbnVlTG9hZGluZ0NhbGxiYWNrKCptX3By
b3Zpc2lvbmFsUGFnZSwgV1RGTW92ZShjb250aW51YXRpb24pKTsKQEAgLTU2MTQsMTMgKzU2MTYs
MTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWUKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKKyAg
ICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlm
aWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRv
d25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25z
ZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dl
ZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VD
bGllbnQoKSk7CiAKQEAgLTU2MzMsNyArNTYzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/
IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwog
ICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNy
ZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgdGhpcykuZ2V0
KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
KTsKIAotICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3Rl
bmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlE
LCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShu
YXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdl
YlBhZ2VJRCwgZnJhbWVJRCwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgaWRlbnRp
ZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAg
ICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4m
JiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAg
Ly8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVy
ZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdv
IGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwpAQCAtNTY0Miw5ICs1NjQ0
LDI4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAgIGF1dG8gc2VuZGVyID0gUG9s
aWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlE
LCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0gKGNvbnN0IGF1dG8mIHBv
bGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5
RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVuc2lvbnMocHJvY2Vz
cykpLCB3ZWJQYWdlSUQpOwogICAgICAgICB9KTsKKworICAgICAgICBhdXRvIHdpbGxDb250aW51
ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObzsKKyAg
ICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoICYmIG5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25z
ZSgpLnVybCgpIH07CisgICAgICAgICAgICAvLyBBdm9pZCBwcm9jZXNzLXN3YXBwaW5nIGluIGNh
c2VzIHdoZXJlIHRoZSBwcm9jZXNzIG9ubHkgY29udGFpbnMgYSBzaW5nbGUgcGFnZSBhbmQgaXMg
b3JpZ2luLWNsZWFuLgorICAgICAgICAgICAgaWYgKHRoaXMtPnByb2Nlc3MoKS5wYWdlQ291bnQo
KSA+IDEgfHwgKHRoaXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgJiYg
KnRoaXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgIT0gcmVzcG9uc2VE
b21haW4pKSB7CisgICAgICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRp
bmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUg
dG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKKyAgICAgICAgICAgICAgICBwb2xpY3lB
Y3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKKyAgICAgICAgICAgICAgICBhdXRvIHByb2Nl
c3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdp
c3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsK
KyAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRp
b24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
clJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgIHdpbGxD
b250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZ
ZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJlY2VpdmVk
UG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRyLCBX
VEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgIHJl
Y2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxs
cHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCB3
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzKTsKICAgICB9LCBTaG91bGRFeHBlY3RTYWZlQnJv
d3NpbmdSZXN1bHQ6Ok5vLCBTaG91bGRFeHBlY3RBcHBCb3VuZERvbWFpblJlc3VsdDo6Tm8pKTsK
KworICAgIGlmICh3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSkgeworICAgICAgICBsaXN0ZW5l
ci0+dXNlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobV9wb2xpY3lDbGll
bnQpCiAgICAgICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSgqdGhp
cywgKmZyYW1lLCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBXVEZNb3ZlKGxp
c3RlbmVyKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggMWU2MzUzNDRiZjljYTljNmRmNDJhOTBkMDgyMDQxMWFhOTllYjQxNS4uOGNlMzkx
NDJhN2RhYjBkZTgwMjA3MWUzM2E5ZGY2OGI4YmQ1MGM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3MCw3ICsyNzAsNyBAQCBlbnVtIGNsYXNzIE5vdGlmaWNh
dGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90OwogCiBz
dHJ1Y3QgQXBwSGlnaGxpZ2h0OwpAQCAtMTc0MSw3ICsxNzQxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBz
dGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAg
ICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAg
dm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDU5LDcgKzIwNTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJs
ZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVC
cm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94
eSYpOwogCkBAIC0yNDYxLDcgKzI0NjEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXBvcnRQ
YWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CiAKLSAg
ICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBz
dGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9s
aWNpZXM+JiYpOworICAgIHZvaWQgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6
TmF2aWdhdGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVz
PiYmKTsKIAogICAgIHZvaWQgc2V0TmVlZHNGb250QXR0cmlidXRlcyhib29sKTsKICAgICB2b2lk
IHVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0ZXJFZGl0b3JTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDVmNDkw
YjhmNTNlYzRmMGE4ZTFlNjgxMTg5NWFiYTQ3ZmYyMDg1ZmEuLmI4ODAzY2Q1MjIyYjZhNzA4NGZh
MmU3MjIwMjc3NzRiNWZlMDY1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwNyw3ICsxMDcsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRp
b25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50
NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGlj
eURlY2lzaW9uKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5n
IGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjQxYmUz
MGI3ODY0NDEyZTIyN2I3NjQxMjg5ZDJlYzA1OGNmNzE3Ni4uYTQwZTY5ZGZhNTIyZGVkZWJhZmRi
NWZjNmI5ZTcxZmNiOWI0YjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTWF0Y2hp
bmdSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluID8gKm1fcmVnaXN0cmFibGVE
b21haW4gPT0gZG9tYWluIDogZmFsc2U7IH0KICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW4u
dmFsdWVfb3IoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9KTsgfQorICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiBvcHRpb25hbFJlZ2lzdHJh
YmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbjsgfQogICAgIHZv
aWQgc2V0SXNJblByb2Nlc3NDYWNoZShib29sKTsKICAgICBib29sIGlzSW5Qcm9jZXNzQ2FjaGUo
KSBjb25zdCB7IHJldHVybiBtX2lzSW5Qcm9jZXNzQ2FjaGU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggZjM0MzQxOTNiMTQ1ZGIwNGMxYzRhYWEwMjE1ZDlkOTFlN2Zk
ZWQwNy4uY2Q3MGExYTAwODkzZDVmYTdiYzUwZDgwMTM0YjNkNjJlNjRjYzQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICB3ZWJQYWdlLT5zaG93KCk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5j
dGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAg
IGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBA
IC04MzUsNyArODM1LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIE5vdGlm
eSB0aGUgYnVuZGxlIGNsaWVudC4KICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5
ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRh
dGEpOwotICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlKSB7Cisg
ICAgLy8gSWYgYSBicm93c2luZyBjb250ZXh0IHN3aXRjaCBpcyByZXF1ZXN0ZWQsIHdlIHN0aWxs
IG5lZWQgdG8gc2VuZCB0aGUgSVBDIHRvIHRoZSBVSVByb2Nlc3MgaW4gb3JkZXIgdG8gcHJvY2Vz
cy1zd2FwIGlmIG5lY2Vzc2FyeSwgZXZlbiB0aG91Z2ggdGhlCisgICAgLy8gaW5qZWN0ZWQgYnVu
ZGxlIGhhcyBhbHJlYWR5IGhhbmRsZWQgdGhlIHBvbGljeSBkZWNpc2lvbi4KKyAgICBpZiAocG9s
aWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiAhbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xP
RyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogY29udGludWluZyBi
ZWNhdXNlIGluamVjdGVkIGJ1bmRsZSBzYXlzIHNvIik7CiAgICAgICAgIGZ1bmN0aW9uKFBvbGlj
eUFjdGlvbjo6VXNlLCBpZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ3LDkgKzg0
OSwxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogICAgIGF1dG8qIHBvbGljeURvY3VtZW50
TG9hZGVyID0gY29yZUZyYW1lID8gY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3Vt
ZW50TG9hZGVyKCkgOiBudWxscHRyOwogICAgIGF1dG8gbmF2aWdhdGlvbklEID0gcG9saWN5RG9j
dW1lbnRMb2FkZXIgPyBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlciY+KCpwb2xpY3lEb2N1
bWVudExvYWRlcikubmF2aWdhdGlvbklEKCkgOiAwOwogCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSA9IHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2U7CiAg
ICAgYXV0byBwcm90ZWN0b3IgPSBtX2ZyYW1lLmNvcHlSZWYoKTsKICAgICB1aW50NjRfdCBsaXN0
ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihpZGVudGlmaWVyLCBXVEZNb3Zl
KGZ1bmN0aW9uKSwgV2ViRnJhbWU6OkZvck5hdmlnYXRpb25BY3Rpb246Ok5vKTsKLSAgICBpZiAo
IXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRB
dHRyaWJ1dGUsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRy
YW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpKSB7CisgICAg
aWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93UmVzcG9uc2UsIGRvd25s
b2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkp
IHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGlnbm9yaW5nIGJlY2F1c2UgV2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBmYWlsZWQiKTsKICAgICAgICAgbV9mcmFtZS0+
ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgaWRl
bnRpZmllciwgc3RkOjpudWxsb3B0LCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0g
fSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhYTNhODYwMTc1NzI2
NTQxMzg1MmE0YjllODk1NjRiYjRkMWEzZjNiLi45NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0MTFkYmQ2
M2JmMDE1OTBhNzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEy
OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShj
b25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQ
b2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQ
b2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNo
ZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGNiZjlmMzZhYTQ2MjBjOWRlNjRlYzhhNmY4MGZlMzNhYjZiNzg0N2QuLmNmYmU1
NGYwMjYzNDIwOWU4YTMxMmFkNWVkMDljNzI2OTAzYWVmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzIzLDcgKzE3MjMsNyBAQCBOT19S
RVRVUk4gdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdFdhaXRpbmdGb3JQcm9jZXNzTGF1bmNoKExv
YWRQYXJhbWV0ZXJzJiYsIFVSTAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9v
bCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFJlZjxTaGFyZWRCdWZmZXI+JiYgc2hhcmVkQnVm
ZmVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9u
c2UsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBz
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3ZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
IHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgY29uc3Qg
VVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBzdGQ6Om9wdGlv
bmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KQogewogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBz
ZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4sICZtX21haW5GcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggZTE3ZTE4OTM1ZmFlMTE2YjQ2NjJlMjY0MDZiYWRmNGY4NzVmMTgy
NC4uMWU2MTRjNzM5ZWE1MzRmOTEzOTYxOTExY2M5NWQ3ZmRhODg1M2IxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjI3LDcgKzIyNyw3IEBAIGVu
dW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKIGVudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdodFJlcXVlc3RP
cmlnaW5hdGVkSW5BcHAgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1
aW50OF90OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwor
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRHcmFudWxhcml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OwpAQCAtMTU3NSw3ICsxNTc1LDcgQEAgcHJpdmF0ZToK
IAogICAgIFN0cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0gICAgdm9pZCBsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRh
Jiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwodWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4m
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA1OTM2MWQ1N2RhODAzM2NlNDUwOTBlOWM2
ZjViZjZhNWExODkxODQ2Li5hMGFhNTU0Zjc0OTgyMDJkMGJiMDZjZjk3NzAxYzI0OTI1NTlkNDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3Jh
bnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNp
ZXMpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKICAg
ICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMTUyZmRh
MWY2ZWQ1N2UyOTlhZGUzNGQwN2VlOGRiYjRlMmMxZWVhNy4uMDUxNjI3MDA5YTY2ZTEyNGFhOTYz
NjM3ODRhNmQ3NGNlYjA0M2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9w
ZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQ
b2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBiZmRl
M2VkNzY3OWI5Yjk4MGM4NWYzM2QxODkxZjhjNzg1ZWVkODZkLi4wY2ZiZWVlMDQ0N2QyZTI4NTc3
MjJmZTBhNjY0MTUxOTQwOWIyYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAt
ODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygp
CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3
XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXco
bV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0
ZDA0MGY1NjQ2ZWI4MjQxYTkyYmM3YzJkYzc4ZjZkZmQ5NmRhZDBhLi5jNWFmYTEzMzdkYjRlMmZi
NjdjZWU0MGYxMDQ1ZjFjNjk2YWMyN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hT
aG93KCkKICAgICAgICAgdWktPndlYlZpZXdTaG93KHdlYlZpZXcpOwogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlv
bikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggNmRhYzBiMDUyMTgzOTE2NjIwODk2NDFmNjVhZTk0MmMyOWI4OTZkOC4uNjE0
NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVhNjExYWZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1p
bGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9y
bVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcyZDRiZTJiZDIyYjY4ZjYwM2I3NjIy
Nzc5ODU4N2E0YmU1NGU5OTQuLmVlZWRiNTg5MzhmNjk2ZmYxOThhOGFiZTFkOTgzZmFmOTY3OGE5
Y2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIHRvIHZhbGlkYXRlIHRoYXQgd2UgYXJlIGlu
ZGVlZCBwcm9jZXNzLXN3YXBwaW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bUFNPTlNj
aGVtZSBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp0b0RhdGE6d2l0aENPT1BWYWx1ZTpdKToKKyAg
ICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAy
MS0wOC0yMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0N5Z3dpbl0gU3VwcG9ydCBQeXRob24gMyBpbiBydW4td2Via2l0LXRlc3RzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBmOWI4ZGFmNjlmNDQ3NDI3OTVmZDhmOTE2YzZmNmY4
NWI0MGU0ODYxLi4yMjRjOTQyZTg3Yzc0ZTQ2NTQ3MjIwZDhmNGI1ODU0YTRhMTY4NWZmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI1MCwxMiArMjUwLDE0IEBAIEBpbnRl
cmZhY2UgUFNPTlNjaGVtZSA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+IHsKICAgICBj
b25zdCBjaGFyKiBfYnl0ZXM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX3JlZGlyZWN0
czsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPE5TRGF0YT4+IF9kYXRhTWFwcGluZ3M7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX2Nvb3BWYWx1ZXM7CiAgICAgSGFzaFNldDxp
ZCA8V0tVUkxTY2hlbWVUYXNrPj4gX3J1bm5pbmdUYXNrczsKICAgICBib29sIF9zaG91bGRSZXNw
b25kQXN5bmNocm9ub3VzbHk7CiB9CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29u
c3QgY2hhciopYnl0ZXM7CiAtICh2b2lkKWFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKilzb3VyY2VVUkxTdHJpbmcgdG9VUkxTdHJpbmc6KE5TU3RyaW5nICopZGVzdGluYXRpb25V
UkxTdHJpbmc7CiAtICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVy
bFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGE7CistICh2b2lkKWFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEg
d2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlOwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gUFNPTlNjaGVtZQpAQCAtMjc3LDYgKzI3OSwxMyBAQCAtICh2b2lkKWFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRh
dGEKICAgICBfZGF0YU1hcHBpbmdzLnNldCh1cmxTdHJpbmcsIFtOU0RhdGEgZGF0YVdpdGhCeXRl
c05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6c3RybGVuKGRhdGEpIGZyZWVXaGVuRG9uZTpOT10p
OwogfQogCistICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0
cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciop
Y29vcFZhbHVlCit7CisgICAgW3NlbGYgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6dXJsU3RyaW5n
IHRvRGF0YTpkYXRhXTsKKyAgICBpZiAoY29vcFZhbHVlKQorICAgICAgICBfY29vcFZhbHVlcy5h
ZGQodXJsU3RyaW5nLCBjb29wVmFsdWUpOworfQorCiAtICh2b2lkKXNldFNob3VsZFJlc3BvbmRB
c3luY2hyb25vdXNseTooQk9PTCl2YWx1ZQogewogICAgIF9zaG91bGRSZXNwb25kQXN5bmNocm9u
b3VzbHkgPSB2YWx1ZTsKQEAgLTMxMSw4ICszMjAsMTUgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4p
dGEKICAgICAgICAgWyhpZDxXS1VSTFNjaGVtZVRhc2tQcml2YXRlPil0YXNrIF9kaWRQZXJmb3Jt
UmVkaXJlY3Rpb246cmVkaXJlY3RSZXNwb25zZS5nZXQoKSBuZXdSZXF1ZXN0OnJlcXVlc3QuZ2V0
KCldOwogICAgIH0KIAotICAgIGRvQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShbZmluYWxVUkwg
PSByZXRhaW5QdHIoZmluYWxVUkwpXShpZCA8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7Ci0gICAg
ICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJl
c3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBNSU1FVHlwZTpAInRleHQv
aHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjEgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAg
ICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW3NlbGYsIGZpbmFsVVJMID0gcmV0YWluUHRy
KGZpbmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBOU011dGFi
bGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGlj
dGlvbmFyeV07CisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDpAInRleHQvaHRt
bCIgZm9yS2V5OkAiQ29udGVudC1UeXBlIl07CisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNl
dE9iamVjdDpAIjEiIGZvcktleTpAIkNvbnRlbnQtTGVuZ3RoIl07CisgICAgICAgIGF1dG8gY29v
cFZhbHVlID0gX2Nvb3BWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmluZ10pOworICAg
ICAgICBpZiAoIWNvb3BWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBbaGVhZGVyRGljdGlv
bmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29vcFZhbHVlIGZvcktleTpAIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il07CisKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tO
U0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVz
Q29kZToyMDAgSFRUUFZlcnNpb246QCJIVFRQLzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rp
b25hcnldKTsKICAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgp
XTsKICAgICB9LCAwLjEpOwogCkBAIC00MDksOCArNDI1LDYgQEAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZlbnQpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNP
VVJDRSI7CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dP
cGVuQ3Jvc3NTaXRlTm9PcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+
CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC00ODgsNiArNTAyLDcgQEAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogPC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAorI2lm
IFBMQVRGT1JNKE1BQykKIHN0YXRpYyBjb25zdCBjaGFyKiBsaW5rVG9BcHBsZVRlc3RCeXRlcyA9
IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdl
c2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CkBAIC00OTcsOCArNTEyLDcgQEAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZlbnQpIHsKIDwvc2NyaXB0PgogPGEg
aWQ9InRlc3RMaW5rIiBocmVmPSJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiPk5hdmln
YXRlPC9hPgogKVBTT05SRVNPVVJDRSI7Ci0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5k
aWYKIAogc3RhdGljIFJldGFpblB0cjxfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHBzb25Q
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKQogewpAQCAtMTE5Nyw4ICsxMjExLDYgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgQmFja05hdmlnYXRpb25BZnRlclNlc3Npb25SZXN0b3JlKQogICAgIEVYUEVD
VF9ORShwaWQzLCBwaWQ0KTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogVEVTVChQcm9jZXNz
U3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogewogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtMTIw
Niw2ICsxMjE4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Blbk5vT3Bl
bmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkg
PSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGlu
aXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NTaXRlTm9PcGVuZXJU
ZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI0NSw2ICsxMjU4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09w
ZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQnV0U2Ft
ZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0x
Mjg1LDYgKzEyOTksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0
aE9wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9j
XSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZVdpdGhP
cGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTMyNCw2ICsx
MzM5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsK
ICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhC
eXRlczp3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc10pOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2No
ZW1lOkAiUFNPTiJdOwogCkBAIC0xMzYyLDYgKzEzNzgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBD
cm9zc1NpdGVCbGFua1RhcmdldFdpdGhPcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRh
cmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEV4cGxpY2l0T3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVS
TFNjaGVtZTpAIlBTT04iXTsKQEAgLTE0MDEsNiArMTQxOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENyb3NzU2l0ZUJsYW5rVGFyZ2V0SW1wbGljaXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNz
UG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxl
ciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0
b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVXaXRoSW1wbGljaXROb09wZW5lclRlc3RCeXRlc107
CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDQwLDYgKzE0NTgsNyBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
IHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVS
TFNjaGVtZTpAIlBTT04iXTsKQEAgLTE0NzksNiArMTQ5OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFNhbWVTaXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQo
KV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0
TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zy
b21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFy
Z2V0QmxhbmtTYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBT
T04iXTsKQEAgLTE1MTEsOCArMTUzMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlQmxh
bmtUYXJnZXROb09wZW5lcikKICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CiB9CiAKLSNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0RnJv
bU5ld1dlYlZpZXcpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29u
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CkBAIC01MDk0LDggKzUxMTIsNiBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBMb2FkaW5nU3RhdGVBZnRlclBvbGljeURlY2lzaW9uKQogICAgIFt3ZWJWaWV3
IHJlbW92ZU9ic2VydmVyOmxvYWRPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAiVVJMIiBjb250
ZXh0OndlYlZpZXcuZ2V0KCldOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0aWMgY29u
c3QgY2hhciogc2F2ZU9wZW5lclRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4K
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKQEAgLTUxMDcsNiArNTEyMyw4IEBAIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRl
ckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lcikKIHsKICAgICBhdXRvIHdlYlZp
ZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CisKICAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1h
cHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRv
RGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6
c2F2ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MTgwLDYgKzUxOTgsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZXIp
CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3
YXBwaW5nT2ZPcGVuZWUpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFs
bG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lU2l0ZVdp
dGhPcGVuZXJUZXN0Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4y
Lmh0bWwiLgogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVzdEJ5dGVzXTsKQEAg
LTUyMzUsOCArNTI1NCw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNv
bnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lZSkKICAgICBkb25lID0gZmFsc2U7CiB9CiAK
LSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KIGVudW0gY2xhc3MgRXhwZWN0U3dhcCB7IE5vLCBZ
ZXMgfTsKIHN0YXRpYyB2b2lkIHJ1blByb2Nlc3NTd2FwRHVlVG9SZWxhdGVkV2ViVmlld1Rlc3Qo
TlNVUkwqIHJlbGF0ZWRWaWV3VVJMLCBOU1VSTCogdGFyZ2V0VVJMLCBFeHBlY3RTd2FwIGV4cGVj
dFN3YXApCiB7CkBAIC03MTUxLDMgKzcxNjgsMjMzIEBAIFRFU1QoV2ViUHJvY2Vzc0NhY2hlLCBD
bGVhcldoZW5FbnRlcmluZ0NhY2hlKQogICAgIC8vIENsZWFyIHRoZSBXZWJQcm9jZXNzIGNhY2hl
IHdoaWxlIHRoZSBwcm9jZXNzZXMgYXJlIGJlaW5nIGNoZWNrZWQgZm9yIHJlc3BvbnNpdmVuZXNz
LgogICAgIFtwcm9jZXNzUG9vbCBfY2xlYXJXZWJQcm9jZXNzQ2FjaGVdOwogfQorCitzdGF0aWMg
Y29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNPTlJF
U09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3ID0g
d2luZG93Lm9wZW4oInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiLCAiZm9vIik7Cit9
Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitzdGF0aWMgY29uc3QgY2hhciogd2luZG93
T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2NyaXB0Pgor
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3BlbigicG9wdXAu
aHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0PgorKVBTT05SRVNPVVJDRSI7CisKK2VudW0gY2xh
c3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Oworc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlv
bkNPT1AsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRv
U2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCit7CisgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7
CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVu
Y2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBp
c0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgeworICAg
ICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CisgICAgaWYgKGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46
OlllcykgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNP
T1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgaWYgKGRvU2Vy
dmVyU2lkZVJlZGlyZWN0ID09IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAg
ICAgIFtoYW5kbGVyIGFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1
cC1hZnRlci1yZWRpcmVjdC5odG1sIl07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC1hZnRlci1yZWRpcmVj
dC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0
aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0gZWxzZSB7CisgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BW
YWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgaWYgKGRvU2VydmVyU2lkZVJlZGlyZWN0ID09IERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZFJlZGly
ZWN0RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRvVVJM
U3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJd
OworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIiB0b0RhdGE6InBvcHVwIiB3
aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09P
UF07CisgICAgfQorICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgX19ibG9jayB1bnNpZ25lZCBudW1iZXJPZlBy
b3Zpc2lvbmFsTG9hZHMgPSAwOworICAgIG5hdmlnYXRpb25EZWxlZ2F0ZS0+ZGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb25IYW5kbGVyID0gXnsKKyAgICAgICAgKytudW1iZXJPZlByb3Zpc2lv
bmFsTG9hZHM7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpu
YXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tQU09OVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhOYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpXSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVn
YXRlLmdldCgpXTsKKworICAgIHNlcnZlclJlZGlyZWN0ZWQgPSBmYWxzZTsKKyAgICBudW1iZXJP
ZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9
IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJWaWV3
KTsKKyAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgaWYgKGRvU2VydmVyU2lkZVJlZGlyZWN0ID09IERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDMsIG51bWJlck9mRGVj
aWRlUG9saWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfVFJVRShzZXJ2ZXJSZWRpcmVjdGVkKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lD
YWxscyk7CisgICAgICAgIEVYUEVDVF9GQUxTRShzZXJ2ZXJSZWRpcmVjdGVkKTsKKyAgICB9Cisg
ICAgRVhQRUNUX0VRKDJVLCBudW1iZXJPZlByb3Zpc2lvbmFsTG9hZHMpOyAvLyBPbmUgaW4gZWFj
aCB2aWV3LgorCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDEpOworICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CisK
KyAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAgICAgIEVYUEVDVF9O
RShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsK
KworICAgIGJvb2wgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAidy5jbG9zZWQgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0
aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5T
U3RyaW5nICppc0Nsb3NlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVj
dFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
dHJ1ZSIsIGlzQ2xvc2VkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAiZmFsc2UiLCBpc0Nsb3NlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2luZG93
TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhw
ZWN0U3dhcDo6Tm8gJiYgaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKQorICAgICAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05hbWUpOworICAgICAgICBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIC8vIE9wZW5lZSBzaG91
bGQgbm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93Lm9wZW5lciA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc09wZW5lciA9
IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dh
cDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBoYXNPcGVuZXIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ0cnVlIiwgaGFz
T3BlbmVyKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7Cisg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5uYW1lIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3aW5kb3dOYW1l
ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RT
d2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwgd2luZG93
TmFtZSk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0IiBjb21wbGV0aW9uSGFu
ZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5n
ICppbm5lclRleHQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAInBvcHVwIiwgaW5uZXJUZXh0KTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVu
bmluZ1NjcmlwdCk7CisKKyAgICBjcmVhdGVkV2ViVmlldyA9IG51bGxwdHI7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKK3sKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRo
UmVkaXJlY3QpCit7CisgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVj
dCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQorewor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAi
c2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhmYTllYjVm
Y2EyOTRmMzhiMzljNzQwN2E3MzE1MjhiNjdjYmQyNTcuLmVkNmY1ZGE1YTA4M2RkNTNkZWQzMTEw
NGRiYTk0MTdhNjkwYTVlM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wOC0yMyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBw
cm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAg
aGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgU2tpcCBDT09QIHRlc3RzIG9uIFdL
MSBhcyB3ZSBvbmx5IGhhdmUgYSB3b3JraW5nIGltcGxlbWVudGF0aW9uIGZvciBXSzIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDgtMjMgIEVyaWMgSHV0Y2hpc29u
ICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRp
b25zIGZvciBmYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNr
Lmh0bWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBlODMzNGM4ZTVmNmY3ZDcx
ZGE5NWQ2ZDg5ZGJjMzE0YmFkZjI0ZGUzLi44Y2M0YTc5ZGY3ZWFiNjA2ZjFjMmM4YzYxNWE2ZTlj
Mzk4YzEwMWMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTWlu
b3IgdGVzdCByZWJhc2VsaW5lIGR1ZSB0byBsb2dnaW5nIGNoYW5nZXMuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJs
b2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA4LTIzICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCBwZXJtaXNzaW9ucyB0ZXN0cyBm
cm9tIFdQVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYzYWM0N2UyYjk1ZmY0NzU0
MTQ2Njc2Li4wMzIzYTUxZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2OGIzZWMyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMiw4ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBo
dHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2EKIENPTlNPTEUgTUVT
U0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9u
L2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVTU0FH
RTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsu
aHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNv
dXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkg
Y2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBkdWUg
dG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9h
ZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2F1c2UgaXQg
dmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSByZXNw
b25zZSBoZWFkZXIuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRw
czovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJv
bCBjaGVja3MuCiAKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiB3aW5kb3cub3Blbigp
CiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTJhMmQzNDQ3OTYyNGYzMGVkMjcz
YzE4MTIyMTBjYmUzNDI4YThmMS4uNGM1ZWY0NjhjM2E4Nzk4ZTNlNDNmYWM1YTI4YTE1MzlmOGZi
NmE5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29u
dGVudC1zZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1y
ZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1j
b29wLWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29v
cC1ieS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250ZXh0
LmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDExIEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2Vy
dmljZS13b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0
bWwgWyBTa2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNl
LXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVy
LVBvbGljeSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3Nz
LW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0K
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBT
a2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAg
XQogCiAjIFF1b3RhIGNoZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rlc3RzL0luZGV4ZWREQi9z
dG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjFhNTY3OGZjN2JmYjJiYjkyMWIyMWViMTk4MWM0MjEw
YTI4YWI1Yi4uOWUzNDlhZmViYzJhZWZhZWQ4M2Y1ZTBjODZjZDhjOTVmY2E2NjU4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCArMzcxNSw2
IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGljaWVzL3Jl
ZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Utd29ya2Vy
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNraXAgXQot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBv
bGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRtbCBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlz
L3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNj
cmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdv
cmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBAIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdvcmtlci1p
bnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91
dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tpcCBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQt
c2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBD
cm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9w
ZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9s
aWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0K
LWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAu
aHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmln
aW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1i
ZWRkZXItcG9saWN5IFsgU2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRlcmluZyBmb3IgV0sxCiBo
dHRwL3dwdC9sb2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436222</attachid>
            <date>2021-08-23 12:18:49 -0700</date>
            <delta_ts>2021-08-23 17:01:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210823121848.patch</filename>
            <type>text/plain</type>
            <size>117004</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhkZmZiYjE2NzliYTMy
NDJlOWY2ZmJhYTljNzdlY2JjNzIzNjc1OC4uNTU1NTJiMjI2NTNmODU4Mzc3ZTU1NjA3ODUxMjNj
YjJiMzEwNWI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFN0aWNreSBwb3NpdGlvbiBzaG91bGQgbm90IHVzZSB0cmFuc2Zv
cm1lZCBwb3NpdGlvbiB0byBjb21wdXRlIHN0aWNreSBvZmZzZXQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRlNzM0
MGM4MjgxZTQ4ZTgwYjg2N2ZkOGY1ODFlYWM1NTlmN2QwYjQuLmYxN2JjN2ZhYWZlZmMwY2Q0Yjk4
YTEyN2Q5YTg1ZDE1ZGJjMTg2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjEtMDgt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBs
ZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFdlIHJlY2VudGx5IGFk
ZGVkIHN1cHBvcnQgZm9yIHRoZSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSAoQ09PUCkgSFRU
UCBoZWFkZXIuIEhvd2V2ZXIsCisgICAgICAgIHdoZW4gc3dpdGNoaW5nIGJyb3dzaW5nIGNvbnRl
eHQgZ3JvdXAgb24gSFRUUCByZXNwb25zZSwgd2Ugd291bGQga2VlcCB1c2luZyB0aGUgc2FtZSAK
KyAgICAgICAgV2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBz
d2FwIFdlYlByb2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBn
cm91cCBvbiBuZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1
cmVseSByZS1lbmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZl
ci4KKworICAgICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUg
c2FtZSBsb2dpYyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAg
IEEgZmV3IGRpZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9u
c2UgcG9saWN5IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24K
KyAgICAgICAgLSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
WWVzL05vIGVudW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVy
TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24u
IFdlIG5lZWQgdGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVz
cG9uc2UgcG9saWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRv
IGF2b2lkCisgICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExv
YWQgSVBDcyBhZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1z
d2FwcGluZyBvbiBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFn
ZSBpbnN0ZWFkIG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3Np
bmcgY29udGV4dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5n
IGNvbnRleHQgbmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSku
CisKKyAgICAgICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVu
dGx5IHNlbmQgdGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAg
ICAgIGEgcHJvY2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3Vy
cmVudGx5IGdldHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3Jr
IHJlc3BvbnNlIGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxv
YWQgZ2V0cyBpc3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBw
aW5nLiBJIHdpbGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNo
IHNpemUgYW5kCisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9u
IHRoZSBsb2FkIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MK
KyAgICAgICAgdG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAg
ICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBh
Z2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6
Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDcmVhdGVNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQ
cm94eTo6c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
b3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbiBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUltcGwpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMjEtMDgtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3MTE0Nik6IGVkaXRpbmcvc2VsZWN0aW9u
L2lvcy9zY3JvbGxpbmctdG8tZm9jdXNlZC1lbGVtZW50LWluc2lkZS1pZnJhbWUuaHRtbCBpcyBm
YWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDFlMWI4ZTUzOGY4ZmUyNzNi
Nzc1NDVkODAxYjExMzM2ZDU4MTc5MC4uZDMxMjI4MWU2ODhkMzkzNjEzODI0MmU2YmQ3Yjc0MDk4
ZGU0MzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dL
Ml0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisKIDIwMjEtMDgtMTkgIE1lZ2Fu
IEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgb2xk
IHVudXNlZCBjb2RlIGFuZCBvdXQgb2YgZGF0ZSBjb21tZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwppbmRleCA3ZGU5MTA3ZGE5Zjg0NjkwZDFhNTk3OGJjMWEzNDVjMGY2Yzc4YzdmLi40
NThmYTE2MGU5MTg3ZDhhMTRjNGEyZmZhYjU5YWFkYWFkMzRlMzcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2Fw
cGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisKIDIwMjEtMDgtMjEgIFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dpbl0gQ3Jhc2ggdW5kZXIgRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJh
Y2tGb250CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCAzZTRm
ZjllMDQ5NjRiMTZiNDI4MDkyNmNmOWUwMzI4MDUwM2M3YmUwLi40ZDMyYWU0YTlkNTlmOWVjZTFk
YWU2NTkwNjY0Nzk4NDkyYjUzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKQEAgLTc4MywxNSArNzgzLDEyIEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2luZy10
aGUtd2ViLmh0bWwjcHJvY2Vzcy1hLW5hdmlnYXRlLWZldGNoIChTdGVwIDEyLjUuNi4yKQogICAg
IC8vIElmIHNhbmRib3hGbGFncyBpcyBub3QgZW1wdHkgYW5kIHJlc3BvbnNlQ09PUCdzIHZhbHVl
IGlzIG5vdCAidW5zYWZlLW5vbmUiLCB0aGVuIHNldCByZXNwb25zZSB0byBhbiBhcHByb3ByaWF0
ZSBuZXR3b3JrIGVycm9yIGFuZCBicmVhay4KLSAgICBpZiAocmVzcG9uc2VDT09QLnZhbHVlICE9
IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5VmFsdWU6OlVuc2FmZU5vbmUgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+Y3JlYXRpb25TYW5kYm94RmxhZ3MoKSAhPSBTYW5kYm94Tm9uZSkgeworICAgIGlm
IChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6VW5z
YWZlTm9uZSAmJiBmcmFtZUxvYWRlcigpLT5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKSAhPSBTYW5k
Ym94Tm9uZSkgewogICAgICAgICBjYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyKCkt
PmNhbmNlbGxlZEVycm9yKG1fcmVxdWVzdCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCiAgICAgbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ID0gZW5mb3JjZVJlc3BvbnNl
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kocmVzcG9uc2UudXJsKCksIHJlc3BvbnNlT3JpZ2luLCBy
ZXNwb25zZUNPT1ApOwotICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCi0gICAgICAgIGZyYW1lTG9hZGVyKCktPnN3
aXRjaEJyb3dzaW5nQ29udGV4dHNHcm91cCgpOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTk5OCw5ICs5OTUsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aQogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3Bv
bnNlKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gQ0ZOZXR3
b3JrIHdoZXJlIGNhbGxiYWNrcyBjYW4gYmUgZGlzcGF0Y2hlZCBldmVuIHdoZW4gbG9hZHMgYXJl
IGRlZmVycmVkLgogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNjMwNDYwMD4gZm9yIG1vcmUg
ZGV0YWlscy4KICNpZiAhVVNFKENGKQpAQCAtMTA0MiwxMSArMTAzNiwxOSBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aQogICAgIH0KICNlbmRpZgogCisgICAgaWYgKCFkb0Nyb3NzT3JpZ2luT3Bl
bmVySGFuZGxpbmdPZlJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHN0ZDo6ZXhjaGFuZ2UobV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNo
ZWNrLCBmYWxzZSkpIHsKKyAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3koUG9saWN5
QWN0aW9uOjpVc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgUmVmUHRyPFN1YnJl
c291cmNlTG9hZGVyPiBtYWluUmVzb3VyY2VMb2FkZXIgPSB0aGlzLT5tYWluUmVzb3VyY2VMb2Fk
ZXIoKTsKICAgICBpZiAobWFpblJlc291cmNlTG9hZGVyKQogICAgICAgICBtYWluUmVzb3VyY2VM
b2FkZXItPm1hcmtJbkFzeW5jUmVzcG9uc2VQb2xpY3lDaGVjaygpOwogICAgIGF1dG8gcmVxdWVz
dElkZW50aWZpZXIgPSBQb2xpY3lDaGVja0lkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGZyYW1l
TG9hZGVyKCktPmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmll
ciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpblJlc291cmNlTG9h
ZGVyID0gV1RGTW92ZShtYWluUmVzb3VyY2VMb2FkZXIpLAorICAgIGZyYW1lTG9hZGVyKCktPmNo
ZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCByZXF1ZXN0SWRlbnRpZmllciwgbV9jdXJyZW50
Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5uZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIg
PSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRlciksCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
ID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpLCByZXF1ZXN0SWRlbnRpZmllcl0g
KFBvbGljeUFjdGlvbiBwb2xpY3ksIFBvbGljeUNoZWNrSWRlbnRpZmllciByZXNwb25zZUlkZW50
aWZpZXIpIG11dGFibGUgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChyZXNwb25zZUlkZW50aWZp
ZXIuaXNWYWxpZEZvcihyZXF1ZXN0SWRlbnRpZmllcikpOwogICAgICAgICBjb250aW51ZUFmdGVy
Q29udGVudFBvbGljeShwb2xpY3kpOwpAQCAtMjAwOCw5ICsyMDEwLDE1IEBAIGJvb2wgRG9jdW1l
bnRMb2FkZXI6Om1heWJlTG9hZEVtcHR5KCkKICAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRM
b2FkRW1wdHkgPyAidGV4dC9odG1sIiA6IGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmdlbmVyYXRl
ZE1JTUVUeXBlRm9yVVJMU2NoZW1lKG1fcmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSk7CiAgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9y
ZXF1ZXN0LnVybCgpLCBtaW1lVHlwZSwgMCwgIlVURi04Il9zKTsKIAotICAgIGlmIChmcmFtZUxv
YWRlcigpLT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkK
KyAgICBpZiAoZnJhbWVMb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RSZWFs
RG9jdW1lbnRMb2FkKCkpIHsKICAgICAgICAgZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZS
ZXNwb25zZShtX3Jlc3BvbnNlKTsKIAorICAgICAgICAvLyBGSVhNRTogTm9uLWluaXRpYWwgYWJv
dXQ6YmxhbmsgbG9hZHMgbWF5IGNhdXNlIGEgYnJvd3NpbmcgY29udGV4dCBncm91cCBzd2l0Y2gu
IEhvd2V2ZXIsIHN1Y2ggbG9hZCBpcyBzeW5jaHJvbm91cyBhbmQgZG9lc24ndAorICAgICAgICAv
LyBpbnZvbHZlIGEgcmVzcG9uc2UgcG9saWN5IGRlY2lzaW9uLiBBcyBhIHJlc3VsdCwgd2Ugc2lt
dWxhdGUgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaCB3aXRob3V0IGFjdHVhbGx5IHN3
YXBwaW5nIHByb2Nlc3MuCisgICAgICAgIGlmIChtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1
bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCisgICAgICAgICAgICBmcmFtZUxv
YWRlcigpLT5zd2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKKyAgICB9CisKICAgICBmaW5p
c2hlZExvYWRpbmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyMzgsNiArMjI0Niw3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNsZWFyTWFpblJlc291cmNlKCkKICNlbmRpZgogCiAgICAg
bV9tYWluUmVzb3VyY2UgPSBudWxscHRyOworICAgIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVz
cG9uc2VQb2xpY3lDaGVjayA9IGZhbHNlOwogCiAgICAgdW5yZWdpc3RlclRlbXBvcmFyeVNlcnZp
Y2VXb3JrZXJDbGllbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgK
aW5kZXggZDhmZjFkYTNiZDY0MDZjNWQ3NjQ4NzZhYWQ0OWJiZDAwNGFjMTc3MC4uMWM4NzE0MmY0
OWZhNzEyZWY0Y2JlODc5MDdhNzY2YjNlMDJjZWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmgKQEAgLTQyNSw2ICs0MjUsOSBAQCBwdWJsaWM6CiAKICAgICBDcm9zc09y
aWdpbk9wZW5lclBvbGljeSBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCA/IG1fY3VycmVudENvb3BFbmZvcmNlbWVu
dFJlc3VsdC0+Y3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgOiBDcm9zc09yaWdpbk9wZW5lclBvbGlj
eSB7IH07IH0KIAorICAgIGJvb2wgaXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lD
aGVjaygpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjazsgfQorICAgIHZvaWQgc2V0SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayhib29sIGlzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2spIHsg
bV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gaXNDb250aW51aW5n
TG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjazsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vi
c3RpdHV0ZURhdGEmKTsKIApAQCAtNTYxLDYgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2dvdEZpcnN0Qnl0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ2xpZW50UmVkaXJlY3QgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50IHsgZmFsc2UgfTsK
KyAgICBib29sIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayB7IGZh
bHNlIH07CiAKICAgICAvLyBGSVhNRTogRG9jdW1lbnQ6Om1fcHJvY2Vzc2luZ0xvYWRFdmVudCBh
bmQgRG9jdW1lbnRMb2FkZXI6Om1fd2FzT25sb2FkRGlzcGF0Y2hlZCBhcmUgcm91Z2hseSB0aGUg
c2FtZQogICAgIC8vIGFuZCBzaG91bGQgYmUgbWVyZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcAppbmRleCA4ZGNhNzViOTQwNzk1MDc4OTIzNmQyYWExMjBmNDNhN2IzYjFj
NmQ3Li45NjRlMmRkMTIwNzAzMzFhNjVjYTM0MWFjNzBlNGIyODc0MjAwYTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcgKzgxNiw3IEBAIHZvaWQgRW1w
dHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKIH0KIAotdm9pZCBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKK3ZvaWQgRW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDY5YTExMzIzOGEwYThjNmE2ZmU1YjAzNmRmMDdmNDgzOWY3OWFkNzAuLjEyMGE0YTUyMGJk
MWYxMmQ3M2QxNGY2MmVlMGVlNDBiOTg4NGVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgog
ICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5l
d0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFs
OwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1l
UG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIEZvcm1T
dGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmluZGV4IDk0YWU1NWE2
NzY1ZjM4MTRiZWY0NTVmMmRiYWUwNmQwM2RmMjQ2ZGEuLjM3MGRmOGZhYTVjNzY0NGRkNTg4OGE4
N2IyOWY4Yzk4MjFlMjU1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVl
c3QuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNp
bmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2luY2x1ZGUgIlN1YnN0
aXR1dGVEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNjEsOCArNjIsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDaGVja05ld1dpbmRvd1BvbGljeShib29sIGNo
ZWNrUG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgPSBjaGVja1BvbGljeTsg
fQogICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OyB9CiAKLSAgICB2b2lkIHNldFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9CisgICAgdm9pZCBz
ZXRTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCkgeyBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQorICAgIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQogCiAgICAgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YTsg
fQogICAgIHZvaWQgc2V0U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vic3RpdHV0ZURhdGEmIGRhdGEp
IHsgbV9zdWJzdGl0dXRlRGF0YSA9IGRhdGE7IH0KQEAgLTExMyw3ICsxMTQsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKIAogICAgIGJv
b2wgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CisgICAgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpObyB9OwogICAgIExvY2tIaXN0b3J5IG1fbG9ja0hpc3RvcnkgeyBM
b2NrSGlzdG9yeTo6Tm8gfTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1fbG9ja0JhY2tGb3J3
YXJkTGlzdCB7IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgUmVmZXJyZXJQb2xpY3kg
bV9yZWZlcnJlclBvbGljeSB7IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTRhYTNlZWZkY2VmZjRmY2NlNmFlNWEy
YzBmZDU2MDVlMTU0YjA5Zi4uMWJiOTc2N2MyODdjY2Y4ZDEzMDE5MzQ3YmIzYTQzMThiMmY2MmFm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIENv
bnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIEZyYW1lTG9hZGVy
OjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7
CiAgICAgaWYgKCFhY3RpdmVEb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAgIC8vIExvYWQgd2Fz
IGNhbmNlbGxlZApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29u
dGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlCiAg
ICAgfQogCiAgICAgLy8gRklYTUU6IFZhbGlkYXRlIHRoZSBwb2xpY3kgY2hlY2sgaWRlbnRpZmll
ci4KLSAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNl
LCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURv
Y3VtZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIFdURk1vdmUoZnVuY3Rpb24pKTsK
KyAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBh
Y3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIsIGFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIG5lZWRzQnJvd3NpbmdDb250ZXh0R3Jv
dXBTd2l0Y2gsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y2hh
bmdlTG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2VkVGFyZ2V0LCBF
dmVudCogdHJpZ2dlcmluZ0V2ZW50LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJyZXJQb2xp
Y3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSwgc3RkOjpvcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4gb3BlbmVyUG9saWN5LCBj
b25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lzdGVtUHJldmlld0lu
Zm8mIHN5c3RlbVByZXZpZXdJbmZvLCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVt
ZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQpAQCAtMTIwNSw3ICsxMjA1LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRTdGFydCgpCiAgICAgRlJBTUVMT0FERVJfUkVM
RUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAicHJlcGFyZUZvckxvYWRTdGFydDogU3RhcnRpbmcg
ZnJhbWUgbG9hZCIpOwogCiAgICAgbV9wcm9ncmVzc1RyYWNrZXItPnByb2dyZXNzU3RhcnRlZCgp
OwotICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCk7CisgICAg
Ym9vbCBhbHJlYWR5U2VudERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gbV9wcm92aXNpb25hbERv
Y3VtZW50TG9hZGVyICYmIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+aXNDb250aW51aW5n
TG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaygpOworICAgIGlmICghYWxyZWFkeVNlbnREaWRT
dGFydFByb3Zpc2lvbmFsTG9hZCkKKyAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkU3RhcnRQ
cm92aXNpb25hbExvYWQoKTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUu
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKQEAgLTE0NzAsMTAgKzE0NzIs
MTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCkK
ICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGxvYWRlciA9IG1fY2xpZW50LT5jcmVhdGVEb2N1bWVu
dExvYWRlcihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LnN1YnN0aXR1dGVEYXRh
KCkpOwogICAgIGxvYWRlci0+c2V0QWxsb3dzV2ViQXJjaGl2ZUZvck1haW5GcmFtZShyZXF1ZXN0
LmlzUmVxdWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKICAgICBsb2FkZXItPnNldEFsbG93
c0RhdGFVUkxzRm9yTWFpbkZyYW1lKHJlcXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklu
cHV0KCkpOworICAgIGxvYWRlci0+c2V0SXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayhyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpID09IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uKTsKICAg
ICBhZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChsb2FkZXItPnJlcXVlc3QoKSk7CiAg
ICAgYXBwbHlTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9OZXdEb2N1bWVudExvYWRlciht
X2ZyYW1lLCBsb2FkZXIsIHJlcXVlc3QpOwogCi0gICAgaWYgKHJlcXVlc3Quc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkKCkpIHsKKyAgICBpZiAocmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKSB7CiAgICAgICAg
IGxvYWRlci0+c2V0Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KHJlcXVlc3QuY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkpOwogICAgICAgICBpZiAocmVxdWVzdC5sb2NrQmFj
a0ZvcndhcmRMaXN0KCkgPT0gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKSB7CiAgICAgICAgICAg
ICBsb2FkZXItPnNldElzQ2xpZW50UmVkaXJlY3QodHJ1ZSk7CkBAIC0xNDgxLDcgKzE0ODQsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29u
dGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCByZXF1ZXN0LnNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGlu
dWluZ1dpdGhSZXF1ZXN0IDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7Cisg
ICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZCht
X2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCByZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGlu
dWluZ1N0YXRlOjpDb250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpO
b3RDb250aW51aW5nKTsKICAgICBsb2FkKGxvYWRlci5nZXQoKSk7CiB9CiAKQEAgLTM3NjgsNyAr
Mzc3MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlz
dG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tCiAKICAgICBhdXRvIGluaXRpYXRlZEJ5
TWFpbkZyYW1lID0gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247CiAKLSAgICBTZXRGb3JT
Y29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExv
YWRDb250aW51aW5nU3RhdGUsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6OlllcyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVp
bmdXaXRoSGlzdG9yeUl0ZW0gOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsK
KyAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1YXJk
KG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0
ZTo6Q29udGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENv
bnRpbnVpbmcpOwogCiAgICAgaWYgKENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5nZXQoaXRlbSwgbV9mcmFtZS5wYWdlKCkpKSB7CiAgICAgICAg
IGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBjYWNoZWRQYWdlLT5kb2N1bWVudExvYWRlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA2ZjNiZGJlZmNhMzlmYmZjMjNmOWQxNGM5
YjI3MTEyMjZkZTI0YTBiLi5lNTZjMDhmNzAzNmE1ZGZiNzMzYzJlNWY1Y2VlY2Q4ODQyMmFmNTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtODIsNyArODIsNyBAQCBjbGFz
cyBTdWJzdGl0dXRlRGF0YTsKIGVudW0gY2xhc3MgQ2FjaGVQb2xpY3kgOiB1aW50OF90OwogZW51
bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7CiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVzZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBJ
c01haW5SZXNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiBlbnVtIGNsYXNzIFNob3VsZFVwZGF0
ZUFwcEluaXRpYXRlZFZhbHVlIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTIyMCw3ICsyMjAsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKLSAgICB2b2lk
IGNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKKyAgICB2b2lkIGNo
ZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwogCiAgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW4oKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzZWI1Y2VlNjQy
NmM0NGRjMTc0MjIyMTVmYWFiMTU2OTMxZGIyZDlkLi4zOWJiNDA1NDA5YzQxNzQ3ODVhOTM3MjI4
MzAwMTg2M2MwYTg3NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNC
cm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUq
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBG
b3JtU3RhdGUqLCBQb2xpY3lEZWNpc2lvbk1vZGUsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNo
ZWNrKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAppbmRl
eCA2ZDVkZTg0ZjIxNzk4ODYzYmE4ZWVkZThiNjQ2ZmU5NDhhNDU4ODJiLi4xMDM3ZGY5OGVjNDE1
NTRiZmIxZGI2MmI4OTY4MmQ4MzdmYTY1NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEhp
c3RvcnlJdGVtOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi1lbnVtIGNsYXNzIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBTdHJpbmdXaXRoRGlyZWN0aW9u
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLmgKaW5kZXggNzZlMDkzNTA1YmNiYmU2NmQyMjQ1MmQyZjViNzk1YjNkNWQ4NTNhNC4u
YWIxMzUzYmNjMDgyZTQxYmE1ODljOWMyOWMyMTA4NTNhMzk5NTI4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdCB7IE5vLCBZZXNBZnRlck5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMzksNyArMzksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZD4gewogICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObywKLSAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
ck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwKKyAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24KICAgICA+Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA0ODdjOWIyYjVlZjQ5NDZjOWNiZTk4OWYzZTc3NjFmMDhl
NjFkODBlLi45MjU1YmYzMTNjNjdkNzE0ODE1Y2Y3ODE1MjY2ZmZkODA1YjIyZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHVzaW5nIFNoYXJlZFN0cmluZ0hhc2ggPSB1aW50
MzJfdDsKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdyYXAgOiBi
b29sOwogZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogCiBlbnVtIGNsYXNzIEV2ZW50VGhyb3R0
bGluZ0JlaGF2aW9yIDogYm9vbCB7IFJlc3BvbnNpdmUsIFVucmVzcG9uc2l2ZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCAwNjIwOTY0NjhmZTg3YjY4YzE5ZWYz
ODA3N2EyNWE5MjFkOWQ0ZWZmLi5lNWM1N2IwNDA0OWM4YjIwYjZiZDYxMWNmYzhmNmIwMWY3OGMw
N2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXNEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3Vic3RpdHV0ZURhdGEuaD4KIAogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7
CkBAIC02Niw3ICs2Nyw3IEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAgICAgc3RkOjpvcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXM7CiAKICAgICBXZWJDb3Jl
OjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyB9OwotICAgIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgZmFsc2UgfTsKKyAg
ICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIHsgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyB9Owog
ICAgIFVzZXJEYXRhIHVzZXJEYXRhOwogICAgIFdlYkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tIaXN0
b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tG
b3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcAppbmRleCBjNjU0Y2I4YzEyMjFhZjgxMWY2YjBhNzNiM2UxZGY5NDM1YjJiNzZk
Li40MWNkMzVkYmZhOGQwZTM0YmQxZWI0OWY1ZDU3NGYyYzM3MDBiZDU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC01OCw3ICs1
OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogI2RlZmluZSBQUk9WSVNJT05BTFBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0coY2hhbm5lbCwg
IiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJ
RD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBm
bXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwg
IyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0df
RVJST1IoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsICIlcCAt
IFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWks
IG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIl0gUHJvdmlzaW9uYWxQYWdlUHJveHk6OiIgZm10LCB0
aGlzLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0
KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9uYXZpZ2F0aW9uSUQsICMjX19W
QV9BUkdTX18pCiAKLVByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBBUEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0ZVBvbGljaWVz
KQorUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8
U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqIHdlYnNpdGVQb2xpY2llcykKICAgICA6IG1fcGFnZShwYWdlKQogICAg
ICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgp
IDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShw
cm9jZXNzKSkKQEAgLTY2LDYgKzY2LDcgQEAgUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lv
bmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm8KICAgICAs
IG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQogICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCiAgICAgLCBtX3Byb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQocHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCkKKyAgICAsIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdChzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgLCBtX3Byb3Zpc2lvbmFsTG9hZEFjdGl2aXR5KG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5KCJQcm92aXNpb25hbCBMb2FkIl9zKSkKICNlbmRp
ZgpAQCAtMTYyLDE2ICsxNjMsMTggQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6aW5pdGlh
bGl6ZVdlYlBhZ2UoUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnMKICAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RnJlZXplTGF5ZXJUcmVlRHVlVG9Td2lwZUFuaW1hdGlv
bigpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0
YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6
T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNl
c3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpCiB7CiAgICAg
UFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZERh
dGE6Iik7CisgICAgQVNTRVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKIAotICAgIG1fcGFnZS5sb2FkRGF0
YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBu
YXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3RO
YXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhp
c3RvcnlWaXNpYmlsaXR5KTsKKyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgbWlt
ZVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xp
Y2llcyksIG5hdmlnYXRpb24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAg
IFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImxvYWRS
ZXF1ZXN0OiIpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gV2Vi
Q29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAKICAgICAvLyBJZiB0aGlz
IGlzIGEgY2xpZW50LXNpZGUgcmVkaXJlY3QgY29udGludWluZyBpbiBhIG5ldyBwcm9jZXNzLCB0
aGVuIHRoZSBuZXcgcHJvY2VzcyB3aWxsIG92ZXJ3cml0ZSB0aGUgZnJvbUl0ZW0ncyBVUkwuIElu
IHRoaXMgY2FzZSwKICAgICAvLyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSB1cGRhdGUgZnJvbUl0
ZW0ncyBwcm9jZXNzSWRlbnRpZmllciBhcyB3ZSB3YW50IGZ1dHVyZSBuYXZpZ2F0aW9ucyB0byB0
aGlzIEJhY2tGb3J3YXJkIGl0ZW0gdG8gaGFwcGVuIGluIHRoZQpAQCAtMTc5LDcgKzE4Miw3IEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJvbUl0ZW0oKSAm
JiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+c2V0TGFzdFBy
b2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogCi0g
ICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRp
b24ubGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1
c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CisgICAg
bV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIG5hdmlnYXRpb24u
bGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2Vy
RGF0YSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlv
biwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGlj
aWVzPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTE5OSw3ICsyMDIsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgV2ViQgogICAgICAgICB3ZWJzaXRlUG9saWNpZXNEYXRhID0gd2Vic2l0ZVBvbGljaWVz
LT5kYXRhKCk7CiAgICAgCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlQmFja0Zv
cndhcmRMaXN0Rm9yUmVhdHRhY2goV1RGTW92ZShpdGVtU3RhdGVzKSkpOwotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9u
SUQoKSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBl
KCksIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llc0RhdGEpKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAq
bmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgV1RG
TW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOwogICAgIG1fcHJvY2Vzcy0+c3RhcnRSZXNwb25z
aXZlbmVzc1RpbWVyKCk7CiB9CiAKQEAgLTIyNyw4ICsyMzAsOSBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIFJlc3RvcmUgdGhlIG1haW4gZnJhbWUncyBjb21taXR0
ZWQgVVJMIGFzIHNvbWUgY2xpZW50cyBtYXkgcmVseSBvbiBpdCB1bnRpbCB0aGUgbmV4dCBsb2Fk
IGlzIGNvbW1pdHRlZC4KLSAgICBpZiAoYXV0byogbWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFt
ZSgpKQotICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwobWFpbkZy
YW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnVybCgpKTsKKyAgICBSZWZQdHIgcHJldmlvdXNNYWluRnJh
bWUgPSBtX3BhZ2UubWFpbkZyYW1lKCk7CisgICAgaWYgKHByZXZpb3VzTWFpbkZyYW1lKQorICAg
ICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS5zZXRVUkwocHJldmlvdXNNYWluRnJh
bWUtPnVybCgpKTsKIAogICAgIC8vIE5vcm1hbGx5LCBub3RpZmljYXRpb24gb2YgYSBzZXJ2ZXIg
cmVkaXJlY3QgY29tZXMgZnJvbSB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgogICAgIC8vIElmIHdl
IGFyZSBwcm9jZXNzIHN3YXBwaW5nIGluIHJlc3BvbnNlIHRvIGEgc2VydmVyIHJlZGlyZWN0IHRo
ZW4gdGhhdCBub3RpZmljYXRpb24gd2lsbCBub3QgY29tZSBmcm9tIHRoZSBuZXcgV2ViQ29udGVu
dCBwcm9jZXNzLgpAQCAtMjM2LDYgKzI0MCwxMCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgaWYgKG1f
aXNTZXJ2ZXJSZWRpcmVjdCkgewogICAgICAgICBtX21haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUo
KS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChtX3JlcXVlc3QudXJsKCkpOwogICAgICAgICBtX3Bh
Z2UuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgbV9uYXZpZ2F0
aW9uSUQsIFdURk1vdmUobV9yZXF1ZXN0KSwgeyB9KTsKKyAgICB9IGVsc2UgaWYgKHByZXZpb3Vz
TWFpbkZyYW1lICYmICFwcmV2aW91c01haW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgLy8gSW4gY2FzZSBvZiBhIHByb2Nlc3Mgc3dhcCBhZnRlciByZXNwb25z
ZSBwb2xpY3ksIHRoZSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCBhbHJlYWR5IGhhcHBlbmVkIGJ1
dCB0aGUgbmV3IG1haW4gZnJhbWUgZG9lc24ndCBrbm93IGFib3V0IGl0CisgICAgICAgIC8vIHNv
IHdlIG5lZWQgdG8gdGVsbCBpdCBzbyBpdCBjYW4gdXBkYXRlIGl0cyBwcm92aXNpb25hbCBVUkwu
CisgICAgICAgIG1fbWFpbkZyYW1lLT5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZChwcmV2aW91c01h
aW5GcmFtZS0+cHJvdmlzaW9uYWxVUkwoKSk7CiAgICAgfQogfQogCkBAIC0zMjIsMTMgKzMzMCwx
MiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJ
bmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0
KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJE
YXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAot
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRp
b25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RG
TW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCBhN2ZiNjZhNmRhYTczN2M5MDYwOTA3YzA4OTZm
MGNiYzk0ZWIzODBlLi4yNzE0YjJhNWI1NDdmMjY2N2ZjYjQ2ZmNlZjFiNTc4NGZiY2Y1ODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllcjsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03MSw3ICs3Miw3IEBAIHVzaW5nIExheWVySG9z
dGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogY2xhc3MgUHJvdmlzaW9uYWxQYWdlUHJveHkgOiBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFByb3Zpc2lvbmFsUGFn
ZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVl
X3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNT
ZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsKKyAgICBQcm92aXNp
b25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VB
ZnRlckNvbW1pdCwgQVBJOjpXZWJzaXRlUG9saWNpZXMqKTsKICAgICB+UHJvdmlzaW9uYWxQYWdl
UHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZTsgfQpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
KCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0aW9uSUQ7IH0KICAgICBjb25zdCBVUkwmIHByb3Zp
c2lvbmFsVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbExvYWRVUkw7IH0KIAorICAg
IGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdDsgfQorCiAgICAgRHJhd2luZ0Fy
ZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVybiBtX2RyYXdpbmdBcmVhLmdldCgp
OyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IHRha2VEcmF3aW5nQXJl
YSgpOwogCkBAIC0xMDEsOCArMTA0LDggQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotICAg
IHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkp
OwotICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4m
JiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBT
dHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFs
PE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5KTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9w
dCk7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYpOwogICAg
IHZvaWQgY2FuY2VsKCk7CiAKQEAgLTEyMCwxMSArMTIzLDggQEAgcHJpdmF0ZToKICAgICB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
c2VuZE1lc3NhZ2UoVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mJiwgT3B0aW9uU2V0PElQQzo6U2Vu
ZE9wdGlvbj4sIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
SVBDOjpEZWNvZGVyKik+LCB1aW50NjRfdD4+JiYpIGZpbmFsOwogCi0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3Jp
Z2luYXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0
ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwpAQCAtMTM5LDkgKzEzOSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZURpY3Rp
b25hcnlGcm9tV2ViUHJvY2Vzcyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVzY3JpcHRpb24sIGNvbnN0IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpWYWx1
ZURpY3Rpb25hcnkmLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwogICAgIHZvaWQgc3RhcnRVUkxT
Y2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0Zvcndh
cmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMmKT4mJik7
Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBi
b29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBG
cmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIHJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAjZW5kaWYKQEAgLTE3MSw2ICsx
NjksNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7
CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBtX3Byb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ7CiAgICAgYm9vbCBtX3dhc0NvbW1pdHRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgeyBmYWxzZSB9OwogICAgIFVSTCBt
X3Byb3Zpc2lvbmFsTG9hZFVSTDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzAzZTNkYmNlMGNlNjZkNDAwYmE5M2U5
NWNmZGFmY2YwNzk5MTI4Ni4uMzUxMWI3YmYzZGU1NjMyY2MwYjBlZDIyMGIyYjgzNTNlNmUxMTc2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzkwLDcg
KzEzOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIAogICAgIGF1dG8gdXJsID0gcmVxdWVz
dC51cmwoKTsKLSAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzKQorICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObykKICAgICAgICAgbV9wYWdl
TG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRpb24u
bmF2aWdhdGlvbklEKCksIHVybC5zdHJpbmcoKSB9KTsKIAogICAgIExvYWRQYXJhbWV0ZXJzIGxv
YWRQYXJhbWV0ZXJzOwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXMKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBs
b2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRh
KHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsKLSAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9y
eSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFj
a0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CkBAIC0xNTI1
LDcgKzE1MjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgbG9hZFBhcmFtZXRlcnMu
TUlNRVR5cGUgPSBNSU1FVHlwZTsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUgPSBl
bmNvZGluZzsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKLSAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXM7Cisg
ICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNlckRh
dGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGlj
aWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0g
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKQEAgLTE1NzgsNyArMTU3OCw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gc2lt
dWxhdGVkUmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJh
c2VVUkxTdHJpbmcgPSBiYXNlVVJMOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdzsKLSAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPSBmYWxzZTsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vOwogICAgIGxvYWRQYXJhbWV0
ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFy
YW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJk
TGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOwpAQCAtMzUx
OCw3ICszNTE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgICAgIGlmIChz
dXNwZW5kZWRQYWdlICYmIHN1c3BlbmRlZFBhZ2UtPnBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpKQog
ICAgICAgICAgICAgICAgIHN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCi0gICAgICAgICAgICBj
b250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5k
ZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIHN0ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIpKTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlck5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXV0byBpdGVtID0gbmF2aWdhdGlvbi0+
cmVsb2FkSXRlbSgpID8gbmF2aWdhdGlvbi0+cmVsb2FkSXRlbSgpIDogbmF2aWdhdGlvbi0+dGFy
Z2V0SXRlbSgpOwogICAgICAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246
OlVzZSAmJiBpdGVtKSB7CkBAIC0zNjA1LDcgKzM2MDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJgogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CiAgICAgYXV0
byogbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNpb25h
bFBhZ2UtPm5hdmlnYXRpb25JRCgpKTsKLSAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2Ug
PSBuYXZpZ2F0aW9uID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwg
bWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVy
Rmx1c2gpIDogZmFsc2U7CisgICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdh
dGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJD
b21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5G
cmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNo
KSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJzaXRl
RGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNpdGVE
YXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6IFdl
YlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwogCiAgICAgLy8gVGhlcmUg
aXMgbm8gd2F5IHdlJ2xsIGJlIGFibGUgdG8gcmV0dXJuIHRvIHRoZSBwYWdlIGluIHRoZSBwcmV2
aW91cyBwYWdlIHNvIGNsb3NlIGl0LgpAQCAtMzYyMCwxMSArMzYyMCwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBG
cmFtZUluZm9EYXRhJgogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkQ29tbWl0UHJvdmlz
aW9uYWxQYWdlKG9sZFdlYlBhZ2VJRCwgbV93ZWJQYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBzdXNwZW5kZWRQ
YWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3BlbmRlZFBhZ2UsIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhM
b2FkaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzOiBuZXdQcm9jZXNzUElEPSVp
LCBoYXNTdXNwZW5kZWRQYWdlPSVpIiwgbmV3UHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
ISFzdXNwZW5kZWRQYWdlKTsKICAgICBMT0coTG9hZGluZywgIkNvbnRpbnVpbmcgbmF2aWdhdGlv
biAlIiBQUkl1NjQgIiAnJXMnIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2aWdhdGlvbi5uYXZp
Z2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nU3RyaW5nKCkpOwogICAgIFJFTEVBU0VfQVNT
RVJUKCFuZXdQcm9jZXNzLT5pc0luUHJvY2Vzc0NhY2hlKCkpOworICAgIEFTU0VSVChzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7
CiAKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UpIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JF
TEVBU0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
czogVGhlcmUgaXMgYWxyZWFkeSBhIHBlbmRpbmcgcHJvdmlzaW9uYWwgbG9hZCwgY2FuY2VsbGlu
ZyBpdCAocHJvdmlzb25hbE5hdmlnYXRpb25JRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSkiLCBt
X3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklE
KCkpOwpAQCAtMzYzMyw5ICszNjM0LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAg
ICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb3Zpc2lv
bmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZNb3Zl
KG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmlnYXRp
b25JRCgpLCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpLCBuYXZpZ2F0aW9u
LmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHdlYnNpdGVQ
b2xpY2llcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRpb24p
LCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyldKCkgbXV0YWJsZSB7
CisgICAgYm9vbCBpc1NlcnZlclNpZGVSZWRpcmVjdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBv
bGljeURlY2lzaW9uICYmIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCk7Cisg
ICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0ID0gc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJS
ZXNwb25zZVBvbGljeURlY2lzaW9uOworICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1
ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdURk1vdmUobmV3UHJvY2VzcyksIFdURk1v
dmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGlzU2VydmVyU2lk
ZVJlZGlyZWN0LCBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1ZXN0KCksIHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIHdlYnNpdGVQ
b2xpY2llcy5nZXQoKSk7CisgICAgYXV0byBjb250aW51YXRpb24gPSBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0gbWFrZVJlZihuYXZpZ2F0aW9uKSwg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCB3ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBpdGVtID0gbmF2
aWdhdGlvbi0+dGFyZ2V0SXRlbSgpKSB7CiAgICAgICAgICAgICBMT0coTG9hZGluZywgIldlYlBh
Z2VQcm94eSAlcCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MgdG8gYmFjayBpdGVtIFVS
TCAlcyIsIHRoaXMsIGl0ZW0tPnVybCgpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0zNjU5LDkgKzM2
NjEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICAvLyBGSVhNRTogV29yayBv
dXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0
YwogICAgICAgICBBU1NFUlQoIW5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkuaXNFbXB0eSgp
KTsKICAgICAgICAgaWYgKGF1dG8mIHN1YnN0aXR1dGVEYXRhID0gbmF2aWdhdGlvbi0+c3Vic3Rp
dHV0ZURhdGEoKSkKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkRGF0YShuYXZp
Z2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwgc3Vic3RpdHV0ZURhdGEt
PmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlwZSwgc3Vic3RpdHV0ZURh
dGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vic3RpdHV0ZURhdGEtPnVz
ZXJEYXRhLmdldCgpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vi
c2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxp
dHkpOworICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWREYXRhKG5hdmlnYXRpb24s
IHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJzdGl0dXRlRGF0YS0+Y29udGVu
dC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBzdWJzdGl0dXRlRGF0YS0+ZW5j
b2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0dXRlRGF0YS0+dXNlckRhdGEu
Z2V0KCksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9w
cm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCB7
IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKKyAgICAgICAg
ICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0aW9uLCBSZXNvdXJjZVJl
cXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51bGxwdHIsIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbigpLCBXVEZN
b3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKICAgICB9OwogICAgIGlmIChtX2luc3BlY3RvckNv
bnRyb2xsZXItPnNob3VsZFBhdXNlTG9hZGluZygqbV9wcm92aXNpb25hbFBhZ2UpKQogICAgICAg
ICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnNldENvbnRpbnVlTG9hZGluZ0NhbGxiYWNrKCptX3By
b3Zpc2lvbmFsUGFnZSwgV1RGTW92ZShjb250aW51YXRpb24pKTsKQEAgLTU2MTQsMTMgKzU2MTYs
MTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWUKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwKKyAg
ICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlm
aWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRv
d25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25z
ZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dl
ZEJ5SW5qZWN0ZWRCdW5kbGUsIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYm
IGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93
c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VD
bGllbnQoKSk7CiAKQEAgLTU2MzMsNyArNTYzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/
IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwog
ICAgIGF1dG8gbmF2aWdhdGlvblJlc3BvbnNlID0gQVBJOjpOYXZpZ2F0aW9uUmVzcG9uc2U6OmNy
ZWF0ZShBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZvKSwgdGhpcykuZ2V0
KCksIHJlcXVlc3QsIHJlc3BvbnNlLCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
KTsKIAotICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3Rl
bmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlE
LCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShu
YXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdl
YlBhZ2VJRCwgZnJhbWVJRCwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgaWRlbnRp
ZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAg
ICAgIHByb2Nlc3MsIG5hdmlnYXRpb25SZXNwb25zZV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4m
JiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAg
Ly8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVy
ZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdv
IGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwpAQCAtNTY0Miw5ICs1NjQ0
LDI4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgICAgIGF1dG8gc2VuZGVyID0gUG9s
aWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlE
LCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0gKGNvbnN0IGF1dG8mIHBv
bGljeURlY2lzaW9uKSB7CiAgICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5
RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVuc2lvbnMocHJvY2Vz
cykpLCB3ZWJQYWdlSUQpOwogICAgICAgICB9KTsKKworICAgICAgICBhdXRvIHdpbGxDb250aW51
ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpObzsKKyAg
ICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoICYmIG5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIHJlc3BvbnNlRG9tYWluIHsgbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25z
ZSgpLnVybCgpIH07CisgICAgICAgICAgICAvLyBBdm9pZCBwcm9jZXNzLXN3YXBwaW5nIGluIGNh
c2VzIHdoZXJlIHRoZSBwcm9jZXNzIG9ubHkgY29udGFpbnMgYSBzaW5nbGUgcGFnZSBhbmQgaXMg
b3JpZ2luLWNsZWFuLgorICAgICAgICAgICAgaWYgKHRoaXMtPnByb2Nlc3MoKS5wYWdlQ291bnQo
KSA+IDEgfHwgKHRoaXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgJiYg
KnRoaXMtPnByb2Nlc3MoKS5vcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluKCkgIT0gcmVzcG9uc2VE
b21haW4pKSB7CisgICAgICAgICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRp
bmcsICJkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZDogUHJvY2Vzcy1zd2FwcGluZyBkdWUg
dG8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kiKTsKKyAgICAgICAgICAgICAgICBwb2xpY3lB
Y3Rpb24gPSBQb2xpY3lBY3Rpb246Oklnbm9yZTsKKyAgICAgICAgICAgICAgICBhdXRvIHByb2Nl
c3NGb3JOYXZpZ2F0aW9uID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JSZWdp
c3RyYWJsZURvbWFpbih3ZWJzaXRlRGF0YVN0b3JlKCksIHRoaXMsIHJlc3BvbnNlRG9tYWluKTsK
KyAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoKm5hdmlnYXRp
b24sIG51bGxwdHIsIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50OjpObywgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRl
clJlc3BvbnNlUG9saWN5RGVjaXNpb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgIHdpbGxD
b250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzOjpZ
ZXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJlY2VpdmVk
UG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxscHRyLCBX
VEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgIHJl
Y2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBudWxs
cHRyLCBXVEZNb3ZlKG5hdmlnYXRpb25SZXNwb25zZSksIFdURk1vdmUoc2VuZGVyKSwgeyB9LCB3
aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzKTsKICAgICB9LCBTaG91bGRFeHBlY3RTYWZlQnJv
d3NpbmdSZXN1bHQ6Ok5vLCBTaG91bGRFeHBlY3RBcHBCb3VuZERvbWFpblJlc3VsdDo6Tm8pKTsK
KworICAgIGlmICh3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSkgeworICAgICAgICBsaXN0ZW5l
ci0+dXNlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobV9wb2xpY3lDbGll
bnQpCiAgICAgICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSgqdGhp
cywgKmZyYW1lLCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBXVEZNb3ZlKGxp
c3RlbmVyKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCkpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggMWU2MzUzNDRiZjljYTljNmRmNDJhOTBkMDgyMDQxMWFhOTllYjQxNS4uOGNlMzkx
NDJhN2RhYjBkZTgwMjA3MWUzM2E5ZGY2OGI4YmQ1MGM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3MCw3ICsyNzAsNyBAQCBlbnVtIGNsYXNzIE5vdGlmaWNh
dGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90OwogCiBz
dHJ1Y3QgQXBwSGlnaGxpZ2h0OwpAQCAtMTc0MSw3ICsxNzQxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBz
dGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAg
ICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAg
dm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CkBAIC0yMDU5LDcgKzIwNTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxs
b3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHVuYWJs
ZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVC
cm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94
eSYpOwogCkBAIC0yNDYxLDcgKzI0NjEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXBvcnRQ
YWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CiAKLSAg
ICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBz
dGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9s
aWNpZXM+JiYpOworICAgIHZvaWQgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6
TmF2aWdhdGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYsIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVz
PiYmKTsKIAogICAgIHZvaWQgc2V0TmVlZHNGb250QXR0cmlidXRlcyhib29sKTsKICAgICB2b2lk
IHVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0ZXJFZGl0b3JTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDVmNDkw
YjhmNTNlYzRmMGE4ZTFlNjgxMTg5NWFiYTQ3ZmYyMDg1ZmEuLmI4ODAzY2Q1MjIyYjZhNzA4NGZh
MmU3MjIwMjc3NzRiNWZlMDY1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTEwNyw3ICsxMDcsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRy
aWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRp
b25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50
NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKHN0cnVjdCBXZWJLaXQ6OlBvbGljeURlY2lzaW9uIFBvbGlj
eURlY2lzaW9uKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5n
IGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjQxYmUz
MGI3ODY0NDEyZTIyN2I3NjQxMjg5ZDJlYzA1OGNmNzE3Ni4uYTQwZTY5ZGZhNTIyZGVkZWJhZmRi
NWZjNmI5ZTcxZmNiOWI0YjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzTWF0Y2hp
bmdSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluID8gKm1fcmVnaXN0cmFibGVE
b21haW4gPT0gZG9tYWluIDogZmFsc2U7IH0KICAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW4u
dmFsdWVfb3IoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB9KTsgfQorICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiBvcHRpb25hbFJlZ2lzdHJh
YmxlRG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbjsgfQogICAgIHZv
aWQgc2V0SXNJblByb2Nlc3NDYWNoZShib29sKTsKICAgICBib29sIGlzSW5Qcm9jZXNzQ2FjaGUo
KSBjb25zdCB7IHJldHVybiBtX2lzSW5Qcm9jZXNzQ2FjaGU7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggZjM0MzQxOTNiMTQ1ZGIwNGMxYzRhYWEwMjE1ZDlkOTFlN2Zk
ZWQwNy4uY2Q3MGExYTAwODkzZDVmYTdiYzUwZDgwMTM0YjNkNjJlNjRjYzQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICB3ZWJQYWdlLT5zaG93KCk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5j
dGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAg
IGF1dG8qIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKSB7CkBA
IC04MzUsNyArODM1LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIE5vdGlm
eSB0aGUgYnVuZGxlIGNsaWVudC4KICAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5
ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1lLnB0cigpLCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRh
dGEpOwotICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlKSB7Cisg
ICAgLy8gSWYgYSBicm93c2luZyBjb250ZXh0IHN3aXRjaCBpcyByZXF1ZXN0ZWQsIHdlIHN0aWxs
IG5lZWQgdG8gc2VuZCB0aGUgSVBDIHRvIHRoZSBVSVByb2Nlc3MgaW4gb3JkZXIgdG8gcHJvY2Vz
cy1zd2FwIGlmIG5lY2Vzc2FyeSwgZXZlbiB0aG91Z2ggdGhlCisgICAgLy8gaW5qZWN0ZWQgYnVu
ZGxlIGhhcyBhbHJlYWR5IGhhbmRsZWQgdGhlIHBvbGljeSBkZWNpc2lvbi4KKyAgICBpZiAocG9s
aWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZSAmJiAhbmVlZHNCcm93c2luZ0NvbnRl
eHRHcm91cFN3aXRjaCkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xP
RyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogY29udGludWluZyBi
ZWNhdXNlIGluamVjdGVkIGJ1bmRsZSBzYXlzIHNvIik7CiAgICAgICAgIGZ1bmN0aW9uKFBvbGlj
eUFjdGlvbjo6VXNlLCBpZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ3LDkgKzg0
OSwxMCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogICAgIGF1dG8qIHBvbGljeURvY3VtZW50
TG9hZGVyID0gY29yZUZyYW1lID8gY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3Vt
ZW50TG9hZGVyKCkgOiBudWxscHRyOwogICAgIGF1dG8gbmF2aWdhdGlvbklEID0gcG9saWN5RG9j
dW1lbnRMb2FkZXIgPyBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlciY+KCpwb2xpY3lEb2N1
bWVudExvYWRlcikubmF2aWdhdGlvbklEKCkgOiAwOwogCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSA9IHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2U7CiAg
ICAgYXV0byBwcm90ZWN0b3IgPSBtX2ZyYW1lLmNvcHlSZWYoKTsKICAgICB1aW50NjRfdCBsaXN0
ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lcihpZGVudGlmaWVyLCBXVEZNb3Zl
KGZ1bmN0aW9uKSwgV2ViRnJhbWU6OkZvck5hdmlnYXRpb25BY3Rpb246Ok5vKTsKLSAgICBpZiAo
IXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwgZG93bmxvYWRB
dHRyaWJ1dGUsIGxpc3RlbmVySUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRy
YW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpKSB7CisgICAg
aWYgKCF3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93UmVzcG9uc2UsIGRvd25s
b2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkp
IHsKICAgICAgICAgV0VCRlJBTUVMT0FERVJDTElFTlRfUkVMRUFTRV9MT0coTmV0d29yaywgImRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2U6IGlnbm9yaW5nIGJlY2F1c2UgV2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSBmYWlsZWQiKTsKICAgICAgICAgbV9mcmFtZS0+
ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgaWRl
bnRpZmllciwgc3RkOjpudWxsb3B0LCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0g
fSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhYTNhODYwMTc1NzI2
NTQxMzg1MmE0YjllODk1NjRiYjRkMWEzZjNiLi45NjY2ZDY3Zjg2MjA4ZDliNmM2NGY0MTFkYmQ2
M2JmMDE1OTBhNzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTI5LDcgKzEy
OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShj
b25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQ
b2xpY3kpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAgICAgCi0gICAg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQ
b2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNo
ZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGNiZjlmMzZhYTQ2MjBjOWRlNjRlYzhhNmY4MGZlMzNhYjZiNzg0N2QuLmNmYmU1
NGYwMjYzNDIwOWU4YTMxMmFkNWVkMDljNzI2OTAzYWVmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzIzLDcgKzE3MjMsNyBAQCBOT19S
RVRVUk4gdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdFdhaXRpbmdGb3JQcm9jZXNzTGF1bmNoKExv
YWRQYXJhbWV0ZXJzJiYsIFVSTAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9v
bCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFJlZjxTaGFyZWRCdWZmZXI+JiYgc2hhcmVkQnVm
ZmVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9u
c2UsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBz
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3ZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbXBsKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
IHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgY29uc3Qg
VVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBzdGQ6Om9wdGlv
bmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KQogewogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBz
ZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4sICZtX21haW5GcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggZTE3ZTE4OTM1ZmFlMTE2YjQ2NjJlMjY0MDZiYWRmNGY4NzVmMTgy
NC4uMWU2MTRjNzM5ZWE1MzRmOTEzOTYxOTExY2M5NWQ3ZmRhODg1M2IxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjI3LDcgKzIyNyw3IEBAIGVu
dW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKIGVudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBlbnVtIGNsYXNzIEhpZ2hsaWdodFJlcXVlc3RP
cmlnaW5hdGVkSW5BcHAgOiBib29sOwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1
aW50OF90OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwor
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBj
bGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRHcmFudWxhcml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OwpAQCAtMTU3NSw3ICsxNTc1LDcgQEAgcHJpdmF0ZToK
IAogICAgIFN0cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0gICAgdm9pZCBsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRh
Jiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwodWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4m
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiwgY29uc3QgVVJMJiBmYWlsaW5nVVJMLCBjb25zdCBVc2VyRGF0YSYsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA1OTM2MWQ1N2RhODAzM2NlNDUwOTBlOWM2
ZjViZjZhNWExODkxODQ2Li5hMGFhNTU0Zjc0OTgyMDJkMGJiMDZjZjk3NzAxYzI0OTI1NTlkNDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3Jh
bnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNp
ZXMpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06
dWludDhfdCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKICAg
ICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMTUyZmRh
MWY2ZWQ1N2UyOTlhZGUzNGQwN2VlOGRiYjRlMmMxZWVhNy4uMDUxNjI3MDA5YTY2ZTEyNGFhOTYz
NjM3ODRhNmQ3NGNlYjA0M2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQ
YWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9w
ZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCAgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgV2Vi
Q29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQ
b2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBiZmRl
M2VkNzY3OWI5Yjk4MGM4NWYzM2QxODkxZjhjNzg1ZWVkODZkLi4wY2ZiZWVlMDQ0N2QyZTI4NTc3
MjJmZTBhNjY0MTUxOTQwOWIyYWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAt
ODU1LDcgKzg1NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygp
CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3
XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXco
bV93ZWJGcmFtZS5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0
ZDA0MGY1NjQ2ZWI4MjQxYTkyYmM3YzJkYzc4ZjZkZmQ5NmRhZDBhLi5jNWFmYTEzMzdkYjRlMmZi
NjdjZWU0MGYxMDQ1ZjFjNjk2YWMyN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC01MTksNyArNTE5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hT
aG93KCkKICAgICAgICAgdWktPndlYlZpZXdTaG93KHdlYlZpZXcpOwogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlv
bikKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fd2ViRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggNmRhYzBiMDUyMTgzOTE2NjIwODk2NDFmNjVhZTk0MmMyOWI4OTZkOC4uNjE0
NjVjMTFmYzI1NTczMjQ4MjE1ODEyNTkyNTE5YzVhNjExYWZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWFjaExheW91dE1p
bGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgV2ViQ29yZTo6Rm9y
bVN0YXRlKiwgV2ViQ29yZTo6UG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcyZDRiZTJiZDIyYjY4ZjYwM2I3NjIy
Nzc5ODU4N2E0YmU1NGU5OTQuLmVlZWRiNTg5MzhmNjk2ZmYxOThhOGFiZTFkOTgzZmFmOTY3OGE5
Y2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIHRvIHZhbGlkYXRlIHRoYXQgd2UgYXJlIGlu
ZGVlZCBwcm9jZXNzLXN3YXBwaW5nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bUFNPTlNj
aGVtZSBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp0b0RhdGE6d2l0aENPT1BWYWx1ZTpdKToKKyAg
ICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAy
MS0wOC0yMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0N5Z3dpbl0gU3VwcG9ydCBQeXRob24gMyBpbiBydW4td2Via2l0LXRlc3RzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBmOWI4ZGFmNjlmNDQ3NDI3OTVmZDhmOTE2YzZmNmY4
NWI0MGU0ODYxLi4yMjRjOTQyZTg3Yzc0ZTQ2NTQ3MjIwZDhmNGI1ODU0YTRhMTY4NWZmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI1MCwxMiArMjUwLDE0IEBAIEBpbnRl
cmZhY2UgUFNPTlNjaGVtZSA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+IHsKICAgICBj
b25zdCBjaGFyKiBfYnl0ZXM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX3JlZGlyZWN0
czsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPE5TRGF0YT4+IF9kYXRhTWFwcGluZ3M7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gX2Nvb3BWYWx1ZXM7CiAgICAgSGFzaFNldDxp
ZCA8V0tVUkxTY2hlbWVUYXNrPj4gX3J1bm5pbmdUYXNrczsKICAgICBib29sIF9zaG91bGRSZXNw
b25kQXN5bmNocm9ub3VzbHk7CiB9CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29u
c3QgY2hhciopYnl0ZXM7CiAtICh2b2lkKWFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzooTlNTdHJp
bmcgKilzb3VyY2VVUkxTdHJpbmcgdG9VUkxTdHJpbmc6KE5TU3RyaW5nICopZGVzdGluYXRpb25V
UkxTdHJpbmc7CiAtICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVy
bFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGE7CistICh2b2lkKWFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEg
d2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciopY29vcFZhbHVlOwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gUFNPTlNjaGVtZQpAQCAtMjc3LDYgKzI3OSwxMyBAQCAtICh2b2lkKWFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRh
dGEKICAgICBfZGF0YU1hcHBpbmdzLnNldCh1cmxTdHJpbmcsIFtOU0RhdGEgZGF0YVdpdGhCeXRl
c05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6c3RybGVuKGRhdGEpIGZyZWVXaGVuRG9uZTpOT10p
OwogfQogCistICh2b2lkKWFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXVybFN0
cmluZyB0b0RhdGE6KGNvbnN0IGNoYXIqKWRhdGEgd2l0aENPT1BWYWx1ZTooY29uc3QgY2hhciop
Y29vcFZhbHVlCit7CisgICAgW3NlbGYgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6dXJsU3RyaW5n
IHRvRGF0YTpkYXRhXTsKKyAgICBpZiAoY29vcFZhbHVlKQorICAgICAgICBfY29vcFZhbHVlcy5h
ZGQodXJsU3RyaW5nLCBjb29wVmFsdWUpOworfQorCiAtICh2b2lkKXNldFNob3VsZFJlc3BvbmRB
c3luY2hyb25vdXNseTooQk9PTCl2YWx1ZQogewogICAgIF9zaG91bGRSZXNwb25kQXN5bmNocm9u
b3VzbHkgPSB2YWx1ZTsKQEAgLTMxMSw4ICszMjAsMTUgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4p
dGEKICAgICAgICAgWyhpZDxXS1VSTFNjaGVtZVRhc2tQcml2YXRlPil0YXNrIF9kaWRQZXJmb3Jt
UmVkaXJlY3Rpb246cmVkaXJlY3RSZXNwb25zZS5nZXQoKSBuZXdSZXF1ZXN0OnJlcXVlc3QuZ2V0
KCldOwogICAgIH0KIAotICAgIGRvQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShbZmluYWxVUkwg
PSByZXRhaW5QdHIoZmluYWxVUkwpXShpZCA8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7Ci0gICAg
ICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJl
c3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBNSU1FVHlwZTpAInRleHQv
aHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjEgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAg
ICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW3NlbGYsIGZpbmFsVVJMID0gcmV0YWluUHRy
KGZpbmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBOU011dGFi
bGVEaWN0aW9uYXJ5KiBoZWFkZXJEaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGlj
dGlvbmFyeV07CisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVjdDpAInRleHQvaHRt
bCIgZm9yS2V5OkAiQ29udGVudC1UeXBlIl07CisgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNl
dE9iamVjdDpAIjEiIGZvcktleTpAIkNvbnRlbnQtTGVuZ3RoIl07CisgICAgICAgIGF1dG8gY29v
cFZhbHVlID0gX2Nvb3BWYWx1ZXMuZ2V0KFtmaW5hbFVSTCBhYnNvbHV0ZVN0cmluZ10pOworICAg
ICAgICBpZiAoIWNvb3BWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBbaGVhZGVyRGljdGlv
bmFyeSBzZXRPYmplY3Q6KE5TU3RyaW5nICopY29vcFZhbHVlIGZvcktleTpAIkNyb3NzLU9yaWdp
bi1PcGVuZXItUG9saWN5Il07CisKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tO
U0hUVFBVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgc3RhdHVz
Q29kZToyMDAgSFRUUFZlcnNpb246QCJIVFRQLzEuMSIgaGVhZGVyRmllbGRzOmhlYWRlckRpY3Rp
b25hcnldKTsKICAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgp
XTsKICAgICB9LCAwLjEpOwogCkBAIC00MDksOCArNDI1LDYgQEAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZlbnQpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNP
VVJDRSI7CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dP
cGVuQ3Jvc3NTaXRlTm9PcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+
CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC00ODgsNiArNTAyLDcgQEAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogPC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAorI2lm
IFBMQVRGT1JNKE1BQykKIHN0YXRpYyBjb25zdCBjaGFyKiBsaW5rVG9BcHBsZVRlc3RCeXRlcyA9
IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdl
c2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CkBAIC00OTcsOCArNTEyLDcgQEAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rpb24oZXZlbnQpIHsKIDwvc2NyaXB0PgogPGEg
aWQ9InRlc3RMaW5rIiBocmVmPSJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiPk5hdmln
YXRlPC9hPgogKVBTT05SRVNPVVJDRSI7Ci0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5k
aWYKIAogc3RhdGljIFJldGFpblB0cjxfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IHBzb25Q
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKQogewpAQCAtMTE5Nyw4ICsxMjExLDYgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgQmFja05hdmlnYXRpb25BZnRlclNlc3Npb25SZXN0b3JlKQogICAgIEVYUEVD
VF9ORShwaWQzLCBwaWQ0KTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogVEVTVChQcm9jZXNz
U3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogewogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtMTIw
Niw2ICsxMjE4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Blbk5vT3Bl
bmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkg
PSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGlu
aXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NTaXRlTm9PcGVuZXJU
ZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI0NSw2ICsxMjU4LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09w
ZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzT3JpZ2luQnV0U2Ft
ZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0x
Mjg1LDYgKzEyOTksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0
aE9wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9j
XSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZVdpdGhP
cGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTMyNCw2ICsx
MzM5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsK
ICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhC
eXRlczp3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc10pOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2No
ZW1lOkAiUFNPTiJdOwogCkBAIC0xMzYyLDYgKzEzNzgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBD
cm9zc1NpdGVCbGFua1RhcmdldFdpdGhPcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRh
cmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEV4cGxpY2l0T3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVS
TFNjaGVtZTpAIlBTT04iXTsKQEAgLTE0MDEsNiArMTQxOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENyb3NzU2l0ZUJsYW5rVGFyZ2V0SW1wbGljaXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmll
d0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNz
UG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxl
ciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0
b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVXaXRoSW1wbGljaXROb09wZW5lclRlc3RCeXRlc107
CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDQwLDYgKzE0NTgsNyBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
IHRvRGF0YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVS
TFNjaGVtZTpAIlBTT04iXTsKQEAgLTE0NzksNiArMTQ5OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFNhbWVTaXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwog
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQo
KV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0
TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zy
b21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFy
Z2V0QmxhbmtTYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBT
T04iXTsKQEAgLTE1MTEsOCArMTUzMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlQmxh
bmtUYXJnZXROb09wZW5lcikKICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CiB9CiAKLSNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0RnJv
bU5ld1dlYlZpZXcpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29u
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CkBAIC01MDk0LDggKzUxMTIsNiBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBMb2FkaW5nU3RhdGVBZnRlclBvbGljeURlY2lzaW9uKQogICAgIFt3ZWJWaWV3
IHJlbW92ZU9ic2VydmVyOmxvYWRPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAiVVJMIiBjb250
ZXh0OndlYlZpZXcuZ2V0KCldOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0aWMgY29u
c3QgY2hhciogc2F2ZU9wZW5lclRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4K
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKQEAgLTUxMDcsNiArNTEyMyw4IEBAIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRl
ckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lcikKIHsKICAgICBhdXRvIHdlYlZp
ZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CisKICAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1h
cHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRv
RGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6
c2F2ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MTgwLDYgKzUxOTgsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZXIp
CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3
YXBwaW5nT2ZPcGVuZWUpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFs
bG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lU2l0ZVdp
dGhPcGVuZXJUZXN0Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4y
Lmh0bWwiLgogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVzdEJ5dGVzXTsKQEAg
LTUyMzUsOCArNTI1NCw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNv
bnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lZSkKICAgICBkb25lID0gZmFsc2U7CiB9CiAK
LSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0KIGVudW0gY2xhc3MgRXhwZWN0U3dhcCB7IE5vLCBZ
ZXMgfTsKIHN0YXRpYyB2b2lkIHJ1blByb2Nlc3NTd2FwRHVlVG9SZWxhdGVkV2ViVmlld1Rlc3Qo
TlNVUkwqIHJlbGF0ZWRWaWV3VVJMLCBOU1VSTCogdGFyZ2V0VVJMLCBFeHBlY3RTd2FwIGV4cGVj
dFN3YXApCiB7CkBAIC03MTUxLDMgKzcxNjgsMjMzIEBAIFRFU1QoV2ViUHJvY2Vzc0NhY2hlLCBD
bGVhcldoZW5FbnRlcmluZ0NhY2hlKQogICAgIC8vIENsZWFyIHRoZSBXZWJQcm9jZXNzIGNhY2hl
IHdoaWxlIHRoZSBwcm9jZXNzZXMgYXJlIGJlaW5nIGNoZWNrZWQgZm9yIHJlc3BvbnNpdmVuZXNz
LgogICAgIFtwcm9jZXNzUG9vbCBfY2xlYXJXZWJQcm9jZXNzQ2FjaGVdOwogfQorCitzdGF0aWMg
Y29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNPTlJF
U09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3ID0g
d2luZG93Lm9wZW4oInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiLCAiZm9vIik7Cit9
Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitzdGF0aWMgY29uc3QgY2hhciogd2luZG93
T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2NyaXB0Pgor
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3BlbigicG9wdXAu
aHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0PgorKVBTT05SRVNPVVJDRSI7CisKK2VudW0gY2xh
c3MgSXNTYW1lT3JpZ2luIDogYm9vbCB7IE5vLCBZZXMgfTsKK2VudW0gY2xhc3MgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3QgOiBib29sIHsgTm8sIFllcyB9Oworc3RhdGljIHZvaWQgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChjb25zdCBjaGFyKiBzb3VyY2VDT09QLCBjb25zdCBjaGFyKiBkZXN0aW5hdGlv
bkNPT1AsIElzU2FtZU9yaWdpbiBpc1NhbWVPcmlnaW4sIERvU2VydmVyU2lkZVJlZGlyZWN0IGRv
U2VydmVyU2lkZVJlZGlyZWN0LCBFeHBlY3RTd2FwIGV4cGVjdFN3YXApCit7CisgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7
CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVu
Y2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBp
c0VxdWFsVG9TdHJpbmc6QCJDcm9zc09yaWdpbk9wZW5lclBvbGljeUVuYWJsZWQiXSkgeworICAg
ICAgICAgICAgW1t3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CisgICAgaWYgKGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46
OlllcykgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZU9yaWdpbkNP
T1BUZXN0Qnl0ZXMgd2l0aENPT1BWYWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgaWYgKGRvU2Vy
dmVyU2lkZVJlZGlyZWN0ID09IERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAg
ICAgIFtoYW5kbGVyIGFkZFJlZGlyZWN0RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1
cC1hZnRlci1yZWRpcmVjdC5odG1sIl07CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9wb3B1cC1hZnRlci1yZWRpcmVj
dC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0
aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0gZWxzZSB7CisgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgd2l0aENPT1BW
YWx1ZTpzb3VyY2VDT09QXTsKKyAgICAgICAgaWYgKGRvU2VydmVyU2lkZVJlZGlyZWN0ID09IERv
U2VydmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZFJlZGly
ZWN0RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwiIHRvVVJM
U3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJd
OworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIiB0b0RhdGE6InBvcHVwIiB3
aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09PUF07CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRlc3RpbmF0aW9uQ09P
UF07CisgICAgfQorICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisgICAgX19ibG9jayB1bnNpZ25lZCBudW1iZXJPZlBy
b3Zpc2lvbmFsTG9hZHMgPSAwOworICAgIG5hdmlnYXRpb25EZWxlZ2F0ZS0+ZGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb25IYW5kbGVyID0gXnsKKyAgICAgICAgKytudW1iZXJPZlByb3Zpc2lv
bmFsTG9hZHM7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpu
YXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tQU09OVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhOYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpXSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVn
YXRlLmdldCgpXTsKKworICAgIHNlcnZlclJlZGlyZWN0ZWQgPSBmYWxzZTsKKyAgICBudW1iZXJP
ZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9
IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJWaWV3
KTsKKyAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgaWYgKGRvU2VydmVyU2lkZVJlZGlyZWN0ID09IERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpZZXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDMsIG51bWJlck9mRGVj
aWRlUG9saWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfVFJVRShzZXJ2ZXJSZWRpcmVjdGVkKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lD
YWxscyk7CisgICAgICAgIEVYUEVDVF9GQUxTRShzZXJ2ZXJSZWRpcmVjdGVkKTsKKyAgICB9Cisg
ICAgRVhQRUNUX0VRKDJVLCBudW1iZXJPZlByb3Zpc2lvbmFsTG9hZHMpOyAvLyBPbmUgaW4gZWFj
aCB2aWV3LgorCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDEpOworICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CisK
KyAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAgICAgIEVYUEVDVF9O
RShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsK
KworICAgIGJvb2wgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAidy5jbG9zZWQgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0
aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5T
U3RyaW5nICppc0Nsb3NlZCA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVj
dFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
dHJ1ZSIsIGlzQ2xvc2VkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAiZmFsc2UiLCBpc0Nsb3NlZCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2luZG93
TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhw
ZWN0U3dhcDo6Tm8gJiYgaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKQorICAgICAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05hbWUpOworICAgICAgICBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIC8vIE9wZW5lZSBzaG91
bGQgbm90IGhhdmUgYW4gb3BlbmVyIG9yIGEgbmFtZS4KKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93Lm9wZW5lciA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmhhc09wZW5lciA9
IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dh
cDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBoYXNPcGVuZXIp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ0cnVlIiwgaGFz
T3BlbmVyKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7Cisg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5uYW1lIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3aW5kb3dOYW1l
ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RT
d2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZm9vIiwgd2luZG93
TmFtZSk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0IiBjb21wbGV0aW9uSGFu
ZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5n
ICppbm5lclRleHQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAInBvcHVwIiwgaW5uZXJUZXh0KTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVu
bmluZ1NjcmlwdCk7CisKKyAgICBjcmVhdGVkV2ViVmlldyA9IG51bGxwdHI7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAg
ICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdp
bjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAic2FtZS1v
cmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBl
Y3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdp
bkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1l
LW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRp
bmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3
YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cCkKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1
cCIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwMikKK3sKKyAgICBydW5DT09QUHJvY2Vz
c1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lk
ZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW5XaXRo
UmVkaXJlY3QpCit7CisgICAgLy8gV2UgZXhwZWN0IGEgc3dhcCBiZWNhdXNlIHRoZSByZWRpcmVj
dCBkb2Vzbid0IGhhdmUgQ09PUD1zYW1lLW9yaWdpbi4KKyAgICBydW5DT09QUHJvY2Vzc1N3YXBU
ZXN0KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbldpdGhvdXRDT09QV2l0aFJlZGlyZWN0KQorewor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgbnVsbHB0ciwgSXNTYW1lT3JpZ2lu
OjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpZZXMsIEV4cGVjdFN3YXA6Ok5vKTsKK30KKwor
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2FtZU9yaWdpbikK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsICJzYW1lLW9yaWdpbiIsIElz
U2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVz
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgidW5zYWZlLW5vbmUiLCAi
c2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9z
c09yaWdpbkZyb21DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6
Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0
OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cCkKK3sKKyAgICBydW5DT09Q
UHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cCIsIG51bGxwdHIsIElzU2Ft
ZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOwor
fQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW5BbGxvd1BvcHVwMikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9y
aWdpbi1hbGxvdy1wb3B1cCIsICJ1bnNhZmUtbm9uZSIsIElzU2FtZU9yaWdpbjo6Tm8sIERvU2Vy
dmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApp
bmRleCBiMDI2YjUwNzRhNDY2ZDlmZDMxMTI5MWZlNjFjMTFkZWVmYzE1M2UxLi40ODAwN2I1ODgw
ZDg4ZmE4ZjlmMDNmNzk1NzQ4MzYwMjU0ZmM0NTYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVUZXN0U3VwcG9ydC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGUuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGcmFtZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZVByaXZhdGUuaD4KQEAgLTEwNiwxMiArMTA3LDIxIEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemUoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS1R5cGVSZWYg
aW5pdGlhbGl6YXRpb25Vc2VyCiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZENyZWF0ZVBhZ2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiB7Ci0gICAgYm9vbCBpc01haW5QYWdlID0gbV9wYWdlcy5p
c0VtcHR5KCk7CiAgICAgbV9wYWdlcy5hcHBlbmQobWFrZVVuaXF1ZTxJbmplY3RlZEJ1bmRsZVBh
Z2U+KHBhZ2UpKTsKIAogICAgIHNldFVwSW5qZWN0ZWRCdW5kbGVDbGllbnRzKHBhZ2UpOworfQor
Cit2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSkKK3sKKyAgICAvLyBXZSBjYWxsIGJlZ2luVGVzdGluZygpIGFmdGVyIGNvbW1p
dHRpbmcgdGhlIG1haW4gZnJhbWUgbG9hZCBiZWNhdXNlIGF0IHRoaXMgcG9pbnQsIHdlIGtub3cg
d2UncmUgaW4gdGhlIGZpbmFsCisgICAgLy8gcHJvY2VzcyBpbiBjYXNlIG9mIHByb2Nlc3Mgc3dh
cHBpbmcuCisgICAgaWYgKCFXS0J1bmRsZUZyYW1lSXNNYWluRnJhbWUoZnJhbWUpIHx8IGlzVGVz
dFJ1bm5pbmcoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFpc01haW5QYWdlKQorICAg
IGF1dG8gdXJsUmVmID0gYWRvcHRXSyhXS0J1bmRsZUZyYW1lQ29weVVSTChmcmFtZSkpOworICAg
IFN0cmluZyB1cmwgPSB0b1dURlN0cmluZyhhZG9wdFdLKFdLVVJMQ29weVN0cmluZyh1cmxSZWYu
Z2V0KCkpKSk7CisgICAgaWYgKHVybC5pc0VtcHR5KCkgfHwgdXJsID09ICJhYm91dDpibGFuayIp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFdLVHlwZVJlZiByZXN1bHQgPSBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oCmluZGV4IDczZjVmZjFhNjI4NmQ4NTViNTliYzEyYTc1MzliZDljYjdhMTY5NmQuLjk4
NWViNGYzMjAxY2FiMDQxMjRmNjA5ZGFjYmRjYzRmYjY2NWU0YmQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAg
LTE0OCw2ICsxNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbmNyZWFzZVVzZXJTY3JpcHRJbmpl
Y3RlZENvdW50KCkgeyArK21fdXNlclNjcmlwdEluamVjdGVkQ291bnQ7IH0KICAgICBzaXplX3Qg
dXNlclNjcmlwdEluamVjdGVkQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJTY3JpcHRJbmpl
Y3RlZENvdW50OyB9CiAKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS0J1bmRsZUZy
YW1lUmVmKTsKKwogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZSgpID0gZGVmYXVsdDsKICAg
ICB+SW5qZWN0ZWRCdW5kbGUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAxZGVjZjMw
NzNhYWYzMTQ1YjFkOWI5NzI1YjVjZDViZTNhMjc3MmU0Li5hYjUxYWU2MzlkOGE0YmI3MWFhOGUx
NDRlY2U4OTE4ZmQ2ZDhlNGJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC02MzQsNiAr
NjM0LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRs
ZS5pc1Rlc3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFdoZW4gcHJvY2Vz
cyBzd2FwcGluZyBvbiByZXNvdXJjZSByZXNwb25zZSwgdGhlIHByZXZpb3VzIHByb2Nlc3MncyBs
b2FkIGdldHMgaW50ZXJydXB0ZWQgYnkgcG9saWN5IGRlY2lzaW9uCisgICAgLy8gYnV0IHdlIGRv
bid0IHdhbnQgdG8gaW50ZXJydXB0IHRoZSB0ZXN0LgorICAgIGlmIChXS0Vycm9yR2V0RXJyb3JD
b2RlKGVycm9yKSA9PSBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5l
cigpLT5zaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKICAgICAgICAgZHVtcExvYWRF
dmVudChmcmFtZSwgImRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IiKTsKICAgICAgICAg
YXV0byBjb2RlID0gV0tFcnJvckdldEVycm9yQ29kZShlcnJvcik7CkBAIC02NDksNiArNjU0LDEw
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCiB7CiAgICAgYXV0byYg
aW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisKKyAgICBpZiAo
aW5qZWN0ZWRCdW5kbGUucGFnZSgpID09IHRoaXMpCisgICAgICAgIGluamVjdGVkQnVuZGxlLmRp
ZENvbW1pdExvYWRGb3JGcmFtZShmcmFtZSk7CisKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLmlz
VGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGZhOWViNWZjYTI5NGYz
OGIzOWM3NDA3YTczMTUyOGI2N2NiZDI1Ny4uZWQ2ZjVkYTVhMDgzZGQ1M2RlZDMxMTA0ZGJhOTQx
N2E2OTBhNWUzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mt
c3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBTa2lwIENPT1AgdGVzdHMgb24gV0sxIGFzIHdl
IG9ubHkgaGF2ZSBhIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdLMi4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wOC0yMyAgRXJpYyBIdXRjaGlzb24gIDxlaHV0
Y2hpc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMgZm9y
IGZhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGU4MzM0YzhlNWY2ZjdkNzFkYTk1ZDZk
ODlkYmMzMTRiYWRmMjRkZTMuLjhjYzRhNzlkZjdlYWI2MDZmMWMyYzhjNjE1YTZlOWMzOThjMTAx
YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
SW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Q
b2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBNaW5vciB0ZXN0
IHJlYmFzZWxpbmUgZHVlIHRvIGxvZ2dpbmcgY2hhbmdlcy4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1
cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMjMgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0IHBlcm1pc3Npb25zIHRlc3RzIGZyb20gV1BU
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDc2ZmJkNmUxZjdiYzc4ODM5ZjNhYzQ3ZTJiOTVmZjQ3NTQxNDY2NzYu
LjAzMjNhNTFkNmM1MDM3ODA3YWIyOTJiYzZiZWI0MzllNzY4YjNlYzIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0yLDggKzIsNiBAQCBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8v
MTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYQogQ09OU09MRSBNRVNTQUdFOiBG
ZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsu
aHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBv
bGljeSByZXNwb25zZSBoZWFkZXIuCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3Qg
bG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nl
c3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRl
cyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhl
YWRlci4KLUNPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3
LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNr
cy4KIAogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IHdpbmRvdy5vcGVuKCkKIFBBU1Mg
Q09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiA8YT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1MmEyZDM0NDc5NjI0ZjMwZWQyNzNjMTgxMjIx
MGNiZTM0MjhhOGYxLi40YzVlZjQ2OGMzYTg3OThlM2U0M2ZhYzVhMjhhMTUzOWY4ZmI2YTk1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
NTMsOCArMzUzLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250ZW50LXNl
Y3VyaXR5LXBvbGljeS93b3JrZXItc3JjL3NlcnZpY2Utd29ya2UKIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNl
LXBvbGljeSBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9y
YW5nZS9zdy5odHRwcy53aW5kb3cuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnkt
c3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvc2VydmVyL2NvbnRleHQuYW55LnNl
cnZpY2V3b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtMzcxLDEwICszNjksMTEgQEAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1zZXJ2aWNlLXdv
cmtlci1pbnRlcmNlcHQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMv
cGFpbnQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBbIFNr
aXAgXQogaHR0cC93cHQvd2VicnRjL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Utd29ya2Vy
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4t
RW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1i
bG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2lu
LWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5
IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQor
aHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCiAKICMg
UXVvdGEgY2hlY2sgbWlzc2luZyBpbiBXSzEKIGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2Ut
bGltaXQuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBmMWE1Njc4ZmM3YmZiMmJiOTIxYjIxZWIxOTgxYzQyMTBhMjhhYjVi
Li45ZTM0OWFmZWJjMmFlZmFlZDgzZjVlMGM4NmNkOGM5NWZjYTY2NThjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzcxNSw4ICszNzE1LDYgQEAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcG9saWNpZXMvcmVmZXJyZXIt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3IKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3BvbGljaWVzL3JlZmVycmVyLXVuc2FmZS11cmwtc2VydmljZS13b3JrZXIuaHR0cHMu
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9kZXN0aW5hdGlvbiBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kv
cG9wdXAtY29vcC1ieS1zdy1mcm9tLWNvb3AuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3Bv
cHVwLWNvb3AtYnktc3cuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2ZXItdGltaW5nL3NlcnZpY2Vfd29ya2VyX2lkbC5odG1sIFsgU2tpcCBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFn
ZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLmh0
bWwgWyBTa2lwIF0KQEAgLTM3MjUsMTAgKzM3MjMsMTEgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2Vw
dGkKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmts
ZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvcGFpbnQtd29ya2xldC1zZXJ2aWNl
LXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIE5vIENyb3NzLU9y
aWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgorIyBObyBDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSAvIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMuaHRtbCBbIFNraXAgXQotaHR0cC93
cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcXVpcmUtY29ycC5odHRwcy5o
dG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1w
b2xpY3kgWyBTa2lwIF0KIAogIyBObyBoZWFkZXIgZmlsdGVyaW5nIGZvciBXSzEKIGh0dHAvd3B0
L2xvYWRpbmcvcmVkaXJlY3QtaGVhZGVycy5odG1sIFsgU2tpcCBdCg==
</data>
<flag name="commit-queue"
          id="459244"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436244</attachid>
            <date>2021-08-23 15:56:34 -0700</date>
            <delta_ts>2021-08-23 16:14:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210823155633.patch</filename>
            <type>text/plain</type>
            <size>117425</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I3NmFhNWQzYzc1Njg5
MjU4M2E2YzI5ZTkzMzI5YzFlODA4ZWQ4Yi4uNzc3ZjQxNDdhODVmMjg5ZGQ3ZjY0NmRiODBlMzRm
ZjU5ZWIzMWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjMgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFNpbXBsaWZpZWQgdGV4dCBtZWFzdXJpbmcgb25seSB3b3JrcyB3aXRoIHRoZSBw
cmltYXJ5IGZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGU3MzQwYzgyODFlNDhlODBiODY3ZmQ4ZjU4MWVhYzU1
OWY3ZDBiNC4uZjE3YmM3ZmFhZmVmYzBjZDRiOThhMTI3ZDlhODVkMTVkYmMxODZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NiBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2Vk
IG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgV2UgcmVjZW50bHkgYWRkZWQgc3VwcG9ydCBmb3IgdGhlIENyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5IChDT09QKSBIVFRQIGhlYWRlci4gSG93ZXZlciwKKyAgICAgICAg
d2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcgY29udGV4dCBncm91cCBvbiBIVFRQIHJlc3BvbnNlLCB3
ZSB3b3VsZCBrZWVwIHVzaW5nIHRoZSBzYW1lIAorICAgICAgICBXZWJQcm9jZXNzLiBUaGlzIHBh
dGNoIG1ha2VzIGl0IHNvIHRoYXQgd2Ugbm93IHN3YXAgV2ViUHJvY2VzcyB3aGVuIHN3aXRjaGlu
ZyBicm93c2luZworICAgICAgICBjb250ZXh0IGdyb3VwIG9uIG5ldHdvcmsgcmVzcG9uc2UgYXMg
dGhpcyB3aWxsIGJlIHJlcXVpcmVkIHRvIHNlY3VyZWx5IHJlLWVuYWJsZSBXZWIgQVBJcworICAg
ICAgICBzdWNoIGFzIFNoYXJlZEFycmF5QnVmZmVyLgorCisgICAgICAgIEZvciBwcm9jZXNzLXN3
YXBwaW5nLCB3ZSByZXVzZSBtb3N0IG9mIHRoZSBzYW1lIGxvZ2ljIGFzIHByb2Nlc3Mtc3dhcCBv
biBuYXZpZ2F0aW9uIChQU09OKS4KKyAgICAgICAgQSBmZXcgZGlmZmVyZW5jZXMgYXJlIHRoYXQ6
CisgICAgICAgIC0gV2Ugc3dhcCBvbiByZXNwb25zZSBwb2xpY3kgZGVjaXNpb24gaW5zdGVhZCBv
ZiBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbgorICAgICAgICAtIFdlIHVzZWQgdG8gaGF2ZSBh
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBZZXMvTm8gZW51bS4gSXQgaXMgbm93IHRyaS1z
dGF0ZTogTm8sCisgICAgICAgICAgWWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFll
c0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbi4gV2UgbmVlZCB0aGlzIG5ldyBzdGF0ZQorICAg
ICAgICAgIHRvIGF2b2lkIGR1cGxpY2F0ZSByZXNwb25zZSBwb2xpY3kgZGVsZWdhdGUgY2FsbHMg
YWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBhbmQgdG8gYXZvaWQKKyAgICAgICAgICBzZW5kaW5nIGR1
cGxpY2F0ZSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCBJUENzIGFmdGVyIHByb2Nlcy1zd2FwcGlu
Zy4KKyAgICAgICAgLSBBZnRlciBwcm9jZXNzLXN3YXBwaW5nIG9uIG5hdmlnYXRpb24gcmVzcG9u
c2UsIHdlIGNsb3NlIHRoZSBwcmV2aW91cyBwYWdlIGluc3RlYWQgb2YgdHJ5aW5nCisgICAgICAg
ICAgdG8gcHV0IGl0IGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4gUGVyIHRoZSBzcGVjaWZp
Y2F0aW9uLCBpbiBhIGNhc2Ugb2YgYSBicm93c2luZyBjb250ZXh0CisgICAgICAgICAgZ3JvdXAg
c3dpdGNoLCB0aGUgcHJldmlvdXMgYnJvd3NpbmcgY29udGV4dCBuZWVkcyB0byBiZSBkaXNjYXJk
ZWQgKHdoaWNoIGlzIFdlYi1vYnNlcnZhYmxlKS4KKworICAgICAgICBPbmUgaW1wb3J0YW50IHRo
aW5nIHRvIG5vdGUgaXMgdGhhdCB3ZSBjdXJyZW50bHkgc2VuZCB0aGUgSFRUUCByZXF1ZXN0IHRv
IHRoZSBzZXJ2ZXIgQUdBSU4gYWZ0ZXIKKyAgICAgICAgYSBwcm9jZXNzLXN3YXAuIFRoaXMgaXMg
YmVjYXVzZSB0aGUgb24tZ29pbmcgbG9hZCBjdXJyZW50bHkgZ2V0cyBjYW5jZWxsZWQgdXBvbiBy
ZWNlaXZpbmcgdGhlCisgICAgICAgIG5ldHdvcmsgcmVzcG9uc2UgYW5kIGRlY2lkaW5nIHRvIHBy
b2Nlc3Mtc3dhcCBhbmQgYSBuZXcgZnJlc2ggbG9hZCBnZXRzIGlzc3VlZCBieSB0aGUgbmV3Cisg
ICAgICAgIFdlYlByb2Nlc3MgYWZ0ZXIgc3dhcHBpbmcuIEkgd2lsbCBhZGRyZXNzIHRoaXMgaW4g
YSBmb2xsb3ctdXAgdG8gZGVjcmVhc2UgcGF0Y2ggc2l6ZSBhbmQKKyAgICAgICAgY29tcGxleGl0
eS4gV2Ugd2lsbCBuZWVkIHRvIHRyYW5zaXRpb24gdGhlIGxvYWQgaW4gdGhlIG5ldHdvcmsgcHJv
Y2VzcyBmcm9tIHRoZSBvbGQgV2ViUHJvY2VzcworICAgICAgICB0byB0aGUgbmV3IG9uZSBpbiBj
YXNlIG9mIHByb2Nlc3Mtc3dhcC4KKworICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpzaG91bGRDbG9zZVByZXZpb3VzUGFn
ZUFmdGVyQ29tbWl0IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkU2lt
dWxhdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpvcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluIGNv
bnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWREYXRhSW1w
bCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wOC0yMyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjcxMTQ2KTogZWRpdGluZy9zZWxlY3Rpb24vaW9zL3Njcm9sbGluZy10by1mb2N1c2VkLWVs
ZW1lbnQtaW5zaWRlLWlmcmFtZS5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCAwMWUxYjhlNTM4ZjhmZTI3M2I3NzU0NWQ4MDFiMTEzMzZkNTgxNzkwLi5kMzEy
MjgxZTY4OGQzOTM2MTM4MjQyZTZiZDdiNzQwOThkZTQzNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGlu
ZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKToKKwogMjAyMS0wOC0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvbGQgdW51c2VkIGNvZGUgYW5kIG91dCBvZiBkYXRl
IGNvbW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDdkZTkxMDdkYTlmODQ2
OTBkMWE1OTc4YmMxYTM0NWMwZjZjNzhjN2YuLjQ1OGZhMTYwZTkxODdkOGExNGM0YTJmZmFiNTlh
YWRhYWQzNGUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMS0wOC0yMSAg
UGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDcmFzaCB1bmRl
ciBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2Y2Y5ZTAzMjgw
NTAzYzdiZTAuLjRkMzJhZTRhOWQ1OWY5ZWNlMWRhZTY1OTA2NjQ3OTg0OTJiNTM3NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1ICs3ODMsMTIg
QEAgYm9vbCBEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNzLWEtbmF2aWdh
dGUtZmV0Y2ggKFN0ZXAgMTIuNS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdzIGlzIG5vdCBl
bXB0eSBhbmQgcmVzcG9uc2VDT09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9uZSIsIHRoZW4g
c2V0IHJlc3BvbnNlIHRvIGFuIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5kIGJyZWFrLgot
ICAgIGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1
ZTo6VW5zYWZlTm9uZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNhbmRib3hGbGFn
cygpICE9IFNhbmRib3hOb25lKSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAhPSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9hZGVyKCktPmVm
ZmVjdGl2ZVNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAgIGNhbmNlbE1h
aW5SZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRDb29wRW5mb3Jj
ZW1lbnRSZXN1bHQgPSBlbmZvcmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBvbGljeShyZXNw
b25zZS51cmwoKSwgcmVzcG9uc2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAgaWYgKG1fY3Vy
cmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0c0dyb3VwKCk7
Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIENvbXBsZXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5P
cGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBk
aXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFy
Oi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0UoQ0YpCkBAIC0x
MDQyLDExICsxMDM2LDE5IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgfQogI2VuZGlm
CiAKKyAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9u
c2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZShtX2lzQ29udGlu
dWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAgICAgICBjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNvdXJjZUxv
YWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVzb3VyY2VM
b2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBv
bGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRl
bnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5
KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxv
YWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2Us
IHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVy
KSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5y
ZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlm
aWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CkBAIC0y
MDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQog
ICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwiIDogZnJh
bWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUobV9yZXF1
ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBlLCAwLCAi
VVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLmNvbW1p
dHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0
ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAgICAgICBk
b0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwogCisgICAg
ICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1c2UgYSBi
cm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlzIHN5bmNo
cm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBwb2xpY3kg
ZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRleHQgZ3Jv
dXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAgICAgaWYg
KG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5nQ29udGV4
dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJN
YWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxwdHI7Cisg
ICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFsc2U7CiAK
ICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1ZDc2NDg3
NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZiM2UwMmNl
YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1LDYgKzQy
NSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBv
bGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBpc0NvbnRp
bnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nv
bnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBzZXRJc0Nv
bnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51aW5nTG9h
ZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3Bv
bnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNr
OyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01NjEsNiAr
NTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTG9hZGlu
Z011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1FOiBEb2N1
bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93YXNPbmxv
YWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3VsZCBiZSBt
ZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhkY2E3NWI5
NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2NWNhMzQx
YWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2ws
IEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZmZTViMDM2
ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFn
ZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAg
dm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2ZDAzZGYy
NDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7
IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wgdmFsdWUp
IHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
KSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25z
dCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0
YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0gZGF0YTsg
fQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50UmVkaXJl
Y3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsg
ZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAg
TG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tC
YWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVmZXJyZXJQ
b2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4zOTA4ZjhiMDFj
YWEzNmNmYTAxMTU0NjViYTZkYjM4ZDZlZWRmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZl
cnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hl
Y2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24m
JiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRh
dGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJl
cXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRy
aWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVl
c3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1
dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikp
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0
IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1l
T3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8sIHN0ZDo6
b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpCkBAIC0xNDcwLDEwICsxNDcwLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVM
b2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBt
X2NsaWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
cmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKICAgICBsb2FkZXItPnNldEFsbG93c1dlYkFyY2hp
dmVGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKSk7
CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZShyZXF1ZXN0LmlzUmVx
dWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKKyAgICBsb2FkZXItPnNldElzQ29udGludWlu
Z0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2socmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQoKSA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9u
c2VQb2xpY3lEZWNpc2lvbik7CiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQo
bG9hZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvTmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsKIAotICAgIGlm
IChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpKSB7CisgICAgaWYgKHJlcXVl
c3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpObykgewogICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9y
SGlzdG9yeShyZXF1ZXN0LmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKICAgICAg
ICAgaWYgKHJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IExvY2tCYWNrRm9yd2FyZExp
c3Q6OlllcykgewogICAgICAgICAgICAgbG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUp
OwpAQCAtMTQ4MSw3ICsxNDgyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRS
ZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFNldEZvclNjb3BlPExv
YWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRp
bnVpbmdTdGF0ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSA/IExvYWRD
b250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3Rh
dGU6Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+
IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgcmVxdWVz
dC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhSZXF1ZXN0IDog
TG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAgICAgbG9hZChsb2FkZXIuZ2V0
KCkpOwogfQogCkBAIC0zNzY4LDcgKzM3NjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlm
ZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQog
CiAgICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpV
bmtub3duOwogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWlu
Z0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMgPyBMb2FkQ29u
dGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdT
dGF0ZTo6Tm90Q29udGludWluZyk7CisgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0
ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoSGlzdG9yeUl0ZW0gOiBMb2Fk
Q29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKIAogICAgIGlmIChDYWNoZWRQYWdlKiBj
YWNoZWRQYWdlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJh
bWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+
ZG9jdW1lbnRMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNmYz
YmRiZWZjYTM5ZmJmYzIzZjlkMTRjOWIyNzExMjI2ZGUyNGEwYi4uZTU2YzA4ZjcwMzZhNWRmYjcz
M2MyZTVmNWNlZWNkODg0MjJhZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
QEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBlbnVtIGNsYXNzIENhY2hl
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwog
ZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90OwotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBVc2VkTGVnYWN5VExT
IDogYm9vbDsKIGVudW0gY2xhc3MgSXNNYWluUmVzb3VyY2UgOiBib29sIHsgTm8sIFllcyB9Owog
ZW51bSBjbGFzcyBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSA6IGJvb2wgeyBObywgWWVz
IH07CkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKGJvb2wpOwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIAogICAgIHZvaWQg
ZGlkRXhwbGljaXRPcGVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggM2ViNWNlZTY0MjZjNDRkYzE3NDIyMjE1ZmFhYjE1NjkzMWRiMmQ5ZC4uMzli
YjQwNTQwOWM0MTc0Nzg1YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rp
b24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFNob3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9s
aWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNo
ZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmgKaW5kZXggNmQ1ZGU4NGYyMTc5ODg2M2JhOGVlZGU4YjY0NmZlOTQ4
YTQ1ODgyYi4uMTAzN2RmOThlYzQxNTU0YmZiMWRiNjJiODk2ODJkODM3ZmE2NTYzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAg
Y2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwor
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogCiBzdHJ1
Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCmluZGV4IDc2ZTA5MzUwNWJjYmJlNjZkMjI0
NTJkMmY1Yjc5NWIzZDVkODUzYTQuLmFiMTM1M2JjYzA4MmU0MWJhNTg5YzljMjljMjEwODUzYTM5
OTUyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2wgeyBObywgWWVz
IH07CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3QgeyBO
bywgWWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFllc0FmdGVyUmVzcG9uc2VQb2xp
Y3lEZWNpc2lvbiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTM5LDcgKzM5LDgg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsCiAgICAgICAgIFdlYkNvcmU6OlNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sCi0gICAgICAgIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzCisgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sCisgICAgICAg
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBv
bGljeURlY2lzaW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDg3YzliMmI1ZWY0
OTQ2YzljYmU5ODlmM2U3NzYxZjA4ZTYxZDgwZS4uOTI1NWJmMzEzYzY3ZDcxNDgxNWNmNzgxNTI2
NmZmZDgwNWIyMmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCB1c2luZyBT
aGFyZWRTdHJpbmdIYXNoID0gdWludDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwog
ZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9v
bDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAog
ZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBV
bnJlc3BvbnNpdmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
MDYyMDk2NDY4ZmU4N2I2OGMxOWVmMzgwNzdhMjVhOTIxZDlkNGVmZi4uZTVjNTdiMDQwNDljOGIy
MGI2YmQ2MTFjZmM4ZjZiMDFmNzhjMDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1l
dGVycy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CiAKIE9C
SkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwpAQCAtNjYsNyArNjcsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFt
ZXRlcnMgewogICAgIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBv
bGljaWVzOwogCiAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6Tm8gfTsKICAgICBVc2VyRGF0YSB1c2VyRGF0YTsKICAgICBXZWJDb3Jl
OjpMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9Owog
ICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdl
YkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYzY1NGNiOGMxMjIxYWY4MTFm
NmIwYTczYjNlMWRmOTQzNWIyYjc2ZC4uNDFjZDM1ZGJmYThkMGUzNGJkMWViNDlmNWQ1NzRmMmMz
NzAwYmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNk
ZWZpbmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coY2hhbm5lbCwgZm10LCAuLi4p
IFJFTEVBU0VfTE9HKGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2Vi
UGFnZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWksIG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIl0gUHJv
dmlzaW9uYWxQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUlu
dDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9uYXZpZ2F0aW9uSUQsICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFBST1ZJU0lPTkFM
UEFHRVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xP
R19FUlJPUihjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJ
RD0lIiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
LCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fbmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogCi1Qcm92aXNpb25hbFBhZ2VQcm94eTo6
UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1c3Bl
bmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqIHdlYnNpdGVQb2xpY2llcykKK1Byb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25h
bFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNob3VsZENsb3NlUHJldmlvdXNQ
YWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCiAg
ICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fd2ViUGFnZUlEKHN1c3BlbmRlZFBhZ2UgPyBzdXNw
ZW5kZWRQYWdlLT53ZWJQYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCkBAIC02Niw2ICs2Niw3IEBAIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJl
ZjxXZWJQcm9jZXNzUHJvCiAgICAgLCBtX2lzU2VydmVyUmVkaXJlY3QoaXNTZXJ2ZXJSZWRpcmVj
dCkKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50KHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCisgICAgLCBtX3Nob3VsZENs
b3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9wcm92aXNpb25hbExvYWRB
Y3Rpdml0eShtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eSgiUHJvdmlz
aW9uYWwgTG9hZCJfcykpCiAjZW5kaWYKQEAgLTE2MiwxNiArMTYzLDE4IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKFJlZlB0cjxBUEk6OldlYnNpdGVQb2xp
Y2llcz4mJiB3ZWJzCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZyZWV6ZUxheWVy
VHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVu
Y29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQ
b2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9u
SGlzdG9yeVZpc2liaWxpdHkpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNp
ZXMsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3Rv
cnlWaXNpYmlsaXR5KQogewogICAgIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFBy
b2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiIpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7
CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5n
LCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXMsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGlj
aWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgbV9wYWdlLmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQs
IG5hdmlnYXRpb24sIGRhdGEsIG1pbWVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEs
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0
aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpO
YXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQ
cm9jZXNzU3dhcHBpbmcsICJsb2FkUmVxdWVzdDoiKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
Tm8pOwogCiAgICAgLy8gSWYgdGhpcyBpcyBhIGNsaWVudC1zaWRlIHJlZGlyZWN0IGNvbnRpbnVp
bmcgaW4gYSBuZXcgcHJvY2VzcywgdGhlbiB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBvdmVyd3JpdGUg
dGhlIGZyb21JdGVtJ3MgVVJMLiBJbiB0aGlzIGNhc2UsCiAgICAgLy8gd2UgbmVlZCB0byBtYWtl
IHN1cmUgd2UgdXBkYXRlIGZyb21JdGVtJ3MgcHJvY2Vzc0lkZW50aWZpZXIgYXMgd2Ugd2FudCBm
dXR1cmUgbmF2aWdhdGlvbnMgdG8gdGhpcyBCYWNrRm9yd2FyZCBpdGVtIHRvIGhhcHBlbiBpbiB0
aGUKQEAgLTE3OSw3ICsxODIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVx
dWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJlcwogICAgIGlmIChu
YXZpZ2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCkg
PT0gV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAgICBuYXZpZ2F0aW9u
LmZyb21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nlc3MtPmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9u
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZN
b3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3Zl
KHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
IH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIFJl
ZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBAIC0xOTksNyAr
MjAyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVz
RGF0YSA9IHdlYnNpdGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0
YXRlcykpKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVt
KG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJh
Y2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9u
SUQoKSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBl
KCksIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKICAgICBt
X3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0yMjcsOCArMjMw
LDkgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBSZXN0b3JlIHRo
ZSBtYWluIGZyYW1lJ3MgY29tbWl0dGVkIFVSTCBhcyBzb21lIGNsaWVudHMgbWF5IHJlbHkgb24g
aXQgdW50aWwgdGhlIG5leHQgbG9hZCBpcyBjb21taXR0ZWQuCi0gICAgaWYgKGF1dG8qIG1haW5G
cmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9h
ZFN0YXRlKCkuc2V0VVJMKG1haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS51cmwoKSk7CisgICAg
UmVmUHRyIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpOworICAgIGlmIChw
cmV2aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCku
c2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBOb3JtYWxseSwgbm90
aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQg
cHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0
byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUg
ZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsyNDAsMTAgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAgICAgICAgbV9tYWlu
RnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExvYWQobV9yZXF1ZXN0
LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVzdCksIHsgfSk7Cisg
ICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNNYWluRnJhbWUtPnBy
b3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNhc2Ugb2YgYSBwcm9j
ZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQcm92aXNpb25hbExv
YWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRvZXNuJ3Qga25vdyBh
Ym91dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28gaXQgY2FuIHVwZGF0
ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92
aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkpOwogICAgIH0K
IH0KIApAQCAtMzIyLDEzICszMzAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1f
cGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RG
TW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJl
cXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJl
ZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Bh
Z2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93
ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdh
dGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJp
YnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwg
V1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCBy
ZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJ
RCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggYTdmYjY2
YTZkYWE3MzdjOTA2MDkwN2MwODk2ZjBjYmM5NGViMzgwZS4uMjcxNGIyYTViNTQ3ZjI2NjdmY2I0
NmZjZWYxYjU3ODRmYmNmNTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEZvcm1EYXRhUmVmZXJl
bmNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0
IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzEsNyAr
NzIsNyBAQCB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIFBy
b3Zpc2lvbmFsUGFnZVByb3h5IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKik7CisgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNo
b3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKik7
CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KQEAgLTgyLDYgKzgzLDggQEAgcHVibGljOgogICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9
CiAgICAgY29uc3QgVVJMJiBwcm92aXNpb25hbFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlz
aW9uYWxMb2FkVVJMOyB9CiAKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJD
b21taXQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21t
aXQ7IH0KKwogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgY29uc3QgeyByZXR1
cm4gbV9kcmF3aW5nQXJlYS5nZXQoKTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJl
YVByb3h5PiB0YWtlRHJhd2luZ0FyZWEoKTsKIApAQCAtMTAxLDggKzEwNCw4IEBAIHB1YmxpYzoK
ICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdh
dGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOworICAgIHZvaWQgbG9hZERh
dGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6
b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6
OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCkBAIC0xMjAsMTEgKzEyMyw4
IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
JiYsIE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmKSBmaW5h
bDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAotICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKLSAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0Rh
dGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRh
dGEmKTsKQEAgLTEzOSw5ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5RnJvbVdlYlByb2Nlc3MoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYm
KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zvcndh
cmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0Zv
cndhcmRMaXN0Q291bnRzJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3Jp
Z2luYXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZv
LCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9p
ZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYp
OwogI2VuZGlmCkBAIC0xNzEsNiArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
bV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OwogICAgIGJvb2wgbV93YXNDb21taXR0ZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0
IHsgZmFsc2UgfTsKICAgICBVUkwgbV9wcm92aXNpb25hbExvYWRVUkw7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDcw
M2UzZGJjZTBjZTY2ZDQwMGJhOTNlOTVjZmRhZmNmMDc5OTEyODYuLjM1MTFiN2JmM2RlNTYzMmNj
MGIwZWQyMjBiMmI4MzUzZTZlMTE3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTM5MCw3ICsxMzkwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMK
ICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAK
ICAgICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgaWYgKHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcykKKyAgICBpZiAo
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZDo6Tm8pCiAgICAgICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFu
c2FjdGlvbiwgeyBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCB1cmwuc3RyaW5nKCkgfSk7CiAK
ICAgICBMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKQEAgLTEzOTgsNyArMTM5OCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRl
cnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1l
dGVycy53ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLmxvY2tIaXN0b3J5KCk7CiAgICAg
bG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRpb24ubG9ja0JhY2tG
b3J3YXJkTGlzdCgpOwpAQCAtMTUyNSw3ICsxNTI1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LAogICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7CiAgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVS
TFN0cmluZyA9IGJhc2VVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1l
dGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRs
ZXModXNlckRhdGEpLmdldCgpKTsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CkBAIC0x
NTc4LDcgKzE1NzgsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6Omxv
YWRTaW11bGF0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0
ZXJzLmVuY29kaW5nTmFtZSA9IHNpbXVsYXRlZFJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsK
ICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKICAgICBsb2FkUGFy
YW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7Ci0gICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gZmFsc2U7CisgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObzsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24tPmxvY2tI
aXN0b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmln
YXRpb24tPmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLT5jbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkoKTsKQEAgLTM1MTgsNyArMzUxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBCiAgICAgICAgICAgICBpZiAoc3VzcGVuZGVkUGFnZSAmJiBzdXNwZW5kZWRQYWdlLT5wYWdl
SXNDbG9zZWRPckNsb3NpbmcoKSkKICAgICAgICAgICAgICAgICBzdXNwZW5kZWRQYWdlID0gbnVs
bHB0cjsKIAotICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmln
YXRpb24sIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRp
b24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVz
LCBudWxscHRyKSk7CisgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3Mo
bmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2
aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFu
Z2UocG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1
dG8gaXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0
ZW0oKSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xpY3lB
Y3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtMzYwNSw3ICszNjA1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKIAogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV93ZWJQYWdlSUQpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5u
YXZpZ2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7Ci0gICAgYm9vbCBk
aWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiA/IHN1c3BlbmRDdXJyZW50UGFnZUlm
UG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOworICAgIGJvb2wgZGlkU3VzcGVu
ZFByZXZpb3VzUGFnZSA9IG5hdmlnYXRpb24gJiYgIW1fcHJvdmlzaW9uYWxQYWdlLT5zaG91bGRD
bG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3Np
YmxlKCpuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lv
bmFsUGFnZS0+cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3Np
bmdVbnRpbEZpcnN0TGF5ZXJGbHVzaCkgOiBmYWxzZTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdl
YlBhZ2UoKnRoaXMsIG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSA9PSAmbV9wcm92aXNpb25hbFBh
Z2UtPnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0b3JlKCkgPyBXZWJQcm9jZXNzUHJveHk6OkVuZHNV
c2luZ0RhdGFTdG9yZTo6Tm8gOiBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6
WWVzKTsKIAogICAgIC8vIFRoZXJlIGlzIG5vIHdheSB3ZSdsbCBiZSBhYmxlIHRvIHJldHVybiB0
byB0aGUgcGFnZSBpbiB0aGUgcHJldmlvdXMgcGFnZSBzbyBjbG9zZSBpdC4KQEAgLTM2MjAsMTEg
KzM2MjAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmRpZENvbW1pdFByb3Zpc2lvbmFsUGFnZShvbGRXZWJQYWdlSUQsIG1fd2ViUGFnZUlE
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQ
YWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9j
ZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCit2
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiBzdXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgUmVm
UHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXRUJQ
QUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzczogbmV3UHJvY2Vzc1BJRD0laSwgaGFzU3VzcGVuZGVkUGFnZT0laSIsIG5ld1Byb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksICEhc3VzcGVuZGVkUGFnZSk7CiAgICAgTE9HKExvYWRpbmcs
ICJDb250aW51aW5nIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgJyVzJyBpbiBhIG5ldyB3ZWIgcHJv
Y2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1N0cmlu
ZygpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghbmV3UHJvY2Vzcy0+aXNJblByb2Nlc3NDYWNoZSgp
KTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlKSB7CiAg
ICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nIHByb3Zp
c2lvbmFsIGxvYWQsIGNhbmNlbGxpbmcgaXQgKHByb3Zpc29uYWxOYXZpZ2F0aW9uSUQ9JWxsdSwg
bmF2aWdhdGlvbklEPSVsbHUpIiwgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpLCBu
YXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpKTsKQEAgLTM2MzMsOSArMzYzNCwxMCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG51bGxwdHI7CiAg
ICAgfQogCi0gICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFn
ZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdl
KSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdElz
UmVkaXJlY3QoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwotCi0gICAgYXV0byBjb250aW51
YXRpb24gPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9u
ID0gbWFrZVJlZihuYXZpZ2F0aW9uKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRl
UG9saWNpZXMpXSgpIG11dGFibGUgeworICAgIGJvb2wgaXNTZXJ2ZXJTaWRlUmVkaXJlY3QgPSBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBuYXZpZ2F0aW9uLmN1cnJlbnRS
ZXF1ZXN0SXNSZWRpcmVjdCgpOworICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRl
ckNvbW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbjsKKyAgICBtX3Byb3Zp
c2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZN
b3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBpc1NlcnZlclNpZGVSZWRpcmVjdCwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVz
dCgpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzaG91bGRDbG9zZVByZXZpb3VzUGFn
ZUFmdGVyQ29tbWl0LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOworICAgIGF1dG8gY29udGludWF0
aW9uID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9
IG1ha2VSZWYobmF2aWdhdGlvbiksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgd2Vic2l0
ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKSkgewogICAgICAgICAg
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQ
cm9jZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCkuZGF0
YSgpKTsKIApAQCAtMzY1OSw5ICszNjYxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVl
TmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAg
ICAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhlIGxh
c3QgcG9saWN5IGRlbGVnYXRlLCBldGMKICAgICAgICAgQVNTRVJUKCFuYXZpZ2F0aW9uLT5jdXJy
ZW50UmVxdWVzdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIGlmIChhdXRvJiBzdWJzdGl0dXRlRGF0
YSA9IG5hdmlnYXRpb24tPnN1YnN0aXR1dGVEYXRhKCkpCi0gICAgICAgICAgICBtX3Byb3Zpc2lv
bmFsUGFnZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5k
YXRhKCksIHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+
TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VV
UkwsIHN1YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdl
LT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwg
c3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlw
ZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vi
c3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNE
YXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0
aW9uLCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51
bGxwdHIsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXNEYXRhKSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3Qo
bmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3Qo
KSB9LCBudWxscHRyLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSk7CiAgICAgfTsK
ICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyLT5zaG91bGRQYXVzZUxvYWRpbmcoKm1fcHJv
dmlzaW9uYWxQYWdlKSkKICAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5zZXRDb250aW51
ZUxvYWRpbmdDYWxsYmFjaygqbV9wcm92aXNpb25hbFBhZ2UsIFdURk1vdmUoY29udGludWF0aW9u
KSk7CkBAIC01NjE0LDEzICs1NjE2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1v
dmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVk
QnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjMzLDcgKzU2MzUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmln
YXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZp
Z2F0aW9uSUQpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6
TmF2aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3Zl
KGZyYW1lSW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVU
eXBlLCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihm
cmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwg
bmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5lciA9IG1h
a2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZN
b3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQ
b2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRy
PFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6
Ok5vKTsKQEAgLTU2NDIsOSArNTY0NCwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAg
ICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmll
ciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJv
Y2VzcyldIChjb25zdCBhdXRvJiBwb2xpY3lEZWNpc2lvbikgewogICAgICAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1l
SUQsIGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1Nh
bmRib3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlEKTsKICAgICAgICAgfSk7CisKKyAg
ICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9h
ZEluTmV3UHJvY2Vzczo6Tm87CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0
aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9u
KSB7CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmln
YXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQg
cHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5z
IGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlz
LT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxS
ZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJs
ZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6
IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Cisg
ICAgICAgICAgICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAg
ICAgICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0
aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZp
Z2F0aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsK
KyAgICAgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRp
bnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdh
dGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3Zl
KHNlbmRlcikpOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwg
bmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBX
VEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAg
fSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91
bmREb21haW5SZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUpIHsKKyAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNU
b09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFlNjM1MzQ0YmY5Y2E5YzZkZjQyYTkwZDA4
MjA0MTFhYTk5ZWI0MTUuLjhjZTM5MTQyYTdkYWIwZGU4MDIwNzFlMzNhOWRmNjhiOGJkNTBjNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzAsNyArMjcwLDcg
QEAgZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJl
Y3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBj
bGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGly
ZWN0aW9uIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAg
ICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA1OSw3
ICsyMDU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAg
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
UmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJp
YnV0ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3Rh
dGVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA1ZjQ5MGI4ZjUzZWM0ZjBhOGUxZTY4MTE4OTVhYmE0N2ZmMjA4NWZh
Li5iODgwM2NkNTIyMmI2YTcwODRmYTJlNzIyMDI3Nzc0YjVmZTA2NTY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyAr
MTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xp
Y3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBT
dHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlw
ZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Ym9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYu
LmE0MGU2OWRmYTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURv
bWFpbiA/ICptX3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVy
biBtX3JlZ2lzdHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHsgfSk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiYgb3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0
cmFibGVEb21haW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAg
Ym9vbCBpc0luUHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYzNDM0MTkzYjE0NWRi
MDRjMWM0YWFhMDIxNWQ5ZDkxZTdmZGVkMDcuLjQ5NGQ5ZTUwMTQ5ZGI1YWE0Mjc3MWIxYjJmY2Vj
ZjRhYTU3ODgyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcg
KzUyOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92
aXNpb25hbExvYWQoKQogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCku
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFtZSwgdXNlckRh
dGEpOwogICAgIFJlZlB0ciBwcm92aXNpb25hbExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3Vt
ZW50TG9hZGVyKj4obV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXIoKSk7CiAKLSAgICBpZiAoIXByb3Zpc2lvbmFsTG9hZGVyKQorICAgIGlmICgh
cHJvdmlzaW9uYWxMb2FkZXIgfHwgcHJvdmlzaW9uYWxMb2FkZXItPmlzQ29udGludWluZ0xvYWRB
ZnRlclJlc3BvbnNlUG9saWN5Q2hlY2soKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGF1
dG8mIHVybCA9IHByb3Zpc2lvbmFsTG9hZGVyLT51cmwoKTsKQEAgLTgxNiw3ICs4MTYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNo
b3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAg
ICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1
ZXN0LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rp
b25Vc2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3Rl
ZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRl
ciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBp
bmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgor
ICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5U
X1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBj
b250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVu
Y3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBA
IC04NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9s
aWN5RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQg
PSBwb2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4o
KnBvbGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvblVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVp
bnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZp
ZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8p
OwotICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSkpIHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNw
b25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgp
KS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVz
ZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAg
ICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVj
aXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAw
LCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFh
M2E4NjAxNzU3MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2
YzY0ZjQxMWRiZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdG
cmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsK
ICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggY2JmOWYzNmFhNDYyMGM5ZGU2NGVjOGE2ZjgwZmUzM2FiNmI3
ODQ3ZC4uY2ZiZTU0ZjAyNjM0MjA5ZThhMzEyYWQ1ZWQwOWM3MjY5MDNhZWYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcy
Myw3IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nl
c3NMYXVuY2goTG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdh
dGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4m
JiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9u
c2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1
ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkg
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQogICAgIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMTdlMTg5MzVmYWUxMTZiNDY2MmUyNjQwNmJh
ZGY0Zjg3NWYxODI0Li4xZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1ZDdmZGE4ODUzYjEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjcsNyAr
MjI3LDcgQEAgZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51bSBj
bGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxp
Z2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRp
cmVjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTc1LDcgKzE1NzUsNyBA
QCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1lKik7CiAKLSAg
ICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYs
IFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29u
c3QgVXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWREYXRhSW1wbCh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MzYxZDU3ZGE4MDMz
Y2U0NTA5MGU5YzZmNWJmNmE1YTE4OTE4NDYuLmEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFj
MjQ5MjU1OWQ0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJf
dCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkK
IAotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3Qg
V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51
bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJv
b2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdl
YnNpdGVQb2xpY2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0Zvcndh
cmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJk
VHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRl
UG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCAxNTJmZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4wNTE2MjcwMDlh
NjZlMTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6
Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZp
bmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRl
KiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3Jt
U3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CmluZGV4IGJmZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQuLjBjZmJlZWUw
NDQ3ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdT
aG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0g
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFkMGEuLmM1YWZh
MTMzN2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJW
aWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2NWFlOTQyYzI5
Yjg5NmQ4Li42MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJl
YWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBv
dmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBX
ZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjE4N2QyNWQzNTg0
ZmI0NDEwMmU1YzcyN2UwYWRiNzVlN2NlNDAxOC4uMzU0Yzg2MjY2MWE1MDBhNDE5YTc2MTNiNzc3
MjFkODdkN2IwOWIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcg
YmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgdG8gdmFsaWRhdGUgdGhh
dCB3ZSBhcmUgaW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAg
ICAoLVtQU09OU2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZh
bHVlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNr
Ol0pOgorCiAyMDIxLTA4LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3QtdGV4dC1pbi1leGlzdGlu
Zy1zZWxlY3Rpb24uaHRtbCBmYWlscyBvbiBpT1MgMTUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IGY5YjhkYWY2OWY0NDc0Mjc5NWZkOGY5MTZjNmY2Zjg1YjQwZTQ4NjEuLjIy
NGM5NDJlODdjNzRlNDY1NDcyMjBkOGY0YjU4NTRhNGExNjg1ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtMjUwLDEyICsyNTAsMTQgQEAgQGludGVyZmFjZSBQU09OU2No
ZW1lIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewogICAgIGNvbnN0IGNoYXIqIF9i
eXRlczsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBfcmVkaXJlY3RzOwogICAgIEhhc2hN
YXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNEYXRhPj4gX2RhdGFNYXBwaW5nczsKKyAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBfY29vcFZhbHVlczsKICAgICBIYXNoU2V0PGlkIDxXS1VSTFNjaGVt
ZVRhc2s+PiBfcnVubmluZ1Rhc2tzOwogICAgIGJvb2wgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25v
dXNseTsKIH0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEJ5dGVzOihjb25zdCBjaGFyKilieXRl
czsKIC0gKHZvaWQpYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXNvdXJjZVVS
TFN0cmluZyB0b1VSTFN0cmluZzooTlNTdHJpbmcgKilkZXN0aW5hdGlvblVSTFN0cmluZzsKIC0g
KHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0
YTooY29uc3QgY2hhciopZGF0YTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5T
U3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVl
Oihjb25zdCBjaGFyKiljb29wVmFsdWU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2No
ZW1lCkBAIC0yNzcsNiArMjc5LDEzIEBAIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YQogICAgIF9kYXRh
TWFwcGluZ3Muc2V0KHVybFN0cmluZywgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lk
KilkYXRhIGxlbmd0aDpzdHJsZW4oZGF0YSkgZnJlZVdoZW5Eb25lOk5PXSk7CiB9CiAKKy0gKHZv
aWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YToo
Y29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUKK3sK
KyAgICBbc2VsZiBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFd
OworICAgIGlmIChjb29wVmFsdWUpCisgICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcs
IGNvb3BWYWx1ZSk7Cit9CisKIC0gKHZvaWQpc2V0U2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5
OihCT09MKXZhbHVlCiB7CiAgICAgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseSA9IHZhbHVl
OwpAQCAtMzExLDggKzMyMCwxNSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBb
KGlkPFdLVVJMU2NoZW1lVGFza1ByaXZhdGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpy
ZWRpcmVjdFJlc3BvbnNlLmdldCgpIG5ld1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQog
Ci0gICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtmaW5hbFVSTCA9IHJldGFpblB0cihm
aW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKLSAgICAgICAgUmV0YWluUHRy
PE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2Nd
IGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3Rl
ZENvbnRlbnRMZW5ndGg6MSB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgIGRvQXN5bmNocm9u
b3VzbHlJZk5lY2Vzc2FyeShbc2VsZiwgZmluYWxVUkwgPSByZXRhaW5QdHIoZmluYWxVUkwpXShp
ZCA8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAgIE5TTXV0YWJsZURpY3Rpb25hcnkq
IGhlYWRlckRpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKyAg
ICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAidGV4dC9odG1sIiBmb3JLZXk6QCJD
b250ZW50LVR5cGUiXTsKKyAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAiMSIg
Zm9yS2V5OkAiQ29udGVudC1MZW5ndGgiXTsKKyAgICAgICAgYXV0byBjb29wVmFsdWUgPSBfY29v
cFZhbHVlcy5nZXQoW2ZpbmFsVVJMIGFic29sdXRlU3RyaW5nXSk7CisgICAgICAgIGlmICghY29v
cFZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVj
dDooTlNTdHJpbmcgKiljb29wVmFsdWUgZm9yS2V5OkAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiXTsKKworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3Bv
bnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBIVFRQ
VmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwogICAg
ICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogICAgIH0sIDAu
MSk7CiAKQEAgLTQwOSw4ICs0MjUsNiBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNo
b3cnLCBmdW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAotI2lm
IFBMQVRGT1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc1NpdGVO
b09wZW5lclRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKQEAgLTQ4OCw2ICs1MDIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCisjaWYgUExBVEZPUk0oTUFD
KQogc3RhdGljIGNvbnN0IGNoYXIqIGxpbmtUb0FwcGxlVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VS
Q0UoCiA8c2NyaXB0Pgogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rp
b24oZXZlbnQpIHsKQEAgLTQ5Nyw4ICs1MTIsNyBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
cGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiA8YSBpZD0idGVzdExpbmsi
IGhyZWY9InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CiApUFNP
TlJFU09VUkNFIjsKLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKyNlbmRpZgogCiBzdGF0aWMg
UmV0YWluUHRyPF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gcHNvblByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbigpCiB7CkBAIC0xMTk3LDggKzEyMTEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBC
YWNrTmF2aWdhdGlvbkFmdGVyU2Vzc2lvblJlc3RvcmUpCiAgICAgRVhQRUNUX05FKHBpZDMsIHBp
ZDQpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1Np
dGVXaW5kb3dPcGVuTm9PcGVuZXIpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CkBAIC0xMjA2LDYgKzEyMTgsNyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBh
dXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bv
b2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBh
dXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21h
aW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMjQ1LDYgKzEyNTgsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBDcm9zc09yaWdpbkJ1dFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQ
b29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZU5vT3BlbmVy
VGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxl
cjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyODUsNiArMTI5OSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQogCiAg
ICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NTaXRlV2l0aE9wZW5lclRlc3RCeXRl
c107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxl
ci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMzI0LDYgKzEzMzksNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9j
ZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5q
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFu
ZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0V2l0aEJ5dGVzOndpbmRvd09w
ZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CiAKQEAgLTEzNjIsNiArMTM3OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5r
VGFyZ2V0V2l0aE9wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9z
c1NpdGVXaXRoRXhwbGljaXRPcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNP
TiJdOwpAQCAtMTQwMSw2ICsxNDE4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxh
bmtUYXJnZXRJbXBsaWNpdE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRC
bGFua0Nyb3NzU2l0ZVdpdGhJbXBsaWNpdE5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlBTT04iXTsKQEAgLTE0NDAsNiArMTQ1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdl
dEJsYW5rQ3Jvc3NTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNP
TiJdOwpAQCAtMTQ3OSw2ICsxNDk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFu
a1RhcmdldE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua1NhbWVT
aXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTUx
MSw4ICsxNTMxLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3Bl
bmVyKQogICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKLQogVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3V2ViVmlldykK
IHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24oKTsKQEAgLTUwOTQsOCArNTExMiw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExv
YWRpbmdTdGF0ZUFmdGVyUG9saWN5RGVjaXNpb24pCiAgICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2
ZXI6bG9hZE9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJVUkwiIGNvbnRleHQ6d2ViVmlldy5n
ZXQoKV07CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiBzYXZl
T3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewpAQCAtNTEwNyw2ICs1MTIzLDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxl
ZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSA9IFlFUzsKKwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQ
U09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09w
ZW5TYW1lU2l0ZVdpdGhPcGVuZXJUZXN0Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4yLmh0bWwiLgogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVz
dEJ5dGVzXTsKQEAgLTUxODAsNiArNTE5OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxp
bmtBZnRlckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lcikKIFRFU1QoUHJvY2Vz
c1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5l
ZSkKIHsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7
CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsK
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RC
eXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAg
W2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTIzNSw4ICs1MjU0
LDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nl
c3NTd2FwcGluZ09mT3BlbmVlKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAotI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKLQogZW51bSBjbGFzcyBFeHBlY3RTd2FwIHsgTm8sIFllcyB9Owogc3RhdGlj
IHZvaWQgcnVuUHJvY2Vzc1N3YXBEdWVUb1JlbGF0ZWRXZWJWaWV3VGVzdChOU1VSTCogcmVsYXRl
ZFZpZXdVUkwsIE5TVVJMKiB0YXJnZXRVUkwsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKQEAg
LTcxNTEsMyArNzE2OCwyMzMgQEAgVEVTVChXZWJQcm9jZXNzQ2FjaGUsIENsZWFyV2hlbkVudGVy
aW5nQ2FjaGUpCiAgICAgLy8gQ2xlYXIgdGhlIFdlYlByb2Nlc3MgY2FjaGUgd2hpbGUgdGhlIHBy
b2Nlc3NlcyBhcmUgYmVpbmcgY2hlY2tlZCBmb3IgcmVzcG9uc2l2ZW5lc3MuCiAgICAgW3Byb2Nl
c3NQb29sIF9jbGVhcldlYlByb2Nlc3NDYWNoZV07CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3
aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2Ny
aXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3Blbigi
cHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0Pgor
KVBTT05SRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dPcGVuU2FtZU9yaWdp
bkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwb3B1cC5odG1sIiwgImZvbyIp
OworfQorPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworZW51bSBjbGFzcyBJc1NhbWVPcmln
aW4gOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6
IGJvb2wgeyBObywgWWVzIH07CitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgSXNTYW1l
T3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVk
aXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHBy
b2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJv
Y2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10u
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKKyAgICBmb3IgKF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1l
bnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGlu
aXRdKTsKKyAgICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKSB7CisgICAg
ICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyB3
aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgeworICAgICAgICAgICAgW2hhbmRsZXIg
YWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0
bWwiIHRvVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGly
ZWN0Lmh0bWwiXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0
YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93
d3cud2Via2l0Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRl
c3RpbmF0aW9uQ09PUF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6
d2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNP
T1BdOworICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcykgeworICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIl07CisgICAgICAgICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29t
L3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6
ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwi
IHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9Cisg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5h
dmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisKKyAgICBfX2Jsb2NrIHVuc2lnbmVkIG51bWJlck9mUHJvdmlzaW9uYWxMb2Fk
cyA9IDA7CisgICAgbmF2aWdhdGlvbkRlbGVnYXRlLT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdh
dGlvbkhhbmRsZXIgPSBeeworICAgICAgICArK251bWJlck9mUHJvdmlzaW9uYWxMb2FkczsKKyAg
ICB9OworCisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKV07CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1BTT05VSURlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNlOworICAgIG51bWJlck9mRGVjaWRlUG9saWN5
Q2FsbHMgPSAwOworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdlYlZpZXcpOworICAgIGRpZENy
ZWF0ZVdlYlZpZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisKKyAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcykgeworICAgICAgICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxs
cyk7CisgICAgICAgIEVYUEVDVF9UUlVFKHNlcnZlclJlZGlyZWN0ZWQpOworICAgIH0gZWxzZSB7
CisgICAgICAgIEVYUEVDVF9FUSgyLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAg
ICAgRVhQRUNUX0ZBTFNFKHNlcnZlclJlZGlyZWN0ZWQpOworICAgIH0KKyAgICBFWFBFQ1RfRVEo
MlUsIG51bWJlck9mUHJvdmlzaW9uYWxMb2Fkcyk7IC8vIE9uZSBpbiBlYWNoIHZpZXcuCisKKyAg
ICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVD
VF9UUlVFKCEhcGlkMSk7CisgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKKworICAgIGlmIChleHBl
Y3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIp
OworICAgIGVsc2UKKyAgICAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgYm9vbCBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ3LmNsb3NlZCA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRpb25IYW5kbGVyOiBb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmlzQ2xv
c2VkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBl
Y3RTd2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ0cnVlIiwgaXNDbG9z
ZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIs
IGlzQ2xvc2VkKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAidy5uYW1lIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3aW5kb3dOYW1lID0gKE5TU3Ry
aW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpObyAm
JiBpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJmb28iLCB3aW5kb3dOYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAgIGZpbmlzaGVkUnVubmlu
Z1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgLy8gT3BlbmVlIHNob3VsZCBub3QgaGF2ZSBh
biBvcGVuZXIgb3IgYSBuYW1lLgorICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwor
ICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cub3BlbmVyID8g
J3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaGFzT3BlbmVyID0gKE5TU3RyaW5nICop
cmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAg
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIsIGhhc09wZW5lcik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBoYXNPcGVuZXIpOworICAg
ICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAid2luZG93Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJpbmcg
KilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05hbWUpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28iLCB3aW5kb3dOYW1lKTsKKyAgICAg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmlubmVyVGV4dCA9
IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicG9wdXAiLCBp
bm5lclRleHQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsK
KworICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
c2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKK3sK
KyAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2
ZSBDT09QPXNhbWUtb3JpZ2luLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3Jp
Z2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXAyKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGIwMjZiNTA3
NGE0NjZkOWZkMzExMjkxZmU2MWMxMWRlZWZjMTUzZTEuLjE5ZTQ4M2U4MzUyNmFmMzE0ZTRhNmIz
MWEwZmQyNGU3ZWI1NDdkYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
T3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUHJpdmF0ZS5oPgpAQCAtMTA2LDEyICsxMDcsMTQgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6aW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiBpbml0aWFsaXphdGlv
blVzZXIKIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSkKIHsKLSAgICBib29sIGlzTWFpblBhZ2UgPSBtX3BhZ2VzLmlzRW1wdHkoKTsKICAg
ICBtX3BhZ2VzLmFwcGVuZChtYWtlVW5pcXVlPEluamVjdGVkQnVuZGxlUGFnZT4ocGFnZSkpOwog
CiAgICAgc2V0VXBJbmplY3RlZEJ1bmRsZUNsaWVudHMocGFnZSk7Cit9CiAKLSAgICBpZiAoIWlz
TWFpblBhZ2UpCit2b2lkIEluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmdJZk5lY2Vzc2FyeSgp
Cit7CisgICAgaWYgKGlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV0tU
eXBlUmVmIHJlc3VsdCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggNzNmNWZmMWE2Mjg2ZDg1
NWI1OWJjMTJhNzUzOWJkOWNiN2ExNjk2ZC4uNzZmY2JjMDI0NzljMjc0NGViMDAzMWU0YzkxZThk
N2UyMDY0ZTg3YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTQ4LDYgKzE0OCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGluY3JlYXNlVXNlclNjcmlwdEluamVjdGVkQ291bnQoKSB7ICsrbV91c2VyU2NyaXB0
SW5qZWN0ZWRDb3VudDsgfQogICAgIHNpemVfdCB1c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXNlclNjcmlwdEluamVjdGVkQ291bnQ7IH0KIAorICAgIHZvaWQgYmVn
aW5UZXN0aW5nSWZOZWNlc3NhcnkoKTsKKwogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZSgp
ID0gZGVmYXVsdDsKICAgICB+SW5qZWN0ZWRCdW5kbGUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cAppbmRleCAxZGVjZjMwNzNhYWYzMTQ1YjFkOWI5NzI1YjVjZDViZTNhMjc3MmU0Li5jMzMxNTU1
ODI3NzRlNTQwY2EzYjRiNjhjMWFkYzAyYWQ5Mzc2NjAwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCkBAIC01OTYsNiArNTk2LDEwIEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRD
YWNoZVJlc3BvbnNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lCiB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lKQogewogICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpOworCisgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS50b3BMb2FkaW5n
RnJhbWUoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUuc2V0VG9wTG9hZGluZ0ZyYW1lKGZyYW1l
KTsKKwogICAgIGlmICghaW5qZWN0ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTYwOSw5ICs2MTMsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogICAg
IGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKSkKICAgICAgICAgZHVtcExvYWRFdmVudChmcmFtZSwgImRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUiKTsKIAotICAgIGlmICghaW5qZWN0ZWRCdW5kbGUudG9wTG9hZGluZ0Zy
YW1lKCkpCi0gICAgICAgIGluamVjdGVkQnVuZGxlLnNldFRvcExvYWRpbmdGcmFtZShmcmFtZSk7
Ci0KICAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGRTdG9wUHJvdmlz
aW9uYWxGcmFtZUxvYWRzKCkpCiAgICAgICAgIGR1bXBMb2FkRXZlbnQoZnJhbWUsICJzdG9wcGlu
ZyBsb2FkIGluIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgY2FsbGJhY2siKTsKIH0K
QEAgLTYzNCw2ICs2MzUsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmUKICAgICBpZiAoIWlu
amVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8g
V2hlbiBwcm9jZXNzIHN3YXBwaW5nIG9uIHJlc291cmNlIHJlc3BvbnNlLCB0aGUgcHJldmlvdXMg
cHJvY2VzcydzIGxvYWQgZ2V0cyBpbnRlcnJ1cHRlZCBieSBwb2xpY3kgZGVjaXNpb24KKyAgICAv
LyBidXQgd2UgZG9uJ3Qgd2FudCB0byBpbnRlcnJ1cHQgdGhlIHRlc3QuCisgICAgaWYgKFdLRXJy
b3JHZXRFcnJvckNvZGUoZXJyb3IpID09IGtXS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVk
QnlQb2xpY3lDaGFuZ2UpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChpbmplY3RlZEJ1bmRs
ZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewogICAgICAg
ICBkdW1wTG9hZEV2ZW50KGZyYW1lLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvciIp
OwogICAgICAgICBhdXRvIGNvZGUgPSBXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKTsKQEAgLTY0
OSw2ICs2NTUsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmUKIHZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKIHsK
ICAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsK
KworICAgIGlmIChpbmplY3RlZEJ1bmRsZS5wYWdlKCkgPT0gdGhpcyAmJiBXS0J1bmRsZUZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5iZWdpblRlc3RpbmdJ
Zk5lY2Vzc2FyeSgpOworCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4ZWQyN2ExNTAxZDZmNzQwZDY4ODFiYzY2MDcw
ZDcyNmVhNGZiZjguLmY5NjNkYWQ2ZWEwMGFhYjk0N2Y4YjdiNDIyNmM5ZDdmYWY2ZmJlYmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2Vk
IG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgU2tpcCBDT09QIHRlc3RzIG9uIFdLMSBhcyB3ZSBvbmx5IGhhdmUgYSB3
b3JraW5nIGltcGxlbWVudGF0aW9uIGZvciBXSzIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnM6CisKIDIwMjEtMDgtMjMgIEF5dW1pIEtvamltYSAgPGF5dW1pX2tvamltYUBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPUyAxNF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJzdG9yYWdlL2V2ZW50X2Nhc2Vfc2Vuc2l0aXZlLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOTQzODA1M2Q4MzQ4OTNiNTExYTgwMmZl
OGMyNzIyZWUyY2EwOWY1Ny4uMWQxYjQwOGI1Y2EyZDk0ZjE1YzlmMmZiYzNiOWM2YmYxZjhjNjEy
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJ
bXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1pbm9yIHRlc3Qg
cmViYXNlbGluZSBkdWUgdG8gbG9nZ2luZyBjaGFuZ2VzLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wOC0yMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZmllZCB0ZXh0IG1lYXN1cmluZyBvbmx5IHdvcmtz
IHdpdGggdGhlIHByaW1hcnkgZm9udApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
ZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29l
cC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYz
YWM0N2UyYjk1ZmY0NzU0MTQ2Njc2Li4wMzIzYTUxZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2
OGIzZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2EKIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
IENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENy
b3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNT
QUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24v
YmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdF
OiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5o
dG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291
cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBj
YW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVw
OiB3aW5kb3cub3BlbigpCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTJhMmQz
NDQ3OTYyNGYzMGVkMjczYzE4MTIyMTBjYmUzNDI4YThmMS4uNGM1ZWY0NjhjM2E4Nzk4ZTNlNDNm
YWM1YTI4YTE1MzlmOGZiNmE5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdv
cmtlCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rl
c3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvcG9wdXAtY29vcC1ieS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJl
L3NlcnZlci9jb250ZXh0LmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwx
MCArMzY5LDExIEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5
b3V0LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJj
ZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRh
Y2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IC8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBb
IFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRw
L3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeSBbIFNraXAgXQogCiAjIFF1b3RhIGNoZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rl
c3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjFhNTY3OGZjN2JmYjJiYjky
MWIyMWViMTk4MWM0MjEwYTI4YWI1Yi4uOWUzNDlhZmViYzJhZWZhZWQ4M2Y1ZTBjODZjZDhjOTVm
Y2E2NjU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM3MTUsOCArMzcxNSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3BvbGljaWVzL3JlZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJs
LXNlcnZpY2Utd29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBv
bGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0
bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dv
cmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24t
d2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRw
cy5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBA
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1z
ZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2xheW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRw
cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8g
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRw
L3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9j
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRl
cmluZyBmb3IgV0sxCiBodHRwL3dwdC9sb2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNr
aXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436246</attachid>
            <date>2021-08-23 16:14:14 -0700</date>
            <delta_ts>2021-08-24 07:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210823161413.patch</filename>
            <type>text/plain</type>
            <size>114374</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I3NmFhNWQzYzc1Njg5
MjU4M2E2YzI5ZTkzMzI5YzFlODA4ZWQ4Yi4uNzc3ZjQxNDdhODVmMjg5ZGQ3ZjY0NmRiODBlMzRm
ZjU5ZWIzMWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjMgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFNpbXBsaWZpZWQgdGV4dCBtZWFzdXJpbmcgb25seSB3b3JrcyB3aXRoIHRoZSBw
cmltYXJ5IGZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGU3MzQwYzgyODFlNDhlODBiODY3ZmQ4ZjU4MWVhYzU1
OWY3ZDBiNC4uZjE3YmM3ZmFhZmVmYzBjZDRiOThhMTI3ZDlhODVkMTVkYmMxODZkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NiBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2Vk
IG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgV2UgcmVjZW50bHkgYWRkZWQgc3VwcG9ydCBmb3IgdGhlIENyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5IChDT09QKSBIVFRQIGhlYWRlci4gSG93ZXZlciwKKyAgICAgICAg
d2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcgY29udGV4dCBncm91cCBvbiBIVFRQIHJlc3BvbnNlLCB3
ZSB3b3VsZCBrZWVwIHVzaW5nIHRoZSBzYW1lIAorICAgICAgICBXZWJQcm9jZXNzLiBUaGlzIHBh
dGNoIG1ha2VzIGl0IHNvIHRoYXQgd2Ugbm93IHN3YXAgV2ViUHJvY2VzcyB3aGVuIHN3aXRjaGlu
ZyBicm93c2luZworICAgICAgICBjb250ZXh0IGdyb3VwIG9uIG5ldHdvcmsgcmVzcG9uc2UgYXMg
dGhpcyB3aWxsIGJlIHJlcXVpcmVkIHRvIHNlY3VyZWx5IHJlLWVuYWJsZSBXZWIgQVBJcworICAg
ICAgICBzdWNoIGFzIFNoYXJlZEFycmF5QnVmZmVyLgorCisgICAgICAgIEZvciBwcm9jZXNzLXN3
YXBwaW5nLCB3ZSByZXVzZSBtb3N0IG9mIHRoZSBzYW1lIGxvZ2ljIGFzIHByb2Nlc3Mtc3dhcCBv
biBuYXZpZ2F0aW9uIChQU09OKS4KKyAgICAgICAgQSBmZXcgZGlmZmVyZW5jZXMgYXJlIHRoYXQ6
CisgICAgICAgIC0gV2Ugc3dhcCBvbiByZXNwb25zZSBwb2xpY3kgZGVjaXNpb24gaW5zdGVhZCBv
ZiBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbgorICAgICAgICAtIFdlIHVzZWQgdG8gaGF2ZSBh
IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBZZXMvTm8gZW51bS4gSXQgaXMgbm93IHRyaS1z
dGF0ZTogTm8sCisgICAgICAgICAgWWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFll
c0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbi4gV2UgbmVlZCB0aGlzIG5ldyBzdGF0ZQorICAg
ICAgICAgIHRvIGF2b2lkIGR1cGxpY2F0ZSByZXNwb25zZSBwb2xpY3kgZGVsZWdhdGUgY2FsbHMg
YWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBhbmQgdG8gYXZvaWQKKyAgICAgICAgICBzZW5kaW5nIGR1
cGxpY2F0ZSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCBJUENzIGFmdGVyIHByb2Nlcy1zd2FwcGlu
Zy4KKyAgICAgICAgLSBBZnRlciBwcm9jZXNzLXN3YXBwaW5nIG9uIG5hdmlnYXRpb24gcmVzcG9u
c2UsIHdlIGNsb3NlIHRoZSBwcmV2aW91cyBwYWdlIGluc3RlYWQgb2YgdHJ5aW5nCisgICAgICAg
ICAgdG8gcHV0IGl0IGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4gUGVyIHRoZSBzcGVjaWZp
Y2F0aW9uLCBpbiBhIGNhc2Ugb2YgYSBicm93c2luZyBjb250ZXh0CisgICAgICAgICAgZ3JvdXAg
c3dpdGNoLCB0aGUgcHJldmlvdXMgYnJvd3NpbmcgY29udGV4dCBuZWVkcyB0byBiZSBkaXNjYXJk
ZWQgKHdoaWNoIGlzIFdlYi1vYnNlcnZhYmxlKS4KKworICAgICAgICBPbmUgaW1wb3J0YW50IHRo
aW5nIHRvIG5vdGUgaXMgdGhhdCB3ZSBjdXJyZW50bHkgc2VuZCB0aGUgSFRUUCByZXF1ZXN0IHRv
IHRoZSBzZXJ2ZXIgQUdBSU4gYWZ0ZXIKKyAgICAgICAgYSBwcm9jZXNzLXN3YXAuIFRoaXMgaXMg
YmVjYXVzZSB0aGUgb24tZ29pbmcgbG9hZCBjdXJyZW50bHkgZ2V0cyBjYW5jZWxsZWQgdXBvbiBy
ZWNlaXZpbmcgdGhlCisgICAgICAgIG5ldHdvcmsgcmVzcG9uc2UgYW5kIGRlY2lkaW5nIHRvIHBy
b2Nlc3Mtc3dhcCBhbmQgYSBuZXcgZnJlc2ggbG9hZCBnZXRzIGlzc3VlZCBieSB0aGUgbmV3Cisg
ICAgICAgIFdlYlByb2Nlc3MgYWZ0ZXIgc3dhcHBpbmcuIEkgd2lsbCBhZGRyZXNzIHRoaXMgaW4g
YSBmb2xsb3ctdXAgdG8gZGVjcmVhc2UgcGF0Y2ggc2l6ZSBhbmQKKyAgICAgICAgY29tcGxleGl0
eS4gV2Ugd2lsbCBuZWVkIHRvIHRyYW5zaXRpb24gdGhlIGxvYWQgaW4gdGhlIG5ldHdvcmsgcHJv
Y2VzcyBmcm9tIHRoZSBvbGQgV2ViUHJvY2VzcworICAgICAgICB0byB0aGUgbmV3IG9uZSBpbiBj
YXNlIG9mIHByb2Nlc3Mtc3dhcC4KKworICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpzaG91bGRDbG9zZVByZXZpb3VzUGFn
ZUFmdGVyQ29tbWl0IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkU2lt
dWxhdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpvcHRpb25hbFJlZ2lzdHJhYmxlRG9tYWluIGNv
bnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWREYXRhSW1w
bCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wOC0yMyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjcxMTQ2KTogZWRpdGluZy9zZWxlY3Rpb24vaW9zL3Njcm9sbGluZy10by1mb2N1c2VkLWVs
ZW1lbnQtaW5zaWRlLWlmcmFtZS5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCAwMWUxYjhlNTM4ZjhmZTI3M2I3NzU0NWQ4MDFiMTEzMzZkNTgxNzkwLi5kMzEy
MjgxZTY4OGQzOTM2MTM4MjQyZTZiZDdiNzQwOThkZTQzNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGlu
ZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKToKKwogMjAyMS0wOC0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvbGQgdW51c2VkIGNvZGUgYW5kIG91dCBvZiBkYXRl
IGNvbW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDdkZTkxMDdkYTlmODQ2
OTBkMWE1OTc4YmMxYTM0NWMwZjZjNzhjN2YuLjQ1OGZhMTYwZTkxODdkOGExNGM0YTJmZmFiNTlh
YWRhYWQzNGUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMS0wOC0yMSAg
UGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDcmFzaCB1bmRl
ciBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2Y2Y5ZTAzMjgw
NTAzYzdiZTAuLjRkMzJhZTRhOWQ1OWY5ZWNlMWRhZTY1OTA2NjQ3OTg0OTJiNTM3NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1ICs3ODMsMTIg
QEAgYm9vbCBEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNzLWEtbmF2aWdh
dGUtZmV0Y2ggKFN0ZXAgMTIuNS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdzIGlzIG5vdCBl
bXB0eSBhbmQgcmVzcG9uc2VDT09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9uZSIsIHRoZW4g
c2V0IHJlc3BvbnNlIHRvIGFuIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5kIGJyZWFrLgot
ICAgIGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1
ZTo6VW5zYWZlTm9uZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNhbmRib3hGbGFn
cygpICE9IFNhbmRib3hOb25lKSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAhPSBDcm9z
c09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9hZGVyKCktPmVm
ZmVjdGl2ZVNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAgIGNhbmNlbE1h
aW5SZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRDb29wRW5mb3Jj
ZW1lbnRSZXN1bHQgPSBlbmZvcmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBvbGljeShyZXNw
b25zZS51cmwoKSwgcmVzcG9uc2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAgaWYgKG1fY3Vy
cmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRj
aCkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0c0dyb3VwKCk7
Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIENvbXBsZXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5P
cGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBk
aXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFy
Oi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0UoQ0YpCkBAIC0x
MDQyLDExICsxMDM2LDE5IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgfQogI2VuZGlm
CiAKKyAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9u
c2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZShtX2lzQ29udGlu
dWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAgICAgICBjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNvdXJjZUxv
YWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVzb3VyY2VM
b2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBv
bGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRl
bnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5
KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxv
YWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2Us
IHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVy
KSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5y
ZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlm
aWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CkBAIC0y
MDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQog
ICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwiIDogZnJh
bWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUobV9yZXF1
ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICBtX3Jl
c3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBlLCAwLCAi
VVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLmNvbW1p
dHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0
ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAgICAgICBk
b0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwogCisgICAg
ICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1c2UgYSBi
cm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlzIHN5bmNo
cm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBwb2xpY3kg
ZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRleHQgZ3Jv
dXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAgICAgaWYg
KG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91
cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5nQ29udGV4
dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJN
YWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxwdHI7Cisg
ICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFsc2U7CiAK
ICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1ZDc2NDg3
NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZiM2UwMmNl
YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1LDYgKzQy
NSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3NzT3JpZ2lu
T3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVz
dWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBv
bGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBpc0NvbnRp
bnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nv
bnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBzZXRJc0Nv
bnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51aW5nTG9h
ZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3Bv
bnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNr
OyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01NjEsNiAr
NTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTG9hZGlu
Z011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVpbmdMb2Fk
QWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1FOiBEb2N1
bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93YXNPbmxv
YWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3VsZCBiZSBt
ZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhkY2E3NWI5
NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2NWNhMzQx
YWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2ws
IEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZmZTViMDM2
ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
CkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFn
ZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAg
dm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2ZDAzZGYy
NDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05l
d1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7
IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wgdmFsdWUp
IHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
KSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25z
dCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0
YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0gZGF0YTsg
fQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50UmVkaXJl
Y3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9s
aWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsg
ZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAg
TG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tC
YWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVmZXJyZXJQ
b2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4zOTA4ZjhiMDFj
YWEzNmNmYTAxMTU0NjViYTZkYjM4ZDZlZWRmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZl
cnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hl
Y2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24m
JiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9h
ZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRh
dGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJl
cXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRy
aWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVl
c3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1
dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikp
OwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0
IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1l
T3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8sIHN0ZDo6
b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpCkBAIC0xNDcwLDEwICsxNDcwLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVM
b2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBt
X2NsaWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
cmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKICAgICBsb2FkZXItPnNldEFsbG93c1dlYkFyY2hp
dmVGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKSk7
CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZShyZXF1ZXN0LmlzUmVx
dWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKKyAgICBsb2FkZXItPnNldElzQ29udGludWlu
Z0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2socmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQoKSA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9u
c2VQb2xpY3lEZWNpc2lvbik7CiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQo
bG9hZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvTmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsKIAotICAgIGlm
IChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpKSB7CisgICAgaWYgKHJlcXVl
c3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpObykgewogICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9y
SGlzdG9yeShyZXF1ZXN0LmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKICAgICAg
ICAgaWYgKHJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IExvY2tCYWNrRm9yd2FyZExp
c3Q6OlllcykgewogICAgICAgICAgICAgbG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUp
OwpAQCAtMTQ4MSw3ICsxNDgyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRS
ZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFNldEZvclNjb3BlPExv
YWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRp
bnVpbmdTdGF0ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSA/IExvYWRD
b250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3Rh
dGU6Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+
IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgcmVxdWVz
dC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhSZXF1ZXN0IDog
TG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAgICAgbG9hZChsb2FkZXIuZ2V0
KCkpOwogfQogCkBAIC0zNzY4LDcgKzM3NjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlm
ZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQog
CiAgICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpV
bmtub3duOwogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWlu
Z0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMgPyBMb2FkQ29u
dGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdT
dGF0ZTo6Tm90Q29udGludWluZyk7CisgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0
ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoSGlzdG9yeUl0ZW0gOiBMb2Fk
Q29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKIAogICAgIGlmIChDYWNoZWRQYWdlKiBj
YWNoZWRQYWdlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJh
bWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+
ZG9jdW1lbnRMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNmYz
YmRiZWZjYTM5ZmJmYzIzZjlkMTRjOWIyNzExMjI2ZGUyNGEwYi4uZTU2YzA4ZjcwMzZhNWRmYjcz
M2MyZTVmNWNlZWNkODg0MjJhZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
QEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBlbnVtIGNsYXNzIENhY2hl
UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwog
ZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90OwotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBVc2VkTGVnYWN5VExT
IDogYm9vbDsKIGVudW0gY2xhc3MgSXNNYWluUmVzb3VyY2UgOiBib29sIHsgTm8sIFllcyB9Owog
ZW51bSBjbGFzcyBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSA6IGJvb2wgeyBObywgWWVz
IH07CkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlcnNMb2Fk
aW5nKGJvb2wpOwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdy
b3VwU3dpdGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIAogICAgIHZvaWQg
ZGlkRXhwbGljaXRPcGVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggM2ViNWNlZTY0MjZjNDRkYzE3NDIyMjE1ZmFhYjE1NjkzMWRiMmQ5ZC4uMzli
YjQwNTQwOWM0MTc0Nzg1YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rp
b24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFNob3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9s
aWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNo
ZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmgKaW5kZXggNmQ1ZGU4NGYyMTc5ODg2M2JhOGVlZGU4YjY0NmZlOTQ4
YTQ1ODgyYi4uMTAzN2RmOThlYzQxNTU0YmZiMWRiNjJiODk2ODJkODM3ZmE2NTYzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAg
Y2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwor
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogCiBzdHJ1
Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCmluZGV4IDc2ZTA5MzUwNWJjYmJlNjZkMjI0
NTJkMmY1Yjc5NWIzZDVkODUzYTQuLmFiMTM1M2JjYzA4MmU0MWJhNTg5YzljMjljMjEwODUzYTM5
OTUyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2wgeyBObywgWWVz
IH07CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3QgeyBO
bywgWWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFllc0FmdGVyUmVzcG9uc2VQb2xp
Y3lEZWNpc2lvbiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTM5LDcgKzM5LDgg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsCiAgICAgICAgIFdlYkNvcmU6OlNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sCi0gICAgICAgIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzCisgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sCisgICAgICAg
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBv
bGljeURlY2lzaW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDg3YzliMmI1ZWY0
OTQ2YzljYmU5ODlmM2U3NzYxZjA4ZTYxZDgwZS4uOTI1NWJmMzEzYzY3ZDcxNDgxNWNmNzgxNTI2
NmZmZDgwNWIyMmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCB1c2luZyBT
aGFyZWRTdHJpbmdIYXNoID0gdWludDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwog
ZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5
IDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9v
bDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAog
ZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBV
bnJlc3BvbnNpdmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
MDYyMDk2NDY4ZmU4N2I2OGMxOWVmMzgwNzdhMjVhOTIxZDlkNGVmZi4uZTVjNTdiMDQwNDljOGIy
MGI2YmQ2MTFjZmM4ZjZiMDFmNzhjMDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1l
dGVycy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CiAKIE9C
SkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwpAQCAtNjYsNyArNjcsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFt
ZXRlcnMgewogICAgIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBv
bGljaWVzOwogCiAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6Tm8gfTsKICAgICBVc2VyRGF0YSB1c2VyRGF0YTsKICAgICBXZWJDb3Jl
OjpMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9Owog
ICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdl
YkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYzY1NGNiOGMxMjIxYWY4MTFm
NmIwYTczYjNlMWRmOTQzNWIyYjc2ZC4uNDFjZDM1ZGJmYThkMGUzNGJkMWViNDlmNWQ1NzRmMmMz
NzAwYmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNk
ZWZpbmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coY2hhbm5lbCwgZm10LCAuLi4p
IFJFTEVBU0VfTE9HKGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2Vi
UGFnZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWksIG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIl0gUHJv
dmlzaW9uYWxQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUlu
dDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9uYXZpZ2F0aW9uSUQsICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFBST1ZJU0lPTkFM
UEFHRVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xP
R19FUlJPUihjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJ
RD0lIiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgp
LCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fbmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogCi1Qcm92aXNpb25hbFBhZ2VQcm94eTo6
UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1c3Bl
bmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9s
aWNpZXMqIHdlYnNpdGVQb2xpY2llcykKK1Byb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25h
bFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNob3VsZENsb3NlUHJldmlvdXNQ
YWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCiAg
ICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fd2ViUGFnZUlEKHN1c3BlbmRlZFBhZ2UgPyBzdXNw
ZW5kZWRQYWdlLT53ZWJQYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAg
ICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCkBAIC02Niw2ICs2Niw3IEBAIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJl
ZjxXZWJQcm9jZXNzUHJvCiAgICAgLCBtX2lzU2VydmVyUmVkaXJlY3QoaXNTZXJ2ZXJSZWRpcmVj
dCkKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50KHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCisgICAgLCBtX3Nob3VsZENs
b3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9wcm92aXNpb25hbExvYWRB
Y3Rpdml0eShtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eSgiUHJvdmlz
aW9uYWwgTG9hZCJfcykpCiAjZW5kaWYKQEAgLTE2MiwxNiArMTYzLDE4IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKFJlZlB0cjxBUEk6OldlYnNpdGVQb2xp
Y2llcz4mJiB3ZWJzCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZyZWV6ZUxheWVy
VHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVu
Y29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQ
b2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9u
SGlzdG9yeVZpc2liaWxpdHkpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNp
ZXMsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3Rv
cnlWaXNpYmlsaXR5KQogewogICAgIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFBy
b2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiIpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7
CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5n
LCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXMsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGlj
aWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgbV9wYWdlLmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQs
IG5hdmlnYXRpb24sIGRhdGEsIG1pbWVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEs
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0
aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpO
YXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQ
cm9jZXNzU3dhcHBpbmcsICJsb2FkUmVxdWVzdDoiKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
Tm8pOwogCiAgICAgLy8gSWYgdGhpcyBpcyBhIGNsaWVudC1zaWRlIHJlZGlyZWN0IGNvbnRpbnVp
bmcgaW4gYSBuZXcgcHJvY2VzcywgdGhlbiB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBvdmVyd3JpdGUg
dGhlIGZyb21JdGVtJ3MgVVJMLiBJbiB0aGlzIGNhc2UsCiAgICAgLy8gd2UgbmVlZCB0byBtYWtl
IHN1cmUgd2UgdXBkYXRlIGZyb21JdGVtJ3MgcHJvY2Vzc0lkZW50aWZpZXIgYXMgd2Ugd2FudCBm
dXR1cmUgbmF2aWdhdGlvbnMgdG8gdGhpcyBCYWNrRm9yd2FyZCBpdGVtIHRvIGhhcHBlbiBpbiB0
aGUKQEAgLTE3OSw3ICsxODIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVx
dWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJlcwogICAgIGlmIChu
YXZpZ2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCkg
PT0gV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAgICBuYXZpZ2F0aW9u
LmZyb21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nlc3MtPmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9u
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZN
b3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdl
YnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3Zl
KHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
IH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIFJl
ZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBAIC0xOTksNyAr
MjAyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVz
RGF0YSA9IHdlYnNpdGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0
YXRlcykpKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVt
KG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJh
Y2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9u
SUQoKSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBl
KCksIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKICAgICBt
X3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0yMjcsOCArMjMw
LDkgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBSZXN0b3JlIHRo
ZSBtYWluIGZyYW1lJ3MgY29tbWl0dGVkIFVSTCBhcyBzb21lIGNsaWVudHMgbWF5IHJlbHkgb24g
aXQgdW50aWwgdGhlIG5leHQgbG9hZCBpcyBjb21taXR0ZWQuCi0gICAgaWYgKGF1dG8qIG1haW5G
cmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9h
ZFN0YXRlKCkuc2V0VVJMKG1haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS51cmwoKSk7CisgICAg
UmVmUHRyIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpOworICAgIGlmIChw
cmV2aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCku
c2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBOb3JtYWxseSwgbm90
aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQg
cHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0
byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUg
ZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsyNDAsMTAgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAgICAgICAgbV9tYWlu
RnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExvYWQobV9yZXF1ZXN0
LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVzdCksIHsgfSk7Cisg
ICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNNYWluRnJhbWUtPnBy
b3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNhc2Ugb2YgYSBwcm9j
ZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQcm92aXNpb25hbExv
YWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRvZXNuJ3Qga25vdyBh
Ym91dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28gaXQgY2FuIHVwZGF0
ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92
aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkpOwogICAgIH0K
IH0KIApAQCAtMzIyLDEzICszMzAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1f
cGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RG
TW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJl
cXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJl
ZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRC
dW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Bh
Z2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93
ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdh
dGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJp
YnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwg
V1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCBy
ZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJ
bmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJ
RCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggYTdmYjY2
YTZkYWE3MzdjOTA2MDkwN2MwODk2ZjBjYmM5NGViMzgwZS4uMjcxNGIyYTViNTQ3ZjI2NjdmY2I0
NmZjZWYxYjU3ODRmYmNmNTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEZvcm1EYXRhUmVmZXJl
bmNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0
IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzEsNyAr
NzIsNyBAQCB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIFBy
b3Zpc2lvbmFsUGFnZVByb3h5IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKik7CisgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNo
b3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKik7
CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KQEAgLTgyLDYgKzgzLDggQEAgcHVibGljOgogICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9
CiAgICAgY29uc3QgVVJMJiBwcm92aXNpb25hbFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlz
aW9uYWxMb2FkVVJMOyB9CiAKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJD
b21taXQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21t
aXQ7IH0KKwogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgY29uc3QgeyByZXR1
cm4gbV9kcmF3aW5nQXJlYS5nZXQoKTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJl
YVByb3h5PiB0YWtlRHJhd2luZ0FyZWEoKTsKIApAQCAtMTAxLDggKzEwNCw4IEBAIHB1YmxpYzoK
ICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdh
dGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOworICAgIHZvaWQgbG9hZERh
dGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6
b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6
OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShB
UEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRyPEFQSTo6V2Vi
c2l0ZVBvbGljaWVzPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCkBAIC0xMjAsMTEgKzEyMyw4
IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
JiYsIE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmKSBmaW5h
bDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAotICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKLSAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0Rh
dGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRh
dGEmKTsKQEAgLTEzOSw5ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5RnJvbVdlYlByb2Nlc3MoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYm
KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zvcndh
cmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0Zv
cndhcmRMaXN0Q291bnRzJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3Jp
Z2luYXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZv
LCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9p
ZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYp
OwogI2VuZGlmCkBAIC0xNzEsNiArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
bV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OwogICAgIGJvb2wgbV93YXNDb21taXR0ZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0
IHsgZmFsc2UgfTsKICAgICBVUkwgbV9wcm92aXNpb25hbExvYWRVUkw7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDcw
M2UzZGJjZTBjZTY2ZDQwMGJhOTNlOTVjZmRhZmNmMDc5OTEyODYuLjM1MTFiN2JmM2RlNTYzMmNj
MGIwZWQyMjBiMmI4MzUzZTZlMTE3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMTM5MCw3ICsxMzkwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMK
ICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAK
ICAgICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgaWYgKHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcykKKyAgICBpZiAo
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZDo6Tm8pCiAgICAgICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFu
c2FjdGlvbiwgeyBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCB1cmwuc3RyaW5nKCkgfSk7CiAK
ICAgICBMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKQEAgLTEzOTgsNyArMTM5OCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRl
cnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1l
dGVycy53ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLmxvY2tIaXN0b3J5KCk7CiAgICAg
bG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRpb24ubG9ja0JhY2tG
b3J3YXJkTGlzdCgpOwpAQCAtMTUyNSw3ICsxNTI1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LAogICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAgbG9hZFBhcmFt
ZXRlcnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7CiAgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVS
TFN0cmluZyA9IGJhc2VVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1l
dGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRs
ZXModXNlckRhdGEpLmdldCgpKTsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CkBAIC0x
NTc4LDcgKzE1NzgsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6Omxv
YWRTaW11bGF0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0
ZXJzLmVuY29kaW5nTmFtZSA9IHNpbXVsYXRlZFJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsK
ICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKICAgICBsb2FkUGFy
YW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7Ci0gICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gZmFsc2U7CisgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObzsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24tPmxvY2tI
aXN0b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmln
YXRpb24tPmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLT5jbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkoKTsKQEAgLTM1MTgsNyArMzUxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBCiAgICAgICAgICAgICBpZiAoc3VzcGVuZGVkUGFnZSAmJiBzdXNwZW5kZWRQYWdlLT5wYWdl
SXNDbG9zZWRPckNsb3NpbmcoKSkKICAgICAgICAgICAgICAgICBzdXNwZW5kZWRQYWdlID0gbnVs
bHB0cjsKIAotICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmln
YXRpb24sIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRp
b24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVz
LCBudWxscHRyKSk7CisgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3Mo
bmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2
aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFu
Z2UocG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1
dG8gaXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0
ZW0oKSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xpY3lB
Y3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtMzYwNSw3ICszNjA1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKIAogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV93ZWJQYWdlSUQpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5u
YXZpZ2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7Ci0gICAgYm9vbCBk
aWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiA/IHN1c3BlbmRDdXJyZW50UGFnZUlm
UG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOworICAgIGJvb2wgZGlkU3VzcGVu
ZFByZXZpb3VzUGFnZSA9IG5hdmlnYXRpb24gJiYgIW1fcHJvdmlzaW9uYWxQYWdlLT5zaG91bGRD
bG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3Np
YmxlKCpuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lv
bmFsUGFnZS0+cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3Np
bmdVbnRpbEZpcnN0TGF5ZXJGbHVzaCkgOiBmYWxzZTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdl
YlBhZ2UoKnRoaXMsIG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSA9PSAmbV9wcm92aXNpb25hbFBh
Z2UtPnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0b3JlKCkgPyBXZWJQcm9jZXNzUHJveHk6OkVuZHNV
c2luZ0RhdGFTdG9yZTo6Tm8gOiBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6
WWVzKTsKIAogICAgIC8vIFRoZXJlIGlzIG5vIHdheSB3ZSdsbCBiZSBhYmxlIHRvIHJldHVybiB0
byB0aGUgcGFnZSBpbiB0aGUgcHJldmlvdXMgcGFnZSBzbyBjbG9zZSBpdC4KQEAgLTM2MjAsMTEg
KzM2MjAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmRpZENvbW1pdFByb3Zpc2lvbmFsUGFnZShvbGRXZWJQYWdlSUQsIG1fd2ViUGFnZUlE
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
cyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQ
YWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9j
ZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCit2
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiBzdXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgUmVm
UHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXRUJQ
QUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2VzczogbmV3UHJvY2Vzc1BJRD0laSwgaGFzU3VzcGVuZGVkUGFnZT0laSIsIG5ld1Byb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksICEhc3VzcGVuZGVkUGFnZSk7CiAgICAgTE9HKExvYWRpbmcs
ICJDb250aW51aW5nIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgJyVzJyBpbiBhIG5ldyB3ZWIgcHJv
Y2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1N0cmlu
ZygpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghbmV3UHJvY2Vzcy0+aXNJblByb2Nlc3NDYWNoZSgp
KTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlKSB7CiAg
ICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nIHByb3Zp
c2lvbmFsIGxvYWQsIGNhbmNlbGxpbmcgaXQgKHByb3Zpc29uYWxOYXZpZ2F0aW9uSUQ9JWxsdSwg
bmF2aWdhdGlvbklEPSVsbHUpIiwgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpLCBu
YXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpKTsKQEAgLTM2MzMsOSArMzYzNCwxMCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG51bGxwdHI7CiAg
ICAgfQogCi0gICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFn
ZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdl
KSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdElz
UmVkaXJlY3QoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwotCi0gICAgYXV0byBjb250aW51
YXRpb24gPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9u
ID0gbWFrZVJlZihuYXZpZ2F0aW9uKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRl
UG9saWNpZXMpXSgpIG11dGFibGUgeworICAgIGJvb2wgaXNTZXJ2ZXJTaWRlUmVkaXJlY3QgPSBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBuYXZpZ2F0aW9uLmN1cnJlbnRS
ZXF1ZXN0SXNSZWRpcmVjdCgpOworICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRl
ckNvbW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbjsKKyAgICBtX3Byb3Zp
c2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZN
b3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBpc1NlcnZlclNpZGVSZWRpcmVjdCwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVz
dCgpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzaG91bGRDbG9zZVByZXZpb3VzUGFn
ZUFmdGVyQ29tbWl0LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOworICAgIGF1dG8gY29udGludWF0
aW9uID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9
IG1ha2VSZWYobmF2aWdhdGlvbiksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgd2Vic2l0
ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUgewogICAgICAg
ICBpZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKSkgewogICAgICAgICAg
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQ
cm9jZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCkuZGF0
YSgpKTsKIApAQCAtMzY1OSw5ICszNjYxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVl
TmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAg
ICAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhlIGxh
c3QgcG9saWN5IGRlbGVnYXRlLCBldGMKICAgICAgICAgQVNTRVJUKCFuYXZpZ2F0aW9uLT5jdXJy
ZW50UmVxdWVzdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIGlmIChhdXRvJiBzdWJzdGl0dXRlRGF0
YSA9IG5hdmlnYXRpb24tPnN1YnN0aXR1dGVEYXRhKCkpCi0gICAgICAgICAgICBtX3Byb3Zpc2lv
bmFsUGFnZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5k
YXRhKCksIHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+
TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VV
UkwsIHN1YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdl
LT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwg
c3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlw
ZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vi
c3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNE
YXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0
aW9uLCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51
bGxwdHIsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXNEYXRhKSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3Qo
bmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3Qo
KSB9LCBudWxscHRyLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSk7CiAgICAgfTsK
ICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyLT5zaG91bGRQYXVzZUxvYWRpbmcoKm1fcHJv
dmlzaW9uYWxQYWdlKSkKICAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5zZXRDb250aW51
ZUxvYWRpbmdDYWxsYmFjaygqbV9wcm92aXNpb25hbFBhZ2UsIFdURk1vdmUoY29udGludWF0aW9u
KSk7CkBAIC01NjE0LDEzICs1NjE2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1v
dmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVk
QnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjMzLDcgKzU2MzUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmln
YXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZp
Z2F0aW9uSUQpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6
TmF2aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3Zl
KGZyYW1lSW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVU
eXBlLCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihm
cmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwg
bmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5lciA9IG1h
a2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZN
b3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQ
b2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRy
PFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6
Ok5vKTsKQEAgLTU2NDIsOSArNTY0NCwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAg
ICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmll
ciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJv
Y2VzcyldIChjb25zdCBhdXRvJiBwb2xpY3lEZWNpc2lvbikgewogICAgICAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1l
SUQsIGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1Nh
bmRib3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlEKTsKICAgICAgICAgfSk7CisKKyAg
ICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9h
ZEluTmV3UHJvY2Vzczo6Tm87CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0
aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9u
KSB7CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmln
YXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQg
cHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5z
IGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlz
LT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxS
ZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJs
ZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6
IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7Cisg
ICAgICAgICAgICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAg
ICAgICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vz
c1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0
aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZp
Z2F0aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsK
KyAgICAgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRp
bnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdh
dGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3Zl
KHNlbmRlcikpOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwg
bmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBX
VEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAg
fSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91
bmREb21haW5SZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUpIHsKKyAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNU
b09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFlNjM1MzQ0YmY5Y2E5YzZkZjQyYTkwZDA4
MjA0MTFhYTk5ZWI0MTUuLjhjZTM5MTQyYTdkYWIwZGU4MDIwNzFlMzNhOWRmNjhiOGJkNTBjNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzAsNyArMjcwLDcg
QEAgZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJl
Y3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBj
bGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGly
ZWN0aW9uIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJ
bmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAg
ICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA1OSw3
ICsyMDU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAg
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nl
c3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4m
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
UmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJp
YnV0ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3Rh
dGVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA1ZjQ5MGI4ZjUzZWM0ZjBhOGUxZTY4MTE4OTVhYmE0N2ZmMjA4NWZh
Li5iODgwM2NkNTIyMmI2YTcwODRmYTJlNzIyMDI3Nzc0YjVmZTA2NTY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyAr
MTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xp
Y3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBT
dHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlw
ZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBz
dHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Ym9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGly
ZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0
OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYu
LmE0MGU2OWRmYTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURv
bWFpbiA/ICptX3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVy
biBtX3JlZ2lzdHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHsgfSk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiYgb3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0
cmFibGVEb21haW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAg
Ym9vbCBpc0luUHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYzNDM0MTkzYjE0NWRi
MDRjMWM0YWFhMDIxNWQ5ZDkxZTdmZGVkMDcuLjQ5NGQ5ZTUwMTQ5ZGI1YWE0Mjc3MWIxYjJmY2Vj
ZjRhYTU3ODgyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcg
KzUyOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92
aXNpb25hbExvYWQoKQogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCku
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFtZSwgdXNlckRh
dGEpOwogICAgIFJlZlB0ciBwcm92aXNpb25hbExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3Vt
ZW50TG9hZGVyKj4obV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXIoKSk7CiAKLSAgICBpZiAoIXByb3Zpc2lvbmFsTG9hZGVyKQorICAgIGlmICgh
cHJvdmlzaW9uYWxMb2FkZXIgfHwgcHJvdmlzaW9uYWxMb2FkZXItPmlzQ29udGludWluZ0xvYWRB
ZnRlclJlc3BvbnNlUG9saWN5Q2hlY2soKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGF1
dG8mIHVybCA9IHByb3Zpc2lvbmFsTG9hZGVyLT51cmwoKTsKQEAgLTgxNiw3ICs4MTYsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNo
b3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5j
dGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rp
b24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAg
ICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1
ZXN0LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rp
b25Vc2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3Rl
ZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRl
ciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBp
bmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgor
ICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5U
X1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBj
b250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVu
Y3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBA
IC04NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9s
aWN5RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQg
PSBwb2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4o
KnBvbGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdh
c0FsbG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFj
dGlvblVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVp
bnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZp
ZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8p
OwotICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNl
LCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSkpIHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNw
b25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgp
KS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVz
ZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAg
ICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVj
aXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAw
LCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFh
M2E4NjAxNzU3MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2
YzY0ZjQxMWRiZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdG
cmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsK
ICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSos
IFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggY2JmOWYzNmFhNDYyMGM5ZGU2NGVjOGE2ZjgwZmUzM2FiNmI3
ODQ3ZC4uY2ZiZTU0ZjAyNjM0MjA5ZThhMzEyYWQ1ZWQwOWM3MjY5MDNhZWYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcy
Myw3IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nl
c3NMYXVuY2goTG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdh
dGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4m
JiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9u
c2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2Fk
RGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1
ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkg
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQogICAgIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMTdlMTg5MzVmYWUxMTZiNDY2MmUyNjQwNmJh
ZGY0Zjg3NWYxODI0Li4xZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1ZDdmZGE4ODUzYjEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjcsNyAr
MjI3LDcgQEAgZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51bSBj
bGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxp
Z2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRp
cmVjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4
X3Q7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTc1LDcgKzE1NzUsNyBA
QCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1lKik7CiAKLSAg
ICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYs
IFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29u
c3QgVXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWREYXRhSW1wbCh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MzYxZDU3ZGE4MDMz
Y2U0NTA5MGU5YzZmNWJmNmE1YTE4OTE4NDYuLmEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFj
MjQ5MjU1OWQ0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJf
dCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkK
IAotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3Qg
V2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51
bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJv
b2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdl
YnNpdGVQb2xpY2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0Zvcndh
cmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJk
VHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBz
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRl
UG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCAxNTJmZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4wNTE2MjcwMDlh
NjZlMTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6
Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZp
bmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRl
KiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3Jt
U3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CmluZGV4IGJmZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQuLjBjZmJlZWUw
NDQ3ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdT
aG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0g
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFkMGEuLmM1YWZh
MTMzN2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJW
aWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2NWFlOTQyYzI5
Yjg5NmQ4Li42MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJl
YWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBv
dmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0
Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBX
ZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjE4N2QyNWQzNTg0
ZmI0NDEwMmU1YzcyN2UwYWRiNzVlN2NlNDAxOC4uMzU0Yzg2MjY2MWE1MDBhNDE5YTc2MTNiNzc3
MjFkODdkN2IwOWIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcg
YmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgdG8gdmFsaWRhdGUgdGhh
dCB3ZSBhcmUgaW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAg
ICAoLVtQU09OU2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZh
bHVlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNr
Ol0pOgorCiAyMDIxLTA4LTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9zZWxlY3QtdGV4dC1pbi1leGlzdGlu
Zy1zZWxlY3Rpb24uaHRtbCBmYWlscyBvbiBpT1MgMTUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IGY5YjhkYWY2OWY0NDc0Mjc5NWZkOGY5MTZjNmY2Zjg1YjQwZTQ4NjEuLjIy
NGM5NDJlODdjNzRlNDY1NDcyMjBkOGY0YjU4NTRhNGExNjg1ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtMjUwLDEyICsyNTAsMTQgQEAgQGludGVyZmFjZSBQU09OU2No
ZW1lIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewogICAgIGNvbnN0IGNoYXIqIF9i
eXRlczsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBfcmVkaXJlY3RzOwogICAgIEhhc2hN
YXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNEYXRhPj4gX2RhdGFNYXBwaW5nczsKKyAgICBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiBfY29vcFZhbHVlczsKICAgICBIYXNoU2V0PGlkIDxXS1VSTFNjaGVt
ZVRhc2s+PiBfcnVubmluZ1Rhc2tzOwogICAgIGJvb2wgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25v
dXNseTsKIH0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEJ5dGVzOihjb25zdCBjaGFyKilieXRl
czsKIC0gKHZvaWQpYWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOihOU1N0cmluZyAqKXNvdXJjZVVS
TFN0cmluZyB0b1VSTFN0cmluZzooTlNTdHJpbmcgKilkZXN0aW5hdGlvblVSTFN0cmluZzsKIC0g
KHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0
YTooY29uc3QgY2hhciopZGF0YTsKKy0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5T
U3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVl
Oihjb25zdCBjaGFyKiljb29wVmFsdWU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2No
ZW1lCkBAIC0yNzcsNiArMjc5LDEzIEBAIC0gKHZvaWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YTooY29uc3QgY2hhciopZGF0YQogICAgIF9kYXRh
TWFwcGluZ3Muc2V0KHVybFN0cmluZywgW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5Oih2b2lk
KilkYXRhIGxlbmd0aDpzdHJsZW4oZGF0YSkgZnJlZVdoZW5Eb25lOk5PXSk7CiB9CiAKKy0gKHZv
aWQpYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nIHRvRGF0YToo
Y29uc3QgY2hhciopZGF0YSB3aXRoQ09PUFZhbHVlOihjb25zdCBjaGFyKiljb29wVmFsdWUKK3sK
KyAgICBbc2VsZiBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzp1cmxTdHJpbmcgdG9EYXRhOmRhdGFd
OworICAgIGlmIChjb29wVmFsdWUpCisgICAgICAgIF9jb29wVmFsdWVzLmFkZCh1cmxTdHJpbmcs
IGNvb3BWYWx1ZSk7Cit9CisKIC0gKHZvaWQpc2V0U2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5
OihCT09MKXZhbHVlCiB7CiAgICAgX3Nob3VsZFJlc3BvbmRBc3luY2hyb25vdXNseSA9IHZhbHVl
OwpAQCAtMzExLDggKzMyMCwxNSBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBb
KGlkPFdLVVJMU2NoZW1lVGFza1ByaXZhdGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpy
ZWRpcmVjdFJlc3BvbnNlLmdldCgpIG5ld1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQog
Ci0gICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtmaW5hbFVSTCA9IHJldGFpblB0cihm
aW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKLSAgICAgICAgUmV0YWluUHRy
PE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2Nd
IGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3Rl
ZENvbnRlbnRMZW5ndGg6MSB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgIGRvQXN5bmNocm9u
b3VzbHlJZk5lY2Vzc2FyeShbc2VsZiwgZmluYWxVUkwgPSByZXRhaW5QdHIoZmluYWxVUkwpXShp
ZCA8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAgIE5TTXV0YWJsZURpY3Rpb25hcnkq
IGhlYWRlckRpY3Rpb25hcnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKyAg
ICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAidGV4dC9odG1sIiBmb3JLZXk6QCJD
b250ZW50LVR5cGUiXTsKKyAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0OkAiMSIg
Zm9yS2V5OkAiQ29udGVudC1MZW5ndGgiXTsKKyAgICAgICAgYXV0byBjb29wVmFsdWUgPSBfY29v
cFZhbHVlcy5nZXQoW2ZpbmFsVVJMIGFic29sdXRlU3RyaW5nXSk7CisgICAgICAgIGlmICghY29v
cFZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFtoZWFkZXJEaWN0aW9uYXJ5IHNldE9iamVj
dDooTlNTdHJpbmcgKiljb29wVmFsdWUgZm9yS2V5OkAiQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3kiXTsKKworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3Bv
bnNlIGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTC5nZXQoKSBzdGF0dXNDb2RlOjIwMCBIVFRQ
VmVyc2lvbjpAIkhUVFAvMS4xIiBoZWFkZXJGaWVsZHM6aGVhZGVyRGljdGlvbmFyeV0pOwogICAg
ICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogICAgIH0sIDAu
MSk7CiAKQEAgLTQwOSw4ICs0MjUsNiBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNo
b3cnLCBmdW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiApUFNPTlJFU09VUkNFIjsKIAotI2lm
IFBMQVRGT1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc1NpdGVO
b09wZW5lclRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPHNjcmlwdD4KIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKQEAgLTQ4OCw2ICs1MDIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCisjaWYgUExBVEZPUk0oTUFD
KQogc3RhdGljIGNvbnN0IGNoYXIqIGxpbmtUb0FwcGxlVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VS
Q0UoCiA8c2NyaXB0Pgogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVuY3Rp
b24oZXZlbnQpIHsKQEAgLTQ5Nyw4ICs1MTIsNyBAQCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
cGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewogPC9zY3JpcHQ+CiA8YSBpZD0idGVzdExpbmsi
IGhyZWY9InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCI+TmF2aWdhdGU8L2E+CiApUFNP
TlJFU09VUkNFIjsKLQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKyNlbmRpZgogCiBzdGF0aWMg
UmV0YWluUHRyPF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gcHNvblByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbigpCiB7CkBAIC0xMTk3LDggKzEyMTEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBC
YWNrTmF2aWdhdGlvbkFmdGVyU2Vzc2lvblJlc3RvcmUpCiAgICAgRVhQRUNUX05FKHBpZDMsIHBp
ZDQpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1Np
dGVXaW5kb3dPcGVuTm9PcGVuZXIpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7CkBAIC0xMjA2LDYgKzEyMTgsNyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBh
dXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bv
b2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBh
dXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21h
aW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMjQ1LDYgKzEyNTgsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBDcm9zc09yaWdpbkJ1dFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQ
b29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZU5vT3BlbmVy
VGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxl
cjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyODUsNiArMTI5OSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQogCiAg
ICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NTaXRlV2l0aE9wZW5lclRlc3RCeXRl
c107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxl
ci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xMzI0LDYgKzEzMzksNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9j
ZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5q
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFu
ZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0V2l0aEJ5dGVzOndpbmRvd09w
ZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9u
IHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07
CiAKQEAgLTEzNjIsNiArMTM3OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5r
VGFyZ2V0V2l0aE9wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9z
c1NpdGVXaXRoRXhwbGljaXRPcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNP
TiJdOwpAQCAtMTQwMSw2ICsxNDE4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxh
bmtUYXJnZXRJbXBsaWNpdE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVS
TFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRC
bGFua0Nyb3NzU2l0ZVdpdGhJbXBsaWNpdE5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlBTT04iXTsKQEAgLTE0NDAsNiArMTQ1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCld
OworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdl
dEJsYW5rQ3Jvc3NTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNP
TiJdOwpAQCAtMTQ3OSw2ICsxNDk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFu
a1RhcmdldE5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua1NhbWVT
aXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTUx
MSw4ICsxNTMxLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3Bl
bmVyKQogICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKLQogVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3V2ViVmlldykK
IHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24oKTsKQEAgLTUwOTQsOCArNTExMiw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExv
YWRpbmdTdGF0ZUFmdGVyUG9saWN5RGVjaXNpb24pCiAgICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2
ZXI6bG9hZE9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJVUkwiIGNvbnRleHQ6d2ViVmlldy5n
ZXQoKV07CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIHN0YXRpYyBjb25zdCBjaGFyKiBzYXZl
T3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewpAQCAtNTEwNyw2ICs1MTIzLDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxl
ZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSA9IFlFUzsKKwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQ
U09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIgdG9EYXRhOndpbmRvd09w
ZW5TYW1lU2l0ZVdpdGhPcGVuZXJUZXN0Qnl0ZXNdOyAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4yLmh0bWwiLgogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIHRvRGF0YTpzYXZlT3BlbmVyVGVz
dEJ5dGVzXTsKQEAgLTUxODAsNiArNTE5OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxp
bmtBZnRlckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5lcikKIFRFU1QoUHJvY2Vz
c1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnRyb2xsZWRQcm9jZXNzU3dhcHBpbmdPZk9wZW5l
ZSkKIHsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7
CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsK
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RC
eXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAg
W2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTIzNSw4ICs1MjU0
LDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nl
c3NTd2FwcGluZ09mT3BlbmVlKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAotI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKLQogZW51bSBjbGFzcyBFeHBlY3RTd2FwIHsgTm8sIFllcyB9Owogc3RhdGlj
IHZvaWQgcnVuUHJvY2Vzc1N3YXBEdWVUb1JlbGF0ZWRXZWJWaWV3VGVzdChOU1VSTCogcmVsYXRl
ZFZpZXdVUkwsIE5TVVJMKiB0YXJnZXRVUkwsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKIHsKQEAg
LTcxNTEsMyArNzE2OCwyMzMgQEAgVEVTVChXZWJQcm9jZXNzQ2FjaGUsIENsZWFyV2hlbkVudGVy
aW5nQ2FjaGUpCiAgICAgLy8gQ2xlYXIgdGhlIFdlYlByb2Nlc3MgY2FjaGUgd2hpbGUgdGhlIHBy
b2Nlc3NlcyBhcmUgYmVpbmcgY2hlY2tlZCBmb3IgcmVzcG9uc2l2ZW5lc3MuCiAgICAgW3Byb2Nl
c3NQb29sIF9jbGVhcldlYlByb2Nlc3NDYWNoZV07CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3
aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2Ny
aXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHcgPSB3aW5kb3cub3Blbigi
cHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIsICJmb28iKTsKK30KKzwvc2NyaXB0Pgor
KVBTT05SRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dPcGVuU2FtZU9yaWdp
bkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJwb3B1cC5odG1sIiwgImZvbyIp
OworfQorPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworZW51bSBjbGFzcyBJc1NhbWVPcmln
aW4gOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBEb1NlcnZlclNpZGVSZWRpcmVjdCA6
IGJvb2wgeyBObywgWWVzIH07CitzdGF0aWMgdm9pZCBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KGNv
bnN0IGNoYXIqIHNvdXJjZUNPT1AsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uQ09PUCwgSXNTYW1l
T3JpZ2luIGlzU2FtZU9yaWdpbiwgRG9TZXJ2ZXJTaWRlUmVkaXJlY3QgZG9TZXJ2ZXJTaWRlUmVk
aXJlY3QsIEV4cGVjdFN3YXAgZXhwZWN0U3dhcCkKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHBy
b2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJv
Y2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10u
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKKyAgICBmb3IgKF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1l
bnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5RW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW3dl
YlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGlu
aXRdKTsKKyAgICBpZiAoaXNTYW1lT3JpZ2luID09IElzU2FtZU9yaWdpbjo6WWVzKSB7CisgICAg
ICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyB3
aXRoQ09PUFZhbHVlOnNvdXJjZUNPT1BdOworICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJl
Y3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcykgeworICAgICAgICAgICAgW2hhbmRsZXIg
YWRkUmVkaXJlY3RGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0
bWwiIHRvVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGly
ZWN0Lmh0bWwiXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0
YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93
d3cud2Via2l0Lm9yZy9wb3B1cC5odG1sIiB0b0RhdGE6InBvcHVwIiB3aXRoQ09PUFZhbHVlOmRl
c3RpbmF0aW9uQ09PUF07CisgICAgfSBlbHNlIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6
d2luZG93T3BlbkNyb3NzT3JpZ2luQ09PUFRlc3RCeXRlcyB3aXRoQ09PUFZhbHVlOnNvdXJjZUNP
T1BdOworICAgICAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6OlllcykgeworICAgICAgICAgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9wb3B1cC1hZnRlci1yZWRpcmVjdC5odG1sIl07CisgICAgICAgICAg
ICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29t
L3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6
ZGVzdGluYXRpb25DT09QXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLmh0bWwi
IHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9Cisg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5h
dmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisKKyAgICBfX2Jsb2NrIHVuc2lnbmVkIG51bWJlck9mUHJvdmlzaW9uYWxMb2Fk
cyA9IDA7CisgICAgbmF2aWdhdGlvbkRlbGVnYXRlLT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdh
dGlvbkhhbmRsZXIgPSBeeworICAgICAgICArK251bWJlck9mUHJvdmlzaW9uYWxMb2FkczsKKyAg
ICB9OworCisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKV07CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW1BTT05VSURlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCldKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNlOworICAgIG51bWJlck9mRGVjaWRlUG9saWN5
Q2FsbHMgPSAwOworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0ZVdlYlZpZXcpOworICAgIGRpZENy
ZWF0ZVdlYlZpZXcgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisKKyAgICBpZiAoZG9TZXJ2ZXJTaWRlUmVkaXJlY3QgPT0gRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcykgeworICAgICAgICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxs
cyk7CisgICAgICAgIEVYUEVDVF9UUlVFKHNlcnZlclJlZGlyZWN0ZWQpOworICAgIH0gZWxzZSB7
CisgICAgICAgIEVYUEVDVF9FUSgyLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAg
ICAgRVhQRUNUX0ZBTFNFKHNlcnZlclJlZGlyZWN0ZWQpOworICAgIH0KKyAgICBFWFBFQ1RfRVEo
MlUsIG51bWJlck9mUHJvdmlzaW9uYWxMb2Fkcyk7IC8vIE9uZSBpbiBlYWNoIHZpZXcuCisKKyAg
ICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVD
VF9UUlVFKCEhcGlkMSk7CisgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKKworICAgIGlmIChleHBl
Y3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIp
OworICAgIGVsc2UKKyAgICAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgYm9vbCBm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ3LmNsb3NlZCA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRpb25IYW5kbGVyOiBb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmlzQ2xv
c2VkID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBl
Y3RTd2FwOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ0cnVlIiwgaXNDbG9z
ZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIs
IGlzQ2xvc2VkKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAidy5uYW1lIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICp3aW5kb3dOYW1lID0gKE5TU3Ry
aW5nICopcmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpObyAm
JiBpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpCisgICAgICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJmb28iLCB3aW5kb3dOYW1lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAgIGZpbmlzaGVkUnVubmlu
Z1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworCisgICAgLy8gT3BlbmVlIHNob3VsZCBub3QgaGF2ZSBh
biBvcGVuZXIgb3IgYSBuYW1lLgorICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOwor
ICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cub3BlbmVyID8g
J3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaGFzT3BlbmVyID0gKE5TU3RyaW5nICop
cmVzdWx0OworICAgICAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZZXMpCisgICAg
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIsIGhhc09wZW5lcik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBoYXNPcGVuZXIpOworICAg
ICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAid2luZG93Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJpbmcg
KilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHdpbmRvd05hbWUpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28iLCB3aW5kb3dOYW1lKTsKKyAgICAg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICBmaW5pc2hlZFJ1
bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKmlubmVyVGV4dCA9
IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicG9wdXAiLCBp
bm5lclRleHQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsK
KworICAgIGNyZWF0ZWRXZWJWaWV3ID0gbnVsbHB0cjsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9j
ZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERv
U2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sKKyAgICBy
dW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIsIElzU2Ft
ZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7
Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1l
T3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgbnVs
bHB0ciwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0
U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUt
b3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJl
ZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2
aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
Tm8pOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09Q
U2FtZU9yaWdpbkFsbG93UG9wdXAyKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNh
bWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpZZXMs
IERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFBy
b2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNh
bWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAi
c2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5v
LCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1l
T3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbldpdGhSZWRpcmVjdCkKK3sK
KyAgICAvLyBXZSBleHBlY3QgYSBzd2FwIGJlY2F1c2UgdGhlIHJlZGlyZWN0IGRvZXNuJ3QgaGF2
ZSBDT09QPXNhbWUtb3JpZ2luLgorICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3Jp
Z2luIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGly
ZWN0OjpZZXMsIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdTYW1lT3JpZ2luV2l0aG91dENPT1BXaXRoUmVkaXJlY3QpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdChudWxscHRyLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2
ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6Tm8pOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNP
T1BQcm9jZXNzU3dhcFRlc3QobnVsbHB0ciwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpO
bywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luMikKK3sK
KyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJ1bnNhZmUtbm9uZSIsICJzYW1lLW9yaWdpbiIs
IElzU2FtZU9yaWdpbjo6Tm8sIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNP
T1BTYW1lT3JpZ2luKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2lu
IiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3Qo
InNhbWUtb3JpZ2luIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luIiwgInNhbWUtb3Jp
Z2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW5BbGxvd1BvcHVwKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoInNhbWUtb3JpZ2luLWFsbG93LXBvcHVwIiwgbnVsbHB0ciwgSXNTYW1lT3JpZ2luOjpObywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9w
dXAyKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInNhbWUtb3JpZ2luLWFsbG93LXBv
cHVwIiwgInVuc2FmZS1ub25lIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXgg
MWRlY2YzMDczYWFmMzE0NWIxZDliOTcyNWI1Y2Q1YmUzYTI3NzJlNC4uYjVjYTcyNWYyZmM0ZjQ3
ZTJkMGE5YzQ2MzkwZjJmODQxNTIwOTI2OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAt
NjM0LDYgKzYzNCwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZQogICAgIGlmICghaW5qZWN0
ZWRCdW5kbGUuaXNUZXN0UnVubmluZygpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBXaGVu
IHByb2Nlc3Mgc3dhcHBpbmcgb24gcmVzb3VyY2UgcmVzcG9uc2UsIHRoZSBwcmV2aW91cyBwcm9j
ZXNzJ3MgbG9hZCBnZXRzIGludGVycnVwdGVkIGJ5IHBvbGljeSBkZWNpc2lvbgorICAgIC8vIGJ1
dCB3ZSBkb24ndCB3YW50IHRvIGludGVycnVwdCB0aGUgdGVzdC4KKyAgICBpZiAoV0tFcnJvckdl
dEVycm9yQ29kZShlcnJvcikgPT0ga1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBv
bGljeUNoYW5nZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CiAgICAgICAgIGR1
bXBMb2FkRXZlbnQoZnJhbWUsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yIik7CiAg
ICAgICAgIGF1dG8gY29kZSA9IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3IpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU4
ZWQyN2ExNTAxZDZmNzQwZDY4ODFiYzY2MDcwZDcyNmVhNGZiZjguLmY5NjNkYWQ2ZWEwMGFhYjk0
N2Y4YjdiNDIyNmM5ZDdmYWY2ZmJlYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wOC0y
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEltcGxl
bWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgU2tpcCBDT09QIHRlc3Rz
IG9uIFdLMSBhcyB3ZSBvbmx5IGhhdmUgYSB3b3JraW5nIGltcGxlbWVudGF0aW9uIGZvciBXSzIu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDgtMjMgIEF5dW1pIEtv
amltYSAgPGF5dW1pX2tvamltYUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyAxNF0gaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlL2V2ZW50X2Nhc2Vfc2Vuc2l0aXZl
Lmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggOTQzODA1M2Q4MzQ4OTNiNTExYTgwMmZlOGMyNzIyZWUyY2EwOWY1Ny4uMWQxYjQwOGI1Y2Ey
ZDk0ZjE1YzlmMmZiYzNiOWM2YmYxZjhjNjEyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNl
ZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVu
c2VuLgorCisgICAgICAgIE1pbm9yIHRlc3QgcmViYXNlbGluZSBkdWUgdG8gbG9nZ2luZyBjaGFu
Z2VzLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0w
OC0yMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZmll
ZCB0ZXh0IG1lYXN1cmluZyBvbmx5IHdvcmtzIHdpdGggdGhlIHByaW1hcnkgZm9udApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYzYWM0N2UyYjk1ZmY0NzU0MTQ2Njc2Li4wMzIzYTUx
ZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2OGIzZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsy
LDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAu
MTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2EKIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJ
IGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxv
YWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVz
cG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0
cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEy
Ny4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJl
c291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCi1D
T05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5
NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIFBB
U1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiB3aW5kb3cub3BlbigpCiBQQVNTIENPT1ArQ09F
UCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNTJhMmQzNDQ3OTYyNGYzMGVkMjczYzE4MTIyMTBjYmUzNDI4
YThmMS4uNGM1ZWY0NjhjM2E4Nzk4ZTNlNDNmYWM1YTI4YTE1MzlmOGZiNmE5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUzLDggKzM1
Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1w
b2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdvcmtlCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cu
aHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3LWZyb20t
Y29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1zdy5odHRwcy5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1p
bmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJlL3NlcnZlci9jb250ZXh0LmFueS5zZXJ2aWNld29y
a2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwxMCArMzY5LDExIEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50
ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdv
cmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGh0
dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRhY2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5odHRwcy5o
dG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEu
CisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IC8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVy
LVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1
cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRl
ci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAg
XQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0
L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBbIFNraXAgXQogCiAjIFF1b3RhIGNo
ZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0
dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggZjFhNTY3OGZjN2JmYjJiYjkyMWIyMWViMTk4MWM0MjEwYTI4YWI1Yi4uOWUzNDlh
ZmViYzJhZWZhZWQ4M2Y1ZTBjODZjZDhjOTVmY2E2NjU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3MTUsOCArMzcxNSw2IEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGljaWVzL3JlZmVycmVyLW9yaWdpbi13
aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9w
b2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJsLXNlcnZpY2Utd29ya2VyLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
ZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNv
b3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29w
LWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9j
ZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24td2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3Jt
YWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRwcy5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgU2tp
cCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91dC13b3JrbGV0LXNlcnZp
Y2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXIt
aW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1i
ZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBD
cm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwv
Y3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1v
cGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsg
U2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRlcmluZyBmb3IgV0sxCiBodHRwL3dwdC9sb2FkaW5n
L3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436285</attachid>
            <date>2021-08-24 07:38:53 -0700</date>
            <delta_ts>2021-08-24 11:23:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210824073852.patch</filename>
            <type>text/plain</type>
            <size>114347</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY0ZGU3ZmVlZGUxMjZk
MjcyY2E4Njk0YzU5M2NhMjZiMWFjZGVhMS4uN2EyZWJlZWQ2MTUxZTU3NmE3YWZkOWZiZGY0NjFi
YjY4MWEyYmFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjQgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBOb24tdW5pZmllZCBidWlsZCBmaXhlcywgbGF0ZSBBdWd1
c3QgMjAyMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBhZjA2NTczMjRiOGQ0OWNhYjdlYWI4MTZmMTgyZWI3YzA4MWUz
NGM0Li5jZGVkYTlmMjA2OTQxNGUzZTIxNjdlM2UwMDdiNWE0OTg3NjNhODg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY2IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24g
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAorICAgICAgICB3aGVu
IHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdv
dWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3MuIFRoaXMgcGF0Y2gg
bWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4gc3dpdGNoaW5nIGJy
b3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNwb25zZSBhcyB0aGlz
IHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBBUElzCisgICAgICAg
IHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHByb2Nlc3Mtc3dhcHBp
bmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vzcy1zd2FwIG9uIG5h
dmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBhcmUgdGhhdDoKKyAg
ICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBpbnN0ZWFkIG9mIG5h
dmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0byBoYXZlIGEgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBub3cgdHJpLXN0YXRl
OiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgWWVzQWZ0
ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0YXRlCisgICAgICAg
ICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0ZSBjYWxscyBhZnRl
ciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNlbmRpbmcgZHVwbGlj
YXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2VzLXN3YXBwaW5nLgor
ICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlvbiByZXNwb25zZSwg
d2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcKKyAgICAgICAgICB0
byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhlIHNwZWNpZmljYXRp
b24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAgICBncm91cCBzd2l0
Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJlIGRpc2NhcmRlZCAo
d2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBvcnRhbnQgdGhpbmcg
dG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJlcXVlc3QgdG8gdGhl
IHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4gVGhpcyBpcyBiZWNh
dXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxlZCB1cG9uIHJlY2Vp
dmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRpbmcgdG8gcHJvY2Vz
cy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRoZSBuZXcKKyAgICAg
ICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3MgdGhpcyBpbiBhIGZv
bGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBjb21wbGV4aXR5LiBX
ZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0d29yayBwcm9jZXNz
IGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcgb25lIGluIGNhc2Ug
b2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdl
YktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAo
V2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0
ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmln
YXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0
ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29t
bWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250
aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4gY29uc3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbXBsKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4LTI0ICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMsIGxhdGUgQXVndXN0IDIwMjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCAwMWUxYjhlNTM4ZjhmZTI3M2I3NzU0NWQ4MDFiMTEzMzZkNTgxNzkwLi5kMzEyMjgx
ZTY4OGQzOTM2MTM4MjQyZTZiZDdiNzQwOThkZTQzNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBi
YXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKToKKwogMjAyMS0wOC0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBvbGQgdW51c2VkIGNvZGUgYW5kIG91dCBvZiBkYXRlIGNv
bW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDdkZTkxMDdkYTlmODQ2OTBk
MWE1OTc4YmMxYTM0NWMwZjZjNzhjN2YuLjQ1OGZhMTYwZTkxODdkOGExNGM0YTJmZmFiNTlhYWRh
YWQzNGUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtX
SzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyMDQ3Njg2Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAyMS0wOC0yMSAgUGVy
IEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDcmFzaCB1bmRlciBG
b250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2Y2Y5ZTAzMjgwNTAz
YzdiZTAuLjRkMzJhZTRhOWQ1OWY5ZWNlMWRhZTY1OTA2NjQ3OTg0OTJiNTM3NmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1ICs3ODMsMTIgQEAg
Ym9vbCBEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRsaW5nT2ZSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNzLWEtbmF2aWdhdGUt
ZmV0Y2ggKFN0ZXAgMTIuNS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdzIGlzIG5vdCBlbXB0
eSBhbmQgcmVzcG9uc2VDT09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9uZSIsIHRoZW4gc2V0
IHJlc3BvbnNlIHRvIGFuIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5kIGJyZWFrLgotICAg
IGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lWYWx1ZTo6
VW5zYWZlTm9uZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNhbmRib3hGbGFncygp
ICE9IFNhbmRib3hOb25lKSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1ZSAhPSBDcm9zc09y
aWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9hZGVyKCktPmVmZmVj
dGl2ZVNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAgIGNhbmNlbE1haW5S
ZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRDb29wRW5mb3JjZW1l
bnRSZXN1bHQgPSBlbmZvcmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBvbGljeShyZXNwb25z
ZS51cmwoKSwgcmVzcG9uc2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAgaWYgKG1fY3VycmVu
dENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCkK
LSAgICAgICAgZnJhbWVMb2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0c0dyb3VwKCk7Ci0K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IENvbXBsZXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVu
ZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1cm47Ci0KICAgICAv
LyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBkaXNw
YXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFyOi8v
cHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0UoQ0YpCkBAIC0xMDQy
LDExICsxMDM2LDE5IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgfQogI2VuZGlmCiAK
KyAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2Up
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZShtX2lzQ29udGludWlu
Z0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAgICAgICBjb250aW51
ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5SZXNvdXJjZUxvYWRl
ciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWluUmVzb3VyY2VMb2Fk
ZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNSZXNwb25zZVBvbGlj
eUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGljeUNoZWNrSWRlbnRp
Zmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1f
cmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5SZXNvdXJjZUxvYWRl
ciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJl
cXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNlTG9hZGVyKSwK
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxl
YXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJZGVudGlmaWVy
KSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CkBAIC0yMDA4
LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQogICAg
IFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwiIDogZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUobV9yZXF1ZXN0
LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAgICBtX3Jlc3Bv
bnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBlLCAwLCAiVVRG
LTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLmNvbW1pdHRl
ZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigpLT5zdGF0ZU1h
Y2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAgICAgICBkb0Ny
b3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwogCisgICAgICAg
IC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1c2UgYSBicm93
c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlzIHN5bmNocm9u
b3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBwb2xpY3kgZGVj
aXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRleHQgZ3JvdXAg
c3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAgICAgaWYgKG1f
Y3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3
aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dzaW5nQ29udGV4dHNH
cm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAgIHJldHVybiB0cnVl
OwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWlu
UmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51bGxwdHI7CisgICAg
bV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0gZmFsc2U7CiAKICAg
ICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQwNmM1ZDc2NDg3NmFh
ZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3NjZiM2UwMmNlYjJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNDI1LDYgKzQyNSw5
IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNyb3NzT3JpZ2luT3Bl
bmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0
ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdpbk9wZW5lclBvbGlj
eSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9vbCBpc0NvbnRpbnVp
bmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRp
bnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9pZCBzZXRJc0NvbnRp
bnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250aW51aW5nTG9hZEFm
dGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNl
UG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9
CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlcihjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBAIC01NjEsNiArNTY0
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTG9hZGluZ011
bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0
ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJWE1FOiBEb2N1bWVu
dDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6bV93YXNPbmxvYWRE
aXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNob3VsZCBiZSBtZXJn
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDhkY2E3NWI5NDA3
OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMzMWE2NWNhMzQxYWM3
MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBA
IC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNo
b3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2YTZmZTViMDM2ZGYw
N2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0MGI5ODg0ZWFhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lG
dW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYsIFBv
bGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9p
ZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJhZTA2ZDAzZGYyNDZk
YS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZENo
ZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91bGRDaGVja05ld1dp
bmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRDaGVja05ld1dpbmRv
d1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3k7IH0K
IAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJvb2wgdmFsdWUpIHsg
bV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZChT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKSB7
IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEoKSBjb25zdCB7
IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJzdGl0dXRlRGF0YShj
b25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRhID0gZGF0YTsgfQpA
QCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5
IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsgZmFs
c2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vIH07CiAgICAgTG9j
a0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9OwogICAgIExvY2tCYWNr
Rm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsgUmVmZXJyZXJQb2xp
Y3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4zOTA4ZjhiMDFjYWEz
NmNmYTAxMTU0NjViYTZkYjM4ZDZlZWRmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXREZWZlcnNM
b2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBm
dW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVudFBvbGljeURlY2lz
aW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURvY3VtZW50TG9hZGVy
KCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIsNyArNDIyLDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhNRTogVmFsaWRhdGUg
dGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVl
c3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1
dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3Qo
KSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxvYWRBdHRyaWJ1dGUo
KSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShmdW5jdGlvbikpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZlbnQsIGNvbnN0IFJl
ZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFsPE5ld0ZyYW1lT3Bl
bmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0luZm8sIHN0ZDo6b3B0
aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
CkBAIC0xNDcwLDEwICsxNDcwLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2Fk
UmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBtX2Ns
aWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVx
dWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKICAgICBsb2FkZXItPnNldEFsbG93c1dlYkFyY2hpdmVG
b3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKSk7CiAg
ICAgbG9hZGVyLT5zZXRBbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZShyZXF1ZXN0LmlzUmVxdWVz
dEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKKyAgICBsb2FkZXItPnNldElzQ29udGludWluZ0xv
YWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2socmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQoKSA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQ
b2xpY3lEZWNpc2lvbik7CiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQobG9h
ZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRv
TmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsKIAotICAgIGlmIChy
ZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpKSB7CisgICAgaWYgKHJlcXVlc3Qu
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObykgewogICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeShyZXF1ZXN0LmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpKTsKICAgICAgICAg
aWYgKHJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IExvY2tCYWNrRm9yd2FyZExpc3Q6
OlllcykgewogICAgICAgICAgICAgbG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUpOwpA
QCAtMTQ4MSw3ICsxNDgyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1
ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFNldEZvclNjb3BlPExvYWRD
b250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVp
bmdTdGF0ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSA/IExvYWRDb250
aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3RhdGU6
Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNv
bnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgcmVxdWVzdC5z
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhSZXF1ZXN0IDogTG9h
ZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAgICAgbG9hZChsb2FkZXIuZ2V0KCkp
OwogfQogCkBAIC0zNzY4LDcgKzM3NjksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVy
ZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQogCiAg
ICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtu
b3duOwogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWluZ0xv
YWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMgPyBMb2FkQ29udGlu
dWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0
ZTo6Tm90Q29udGludWluZyk7CisgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4g
Y29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/
IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoSGlzdG9yeUl0ZW0gOiBMb2FkQ29u
dGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKIAogICAgIGlmIChDYWNoZWRQYWdlKiBjYWNo
ZWRQYWdlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUu
cGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+ZG9j
dW1lbnRMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggNmYzYmRi
ZWZjYTM5ZmJmYzIzZjlkMTRjOWIyNzExMjI2ZGUyNGEwYi4uZTU2YzA4ZjcwMzZhNWRmYjczM2My
ZTVmNWNlZWNkODg0MjJhZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTgyLDcgKzgyLDcgQEAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBlbnVtIGNsYXNzIENhY2hlUG9s
aWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwogZW51
bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90OwotZW51bSBjbGFzcyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBVc2VkTGVnYWN5VExTIDog
Ym9vbDsKIGVudW0gY2xhc3MgSXNNYWluUmVzb3VyY2UgOiBib29sIHsgTm8sIFllcyB9OwogZW51
bSBjbGFzcyBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSA6IGJvb2wgeyBObywgWWVzIH07
CkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5n
KGJvb2wpOwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rp
b24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3Vw
U3dpdGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIAogICAgIHZvaWQgZGlk
RXhwbGljaXRPcGVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggM2ViNWNlZTY0MjZjNDRkYzE3NDIyMjE1ZmFhYjE1NjkzMWRiMmQ5ZC4uMzliYjQw
NTQwOWM0MTc0Nzg1YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBOZXdGcmFtZU9wZW5lclBvbGljeSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNo
b3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIEZyYW1lUG9saWN5
RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFBvbGljeUNoZWNr
SWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25Nb2RlLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmgKaW5kZXggNmQ1ZGU4NGYyMTc5ODg2M2JhOGVlZGU4YjY0NmZlOTQ4YTQ1
ODgyYi4uMTAzN2RmOThlYzQxNTU0YmZiMWRiNjJiODk2ODJkODM3ZmE2NTYzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xh
c3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51
bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogCiBzdHJ1Y3Qg
U3RyaW5nV2l0aERpcmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1No
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCmluZGV4IDc2ZTA5MzUwNWJjYmJlNjZkMjI0NTJk
MmY1Yjc5NWIzZDVkODUzYTQuLmFiMTM1M2JjYzA4MmU0MWJhNTg5YzljMjljMjEwODUzYTM5OTUy
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1l
bnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2wgeyBObywgWWVzIH07
CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3QgeyBObywg
WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFllc0FmdGVyUmVzcG9uc2VQb2xpY3lE
ZWNpc2lvbiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTM5LDcgKzM5LDggQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsCiAgICAgICAgIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sCi0gICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZDo6WWVzCisgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sCisgICAgICAgIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGlj
eURlY2lzaW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDg3YzliMmI1ZWY0OTQ2
YzljYmU5ODlmM2U3NzYxZjA4ZTYxZDgwZS4uOTI1NWJmMzEzYzY3ZDcxNDgxNWNmNzgxNTI2NmZm
ZDgwNWIyMmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCB1c2luZyBTaGFy
ZWRTdHJpbmdIYXNoID0gdWludDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51
bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDog
dWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsK
K2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogZW51
bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNwb25zaXZlLCBVbnJl
c3BvbnNpdmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMDYy
MDk2NDY4ZmU4N2I2OGMxOWVmMzgwNzdhMjVhOTIxZDlkNGVmZi4uZTVjNTdiMDQwNDljOGIyMGI2
YmQ2MTFjZmM4ZjZiMDFmNzhjMDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CiAKIE9CSkNf
Q0xBU1MgTlNEaWN0aW9uYXJ5OwpAQCAtNjYsNyArNjcsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFtZXRl
cnMgewogICAgIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGlj
aWVzOwogCiAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkTm90QWxsb3cgfTsKLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8gfTsKICAgICBVc2VyRGF0YSB1c2VyRGF0YTsKICAgICBXZWJDb3JlOjpM
b2NrSGlzdG9yeSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9OwogICAg
IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdlYkNv
cmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYzY1NGNiOGMxMjIxYWY4MTFmNmIw
YTczYjNlMWRmOTQzNWIyYjc2ZC4uNDFjZDM1ZGJmYThkMGUzNGJkMWViNDlmNWQ1NzRmMmMzNzAw
YmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNkZWZp
bmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coY2hhbm5lbCwgZm10LCAuLi4pIFJF
TEVBU0VfTE9HKGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFn
ZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWksIG5hdmlnYXRpb25JRD0lIiBQUkl1NjQgIl0gUHJvdmlz
aW9uYWxQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX3BhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0
KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9uYXZpZ2F0aW9uSUQsICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFBST1ZJU0lPTkFMUEFH
RVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19F
UlJPUihjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0l
IiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBt
X3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1f
bmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogCi1Qcm92aXNpb25hbFBhZ2VQcm94eTo6UHJv
dmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1c3BlbmRl
ZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpXZWJzaXRlUG9saWNp
ZXMqIHdlYnNpdGVQb2xpY2llcykKK1Byb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdl
QWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9saWNpZXMpCiAgICAg
OiBtX3BhZ2UocGFnZSkKICAgICAsIG1fd2ViUGFnZUlEKHN1c3BlbmRlZFBhZ2UgPyBzdXNwZW5k
ZWRQYWdlLT53ZWJQYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAgICwg
bV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCkBAIC02Niw2ICs2Niw3IEBAIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxX
ZWJQcm9jZXNzUHJvCiAgICAgLCBtX2lzU2VydmVyUmVkaXJlY3QoaXNTZXJ2ZXJSZWRpcmVjdCkK
ICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50KHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCisgICAgLCBtX3Nob3VsZENsb3Nl
UHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1p
dCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9wcm92aXNpb25hbExvYWRBY3Rp
dml0eShtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eSgiUHJvdmlzaW9u
YWwgTG9hZCJfcykpCiAjZW5kaWYKQEAgLTE2MiwxNiArMTYzLDE4IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2ll
cz4mJiB3ZWJzCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZyZWV6ZUxheWVyVHJl
ZUR1ZVRvU3dpcGVBbmltYXRpb24oKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3Vu
ZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xp
Y2llcywgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlz
dG9yeVZpc2liaWxpdHkpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9u
YWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMs
IFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5KQogewogICAgIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HKFByb2Nl
c3NTd2FwcGluZywgImxvYWREYXRhOiIpOworICAgIEFTU0VSVChzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAK
LSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBi
YXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVz
KSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgbV9wYWdlLmxvYWREYXRh
V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5h
dmlnYXRpb24sIGRhdGEsIG1pbWVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwg
V1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9u
KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcykKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9j
ZXNzU3dhcHBpbmcsICJsb2FkUmVxdWVzdDoiKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8p
OwogCiAgICAgLy8gSWYgdGhpcyBpcyBhIGNsaWVudC1zaWRlIHJlZGlyZWN0IGNvbnRpbnVpbmcg
aW4gYSBuZXcgcHJvY2VzcywgdGhlbiB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBvdmVyd3JpdGUgdGhl
IGZyb21JdGVtJ3MgVVJMLiBJbiB0aGlzIGNhc2UsCiAgICAgLy8gd2UgbmVlZCB0byBtYWtlIHN1
cmUgd2UgdXBkYXRlIGZyb21JdGVtJ3MgcHJvY2Vzc0lkZW50aWZpZXIgYXMgd2Ugd2FudCBmdXR1
cmUgbmF2aWdhdGlvbnMgdG8gdGhpcyBCYWNrRm9yd2FyZCBpdGVtIHRvIGhhcHBlbiBpbiB0aGUK
QEAgLTE3OSw3ICsxODIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVz
dChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJlcwogICAgIGlmIChuYXZp
Z2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCkgPT0g
V2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAgICBuYXZpZ2F0aW9uLmZy
b21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nlc3MtPmNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3Zl
KHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNp
dGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJl
cXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0K
IAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5h
dmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBAIC0xOTksNyArMjAy
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0ZVBvbGljaWVzRGF0
YSA9IHdlYnNpdGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1vdmUoaXRlbVN0YXRl
cykpKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5h
dmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZpZ2F0aW9uLmJhY2tG
b3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQo
KSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCks
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKICAgICBtX3By
b2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0yMjcsOCArMjMwLDkg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBSZXN0b3JlIHRoZSBt
YWluIGZyYW1lJ3MgY29tbWl0dGVkIFVSTCBhcyBzb21lIGNsaWVudHMgbWF5IHJlbHkgb24gaXQg
dW50aWwgdGhlIG5leHQgbG9hZCBpcyBjb21taXR0ZWQuCi0gICAgaWYgKGF1dG8qIG1haW5GcmFt
ZSA9IG1fcGFnZS5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0
YXRlKCkuc2V0VVJMKG1haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS51cmwoKSk7CisgICAgUmVm
UHRyIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpOworICAgIGlmIChwcmV2
aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuc2V0
VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBOb3JtYWxseSwgbm90aWZp
Y2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdlYkNvbnRlbnQgcHJv
Y2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiByZXNwb25zZSB0byBh
IHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwgbm90IGNvbWUgZnJv
bSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsyNDAsMTAgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAgICAgICAgbV9tYWluRnJh
bWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExvYWQobV9yZXF1ZXN0LnVy
bCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fbWFpbkZyYW1lLT5m
cmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVzdCksIHsgfSk7CisgICAg
fSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNNYWluRnJhbWUtPnByb3Zp
c2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNhc2Ugb2YgYSBwcm9jZXNz
IHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQg
YWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRvZXNuJ3Qga25vdyBhYm91
dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28gaXQgY2FuIHVwZGF0ZSBp
dHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+ZGlkU3RhcnRQcm92aXNp
b25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkpOwogICAgIH0KIH0K
IApAQCAtMzIyLDEzICszMzAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllcgogICAgIG1fcGFn
ZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92
ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVl
c3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGly
ZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5k
bGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1
dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQ
YWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlv
bklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0
ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RG
TW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNBbGxvd2VkQnlJbmpl
Y3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgbGlzdGVuZXJJRCwg
dXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggYTdmYjY2YTZk
YWE3MzdjOTA2MDkwN2MwODk2ZjBjYmM5NGViMzgwZS4uMjcxNGIyYTViNTQ3ZjI2NjdmY2I0NmZj
ZWYxYjU3ODRmYmNmNTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEZvcm1EYXRhUmVmZXJlbmNl
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IEJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzEsNyArNzIs
NyBAQCB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKIGNsYXNzIFByb3Zp
c2lvbmFsUGFnZVByb3h5IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgSVBD
OjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKik7CisgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNob3Vs
ZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKik7CiAg
ICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2U7IH0KQEAgLTgyLDYgKzgzLDggQEAgcHVibGljOgogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAg
ICAgY29uc3QgVVJMJiBwcm92aXNpb25hbFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9u
YWxMb2FkVVJMOyB9CiAKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21t
aXQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQ7
IH0KKwogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgY29uc3QgeyByZXR1cm4g
bV9kcmF3aW5nQXJlYS5nZXQoKTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVBy
b3h5PiB0YWtlRHJhd2luZ0FyZWEoKTsKIApAQCAtMTAxLDggKzEwNCw4IEBAIHB1YmxpYzoKICNl
bmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lv
bkhpc3RvcnlWaXNpYmlsaXR5KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlv
biYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0
ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOworICAgIHZvaWQgbG9hZERhdGEo
QVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNl
c3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5hdmln
YXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYgPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRyPEFQSTo6V2Vic2l0
ZVBvbGljaWVzPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCkBAIC0xMjAsMTEgKzEyMyw4IEBA
IHByaXZhdGU6CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYs
IE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmKSBmaW5hbDsK
IAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
RnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAotICAgICAgICBzdGQ6Om9wdGlv
bmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKLSAgICAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOworICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJv
b2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEm
KTsKQEAgLTEzOSw5ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5RnJvbVdlYlByb2Nlc3MoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsK
ICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsK
ICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0Zvcndh
cmRMaXN0Q291bnRzJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBGcmFt
ZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2lu
YXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBz
dGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9pZCBy
ZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwog
I2VuZGlmCkBAIC0xNzEsNiArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgbV9w
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OwogICAgIGJvb2wgbV93YXNDb21taXR0ZWQgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0IHsg
ZmFsc2UgfTsKICAgICBVUkwgbV9wcm92aXNpb25hbExvYWRVUkw7CiAKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFjOWE3
NzQ4ZjNlMGQ3MmMzN2ZmODRkNGI4NDBmMGI1ZTdmOTQ3NWIuLjExNjE4MDBhZGJmODg1NGNiOTc0
Mjg1ODUzMzg4ODI5MjRiY2ZiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTM5MCw3ICsxMzkwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1
ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKICAg
ICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgaWYgKHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcykKKyAgICBpZiAoc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6
Tm8pCiAgICAgICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdCh0cmFuc2Fj
dGlvbiwgeyBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCB1cmwuc3RyaW5nKCkgfSk7CiAKICAg
ICBMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKQEAgLTEzOTgsNyArMTM5OCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMu
dXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVz
ZXJEYXRhKS5nZXQoKSk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1ldGVy
cy53ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBh
cmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLmxvY2tIaXN0b3J5KCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3
YXJkTGlzdCgpOwpAQCAtMTUyNSw3ICsxNTI1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAog
ICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAgbG9hZFBhcmFtZXRl
cnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7CiAgICAgbG9hZFBhcmFtZXRlcnMuYmFzZVVSTFN0
cmluZyA9IGJhc2VVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBsb2FkUGFyYW1ldGVy
cy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMo
dXNlckRhdGEpLmdldCgpKTsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMgPSBX
VEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CkBAIC0xNTc4
LDcgKzE1NzgsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRT
aW11bGF0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0ZXJz
LmVuY29kaW5nTmFtZSA9IHNpbXVsYXRlZFJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKICAgICBsb2FkUGFyYW1l
dGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gZmFsc2U7CisgICAgbG9hZFBhcmFtZXRlcnMuc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
bzsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24tPmxvY2tIaXN0
b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRp
b24tPmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkoKTsKQEAgLTM1MTgsNyArMzUxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNl
aXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
CiAgICAgICAgICAgICBpZiAoc3VzcGVuZGVkUGFnZSAmJiBzdXNwZW5kZWRQYWdlLT5wYWdlSXND
bG9zZWRPckNsb3NpbmcoKSkKICAgICAgICAgICAgICAgICBzdXNwZW5kZWRQYWdlID0gbnVsbHB0
cjsKIAotICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRp
b24sIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24p
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVzLCBu
dWxscHRyKSk7CisgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2
aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9jZXNzRm9yTmF2aWdh
dGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0ZDo6ZXhjaGFuZ2Uo
cG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGF1dG8g
aXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0o
KSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlmIChwb2xpY3lBY3Rp
b24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtMzYwNSw3ICszNjA1LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKIAogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93
ZWJQYWdlSUQpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZp
Z2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7Ci0gICAgYm9vbCBkaWRT
dXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiA/IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9z
c2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1fcHJvdmlz
aW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERlbGF5Q2xv
c2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOworICAgIGJvb2wgZGlkU3VzcGVuZFBy
ZXZpb3VzUGFnZSA9IG5hdmlnYXRpb24gJiYgIW1fcHJvdmlzaW9uYWxQYWdlLT5zaG91bGRDbG9z
ZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxl
KCpuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lvbmFs
UGFnZS0+cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3NpbmdV
bnRpbEZpcnN0TGF5ZXJGbHVzaCkgOiBmYWxzZTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBh
Z2UoKnRoaXMsIG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSA9PSAmbV9wcm92aXNpb25hbFBhZ2Ut
PnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0b3JlKCkgPyBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2lu
Z0RhdGFTdG9yZTo6Tm8gOiBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVz
KTsKIAogICAgIC8vIFRoZXJlIGlzIG5vIHdheSB3ZSdsbCBiZSBhYmxlIHRvIHJldHVybiB0byB0
aGUgcGFnZSBpbiB0aGUgcHJldmlvdXMgcGFnZSBzbyBjbG9zZSBpdC4KQEAgLTM2MjAsMTEgKzM2
MjAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICBtX2luc3BlY3RvckNvbnRyb2xs
ZXItPmRpZENvbW1pdFByb3Zpc2lvbmFsUGFnZShvbGRXZWJQYWdlSUQsIG1fd2ViUGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdl
UHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9jZXNz
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lk
IFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdh
dGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiBz
dXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nlc3MsIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgUmVmUHRy
PEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXRUJQQUdF
UFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vz
czogbmV3UHJvY2Vzc1BJRD0laSwgaGFzU3VzcGVuZGVkUGFnZT0laSIsIG5ld1Byb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksICEhc3VzcGVuZGVkUGFnZSk7CiAgICAgTE9HKExvYWRpbmcsICJD
b250aW51aW5nIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgJyVzJyBpbiBhIG5ldyB3ZWIgcHJvY2Vz
cyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1N0cmluZygp
KTsKICAgICBSRUxFQVNFX0FTU0VSVCghbmV3UHJvY2Vzcy0+aXNJblByb2Nlc3NDYWNoZSgpKTsK
KyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6Tm8pOwogCiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlKSB7CiAgICAg
ICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nIHByb3Zpc2lv
bmFsIGxvYWQsIGNhbmNlbGxpbmcgaXQgKHByb3Zpc29uYWxOYXZpZ2F0aW9uSUQ9JWxsdSwgbmF2
aWdhdGlvbklEPSVsbHUpIiwgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpLCBuYXZp
Z2F0aW9uLm5hdmlnYXRpb25JRCgpKTsKQEAgLTM2MzMsOSArMzYzNCwxMCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG51bGxwdHI7CiAgICAg
fQogCi0gICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zpc2lvbmFsUGFnZVBy
b3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwg
bmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdElzUmVk
aXJlY3QoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwotCi0gICAgYXV0byBjb250aW51YXRp
b24gPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0g
bWFrZVJlZihuYXZpZ2F0aW9uKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpXSgpIG11dGFibGUgeworICAgIGJvb2wgaXNTZXJ2ZXJTaWRlUmVkaXJlY3QgPSBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBuYXZpZ2F0aW9uLmN1cnJlbnRSZXF1
ZXN0SXNSZWRpcmVjdCgpOworICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNv
bW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbjsKKyAgICBtX3Byb3Zpc2lv
bmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0aGlzLCBXVEZNb3Zl
KG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0aW9uLm5hdmlnYXRp
b25JRCgpLCBpc1NlcnZlclNpZGVSZWRpcmVjdCwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgp
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFm
dGVyQ29tbWl0LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOworICAgIGF1dG8gY29udGludWF0aW9u
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1h
a2VSZWYobmF2aWdhdGlvbiksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgd2Vic2l0ZVBv
bGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUgewogICAgICAgICBp
ZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKSkgewogICAgICAgICAgICAg
TE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51dGY4KCkuZGF0YSgp
KTsKIApAQCAtMzY1OSw5ICszNjYxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2
aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAgICAg
ICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhlIGxhc3Qg
cG9saWN5IGRlbGVnYXRlLCBldGMKICAgICAgICAgQVNTRVJUKCFuYXZpZ2F0aW9uLT5jdXJyZW50
UmVxdWVzdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIGlmIChhdXRvJiBzdWJzdGl0dXRlRGF0YSA9
IG5hdmlnYXRpb24tPnN1YnN0aXR1dGVEYXRhKCkpCi0gICAgICAgICAgICBtX3Byb3Zpc2lvbmFs
UGFnZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRh
KCksIHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlN
RVR5cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkws
IHN1YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0dXRlRGF0YS0+c2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5s
b2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LmRhdGEoKSwgc3Vi
c3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlwZSwg
c3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vic3Rp
dHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRh
KSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVzdChuYXZpZ2F0aW9u
LCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpIH0sIG51bGxw
dHIsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNp
ZXNEYXRhKSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2
aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9
LCBudWxscHRyLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSk7CiAgICAgfTsKICAg
ICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyLT5zaG91bGRQYXVzZUxvYWRpbmcoKm1fcHJvdmlz
aW9uYWxQYWdlKSkKICAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5zZXRDb250aW51ZUxv
YWRpbmdDYWxsYmFjaygqbV9wcm92aXNpb25hbFBhZ2UsIFdURk1vdmUoY29udGludWF0aW9uKSk7
CkBAIC01NjE0LDEzICs1NjE2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lCiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9v
bCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUo
ZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwg
Y2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEp
OworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5h
dmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRB
dHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4
dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjMzLDcgKzU2MzUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRp
b24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0
aW9uSUQpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25zZSA9IEFQSTo6TmF2
aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZy
YW1lSW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2FuU2hvd01JTUVUeXBl
LCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFt
ZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2
aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5lciA9IG1ha2VS
ZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3Zl
KG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVzcG9uc2VdIChQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNh
ZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikg
bXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5v
KTsKQEAgLTU2NDIsOSArNTY0NCwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgICAg
ICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwg
W3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vz
cyldIChjb25zdCBhdXRvJiBwb2xpY3lEZWNpc2lvbikgewogICAgICAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQs
IGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRi
b3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlEKTsKICAgICAgICAgfSk7CisKKyAgICAg
ICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZElu
TmV3UHJvY2Vzczo6Tm87CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9u
OjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBuYXZpZ2F0aW9uKSB7
CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFpbiB7IG5hdmlnYXRp
b25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAgLy8gQXZvaWQgcHJv
Y2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5IGNvbnRhaW5zIGEg
c2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAgIGlmICh0aGlzLT5w
cm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdp
c3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxSZWdpc3RyYWJsZURv
bWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAgIFdFQlBBR0VQUk9Y
WV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFBy
b2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAg
ICAgICAgICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAgICAg
ICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0aGlz
LCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0
aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsKKyAg
ICAgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVl
TG9hZEluTmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAg
IAotICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlv
bi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNl
bmRlcikpOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2
aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZN
b3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAgfSwg
U2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91bmRE
b21haW5SZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUp
IHsKKyAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dN
SU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09i
amVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFmMjU2ZWZiNjI1ZmY4MDA2OTNjNTgzN2E4NDEx
Yzk1MjNjZGRiZTEuLjI2YjgwNmMzNmJhZmNkNzI5MzE3NjQ2YzlmZjZkZWY2YjlkMTMyN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzAsNyArMjcwLDcgQEAg
ZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBS
b3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rp
b24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGlyZWN0
aW9uIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmln
aW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZv
RGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJh
bWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0
aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwg
Y29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAg
dm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA2MCw3ICsy
MDYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0
dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2Miw3ICsyNDYyLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3Mo
QVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVm
UHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVk
UGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxB
UEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJpYnV0
ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3RhdGVD
aGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA1ZjQ5MGI4ZjUzZWM0ZjBhOGUxZTY4MTE4OTVhYmE0N2ZmMjA4NWZhLi5i
ODgwM2NkNTIyMmI2YTcwODRmYTJlNzIyMDI3Nzc0YjVmZTA2NTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kg
bWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJp
bmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
U3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxl
LCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1
Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0
UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0OjpQ
b2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYuLmE0
MGU2OWRmYTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFp
biA/ICptX3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lzdHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsg
fSk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
PiYgb3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFi
bGVEb21haW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAgYm9v
bCBpc0luUHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hlOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYzNDM0MTkzYjE0NWRiMDRj
MWM0YWFhMDIxNWQ5ZDkxZTdmZGVkMDcuLjQ5NGQ5ZTUwMTQ5ZGI1YWE0Mjc3MWIxYjJmY2VjZjRh
YTU3ODgyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcgKzUy
OSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNp
b25hbExvYWQoKQogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFtZSwgdXNlckRhdGEp
OwogICAgIFJlZlB0ciBwcm92aXNpb25hbExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50
TG9hZGVyKj4obV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIoKSk7CiAKLSAgICBpZiAoIXByb3Zpc2lvbmFsTG9hZGVyKQorICAgIGlmICghcHJv
dmlzaW9uYWxMb2FkZXIgfHwgcHJvdmlzaW9uYWxMb2FkZXItPmlzQ29udGludWluZ0xvYWRBZnRl
clJlc3BvbnNlUG9saWN5Q2hlY2soKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGF1dG8m
IHVybCA9IHByb3Zpc2lvbmFsTG9hZGVyLT51cmwoKTsKQEAgLTgxNiw3ICs4MTYsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNob3co
KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24p
CiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBh
Z2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAgICAg
Ly8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlv
biBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1ZXN0
LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25V
c2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwg
d2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0
byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBpbmpl
Y3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgorICAg
IGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dz
aW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JF
TEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250
aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rp
b24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBAIC04
NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9saWN5
RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zpc2lv
bmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQgPSBw
b2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4oKnBv
bGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdhc0Fs
bG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlv
blVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVpbnQ2
NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIs
IFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwot
ICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNlLCBk
b3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkp
IHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25z
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5n
ZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3
b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVzZSBX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAgICBt
X2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNp
b24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7
IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFhM2E4
NjAxNzU3MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2YzY0
ZjQxMWRiZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0x
MjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFt
ZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAg
ICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdl
YkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2Vs
UG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggY2JmOWYzNmFhNDYyMGM5ZGU2NGVjOGE2ZjgwZmUzM2FiNmI3ODQ3
ZC4uY2ZiZTU0ZjAyNjM0MjA5ZThhMzEyYWQ1ZWQwOWM3MjY5MDNhZWYwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcyMyw3
IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nlc3NM
YXVuY2goTG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlv
bklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBz
aGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2Um
JiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNp
YmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2FkRGF0
YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1ZmZl
ciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
LCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHN0
ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5T
KQogICAgIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMTdlMTg5MzVmYWUxMTZiNDY2MmUyNjQwNmJhZGY0
Zjg3NWYxODI0Li4xZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1ZDdmZGE4ODUzYjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjcsNyArMjI3
LDcgQEAgZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51bSBjbGFz
cyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxpZ2h0
UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVj
dGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6
IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhf
dDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVudW0gY2xhc3MgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTc1LDcgKzE1NzUsNyBAQCBw
cml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1lKik7CiAKLSAgICB2
b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFJl
ZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3Qg
VXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgV2Vi
Q29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgV2ViQ29yZTo6
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1dGVE
YXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MzYxZDU3ZGE4MDMzY2U0
NTA5MGU5YzZmNWJmNmE1YTE4OTE4NDYuLmEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFjMjQ5
MjU1OWQ0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBz
Y3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAot
ICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2Vi
Q29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1
aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNp
dGVQb2xpY2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJ
dGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlw
ZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9s
aWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCAxNTJmZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4wNTE2MjcwMDlhNjZl
MTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRj
aENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5l
d0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFs
OwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwg
Y29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3Rh
dGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lk
IGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IGJmZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQuLjBjZmJlZWUwNDQ3
ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdTaG93
OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1l
UG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0
V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFkMGEuLmM1YWZhMTMz
N2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJv
b2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYm
IGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3
KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2NWFlOTQyYzI5Yjg5
NmQ4Li42MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNo
TGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9y
bVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTZmOWU3NWE5YTAzNTk3
YjI5M2MzYWE0OTM4M2RiZWZlODljZGZkYy4uZWQ3NGJlMWY0YThlNDM3NzNiZWM2ZTY1ODBlNWFj
NmU0N2FjN2RmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFz
ZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgdG8gdmFsaWRhdGUgdGhhdCB3
ZSBhcmUgaW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAo
LVtQU09OU2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZhbHVl
Ol0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0p
OgorCiAyMDIxLTA4LTIzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFBDTTogU3VwcG9ydCBlcGhlbWVyYWwgbWVhc3VyZW1lbnQgd2l0aCBub24tcGVyc2lz
dGVudCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KaW5kZXggZjliOGRhZjY5ZjQ0NzQyNzk1ZmQ4ZjkxNmM2ZjZmODViNDBlNDg2
MS4uMjI0Yzk0MmU4N2M3NGU0NjU0NzIyMGQ4ZjRiNTg1NGE0YTE2ODVmZiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNTAsMTIgKzI1MCwxNCBAQCBAaW50ZXJmYWNlIFBT
T05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAgICAgY29uc3QgY2hh
ciogX2J5dGVzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7CiAgICAg
SGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBpbmdzOworICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJM
U2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5j
aHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIq
KWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291
cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5n
OwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcg
dG9EYXRhOihjb25zdCBjaGFyKilkYXRhOworLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmlu
ZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09Q
VmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBT
T05TY2hlbWUKQEAgLTI3Nyw2ICsyNzksMTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0
cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAg
X2RhdGFNYXBwaW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6
KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAor
LSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9E
YXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1
ZQoreworICAgIFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6
ZGF0YV07CisgICAgaWYgKGNvb3BWYWx1ZSkKKyAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0
cmluZywgY29vcFZhbHVlKTsKK30KKwogLSAodm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9u
b3VzbHk6KEJPT0wpdmFsdWUKIHsKICAgICBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5ID0g
dmFsdWU7CkBAIC0zMTEsOCArMzIwLDE1IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAg
ICAgIFsoaWQ8V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0
aW9uOnJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAg
ICB9CiAKLSAgICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW2ZpbmFsVVJMID0gcmV0YWlu
UHRyKGZpbmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgewotICAgICAgICBSZXRh
aW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBh
bGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4
cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgZG9Bc3lu
Y2hyb25vdXNseUlmTmVjZXNzYXJ5KFtzZWxmLCBmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVS
TCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnld
OworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ0ZXh0L2h0bWwiIGZvcktl
eTpAIkNvbnRlbnQtVHlwZSJdOworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6
QCIxIiBmb3JLZXk6QCJDb250ZW50LUxlbmd0aCJdOworICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9
IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYg
KCFjb29wVmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0
T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSJdOworCisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJM
UmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAw
IEhUVFBWZXJzaW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7
CiAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAgICAg
fSwgMC4xKTsKIApAQCAtNDA5LDggKzQyNSw2IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdw
YWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwog
Ci0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0aWMgY29uc3QgY2hhciogd2luZG93T3BlbkNyb3Nz
U2l0ZU5vT3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpAQCAtNDg4LDYgKzUwMiw3IEBAIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNPVVJDRSI7CiAKKyNpZiBQTEFURk9S
TShNQUMpCiBzdGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05S
RVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBm
dW5jdGlvbihldmVudCkgewpAQCAtNDk3LDggKzUxMiw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0
TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5OYXZpZ2F0ZTwvYT4K
IClQU09OUkVTT1VSQ0UiOwotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2VuZGlmCiAKIHN0
YXRpYyBSZXRhaW5QdHI8X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBwc29uUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uKCkKIHsKQEAgLTExOTcsOCArMTIxMSw2IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXNzaW9uUmVzdG9yZSkKICAgICBFWFBFQ1RfTkUocGlk
MywgcGlkNCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIENy
b3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTEyMDYsNiArMTIx
OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAog
ICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9j
ZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwog
ICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVz
XTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVy
LmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyNDUsNiArMTI1OCw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAK
ICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsK
ICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwog
ICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkJ1dFNhbWVTaXRlTm9P
cGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI4NSw2ICsx
Mjk5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIp
CiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0
UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlF
UzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0p
OwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVXaXRoT3BlbmVyVGVz
dEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpo
YW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEzMjQsNiArMTMzOSw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0
byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29s
OnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0
byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6d2lu
ZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdKTsKICAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBT
T04iXTsKIApAQCAtMTM2Miw2ICsxMzc4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRl
QmxhbmtUYXJnZXRXaXRoT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BT
T05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFu
a0Nyb3NzU2l0ZVdpdGhFeHBsaWNpdE9wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6
QCJQU09OIl07CkBAIC0xNDAxLDYgKzE0MTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1Np
dGVCbGFua1RhcmdldEltcGxpY2l0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdG
cm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRh
cmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEltcGxpY2l0Tm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3
ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQ0MCw2ICsxNDU4LDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5n
ZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFk
b3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6
dGFyZ2V0QmxhbmtDcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6
QCJQU09OIl07CkBAIC0xNDc5LDYgKzE0OTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0
ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNP
TlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5r
U2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNl
dFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBA
IC0xNTExLDggKzE1MzEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0
Tm9PcGVuZXIpCiAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwogfQogCi0jZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdEZyb21OZXdXZWJW
aWV3KQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTA5NCw4ICs1MTEyLDYgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTG9hZGluZ1N0YXRlQWZ0ZXJQb2xpY3lEZWNpc2lvbikKICAgICBbd2ViVmlldyByZW1vdmVP
YnNlcnZlcjpsb2FkT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIlVSTCIgY29udGV4dDp3ZWJW
aWV3LmdldCgpXTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIq
IHNhdmVPcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC01MTA3LDYgKzUxMjMsOCBAQCB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250
cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZXIpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOworCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHRO
UyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJv
bVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2lu
ZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVu
ZXJUZXN0Qnl0ZXNdOwpAQCAtNTE4MCw2ICs1MTk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3Bl
bmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogVEVTVChQ
cm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09m
T3BlbmVlKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVy
VGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4K
ICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6c2F2ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MjM1LDgg
KzUyNTQsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVk
UHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZWUpCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCi0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQotCiBlbnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CiBz
dGF0aWMgdm9pZCBydW5Qcm9jZXNzU3dhcER1ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5TVVJMKiBy
ZWxhdGVkVmlld1VSTCwgTlNVUkwqIHRhcmdldFVSTCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQog
ewpAQCAtNzE1MSwzICs3MTY4LDIzMyBAQCBURVNUKFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVu
RW50ZXJpbmdDYWNoZSkKICAgICAvLyBDbGVhciB0aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0
aGUgcHJvY2Vzc2VzIGFyZSBiZWluZyBjaGVja2VkIGZvciByZXNwb25zaXZlbmVzcy4KICAgICBb
cHJvY2Vzc1Bvb2wgX2NsZWFyV2ViUHJvY2Vzc0NhY2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNo
YXIqIHdpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgK
KzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5v
cGVuKCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3Jp
cHQ+CispUFNPTlJFU09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1l
T3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAi
Zm9vIik7Cit9Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2Ft
ZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGly
ZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRl
c3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJ
c1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNp
ZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1
dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOworICAgIGZv
ciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhw
ZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRv
U3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAgICAg
IFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxv
Y10gaW5pdF0pOworICAgIGlmIChpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsK
KyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5
dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVS
ZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFu
ZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9w
dXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXIt
cmVkaXJlY3QuaHRtbCJdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIg
dG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFs
dWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9IGVsc2UgeworICAgICAgICBbaGFuZGxlciBhZGRN
YXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRv
RGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291
cmNlQ09PUF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAg
ICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBs
ZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BW
YWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5k
bGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAu
aHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAg
IH0KKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVy
LmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1
dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKKworICAgIF9fYmxvY2sgdW5zaWduZWQgbnVtYmVyT2ZQcm92aXNpb25h
bExvYWRzID0gMDsKKyAgICBuYXZpZ2F0aW9uRGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxO
YXZpZ2F0aW9uSGFuZGxlciA9IF57CisgICAgICAgICsrbnVtYmVyT2ZQcm92aXNpb25hbExvYWRz
OworICAgIH07CisKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTlVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CisgICAgbnVtYmVyT2ZEZWNpZGVQ
b2xpY3lDYWxscyA9IDA7CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAg
ZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKworICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6WWVzKSB7CisgICAgICAgIEVYUEVDVF9FUSgzLCBudW1iZXJPZkRlY2lkZVBvbGlj
eUNhbGxzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwor
ICAgICAgICBFWFBFQ1RfRkFMU0Uoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfQorICAgIEVYUEVD
VF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzKTsgLy8gT25lIGluIGVhY2ggdmlldy4K
KworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX1RSVUUoISFwaWQxKTsKKyAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOworCisgICAgaWYg
KGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwg
cGlkMik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBi
b29sIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAIncuY2xvc2VkID8gJ3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRs
ZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAq
aXNDbG9zZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09
IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBp
c0Nsb3NlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZh
bHNlIiwgaXNDbG9zZWQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2Ny
aXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJl
c3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAo
TlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6
Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykKKyAgICAgICAgICAgIEVY
UEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsKKyAgICAgICAgZmluaXNoZWRS
dW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICAvLyBPcGVuZWUgc2hvdWxkIG5vdCBo
YXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFs
c2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVu
ZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNPcGVuZXIgPSAoTlNTdHJp
bmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaGFzT3BlbmVyKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7
CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlz
aGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2luZG93TmFtZSA9IChOU1N0
cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVz
KQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOwor
ICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIGZpbmlz
aGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaW5uZXJU
ZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwb3B1
cCIsIGlubmVyVGV4dCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQpOworCisgICAgY3JlYXRlZFdlYlZpZXcgPSBudWxscHRyOworfQorCitURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQorewor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6
WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBF
eHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJT
aWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7Cisg
ICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJv
bUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46
OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RF
U1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9D
T09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdp
biIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGlu
Z1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0
KQoreworICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24n
dCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRl
UmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKK3sKKyAgICBydW5D
T09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAg
cnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4y
KQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3Jp
Z2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5G
cm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6
Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdD
cm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1Nl
cnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2Ft
ZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46
Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVT
VChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxs
b3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxs
b3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVS
ZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApp
bmRleCAxZGVjZjMwNzNhYWYzMTQ1YjFkOWI5NzI1YjVjZDViZTNhMjc3MmU0Li41MzcxNThkNTMz
MjBkN2QwM2EzNjM0OTgwYTlhNmNlODhmY2M0ZDUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CkBAIC02MzQsNiArNjM0LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlCiAgICAgaWYgKCFp
bmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8v
IFdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiByZXNvdXJjZSByZXNwb25zZSwgdGhlIHByZXZpb3Vz
IHByb2Nlc3MncyBsb2FkIGdldHMgaW50ZXJydXB0ZWQgYnkgcG9saWN5IGRlY2lzaW9uCisgICAg
Ly8gYnV0IHdlIGRvbid0IHdhbnQgdG8gaW50ZXJydXB0IHRoZSB0ZXN0LgorICAgIGlmIChXS0Vy
cm9yR2V0RXJyb3JDb2RlKGVycm9yKSA9PSBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRl
ZEJ5UG9saWN5Q2hhbmdlICYmICFpbmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgewogICAgICAgICBkdW1wTG9hZEV2ZW50KGZyYW1l
LCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvciIpOwogICAgICAgICBhdXRvIGNvZGUg
PSBXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZGViYTA3OTZhYzNiZmM4NDY2
ZTdmMTgyYzNkN2E3MGJhMmFlZjZmLi5iMWEzMTllMmU1YWJkNmQyYmVjNzRjYTE4ZmU5ZThiNDc0
MDkzZDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2Fw
cGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgIFNraXAgQ09PUCB0ZXN0cyBvbiBXSzEgYXMgd2Ugb25s
eSBoYXZlIGEgd29ya2luZyBpbXBsZW1lbnRhdGlvbiBmb3IgV0syLgorCisgICAgICAgICogcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA4LTI0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyODEzMDUpIFtHU3RyZWFtZXJd
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLWZyYW1lLXJhdGUuaHRtbCB0aW1lb3V0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjI3NzgyNGI4ZjAzMjRiOWU3ZjQ4
MzA5MWJjZjBiZjRiNjkyOTUxZC4uMTkzZWQ2NGQzNmRhNTE4YjA4MmU2OTdjN2M2YTFlMWZmNDdi
MGRiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMDgtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBJbXBsZW1lbnQgcHJvY2Vzcy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSBIVFRQIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI5MjAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1pbm9yIHRl
c3QgcmViYXNlbGluZSBkdWUgdG8gbG9nZ2luZyBjaGFuZ2VzLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBv
cHVwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wOC0yNCAgVGltIE5ndXllbiAgPG50aW1A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgY2FuY2VsIGRpYWxvZyB0YXNrIHRvIGBkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXJgLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
ZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29l
cC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NmZiZDZlMWY3YmM3ODgzOWYz
YWM0N2UyYjk1ZmY0NzU0MTQ2Njc2Li4wMzIzYTUxZDZjNTAzNzgwN2FiMjkyYmM2YmViNDM5ZTc2
OGIzZWMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2EKIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
IENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENy
b3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNT
QUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24v
YmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdF
OiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5o
dG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291
cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCi1DT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBj
YW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVw
OiB3aW5kb3cub3BlbigpCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGI3Njlk
M2QxMjk0Y2Q1Nzg1NGMxOTU3ZmEzZTEwODE1NTFiZjkwZS4uM2ExYmQ1NjE0MGQ3NjBkNDRhM2Y2
MWY5NjE1MjcxNzFiNTVlYzUyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUzLDggKzM1Myw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY29udGVudC1zZWN1cml0eS1wb2xpY3kvd29ya2VyLXNyYy9zZXJ2aWNlLXdv
cmtlCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rl
c3RpbmF0aW9uIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3kgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvcmFuZ2Uvc3cuaHR0cHMud2luZG93Lmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3LWZyb20tY29vcC5odHRwcy5odG1sIFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvcG9wdXAtY29vcC1ieS1zdy5odHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmcvc2VydmljZV93b3JrZXJfaWRsLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2luZnJhc3RydWN0dXJl
L3NlcnZlci9jb250ZXh0LmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MSwx
MCArMzY5LDExIEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5
b3V0LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0CiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJj
ZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGh0dHAvd3B0L3dlYnJ0Yy90cmFuc2Zlci1kYXRh
Y2hhbm5lbC1zZXJ2aWNlLXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgTm8gQ3Jvc3Mt
T3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCisjIE5vIENyb3NzLU9yaWdpbi1PcGVuZXIt
UG9saWN5IC8gQ3Jvc3MtT3JpZ2luLUVtYmVkZGVyLVBvbGljeSBpbiBXSzEuCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeSBb
IFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy5odG1sIFsgU2tpcCBdCi1odHRw
L3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kvcmVxdWlyZS1jb3JwLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9z
cy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVy
LXBvbGljeSBbIFNraXAgXQogCiAjIFF1b3RhIGNoZWNrIG1pc3NpbmcgaW4gV0sxCiBodHRwL3Rl
c3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjFhNTY3OGZjN2JmYjJiYjky
MWIyMWViMTk4MWM0MjEwYTI4YWI1Yi4uOWUzNDlhZmViYzJhZWZhZWQ4M2Y1ZTBjODZjZDhjOTVm
Y2E2NjU4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM3MTUsOCArMzcxNSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3BvbGljaWVzL3JlZmVycmVyLW9yaWdpbi13aGVuLWNyb3NzLW9yCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9wb2xpY2llcy9yZWZlcnJlci11bnNhZmUtdXJs
LXNlcnZpY2Utd29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBv
bGljeSBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0
bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dv
cmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIvaW50ZWdyYXRpb24t
d2l0aC10aGUtamF2YXNjcmlwdC1hZ2VudC1mb3JtYWxpc20vcmVxdWlyZXMtZmFpbHVyZS5odHRw
cy5hbnkuc2VydmljZXdvcmtlci5odG1sIFsgU2tpcCBdCkBAIC0zNzI1LDEwICszNzIzLDExIEBA
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1z
ZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2xheW91dC13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGlvbi5odHRw
cy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L3BhaW50LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBT
a2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8g
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5
IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmln
aW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBz
Lmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGlj
eS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRw
L3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9j
cm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCiAKICMgTm8gaGVhZGVyIGZpbHRl
cmluZyBmb3IgV0sxCiBodHRwL3dwdC9sb2FkaW5nL3JlZGlyZWN0LWhlYWRlcnMuaHRtbCBbIFNr
aXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436311</attachid>
            <date>2021-08-24 11:24:01 -0700</date>
            <delta_ts>2021-08-24 12:19:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210824112400.patch</filename>
            <type>text/plain</type>
            <size>117199</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEzN2ZkOTI4ZDAzMTA5
ODc5YmZkZDkxZGM3M2VkMGFjOTU3MjQ2OC4uOGFiYzA2MjEzNzdlYzIwYzM2NTFhMTA0OGYwODZj
OGQ3MWIyZDc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBUaHJlYWRTYW5pdGl6ZXI6IGRhdGEgcmFjZSBpbiBXVEY6
OlN0cmluZ0ltcGw6OmRlcmVmKCkgZm9yIFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6RW5jb2Rl
ZEZpbGVEYXRhOjpmaWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhZjA2NTczMjRiOGQ0OWNhYjdlYWI4MTZm
MTgyZWI3YzA4MWUzNGM0Li5jZGVkYTlmMjA2OTQxNGUzZTIxNjdlM2UwMDdiNWE0OTg3NjNhODg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBp
bmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUg
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAor
ICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVz
cG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3Mu
IFRoaXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4g
c3dpdGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNw
b25zZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBB
UElzCisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHBy
b2Nlc3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vz
cy1zd2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBh
cmUgdGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBp
bnN0ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0
byBoYXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBu
b3cgdHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0
YXRlCisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0
ZSBjYWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNl
bmRpbmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2Vz
LXN3YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlv
biByZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcK
KyAgICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhl
IHNwZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAg
ICBncm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJl
IGRpc2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBv
cnRhbnQgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJl
cXVlc3QgdG8gdGhlIHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4g
VGhpcyBpcyBiZWNhdXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxl
ZCB1cG9uIHJlY2VpdmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRp
bmcgdG8gcHJvY2Vzcy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRo
ZSBuZXcKKyAgICAgICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3Mg
dGhpcyBpbiBhIGZvbGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBj
b21wbGV4aXR5LiBXZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0
d29yayBwcm9jZXNzIGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcg
b25lIGluIGNhc2Ugb2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0p
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJl
dmlvdXNQYWdlQWZ0ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmxvYWRTaW11bGF0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVE
b21haW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZERhdGFJbXBsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4
LTI0ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGxhdGUgQXVndXN0IDIwMjEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCAwMWUxYjhlNTM4ZjhmZTI3M2I3NzU0NWQ4MDFiMTEzMzZkNTgx
NzkwLi5kMzEyMjgxZTY4OGQzOTM2MTM4MjQyZTZiZDdiNzQwOThkZTQzNDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vz
cy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKToKKwogMjAyMS0wOC0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dh
cmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvbGQgdW51c2VkIGNvZGUgYW5kIG91
dCBvZiBkYXRlIGNvbW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDdkZTkx
MDdkYTlmODQ2OTBkMWE1OTc4YmMxYTM0NWMwZjZjNzhjN2YuLjQ1OGZhMTYwZTkxODdkOGExNGM0
YTJmZmFiNTlhYWRhYWQzNGUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yMSAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBD
cmFzaCB1bmRlciBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2
Y2Y5ZTAzMjgwNTAzYzdiZTAuLjRkMzJhZTRhOWQ1OWY5ZWNlMWRhZTY1OTA2NjQ3OTg0OTJiNTM3
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1
ICs3ODMsMTIgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRs
aW5nT2ZSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNz
LWEtbmF2aWdhdGUtZmV0Y2ggKFN0ZXAgMTIuNS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdz
IGlzIG5vdCBlbXB0eSBhbmQgcmVzcG9uc2VDT09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9u
ZSIsIHRoZW4gc2V0IHJlc3BvbnNlIHRvIGFuIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5k
IGJyZWFrLgotICAgIGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNh
bmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1
ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9h
ZGVyKCktPmVmZmVjdGl2ZVNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAg
IGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9y
ZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRD
b29wRW5mb3JjZW1lbnRSZXN1bHQgPSBlbmZvcmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBv
bGljeShyZXNwb25zZS51cmwoKSwgcmVzcG9uc2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAg
aWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0
c0dyb3VwKCk7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1
cm47Ci0KICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tz
IGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8g
U2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0Uo
Q0YpCkBAIC0xMDQyLDExICsxMDM2LDE5IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNl
UmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAg
fQogI2VuZGlmCiAKKyAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9u
c2UocmVzcG9uc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZSht
X2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAg
ICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5S
ZXNvdXJjZUxvYWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWlu
UmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNS
ZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGlj
eUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250
ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5S
ZXNvdXJjZUxvYWRlciksCisgICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250ZW50UG9saWN5KG1f
cmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRDb29wRW5mb3JjZW1lbnRSZXN1
bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291
cmNlTG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGlj
eSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVl
c3RJZGVudGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGlj
eSk7CkBAIC0yMDA4LDkgKzIwMTAsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2Fk
RW1wdHkoKQogICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0
bWwiIDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsK
ICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVU
eXBlLCAwLCAiVVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGlu
ZSgpLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRl
cigpLT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewog
ICAgICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2Up
OwogCisgICAgICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkg
Y2F1c2UgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2Fk
IGlzIHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25z
ZSBwb2xpY3kgZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNv
bnRleHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAg
ICAgICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0Nv
bnRleHRHcm91cFN3aXRjaCkKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPnN3aXRjaEJyb3dz
aW5nQ29udGV4dHNHcm91cCgpOworICAgIH0KKwogICAgIGZpbmlzaGVkTG9hZGluZygpOwogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtMjIzOCw2ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6Y2xlYXJNYWluUmVzb3VyY2UoKQogI2VuZGlmCiAKICAgICBtX21haW5SZXNvdXJjZSA9IG51
bGxwdHI7CisgICAgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0g
ZmFsc2U7CiAKICAgICB1bnJlZ2lzdGVyVGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkOGZmMWRhM2JkNjQw
NmM1ZDc2NDg3NmFhZDQ5YmJkMDA0YWMxNzcwLi4xYzg3MTQyZjQ5ZmE3MTJlZjRjYmU4NzkwN2E3
NjZiM2UwMmNlYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAt
NDI1LDYgKzQyNSw5IEBAIHB1YmxpYzoKIAogICAgIENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IGNy
b3NzT3JpZ2luT3BlbmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50Q29vcEVuZm9y
Y2VtZW50UmVzdWx0ID8gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0LT5jcm9zc09yaWdp
bk9wZW5lclBvbGljeSA6IENyb3NzT3JpZ2luT3BlbmVyUG9saWN5IHsgfTsgfQogCisgICAgYm9v
bCBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKCkgY29uc3QgeyByZXR1
cm4gbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrOyB9CisgICAgdm9p
ZCBzZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKGJvb2wgaXNDb250
aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjaykgeyBtX2lzQ29udGludWluZ0xvYWRB
ZnRlclJlc3BvbnNlUG9saWN5Q2hlY2sgPSBpc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBv
bGljeUNoZWNrOyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExv
YWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpOwogCkBA
IC01NjEsNiArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ290Rmlyc3RCeXRlIHsgZmFs
c2UgfTsKICAgICBib29sIG1faXNDbGllbnRSZWRpcmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzTG9hZGluZ011bHRpcGFydENvbnRlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NvbnRp
bnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrIHsgZmFsc2UgfTsKIAogICAgIC8vIEZJ
WE1FOiBEb2N1bWVudDo6bV9wcm9jZXNzaW5nTG9hZEV2ZW50IGFuZCBEb2N1bWVudExvYWRlcjo6
bV93YXNPbmxvYWREaXNwYXRjaGVkIGFyZSByb3VnaGx5IHRoZSBzYW1lCiAgICAgLy8gYW5kIHNo
b3VsZCBiZSBtZXJnZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4
IDhkY2E3NWI5NDA3OTUwNzg5MjM2ZDJhYTEyMGY0M2E3YjNiMWM2ZDcuLjk2NGUyZGQxMjA3MDMz
MWE2NWNhMzQxYWM3MGU0YjI4NzQyMDBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCkBAIC04MTYsNyArODE2LDcgQEAgdm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFNob3coKQogewogfQogCi12b2lkIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKQordm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjlhMTEzMjM4YTBhOGM2
YTZmZTViMDM2ZGYwN2Y0ODM5Zjc5YWQ3MC4uMTIwYTRhNTIwYmQxZjEyZDczZDE0ZjYyZWUwZWU0
MGI5ODg0ZWFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVuZXJQb2xpY3kp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hTaG93KCkgZmluYWw7CiAKLSAgICB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0
IFN0cmluZyYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBm
aW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNp
b25Nb2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CiAgICAgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggOTRhZTU1YTY3NjVmMzgxNGJlZjQ1NWYyZGJh
ZTA2ZDAzZGYyNDZkYS4uMzcwZGY4ZmFhNWM3NjQ0ZGQ1ODg4YTg3YjI5ZjhjOTgyMWUyNTUxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9s
aWN5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC02MSw4ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KGJvb2wgY2hlY2tQb2xpY3kpIHsgbV9zaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeSA9IGNoZWNrUG9saWN5OyB9CiAgICAgYm9vbCBzaG91bGRD
aGVja05ld1dpbmRvd1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2hlY2tOZXdXaW5k
b3dQb2xpY3k7IH0KIAotICAgIHZvaWQgc2V0U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSB2YWx1ZTsgfQotICAg
IGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7IH0KKyAgICB2b2lkIHNldFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZChTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkKSB7IG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOyB9CisgICAgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOyB9CiAKICAgICBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURh
dGEoKSBjb25zdCB7IHJldHVybiBtX3N1YnN0aXR1dGVEYXRhOyB9CiAgICAgdm9pZCBzZXRTdWJz
dGl0dXRlRGF0YShjb25zdCBTdWJzdGl0dXRlRGF0YSYgZGF0YSkgeyBtX3N1YnN0aXR1dGVEYXRh
ID0gZGF0YTsgfQpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fY2xp
ZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwogCiAgICAgYm9vbCBtX3Nob3VsZENoZWNrTmV3
V2luZG93UG9saWN5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkIHsgZmFsc2UgfTsKKyAgICBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgbV9zaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5v
IH07CiAgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0b3J5OjpObyB9Owog
ICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tG
b3J3YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5IHsg
UmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCA1NGFhM2VlZmRjZWZmNGZjY2U2YWU1YTJjMGZkNTYwNWUxNTRiMDlmLi4z
OTA4ZjhiMDFjYWEzNmNmYTAxMTU0NjViYTZkYjM4ZDZlZWRmNWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogICAgIH0KIH0KIAotdm9pZCBGcmFtZUxv
YWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFBvbGljeURlY2lzaW9u
RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGlj
eShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBpZiAoIWFjdGl2ZURv
Y3VtZW50TG9hZGVyKCkpIHsKICAgICAgICAgLy8gTG9hZCB3YXMgY2FuY2VsbGVkCkBAIC00MjIs
NyArNDIyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBQb2xpY3lDaGUKICAgICB9CiAKICAgICAvLyBGSVhN
RTogVmFsaWRhdGUgdGhlIHBvbGljeSBjaGVjayBpZGVudGlmaWVyLgotICAgIGNsaWVudCgpLmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9h
ZGVyKCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93
bmxvYWRBdHRyaWJ1dGUoKSwgV1RGTW92ZShmdW5jdGlvbikpOworICAgIGNsaWVudCgpLmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UocmVzcG9uc2UsIGFjdGl2ZURvY3VtZW50TG9hZGVy
KCktPnJlcXVlc3QoKSwgaWRlbnRpZmllciwgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+ZG93bmxv
YWRBdHRyaWJ1dGUoKSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgV1RGTW92ZShm
dW5jdGlvbikpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjaGFuZ2VMb2NhdGlvbihjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBwYXNzZWRUYXJnZXQsIEV2ZW50KiB0cmlnZ2VyaW5nRXZl
bnQsIGNvbnN0IFJlZmVycmVyUG9saWN5JiByZWZlcnJlclBvbGljeSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzdGQ6Om9wdGlvbmFs
PE5ld0ZyYW1lT3BlbmVyUG9saWN5PiBvcGVuZXJQb2xpY3ksIGNvbnN0IEF0b21TdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVtUHJldmlld0lu
Zm8sIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+JiYgcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpCkBAIC0xNDcwLDEwICsxNDcwLDExIEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBs
b2FkZXIgPSBtX2NsaWVudC0+Y3JlYXRlRG9jdW1lbnRMb2FkZXIocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgcmVxdWVzdC5zdWJzdGl0dXRlRGF0YSgpKTsKICAgICBsb2FkZXItPnNldEFsbG93
c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2Vy
SW5wdXQoKSk7CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZShyZXF1
ZXN0LmlzUmVxdWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpKTsKKyAgICBsb2FkZXItPnNldElz
Q29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2socmVxdWVzdC5zaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQoKSA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbik7CiAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0
SWZOZWVkZWQobG9hZGVyLT5yZXF1ZXN0KCkpOwogICAgIGFwcGx5U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeVRvTmV3RG9jdW1lbnRMb2FkZXIobV9mcmFtZSwgbG9hZGVyLCByZXF1ZXN0KTsK
IAotICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCgpKSB7CisgICAg
aWYgKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkOjpObykgewogICAgICAgICBsb2FkZXItPnNldENsaWVudFJlZGlyZWN0
U291cmNlRm9ySGlzdG9yeShyZXF1ZXN0LmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
KTsKICAgICAgICAgaWYgKHJlcXVlc3QubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IExvY2tCYWNr
Rm9yd2FyZExpc3Q6OlllcykgewogICAgICAgICAgICAgbG9hZGVyLT5zZXRJc0NsaWVudFJlZGly
ZWN0KHRydWUpOwpAQCAtMTQ4MSw3ICsxNDgyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChG
cmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICAgICAgfQogICAgIH0KIAotICAgIFNldEZv
clNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50
TG9hZENvbnRpbnVpbmdTdGF0ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQo
KSA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250
aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVpbmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51
aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0
ZSwgcmVxdWVzdC5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSAhPSBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Ok5vID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dpdGhS
ZXF1ZXN0IDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAgICAgbG9hZChs
b2FkZXIuZ2V0KCkpOwogfQogCkBAIC0zNzY4LDcgKzM3NjksNyBAQCB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRl
bSogZnJvbQogCiAgICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IEluaXRpYXRlZEJ5TWFp
bkZyYW1lOjpVbmtub3duOwogCi0gICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4g
Y29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMg
PyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENv
bnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CisgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRp
bnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0
YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpObyA/IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoSGlzdG9yeUl0
ZW0gOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5nKTsKIAogICAgIGlmIChDYWNo
ZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0
ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2Fj
aGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgK
aW5kZXggNmYzYmRiZWZjYTM5ZmJmYzIzZjlkMTRjOWIyNzExMjI2ZGUyNGEwYi4uZTU2YzA4Zjcw
MzZhNWRmYjczM2MyZTVmNWNlZWNkODg0MjJhZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBlbnVtIGNs
YXNzIENhY2hlUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3Mg
OiBib29sOwogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90Owot
ZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFz
cyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBVc2Vk
TGVnYWN5VExTIDogYm9vbDsKIGVudW0gY2xhc3MgSXNNYWluUmVzb3VyY2UgOiBib29sIHsgTm8s
IFllcyB9OwogZW51bSBjbGFzcyBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSA6IGJvb2wg
eyBObywgWWVzIH07CkBAIC0yMjAsNyArMjIwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRE
ZWZlcnNMb2FkaW5nKGJvb2wpOwogCi0gICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24mJik7CisgICAgdm9pZCBjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIFBvbGljeUNoZWNrSWRlbnRpZmllciwgYm9vbCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKIAog
ICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggM2ViNWNlZTY0MjZjNDRkYzE3NDIyMjE1ZmFhYjE1NjkzMWRi
MmQ5ZC4uMzliYjQwNTQwOWM0MTc0Nzg1YTkzNzIyODMwMDE4NjNjMGE4Nzc1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5MCw3ICsxOTAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mLCBOZXdGcmFtZU9wZW5lclBvbGljeSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFNob3coKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gs
IEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IFBvbGljeUNoZWNrSWRlbnRpZmllciwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRm9ybVN0YXRlKiwgUG9saWN5RGVjaXNpb25N
b2RlLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKaW5kZXggNmQ1ZGU4NGYyMTc5ODg2M2JhOGVlZGU4
YjY0NmZlOTQ4YTQ1ODgyYi4uMTAzN2RmOThlYzQxNTU0YmZiMWRiNjJiODk2ODJkODM3ZmE2NTYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKQEAgLTM3LDcg
KzM3LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5SXRlbTsKIGNsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIAotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
OiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90
OwogCiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCmluZGV4IDc2ZTA5MzUwNWJj
YmJlNjZkMjI0NTJkMmY1Yjc5NWIzZDVkODUzYTQuLmFiMTM1M2JjYzA4MmU0MWJhNTg5YzljMjlj
MjEwODUzYTM5OTUyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2wg
eyBObywgWWVzIH07CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVp
bnQ4X3QgeyBObywgWWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFllc0FmdGVyUmVz
cG9uc2VQb2xpY3lEZWNpc2lvbiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTM5
LDcgKzM5LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsCiAgICAgICAgIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sCi0gICAgICAgIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzCisgICAgICAgIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24s
CisgICAgICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJS
ZXNwb25zZVBvbGljeURlY2lzaW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNDg3
YzliMmI1ZWY0OTQ2YzljYmU5ODlmM2U3NzYxZjA4ZTYxZDgwZS4uOTI1NWJmMzEzYzY3ZDcxNDgx
NWNmNzgxNTI2NmZmZDgwNWIyMmY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE3MCw3ICsxNzAsNyBA
QCB1c2luZyBTaGFyZWRTdHJpbmdIYXNoID0gdWludDMyX3Q7CiBlbnVtIGNsYXNzIENhbldyYXAg
OiBib29sOwogZW51bSBjbGFzcyBEaWRXcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgUm91dGVTaGFy
aW5nUG9saWN5IDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWlu
dDhfdDsKIAogZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciA6IGJvb2wgeyBSZXNw
b25zaXZlLCBVbnJlc3BvbnNpdmUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggMDYyMDk2NDY4ZmU4N2I2OGMxOWVmMzgwNzdhMjVhOTIxZDlkNGVmZi4uZTVjNTdi
MDQwNDljOGIyMGI2YmQ2MTFjZmM4ZjZiMDFmNzhjMDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9M
b2FkUGFyYW1ldGVycy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGlj
aWVzRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRh
Lmg+CiAKIE9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwpAQCAtNjYsNyArNjcsNyBAQCBzdHJ1Y3Qg
TG9hZFBhcmFtZXRlcnMgewogICAgIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4g
d2Vic2l0ZVBvbGljaWVzOwogCiAgICAgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKLSAgICBib29sIHNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gfTsKICAgICBVc2VyRGF0YSB1c2VyRGF0YTsKICAg
ICBXZWJDb3JlOjpMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5
OjpObyB9OwogICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJk
TGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYzY1NGNiOGMx
MjIxYWY4MTFmNmIwYTczYjNlMWRmOTQzNWIyYjc2ZC4uNDFjZDM1ZGJmYThkMGUzNGJkMWViNDlm
NWQ1NzRmMmMzNzAwYmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKICNkZWZpbmUgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coY2hhbm5lbCwg
Zm10LCAuLi4pIFJFTEVBU0VfTE9HKGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1
NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBQSUQ9JWksIG5hdmlnYXRpb25JRD0lIiBQUkl1
NjQgIl0gUHJvdmlzaW9uYWxQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX3BhZ2UuaWRlbnRpZmll
cigpLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9uYXZpZ2F0aW9uSUQsICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFBS
T1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKGNoYW5uZWwsIGZtdCwgLi4uKSBS
RUxFQVNFX0xPR19FUlJPUihjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIs
IHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJd
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50
b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fbmF2aWdhdGlvbklELCAjI19fVkFfQVJHU19fKQogCi1Qcm92aXNpb25hbFBh
Z2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJv
eHk+IHN1c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJl
ZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqIHdlYnNpdGVQb2xpY2llcykKK1Byb3Zpc2lvbmFsUGFnZVByb3h5OjpQ
cm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVu
ZGVkUGFnZSwgdWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBib29sIHNob3VsZENsb3Nl
UHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9s
aWNpZXMpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fd2ViUGFnZUlEKHN1c3BlbmRlZFBh
Z2UgPyBzdXNwZW5kZWRQYWdlLT53ZWJQYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQogICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCkBAIC02Niw2ICs2Niw3IEBA
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkm
IHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJvCiAgICAgLCBtX2lzU2VydmVyUmVkaXJlY3QoaXNTZXJ2
ZXJSZWRpcmVjdCkKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50KHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCisgICAgLCBt
X3Nob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoc2hvdWxkQ2xvc2VQcmV2aW91c1Bh
Z2VBZnRlckNvbW1pdCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICwgbV9wcm92aXNp
b25hbExvYWRBY3Rpdml0eShtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0
eSgiUHJvdmlzaW9uYWwgTG9hZCJfcykpCiAjZW5kaWYKQEAgLTE2MiwxNiArMTYzLDE4IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmluaXRpYWxpemVXZWJQYWdlKFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJiB3ZWJzCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZy
ZWV6ZUxheWVyVHJlZUR1ZVRvU3dpcGVBbmltYXRpb24oKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2Vy
RGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
IHdlYnNpdGVQb2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojps
b2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGlu
ZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJz
aXRlUG9saWNpZXMsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5KQogewogICAgIFBST1ZJU0lPTkFMUEFHRVBST1hZX1JFTEVB
U0VfTE9HKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiIpOworICAgIEFTU0VSVChzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgIT0gV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpObyk7CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUs
IGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXMsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vi
c2l0ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgbV9w
YWdlLmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93
ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIG1pbWVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwg
dXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3ROYXZp
Z2F0aW9uQWN0aW9uKCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhpc3Rv
cnlWaXNpYmlsaXR5KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVl
c3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24s
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxF
QVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJsb2FkUmVxdWVzdDoiKTsKKyAgICBBU1NFUlQoc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6Tm8pOwogCiAgICAgLy8gSWYgdGhpcyBpcyBhIGNsaWVudC1zaWRlIHJlZGlyZWN0
IGNvbnRpbnVpbmcgaW4gYSBuZXcgcHJvY2VzcywgdGhlbiB0aGUgbmV3IHByb2Nlc3Mgd2lsbCBv
dmVyd3JpdGUgdGhlIGZyb21JdGVtJ3MgVVJMLiBJbiB0aGlzIGNhc2UsCiAgICAgLy8gd2UgbmVl
ZCB0byBtYWtlIHN1cmUgd2UgdXBkYXRlIGZyb21JdGVtJ3MgcHJvY2Vzc0lkZW50aWZpZXIgYXMg
d2Ugd2FudCBmdXR1cmUgbmF2aWdhdGlvbnMgdG8gdGhpcyBCYWNrRm9yd2FyZCBpdGVtIHRvIGhh
cHBlbiBpbiB0aGUKQEAgLTE3OSw3ICsxODIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
Ojpsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkNvcmU6OlJlcwog
ICAgIGlmIChuYXZpZ2F0aW9uLmZyb21JdGVtKCkgJiYgbmF2aWdhdGlvbi5sb2NrQmFja0Zvcndh
cmRMaXN0KCkgPT0gV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQogICAgICAgICBu
YXZpZ2F0aW9uLmZyb21JdGVtKCktPnNldExhc3RQcm9jZXNzSWRlbnRpZmllcihtX3Byb2Nlc3Mt
PmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKIAotICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0
aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCku
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBX
VEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9u
LCBXVEZNb3ZlKHJlcXVlc3QpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJk
SXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
IGl0ZW0sIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCkBA
IC0xOTksNyArMjAyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3
YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkIKICAgICAgICAgd2Vic2l0
ZVBvbGljaWVzRGF0YSA9IHdlYnNpdGVQb2xpY2llcy0+ZGF0YSgpOwogICAgIAogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFdURk1v
dmUoaXRlbVN0YXRlcykpKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0Zv
cndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlEKCksICpuYXZp
Z2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSkpOworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi5u
YXZpZ2F0aW9uSUQoKSwgaXRlbS5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFt
ZUxvYWRUeXBlKCksIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkp
KTsKICAgICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogfQogCkBAIC0y
MjcsOCArMjMwLDkgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBS
ZXN0b3JlIHRoZSBtYWluIGZyYW1lJ3MgY29tbWl0dGVkIFVSTCBhcyBzb21lIGNsaWVudHMgbWF5
IHJlbHkgb24gaXQgdW50aWwgdGhlIG5leHQgbG9hZCBpcyBjb21taXR0ZWQuCi0gICAgaWYgKGF1
dG8qIG1haW5GcmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9tYWluRnJhbWUt
PmZyYW1lTG9hZFN0YXRlKCkuc2V0VVJMKG1haW5GcmFtZS0+ZnJhbWVMb2FkU3RhdGUoKS51cmwo
KSk7CisgICAgUmVmUHRyIHByZXZpb3VzTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpOwor
ICAgIGlmIChwcmV2aW91c01haW5GcmFtZSkKKyAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lTG9h
ZFN0YXRlKCkuc2V0VVJMKHByZXZpb3VzTWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICAvLyBOb3Jt
YWxseSwgbm90aWZpY2F0aW9uIG9mIGEgc2VydmVyIHJlZGlyZWN0IGNvbWVzIGZyb20gdGhlIFdl
YkNvbnRlbnQgcHJvY2Vzcy4KICAgICAvLyBJZiB3ZSBhcmUgcHJvY2VzcyBzd2FwcGluZyBpbiBy
ZXNwb25zZSB0byBhIHNlcnZlciByZWRpcmVjdCB0aGVuIHRoYXQgbm90aWZpY2F0aW9uIHdpbGwg
bm90IGNvbWUgZnJvbSB0aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy4KQEAgLTIzNiw2ICsyNDAs
MTAgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogICAgIGlmIChtX2lzU2VydmVyUmVkaXJlY3QpIHsKICAgICAg
ICAgbV9tYWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkuZGlkU3RhcnRQcm92aXNpb25hbExvYWQo
bV9yZXF1ZXN0LnVybCgpKTsKICAgICAgICAgbV9wYWdlLmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
bWFpbkZyYW1lLT5mcmFtZUlEKCksIG1fbmF2aWdhdGlvbklELCBXVEZNb3ZlKG1fcmVxdWVzdCks
IHsgfSk7CisgICAgfSBlbHNlIGlmIChwcmV2aW91c01haW5GcmFtZSAmJiAhcHJldmlvdXNNYWlu
RnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIEluIGNhc2Ug
b2YgYSBwcm9jZXNzIHN3YXAgYWZ0ZXIgcmVzcG9uc2UgcG9saWN5LCB0aGUgZGlkU3RhcnRQcm92
aXNpb25hbExvYWQgYWxyZWFkeSBoYXBwZW5lZCBidXQgdGhlIG5ldyBtYWluIGZyYW1lIGRvZXNu
J3Qga25vdyBhYm91dCBpdAorICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHRlbGwgaXQgc28gaXQg
Y2FuIHVwZGF0ZSBpdHMgcHJvdmlzaW9uYWwgVVJMLgorICAgICAgICBtX21haW5GcmFtZS0+ZGlk
U3RhcnRQcm92aXNpb25hbExvYWQocHJldmlvdXNNYWluRnJhbWUtPnByb3Zpc2lvbmFsVVJMKCkp
OwogICAgIH0KIH0KIApAQCAtMzIyLDEzICszMzAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmll
cgogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJ
bmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBv
cmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBX
VEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5
SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICgh
dmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmll
ciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3du
bG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIG1fcGFnZS5kZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwg
ZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
bGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5k
ZXggYTdmYjY2YTZkYWE3MzdjOTA2MDkwN2MwODk2ZjBjYmM5NGViMzgwZS4uMjcxNGIyYTViNTQ3
ZjI2NjdmY2I0NmZjZWYxYjU3ODRmYmNmNTgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEZvcm1E
YXRhUmVmZXJlbmNlOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
Owogc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CitlbnVtIGNsYXNzIFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNzEsNyArNzIsNyBAQCB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsK
IGNsYXNzIFByb3Zpc2lvbmFsUGFnZVByb3h5IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5Piwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6
V2Vic2l0ZVBvbGljaWVzKik7CisgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQ
cm94eT4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQsIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKik7CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJv
eHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KQEAgLTgyLDYgKzgzLDggQEAgcHVi
bGljOgogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdh
dGlvbklEOyB9CiAgICAgY29uc3QgVVJMJiBwcm92aXNpb25hbFVSTCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvdmlzaW9uYWxMb2FkVVJMOyB9CiAKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQ
YWdlQWZ0ZXJDb21taXQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlUHJldmlvdXNQYWdl
QWZ0ZXJDb21taXQ7IH0KKwogICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhKCkgY29u
c3QgeyByZXR1cm4gbV9kcmF3aW5nQXJlYS5nZXQoKTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiB0YWtlRHJhd2luZ0FyZWEoKTsKIApAQCAtMTAxLDggKzEwNCw4IEBA
IHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdh
dGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0KEFQ
STo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOworICAgIHZv
aWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3Rp
dHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CisgICAgdm9pZCBsb2FkUmVxdWVz
dChBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6
b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgZ29Ub0JhY2tGb3J3
YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgUmVmUHRy
PEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCkBAIC0xMjAs
MTEgKzEyMyw4IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6
OkVuY29kZXI+JiYsIE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+LCBzdGQ6Om9wdGlvbmFsPHN0
ZDo6cGFpcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+
PiYmKSBmaW5hbDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAotICAgICAgICBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZy
YW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdl
UHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0
ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgVXNlckRhdGEmKTsKQEAgLTEzOSw5ICsxMzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5RnJvbVdlYlByb2Nlc3MoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6VmFsdWVEaWN0aW9uYXJ5JiwgV2ViQ29yZTo6U2hv
dWxkU2FtcGxlKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFy
YW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V2ViQmFja0ZvcndhcmRMaXN0Q291bnRzJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFp
bkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9E
YXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAotICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0Rl
bGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZv
RGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5n
RnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0sp
CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1l
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3Ry
aW5nJik+JiYpOwogI2VuZGlmCkBAIC0xNzEsNiArMTY5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OwogICAgIGJvb2wgbV93YXND
b21taXR0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFm
dGVyQ29tbWl0IHsgZmFsc2UgfTsKICAgICBVUkwgbV9wcm92aXNpb25hbExvYWRVUkw7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGFjOWE3NzQ4ZjNlMGQ3MmMzN2ZmODRkNGI4NDBmMGI1ZTdmOTQ3NWIuLjExNjE4MDBh
ZGJmODg1NGNiOTc0Mjg1ODUzMzg4ODI5MjRiY2ZiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM5MCw3ICsxMzkwLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXMKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0
aW9uKCk7CiAKICAgICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgaWYgKHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcykK
KyAgICBpZiAoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8pCiAgICAgICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVx
dWVzdCh0cmFuc2FjdGlvbiwgeyBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCB1cmwuc3RyaW5n
KCkgfSk7CiAKICAgICBMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKQEAgLTEzOTgsNyAr
MTM5OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMucmVx
dWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAgbG9h
ZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3Rz
VG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBs
b2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7
CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLmxvY2tIaXN0b3J5
KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRpb24u
bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwpAQCAtMTUyNSw3ICsxNTI1LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLAogICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlID0gTUlNRVR5cGU7CiAgICAg
bG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gZW5jb2Rpbmc7CiAgICAgbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkID0gc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsKICAgICBs
b2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MtPnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgpKTsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRl
UG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k7CkBAIC0xNTc4LDcgKzE1NzgsNyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdl
UHJveHk6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxv
YWRQYXJhbWV0ZXJzLmVuY29kaW5nTmFtZSA9IHNpbXVsYXRlZFJlc3BvbnNlLnRleHRFbmNvZGlu
Z05hbWUoKTsKICAgICBsb2FkUGFyYW1ldGVycy5iYXNlVVJMU3RyaW5nID0gYmFzZVVSTDsKICAg
ICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3c7Ci0gICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gZmFsc2U7CisgICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID0gU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpObzsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRp
b24tPmxvY2tIaXN0b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlz
dCA9IG5hdmlnYXRpb24tPmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVy
cy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLT5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkoKTsKQEAgLTM1MTgsNyArMzUxOCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBCiAgICAgICAgICAgICBpZiAoc3VzcGVuZGVkUGFnZSAmJiBzdXNwZW5kZWRQ
YWdlLT5wYWdlSXNDbG9zZWRPckNsb3NpbmcoKSkKICAgICAgICAgICAgICAgICBzdXNwZW5kZWRQ
YWdlID0gbnVsbHB0cjsKIAotICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzKG5hdmlnYXRpb24sIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zv
ck5hdmlnYXRpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzdGQ6OmV4Y2hhbmdl
KHBvbGljaWVzLCBudWxscHRyKSk7CisgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5l
d1Byb2Nlc3MobmF2aWdhdGlvbiwgV1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgV1RGTW92ZShwcm9j
ZXNzRm9yTmF2aWdhdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIHN0
ZDo6ZXhjaGFuZ2UocG9saWNpZXMsIG51bGxwdHIpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGF1dG8gaXRlbSA9IG5hdmlnYXRpb24tPnJlbG9hZEl0ZW0oKSA/IG5hdmlnYXRpb24t
PnJlbG9hZEl0ZW0oKSA6IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKTsKICAgICAgICAgICAgIGlm
IChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgaXRlbSkgewpAQCAtMzYwNSw3
ICszNjA1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKIAogICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV93ZWJQYWdlSUQpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9u
U3RhdGUoKS5uYXZpZ2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7Ci0g
ICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiA/IHN1c3BlbmRDdXJy
ZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nl
c3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNo
b3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOworICAgIGJvb2wg
ZGlkU3VzcGVuZFByZXZpb3VzUGFnZSA9IG5hdmlnYXRpb24gJiYgIW1fcHJvdmlzaW9uYWxQYWdl
LT5zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgPyBzdXNwZW5kQ3VycmVudFBh
Z2VJZlBvc3NpYmxlKCpuYXZpZ2F0aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBt
X3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGRE
ZWxheUNsb3NpbmdVbnRpbEZpcnN0TGF5ZXJGbHVzaCkgOiBmYWxzZTsKICAgICBtX3Byb2Nlc3Mt
PnJlbW92ZVdlYlBhZ2UoKnRoaXMsIG1fd2Vic2l0ZURhdGFTdG9yZS5wdHIoKSA9PSAmbV9wcm92
aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS53ZWJzaXRlRGF0YVN0b3JlKCkgPyBXZWJQcm9jZXNzUHJv
eHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6Tm8gOiBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0Rh
dGFTdG9yZTo6WWVzKTsKIAogICAgIC8vIFRoZXJlIGlzIG5vIHdheSB3ZSdsbCBiZSBhYmxlIHRv
IHJldHVybiB0byB0aGUgcGFnZSBpbiB0aGUgcHJldmlvdXMgcGFnZSBzbyBjbG9zZSBpdC4KQEAg
LTM2MjAsMTEgKzM2MjAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFs
UGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKICAgICBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPmRpZENvbW1pdFByb3Zpc2lvbmFsUGFnZShvbGRXZWJQYWdlSUQsIG1f
d2ViUGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbklu
TmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHN0ZDo6dW5pcXVlX3B0cjxT
dXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3ZWJzaXRlUG9s
aWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBh
Z2VQcm94eT4mJiBzdXNwZW5kZWRQYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIG5ld1Byb2Nl
c3MsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmIHdlYnNpdGVQb2xpY2llcykKIHsK
ICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImNvbnRpbnVlTmF2aWdhdGlv
bkluTmV3UHJvY2VzczogbmV3UHJvY2Vzc1BJRD0laSwgaGFzU3VzcGVuZGVkUGFnZT0laSIsIG5l
d1Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksICEhc3VzcGVuZGVkUGFnZSk7CiAgICAgTE9H
KExvYWRpbmcsICJDb250aW51aW5nIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgJyVzJyBpbiBhIG5l
dyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9n
Z2luZ1N0cmluZygpKTsKICAgICBSRUxFQVNFX0FTU0VSVCghbmV3UHJvY2Vzcy0+aXNJblByb2Nl
c3NDYWNoZSgpKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQ
YWdlKSB7CiAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcs
ICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IFRoZXJlIGlzIGFscmVhZHkgYSBwZW5k
aW5nIHByb3Zpc2lvbmFsIGxvYWQsIGNhbmNlbGxpbmcgaXQgKHByb3Zpc29uYWxOYXZpZ2F0aW9u
SUQ9JWxsdSwgbmF2aWdhdGlvbklEPSVsbHUpIiwgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRp
b25JRCgpLCBuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpKTsKQEAgLTM2MzMsOSArMzYzNCwxMCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6
TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG51
bGxwdHI7CiAgICAgfQogCi0gICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtlVW5pcXVlPFByb3Zp
c2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwgV1RGTW92ZShzdXNw
ZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5jdXJyZW50
UmVxdWVzdElzUmVkaXJlY3QoKSwgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwotCi0gICAgYXV0
byBjb250aW51YXRpb24gPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBu
YXZpZ2F0aW9uID0gbWFrZVJlZihuYXZpZ2F0aW9uKSwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUgeworICAgIGJvb2wgaXNTZXJ2ZXJTaWRlUmVk
aXJlY3QgPSBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiAmJiBuYXZpZ2F0aW9u
LmN1cnJlbnRSZXF1ZXN0SXNSZWRpcmVjdCgpOworICAgIGJvb2wgc2hvdWxkQ2xvc2VQcmV2aW91
c1BhZ2VBZnRlckNvbW1pdCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbjsKKyAg
ICBtX3Byb3Zpc2lvbmFsUGFnZSA9IG1ha2VVbmlxdWU8UHJvdmlzaW9uYWxQYWdlUHJveHk+KCp0
aGlzLCBXVEZNb3ZlKG5ld1Byb2Nlc3MpLCBXVEZNb3ZlKHN1c3BlbmRlZFBhZ2UpLCBuYXZpZ2F0
aW9uLm5hdmlnYXRpb25JRCgpLCBpc1NlcnZlclNpZGVSZWRpcmVjdCwgbmF2aWdhdGlvbi5jdXJy
ZW50UmVxdWVzdCgpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBzaG91bGRDbG9zZVBy
ZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCB3ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOworICAgIGF1dG8g
Y29udGludWF0aW9uID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2
aWdhdGlvbiA9IG1ha2VSZWYobmF2aWdhdGlvbiksIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgd2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpXSgpIG11dGFibGUg
ewogICAgICAgICBpZiAoYXV0byogaXRlbSA9IG5hdmlnYXRpb24tPnRhcmdldEl0ZW0oKSkgewog
ICAgICAgICAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJXAgY29udGludWVOYXZpZ2F0
aW9uSW5OZXdQcm9jZXNzIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLT51cmwoKS51
dGY4KCkuZGF0YSgpKTsKIApAQCAtMzY1OSw5ICszNjYxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHMKICAgICAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdp
dGggdGhlIGxhc3QgcG9saWN5IGRlbGVnYXRlLCBldGMKICAgICAgICAgQVNTRVJUKCFuYXZpZ2F0
aW9uLT5jdXJyZW50UmVxdWVzdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIGlmIChhdXRvJiBzdWJz
dGl0dXRlRGF0YSA9IG5hdmlnYXRpb24tPnN1YnN0aXR1dGVEYXRhKCkpCi0gICAgICAgICAgICBt
X3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+
Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0
dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURh
dGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpLCBzdWJzdGl0
dXRlRGF0YS0+c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKKyAgICAgICAgICAgIG1fcHJvdmlz
aW9uYWxQYWdlLT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1dGVEYXRhLT5jb250ZW50
LmRhdGEoKSwgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0sIHN1YnN0aXR1dGVEYXRh
LT5NSU1FVHlwZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJzdGl0dXRlRGF0YS0+YmFz
ZVVSTCwgc3Vic3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRl
UG9saWNpZXNEYXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkUmVxdWVz
dChuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVz
dCgpIH0sIG51bGxwdHIsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXNEYXRhKSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9h
ZFJlcXVlc3QobmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVu
dFJlcXVlc3QoKSB9LCBudWxscHRyLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSk7
CiAgICAgfTsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyLT5zaG91bGRQYXVzZUxvYWRp
bmcoKm1fcHJvdmlzaW9uYWxQYWdlKSkKICAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5z
ZXRDb250aW51ZUxvYWRpbmdDYWxsYmFjaygqbV9wcm92aXNpb25hbFBhZ2UsIFdURk1vdmUoY29u
dGludWF0aW9uKSk7CkBAIC01NjE0LDEzICs1NjE2LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsCisgICAgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3Rl
ZEJ1bmRsZSwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1l
SUQsIFdURk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25z
ZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJ
RCwgdXNlckRhdGEpOworICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jy
b3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01J
TUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRC
eUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdl
Q2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01NjMzLDcgKzU2
MzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdh
dGlvbihuYXZpZ2F0aW9uSUQpIDogbnVsbHB0cjsKICAgICBhdXRvIG5hdmlnYXRpb25SZXNwb25z
ZSA9IEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlOjpjcmVhdGUoQVBJOjpGcmFtZUluZm86OmNyZWF0
ZShXVEZNb3ZlKGZyYW1lSW5mbyksIHRoaXMpLmdldCgpLCByZXF1ZXN0LCByZXNwb25zZSwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0g
bWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlz
dGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0
ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRp
b24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzLCBuYXZpZ2F0aW9uUmVz
cG9uc2VdIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyos
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3Rk
OjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6
V2Vic2l0ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQ
b2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FT
U0VSVChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ6Ok5vKTsKQEAgLTU2NDIsOSArNTY0NCwyOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLAogICAgICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUo
aWRlbnRpZmllciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdU
Rk1vdmUocHJvY2VzcyldIChjb25zdCBhdXRvJiBwb2xpY3lEZWNpc2lvbikgewogICAgICAgICAg
ICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lz
aW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0
ZW5zaW9uc1NhbmRib3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlEKTsKICAgICAgICAg
fSk7CisKKyAgICAgICAgYXV0byB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm87CisgICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0g
UG9saWN5QWN0aW9uOjpVc2UgJiYgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCAmJiBu
YXZpZ2F0aW9uKSB7CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZXNwb25zZURvbWFp
biB7IG5hdmlnYXRpb25SZXNwb25zZS0+cmVzcG9uc2UoKS51cmwoKSB9OworICAgICAgICAgICAg
Ly8gQXZvaWQgcHJvY2Vzcy1zd2FwcGluZyBpbiBjYXNlcyB3aGVyZSB0aGUgcHJvY2VzcyBvbmx5
IGNvbnRhaW5zIGEgc2luZ2xlIHBhZ2UgYW5kIGlzIG9yaWdpbi1jbGVhbi4KKyAgICAgICAgICAg
IGlmICh0aGlzLT5wcm9jZXNzKCkucGFnZUNvdW50KCkgPiAxIHx8ICh0aGlzLT5wcm9jZXNzKCku
b3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpICYmICp0aGlzLT5wcm9jZXNzKCkub3B0aW9uYWxS
ZWdpc3RyYWJsZURvbWFpbigpICE9IHJlc3BvbnNlRG9tYWluKSkgeworICAgICAgICAgICAgICAg
IFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2VTaGFyZWQ6IFByb2Nlc3Mtc3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5Iik7CisgICAgICAgICAgICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25v
cmU7CisgICAgICAgICAgICAgICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFT
dG9yZSgpLCB0aGlzLCByZXNwb25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVO
YXZpZ2F0aW9uSW5OZXdQcm9jZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nl
c3NGb3JOYXZpZ2F0aW9uKSwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBu
dWxscHRyKTsKKyAgICAgICAgICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0g
V2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlv
biwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2Up
LCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGlj
eUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVz
cG9uc2UpLCBXVEZNb3ZlKHNlbmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vz
cyk7CiAgICAgfSwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhw
ZWN0QXBwQm91bmREb21haW5SZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5q
ZWN0ZWRCdW5kbGUpIHsKKyAgICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVu
dC0+ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVl
c3QsIGNhblNob3dNSU1FVHlwZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGFmMjU2ZWZiNjI1ZmY4MDA2
OTNjNTgzN2E4NDExYzk1MjNjZGRiZTEuLjI2YjgwNmMzNmJhZmNkNzI5MzE3NjQ2YzlmZjZkZWY2
YjlkMTMyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzAs
NyArMjcwLDcgQEAgZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90Owog
ZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxl
Y3Rpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29s
OwotZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBj
bGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBX
cml0aW5nRGlyZWN0aW9uIDogdWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3
NDEsNyArMTc0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25E
YXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5m
b0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQp
OwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVk
QnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
QVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5n
JiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJp
bGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24m
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpA
QCAtMjA2MCw3ICsyMDYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAog
ICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0Rh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBV
c2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBi
b29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2Miw3ICsyNDYyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBh
Z2VQcm94eT4mJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9w
dHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRz
Rm9udEF0dHJpYnV0ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVy
RWRpdG9yU3RhdGVDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1ZjQ5MGI4ZjUzZWM0ZjBhOGUxZTY4MTE4OTVhYmE0
N2ZmMjA4NWZhLi5iODgwM2NkNTIyMmI2YTcwODRmYTJlNzIyMDI3Nzc0YjVmZTA2NTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAg
ICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBm
cmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01J
TUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUlu
amVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBm
cmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1
Y3QgV2ViS2l0OjpQb2xpY3lEZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAg
ICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMw
NThjZjcxNzYuLmE0MGU2OWRmYTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdp
c3RyYWJsZURvbWFpbiA/ICptX3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9
CiAgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25z
dCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHsgfSk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiYgb3B0aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fcmVnaXN0cmFibGVEb21haW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9v
bCk7CiAgICAgYm9vbCBpc0luUHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJv
Y2Vzc0NhY2hlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYzNDM0
MTkzYjE0NWRiMDRjMWM0YWFhMDIxNWQ5ZDkxZTdmZGVkMDcuLjQ5NGQ5ZTUwMTQ5ZGI1YWE0Mjc3
MWIxYjJmY2VjZjRhYTU3ODgyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApA
QCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
U3RhcnRQcm92aXNpb25hbExvYWQoKQogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVy
Q2xpZW50KCkuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFt
ZSwgdXNlckRhdGEpOwogICAgIFJlZlB0ciBwcm92aXNpb25hbExvYWRlciA9IHN0YXRpY19jYXN0
PFdlYkRvY3VtZW50TG9hZGVyKj4obV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSk7CiAKLSAgICBpZiAoIXByb3Zpc2lvbmFsTG9hZGVyKQor
ICAgIGlmICghcHJvdmlzaW9uYWxMb2FkZXIgfHwgcHJvdmlzaW9uYWxMb2FkZXItPmlzQ29udGlu
dWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2soKSkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIGF1dG8mIHVybCA9IHByb3Zpc2lvbmFsTG9hZGVyLT51cmwoKTsKQEAgLTgxNiw3ICs4
MTYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdl
YlBhZ2UtPnNob3coKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQ
b2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
Ym9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9u
JiYgZnVuY3Rpb24pCiB7CiAgICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXdlYlBhZ2UpIHsKQEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9ucwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvbiBwb2xpY3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVu
dCgpLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3Bv
bnNlLCByZXF1ZXN0LCB1c2VyRGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQ
b2xpY3lBY3Rpb25Vc2UpIHsKKyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlz
IHJlcXVlc3RlZCwgd2Ugc3RpbGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2Vz
cyBpbiBvcmRlciB0byBwcm9jZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUK
KyAgICAvLyBpbmplY3RlZCBidW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRl
Y2lzaW9uLgorICAgIGlmIChwb2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYm
ICFuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9B
REVSQ0xJRU5UX1JFTEVBU0VfTE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlOiBjb250aW51aW5nIGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAg
ICAgICAgZnVuY3Rpb24oUG9saWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICBy
ZXR1cm47CkBAIC04NDcsOSArODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAg
YXV0byogcG9saWN5RG9jdW1lbnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRl
cigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZp
Z2F0aW9uSUQgPSBwb2xpY3lEb2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50
TG9hZGVyJj4oKnBvbGljeURvY3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAg
ICBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvblVzZTsKICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigp
OwogICAgIHVpbnQ2NF90IGxpc3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVy
KGlkZW50aWZpZXIsIFdURk1vdmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFj
dGlvbjo6Tm8pOwotICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmlu
Zm8oKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hv
d1Jlc3BvbnNlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQo
KSkuZ2V0KCkpKSkpIHsKKyAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1l
LT5pbmZvKCksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dSZXNwb25zZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVu
ZGxlLCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpKSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxF
QVNFX0xPRyhOZXR3b3JrLCAiZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3Jp
bmcgYmVjYXVzZSBXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIp
OwogICAgICAgICBtX2ZyYW1lLT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwg
UG9saWN5RGVjaXNpb24geyBpZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6
SWdub3JlLCAwLCB7IH0sIHsgfSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IGFhM2E4NjAxNzU3MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdm
ODYyMDhkOWI2YzY0ZjQxMWRiZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSog
ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJD
b3JlOjpOZXdGcmFtZU9wZW5lclBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3co
KSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dp
dGNoLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZv
cm1TdGF0ZSosIFdlYkNvcmU6OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2JmOWYzNmFhNDYyMGM5ZGU2NGVjOGE2Zjgw
ZmUzM2FiNmI3ODQ3ZC4uY2ZiZTU0ZjAyNjM0MjA5ZThhMzEyYWQ1ZWQwOWM3MjY5MDNhZWYwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3
MjMsNyArMTcyMyw3IEBAIE5PX1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGlu
Z0ZvclByb2Nlc3NMYXVuY2goTG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0
X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJl
ZEJ1ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lv
bkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQ
YWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYm
IHNoYXJlZEJ1ZmZlciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlLCBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZp
c2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9C
T1VORF9ET01BSU5TKQogICAgIHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlMTdlMTg5MzVmYWUxMTZiNDY2
MmUyNjQwNmJhZGY0Zjg3NWYxODI0Li4xZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1ZDdmZGE4
ODUzYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0yMjcsNyArMjI3LDcgQEAgZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90
OwogZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xh
c3MgSGlnaGxpZ2h0UmVxdWVzdE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFNl
bGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0
aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTc1LDcg
KzE1NzUsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1l
Kik7CiAKLSAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGlu
Z1VSTCwgY29uc3QgVXNlckRhdGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWRE
YXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJE
YXRhJiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6
OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlD
bG9zZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MzYx
ZDU3ZGE4MDMzY2U0NTA5MGU5YzZmNWJmNmE1YTE4OTE4NDYuLmEwYWE1NTRmNzQ5ODIwMmQwYmIw
NmNmOTc3MDFjMjQ5MjU1OWQ0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9u
LCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2li
bGVBcmVhKCkKIAotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0
ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBl
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2ll
c0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIg
YmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJh
Y2tGb3J3YXJkVHlwZSwgZW51bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNj
cm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZl
cnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCAxNTJmZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4w
NTE2MjcwMDlhNjZlMTI0YWE5NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZy
YW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IFdlYkNvcmU6Ok5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
U2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
ICBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBT
d2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJD
b3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5h
bDsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCmluZGV4IGJmZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQu
LjBjZmJlZWUwNDQ3ZDJlMjg1NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCkBAIC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hTaG93KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJd
IHdlYlZpZXdTaG93OndlYlZpZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3
ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFk
MGEuLmM1YWZhMTMzN2RiNGUyZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmll
dyk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xp
Y3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZy
YW1lLT53ZWJWaWV3KCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2
NWFlOTQyYzI5Yjg5NmQ4Li42MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0
R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJl
c3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTZm
OWU3NWE5YTAzNTk3YjI5M2MzYWE0OTM4M2RiZWZlODljZGZkYy4uZWQ3NGJlMWY0YThlNDM3NzNi
ZWM2ZTY1ODBlNWFjNmU0N2FjN2RmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mt
c3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgdG8gdmFs
aWRhdGUgdGhhdCB3ZSBhcmUgaW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
OgorICAgICAgICAoLVtQU09OU2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3
aXRoQ09PUFZhbHVlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxT
Y2hlbWVUYXNrOl0pOgorCiAyMDIxLTA4LTIzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFBDTTogU3VwcG9ydCBlcGhlbWVyYWwgbWVhc3VyZW1lbnQgd2l0
aCBub24tcGVyc2lzdGVudCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggZjliOGRhZjY5ZjQ0NzQyNzk1ZmQ4ZjkxNmM2
ZjZmODViNDBlNDg2MS4uMjI0Yzk0MmU4N2M3NGU0NjU0NzIyMGQ4ZjRiNTg1NGE0YTE2ODVmZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNTAsMTIgKzI1MCwxNCBAQCBA
aW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAg
ICAgY29uc3QgY2hhciogX2J5dGVzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRp
cmVjdHM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBp
bmdzOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwogICAgIEhhc2hT
ZXQ8aWQgPFdLVVJMU2NoZW1lVGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxk
UmVzcG9uZEFzeW5jaHJvbm91c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6
KGNvbnN0IGNoYXIqKWJ5dGVzOwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5T
U3RyaW5nICopc291cmNlVVJMU3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0
aW9uVVJMU3RyaW5nOwogLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcg
Kil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhOworLSAodm9pZClhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilk
YXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFBTT05TY2hlbWUKQEAgLTI3Nyw2ICsyNzksMTMgQEAgLSAodm9pZClhZGRNYXBw
aW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFy
KilkYXRhCiAgICAgX2RhdGFNYXBwaW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRo
Qnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6
Tk9dKTsKIH0KIAorLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1
cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNo
YXIqKWNvb3BWYWx1ZQoreworICAgIFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0
cmluZyB0b0RhdGE6ZGF0YV07CisgICAgaWYgKGNvb3BWYWx1ZSkKKyAgICAgICAgX2Nvb3BWYWx1
ZXMuYWRkKHVybFN0cmluZywgY29vcFZhbHVlKTsKK30KKwogLSAodm9pZClzZXRTaG91bGRSZXNw
b25kQXN5bmNocm9ub3VzbHk6KEJPT0wpdmFsdWUKIHsKICAgICBfc2hvdWxkUmVzcG9uZEFzeW5j
aHJvbm91c2x5ID0gdmFsdWU7CkBAIC0zMTEsOCArMzIwLDE1IEBAIC0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRh
c2s+KXRhCiAgICAgICAgIFsoaWQ8V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfZGlkUGVy
Zm9ybVJlZGlyZWN0aW9uOnJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpyZXF1ZXN0
LmdldCgpXTsKICAgICB9CiAKLSAgICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW2ZpbmFs
VVJMID0gcmV0YWluUHRyKGZpbmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgewot
ICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNV
UkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgTUlNRVR5cGU6QCJ0
ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7
CisgICAgZG9Bc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KFtzZWxmLCBmaW5hbFVSTCA9IHJldGFp
blB0cihmaW5hbFVSTCldKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgTlNN
dXRhYmxlRGljdGlvbmFyeSogaGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5
IGRpY3Rpb25hcnldOworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ0ZXh0
L2h0bWwiIGZvcktleTpAIkNvbnRlbnQtVHlwZSJdOworICAgICAgICBbaGVhZGVyRGljdGlvbmFy
eSBzZXRPYmplY3Q6QCIxIiBmb3JLZXk6QCJDb250ZW50LUxlbmd0aCJdOworICAgICAgICBhdXRv
IGNvb3BWYWx1ZSA9IF9jb29wVmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsK
KyAgICAgICAgaWYgKCFjb29wVmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRp
Y3Rpb25hcnkgc2V0T2JqZWN0OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSJdOworCisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5T
KFtbTlNIVFRQVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIHN0
YXR1c0NvZGU6MjAwIEhUVFBWZXJzaW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpoZWFkZXJE
aWN0aW9uYXJ5XSk7CiAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5n
ZXQoKV07CiAgICAgfSwgMC4xKTsKIApAQCAtNDA5LDggKzQyNSw2IEBAIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIClQU09O
UkVTT1VSQ0UiOwogCi0jaWYgUExBVEZPUk0oTUFDKQotCiBzdGF0aWMgY29uc3QgY2hhciogd2lu
ZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2Ny
aXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpAQCAtNDg4LDYgKzUwMiw3IEBAIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNPVVJDRSI7CiAK
KyNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0
ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
cGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgewpAQCAtNDk3LDggKzUxMiw3IEBAIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4K
IDxhIGlkPSJ0ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5O
YXZpZ2F0ZTwvYT4KIClQU09OUkVTT1VSQ0UiOwotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQor
I2VuZGlmCiAKIHN0YXRpYyBSZXRhaW5QdHI8X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBw
c29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCkKIHsKQEAgLTExOTcsOCArMTIxMSw2IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXNzaW9uUmVzdG9yZSkKICAgICBF
WFBFQ1RfTkUocGlkMywgcGlkNCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJv
Y2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIHsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAg
LTEyMDYsNiArMTIxOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5O
b09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJh
dGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9j
XSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZU5vT3Bl
bmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyNDUsNiArMTI1
OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0U2FtZVNpdGVXaW5kb3dPcGVu
Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxv
Y10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkJ1
dFNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBz
ZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpA
QCAtMTI4NSw2ICsxMjk5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Bl
bldpdGhPcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZp
Z3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBh
bGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVX
aXRoT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2No
ZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEzMjQs
NiArMTMzOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVy
KQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNl
dFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZ
RVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRX
aXRoQnl0ZXM6d2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdKTsKICAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVS
TFNjaGVtZTpAIlBTT04iXTsKIApAQCAtMTM2Miw2ICsxMzc4LDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaXRoT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29s
LmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0g
YWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBw
aW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0
YTp0YXJnZXRCbGFua0Nyb3NzU2l0ZVdpdGhFeHBsaWNpdE9wZW5lclRlc3RCeXRlc107CiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBm
b3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDAxLDYgKzE0MTgsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldEltcGxpY2l0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJv
Y2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10u
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhh
bmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVy
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRt
bCIgdG9EYXRhOnRhcmdldEJsYW5rQ3Jvc3NTaXRlV2l0aEltcGxpY2l0Tm9PcGVuZXJUZXN0Qnl0
ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRs
ZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTQ0MCw2ICsxNDU4LDcgQEAgVEVT
VChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8g
aGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRs
ZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIiB0b0RhdGE6dGFyZ2V0QmxhbmtDcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBm
b3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNDc5LDYgKzE0OTgsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wu
Z2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBh
ZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRh
OnRhcmdldEJsYW5rU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6
QCJQU09OIl07CkBAIC0xNTExLDggKzE1MzEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0
ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIpCiAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwogfQogCi0j
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVj
dEZyb21OZXdXZWJWaWV3KQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0g
cHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTA5NCw4ICs1MTEyLDYgQEAgVEVT
VChQcm9jZXNzU3dhcCwgTG9hZGluZ1N0YXRlQWZ0ZXJQb2xpY3lEZWNpc2lvbikKICAgICBbd2Vi
VmlldyByZW1vdmVPYnNlcnZlcjpsb2FkT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIlVSTCIg
Y29udGV4dDp3ZWJWaWV3LmdldCgpXTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogc3RhdGlj
IGNvbnN0IGNoYXIqIHNhdmVPcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3Jp
cHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CkBAIC01MTA3LDYgKzUxMjMsOCBAQCB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5r
QWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZXIpCiB7CiAgICAgYXV0byB3
ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOworCiAgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBh
ZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1s
IiB0b0RhdGE6d2luZG93T3BlblNhbWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107IC8vIE9wZW5z
ICJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRsZXIgYWRkTWFw
cGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIgdG9E
YXRhOnNhdmVPcGVuZXJUZXN0Qnl0ZXNdOwpAQCAtNTE4MCw2ICs1MTk4LDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3Bl
bmVyKQogVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nl
c3NTd2FwcGluZ09mT3BlbmVlKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVt
ZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNp
dGVXaXRoT3BlbmVyVGVzdEJ5dGVzXTsgLy8gT3BlbnMgInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMi5odG1sIi4KICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiB0b0RhdGE6c2F2ZU9wZW5lclRlc3RCeXRlc107
CkBAIC01MjM1LDggKzUyNTQsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJB
UElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZWUpCiAgICAgZG9uZSA9IGZhbHNlOwog
fQogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCiBlbnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBO
bywgWWVzIH07CiBzdGF0aWMgdm9pZCBydW5Qcm9jZXNzU3dhcER1ZVRvUmVsYXRlZFdlYlZpZXdU
ZXN0KE5TVVJMKiByZWxhdGVkVmlld1VSTCwgTlNVUkwqIHRhcmdldFVSTCwgRXhwZWN0U3dhcCBl
eHBlY3RTd2FwKQogewpAQCAtNzE1MSwzICs3MTY4LDIzMyBAQCBURVNUKFdlYlByb2Nlc3NDYWNo
ZSwgQ2xlYXJXaGVuRW50ZXJpbmdDYWNoZSkKICAgICAvLyBDbGVhciB0aGUgV2ViUHJvY2VzcyBj
YWNoZSB3aGlsZSB0aGUgcHJvY2Vzc2VzIGFyZSBiZWluZyBjaGVja2VkIGZvciByZXNwb25zaXZl
bmVzcy4KICAgICBbcHJvY2Vzc1Bvb2wgX2NsZWFyV2ViUHJvY2Vzc0NhY2hlXTsKIH0KKworc3Rh
dGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgPSBSIlBT
T05SRVNPVVJDRSgKKzxzY3JpcHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
dyA9IHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiwgImZvbyIp
OworfQorPC9zY3JpcHQ+CispUFNPTlJFU09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdp
bmRvd09wZW5TYW1lT3JpZ2luQ09PUFRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHNjcmlw
dD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3ID0gd2luZG93Lm9wZW4oInBv
cHVwLmh0bWwiLCAiZm9vIik7Cit9Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitlbnVt
IGNsYXNzIElzU2FtZU9yaWdpbiA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIERvU2Vy
dmVyU2lkZVJlZGlyZWN0IDogYm9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQ
cm9jZXNzU3dhcFRlc3QoY29uc3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGlu
YXRpb25DT09QLCBJc1NhbWVPcmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVj
dCBkb1NlcnZlclNpZGVSZWRpcmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQoreworICAgIGF1
dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bigpOworICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxv
Y10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKKworICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBz
ZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0g
WUVTOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVm
ZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5r
ZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsK
KyAgICAgICAgICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNP
TlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIGlmIChpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3Jp
Z2luOjpZZXMpIHsKKyAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmln
aW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChk
b1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAg
ICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvcG9wdXAuaHRtbCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
cG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCJdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFw
cGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVk
aXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1Bd
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJM
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAi
IHdpdGhDT09QVmFsdWU6ZGVzdGluYXRpb25DT09QXTsKKyAgICB9IGVsc2UgeworICAgICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhD
T09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9
PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRS
ZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0
b1VSTFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0
bWwiXTsKKyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy5hcHBsZS5jb20vcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1
cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBs
ZS5jb20vcG9wdXAuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlv
bkNPT1BdOworICAgIH0KKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKworICAgIF9fYmxvY2sgdW5zaWduZWQgbnVtYmVy
T2ZQcm92aXNpb25hbExvYWRzID0gMDsKKyAgICBuYXZpZ2F0aW9uRGVsZWdhdGUtPmRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFuZGxlciA9IF57CisgICAgICAgICsrbnVtYmVyT2ZQcm92
aXNpb25hbExvYWRzOworICAgIH07CisKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9w
dE5TKFtbUFNPTlVJRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmF2aWdhdGlvbkRlbGVnYXRlOm5h
dmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlE
ZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CisgICAgbnVt
YmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3JlYXRlV2Vi
Vmlldyk7CisgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgIEVYUEVDVF9FUSgzLCBudW1iZXJP
ZkRlY2lkZVBvbGljeUNhbGxzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc2VydmVyUmVkaXJlY3Rl
ZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9s
aWN5Q2FsbHMpOworICAgICAgICBFWFBFQ1RfRkFMU0Uoc2VydmVyUmVkaXJlY3RlZCk7CisgICAg
fQorICAgIEVYUEVDVF9FUSgyVSwgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzKTsgLy8gT25lIGlu
IGVhY2ggdmlldy4KKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKKyAgICBhdXRvIHBpZDIgPSBbY3JlYXRl
ZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDIp
OworCisgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICBFWFBF
Q1RfTkUocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfRVEocGlkMSwgcGlk
Mik7CisKKyAgICBib29sIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIncuY2xvc2VkID8gJ3RydWUnIDogJ2ZhbHNlJyIgY29t
cGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBOU1N0cmluZyAqaXNDbG9zZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChl
eHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAInRydWUiLCBpc0Nsb3NlZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShAImZhbHNlIiwgaXNDbG9zZWQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNo
ZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVy
OiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndp
bmRvd05hbWUgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09
IEV4cGVjdFN3YXA6Ok5vICYmIGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsKKyAgICAg
ICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICAvLyBPcGVuZWUg
c2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lciBvciBhIG5hbWUuCisgICAgZmluaXNoZWRSdW5uaW5n
U2NyaXB0ID0gZmFsc2U7CisgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
IndpbmRvdy5vcGVuZXIgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZd
IChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNPcGVu
ZXIgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVj
dFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaGFzT3Bl
bmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1ZSIs
IGhhc09wZW5lcik7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQp
OworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2luZG93
TmFtZSA9IChOU1N0cmluZyAqKXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhw
ZWN0U3dhcDo6WWVzKQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFt
ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdp
bmRvd05hbWUpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsK
KworICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCIgY29tcGxldGlv
bkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0
cmluZyAqaW5uZXJUZXh0ID0gKE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJwb3B1cCIsIGlubmVyVGV4dCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1Njcmlw
dCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQpOworCisgICAgY3JlYXRlZFdlYlZpZXcgPSBudWxscHRyOworfQorCitU
RVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7
CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1Nh
bWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMp
OworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVP
cmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNh
bWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywg
RXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olll
cywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93
UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ct
cG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdT
YW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFBy
b2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luVG9DT09QU2FtZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0
KCJzYW1lLW9yaWdpbiIsICJzYW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2lu
V2l0aFJlZGlyZWN0KQoreworICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVk
aXJlY3QgZG9lc24ndCBoYXZlIENPT1A9c2FtZS1vcmlnaW4uCisgICAgcnVuQ09PUFByb2Nlc3NT
d2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQ
cm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkK
K3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9y
aWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7Cit9
CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmln
aW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4i
LCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6
Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09P
UFNhbWVPcmlnaW4yKQoreworICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25l
IiwgInNhbWUtb3JpZ2luIiwgSXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6
Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5n
Q3Jvc3NPcmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2Fw
VGVzdCgic2FtZS1vcmlnaW4iLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmln
aW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisK
K1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdp
blRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5v
KTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcAppbmRleCAxZGVjZjMwNzNhYWYzMTQ1YjFkOWI5NzI1YjVjZDViZTNhMjc3MmU0
Li45M2Q4NTc1YTNmODFkODcxNTYyOGMwM2YxZmJiYTU5MzMwYTZmZjU0IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCkBAIC02MzQsNiArNjM0LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
CiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIC8vIFdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiByZXNvdXJjZSByZXNwb25zZSwg
dGhlIHByZXZpb3VzIHByb2Nlc3MncyBsb2FkIGdldHMgaW50ZXJydXB0ZWQgYnkgcG9saWN5IGRl
Y2lzaW9uCisgICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdG8gaW50ZXJydXB0IHRoZSB0ZXN0Lgor
ICAgIGlmIChXS0Vycm9yR2V0RXJyb3JDb2RlKGVycm9yKSA9PSBrV0tFcnJvckNvZGVGcmFtZUxv
YWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlICYmIFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShm
cmFtZSkgJiYgIW1fZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9h
ZENhbGxiYWNrcygpKSB7CiAgICAgICAgIGR1bXBMb2FkRXZlbnQoZnJhbWUsICJkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkV2l0aEVycm9yIik7CiAgICAgICAgIGF1dG8gY29kZSA9IFdLRXJyb3JHZXRF
cnJvckNvZGUoZXJyb3IpOwpAQCAtNjUyLDYgKzY1Nyw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICBp
ZiAoIWluamVjdGVkQnVuZGxlLmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIG1fZGlkQ29t
bWl0TG9hZEZvck1haW5GcmFtZSA9IHRydWU7CisKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQogICAgICAgICByZXR1
cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5MWI5
YTIxOTc1MDM0MjExMmUuLmFkNjYyODAyOGU1ZjM4NjExN2FiNDJkYzRjNWZjNzIzOWZlNzVlZDgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAtMTgwLDYgKzE4MCw3IEBAIHByaXZhdGU6CiAKICAg
ICBXS0J1bmRsZVBhZ2VSZWYgbV9wYWdlOwogICAgIFdLUmV0YWluUHRyPFdLQnVuZGxlU2NyaXB0
V29ybGRSZWY+IG1fd29ybGQ7CisgICAgYm9vbCBtX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUg
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWRlYmEwNzk2YWMz
YmZjODQ2NmU3ZjE4MmMzZDdhNzBiYTJhZWY2Zi4uYjFhMzE5ZTJlNWFiZDZkMmJlYzc0Y2ExOGZl
OWU4YjQ3NDA5M2Q1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4LTIzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nl
c3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBTa2lwIENPT1AgdGVzdHMgb24gV0sxIGFz
IHdlIG9ubHkgaGF2ZSBhIHdvcmtpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdLMi4KKworICAgICAg
ICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wOC0yNCAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjgxMzA1KSBbR1N0
cmVhbWVyXSBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1yYXRlLmh0bWwg
dGltZW91dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGIyNzc4MjRiOGYwMzI0
YjllN2Y0ODMwOTFiY2YwYmY0YjY5Mjk1MWQuLjE5M2VkNjRkMzZkYTUxOGIwODJlNjk3YzdjNmEx
ZTFmZjQ3YjBkYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2
ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBN
aW5vciB0ZXN0IHJlYmFzZWxpbmUgZHVlIHRvIGxvZ2dpbmcgY2hhbmdlcy4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAt
YmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMjQgIFRpbSBOZ3V5ZW4g
IDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGNhbmNlbCBkaWFsb2cgdGFzayB0byBg
ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyYC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBv
bGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNzZmYmQ2ZTFmN2Jj
Nzg4MzlmM2FjNDdlMmI5NWZmNDc1NDE0NjY3Ni4uMDMyM2E1MWQ2YzUwMzc4MDdhYjI5MmJjNmJl
YjQzOWU3NjhiM2VjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1w
b3B1cC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxv
Yi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw2IEBAIENPTlNPTEUgTUVTU0FH
RTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsu
aHRtbCBiZWNhCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczov
LzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBj
aGVja3MuCiBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgcmVzb3Vy
Y2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhlYWRlci4KIENPTlNP
TEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMv
Y29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUg
TUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24v
YmxhbmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdp
bi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgotQ09OU09MRSBNRVNTQUdFOiBGZXRj
aCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRt
bCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogCiBQQVNTIENPT1ArQ09FUCBibG9iIFVS
TCBwb3B1cDogd2luZG93Lm9wZW4oKQogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IDxh
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdh
dGUtdG9wLXRvLWFib3V0YmxhbmsuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mt
b3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG9wLXRvLWFib3V0YmxhbmsuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiM2VjOGVmOThkNWI4YWJjOTAwMDMxMmM2ZDYzMjQzZmQ1
NmU1MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBv
bGljeS9uYXZpZ2F0ZS10b3AtdG8tYWJvdXRibGFuay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMiBAQAorTm9uLWluaXRpYWwgZW1wdHkgZG9jdW1lbnRzIChhYm91dDpibGFuaykgc2hv
dWxkIGluaGVyaXQgdGhlaXIgY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgZnJvbSB0aGUgbmF2
aWdhdGlvbidzIGluaXRpYXRvciB0b3AgbGV2ZWwgZG9jdW1lbnQsIGlmIHRoZSBpbml0aWF0b3Ig
YW5kIGl0cyB0b3AgbGV2ZWwgZG9jdW1lbnQgYXJlIHNhbWUtb3JpZ2luLCBvciBkZWZhdWx0ICh0
byB1bnNhZmUtbm9uZSkgb3RoZXJ3aXNlLgorCitDcmVhdGUgdGhlIG9wZW5lciBwb3B1cCB3aXRo
IGEgZ2l2ZW4gQ09PUCBvcGVuZXJDT09QLgorQWRkIGlmcmFtZSB0byB0aGUgb3BlbmVyIHBvcHVw
IHRoYXQgaXMgZWl0aGVyIHNhbWUtb3JpZ2luIG9yIGNyb3NzLW9yaWdpbi4KK09wZW5lciBvcGVu
cyBhIG5ldyB3aW5kb3csIHRvIGEgbmV0d29yayBkb2N1bWVudCB3aXRoIHRoZSBzYW1lIG9yaWdp
biBhbmQgQ09PUCB2YWx1ZSBhcyBvcGVuZXIuCitPcGVuZXIncyBpZnJhbWUgbmF2aWdhdGVzIGl0
cyBwYXJlbnQgZnJhbWUgKG9wZW5lcikgdG8gYWJvdXQ6YmxhbmsuCitWZXJpZnkgdGhlIG9wZW5l
ZSBzdGlsbCBoYXMgYWNjZXNzIHRvIGl0cyBvcGVuZXIuCisKK0ZBSUwgTmF2aWdhdGUgdG9wIHRv
IGFib3V0OmJsYW5rIGZyb20gaWZyYW1lIHdpdGggb3BlbmVyIENPT1A6IHxoZWFkZXIoQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3ksc2FtZS1vcmlnaW4pLCBpZnJhbWUgb3JpZ2luOiBodHRwczov
L2xvY2FsaG9zdDo5NDQzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhYm91dDpibGFuayBsb2Fk
ZWQiIGJ1dCBnb3QgImFib3V0OmJsYW5rIE5PVCBsb2FkZWQiCitGQUlMIE5hdmlnYXRlIHRvcCB0
byBhYm91dDpibGFuayBmcm9tIGlmcmFtZSB3aXRoIG9wZW5lciBDT09QOiB8aGVhZGVyKENyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5LHNhbWUtb3JpZ2luKSwgaWZyYW1lIG9yaWdpbjogaHR0cHM6
Ly8xMjcuMC4wLjE6OTQ0MyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvdXQ6YmxhbmsgbG9h
ZGVkIiBidXQgZ290ICJhYm91dDpibGFuayBOT1QgbG9hZGVkIgorRkFJTCBOYXZpZ2F0ZSB0b3Ag
dG8gYWJvdXQ6YmxhbmsgZnJvbSBpZnJhbWUgd2l0aCBvcGVuZXIgQ09PUDogfGhlYWRlcihDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSxzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMpLCBpZnJhbWUg
b3JpZ2luOiBodHRwczovLzEyNy4wLjAuMTo5NDQzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJh
Ym91dDpibGFuayBsb2FkZWQiIGJ1dCBnb3QgImFib3V0OmJsYW5rIE5PVCBsb2FkZWQiCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYjc2
OWQzZDEyOTRjZDU3ODU0YzE5NTdmYTNlMTA4MTU1MWJmOTBlLi4zYTFiZDU2MTQwZDc2MGQ0NGEz
ZjYxZjk2MTUyNzE3MWI1NWVjNTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNTMsOCArMzUzLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jb250ZW50LXNlY3VyaXR5LXBvbGljeS93b3JrZXItc3JjL3NlcnZpY2Ut
d29ya2UKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
ZGVzdGluYXRpb24gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBvbGljeSBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9wb3B1cC1jb29wLWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1
cmUvc2VydmVyL2NvbnRleHQuYW55LnNlcnZpY2V3b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtMzcx
LDEwICszNjksMTEgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9s
YXlvdXQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHQKIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2xldHMvcGFpbnQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRl
cmNlcHRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQogaHR0cC93cHQvd2VicnRjL3RyYW5zZmVyLWRh
dGFjaGFubmVsLXNlcnZpY2Utd29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDcm9z
cy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kgLyBDcm9zcy1PcmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5
IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0
dHAvd3B0L2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0
cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeSBbIFNraXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRk
ZXItcG9saWN5IFsgU2tpcCBdCiAKICMgUXVvdGEgY2hlY2sgbWlzc2luZyBpbiBXSzEKIGh0dHAv
dGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMWE1Njc4ZmM3YmZiMmJi
OTIxYjIxZWIxOTgxYzQyMTBhMjhhYjViLi45ZTM0OWFmZWJjMmFlZmFlZDgzZjVlMGM4NmNkOGM5
NWZjYTY2NThjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMzcxNSw4ICszNzE1LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcG9saWNpZXMvcmVmZXJyZXItb3JpZ2luLXdoZW4tY3Jvc3Mtb3IKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3BvbGljaWVzL3JlZmVycmVyLXVuc2FmZS11
cmwtc2VydmljZS13b3JrZXIuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbiBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2Ut
cG9saWN5IFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvcG9wdXAtY29vcC1ieS1zdy1mcm9tLWNvb3AuaHR0cHMu
aHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNvb3AtYnktc3cuaHR0cHMuaHRtbCBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2ZXItdGltaW5nL3NlcnZpY2Vf
d29ya2VyX2lkbC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2VycyBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlv
bi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0
dHBzLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MjUsMTAgKzM3MjMsMTEg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LXNlcnZpY2Utd29ya2VyLWludGVyY2VwdGkKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0
dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvcGFpbnQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBb
IFNraXAgXQogCi0jIE5vIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgorIyBO
byBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSAvIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xp
Y3kgaW4gV0sxLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0
cHMuaHRtbCBbIFNraXAgXQotaHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9s
aWN5L3JlcXVpcmUtY29ycC5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0
dHAvd3B0L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1s
L2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3kgWyBTa2lwIF0KIAogIyBObyBoZWFkZXIgZmls
dGVyaW5nIGZvciBXSzEKIGh0dHAvd3B0L2xvYWRpbmcvcmVkaXJlY3QtaGVhZGVycy5odG1sIFsg
U2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436319</attachid>
            <date>2021-08-24 12:19:53 -0700</date>
            <delta_ts>2021-08-24 16:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229203-20210824121952.patch</filename>
            <type>text/plain</type>
            <size>117352</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEzN2ZkOTI4ZDAzMTA5
ODc5YmZkZDkxZGM3M2VkMGFjOTU3MjQ2OC4uOGFiYzA2MjEzNzdlYzIwYzM2NTFhMTA0OGYwODZj
OGQ3MWIyZDc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA4LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHBy
b2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBo
ZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
OTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBw
b3J0IGZvciB0aGUgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVy
LiBIb3dldmVyLAorICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3Vw
IG9uIEhUVFAgcmVzcG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAg
V2ViUHJvY2Vzcy4gVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0aGF0IHdlIG5vdyBzd2FwIFdlYlBy
b2Nlc3Mgd2hlbiBzd2l0Y2hpbmcgYnJvd3NpbmcKKyAgICAgICAgY29udGV4dCBncm91cCBvbiBu
ZXR3b3JrIHJlc3BvbnNlIGFzIHRoaXMgd2lsbCBiZSByZXF1aXJlZCB0byBzZWN1cmVseSByZS1l
bmFibGUgV2ViIEFQSXMKKyAgICAgICAgc3VjaCBhcyBTaGFyZWRBcnJheUJ1ZmZlci4KKworICAg
ICAgICBGb3IgcHJvY2Vzcy1zd2FwcGluZywgd2UgcmV1c2UgbW9zdCBvZiB0aGUgc2FtZSBsb2dp
YyBhcyBwcm9jZXNzLXN3YXAgb24gbmF2aWdhdGlvbiAoUFNPTikuCisgICAgICAgIEEgZmV3IGRp
ZmZlcmVuY2VzIGFyZSB0aGF0OgorICAgICAgICAtIFdlIHN3YXAgb24gcmVzcG9uc2UgcG9saWN5
IGRlY2lzaW9uIGluc3RlYWQgb2YgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24KKyAgICAgICAg
LSBXZSB1c2VkIHRvIGhhdmUgYSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgWWVzL05vIGVu
dW0uIEl0IGlzIG5vdyB0cmktc3RhdGU6IE5vLAorICAgICAgICAgIFllc0FmdGVyTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24uIFdlIG5lZWQg
dGhpcyBuZXcgc3RhdGUKKyAgICAgICAgICB0byBhdm9pZCBkdXBsaWNhdGUgcmVzcG9uc2UgcG9s
aWN5IGRlbGVnYXRlIGNhbGxzIGFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgYW5kIHRvIGF2b2lkCisg
ICAgICAgICAgc2VuZGluZyBkdXBsaWNhdGUgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgSVBDcyBh
ZnRlciBwcm9jZXMtc3dhcHBpbmcuCisgICAgICAgIC0gQWZ0ZXIgcHJvY2Vzcy1zd2FwcGluZyBv
biBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB3ZSBjbG9zZSB0aGUgcHJldmlvdXMgcGFnZSBpbnN0ZWFk
IG9mIHRyeWluZworICAgICAgICAgIHRvIHB1dCBpdCBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaW4gYSBjYXNlIG9mIGEgYnJvd3NpbmcgY29udGV4
dAorICAgICAgICAgIGdyb3VwIHN3aXRjaCwgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNvbnRleHQg
bmVlZHMgdG8gYmUgZGlzY2FyZGVkICh3aGljaCBpcyBXZWItb2JzZXJ2YWJsZSkuCisKKyAgICAg
ICAgT25lIGltcG9ydGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgd2UgY3VycmVudGx5IHNlbmQg
dGhlIEhUVFAgcmVxdWVzdCB0byB0aGUgc2VydmVyIEFHQUlOIGFmdGVyCisgICAgICAgIGEgcHJv
Y2Vzcy1zd2FwLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG9uLWdvaW5nIGxvYWQgY3VycmVudGx5IGdl
dHMgY2FuY2VsbGVkIHVwb24gcmVjZWl2aW5nIHRoZQorICAgICAgICBuZXR3b3JrIHJlc3BvbnNl
IGFuZCBkZWNpZGluZyB0byBwcm9jZXNzLXN3YXAgYW5kIGEgbmV3IGZyZXNoIGxvYWQgZ2V0cyBp
c3N1ZWQgYnkgdGhlIG5ldworICAgICAgICBXZWJQcm9jZXNzIGFmdGVyIHN3YXBwaW5nLiBJIHdp
bGwgYWRkcmVzcyB0aGlzIGluIGEgZm9sbG93LXVwIHRvIGRlY3JlYXNlIHBhdGNoIHNpemUgYW5k
CisgICAgICAgIGNvbXBsZXhpdHkuIFdlIHdpbGwgbmVlZCB0byB0cmFuc2l0aW9uIHRoZSBsb2Fk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgZnJvbSB0aGUgb2xkIFdlYlByb2Nlc3MKKyAgICAgICAg
dG8gdGhlIG5ldyBvbmUgaW4gY2FzZSBvZiBwcm9jZXNzLXN3YXAuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyBDT09QL0NPRVAgbGF5b3V0IHRlc3RzIHRoYXQgYXJlIHN0aWxsIHBhc3Np
bmcgYW5kIG5ldyBBUEkgdGVzdHMKKyAgICAgICAgdGhhdCB2YWxpZGF0ZSB0aGF0IHdlIGFyZSBp
bmRlZWQgcHJvY2Vzcy1zd2FwcGluZy4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9w
ZW5lckhhbmRsaW5nT2ZSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6
bWF5YmVMb2FkRW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmNsZWFy
TWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpz
ZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrKToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0OjpzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgY29uc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tD
b250ZW50UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpwcmVwYXJlRm9y
TG9hZFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg6CisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisKIDIwMjEtMDgtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBUaHJlYWRTYW5pdGl6ZXI6IGRhdGEgcmFjZSBpbiBXVEY6
OlN0cmluZ0ltcGw6OmRlcmVmKCkgZm9yIFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6RW5jb2Rl
ZEZpbGVEYXRhOjpmaWxlbmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhZjA2NTczMjRiOGQ0OWNhYjdlYWI4MTZm
MTgyZWI3YzA4MWUzNGM0Li5jZGVkYTlmMjA2OTQxNGUzZTIxNjdlM2UwMDdiNWE0OTg3NjNhODg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBp
bmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBXZSByZWNlbnRseSBhZGRlZCBzdXBwb3J0IGZvciB0aGUg
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgKENPT1ApIEhUVFAgaGVhZGVyLiBIb3dldmVyLAor
ICAgICAgICB3aGVuIHN3aXRjaGluZyBicm93c2luZyBjb250ZXh0IGdyb3VwIG9uIEhUVFAgcmVz
cG9uc2UsIHdlIHdvdWxkIGtlZXAgdXNpbmcgdGhlIHNhbWUgCisgICAgICAgIFdlYlByb2Nlc3Mu
IFRoaXMgcGF0Y2ggbWFrZXMgaXQgc28gdGhhdCB3ZSBub3cgc3dhcCBXZWJQcm9jZXNzIHdoZW4g
c3dpdGNoaW5nIGJyb3dzaW5nCisgICAgICAgIGNvbnRleHQgZ3JvdXAgb24gbmV0d29yayByZXNw
b25zZSBhcyB0aGlzIHdpbGwgYmUgcmVxdWlyZWQgdG8gc2VjdXJlbHkgcmUtZW5hYmxlIFdlYiBB
UElzCisgICAgICAgIHN1Y2ggYXMgU2hhcmVkQXJyYXlCdWZmZXIuCisKKyAgICAgICAgRm9yIHBy
b2Nlc3Mtc3dhcHBpbmcsIHdlIHJldXNlIG1vc3Qgb2YgdGhlIHNhbWUgbG9naWMgYXMgcHJvY2Vz
cy1zd2FwIG9uIG5hdmlnYXRpb24gKFBTT04pLgorICAgICAgICBBIGZldyBkaWZmZXJlbmNlcyBh
cmUgdGhhdDoKKyAgICAgICAgLSBXZSBzd2FwIG9uIHJlc3BvbnNlIHBvbGljeSBkZWNpc2lvbiBp
bnN0ZWFkIG9mIG5hdmlnYXRpb24gcG9saWN5IGRlY2lzaW9uCisgICAgICAgIC0gV2UgdXNlZCB0
byBoYXZlIGEgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIFllcy9ObyBlbnVtLiBJdCBpcyBu
b3cgdHJpLXN0YXRlOiBObywKKyAgICAgICAgICBZZXNBZnRlck5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiwgWWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLiBXZSBuZWVkIHRoaXMgbmV3IHN0
YXRlCisgICAgICAgICAgdG8gYXZvaWQgZHVwbGljYXRlIHJlc3BvbnNlIHBvbGljeSBkZWxlZ2F0
ZSBjYWxscyBhZnRlciBwcm9jZXNzLXN3YXBwaW5nIGFuZCB0byBhdm9pZAorICAgICAgICAgIHNl
bmRpbmcgZHVwbGljYXRlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIElQQ3MgYWZ0ZXIgcHJvY2Vz
LXN3YXBwaW5nLgorICAgICAgICAtIEFmdGVyIHByb2Nlc3Mtc3dhcHBpbmcgb24gbmF2aWdhdGlv
biByZXNwb25zZSwgd2UgY2xvc2UgdGhlIHByZXZpb3VzIHBhZ2UgaW5zdGVhZCBvZiB0cnlpbmcK
KyAgICAgICAgICB0byBwdXQgaXQgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBQZXIgdGhl
IHNwZWNpZmljYXRpb24sIGluIGEgY2FzZSBvZiBhIGJyb3dzaW5nIGNvbnRleHQKKyAgICAgICAg
ICBncm91cCBzd2l0Y2gsIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IG5lZWRzIHRvIGJl
IGRpc2NhcmRlZCAod2hpY2ggaXMgV2ViLW9ic2VydmFibGUpLgorCisgICAgICAgIE9uZSBpbXBv
cnRhbnQgdGhpbmcgdG8gbm90ZSBpcyB0aGF0IHdlIGN1cnJlbnRseSBzZW5kIHRoZSBIVFRQIHJl
cXVlc3QgdG8gdGhlIHNlcnZlciBBR0FJTiBhZnRlcgorICAgICAgICBhIHByb2Nlc3Mtc3dhcC4g
VGhpcyBpcyBiZWNhdXNlIHRoZSBvbi1nb2luZyBsb2FkIGN1cnJlbnRseSBnZXRzIGNhbmNlbGxl
ZCB1cG9uIHJlY2VpdmluZyB0aGUKKyAgICAgICAgbmV0d29yayByZXNwb25zZSBhbmQgZGVjaWRp
bmcgdG8gcHJvY2Vzcy1zd2FwIGFuZCBhIG5ldyBmcmVzaCBsb2FkIGdldHMgaXNzdWVkIGJ5IHRo
ZSBuZXcKKyAgICAgICAgV2ViUHJvY2VzcyBhZnRlciBzd2FwcGluZy4gSSB3aWxsIGFkZHJlc3Mg
dGhpcyBpbiBhIGZvbGxvdy11cCB0byBkZWNyZWFzZSBwYXRjaCBzaXplIGFuZAorICAgICAgICBj
b21wbGV4aXR5LiBXZSB3aWxsIG5lZWQgdG8gdHJhbnNpdGlvbiB0aGUgbG9hZCBpbiB0aGUgbmV0
d29yayBwcm9jZXNzIGZyb20gdGhlIG9sZCBXZWJQcm9jZXNzCisgICAgICAgIHRvIHRoZSBuZXcg
b25lIGluIGNhc2Ugb2YgcHJvY2Vzcy1zd2FwLgorCisgICAgICAgICogU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0p
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OnNob3VsZENsb3NlUHJl
dmlvdXNQYWdlQWZ0ZXJDb21taXQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmxvYWRTaW11bGF0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om9wdGlvbmFsUmVnaXN0cmFibGVE
b21haW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZERhdGFJbXBsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTA4
LTI0ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGxhdGUgQXVndXN0IDIwMjEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCAwMWUxYjhlNTM4ZjhmZTI3M2I3NzU0NWQ4MDFiMTEzMzZkNTgx
NzkwLi5kMzEyMjgxZTY4OGQzOTM2MTM4MjQyZTZiZDdiNzQwOThkZTQzNDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDgtMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgcHJvY2Vz
cy1zd2FwcGluZyBiYXNlZCBvbiBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBIVFRQIGhlYWRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MjAz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjA0NzY4Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKToKKwogMjAyMS0wOC0xOSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dh
cmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvbGQgdW51c2VkIGNvZGUgYW5kIG91
dCBvZiBkYXRlIGNvbW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDdkZTkx
MDdkYTlmODQ2OTBkMWE1OTc4YmMxYTM0NWMwZjZjNzhjN2YuLjQ1OGZhMTYwZTkxODdkOGExNGM0
YTJmZmFiNTlhYWRhYWQzNGUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wOC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIEltcGxlbWVudCBwcm9jZXNzLXN3YXBwaW5nIGJhc2VkIG9uIENyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5IEhUVFAgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkyMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzgyMDQ3Njg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAy
MS0wOC0yMSAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBD
cmFzaCB1bmRlciBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0ZvbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDNlNGZmOWUwNDk2NGIxNmI0MjgwOTI2
Y2Y5ZTAzMjgwNTAzYzdiZTAuLmY2MWE0Y2RhZTI1ZGY5ZmFjZjc4Mzk3ZDcyMjhjZjQzMGE3NzBj
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNzgzLDE1
ICs3ODMsMTIgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6ZG9Dcm9zc09yaWdpbk9wZW5lckhhbmRs
aW5nT2ZSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogICAgIC8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzaW5nLXRoZS13ZWIuaHRtbCNwcm9jZXNz
LWEtbmF2aWdhdGUtZmV0Y2ggKFN0ZXAgMTIuNS42LjIpCiAgICAgLy8gSWYgc2FuZGJveEZsYWdz
IGlzIG5vdCBlbXB0eSBhbmQgcmVzcG9uc2VDT09QJ3MgdmFsdWUgaXMgbm90ICJ1bnNhZmUtbm9u
ZSIsIHRoZW4gc2V0IHJlc3BvbnNlIHRvIGFuIGFwcHJvcHJpYXRlIG5ldHdvcmsgZXJyb3IgYW5k
IGJyZWFrLgotICAgIGlmIChyZXNwb25zZUNPT1AudmFsdWUgIT0gQ3Jvc3NPcmlnaW5PcGVuZXJQ
b2xpY3lWYWx1ZTo6VW5zYWZlTm9uZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5jcmVhdGlvblNh
bmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CisgICAgaWYgKHJlc3BvbnNlQ09PUC52YWx1
ZSAhPSBDcm9zc09yaWdpbk9wZW5lclBvbGljeVZhbHVlOjpVbnNhZmVOb25lICYmIGZyYW1lTG9h
ZGVyKCktPmVmZmVjdGl2ZVNhbmRib3hGbGFncygpICE9IFNhbmRib3hOb25lKSB7CiAgICAgICAg
IGNhbmNlbE1haW5SZXNvdXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobV9y
ZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBtX2N1cnJlbnRD
b29wRW5mb3JjZW1lbnRSZXN1bHQgPSBlbmZvcmNlUmVzcG9uc2VDcm9zc09yaWdpbk9wZW5lclBv
bGljeShyZXNwb25zZS51cmwoKSwgcmVzcG9uc2VPcmlnaW4sIHJlc3BvbnNlQ09PUCk7Ci0gICAg
aWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRH
cm91cFN3aXRjaCkKLSAgICAgICAgZnJhbWVMb2FkZXIoKS0+c3dpdGNoQnJvd3NpbmdDb250ZXh0
c0dyb3VwKCk7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTk4LDkgKzk5NSw2IEBAIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWRvQ3Jv
c3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICByZXR1
cm47Ci0KICAgICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tz
IGNhbiBiZSBkaXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8g
U2VlIDxyZGFyOi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgogI2lmICFVU0Uo
Q0YpCkBAIC0xMDQyLDExICsxMDM2LDIwIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlc3BvbnNl
UmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpCiAgICAg
fQogI2VuZGlmCiAKKyAgICBpZiAoIWRvQ3Jvc3NPcmlnaW5PcGVuZXJIYW5kbGluZ09mUmVzcG9u
c2UocmVzcG9uc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpleGNoYW5nZSht
X2lzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9saWN5Q2hlY2ssIGZhbHNlKSkgeworICAg
ICAgICBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb246OlVzZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1haW5S
ZXNvdXJjZUxvYWRlciA9IHRoaXMtPm1haW5SZXNvdXJjZUxvYWRlcigpOwogICAgIGlmIChtYWlu
UmVzb3VyY2VMb2FkZXIpCiAgICAgICAgIG1haW5SZXNvdXJjZUxvYWRlci0+bWFya0luQXN5bmNS
ZXNwb25zZVBvbGljeUNoZWNrKCk7CiAgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9IFBvbGlj
eUNoZWNrSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgZnJhbWVMb2FkZXIoKS0+Y2hlY2tDb250
ZW50UG9saWN5KG1fcmVzcG9uc2UsIHJlcXVlc3RJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluUmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKG1haW5S
ZXNvdXJjZUxvYWRlciksCisgICAgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNo
ID0gbV9jdXJyZW50Q29vcEVuZm9yY2VtZW50UmVzdWx0ICYmIG1fY3VycmVudENvb3BFbmZvcmNl
bWVudFJlc3VsdC0+bmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaDsKKyAgICBmcmFtZUxv
YWRlcigpLT5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgcmVxdWVzdElkZW50aWZpZXIs
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG1haW5SZXNvdXJjZUxvYWRlciA9IFdURk1vdmUobWFpblJlc291cmNl
TG9hZGVyKSwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUG9saWN5QWN0aW9uIHBvbGljeSwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHJlc3BvbnNlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHJlc3BvbnNlSWRlbnRpZmllci5pc1ZhbGlkRm9yKHJlcXVlc3RJ
ZGVudGlmaWVyKSk7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7
CkBAIC0yMDA4LDkgKzIwMTEsMTUgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1w
dHkoKQogICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwi
IDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUo
bV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKICAg
ICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZShtX3JlcXVlc3QudXJsKCksIG1pbWVUeXBl
LCAwLCAiVVRGLTgiX3MpOwogCi0gICAgaWYgKGZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgp
LmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQorICAgIGlmIChmcmFtZUxvYWRlcigp
LT5zdGF0ZU1hY2hpbmUoKS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkgewogICAg
ICAgICBkb0Nyb3NzT3JpZ2luT3BlbmVySGFuZGxpbmdPZlJlc3BvbnNlKG1fcmVzcG9uc2UpOwog
CisgICAgICAgIC8vIEZJWE1FOiBOb24taW5pdGlhbCBhYm91dDpibGFuayBsb2FkcyBtYXkgY2F1
c2UgYSBicm93c2luZyBjb250ZXh0IGdyb3VwIHN3aXRjaC4gSG93ZXZlciwgc3VjaCBsb2FkIGlz
IHN5bmNocm9ub3VzIGFuZCBkb2Vzbid0CisgICAgICAgIC8vIGludm9sdmUgYSByZXNwb25zZSBw
b2xpY3kgZGVjaXNpb24uIEFzIGEgcmVzdWx0LCB3ZSBzaW11bGF0ZSBhIGJyb3dzaW5nIGNvbnRl
eHQgZ3JvdXAgc3dpdGNoIHdpdGhvdXQgYWN0dWFsbHkgc3dhcHBpbmcgcHJvY2Vzcy4KKyAgICAg
ICAgaWYgKG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCAmJiBtX2N1cnJlbnRDb29wRW5m
b3JjZW1lbnRSZXN1bHQtPm5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gpCisgICAgICAg
ICAgICBmcmFtZUxvYWRlcigpLT5zd2l0Y2hCcm93c2luZ0NvbnRleHRzR3JvdXAoKTsKKyAgICB9
CisKICAgICBmaW5pc2hlZExvYWRpbmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTIyMzgs
NiArMjI0Nyw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNsZWFyTWFpblJlc291cmNlKCkKICNl
bmRpZgogCiAgICAgbV9tYWluUmVzb3VyY2UgPSBudWxscHRyOworICAgIG1faXNDb250aW51aW5n
TG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjayA9IGZhbHNlOwogCiAgICAgdW5yZWdpc3RlclRl
bXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmgKaW5kZXggZDhmZjFkYTNiZDY0MDZjNWQ3NjQ4NzZhYWQ0OWJiZDAwNGFjMTc3
MC4uMWM4NzE0MmY0OWZhNzEyZWY0Y2JlODc5MDdhNzY2YjNlMDJjZWIyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKQEAgLTQyNSw2ICs0MjUsOSBAQCBwdWJsaWM6CiAK
ICAgICBDcm9zc09yaWdpbk9wZW5lclBvbGljeSBjcm9zc09yaWdpbk9wZW5lclBvbGljeSgpIGNv
bnN0IHsgcmV0dXJuIG1fY3VycmVudENvb3BFbmZvcmNlbWVudFJlc3VsdCA/IG1fY3VycmVudENv
b3BFbmZvcmNlbWVudFJlc3VsdC0+Y3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kgOiBDcm9zc09yaWdp
bk9wZW5lclBvbGljeSB7IH07IH0KIAorICAgIGJvb2wgaXNDb250aW51aW5nTG9hZEFmdGVyUmVz
cG9uc2VQb2xpY3lDaGVjaygpIGNvbnN0IHsgcmV0dXJuIG1faXNDb250aW51aW5nTG9hZEFmdGVy
UmVzcG9uc2VQb2xpY3lDaGVjazsgfQorICAgIHZvaWQgc2V0SXNDb250aW51aW5nTG9hZEFmdGVy
UmVzcG9uc2VQb2xpY3lDaGVjayhib29sIGlzQ29udGludWluZ0xvYWRBZnRlclJlc3BvbnNlUG9s
aWN5Q2hlY2spIHsgbV9pc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25zZVBvbGljeUNoZWNrID0g
aXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xpY3lDaGVjazsgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKIApAQCAtNTYxLDYgKzU2NCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2dvdEZpcnN0Qnl0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ2xpZW50
UmVkaXJlY3QgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNDb250aW51aW5nTG9hZEFmdGVyUmVzcG9uc2VQb2xp
Y3lDaGVjayB7IGZhbHNlIH07CiAKICAgICAvLyBGSVhNRTogRG9jdW1lbnQ6Om1fcHJvY2Vzc2lu
Z0xvYWRFdmVudCBhbmQgRG9jdW1lbnRMb2FkZXI6Om1fd2FzT25sb2FkRGlzcGF0Y2hlZCBhcmUg
cm91Z2hseSB0aGUgc2FtZQogICAgIC8vIGFuZCBzaG91bGQgYmUgbWVyZ2VkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA4ZGNhNzViOTQwNzk1MDc4OTIzNmQyYWEx
MjBmNDNhN2IzYjFjNmQ3Li45NjRlMmRkMTIwNzAzMzFhNjVjYTM0MWFjNzBlNGIyODc0MjAwYTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtODE2LDcgKzgxNiw3
IEBAIHZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKIH0KIAot
dm9pZCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikK
K3ZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sLCBGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDY5YTExMzIzOGEwYThjNmE2ZmU1YjAzNmRmMDdmNDgzOWY3OWFkNzAu
LjEyMGE0YTUyMGJkMWYxMmQ3M2QxNGY2MmVlMGVlNDBiOTg4NGVhYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTYsNyArOTYsNyBA
QCBwcml2YXRlOgogICAgIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYsIE5ld0ZyYW1lT3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
U2hvdygpIGZpbmFsOwogCi0gICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmlu
YWw7CisgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5
Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCmlu
ZGV4IDk0YWU1NWE2NzY1ZjM4MTRiZWY0NTVmMmRiYWUwNmQwM2RmMjQ2ZGEuLjM3MGRmOGZhYTVj
NzY0NGRkNTg4OGE4N2IyOWY4Yzk4MjFlMjU1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZFJlcXVlc3QuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgIlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oIgogI2lu
Y2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAt
NjEsOCArNjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDaGVja05ld1dpbmRvd1Bv
bGljeShib29sIGNoZWNrUG9saWN5KSB7IG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgPSBj
aGVja1BvbGljeTsgfQogICAgIGJvb2wgc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZENoZWNrTmV3V2luZG93UG9saWN5OyB9CiAKLSAgICB2b2lkIHNl
dFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOyB9
CisgICAgdm9pZCBzZXRTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCkgeyBtX3Nob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA9IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQorICAgIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDsgfQogCiAgICAgY29u
c3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdWJz
dGl0dXRlRGF0YTsgfQogICAgIHZvaWQgc2V0U3Vic3RpdHV0ZURhdGEoY29uc3QgU3Vic3RpdHV0
ZURhdGEmIGRhdGEpIHsgbV9zdWJzdGl0dXRlRGF0YSA9IGRhdGE7IH0KQEAgLTExMyw3ICsxMTQs
NyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2NsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eTsKIAogICAgIGJvb2wgbV9zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBtX3Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCB7IGZhbHNlIH07CisgICAgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIG1fc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHsg
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyB9OwogICAgIExvY2tIaXN0b3J5IG1fbG9j
a0hpc3RvcnkgeyBMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBMb2NrQmFja0ZvcndhcmRMaXN0IG1f
bG9ja0JhY2tGb3J3YXJkTGlzdCB7IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgUmVm
ZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeSB7IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmlu
ZyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTRhYTNlZWZkY2Vm
ZjRmY2NlNmFlNWEyYzBmZDU2MDVlMTU0YjA5Zi4uMzkwOGY4YjAxY2FhMzZjZmEwMTE1NDY1YmE2
ZGIzOGQ2ZWVkZjVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC00
MTMsNyArNDEzLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRl
ZmVycykKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29udGVudFBvbGljeShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lk
IEZyYW1lTG9hZGVyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIG5lZWRzQnJv
d3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYg
ZnVuY3Rpb24pCiB7CiAgICAgaWYgKCFhY3RpdmVEb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAg
IC8vIExvYWQgd2FzIGNhbmNlbGxlZApAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
UG9saWN5Q2hlCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFZhbGlkYXRlIHRoZSBwb2xpY3kgY2hl
Y2sgaWRlbnRpZmllci4KLSAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHJlc3BvbnNlLCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZp
ZXIsIGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIFdURk1vdmUo
ZnVuY3Rpb24pKTsKKyAgICBjbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNl
KHJlc3BvbnNlLCBhY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCksIGlkZW50aWZpZXIs
IGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPmRvd25sb2FkQXR0cmlidXRlKCksIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFz
c2VkVGFyZ2V0LCBFdmVudCogdHJpZ2dlcmluZ0V2ZW50LCBjb25zdCBSZWZlcnJlclBvbGljeSYg
cmVmZXJyZXJQb2xpY3ksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgc3RkOjpvcHRpb25hbDxOZXdGcmFtZU9wZW5lclBvbGljeT4gb3Bl
bmVyUG9saWN5LCBjb25zdCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lz
dGVtUHJldmlld0luZm8mIHN5c3RlbVByZXZpZXdJbmZvLCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVD
bGlja01lYXN1cmVtZW50PiYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50KQpAQCAtMTQ3MCwxMCAr
MTQ3MCwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1
ZXN0KQogICAgIFJlZjxEb2N1bWVudExvYWRlcj4gbG9hZGVyID0gbV9jbGllbnQtPmNyZWF0ZURv
Y3VtZW50TG9hZGVyKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Quc3Vic3RpdHV0
ZURhdGEoKSk7CiAgICAgbG9hZGVyLT5zZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKHJl
cXVlc3QuaXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCkpOwogICAgIGxvYWRlci0+c2V0
QWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUocmVxdWVzdC5pc1JlcXVlc3RGcm9tQ2xpZW50T3JV
c2VySW5wdXQoKSk7CisgICAgbG9hZGVyLT5zZXRJc0NvbnRpbnVpbmdMb2FkQWZ0ZXJSZXNwb25z
ZVBvbGljeUNoZWNrKHJlcXVlc3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPT0gU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24p
OwogICAgIGFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKGxvYWRlci0+cmVxdWVzdCgp
KTsKICAgICBhcHBseVNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb05ld0RvY3VtZW50TG9h
ZGVyKG1fZnJhbWUsIGxvYWRlciwgcmVxdWVzdCk7CiAKLSAgICBpZiAocmVxdWVzdC5zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQoKSkgeworICAgIGlmIChyZXF1ZXN0LnNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCgpICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pIHsKICAg
ICAgICAgbG9hZGVyLT5zZXRDbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkocmVxdWVzdC5j
bGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSk7CiAgICAgICAgIGlmIChyZXF1ZXN0Lmxv
Y2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpIHsKICAgICAg
ICAgICAgIGxvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0cnVlKTsKQEAgLTE0ODEsNyArMTQ4
Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3Qp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRl
PiBjb250aW51aW5nTG9hZEd1YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVl
c3Quc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkKCkgPyBMb2FkQ29udGludWluZ1N0YXRlOjpD
b250aW51aW5nV2l0aFJlcXVlc3QgOiBMb2FkQ29udGludWluZ1N0YXRlOjpOb3RDb250aW51aW5n
KTsKKyAgICBTZXRGb3JTY29wZTxMb2FkQ29udGludWluZ1N0YXRlPiBjb250aW51aW5nTG9hZEd1
YXJkKG1fY3VycmVudExvYWRDb250aW51aW5nU3RhdGUsIHJlcXVlc3Quc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkKCkgIT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyA/IExvYWRD
b250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRoUmVxdWVzdCA6IExvYWRDb250aW51aW5nU3Rh
dGU6Ok5vdENvbnRpbnVpbmcpOwogICAgIGxvYWQobG9hZGVyLmdldCgpKTsKIH0KIApAQCAtMzc2
OCw3ICszNzY5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRl
bShIaXN0b3J5SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb20KIAogICAgIGF1dG8gaW5pdGlh
dGVkQnlNYWluRnJhbWUgPSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAotICAgIFNl
dEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2FkR3VhcmQobV9jdXJy
ZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkID09IFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzID8gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29u
dGludWluZ1dpdGhIaXN0b3J5SXRlbSA6IExvYWRDb250aW51aW5nU3RhdGU6Ok5vdENvbnRpbnVp
bmcpOworICAgIFNldEZvclNjb3BlPExvYWRDb250aW51aW5nU3RhdGU+IGNvbnRpbnVpbmdMb2Fk
R3VhcmQobV9jdXJyZW50TG9hZENvbnRpbnVpbmdTdGF0ZSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkICE9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8gPyBMb2FkQ29udGludWlu
Z1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6
Tm90Q29udGludWluZyk7CiAKICAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IEJhY2tG
b3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmdldChpdGVtLCBtX2ZyYW1lLnBhZ2UoKSkpIHsKICAg
ICAgICAgYXV0byBkb2N1bWVudExvYWRlciA9IGNhY2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmM2JkYmVmY2EzOWZiZmMyM2Y5
ZDE0YzliMjcxMTIyNmRlMjRhMGIuLmU1NmMwOGY3MDM2YTVkZmI3MzNjMmU1ZjVjZWVjZDg4NDIy
YWY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC04Miw3ICs4Miw3IEBA
IGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogZW51bSBjbGFzcyBDYWNoZVBvbGljeSA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dyZXNzIDogYm9vbDsKIGVudW0gY2xhc3MgTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uIDogdWludDhfdDsKLWVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkIDogdWludDhfdDsKIGVudW0gY2xhc3MgVXNlZExlZ2FjeVRMUyA6IGJvb2w7CiBlbnVtIGNs
YXNzIElzTWFpblJlc291cmNlIDogYm9vbCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgU2hvdWxk
VXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUgOiBib29sIHsgTm8sIFllcyB9OwpAQCAtMjIwLDcgKzIy
MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAotICAg
IHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOworICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIGJvb2wgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CiAKICAgICB2b2lkIGRpZEV4cGxpY2l0T3Blbigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDNlYjVj
ZWU2NDI2YzQ0ZGMxNzQyMjIxNWZhYWIxNTY5MzFkYjJkOWQuLjM5YmI0MDU0MDljNDE3NDc4NWE5
MzcyMjgzMDAxODYzYzBhODc3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUq
IGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgTmV3RnJhbWVPcGVu
ZXJQb2xpY3kpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgPSAwOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGljeUNoZWNrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlv
biYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBvbGlj
eUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBu
ZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1T
dGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBQb2xpY3lDaGVja0lkZW50aWZpZXIsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UsIEZvcm1TdGF0ZSosIFBvbGljeURlY2lzaW9uTW9kZSwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
LCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5o
CmluZGV4IDZkNWRlODRmMjE3OTg4NjNiYThlZWRlOGI2NDZmZTk0OGE0NTg4MmIuLjEwMzdkZjk4
ZWM0MTU1NGJmYjFkYjYyYjg5NjgyZDgzN2ZhNjU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEZyYW1lOwogY2xh
c3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWVudW0gY2xh
c3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogYm9vbDsKK2VudW0gY2xhc3MgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIDogdWludDhfdDsKIAogc3RydWN0IFN0cmluZ1dpdGhEaXJl
Y3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaAppbmRleCA3NmUwOTM1MDViY2JiZTY2ZDIyNDUyZDJmNWI3OTViM2Q1ZDg1
M2E0Li5hYjEzNTNiY2MwODJlNDFiYTU4OWM5YzI5YzIxMDg1M2EzOTk1Mjg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oCkBA
IC0yOSw3ICsyOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50OF90IHsgTm8sIFllc0FmdGVyTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uLCBZZXNBZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb24gfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC0zOSw3ICszOSw4IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkPiB7CiAg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLAogICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6Ok5vLAotICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQ6OlllcworICAgICAgICBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
c0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLAorICAgICAgICBXZWJDb3JlOjpTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyUmVzcG9uc2VQb2xpY3lEZWNpc2lvbgogICAg
ID47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDQ4N2M5YjJiNWVmNDk0NmM5Y2JlOTg5ZjNlNzc2
MWYwOGU2MWQ4MGUuLjkyNTViZjMxM2M2N2Q3MTQ4MTVjZjc4MTUyNjZmZmQ4MDViMjJmNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC0xNzAsNyArMTcwLDcgQEAgdXNpbmcgU2hhcmVkU3RyaW5nSGFzaCA9
IHVpbnQzMl90OwogZW51bSBjbGFzcyBDYW5XcmFwIDogYm9vbDsKIGVudW0gY2xhc3MgRGlkV3Jh
cCA6IGJvb2w7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7Ci1lbnVt
IGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CitlbnVtIGNsYXNzIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3MgRXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3IgOiBib29sIHsgUmVzcG9uc2l2ZSwgVW5yZXNwb25zaXZlIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IDA2MjA5NjQ2OGZlODdiNjhj
MTllZjM4MDc3YTI1YTkyMWQ5ZDRlZmYuLmU1YzU3YjA0MDQ5YzhiMjBiNmJkNjExY2ZjOGY2YjAx
Zjc4YzA3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpDX0NMQVNTIE5TRGljdGlv
bmFyeTsKQEAgLTY2LDcgKzY3LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llczsKIAogICAgIFdl
YkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSB7IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5v
dEFsbG93IH07Ci0gICAgYm9vbCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9
OworICAgIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgeyBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5v
IH07CiAgICAgVXNlckRhdGEgdXNlckRhdGE7CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9j
a0hpc3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlzdG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2Nr
QmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0OjpObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwCmluZGV4IGM2NTRjYjhjMTIyMWFmODExZjZiMGE3M2IzZTFkZjk0MzVi
MmI3NmQuLjQxY2QzNWRiZmE4ZDBlMzRiZDFlYjQ5ZjVkNTc0ZjJjMzcwMGJkNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU4
LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZGVmaW5lIFBST1ZJU0lPTkFM
UEFHRVBST1hZX1JFTEVBU0VfTE9HKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhjaGFu
bmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQg
IiwgUElEPSVpLCBuYXZpZ2F0aW9uSUQ9JSIgUFJJdTY0ICJdIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjoiIGZtdCwgdGhpcywgbV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fbmF2aWdhdGlv
bklELCAjI19fVkFfQVJHU19fKQogI2RlZmluZSBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNF
X0xPR19FUlJPUihjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1IoY2hhbm5lbCwg
IiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIFBJ
RD0laSwgbmF2aWdhdGlvbklEPSUiIFBSSXU2NCAiXSBQcm92aXNpb25hbFBhZ2VQcm94eTo6IiBm
bXQsIHRoaXMsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX25hdmlnYXRpb25JRCwg
IyNfX1ZBX0FSR1NfXykKIAotUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBz
dGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiB3ZWJzaXRlUG9s
aWNpZXMpCitQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJvdmlzaW9uYWxQYWdlUHJveHkoV2ViUGFn
ZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVl
X3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHN1c3BlbmRlZFBhZ2UsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgYm9vbCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0LCBB
UEk6OldlYnNpdGVQb2xpY2llcyogd2Vic2l0ZVBvbGljaWVzKQogICAgIDogbV9wYWdlKHBhZ2Up
CiAgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5kZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFn
ZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZN
b3ZlKHByb2Nlc3MpKQpAQCAtNjYsNiArNjYsNyBAQCBQcm92aXNpb25hbFBhZ2VQcm94eTo6UHJv
dmlzaW9uYWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Bybwog
ICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlzU2VydmVyUmVkaXJlY3QpCiAgICAgLCBtX3JlcXVl
c3QocmVxdWVzdCkKICAgICAsIG1fcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudChwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQorICAgICwgbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFm
dGVyQ29tbWl0KHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQpCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICAsIG1fcHJvdmlzaW9uYWxMb2FkQWN0aXZpdHkobV9wcm9jZXNz
LT50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHkoIlByb3Zpc2lvbmFsIExvYWQiX3MpKQog
I2VuZGlmCkBAIC0xNjIsMTYgKzE2MywxOCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpp
bml0aWFsaXplV2ViUGFnZShSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgd2VicwogICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGcmVlemVMYXllclRyZWVEdWVUb1N3aXBlQW5p
bWF0aW9uKCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2FkRGF0YShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwg
Y29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6
b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFN1YnN0aXR1
dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTdWJzdGl0dXRlRGF0
YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKIHsK
ICAgICBQUk9WSVNJT05BTFBBR0VQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3dhcHBpbmcsICJs
b2FkRGF0YToiKTsKKyAgICBBU1NFUlQoc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkICE9IFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogCi0gICAgbV9wYWdlLmxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdl
SUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksIG5hdmlnYXRpb24u
bGFzdE5hdmlnYXRpb25BY3Rpb24oKS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBzZXNz
aW9uSGlzdG9yeVZpc2liaWxpdHkpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9u
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRh
LCBtaW1lVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0
ZVBvbGljaWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3ksIHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVl
c3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4s
IHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7
CiAgICAgUFJPVklTSU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAi
bG9hZFJlcXVlc3Q6Iik7CisgICAgQVNTRVJUKHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAh
PSBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKIAogICAgIC8vIElm
IHRoaXMgaXMgYSBjbGllbnQtc2lkZSByZWRpcmVjdCBjb250aW51aW5nIGluIGEgbmV3IHByb2Nl
c3MsIHRoZW4gdGhlIG5ldyBwcm9jZXNzIHdpbGwgb3ZlcndyaXRlIHRoZSBmcm9tSXRlbSdzIFVS
TC4gSW4gdGhpcyBjYXNlLAogICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVwZGF0ZSBm
cm9tSXRlbSdzIHByb2Nlc3NJZGVudGlmaWVyIGFzIHdlIHdhbnQgZnV0dXJlIG5hdmlnYXRpb25z
IHRvIHRoaXMgQmFja0ZvcndhcmQgaXRlbSB0byBoYXBwZW4gaW4gdGhlCkBAIC0xNzksNyArMTgy
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBpZiAobmF2aWdhdGlvbi5mcm9tSXRl
bSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IFdlYkNvcmU6OkxvY2tC
YWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgpLT5zZXRM
YXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7
CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2
aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllcywg
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
KyAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgbmF2aWdh
dGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IHVzZXJEYXRhLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZp
Z2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBSZWZQdHI8QVBJOjpXZWJzaXRl
UG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTk5LDcgKzIwMiw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBXZWJCCiAgICAgICAgIHdlYnNpdGVQb2xpY2llc0RhdGEgPSB3ZWJzaXRlUG9s
aWNpZXMtPmRhdGEoKTsKICAgICAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVC
YWNrRm9yd2FyZExpc3RGb3JSZWF0dGFjaChXVEZNb3ZlKGl0ZW1TdGF0ZXMpKSk7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmln
YXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9h
ZFR5cGUoKSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1v
dmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
b1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIGl0ZW0uaXRlbUlE
KCksICpuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0FmdGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
LCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJl
c3BvbnNpdmVuZXNzVGltZXIoKTsKIH0KIApAQCAtMjI3LDggKzIzMCw5IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUmVzdG9yZSB0aGUgbWFpbiBmcmFtZSdzIGNv
bW1pdHRlZCBVUkwgYXMgc29tZSBjbGllbnRzIG1heSByZWx5IG9uIGl0IHVudGlsIHRoZSBuZXh0
IGxvYWQgaXMgY29tbWl0dGVkLgotICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBtX3BhZ2UubWFp
bkZyYW1lKCkpCi0gICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTCht
YWluRnJhbWUtPmZyYW1lTG9hZFN0YXRlKCkudXJsKCkpOworICAgIFJlZlB0ciBwcmV2aW91c01h
aW5GcmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKTsKKyAgICBpZiAocHJldmlvdXNNYWluRnJhbWUp
CisgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRTdGF0ZSgpLnNldFVSTChwcmV2aW91c01h
aW5GcmFtZS0+dXJsKCkpOwogCiAgICAgLy8gTm9ybWFsbHksIG5vdGlmaWNhdGlvbiBvZiBhIHNl
cnZlciByZWRpcmVjdCBjb21lcyBmcm9tIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuCiAgICAgLy8g
SWYgd2UgYXJlIHByb2Nlc3Mgc3dhcHBpbmcgaW4gcmVzcG9uc2UgdG8gYSBzZXJ2ZXIgcmVkaXJl
Y3QgdGhlbiB0aGF0IG5vdGlmaWNhdGlvbiB3aWxsIG5vdCBjb21lIGZyb20gdGhlIG5ldyBXZWJD
b250ZW50IHByb2Nlc3MuCkBAIC0yMzYsNiArMjQwLDEwIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBp
ZiAobV9pc1NlcnZlclJlZGlyZWN0KSB7CiAgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUxvYWRT
dGF0ZSgpLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKG1fcmVxdWVzdC51cmwoKSk7CiAgICAgICAg
IG1fcGFnZS5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpLCBtX25h
dmlnYXRpb25JRCwgV1RGTW92ZShtX3JlcXVlc3QpLCB7IH0pOworICAgIH0gZWxzZSBpZiAocHJl
dmlvdXNNYWluRnJhbWUgJiYgIXByZXZpb3VzTWFpbkZyYW1lLT5wcm92aXNpb25hbFVSTCgpLmlz
RW1wdHkoKSkgeworICAgICAgICAvLyBJbiBjYXNlIG9mIGEgcHJvY2VzcyBzd2FwIGFmdGVyIHJl
c3BvbnNlIHBvbGljeSwgdGhlIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIGFscmVhZHkgaGFwcGVu
ZWQgYnV0IHRoZSBuZXcgbWFpbiBmcmFtZSBkb2Vzbid0IGtub3cgYWJvdXQgaXQKKyAgICAgICAg
Ly8gc28gd2UgbmVlZCB0byB0ZWxsIGl0IHNvIGl0IGNhbiB1cGRhdGUgaXRzIHByb3Zpc2lvbmFs
IFVSTC4KKyAgICAgICAgbV9tYWluRnJhbWUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKHByZXZp
b3VzTWFpbkZyYW1lLT5wcm92aXNpb25hbFVSTCgpKTsKICAgICB9CiB9CiAKQEAgLTMyMiwxMyAr
MzMwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRp
b25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdG
cmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJl
cXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwg
dXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZv
RGF0YSYmIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2
aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlE
LCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2Us
IHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQs
IHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVJbmZv
KSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01J
TUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIG5l
ZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0K
IAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IGE3ZmI2NmE2ZGFhNzM3YzkwNjA5MDdj
MDg5NmYwY2JjOTRlYjM4MGUuLjI3MTRiMmE1YjU0N2YyNjY3ZmNiNDZmY2VmMWI1Nzg0ZmJjZjU4
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiB1aW50
OF90OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxLDcgKzcyLDcgQEAgdXNpbmcgTGF5
ZXJIb3N0aW5nQ29udGV4dElEID0gdWludDMyX3Q7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQcm94
eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRl
ciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUHJvdmlzaW9u
YWxQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgYm9v
bCBpc1NlcnZlclJlZGlyZWN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBBUEk6OldlYnNpdGVQb2xpY2llcyopOworICAgIFBy
b3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+LCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgYm9vbCBzaG91bGRDbG9zZVByZXZpb3Vz
UGFnZUFmdGVyQ29tbWl0LCBBUEk6OldlYnNpdGVQb2xpY2llcyopOwogICAgIH5Qcm92aXNpb25h
bFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlOyB9CkBAIC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25JRDsgfQogICAgIGNvbnN0IFVSTCYg
cHJvdmlzaW9uYWxVUkwoKSBjb25zdCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsTG9hZFVSTDsgfQog
CisgICAgYm9vbCBzaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29tbWl0OyB9CisKICAgICBEcmF3
aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd2luZ0FyZWEu
Z2V0KCk7IH0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gdGFrZURyYXdp
bmdBcmVhKCk7CiAKQEAgLTEwMSw4ICsxMDQsOCBAQCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgog
Ci0gICAgdm9pZCBsb2FkRGF0YShBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJp
bGl0eSk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdChBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmID0gc3RkOjpudWxsb3B0KTsKKyAgICB2b2lkIGxvYWREYXRhKEFQSTo6TmF2aWdhdGlv
biYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZp
c2liaWxpdHkpOworICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gc3RkOjpu
dWxsb3B0KTsKICAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJik7
CiAgICAgdm9pZCBjYW5jZWwoKTsKIApAQCAtMTIwLDExICsxMjMsOCBAQCBwcml2YXRlOgogICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmLCBPcHRpb25TZXQ8SVBD
OjpTZW5kT3B0aW9uPiwgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJikgZmluYWw7CiAKLSAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCi0gICAgICAgIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90
IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdG
cmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3Np
bmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0xMzksOSAr
MTM5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
RGljdGlvbmFyeUZyb21XZWJQcm9jZXNzKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6
OlZhbHVlRGljdGlvbmFyeSYsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBzdGFy
dFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNr
Rm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cyYp
PiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZv
LAotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXF1ZXN0Qm9keSwKLSAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jRGVsYXll
ZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgcmVxdWVzdFBhc3N3b3Jk
Rm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNlbmRpZgpAQCAtMTcx
LDYgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVx
dWVzdDsKICAgICBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IG1fcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDsKICAgICBib29sIG1fd2FzQ29tbWl0dGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCB7IGZhbHNlIH07CiAgICAg
VVJMIG1fcHJvdmlzaW9uYWxMb2FkVVJMOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhYzlhNzc0OGYzZTBkNzJjMzdm
Zjg0ZDRiODQwZjBiNWU3Zjk0NzViLi4xMTEzMTlkOGQzZWYwZGYxZTE2NjAzNzNjZmFjOWQ5ZGVl
OGE1N2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEz
OTAsNyArMTM5MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgYXV0byB0cmFuc2Fj
dGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCiAgICAgYXV0byB1cmwgPSBy
ZXF1ZXN0LnVybCgpOwotICAgIGlmIChzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgIT0gU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMpCisgICAgaWYgKHNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKQogICAgICAgICBt
X3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3QodHJhbnNhY3Rpb24sIHsgbmF2aWdh
dGlvbi5uYXZpZ2F0aW9uSUQoKSwgdXJsLnN0cmluZygpIH0pOwogCiAgICAgTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnM7CkBAIC0xMzk4LDcgKzEzOTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkp
OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
czsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGlj
aWVzID0gV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tI
aXN0b3J5ID0gbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxv
Y2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKQEAg
LTE1MjUsNyArMTUyNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1l
dGVycy5NSU1FVHlwZSA9IE1JTUVUeXBlOwogICAgIGxvYWRQYXJhbWV0ZXJzLmVuY29kaW5nTmFt
ZSA9IGVuY29kaW5nOwogICAgIGxvYWRQYXJhbWV0ZXJzLmJhc2VVUkxTdHJpbmcgPSBiYXNlVVJM
OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA9IHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCA9PSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olll
czsKKyAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPSBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBV
c2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQo
KSk7CiAgICAgbG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGljaWVzID0gV1RGTW92ZSh3ZWJzaXRl
UG9saWNpZXMpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OwpAQCAtMTU3OCw3ICsxNTc4LDcgQEAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVkUmVxdWVz
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXUKICAgICBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUg
PSBzaW11bGF0ZWRSZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMuYmFzZVVSTFN0cmluZyA9IGJhc2VVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93OwotICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IGZhbHNlOworICAgIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm87CiAgICAgbG9hZFBh
cmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLT5sb2NrSGlzdG9yeSgpOwogICAgIGxv
YWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLT5sb2NrQmFja0Zv
cndhcmRMaXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5ID0gbmF2aWdhdGlvbi0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCk7CkBA
IC0zNTE4LDcgKzM1MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICAgICAg
aWYgKHN1c3BlbmRlZFBhZ2UgJiYgc3VzcGVuZGVkUGFnZS0+cGFnZUlzQ2xvc2VkT3JDbG9zaW5n
KCkpCiAgICAgICAgICAgICAgICAgc3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKLSAgICAgICAg
ICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLCBXVEZNb3ZlKHN1
c3BlbmRlZFBhZ2UpLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgc3RkOjpleGNoYW5nZShwb2xpY2llcywgbnVsbHB0cikpOworICAg
ICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24sIFdURk1v
dmUoc3VzcGVuZGVkUGFnZSksIFdURk1vdmUocHJvY2Vzc0Zvck5hdmlnYXRpb24pLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Olllc0Fm
dGVyTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLCBzdGQ6OmV4Y2hhbmdlKHBvbGljaWVzLCBudWxs
cHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBhdXRvIGl0ZW0gPSBuYXZpZ2F0
aW9uLT5yZWxvYWRJdGVtKCkgPyBuYXZpZ2F0aW9uLT5yZWxvYWRJdGVtKCkgOiBuYXZpZ2F0aW9u
LT50YXJnZXRJdGVtKCk7CiAgICAgICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFj
dGlvbjo6VXNlICYmIGl0ZW0pIHsKQEAgLTM2MDUsNyArMzYwNSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmCiAKICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKICAg
ICBhdXRvKiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihtX3Byb3Zp
c2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCkpOwotICAgIGJvb2wgZGlkU3VzcGVuZFByZXZpb3Vz
UGFnZSA9IG5hdmlnYXRpb24gPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKCpuYXZpZ2F0
aW9uLCBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lvbmFsUGFnZS0+cHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3NpbmdVbnRpbEZpcnN0
TGF5ZXJGbHVzaCkgOiBmYWxzZTsKKyAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBu
YXZpZ2F0aW9uICYmICFtX3Byb3Zpc2lvbmFsUGFnZS0+c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VB
ZnRlckNvbW1pdCgpID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwg
bWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVy
Rmx1c2gpIDogZmFsc2U7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBtX3dl
YnNpdGVEYXRhU3RvcmUucHRyKCkgPT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkud2Vi
c2l0ZURhdGFTdG9yZSgpID8gV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Ok5v
IDogV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7CiAKICAgICAvLyBU
aGVyZSBpcyBubyB3YXkgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gdG8gdGhlIHBhZ2UgaW4gdGhl
IHByZXZpb3VzIHBhZ2Ugc28gY2xvc2UgaXQuCkBAIC0zNjIwLDExICszNjIwLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIEZyYW1lSW5mb0RhdGEmCiAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaWRDb21taXRQ
cm92aXNpb25hbFBhZ2Uob2xkV2ViUGFnZUlELCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiYmIHN1c3Bl
bmRlZFBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgbmV3UHJvY2VzcywgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kZWRQYWdlUHJveHk+JiYgc3VzcGVuZGVkUGFnZSwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBuZXdQcm9jZXNzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6OldlYnNpdGVQ
b2xpY2llcz4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0Vf
TE9HKExvYWRpbmcsICJjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3M6IG5ld1Byb2Nlc3NQ
SUQ9JWksIGhhc1N1c3BlbmRlZFBhZ2U9JWkiLCBuZXdQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCAhIXN1c3BlbmRlZFBhZ2UpOwogICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZp
Z2F0aW9uICUiIFBSSXU2NCAiICclcycgaW4gYSBuZXcgd2ViIHByb2Nlc3MiLCBuYXZpZ2F0aW9u
Lm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgUkVMRUFT
RV9BU1NFUlQoIW5ld1Byb2Nlc3MtPmlzSW5Qcm9jZXNzQ2FjaGUoKSk7CisgICAgQVNTRVJUKHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCAhPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vKTsKIAogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSkgewogICAgICAgICBXRUJQQUdFUFJP
WFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAiY29udGludWVOYXZpZ2F0aW9uSW5OZXdQ
cm9jZXNzOiBUaGVyZSBpcyBhbHJlYWR5IGEgcGVuZGluZyBwcm92aXNpb25hbCBsb2FkLCBjYW5j
ZWxsaW5nIGl0IChwcm92aXNvbmFsTmF2aWdhdGlvbklEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1
KSIsIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5uYXZpZ2F0
aW9uSUQoKSk7CkBAIC0zNjMzLDkgKzM2MzQsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRp
bnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMK
ICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJv
dmlzaW9uYWxQYWdlID0gbWFrZVVuaXF1ZTxQcm92aXNpb25hbFBhZ2VQcm94eT4oKnRoaXMsIFdU
Rk1vdmUobmV3UHJvY2VzcyksIFdURk1vdmUoc3VzcGVuZGVkUGFnZSksIG5hdmlnYXRpb24ubmF2
aWdhdGlvbklEKCksIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCksIG5hdmln
YXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGludWF0aW9uID0gW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYobmF2aWdh
dGlvbiksIHdlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRh
YmxlIHsKKyAgICBib29sIGlzU2VydmVyU2lkZVJlZGlyZWN0ID0gc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkID09IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24gJiYgbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdElzUmVkaXJlY3Qo
KTsKKyAgICBib29sIHNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQgPSBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXNB
ZnRlclJlc3BvbnNlUG9saWN5RGVjaXNpb247CisgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBtYWtl
VW5pcXVlPFByb3Zpc2lvbmFsUGFnZVByb3h5PigqdGhpcywgV1RGTW92ZShuZXdQcm9jZXNzKSwg
V1RGTW92ZShzdXNwZW5kZWRQYWdlKSwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgaXNTZXJ2
ZXJTaWRlUmVkaXJlY3QsIG5hdmlnYXRpb24uY3VycmVudFJlcXVlc3QoKSwgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgc2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCwgd2Vi
c2l0ZVBvbGljaWVzLmdldCgpKTsKKyAgICBhdXRvIGNvbnRpbnVhdGlvbiA9IFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRp
b24pLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHdlYnNpdGVQb2xpY2llcyA9IFdURk1v
dmUod2Vic2l0ZVBvbGljaWVzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGl0ZW0g
PSBuYXZpZ2F0aW9uLT50YXJnZXRJdGVtKCkpIHsKICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAi
V2ViUGFnZVByb3h5ICVwIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyB0byBiYWNrIGl0
ZW0gVVJMICVzIiwgdGhpcywgaXRlbS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTM2NTks
OSArMzY2MSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1By
b2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgICAgIC8vIEZJWE1FOiBX
b3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBkZWxlZ2F0
ZSwgZXRjCiAgICAgICAgIEFTU0VSVCghbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKS5pc0Vt
cHR5KCkpOwogICAgICAgICBpZiAoYXV0byYgc3Vic3RpdHV0ZURhdGEgPSBuYXZpZ2F0aW9uLT5z
dWJzdGl0dXRlRGF0YSgpKQotICAgICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWREYXRh
KG5hdmlnYXRpb24sIHsgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuZGF0YSgpLCBzdWJzdGl0dXRl
RGF0YS0+Y29udGVudC5zaXplKCkgfSwgc3Vic3RpdHV0ZURhdGEtPk1JTUVUeXBlLCBzdWJzdGl0
dXRlRGF0YS0+ZW5jb2RpbmcsIHN1YnN0aXR1dGVEYXRhLT5iYXNlVVJMLCBzdWJzdGl0dXRlRGF0
YS0+dXNlckRhdGEuZ2V0KCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKSwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXNEYXRhKSwgc3Vic3RpdHV0ZURhdGEtPnNlc3Npb25IaXN0b3J5Vmlz
aWJpbGl0eSk7CisgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEobmF2aWdh
dGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVEYXRhLT5j
b250ZW50LnNpemUoKSB9LCBzdWJzdGl0dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRh
LT5lbmNvZGluZywgc3Vic3RpdHV0ZURhdGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRhLT51c2Vy
RGF0YS5nZXQoKSwgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSksIHN1YnN0aXR1dGVE
YXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1
ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBudWxscHRyLCBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOworICAg
ICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb24sIFJlc291
cmNlUmVxdWVzdCB7IG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkgfSwgbnVsbHB0ciwgc2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCks
IFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSkpOwogICAgIH07CiAgICAgaWYgKG1faW5zcGVj
dG9yQ29udHJvbGxlci0+c2hvdWxkUGF1c2VMb2FkaW5nKCptX3Byb3Zpc2lvbmFsUGFnZSkpCiAg
ICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0Q29udGludWVMb2FkaW5nQ2FsbGJhY2so
Km1fcHJvdmlzaW9uYWxQYWdlLCBXVEZNb3ZlKGNvbnRpbnVhdGlvbikpOwpAQCAtNTYxNCwxMyAr
NTYxNiwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZQogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAot
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LAorICAgIGJvb2wgd2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUsIGJvb2wgbmVlZHNCcm93c2lu
Z0NvbnRleHRHcm91cFN3aXRjaCwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwg
ZnJhbWVJRCwgV1RGTW92ZShmcmFtZUluZm8pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCB3YXNB
bGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgbmVlZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwg
bGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJh
bWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgYm9vbCB3YXNBbGxvd2VkQnlJbmplY3RlZEJ1bmRsZSwgYm9vbCBuZWVk
c0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKIApAQCAtNTYzMyw3ICs1NjM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlv
bklEID8gbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxw
dHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uUmVzcG9uc2UgPSBBUEk6Ok5hdmlnYXRpb25SZXNwb25z
ZTo6Y3JlYXRlKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShmcmFtZUluZm8pLCB0aGlz
KS5nZXQoKSwgcmVxdWVzdCwgcmVzcG9uc2UsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRy
aWJ1dGUpOwogCi0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5
TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQ
YWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZN
b3ZlKG5hdmlnYXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgd2ViUGFnZUlELCBmcmFtZUlELCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBp
ZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwK
ICAgICAgICAgcHJvY2VzcywgbmF2aWdhdGlvblJlc3BvbnNlXSAoUG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJu
aW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pIG11dGFibGUgewogICAg
ICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0
ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNp
ZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CkBAIC01NjQyLDkg
KzU2NDQsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICAgICAgYXV0byBzZW5kZXIg
PSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZy
YW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoY29uc3QgYXV0
byYgcG9saWN5RGVjaXNpb24pIHsKICAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBw
b2xpY3lEZWNpc2lvbiwgY3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5zaW9ucyhw
cm9jZXNzKSksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOworCisgICAgICAgIGF1dG8gd2lsbENv
bnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3M6Ok5v
OworICAgICAgICBpZiAocG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2ggJiYgbmF2aWdhdGlvbikgeworICAgICAgICAgICAg
UmVnaXN0cmFibGVEb21haW4gcmVzcG9uc2VEb21haW4geyBuYXZpZ2F0aW9uUmVzcG9uc2UtPnJl
c3BvbnNlKCkudXJsKCkgfTsKKyAgICAgICAgICAgIC8vIEF2b2lkIHByb2Nlc3Mtc3dhcHBpbmcg
aW4gY2FzZXMgd2hlcmUgdGhlIHByb2Nlc3Mgb25seSBjb250YWlucyBhIHNpbmdsZSBwYWdlIGFu
ZCBpcyBvcmlnaW4tY2xlYW4uCisgICAgICAgICAgICBpZiAodGhpcy0+cHJvY2VzcygpLnBhZ2VD
b3VudCgpID4gMSB8fCAodGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4o
KSAmJiAqdGhpcy0+cHJvY2VzcygpLm9wdGlvbmFsUmVnaXN0cmFibGVEb21haW4oKSAhPSByZXNw
b25zZURvbWFpbikpIHsKKyAgICAgICAgICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0co
UHJvY2Vzc1N3YXBwaW5nLCAiZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQ6IFByb2Nlc3Mt
c3dhcHBpbmcgZHVlIHRvIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5Iik7CisgICAgICAgICAg
ICAgICAgcG9saWN5QWN0aW9uID0gUG9saWN5QWN0aW9uOjpJZ25vcmU7CisgICAgICAgICAgICAg
ICAgYXV0byBwcm9jZXNzRm9yTmF2aWdhdGlvbiA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5w
cm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW4od2Vic2l0ZURhdGFTdG9yZSgpLCB0aGlzLCByZXNw
b25zZURvbWFpbik7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzKCpuYXZpZ2F0aW9uLCBudWxscHRyLCBXVEZNb3ZlKHByb2Nlc3NGb3JOYXZpZ2F0aW9uKSwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZDo6WWVzQWZ0ZXJSZXNwb25zZVBvbGljeURlY2lzaW9uLCBudWxscHRyKTsKKyAgICAgICAg
ICAgICAgICB3aWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZElu
TmV3UHJvY2Vzczo6WWVzOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQo
KSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNlbmRlcikp
OworICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlv
bi5nZXQoKSwgbnVsbHB0ciwgV1RGTW92ZShuYXZpZ2F0aW9uUmVzcG9uc2UpLCBXVEZNb3ZlKHNl
bmRlciksIHsgfSwgd2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzcyk7CiAgICAgfSwgU2hvdWxk
RXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObywgU2hvdWxkRXhwZWN0QXBwQm91bmREb21haW5S
ZXN1bHQ6Ok5vKSk7CisKKyAgICBpZiAod2FzQWxsb3dlZEJ5SW5qZWN0ZWRCdW5kbGUpIHsKKyAg
ICAgICAgbGlzdGVuZXItPnVzZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYg
KG1fcG9saWN5Q2xpZW50KQogICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoKnRoaXMsICpmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgV1RGTW92ZShsaXN0ZW5lciksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMo
dXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGFmMjU2ZWZiNjI1ZmY4MDA2OTNjNTgzN2E4NDExYzk1MjNj
ZGRiZTEuLjI2YjgwNmMzNmJhZmNkNzI5MzE3NjQ2YzlmZjZkZWY2YjlkMTMyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNzAsNyArMjcwLDcgQEAgZW51bSBj
bGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBSb3V0ZVNo
YXJpbmdQb2xpY3kgOiB1aW50OF90OwogZW51bSBjbGFzcyBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1
aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGUgOiBib29sOwotZW51bSBjbGFzcyBTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOworZW51bSBjbGFzcyBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQgOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGlyZWN0aW9uIDog
dWludDhfdDsKIAogc3RydWN0IEFwcEhpZ2hsaWdodDsKQEAgLTE3NDEsNyArMTc0MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5m
b0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGlu
Z0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZv
RGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRz
QnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0
ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgV2ViQ29y
ZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBs
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0
ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxvcHQpOwpAQCAtMjA2MCw3ICsyMDYwLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICAgICAgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29sIG5lZWRzQnJvd3NpbmdDb250
ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAg
ICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZv
aWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkmKTsKIApAQCAtMjQ2Miw3ICsyNDYyLDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYg
PSB7IH0pOwogCi0gICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpO
YXZpZ2F0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4mJiwgUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPEFQ
STo6V2Vic2l0ZVBvbGljaWVzPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3
UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVBy
b3h5PiYmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50LCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIFJlZlB0cjxBUEk6Oldl
YnNpdGVQb2xpY2llcz4mJik7CiAKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJpYnV0ZXMoYm9v
bCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3RhdGVDaGFuZ2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA1ZjQ5MGI4ZjUzZWM0ZjBhOGUxZTY4MTE4OTVhYmE0N2ZmMjA4NWZhLi5iODgwM2Nk
NTIyMmI2YTcwODRmYTJlNzIyMDI3Nzc0YjVmZTA2NTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDcsNyArMTA3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2Fn
ZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93
bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5n
IGRvd25sb2FkQXR0cmlidXRlLCBib29sIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBib29s
IG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9u
YWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01h
aW5GcmFtZSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChzdHJ1Y3QgV2ViS2l0OjpQb2xpY3lE
ZWNpc2lvbiBQb2xpY3lEZWNpc2lvbikgU3luY2hyb25vdXMKICAgICBEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0
aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGY0MWJlMzBiNzg2NDQxMmUyMjdiNzY0MTI4OWQyZWMwNThjZjcxNzYuLmE0MGU2OWRm
YTUyMmRlZGViYWZkYjVmYzZiOWU3MWZjYjliNGIwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNTMsNiArMTUzLDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpbikgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbiA/ICpt
X3JlZ2lzdHJhYmxlRG9tYWluID09IGRvbWFpbiA6IGZhbHNlOyB9CiAgICAgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lz
dHJhYmxlRG9tYWluLnZhbHVlX29yKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgfSk7IH0K
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYgb3B0
aW9uYWxSZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21h
aW47IH0KICAgICB2b2lkIHNldElzSW5Qcm9jZXNzQ2FjaGUoYm9vbCk7CiAgICAgYm9vbCBpc0lu
UHJvY2Vzc0NhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJvY2Vzc0NhY2hlOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYzNDM0MTkzYjE0NWRiMDRjMWM0YWFh
MDIxNWQ5ZDkxZTdmZGVkMDcuLjQ5NGQ5ZTUwMTQ5ZGI1YWE0Mjc3MWIxYjJmY2VjZjRhYTU3ODgy
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcgKzUyOSw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExv
YWQoKQogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFtZSwgdXNlckRhdGEpOwogICAg
IFJlZlB0ciBwcm92aXNpb25hbExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVy
Kj4obV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2Fk
ZXIoKSk7CiAKLSAgICBpZiAoIXByb3Zpc2lvbmFsTG9hZGVyKQorICAgIGlmICghcHJvdmlzaW9u
YWxMb2FkZXIgfHwgcHJvdmlzaW9uYWxMb2FkZXItPmlzQ29udGludWluZ0xvYWRBZnRlclJlc3Bv
bnNlUG9saWN5Q2hlY2soKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGF1dG8mIHVybCA9
IHByb3Zpc2lvbmFsTG9hZGVyLT51cmwoKTsKQEAgLTgxNiw3ICs4MTYsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogICAgIHdlYlBhZ2UtPnNob3coKTsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1
bmN0aW9uKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgYm9vbCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCiB7CiAg
ICAgYXV0byogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpIHsK
QEAgLTgzNSw3ICs4MzUsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiAgICAgLy8gTm90
aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBwb2xp
Y3kgPSB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVBvbGljeUNsaWVudCgpLmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHdlYlBhZ2UsIG1fZnJhbWUucHRyKCksIHJlc3BvbnNlLCByZXF1ZXN0LCB1c2Vy
RGF0YSk7Ci0gICAgaWYgKHBvbGljeSA9PSBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb25Vc2UpIHsK
KyAgICAvLyBJZiBhIGJyb3dzaW5nIGNvbnRleHQgc3dpdGNoIGlzIHJlcXVlc3RlZCwgd2Ugc3Rp
bGwgbmVlZCB0byBzZW5kIHRoZSBJUEMgdG8gdGhlIFVJUHJvY2VzcyBpbiBvcmRlciB0byBwcm9j
ZXNzLXN3YXAgaWYgbmVjZXNzYXJ5LCBldmVuIHRob3VnaCB0aGUKKyAgICAvLyBpbmplY3RlZCBi
dW5kbGUgaGFzIGFscmVhZHkgaGFuZGxlZCB0aGUgcG9saWN5IGRlY2lzaW9uLgorICAgIGlmIChw
b2xpY3kgPT0gV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uVXNlICYmICFuZWVkc0Jyb3dzaW5nQ29u
dGV4dEdyb3VwU3dpdGNoKSB7CiAgICAgICAgIFdFQkZSQU1FTE9BREVSQ0xJRU5UX1JFTEVBU0Vf
TE9HKE5ldHdvcmssICJkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlOiBjb250aW51aW5n
IGJlY2F1c2UgaW5qZWN0ZWQgYnVuZGxlIHNheXMgc28iKTsKICAgICAgICAgZnVuY3Rpb24oUG9s
aWN5QWN0aW9uOjpVc2UsIGlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CkBAIC04NDcsOSAr
ODQ5LDEwIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zCiAgICAgYXV0byogcG9saWN5RG9jdW1l
bnRMb2FkZXIgPSBjb3JlRnJhbWUgPyBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9j
dW1lbnRMb2FkZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byBuYXZpZ2F0aW9uSUQgPSBwb2xpY3lE
b2N1bWVudExvYWRlciA/IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4oKnBvbGljeURv
Y3VtZW50TG9hZGVyKS5uYXZpZ2F0aW9uSUQoKSA6IDA7CiAKKyAgICBib29sIHdhc0FsbG93ZWRC
eUluamVjdGVkQnVuZGxlID0gcG9saWN5ID09IFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvblVzZTsK
ICAgICBhdXRvIHByb3RlY3RvciA9IG1fZnJhbWUuY29weVJlZigpOwogICAgIHVpbnQ2NF90IGxp
c3RlbmVySUQgPSBtX2ZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyKGlkZW50aWZpZXIsIFdURk1v
dmUoZnVuY3Rpb24pLCBXZWJGcmFtZTo6Rm9yTmF2aWdhdGlvbkFjdGlvbjo6Tm8pOwotICAgIGlm
ICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd1Jlc3BvbnNlLCBkb3dubG9h
ZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSkpIHsKKyAg
ICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGlkZW50aWZp
ZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dSZXNwb25zZSwgZG93
bmxvYWRBdHRyaWJ1dGUsIHdhc0FsbG93ZWRCeUluamVjdGVkQnVuZGxlLCBuZWVkc0Jyb3dzaW5n
Q29udGV4dEdyb3VwU3dpdGNoLCBsaXN0ZW5lcklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkp
KSkgewogICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPRyhOZXR3b3JrLCAi
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZTogaWdub3JpbmcgYmVjYXVzZSBXZWJQYWdl
UHJveHk6OkRlY2lkZVBvbGljeUZvclJlc3BvbnNlIGZhaWxlZCIpOwogICAgICAgICBtX2ZyYW1l
LT5kaWRSZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgUG9saWN5RGVjaXNpb24geyBp
ZGVudGlmaWVyLCBzdGQ6Om51bGxvcHQsIFBvbGljeUFjdGlvbjo6SWdub3JlLCAwLCB7IH0sIHsg
fSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGFhM2E4NjAxNzU3
MjY1NDEzODUyYTRiOWU4OTU2NGJiNGQxYTNmM2IuLjk2NjZkNjdmODYyMDhkOWI2YzY0ZjQxMWRi
ZDYzYmYwMTU5MGE3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdl
KGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBXZWJDb3JlOjpOZXdGcmFtZU9wZW5l
clBvbGljeSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFNob3coKSBmaW5hbDsKICAgICAKLSAg
ICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBuZWVkc0Jyb3dzaW5nQ29udGV4dEdyb3VwU3dpdGNoLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OkZvcm1TdGF0ZSosIFdlYkNvcmU6
OlBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUG9saWN5
Q2hlY2soKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggY2JmOWYzNmFhNDYyMGM5ZGU2NGVjOGE2ZjgwZmUzM2FiNmI3ODQ3ZC4uY2Zi
ZTU0ZjAyNjM0MjA5ZThhMzEyYWQ1ZWQwOWM3MjY5MDNhZWYwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIE5P
X1JFVFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nlc3NMYXVuY2go
TG9hZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRC
dWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
LCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5
IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8U2hhcmVkQnVmZmVyPiYmIHNoYXJlZEJ1ZmZlciwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBjb25z
dCBVUkwmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHN0ZDo6b3B0
aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhp
c3RvcnlWaXNpYmlsaXR5LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kpCiB7CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogICAg
IHNldElzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbiwgJm1fbWFpbkZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBlMTdlMTg5MzVmYWUxMTZiNDY2MmUyNjQwNmJhZGY0Zjg3NWYx
ODI0Li4xZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1ZDdmZGE4ODUzYjEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjcsNyArMjI3LDcgQEAg
ZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdNZXRob2QgOiB1aW50OF90OwogZW51bSBjbGFzcyBFdmVu
dE1ha2VzR2FtZXBhZHNWaXNpYmxlIDogYm9vbDsKIGVudW0gY2xhc3MgSGlnaGxpZ2h0UmVxdWVz
dE9yaWdpbmF0ZWRJbkFwcCA6IGJvb2w7CiBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6
IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJvb2w7
CitlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKIGVudW0gY2xhc3MgV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CkBAIC0xNTc1LDcgKzE1NzUsNyBAQCBwcml2YXRl
OgogCiAgICAgU3RyaW5nIHNvdXJjZUZvckZyYW1lKFdlYkZyYW1lKik7CiAKLSAgICB2b2lkIGxv
YWREYXRhSW1wbCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYsIGNvbnN0IFVSTCYgZmFpbGluZ1VSTCwgY29uc3QgVXNlckRh
dGEmLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgV2ViQ29yZTo6
U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lkIGxvYWREYXRhSW1wbCh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpT
ZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MzYxZDU3ZGE4MDMzY2U0NTA5MGU5
YzZmNWJmNmE1YTE4OTE4NDYuLmEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFjMjQ5MjU1OWQ0
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgpAQCAtMTY3LDcgKzE2Nyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGlu
Z0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
CiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxH
cmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xp
Y2llcykKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAog
ICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxNTJm
ZGExZjZlZDU3ZTI5OWFkZTM0ZDA3ZWU4ZGJiNGUyYzFlZWE3Li4wNTE2MjcwMDlhNjZlMTI0YWE5
NjM2Mzc4NGE2ZDc0Y2ViMDQzYmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0
ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFdlYkNvcmU6Ok5ld0ZyYW1l
T3BlbmVyUG9saWN5KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygpIGZpbmFsOwogCi0g
ICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsICBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24mJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRlKiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpGb3JtU3RhdGUqLCBX
ZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNl
bFBvbGljeUNoZWNrKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGJm
ZGUzZWQ3Njc5YjliOTgwYzg1ZjMzZDE4OTFmOGM3ODVlZWQ4NmQuLjBjZmJlZWUwNDQ3ZDJlMjg1
NzcyMmZlMGE2NjQxNTE5NDA5YjJhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC04NTUsNyArODU1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hTaG93
KCkKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdTaG93OndlYlZp
ZXddOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZVBv
bGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24pCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBi
b29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmll
dyhtX3dlYkZyYW1lLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDRkMDQwZjU2NDZlYjgyNDFhOTJiYzdjMmRjNzhmNmRmZDk2ZGFkMGEuLmM1YWZhMTMzN2RiNGUy
ZmI2N2NlZTQwZjEwNDVmMWM2OTZhYzI3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTUxOSw3ICs1MTksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFNob3coKQogICAgICAgICB1aS0+d2ViVmlld1Nob3cod2ViVmlldyk7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgbmVl
ZHNCcm93c2luZ0NvbnRleHRHcm91cFN3aXRjaCwgRnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0
aW9uKQogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA2ZGFjMGIwNTIxODM5MTY2MjA4OTY0MWY2NWFlOTQyYzI5Yjg5NmQ4Li42
MTQ2NWMxMWZjMjU1NzMyNDgyMTU4MTI1OTI1MTljNWE2MTFhZmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlYWNoTGF5b3V0
TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsK
IAotICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBib29sIG5lZWRzQnJvd3NpbmdDb250ZXh0R3JvdXBTd2l0Y2gsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Rm9ybVN0YXRl
KiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpG
b3JtU3RhdGUqLCBXZWJDb3JlOjpQb2xpY3lEZWNpc2lvbk1vZGUsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTZmOWU3NWE5YTAzNTk3YjI5M2Mz
YWE0OTM4M2RiZWZlODljZGZkYy4uZWQ3NGJlMWY0YThlNDM3NzNiZWM2ZTY1ODBlNWFjNmU0N2Fj
N2RmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24g
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UgdG8gdmFsaWRhdGUgdGhhdCB3ZSBhcmUg
aW5kZWVkIHByb2Nlc3Mtc3dhcHBpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtQU09O
U2NoZW1lIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnRvRGF0YTp3aXRoQ09PUFZhbHVlOl0pOgor
ICAgICAgICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorCiAy
MDIxLTA4LTIzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFBDTTogU3VwcG9ydCBlcGhlbWVyYWwgbWVhc3VyZW1lbnQgd2l0aCBub24tcGVyc2lzdGVudCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0KaW5kZXggZjliOGRhZjY5ZjQ0NzQyNzk1ZmQ4ZjkxNmM2ZjZmODViNDBlNDg2MS4uMjI0
Yzk0MmU4N2M3NGU0NjU0NzIyMGQ4ZjRiNTg1NGE0YTE2ODVmZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCkBAIC0yNTAsMTIgKzI1MCwxNCBAQCBAaW50ZXJmYWNlIFBTT05TY2hl
bWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CiAgICAgY29uc3QgY2hhciogX2J5
dGVzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IF9yZWRpcmVjdHM7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIFJldGFpblB0cjxOU0RhdGE+PiBfZGF0YU1hcHBpbmdzOworICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IF9jb29wVmFsdWVzOwogICAgIEhhc2hTZXQ8aWQgPFdLVVJMU2NoZW1l
VGFzaz4+IF9ydW5uaW5nVGFza3M7CiAgICAgYm9vbCBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91
c2x5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVz
OwogLSAodm9pZClhZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6KE5TU3RyaW5nICopc291cmNlVVJM
U3RyaW5nIHRvVVJMU3RyaW5nOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uVVJMU3RyaW5nOwogLSAo
dm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRh
Oihjb25zdCBjaGFyKilkYXRhOworLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNT
dHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6
KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hl
bWUKQEAgLTI3Nyw2ICsyNzksMTMgQEAgLSAodm9pZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzoo
TlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihjb25zdCBjaGFyKilkYXRhCiAgICAgX2RhdGFN
YXBwaW5ncy5zZXQodXJsU3RyaW5nLCBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQq
KWRhdGEgbGVuZ3RoOnN0cmxlbihkYXRhKSBmcmVlV2hlbkRvbmU6Tk9dKTsKIH0KIAorLSAodm9p
ZClhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzooTlNTdHJpbmcgKil1cmxTdHJpbmcgdG9EYXRhOihj
b25zdCBjaGFyKilkYXRhIHdpdGhDT09QVmFsdWU6KGNvbnN0IGNoYXIqKWNvb3BWYWx1ZQorewor
ICAgIFtzZWxmIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOnVybFN0cmluZyB0b0RhdGE6ZGF0YV07
CisgICAgaWYgKGNvb3BWYWx1ZSkKKyAgICAgICAgX2Nvb3BWYWx1ZXMuYWRkKHVybFN0cmluZywg
Y29vcFZhbHVlKTsKK30KKwogLSAodm9pZClzZXRTaG91bGRSZXNwb25kQXN5bmNocm9ub3VzbHk6
KEJPT0wpdmFsdWUKIHsKICAgICBfc2hvdWxkUmVzcG9uZEFzeW5jaHJvbm91c2x5ID0gdmFsdWU7
CkBAIC0zMTEsOCArMzIwLDE1IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIFso
aWQ8V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJl
ZGlyZWN0UmVzcG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAgICB9CiAK
LSAgICBkb0FzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoW2ZpbmFsVVJMID0gcmV0YWluUHRyKGZp
bmFsVVJMKV0oaWQgPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgewotICAgICAgICBSZXRhaW5QdHI8
TlNVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10g
aW5pdFdpdGhVUkw6ZmluYWxVUkwuZ2V0KCkgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVk
Q29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgZG9Bc3luY2hyb25v
dXNseUlmTmVjZXNzYXJ5KFtzZWxmLCBmaW5hbFVSTCA9IHJldGFpblB0cihmaW5hbFVSTCldKGlk
IDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSog
aGVhZGVyRGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOworICAg
ICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ0ZXh0L2h0bWwiIGZvcktleTpAIkNv
bnRlbnQtVHlwZSJdOworICAgICAgICBbaGVhZGVyRGljdGlvbmFyeSBzZXRPYmplY3Q6QCIxIiBm
b3JLZXk6QCJDb250ZW50LUxlbmd0aCJdOworICAgICAgICBhdXRvIGNvb3BWYWx1ZSA9IF9jb29w
VmFsdWVzLmdldChbZmluYWxVUkwgYWJzb2x1dGVTdHJpbmddKTsKKyAgICAgICAgaWYgKCFjb29w
VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgW2hlYWRlckRpY3Rpb25hcnkgc2V0T2JqZWN0
OihOU1N0cmluZyAqKWNvb3BWYWx1ZSBmb3JLZXk6QCJDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGlj
eSJdOworCisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNIVFRQVVJMUmVzcG9u
c2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMLmdldCgpIHN0YXR1c0NvZGU6MjAwIEhUVFBW
ZXJzaW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpoZWFkZXJEaWN0aW9uYXJ5XSk7CiAgICAg
ICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAgICAgfSwgMC4x
KTsKIApAQCAtNDA5LDggKzQyNSw2IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hv
dycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwogCi0jaWYg
UExBVEZPUk0oTUFDKQotCiBzdGF0aWMgY29uc3QgY2hhciogd2luZG93T3BlbkNyb3NzU2l0ZU5v
T3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0Pgogd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewpAQCAtNDg4LDYgKzUwMiw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKIDwvc2NyaXB0PgogKVBTT05SRVNPVVJDRSI7CiAKKyNpZiBQTEFURk9STShNQUMp
CiBzdGF0aWMgY29uc3QgY2hhciogbGlua1RvQXBwbGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKIDxzY3JpcHQ+CiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlv
bihldmVudCkgewpAQCAtNDk3LDggKzUxMiw3IEBAIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdw
YWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0TGluayIg
aHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5OYXZpZ2F0ZTwvYT4KIClQU09O
UkVTT1VSQ0UiOwotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2VuZGlmCiAKIHN0YXRpYyBS
ZXRhaW5QdHI8X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBwc29uUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uKCkKIHsKQEAgLTExOTcsOCArMTIxMSw2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJh
Y2tOYXZpZ2F0aW9uQWZ0ZXJTZXNzaW9uUmVzdG9yZSkKICAgICBFWFBFQ1RfTkUocGlkMywgcGlk
NCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0
ZVdpbmRvd09wZW5Ob09wZW5lcikKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlv
biA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTEyMDYsNiArMTIxOCw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKIAogICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1
dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hh
bmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bi5odG1sIiB0b0RhdGE6d2luZG93T3BlbkNyb3NzU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEyNDUsNiArMTI1OCw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIENyb3NzT3JpZ2luQnV0U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAKICAgICBh
dXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bv
b2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBh
dXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21h
aW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc09yaWdpbkJ1dFNhbWVTaXRlTm9PcGVuZXJU
ZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOwpAQCAtMTI4NSw2ICsxMjk5LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIpCiAKICAg
ICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4uaHRtbCIgdG9EYXRhOndpbmRvd09wZW5Dcm9zc1NpdGVXaXRoT3BlbmVyVGVzdEJ5dGVz
XTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVy
LmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKQEAgLTEzMjQsNiArMTMzOSw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogCiAgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nl
c3NQb29sLmdldCgpXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6d2luZG93T3Bl
blNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXNdKTsKICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24g
c2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsK
IApAQCAtMTM2Miw2ICsxMzc4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtU
YXJnZXRXaXRoT3BlbmVyKQogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXdD
b25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp0YXJnZXRCbGFua0Nyb3Nz
U2l0ZVdpdGhFeHBsaWNpdE9wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0
aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09O
Il07CkBAIC0xNDAxLDYgKzE0MTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFu
a1RhcmdldEltcGxpY2l0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBb
d2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOwor
ICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
UFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJM
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJs
YW5rQ3Jvc3NTaXRlV2l0aEltcGxpY2l0Tm9PcGVuZXJUZXN0Qnl0ZXNdOwogICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2No
ZW1lOkAiUFNPTiJdOwpAQCAtMTQ0MCw2ICsxNDU4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jv
c3NTaXRlQmxhbmtUYXJnZXROb09wZW5lcikKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6dGFyZ2V0
QmxhbmtDcm9zc1NpdGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0
aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09O
Il07CkBAIC0xNDc5LDYgKzE0OTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5r
VGFyZ2V0Tm9PcGVuZXIpCiAKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIFt3ZWJW
aWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSA9IFlFUzsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVt
ZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOnRhcmdldEJsYW5rU2FtZVNp
dGVOb09wZW5lclRlc3RCeXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNj
aGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CkBAIC0xNTEx
LDggKzE1MzEsNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVu
ZXIpCiAgICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQotCiBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdEZyb21OZXdXZWJWaWV3KQog
ewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbigpOwpAQCAtNTA5NCw4ICs1MTEyLDYgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9h
ZGluZ1N0YXRlQWZ0ZXJQb2xpY3lEZWNpc2lvbikKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZl
cjpsb2FkT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIlVSTCIgY29udGV4dDp3ZWJWaWV3Lmdl
dCgpXTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLQogc3RhdGljIGNvbnN0IGNoYXIqIHNhdmVP
cGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CkBAIC01MTA3LDYgKzUxMjMsOCBAQCB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CiBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVk
UHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZXIpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
W3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5ID0gWUVTOworCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BT
T05TY2hlbWUgYWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiB0b0RhdGE6d2luZG93T3Bl
blNhbWVTaXRlV2l0aE9wZW5lclRlc3RCeXRlc107IC8vIE9wZW5zICJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbjIuaHRtbCIuCiAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIgdG9EYXRhOnNhdmVPcGVuZXJUZXN0
Qnl0ZXNdOwpAQCAtNTE4MCw2ICs1MTk4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlu
a0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVyKQogVEVTVChQcm9jZXNz
U3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udHJvbGxlZFByb2Nlc3NTd2FwcGluZ09mT3BlbmVl
KQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc10uamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsK
ICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOwog
ICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4xLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVXaXRoT3BlbmVyVGVzdEJ5
dGVzXTsgLy8gT3BlbnMgInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIi4KICAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMi5odG1sIiB0b0RhdGE6c2F2ZU9wZW5lclRlc3RCeXRlc107CkBAIC01MjM1LDggKzUyNTQs
NiBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vz
c1N3YXBwaW5nT2ZPcGVuZWUpCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCi0jZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQotCiBlbnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CiBzdGF0aWMg
dm9pZCBydW5Qcm9jZXNzU3dhcER1ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5TVVJMKiByZWxhdGVk
Vmlld1VSTCwgTlNVUkwqIHRhcmdldFVSTCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQogewpAQCAt
NzE1MSwzICs3MTY4LDIzMyBAQCBURVNUKFdlYlByb2Nlc3NDYWNoZSwgQ2xlYXJXaGVuRW50ZXJp
bmdDYWNoZSkKICAgICAvLyBDbGVhciB0aGUgV2ViUHJvY2VzcyBjYWNoZSB3aGlsZSB0aGUgcHJv
Y2Vzc2VzIGFyZSBiZWluZyBjaGVja2VkIGZvciByZXNwb25zaXZlbmVzcy4KICAgICBbcHJvY2Vz
c1Bvb2wgX2NsZWFyV2ViUHJvY2Vzc0NhY2hlXTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHdp
bmRvd09wZW5Dcm9zc09yaWdpbkNPT1BUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxzY3Jp
cHQ+Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgdyA9IHdpbmRvdy5vcGVuKCJw
c29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiwgImZvbyIpOworfQorPC9zY3JpcHQ+Cisp
UFNPTlJFU09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd09wZW5TYW1lT3JpZ2lu
Q09PUFRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKKyAgICB3ID0gd2luZG93Lm9wZW4oInBvcHVwLmh0bWwiLCAiZm9vIik7
Cit9Cis8L3NjcmlwdD4KKylQU09OUkVTT1VSQ0UiOworCitlbnVtIGNsYXNzIElzU2FtZU9yaWdp
biA6IGJvb2wgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIERvU2VydmVyU2lkZVJlZGlyZWN0IDog
Ym9vbCB7IE5vLCBZZXMgfTsKK3N0YXRpYyB2b2lkIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoY29u
c3QgY2hhciogc291cmNlQ09PUCwgY29uc3QgY2hhciogZGVzdGluYXRpb25DT09QLCBJc1NhbWVP
cmlnaW4gaXNTYW1lT3JpZ2luLCBEb1NlcnZlclNpZGVSZWRpcmVjdCBkb1NlcnZlclNpZGVSZWRp
cmVjdCwgRXhwZWN0U3dhcCBleHBlY3RTd2FwKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8gcHJv
Y2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmln
dXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9j
ZXNzUG9vbC5nZXQoKV07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5q
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOworICAgIGZvciAoX1dL
RXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVu
dGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5n
OkAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3lFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dF0pOworICAgIGlmIChpc1NhbWVPcmlnaW4gPT0gSXNTYW1lT3JpZ2luOjpZZXMpIHsKKyAgICAg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbi5odG1sIiB0b0RhdGE6d2luZG93T3BlblNhbWVPcmlnaW5DT09QVGVzdEJ5dGVzIHdp
dGhDT09QVmFsdWU6c291cmNlQ09PUF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVj
dCA9PSBEb1NlcnZlclNpZGVSZWRpcmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBh
ZGRSZWRpcmVjdEZyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAuaHRt
bCIgdG9VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJl
Y3QuaHRtbCJdOworICAgICAgICAgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvcG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRh
OiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiIHRvRGF0YToicG9wdXAiIHdpdGhDT09QVmFsdWU6ZGVz
dGluYXRpb25DT09QXTsKKyAgICB9IGVsc2UgeworICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5n
RnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3
aW5kb3dPcGVuQ3Jvc3NPcmlnaW5DT09QVGVzdEJ5dGVzIHdpdGhDT09QVmFsdWU6c291cmNlQ09P
UF07CisgICAgICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRp
cmVjdDo6WWVzKSB7CisgICAgICAgICAgICBbaGFuZGxlciBhZGRSZWRpcmVjdEZyb21VUkxTdHJp
bmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9wb3B1cC5odG1sIiB0b1VSTFN0cmluZzpAInBzb246
Ly93d3cuYXBwbGUuY29tL3BvcHVwLWFmdGVyLXJlZGlyZWN0Lmh0bWwiXTsKKyAgICAgICAgICAg
IFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20v
cG9wdXAtYWZ0ZXItcmVkaXJlY3QuaHRtbCIgdG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpk
ZXN0aW5hdGlvbkNPT1BdOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFtoYW5kbGVyIGFk
ZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vcG9wdXAuaHRtbCIg
dG9EYXRhOiJwb3B1cCIgd2l0aENPT1BWYWx1ZTpkZXN0aW5hdGlvbkNPT1BdOworICAgIH0KKyAg
ICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gbmF2
aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKworICAgIF9fYmxvY2sgdW5zaWduZWQgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRz
ID0gMDsKKyAgICBuYXZpZ2F0aW9uRGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uSGFuZGxlciA9IF57CisgICAgICAgICsrbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzOworICAg
IH07CisKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVn
YXRlLmdldCgpXTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTlVJRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoTmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5n
ZXQoKV0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisK
KyAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CisgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lD
YWxscyA9IDA7CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgZGlkQ3Jl
YXRlV2ViVmlldyA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKworICAgIGlmIChkb1NlcnZlclNpZGVSZWRpcmVjdCA9PSBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6WWVzKSB7CisgICAgICAgIEVYUEVDVF9FUSgzLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxz
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgRVhQRUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOworICAgICAg
ICBFWFBFQ1RfRkFMU0Uoc2VydmVyUmVkaXJlY3RlZCk7CisgICAgfQorICAgIEVYUEVDVF9FUSgy
VSwgbnVtYmVyT2ZQcm92aXNpb25hbExvYWRzKTsgLy8gT25lIGluIGVhY2ggdmlldy4KKworICAg
IGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNU
X1RSVUUoISFwaWQxKTsKKyAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOworCisgICAgaWYgKGV4cGVj
dFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7
CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICBib29sIGZp
bmlzaGVkUnVubmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAIncuY2xvc2VkID8gJ3RydWUnIDogJ2ZhbHNlJyIgY29tcGxldGlvbkhhbmRsZXI6IFsm
XSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaXNDbG9z
ZWQgPSAoTlNTdHJpbmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVj
dFN3YXA6OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBpc0Nsb3Nl
ZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwg
aXNDbG9zZWQpOworICAgICAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsK
KyAgICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJ3Lm5hbWUiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgTlNTdHJpbmcgKndpbmRvd05hbWUgPSAoTlNTdHJp
bmcgKilyZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6Ok5vICYm
IGlzU2FtZU9yaWdpbiA9PSBJc1NhbWVPcmlnaW46OlllcykKKyAgICAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEoQCIiLCB3aW5kb3dOYW1lKTsKKyAgICAgICAgZmluaXNoZWRSdW5uaW5n
U2NyaXB0ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkUnVubmluZ1NjcmlwdCk7CisKKyAgICAvLyBPcGVuZWUgc2hvdWxkIG5vdCBoYXZlIGFu
IG9wZW5lciBvciBhIG5hbWUuCisgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7Cisg
ICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuZXIgPyAn
dHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgIE5TU3RyaW5nICpoYXNPcGVuZXIgPSAoTlNTdHJpbmcgKily
ZXN1bHQ7CisgICAgICAgIGlmIChleHBlY3RTd2FwID09IEV4cGVjdFN3YXA6OlllcykKKyAgICAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwgaGFzT3BlbmVyKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7CisgICAg
ICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOworICAgIGZpbmlzaGVkUnVu
bmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJ3aW5kb3cubmFtZSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqd2luZG93TmFtZSA9IChOU1N0cmluZyAq
KXJlc3VsdDsKKyAgICAgICAgaWYgKGV4cGVjdFN3YXAgPT0gRXhwZWN0U3dhcDo6WWVzKQorICAg
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgd2luZG93TmFtZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZvbyIsIHdpbmRvd05hbWUpOworICAgICAg
ICBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKworICAgIGZpbmlzaGVkUnVu
bmluZ1NjcmlwdCA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBOU1N0cmluZyAqaW5uZXJUZXh0ID0g
KE5TU3RyaW5nICopcmVzdWx0OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwb3B1cCIsIGlu
bmVyVGV4dCk7CisgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwor
CisgICAgY3JlYXRlZFdlYlZpZXcgPSBudWxscHRyOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBO
YXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nl
c3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9T
ZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQoreworICAgIHJ1
bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwgSXNTYW1l
T3JpZ2luOjpZZXMsIERvU2VydmVyU2lkZVJlZGlyZWN0OjpObywgRXhwZWN0U3dhcDo6WWVzKTsK
K30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVPcmlnaW5Gcm9tQ09PUFNhbWVP
cmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCBudWxs
cHRyLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RT
d2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nU2FtZU9yaWdpbkZy
b21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1v
cmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVk
aXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0aW5nU2FtZU9yaWdpbkZyb21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVu
Q09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJ
c1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpO
byk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BT
YW1lT3JpZ2luQWxsb3dQb3B1cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2Ft
ZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Olllcywg
RG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIE5hdmlnYXRpbmdTYW1lT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luVG9DT09QU2Ft
ZU9yaWdpbikKK3sKKyAgICBydW5DT09QUHJvY2Vzc1N3YXBUZXN0KCJzYW1lLW9yaWdpbiIsICJz
YW1lLW9yaWdpbiIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8s
IEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGluZ1NhbWVP
cmlnaW5Gcm9tQ09PUFNhbWVPcmlnaW5Ub0NPT1BTYW1lT3JpZ2luV2l0aFJlZGlyZWN0KQorewor
ICAgIC8vIFdlIGV4cGVjdCBhIHN3YXAgYmVjYXVzZSB0aGUgcmVkaXJlY3QgZG9lc24ndCBoYXZl
IENPT1A9c2FtZS1vcmlnaW4uCisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmln
aW4iLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46OlllcywgRG9TZXJ2ZXJTaWRlUmVkaXJl
Y3Q6OlllcywgRXhwZWN0U3dhcDo6WWVzKTsKK30KKworVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGluZ1NhbWVPcmlnaW5XaXRob3V0Q09PUFdpdGhSZWRpcmVjdCkKK3sKKyAgICBydW5DT09QUHJv
Y2Vzc1N3YXBUZXN0KG51bGxwdHIsIG51bGxwdHIsIElzU2FtZU9yaWdpbjo6WWVzLCBEb1NlcnZl
clNpZGVSZWRpcmVjdDo6WWVzLCBFeHBlY3RTd2FwOjpObyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09P
UFByb2Nlc3NTd2FwVGVzdChudWxscHRyLCAic2FtZS1vcmlnaW4iLCBJc1NhbWVPcmlnaW46Ok5v
LCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpblRvQ09PUFNhbWVPcmlnaW4yKQorewor
ICAgIHJ1bkNPT1BQcm9jZXNzU3dhcFRlc3QoInVuc2FmZS1ub25lIiwgInNhbWUtb3JpZ2luIiwg
SXNTYW1lT3JpZ2luOjpObywgRG9TZXJ2ZXJTaWRlUmVkaXJlY3Q6Ok5vLCBFeHBlY3RTd2FwOjpZ
ZXMpOworfQorCitURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0aW5nQ3Jvc3NPcmlnaW5Gcm9tQ09P
UFNhbWVPcmlnaW4pCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4i
LCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4
cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09y
aWdpbkZyb21DT09QU2FtZU9yaWdpbjIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgi
c2FtZS1vcmlnaW4iLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNp
ZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRpbmdDcm9zc09yaWdpbkZyb21DT09QU2FtZU9yaWdpblRvQ09PUFNhbWVPcmlnaW4p
Cit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4iLCAic2FtZS1vcmln
aW4iLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3
YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRpbmdDcm9zc09yaWdpbkZy
b21DT09QU2FtZU9yaWdpbkFsbG93UG9wdXApCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVz
dCgic2FtZS1vcmlnaW4tYWxsb3ctcG9wdXAiLCBudWxscHRyLCBJc1NhbWVPcmlnaW46Ok5vLCBE
b1NlcnZlclNpZGVSZWRpcmVjdDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KKworVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGluZ0Nyb3NzT3JpZ2luRnJvbUNPT1BTYW1lT3JpZ2luQWxsb3dQb3B1
cDIpCit7CisgICAgcnVuQ09PUFByb2Nlc3NTd2FwVGVzdCgic2FtZS1vcmlnaW4tYWxsb3ctcG9w
dXAiLCAidW5zYWZlLW5vbmUiLCBJc1NhbWVPcmlnaW46Ok5vLCBEb1NlcnZlclNpZGVSZWRpcmVj
dDo6Tm8sIEV4cGVjdFN3YXA6Ok5vKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAx
ZGVjZjMwNzNhYWYzMTQ1YjFkOWI5NzI1YjVjZDViZTNhMjc3MmU0Li45M2Q4NTc1YTNmODFkODcx
NTYyOGMwM2YxZmJiYTU5MzMwYTZmZjU0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC02
MzQsNiArNjM0LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlCiAgICAgaWYgKCFpbmplY3Rl
ZEJ1bmRsZS5pc1Rlc3RSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFdoZW4g
cHJvY2VzcyBzd2FwcGluZyBvbiByZXNvdXJjZSByZXNwb25zZSwgdGhlIHByZXZpb3VzIHByb2Nl
c3MncyBsb2FkIGdldHMgaW50ZXJydXB0ZWQgYnkgcG9saWN5IGRlY2lzaW9uCisgICAgLy8gYnV0
IHdlIGRvbid0IHdhbnQgdG8gaW50ZXJydXB0IHRoZSB0ZXN0LgorICAgIGlmIChXS0Vycm9yR2V0
RXJyb3JDb2RlKGVycm9yKSA9PSBrV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9s
aWN5Q2hhbmdlICYmIFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkgJiYgIW1fZGlkQ29t
bWl0TG9hZEZvck1haW5GcmFtZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGluamVjdGVk
QnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CiAg
ICAgICAgIGR1bXBMb2FkRXZlbnQoZnJhbWUsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yIik7CiAgICAgICAgIGF1dG8gY29kZSA9IFdLRXJyb3JHZXRFcnJvckNvZGUoZXJyb3IpOwpA
QCAtNjUyLDYgKzY1Nyw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKICAgICBpZiAoIWluamVjdGVkQnVuZGxl
LmlzVGVzdFJ1bm5pbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKFdLQnVuZGxlRnJh
bWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIG1fZGlkQ29tbWl0TG9hZEZvck1haW5GcmFt
ZSA9IHRydWU7CisKICAgICBpZiAoIWluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
RHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5oCmluZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5MWI5YTIxOTc1MDM0MjExMmUuLmFk
NjYyODAyOGU1ZjM4NjExN2FiNDJkYzRjNWZjNzIzOWZlNzVlZDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaApAQCAtMTgwLDYgKzE4MCw3IEBAIHByaXZhdGU6CiAKICAgICBXS0J1bmRsZVBhZ2VSZWYg
bV9wYWdlOwogICAgIFdLUmV0YWluUHRyPFdLQnVuZGxlU2NyaXB0V29ybGRSZWY+IG1fd29ybGQ7
CisgICAgYm9vbCBtX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWRlYmEwNzk2YWMzYmZjODQ2NmU3ZjE4MmMzZDdh
NzBiYTJhZWY2Zi4uYjFhMzE5ZTJlNWFiZDZkMmJlYzc0Y2ExOGZlOWU4YjQ3NDA5M2Q1OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA4LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQg
b24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRUUCBoZWFkZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTIwMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBTa2lwIENPT1AgdGVzdHMgb24gV0sxIGFzIHdlIG9ubHkgaGF2ZSBhIHdv
cmtpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdLMi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13
azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAyMS0wOC0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjgxMzA1KSBbR1N0cmVhbWVyXSBmYXN0L21lZGlh
c3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1yYXRlLmh0bWwgdGltZW91dHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGIyNzc4MjRiOGYwMzI0YjllN2Y0ODMwOTFiY2YwYmY0
YjY5Mjk1MWQuLjE5M2VkNjRkMzZkYTUxOGIwODJlNjk3YzdjNmExZTFmZjQ3YjBkYjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTIzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50
IHByb2Nlc3Mtc3dhcHBpbmcgYmFzZWQgb24gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgSFRU
UCBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyOTIwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODIwNDc2ODY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBNaW5vciB0ZXN0IHJlYmFzZWxp
bmUgZHVlIHRvIGxvZ2dpbmcgY2hhbmdlcy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDgtMjQgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
IAogICAgICAgICBNb3ZlIGNhbmNlbCBkaWFsb2cgdGFzayB0byBgZGVmYXVsdEtleWJvYXJkRXZl
bnRIYW5kbGVyYC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9w
dXAuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1
cC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNzZmYmQ2ZTFmN2JjNzg4MzlmM2FjNDdlMmI5NWZm
NDc1NDE0NjY3Ni4uMDMyM2E1MWQ2YzUwMzc4MDdhYjI5MmJjNmJlYjQzOWU3NjhiM2VjMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2NvZXAtYmxvYi1wb3B1cC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTIsOCArMiw2IEBAIENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQg
dG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhCiBDT05TT0xF
IE1FU1NBR0U6IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2Nv
bW1vbi9ibGFuay5odG1sIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiBDT05TT0xFIE1F
U1NBR0U6IENhbmNlbGxlZCBsb2FkIHRvIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2Js
YW5rLmh0bWwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4t
UmVzb3VyY2UtUG9saWN5IHJlc3BvbnNlIGhlYWRlci4KIENPTlNPTEUgTUVTU0FHRTogRmV0Y2gg
QVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwg
ZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVk
IGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNl
IGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kg
cmVzcG9uc2UgaGVhZGVyLgotQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQg
aHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24vYmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgogCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogd2luZG93Lm9w
ZW4oKQogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IDxhPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvbmF2aWdhdGUtdG9wLXRvLWFib3V0Ymxh
bmsuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvbmF2aWdhdGUtdG9wLXRvLWFib3V0YmxhbmsuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiM2VjOGVmOThkNWI4YWJjOTAwMDMxMmM2ZDYzMjQzZmQ1NmU1MDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9uYXZpZ2F0ZS10b3At
dG8tYWJvdXRibGFuay5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorTm9uLWlu
aXRpYWwgZW1wdHkgZG9jdW1lbnRzIChhYm91dDpibGFuaykgc2hvdWxkIGluaGVyaXQgdGhlaXIg
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgZnJvbSB0aGUgbmF2aWdhdGlvbidzIGluaXRpYXRv
ciB0b3AgbGV2ZWwgZG9jdW1lbnQsIGlmIHRoZSBpbml0aWF0b3IgYW5kIGl0cyB0b3AgbGV2ZWwg
ZG9jdW1lbnQgYXJlIHNhbWUtb3JpZ2luLCBvciBkZWZhdWx0ICh0byB1bnNhZmUtbm9uZSkgb3Ro
ZXJ3aXNlLgorCitDcmVhdGUgdGhlIG9wZW5lciBwb3B1cCB3aXRoIGEgZ2l2ZW4gQ09PUCBvcGVu
ZXJDT09QLgorQWRkIGlmcmFtZSB0byB0aGUgb3BlbmVyIHBvcHVwIHRoYXQgaXMgZWl0aGVyIHNh
bWUtb3JpZ2luIG9yIGNyb3NzLW9yaWdpbi4KK09wZW5lciBvcGVucyBhIG5ldyB3aW5kb3csIHRv
IGEgbmV0d29yayBkb2N1bWVudCB3aXRoIHRoZSBzYW1lIG9yaWdpbiBhbmQgQ09PUCB2YWx1ZSBh
cyBvcGVuZXIuCitPcGVuZXIncyBpZnJhbWUgbmF2aWdhdGVzIGl0cyBwYXJlbnQgZnJhbWUgKG9w
ZW5lcikgdG8gYWJvdXQ6YmxhbmsuCitWZXJpZnkgdGhlIG9wZW5lZSBzdGlsbCBoYXMgYWNjZXNz
IHRvIGl0cyBvcGVuZXIuCisKK0ZBSUwgTmF2aWdhdGUgdG9wIHRvIGFib3V0OmJsYW5rIGZyb20g
aWZyYW1lIHdpdGggb3BlbmVyIENPT1A6IHxoZWFkZXIoQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xp
Y3ksc2FtZS1vcmlnaW4pLCBpZnJhbWUgb3JpZ2luOiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJhYm91dDpibGFuayBsb2FkZWQiIGJ1dCBnb3QgImFib3V0
OmJsYW5rIE5PVCBsb2FkZWQiCitGQUlMIE5hdmlnYXRlIHRvcCB0byBhYm91dDpibGFuayBmcm9t
IGlmcmFtZSB3aXRoIG9wZW5lciBDT09QOiB8aGVhZGVyKENyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5LHNhbWUtb3JpZ2luKSwgaWZyYW1lIG9yaWdpbjogaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0MyBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvdXQ6YmxhbmsgbG9hZGVkIiBidXQgZ290ICJhYm91
dDpibGFuayBOT1QgbG9hZGVkIgorRkFJTCBOYXZpZ2F0ZSB0b3AgdG8gYWJvdXQ6YmxhbmsgZnJv
bSBpZnJhbWUgd2l0aCBvcGVuZXIgQ09PUDogfGhlYWRlcihDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeSxzYW1lLW9yaWdpbi1hbGxvdy1wb3B1cHMpLCBpZnJhbWUgb3JpZ2luOiBodHRwczovLzEy
Ny4wLjAuMTo5NDQzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhYm91dDpibGFuayBsb2FkZWQi
IGJ1dCBnb3QgImFib3V0OmJsYW5rIE5PVCBsb2FkZWQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYjc2OWQzZDEyOTRjZDU3ODU0YzE5
NTdmYTNlMTA4MTU1MWJmOTBlLi4zYTFiZDU2MTQwZDc2MGQ0NGEzZjYxZjk2MTUyNzE3MWI1NWVj
NTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CkBAIC0zNTMsOCArMzUzLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb250
ZW50LXNlY3VyaXR5LXBvbGljeS93b3JrZXItc3JjL3NlcnZpY2Utd29ya2UKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRpb24gWyBTa2lw
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY3Jvc3Mtb3JpZ2luLXJl
c291cmNlLXBvbGljeSBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9yYW5nZS9zdy5odHRwcy53aW5kb3cuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L3BvcHVwLWNv
b3AtYnktc3ctZnJvbS1jb29wLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9wb3B1cC1jb29w
LWJ5LXN3Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmVyLXRpbWluZy9zZXJ2aWNlX3dvcmtlcl9pZGwuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5mcmFzdHJ1Y3R1cmUvc2VydmVyL2NvbnRleHQu
YW55LnNlcnZpY2V3b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtMzcxLDEwICszNjksMTEgQEAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1zZXJ2
aWNlLXdvcmtlci1pbnRlcmNlcHQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvcGFpbnQtd29ya2xldC1zZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRt
bCBbIFNraXAgXQogaHR0cC93cHQvd2VicnRjL3RyYW5zZmVyLWRhdGFjaGFubmVsLXNlcnZpY2Ut
d29ya2VyLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBObyBDcm9zcy1PcmlnaW4tRW1iZWRkZXIt
UG9saWN5IGluIFdLMS4KKyMgTm8gQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgLyBDcm9zcy1P
cmlnaW4tRW1iZWRkZXItUG9saWN5IGluIFdLMS4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBdCi1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kv
Y29lcC1ibG9iLXBvcHVwLmh0dHBzLmh0bWwgWyBTa2lwIF0KLWh0dHAvd3B0L2h0bWwvY3Jvc3Mt
b3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXF1aXJlLWNvcnAuaHR0cHMuaHRtbCBbIFNraXAgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeSBbIFNr
aXAgXQoraHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5IFsgU2tpcCBd
CiAKICMgUXVvdGEgY2hlY2sgbWlzc2luZyBpbiBXSzEKIGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0
b3JhZ2UtbGltaXQuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMWE1Njc4ZmM3YmZiMmJiOTIxYjIxZWIxOTgxYzQyMTBh
MjhhYjViLi45ZTM0OWFmZWJjMmFlZmFlZDgzZjVlMGM4NmNkOGM5NWZjYTY2NThjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzcxNSw4ICszNzE1LDYg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcG9saWNpZXMvcmVm
ZXJyZXItb3JpZ2luLXdoZW4tY3Jvc3Mtb3IKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3BvbGljaWVzL3JlZmVycmVyLXVuc2FmZS11cmwtc2VydmljZS13b3JrZXIu
aHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9kZXN0aW5hdGlvbiBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5IFsgU2tpcCBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvcG9wdXAtY29vcC1ieS1zdy1mcm9tLWNvb3AuaHR0cHMuaHRtbCBbIFNraXAgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9s
aWN5L3BvcHVwLWNvb3AtYnktc3cuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2ZXItdGltaW5nL3NlcnZpY2Vfd29ya2VyX2lkbC5odG1sIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
c2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRlZ3JhdGlvbi13aXRoLXRoZS1qYXZhc2Ny
aXB0LWFnZW50LWZvcm1hbGlzbS9yZXF1aXJlcy1mYWlsdXJlLmh0dHBzLmFueS5zZXJ2aWNld29y
a2VyLmh0bWwgWyBTa2lwIF0KQEAgLTM3MjUsMTAgKzM3MjMsMTEgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXNlcnZpY2Utd29ya2VyLWlu
dGVyY2VwdGkKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0
LXdvcmtsZXQtc2VydmljZS13b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvcGFpbnQtd29ya2xldC1z
ZXJ2aWNlLXdvcmtlci1pbnRlcmNlcHRpb24uaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIE5vIENy
b3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgorIyBObyBDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeSAvIENyb3NzLU9yaWdpbi1FbWJlZGRlci1Qb2xpY3kgaW4gV0sxLgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xp
Y3kgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMuaHRtbCBbIFNraXAgXQot
aHR0cC93cHQvaHRtbC9jcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5L3JlcXVpcmUtY29ycC5o
dHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kgWyBTa2lwIF0KK2h0dHAvd3B0L2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5IFsgU2tpcCBdCitodHRwL3dwdC9odG1sL2Nyb3NzLW9yaWdpbi1lbWJl
ZGRlci1wb2xpY3kgWyBTa2lwIF0KIAogIyBObyBoZWFkZXIgZmlsdGVyaW5nIGZvciBXSzEKIGh0
dHAvd3B0L2xvYWRpbmcvcmVkaXJlY3QtaGVhZGVycy5odG1sIFsgU2tpcCBdCg==
</data>
<flag name="commit-queue"
          id="459346"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>