<?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>240044</bug_id>
          
          <creation_ts>2022-05-03 16:20:18 -0700</creation_ts>
          <short_desc>Remove deprecated &apos;JavaEnabled&apos; feature flag and related code</short_desc>
          <delta_ts>2022-05-04 14:51:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1866296</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-03 16:20:18 -0700</bug_when>
    <thetext>We removed support for Java Plug-Ins in macOS 10.15, but never removed the preference. To reduce code complexity and build times we should remove this unused preference, leaving non-functional stubs to avoid breaking binaries that expect to call their accessor methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866298</commentid>
    <comment_count>1</comment_count>
      <attachid>458765</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-03 16:24:48 -0700</bug_when>
    <thetext>Created attachment 458765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866312</commentid>
    <comment_count>2</comment_count>
      <attachid>458765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-05-03 17:00:02 -0700</bug_when>
    <thetext>Comment on attachment 458765
Patch

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

&gt; Source/WebCore/loader/SubframeLoader.cpp:132
&gt; +    if (MIMETypeRegistry::isJavaAppletMIMEType(mimeType))
&gt; +        return false;

I understand that this preserves behavior. But do we need this? Why exactly? I think we don’t.

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:106
&gt; +// Defaults to false.

Comment could say something more specific like &quot;does nothing, always returns false&quot;.

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:108
&gt; +WK_EXPORT void WKPreferencesSetJavaEnabled(WKPreferencesRef preferences, bool javaEnabled) WK_C_API_DEPRECATED;
&gt; +WK_EXPORT bool WKPreferencesGetJavaEnabled(WKPreferencesRef preferences) WK_C_API_DEPRECATED;

Do we need this? Can we just remove it instead?

&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:585
&gt; +WK_EXPORT void WKPreferencesSetJavaEnabledForLocalFiles(WKPreferencesRef preferences, bool javaEnabled) WK_C_API_DEPRECATED;
&gt; +WK_EXPORT bool WKPreferencesGetJavaEnabledForLocalFiles(WKPreferencesRef preferences) WK_C_API_DEPRECATED;

Do we need this? Can we just remove it instead?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:1641
&gt;  #endif
&gt;  
&gt; +
&gt; +#if PLATFORM(MAC)

No need for the extra blank line.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:236
&gt; +@property (nonatomic, setter=_setJavaEnabledForLocalFiles:) BOOL _javaEnabledForLocalFiles WK_API_DEPRECATED(&quot;Java is no longer supported&quot;, macos(10.13.4, 10.15));

Do we need this? Can we just remove it instead?

&gt; Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h:293
&gt; +#define WebKitJavaEnabledPreferenceKey @&quot;WebKitJavaEnabled&quot;

Why do we need this? I suggest we remove it.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:172
&gt;  /*!
&gt;      @property javaEnabled
&gt;  */
&gt; -@property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled;
&gt; +@property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled WEBKIT_DEPRECATED_MAC(10_3, 10_15);

I suggest we have the comment say this does nothing and always returns false.

&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:3474
&gt; +- (BOOL)isJavaEnabled
&gt; +{
&gt; +    return NO;
&gt; +}
&gt; +
&gt; +- (void)setJavaEnabled:(BOOL)flag
&gt; +{
&gt; +}

Why move this to the bottom of the file instead of changing it in place?

&gt; Tools/TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:84
&gt; -    EXPECT_TRUE(WKPreferencesGetJavaEnabled(preference));
&gt; +    EXPECT_FALSE(WKPreferencesGetJavaEnabled(preference));

I suggest we just remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866324</commentid>
    <comment_count>3</comment_count>
      <attachid>458765</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-03 17:18:35 -0700</bug_when>
    <thetext>Comment on attachment 458765
Patch

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

&gt;&gt; Source/WebCore/loader/SubframeLoader.cpp:132
&gt;&gt; +        return false;
&gt; 
&gt; I understand that this preserves behavior. But do we need this? Why exactly? I think we don’t.

I&apos;ll just delete it and confirm that passes all tests. My only hesitation is that this method returns &apos;true&apos; by default, which might give us bad behavior if we just delete.

&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:106
&gt;&gt; +// Defaults to false.
&gt; 
&gt; Comment could say something more specific like &quot;does nothing, always returns false&quot;.

Will do!

&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:108
&gt;&gt; +WK_EXPORT bool WKPreferencesGetJavaEnabled(WKPreferencesRef preferences) WK_C_API_DEPRECATED;
&gt; 
&gt; Do we need this? Can we just remove it instead?

I&apos;ll confirm we don&apos;t use it anywhere. I didn&apos;t do a thorough search, so I&apos;ll double check and then remove. I&apos;m a little worried about removing it since it&apos;s API.

&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:585
&gt;&gt; +WK_EXPORT bool WKPreferencesGetJavaEnabledForLocalFiles(WKPreferencesRef preferences) WK_C_API_DEPRECATED;
&gt; 
&gt; Do we need this? Can we just remove it instead?

I&apos;ll bet we can remove both of these, since they are SPI.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:1641
&gt;&gt; +#if PLATFORM(MAC)
&gt; 
&gt; No need for the extra blank line.

Will fix.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h:236
&gt;&gt; +@property (nonatomic, setter=_setJavaEnabledForLocalFiles:) BOOL _javaEnabledForLocalFiles WK_API_DEPRECATED(&quot;Java is no longer supported&quot;, macos(10.13.4, 10.15));
&gt; 
&gt; Do we need this? Can we just remove it instead?

I&apos;ll confirm and remove.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h:293
&gt;&gt; +#define WebKitJavaEnabledPreferenceKey @&quot;WebKitJavaEnabled&quot;
&gt; 
&gt; Why do we need this? I suggest we remove it.

Will do.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.h:172
&gt;&gt; +@property (nonatomic, getter=isJavaEnabled) BOOL javaEnabled WEBKIT_DEPRECATED_MAC(10_3, 10_15);
&gt; 
&gt; I suggest we have the comment say this does nothing and always returns false.

Will do.

&gt;&gt; Source/WebKitLegacy/mac/WebView/WebPreferences.mm:3474
&gt;&gt; +}
&gt; 
&gt; Why move this to the bottom of the file instead of changing it in place?

I moved it to the &apos;WKPreferences (WKPrivateDeprecated)&apos; category, along with the other deprecated items.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:84
&gt;&gt; +    EXPECT_FALSE(WKPreferencesGetJavaEnabled(preference));
&gt; 
&gt; I suggest we just remove this.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866325</commentid>
    <comment_count>4</comment_count>
      <attachid>458767</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-03 17:23:24 -0700</bug_when>
    <thetext>Created attachment 458767
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866349</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-03 18:46:01 -0700</bug_when>
    <thetext>Patch 458767 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866483</commentid>
    <comment_count>6</comment_count>
      <attachid>458803</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-04 09:05:44 -0700</bug_when>
    <thetext>Created attachment 458803
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866544</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-04 11:30:04 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 458803 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866548</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-04 11:47:19 -0700</bug_when>
    <thetext>(In reply to EWS from comment #7)
&gt; Tools/Scripts/svn-apply failed to apply attachment 458803 [details] to trunk.
&gt; Please resolve the conflicts and upload a new patch.

Huge EWS fail:
&quot;patch: **** Can&apos;t create file /var/folders/33/15r3ggyd4fb52p4t38_rbd9w0000gn/T//pp0VQ5bq : No space left on device
&quot;

We should recognize space failures and not mark a patch as broken when that happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866569</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-04 13:23:17 -0700</bug_when>
    <thetext>Committed r293785 (250264@main): &lt;https://commits.webkit.org/250264@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458803.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866570</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-04 13:24:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/92750902&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866597</commentid>
    <comment_count>11</comment_count>
      <attachid>458765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-05-04 14:51:20 -0700</bug_when>
    <thetext>Comment on attachment 458765
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/API/C/WKPreferencesRef.h:108
&gt;&gt;&gt; +WK_EXPORT bool WKPreferencesGetJavaEnabled(WKPreferencesRef preferences) WK_C_API_DEPRECATED;
&gt;&gt; 
&gt;&gt; Do we need this? Can we just remove it instead?
&gt; 
&gt; I&apos;ll confirm we don&apos;t use it anywhere. I didn&apos;t do a thorough search, so I&apos;ll double check and then remove. I&apos;m a little worried about removing it since it&apos;s API.

Despite the name of the directory this is in, it is absolutely *not* API on Apple platforms. Our C interface for modern WebKit has only ever been SPI and I’m pretty sure we don’t ever plan to make it API.

I suppose on non-Apple platforms it might be API, so if those need this to stay around, I understand why you might not remove it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458765</attachid>
            <date>2022-05-03 16:24:48 -0700</date>
            <delta_ts>2022-05-03 17:23:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240044-20220503162447.patch</filename>
            <type>text/plain</type>
            <size>39790</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4YmI4ZjUzNDMzNDhlOGFjNmExNzBm
OGRhOGQxODhmODRhMWU2NGMuLmY2MDMxZWI4MTMyM2U3NGYwNWI5YTBhMTlhZGM3NjNjYzhkYWY2
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVk
JyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWct
SW5zIGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8g
cmVkdWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxk
IHJlbW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0
dWJzIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNh
bGwgdGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wNS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyOTM3MDMpOiAzNTggSlNDIHRl
c3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZTgzYmIzNWY4NTk5MmRmMDYyZjUzNjVhNzQ3Njc0
YzU4ZmEwMmRjLi41YjkxZDEzMzg0NTA1ZDNhNTMzMjFhNmQ0YzM0NjIxMDBjZGI2YjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVk
JyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWct
SW5zIGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8g
cmVkdWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxk
IHJlbW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0
dWJzIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNh
bGwgdGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRvckFQSUVudW1Ub1N0
cmluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaDoKKyAgICAg
ICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKToKKyAgICAgICAgKiBwYWdl
L05hdmlnYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3I6OmphdmFFbmFibGVk
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5oOgorCiAyMDIyLTA1
LTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3JhZ2VN
YXA6OnJlbW92ZUl0ZW0gbWF5IGZhaWwgdG8gcmVtb3ZlIGl0ZW0gZnJvbSBtYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggYmIzMTI3MGQ0ZmIzNWI5N2FlNjZhMTJkMDQzYzcxMjE1N2M2MWYxNy4uYTcyZmExMjVkODk4
ZDkzZTVlMWEwOTA5YjhjYzg4NDVjYjQ4MjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAor
MjAyMi0wNS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJsZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRl
ZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NDAwNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSByZW1vdmVkIHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1JbnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBu
ZXZlciByZW1vdmVkIHRoZSBwcmVmZXJlbmNlLiBUbyByZWR1Y2UgY29kZSBjb21wbGV4aXR5Cisg
ICAgICAgIGFuZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgdW51c2VkIHByZWZl
cmVuY2UsIGxlYXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmlu
YXJpZXMKKyAgICAgICAgdGhhdCBleHBlY3QgdG8gY2FsbCB0aGVpciBhY2Nlc3NvciBtZXRob2Rz
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNH
ZXRKYXZhRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWRGb3JM
b2NhbEZpbGVzKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtX
S1ByZWZlcmVuY2VzIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGphdmFFbmFibGVk
XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0SmF2YUVuYWJsZWQ6XSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgX3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczpdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZl
cmVuY2VzOjpjcmVhdGVXaXRoTGVnYWN5RGVmYXVsdHMpOgorCiAyMDIyLTA1LTAzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtXUF0gT25seSBi
bG9jayBJT0tpdCBhY2Nlc3MgaWYgYWxsIEdQVVAgZmVhdHVyZXMgYXJlIGVuYWJsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwZjcxMTllNWM2MDExNGVlMmQ4NzIzMDY1ZTJjN2Zl
ZGEzODQ0ZTM0Li4wM2Q1NjI2YzlmZDI5ZGUwNTU5Y2VlMDI5NGVkZDc1ZjM2YmQyMTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDUtMDMgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJl
Y2F0ZWQgJ0phdmFFbmFibGVkJyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBw
b3J0IGZvciBKYXZhIFBsdWctSW5zIGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0
aGUgcHJlZmVyZW5jZS4gVG8gcmVkdWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVp
bGQgdGltZXMgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5n
IG5vbi1mdW5jdGlvbmFsIHN0dWJzIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAg
IHRoYXQgZXhwZWN0IHRvIGNhbGwgdGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViSW5z
cGVjdG9yV2luZG93Q29udHJvbGxlciBpbml0XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLmg6
CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgaXNKYXZhRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRK
YXZhRW5hYmxlZDpdKToKKwogMjAyMi0wNC0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVu
YWJsZWQgcHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGNlY2Y3ZTc3
ZjhiYTVkZjUwZDdkMjI3NjNkYmNkZjBlYTM5MWQ1MDkuLmRiYzU4ZDNlMTAzZWI5NGY3NDM4NzE1
NjFhNGVlODRhYTE0YzRiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAyMi0wNS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJsZWQnIGZlYXR1cmUgZmxhZyBh
bmQgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDAwNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSByZW1vdmVkIHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1JbnMgaW4gbWFjT1MgMTAu
MTUsIGJ1dCBuZXZlciByZW1vdmVkIHRoZSBwcmVmZXJlbmNlLiBUbyByZWR1Y2UgY29kZSBjb21w
bGV4aXR5CisgICAgICAgIGFuZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgdW51
c2VkIHByZWZlcmVuY2UsIGxlYXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1YnMgdG8gYXZvaWQgYnJl
YWtpbmcgYmluYXJpZXMKKyAgICAgICAgdGhhdCBleHBlY3QgdG8gY2FsbCB0aGVpciBhY2Nlc3Nv
ciBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkluc3BlY3RvckNsaWVudDo6b3BlbkxvY2FsRnJvbnRlbmQpOgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNl
dHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppc0phdmFFbmFibGVkKToKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjpzZXRKYXZhRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIy
LTA0LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBn
bG9iYWwgQXRvbVN0cmluZ3MgdG8gYSBjb21tb24gaGVhZGVyIHRvIHByb21vdGUgcmV1c2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55
YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwK
aW5kZXggMTJiNmZkOGRhNjNhNDg0ZTQ2Mjk2NWVmNmRlODllZWZjZTE4YjAxYi4uZjAwYzE1OTY2
YzFjMTZmYzlmY2YyMjljY2MzNGYzZmFjYTcxZjM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDcxLDI5ICsxMDcxLDYgQEAgSXRw
RGVidWdNb2RlRW5hYmxlZDoKICAgICBXZWJLaXQ6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1K
YXZhRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICB3ZWJjb3JlR2V0dGVyOiBpc0phdmFFbmFibGVk
Ci0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICAiUExBVEZPUk0oSU9T
X0ZBTUlMWSkiOiBmYWxzZQotICAgICAgZGVmYXVsdDogdHJ1ZQotICAgIFdlYktpdDoKLSAgICAg
IGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0KLUph
dmFFbmFibGVkRm9yTG9jYWxGaWxlczoKLSAgdHlwZTogYm9vbAotICB3ZWJjb3JlR2V0dGVyOiBp
c0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcwotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0TGVn
YWN5OgotICAgICAgZGVmYXVsdDogdHJ1ZQotICAgIFdlYktpdDoKLSAgICAgIGRlZmF1bHQ6IGZh
bHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IHRydWUKLQogSmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKaW5kZXggMGQ0N2Q3
YzA2YjMxMzk5MmFjYTJkNjhkOTgxMjY2NDgxY2E1Yzk4OC4uNmI5ZjRkYjQ3YzJhZjU0ODRkZjgw
YjgzMDQ0ODkxYjA0ZTBmNjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE2LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzc4LDggKzM3OCw2IEBAIHN0YXRpYyB2b2lk
IGFwcGVuZEhhc2hTZXQoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgY29uc3QgSGFzCiBzdGF0aWMgQVNDSUlMaXRlcmFsIG5hdmlnYXRvckFQSUVudW1Ub1N0cmlu
ZyhSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEkgbmF2aWdhdG9yRW51bSkKIHsK
ICAgICBzd2l0Y2ggKG5hdmlnYXRvckVudW0pIHsKLSAgICBjYXNlIFJlc291cmNlTG9hZFN0YXRp
c3RpY3M6Ok5hdmlnYXRvckFQSTo6SmF2YUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiAiamF2YUVu
YWJsZWQiX3M7CiAgICAgY2FzZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6
Ok1pbWVUeXBlczoKICAgICAgICAgcmV0dXJuICJtaW1lVHlwZXMiX3M7CiAgICAgY2FzZSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6OkNvb2tpZUVuYWJsZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaAppbmRleCBhOWI1ODI4
NzNhZTQ1NTkxNzM3ZTgwNjg5MjRjZGFmNDVkNDFjZjg1Li40YTY5NWE4MGY5Zjk4MWUxZjliZmNi
NGU2ZjQ3OTcxODc0OTEzNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwOSw3ICsxMDksNiBAQCBzdHJ1Y3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyB7CiAgICAgICAgIFBsdWdpbnMgPSAxIDw8IDIsCiAgICAgICAgIE1pbWVU
eXBlcyA9IDEgPDwgMywKICAgICAgICAgQ29va2llRW5hYmxlZCA9IDEgPDwgNCwKLSAgICAgICAg
SmF2YUVuYWJsZWQgPSAxIDw8IDUsCiAgICAgfTsKICAgICBlbnVtIGNsYXNzIFNjcmVlbkFQSSA6
IHVpbnQ2NF90IHsKICAgICAgICAgSGVpZ2h0ID0gMSA8PCAwLApAQCAtMTQ0LDggKzE0Myw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljczo6TmF2aWdhdG9yQVBJPiB7CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M6Ok5hdmlnYXRvckFQSTo6VXNlckFnZW50LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6OlBsdWdpbnMsCiAgICAgICAgIFdlYkNvcmU6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSTo6TWltZVR5cGVzLAotICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6OkNvb2tpZUVu
YWJsZWQsCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmlnYXRv
ckFQSTo6SmF2YUVuYWJsZWQKKyAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
czo6TmF2aWdhdG9yQVBJOjpDb29raWVFbmFibGVkCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDM0ZTBmYTBmNDg5MTAzNTk1Nzk0M2E5
YWFmMjQzNzQ0NjIwMjNjY2EuLjU4OTdjNTYyMTQxM2RkYzhlMzdlZmY2NTQ1NTZmNTQ4ZDgyYzJi
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkg
VG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2ht
b2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgpAQCAtMTI4LDEyICsxMjgsOCBAQCBib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRl
cjo6cGx1Z2luSXNMb2FkYWJsZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJgogewogICAg
IGF1dG8qIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwogCi0gICAgaWYgKE1JTUVUeXBl
UmVnaXN0cnk6OmlzSmF2YUFwcGxldE1JTUVUeXBlKG1pbWVUeXBlKSkgewotICAgICAgICBpZiAo
IW1fZnJhbWUuc2V0dGluZ3MoKS5pc0phdmFFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KS5pc0xvY2FsKCkgJiYgIW1fZnJhbWUuc2V0dGluZ3MoKS5pc0phdmFFbmFibGVkRm9yTG9jYWxG
aWxlcygpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBpZiAoTUlNRVR5
cGVSZWdpc3RyeTo6aXNKYXZhQXBwbGV0TUlNRVR5cGUobWltZVR5cGUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoZG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LT5p
c1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKaW5k
ZXggNTZiMTdmMmVjNWFkM2FkMDQzYTlkYmU4OTQwZjQ2MmVmMDc5NzcwZS4uYWQ4M2NlOTlhMGQ4
OWQ1M2ZmN2VmZDFjZDczYWExNGE4N2MxZWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNw
cApAQCAtMiw3ICsyLDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKGMpIDIwMDAgRGFuaWVsIE1vbGtlbnRpbiAo
bW9sa2VudGluQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChjKSAyMDAwIFN0ZWZhbiBTY2hpbWFu
c2tpIChzY2hpbW1pQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1
LCAyMDA2IEFwcGxlIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAyMiBBcHBsZSBJbmMu
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMjAsMjMgKzMyMCw2IEBAIGJvb2wgTmF2
aWdhdG9yOjpjb29raWVFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gcGFnZS0+Y29va2llSmFy
KCkuY29va2llc0VuYWJsZWQoKmRvY3VtZW50KTsKIH0KIAotYm9vbCBOYXZpZ2F0b3I6OmphdmFF
bmFibGVkKCkgY29uc3QKLXsKLSAgICBhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlzdGljc0VuYWJsZWQoKSkK
LSAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ05hdmlnYXRvckFQSUFj
Y2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdh
dG9yQVBJOjpKYXZhRW5hYmxlZCk7Ci0KLSAgICBpZiAoIWZyYW1lLT5zZXR0aW5ncygpLmlzSmF2
YUVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChmcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5pc0xvY2FsKCkgJiYgIWZyYW1lLT5zZXR0aW5ncygpLmlz
SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHJldHVybiB0cnVlOwotfQotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogYm9vbCBOYXZp
Z2F0b3I6OnN0YW5kYWxvbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKaW5kZXggYmFj
NDliMzQxMWJkYzhjNmNlZGI1ODJiMzliNjk0MzRhMGQ5NDQ2My4uZmI3ZjY2M2FjM2MwNjQ1MDUx
MTYxYTA0MGVmNGE0OGNjZTk4NjNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKICAgICBET01QbHVnaW5BcnJheSYgcGx1Z2lucygpOwogICAgIERP
TU1pbWVUeXBlQXJyYXkmIG1pbWVUeXBlcygpOwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNv
bnN0OwotICAgIGJvb2wgamF2YUVuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGphdmFFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCgp
IGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBwbGF0Zm9ybSgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgdXNlckFnZW50Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5YTg5YmY0M2FkNWEzMTAyMzU2YzA2NmI3MWZkN2Iw
ZmU2Mjg5MWM5Li5iNzViNmZiMjRmMWFjNDdmZDliNjFhOTY5YTkzNjE2MTYwYmM3ZWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIwNCwyNiArMjA0LDYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGx1Z2luc0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+cGx1Z2luc0VuYWJsZWQoKTsKIH0KIAotdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2
YUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBqYXZhRW5hYmxl
ZCkKLXsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRKYXZhRW5hYmxlZChqYXZhRW5h
YmxlZCk7Ci19Ci0KLWJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmphdmFFbmFibGVkKCk7Ci19Ci0KLXZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVk
Rm9yTG9jYWxGaWxlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGphdmFF
bmFibGVkRm9yTG9jYWxGaWxlcykKLXsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRK
YXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKTsKLX0KLQot
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmphdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpOwotfQotCiB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxs
eSkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRKYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkp
OwpAQCAtMjIxMSwzICsyMTkxLDIxIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkFyY2hpdmVE
ZWJ1Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRKYXZhRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmLCBib29sKQoreworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBX
S1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5jZXNSZWYs
IGJvb2wpCit7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFFbmFibGVkRm9yTG9jYWxG
aWxlcyhXS1ByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAppbmRleCA2ZWE3
YmNiMWZhYWNjOTUyZTZhOTE1ZDc2NWFjNThlYmQyOWI5NDUwLi5iZDgxMDI5NGRkODc5ZTEwMTEx
YzQ3MzExZjU3ODE2ODk2ZGZhYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMyw5ICsxMDMsOSBAQCBXS19FWFBPUlQg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuYwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFBsdWdpbnNFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgcGx1Z2luc0VuYWJsZWQpOwog
V0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBsdWdpbnNFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMpOwogCi0vLyBEZWZhdWx0cyB0byB0cnVlLgotV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMsIGJvb2wgamF2YUVuYWJsZWQpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEph
dmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOworLy8gRGVmYXVsdHMgdG8g
ZmFsc2UuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBqYXZhRW5hYmxlZCkgV0tfQ19BUElfREVQUkVD
QVRFRDsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogCiAvLyBEZWZhdWx0
cyB0byB0cnVlLgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9v
bCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmlu
ZGV4IDY1OTczODJiODk1NGY3NzEwYmI3MGRjMjQ4ZWI0MTcyNmU3ZDJhMmYuLmM0ZTRkNzJlMzBm
Y2ZiMmUxOWFlYzlkZGU2ZThkNDYyMTA2MWFlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxMSwx
MCArMjExLDYgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNob3dzVG9vbFRpcE92
ZXJUcnVuY2F0ZWRUZXh0KFdLUHJlZmVyZW5jZXNSZWYgcHIKIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKLS8v
IERlZmF1bHRzIHRvIHRydWUuCi1XS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2YUVu
YWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgamF2
YUVuYWJsZWQpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFFbmFibGVkRm9y
TG9jYWxGaWxlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKLQogLy8gRGVmYXVsdHMg
dG8gZmFsc2UKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXREaWFnbm9zdGljTG9nZ2lu
Z0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CkBAIC01ODUsNiArNTgxLDggQEAgV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQoV0tQcmVmZXJlbmNlc1IKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTdWJw
aXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0V2ViQXJjaGl2ZURl
YnVnTW9kZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBlbmFibGVk
KSBXS19DX0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdl
YkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpIFdL
X0NfQVBJX0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2YUVu
YWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgamF2
YUVuYWJsZWQpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRl
eCA4ZmMxZTg1NDdmZDI5YjI4MDE2NjA3MDUxNmYzZTBlNjdkZWJjNWU4Li5hNzgwYzEzZTc2MjUw
NDhlODIzMzhjMTE2OWJhYjFkYWMyMzMwMTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc2LDkgKzc2LDYgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogCiAjaWYgUExBVEZPUk0oTUFDKQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFFbmFibGVkIGZvcktl
eTpAImphdmFFbmFibGVkIl07Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLnRhYkZvY3VzZXNMaW5rcyBmb3JLZXk6QCJ0YWJGb2N1
c2VzTGlua3MiXTsKICNlbmRpZgogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYudGV4dEludGVy
YWN0aW9uRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rpb25FbmFibGVkIl07CkBAIC05Nyw5
ICs5NCw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JNKE1BQykKLUFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgc2VsZi5qYXZhRW5hYmxlZCA9IFtjb2RlciBk
ZWNvZGVCb29sRm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIHNlbGYudGFiRm9jdXNlc0xpbmtzID0gW2NvZGVyIGRlY29kZUJvb2xG
b3JLZXk6QCJ0YWJGb2N1c2VzTGlua3MiXTsKICNlbmRpZgogICAgIGlmIChbY29kZXIgY29udGFp
bnNWYWx1ZUZvcktleTpAInRleHRJbnRlcmFjdGlvbkVuYWJsZWQiXSkKQEAgLTk1NCwxNiArOTQ4
LDYgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5r
QmVoYXZpb3IoX1dLRWRpdGFibGVMaW5rQmVoYXYKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLS0g
KHZvaWQpX3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczooQk9PTCllbmFibGVkCi17Ci0gICAg
X3ByZWZlcmVuY2VzLT5zZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoZW5hYmxlZCk7Ci19Ci0K
LS0gKEJPT0wpX2phdmFFbmFibGVkRm9yTG9jYWxGaWxlcwotewotICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpOwotfQotCiAtICh2b2lkKV9zZXRDYW52
YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nOihCT09MKWVuYWJsZWQKIHsKICAgICBfcHJlZmVyZW5j
ZXMtPnNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoZW5hYmxlZCk7CkBAIC0xNTg4LDEy
ICsxNTcyLDExIEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0VkaXRh
YmxlTGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2CiAKIC0gKEJPT0wpamF2YUVuYWJs
ZWQKIHsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhRW5hYmxlZCgpOworICAgIHJldHVy
biBOTzsKIH0KIAogLSAodm9pZClzZXRKYXZhRW5hYmxlZDooQk9PTClqYXZhRW5hYmxlZAogewot
ICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YUVuYWJsZWQoamF2YUVuYWJsZWQpOwogfQogCiAtIChC
T09MKXBsdWdJbnNFbmFibGVkCkBAIC0xNjU0LDQgKzE2MzcsMTYgQEAgc3RhdGljIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoX1dLRWRpdGFibGVM
aW5rQmVoYXYKIAogI2VuZGlmCiAKKworI2lmIFBMQVRGT1JNKE1BQykKKy0gKHZvaWQpX3NldEph
dmFFbmFibGVkRm9yTG9jYWxGaWxlczooQk9PTCllbmFibGVkCit7Cit9CisKKy0gKEJPT0wpX2ph
dmFFbmFibGVkRm9yTG9jYWxGaWxlcworeworICAgIHJldHVybiBOTzsKK30KKyNlbmRpZgorCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGEwOGM4NGM1Y2ZhMGI3MDFkNjFiM2Y3NjI5NTczOGQ2
NzZiZjc2MWYuLmNjODgzYTk5MzBlNzE3ZTlkOGMzZmZkY2MwMThmNDU3NGNhMjMzYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTgzLDcgKzE4Myw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogCiAjaWYgIVRBUkdFVF9PU19JUEhP
TkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdlYkdMRW5hYmxlZDopIEJPT0wg
X3dlYkdMRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczopIEJPT0wg
X2phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhbnZhc1VzZXNBY2NlbGVyYXRl
ZERyYXdpbmc6KSBCT09MIF9jYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RGVmYXVsdFRleHRFbmNvZGluZ05hbWU6KSBOU1N0cmluZyAqX2RlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6KSBCT09MIF9hdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKQEAg
LTIzNCw1ICsyMzMsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJl
Y3Rpb25BbGdvcml0aG0pIHsKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDopIEJP
T0wgX3N1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQo
IlN1YnBpeGVsIENTU09NIGVsZW1lbnQgbWV0cmljcyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIs
IG1hY29zKDEwLjEzLjQsIDEwLjE1KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRXZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZDopIEJPT0wgX3dlYkFyY2hpdmVEZWJ1Z01vZGVF
bmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJXZWJBcmNoaXZlIERlYnVnIE1vZGUgaXMgbm8gbG9u
Z2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczopIEJPT0wgX2ph
dmFFbmFibGVkRm9yTG9jYWxGaWxlcyBXS19BUElfREVQUkVDQVRFRCgiSmF2YSBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTMuNCwgMTAuMTUpKTsKICNlbmRpZgogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDhiNjdmMGQxN2Rj
OGE2OThlYzQ0NzJkZWY0YTVlYjMzMjMwYzliNTUuLjFkYmNhZThjNmE2NmYwOGRiMjYyYWQzZjE3
YjhkMDEzYTExNGY1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNl
cy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTAsOCArNTAsNiBAQCBSZWY8V2ViUHJlZmVyZW5jZXM+IFdlYlByZWZlcmVu
Y2VzOjpjcmVhdGVXaXRoTGVnYWN5RGVmYXVsdHMoY29uc3QgU3RyaW5nJiBpZGVudAogICAgIGF1
dG8gcHJlZmVyZW5jZXMgPSBXZWJQcmVmZXJlbmNlczo6Y3JlYXRlKGlkZW50aWZpZXIsIGtleVBy
ZWZpeCwgZ2xvYmFsRGVidWdLZXlQcmVmaXgpOwogICAgIC8vIEZJWE1FOiBUaGUgcmVnaXN0ZXJE
ZWZhdWx0Li4uVmFsdWVGb3JLZXkgbWFjaGluZXJ5IGlzIHVubmVjZXNzYXJpbHkgaGVhdnl3ZWln
aHQgYW5kIGNvbXBsaWNhdGVkLgogICAgIC8vIFdlIGNhbiBqdXN0IGNvbXB1dGUgZGlmZmVyZW50
IGRlZmF1bHRzIGZvciBtb2Rlcm4gYW5kIGxlZ2FjeSBBUElzIGluIFdlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaCBtYWNyb3MuCi0gICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YUVuYWJsZWRLZXkoKSwgdHJ1ZSk7Ci0g
ICAgcHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6amF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzS2V5KCksIHRydWUpOwogICAgIHByZWZl
cmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OnBsdWdpbnNFbmFibGVkS2V5KCksIHRydWUpOwogICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRl
ZmF1bHRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5n
UG9saWN5S2V5KCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpTdG9yYWdlQmxvY2tp
bmdQb2xpY3k6OkFsbG93QWxsKSk7CiAgICAgcmV0dXJuIHByZWZlcmVuY2VzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50Lm1tCmluZGV4IDJjMzUwNjM5MTU3MzEwNWNlNTgyOGUzNmU3ZWM1MDFjZTVmNGFl
NTkuLjk4YmMzNDkzMDY3MjUzMjQ1MjZkZWUwMjkzZGRiNDZlYjU2ZmFjZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4MSw3ICs0ODEsNiBAQCB2b2lkIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjphcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0
cmluZwogICAgIFtwcmVmZXJlbmNlcyBzZXRBdXRvc2F2ZXM6Tk9dOwogICAgIFtwcmVmZXJlbmNl
cyBzZXREZWZhdWx0Rml4ZWRGb250U2l6ZToxMV07CiAgICAgW3ByZWZlcmVuY2VzIHNldEZpeGVk
Rm9udEZhbWlseTpAIk1lbmxvIl07Ci0gICAgW3ByZWZlcmVuY2VzIHNldEphdmFFbmFibGVkOk5P
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdEVuYWJsZWQ6WUVTXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OllFU107CiAgICAgW3ByZWZlcmVu
Y2VzIHNldE1pbmltdW1Gb250U2l6ZTowXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDE2MGVk
MjBjMDY2MjIwOTRhNTAxODBhMDQzMWYwOWQyM2E5MTcxYzguLjIxODFkNTg0NmMzNjEwODRhYzY1
NTlmMTFjZjg1MWU2NjAyMjM2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDcgKzQ5
LDYgQEAKICNkZWZpbmUgV2ViS2l0VGV4dEFyZWFzQXJlUmVzaXphYmxlUHJlZmVyZW5jZUtleSBA
IldlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZSIKICNlbmRpZgogI2RlZmluZSBXZWJLaXRTaHJp
bmtzU3RhbmRhbG9uZUltYWdlc1RvRml0UHJlZmVyZW5jZUtleSBAIldlYktpdFNocmlua3NTdGFu
ZGFsb25lSW1hZ2VzVG9GaXQiCi0jZGVmaW5lIFdlYktpdEphdmFFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdEphdmFFbmFibGVkIgogI2RlZmluZSBXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SmF2
YVNjcmlwdE1hcmt1cEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SmF2YVNjcmlwdE1hcmt1
cEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYlNlY3VyaXR5RW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRXZWJTZWN1cml0eUVuYWJsZWQiCkBAIC0yOTEsMyArMjkwLDQgQEAKICNkZWZpbmUg
V2ViS2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5IgogI2RlZmlu
ZSBXZWJLaXRYU1NBdWRpdG9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRYU1NBdWRpdG9y
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0QVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZEtl
eSBAIldlYktpdEFWRm91bmRhdGlvbk5TVVJMU2Vzc2lvbkVuYWJsZWQiCisjZGVmaW5lIFdlYktp
dEphdmFFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEphdmFFbmFibGVkIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDY4YTY0
Mjc4YTM0MWEzZGY0ZWNjMGQ1YjczZDBlY2RlNTNmYThhYjkuLmE1YWEzN2M4ZDIwNzk1YmJkYzg1
MjBmYzZhZTdjNzU1OWMyMjhmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDEyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNjksNyArMTY5LDcg
QEAgV0VCS0lUX0NMQVNTX0RFUFJFQ0FURURfTUFDKDEwXzMsIDEwXzE0KQogLyohCiAgICAgQHBy
b3BlcnR5IGphdmFFbmFibGVkCiAqLwotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0ph
dmFFbmFibGVkKSBCT09MIGphdmFFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRl
cj1pc0phdmFFbmFibGVkKSBCT09MIGphdmFFbmFibGVkIFdFQktJVF9ERVBSRUNBVEVEX01BQygx
MF8zLCAxMF8xNSk7CiAKIC8qIQogICAgIEBwcm9wZXJ0eSBqYXZhU2NyaXB0RW5hYmxlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5k
ZXggZTFkZjI3MWE2YzJkZDM0ZDkyY2Y2MzU0OGU4ZTBhYmY3MDBjYmQ0My4uYjc2ZDE4YTA3ZmJh
NzM2MTFmNGFiNTg2YzQyZGNmN2ZkZTU5YmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqICAgICAgICAgICAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdt
YWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTg1OSwxNiArODU5LDYgQEAgcHVibGljOgog
fQogI2VuZGlmCiAKLS0gKEJPT0wpaXNKYXZhRW5hYmxlZAotewotICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OiBXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVuY2VLZXldOwotfQotCi0t
ICh2b2lkKXNldEphdmFFbmFibGVkOihCT09MKWZsYWcKLXsKLSAgICBbc2VsZiBfc2V0Qm9vbFZh
bHVlOiBmbGFnIGZvcktleTogV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQog
LSAoQk9PTClpc0phdmFTY3JpcHRFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFs
dWVGb3JLZXk6IFdlYktpdEphdmFTY3JpcHRFbmFibGVkUHJlZmVyZW5jZUtleV07CkBAIC0zNDc0
LDQgKzM0NjQsMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4mIGNsYXNzSUJDcmVhdG9y
SUQoKQogewogfQogCistIChCT09MKWlzSmF2YUVuYWJsZWQKK3sKKyAgICByZXR1cm4gTk87Cit9
CisKKy0gKHZvaWQpc2V0SmF2YUVuYWJsZWQ6KEJPT0wpZmxhZworeworfQorCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCA2YTQ1MDAxYmUxMjEwNGMwMTI1NGEwYWNiYmVmY2M0
ZDkwZTViMGY0Li5jYmEzYWJjYTMzNjc0ZGY0MzIzYjhkODM2ZWJmOTJjMGEzNTc5MGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LTIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzMSw4ICsxMzEsNiBA
QCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xpZW50OjpvcGVuTG9j
YWxGcm9udGVuZChJbnNwZWN0b3JDb250cgogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoRkFJ
TEVEKHByZWZlcmVuY2VzLT5zZXRQbHVnSW5zRW5hYmxlZChGQUxTRSkpKQogICAgICAgICByZXR1
cm4gMDsKLSAgICBpZiAoRkFJTEVEKHByZWZlcmVuY2VzLT5zZXRKYXZhRW5hYmxlZChGQUxTRSkp
KQotICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoRkFJTEVEKHByZWZlcmVuY2VzLT5zZXRVc2Vy
U3R5bGVTaGVldEVuYWJsZWQoRkFMU0UpKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKEZB
SUxFRChwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlua3MoRkFMU0UpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNDE4NzNk
YzAzYjBhMTkxMDc4NTRkZjJkNjE2ODY2NmNkNjMyYzA5Mi4uNzE2N2U0NmVkZWZmZWY1YmRmZmQ5
MzQ4YjNlOTM3NjVmMzJkNWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTQ4LDcgKzQ4LDYgQEAKICNkZWZpbmUgV2Vi
S2l0VXNlclN0eWxlU2hlZXRMb2NhdGlvblByZWZlcmVuY2VLZXkgIldlYktpdFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb25QcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRTaG91bGRQcmludEJhY2tn
cm91bmRzUHJlZmVyZW5jZUtleSAiV2ViS2l0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kc1ByZWZlcmVu
Y2VLZXkiCiAjZGVmaW5lIFdlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZVByZWZlcmVuY2VLZXkg
IldlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZSIKLSNkZWZpbmUgV2ViS2l0SmF2YUVuYWJsZWRQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRKYXZhRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SmF2YVNjcmlw
dEVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZCIKICNkZWZpbmUg
V2ViS2l0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnc1ByZWZlcmVuY2VLZXkgIldlYktpdEphdmFTY3Jp
cHRSdW50aW1lRmxhZ3MiCiAjZGVmaW5lIFdlYktpdFdlYlNlY3VyaXR5RW5hYmxlZFByZWZlcmVu
Y2VLZXkgIldlYktpdFdlYlNlY3VyaXR5RW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAxMjg2MjY3NTQxOTZkYzM5MDdhMDUzNGFhOTBhZjlh
ZDIwNDE2YTNkLi5hNTM5NWM5MDE5Mzg5Y2VmYWI1ODg3MmU1YTY0OWFmYzE4MDI3M2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0yNDgsNyArMjQ4
LDYgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAg
ICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENGU1RSKFdlYktpdFVzZXJT
dHlsZVNoZWV0TG9jYXRpb25QcmVmZXJlbmNlS2V5KSwgQ0ZTVFIoIiIpKTsKICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2ViS2l0U2hvdWxkUHJpbnRCYWNr
Z3JvdW5kc1ByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGRlZmF1bHRzLmdldCgpLCBDRlNUUihXZWJLaXRUZXh0QXJlYXNBcmVSZXNpemFi
bGVQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKLSAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhblRydWUpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLmdl
dCgpLCBDRlNUUihXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENGU1RS
KFdlYktpdEphdmFTY3JpcHRSdW50aW1lRmxhZ3NQcmVmZXJlbmNlS2V5KSwgQ0ZTVFIoIjAiKSk7
CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENGU1RSKFdlYktpdFdl
YlNlY3VyaXR5RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CkBAIC05Mjgs
MTMgKzkyNywxMiBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjppc0phdmFFbmFibGVkKF9PdXRf
IEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQogICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOwotICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KFdlYktpdEphdmFFbmFibGVk
UHJlZmVyZW5jZUtleSk7CisgICAgKmVuYWJsZWQgPSBGQUxTRTsKICAgICByZXR1cm4gU19PSzsK
IH0KIAotSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0SmF2YUVuYWJsZWQoQk9PTCBlbmFibGVk
KQorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0SmF2YUVuYWJsZWQoQk9PTCkKIHsKLSAgICBz
ZXRCb29sVmFsdWUoV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJlbmNlS2V5LCBlbmFibGVkKTsKICAg
ICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5
Zjk4ZGM1MWM3N2Y3NWVkZDFkZTZjM2NmNTY3M2VjODM3YjFmOWExLi5hNTc0YTRjOWNmMzhlMGE1
ODhiZWI4MWFhOTg4ZjY2NTZlOWViYTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSwg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjIgQXBw
bGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAx
MCwgMjAxMSBBcHBjZWxlcmF0b3IsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMSBCcmVudCBGdWxnaGFtLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTQ5ODYsMTEgKzQ5ODYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hh
bmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgc2V0dGluZ3Muc2V0UGlj
dG9ncmFwaEZvbnRGYW1pbHkodG9BdG9tU3RyaW5nKHN0cikpOwogICAgIHN0ci5jbGVhcigpOwog
Ci0gICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNKYXZhRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgaWYg
KEZBSUxFRChocikpCi0gICAgICAgIHJldHVybiBocjsKLSAgICBzZXR0aW5ncy5zZXRKYXZhRW5h
YmxlZCghIWVuYWJsZWQpOwotCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNKYXZhU2NyaXB0RW5h
YmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZjMy
MjViYWM2MTAzZjQ5OTIxYmEwOWUzNWY4MmQ0YzM2MDdlY2FiLi5kMTZmODZhMjRkYzM2NmVmNDkz
NDM3NmIyZGFkNmQzNmE2NTgzOGRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0ph
dmFFbmFibGVkJyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBK
YXZhIFBsdWctSW5zIGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVy
ZW5jZS4gVG8gcmVkdWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMg
d2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5j
dGlvbmFsIHN0dWJzIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhw
ZWN0IHRvIGNhbGwgdGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1
bHRzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NvZGluZy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weWluZy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAy
MDIyLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI5MzcwMyk6IDM1OCBKU0MgdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuY3BwCmluZGV4IDhhMGZhY2Y2YzNlZTQ5NmU1YWU0NTRiZGJjMTIyNTRmN2Jk
NTBhYTcuLmRjM2VmN2M3NmQxYmFlZjU5YTA1ODlkMjcxY2NkZWNmY2MxNjYzOGMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTc5LDcgKzc5LDYgQEAgY29uc3QgVGVzdEZl
YXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogICAgICAgICAgICAgeyAiR2FtZXBhZHNF
bmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiSGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1
c3BlbnNpb25FbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIklubGluZU1lZGlhUGxh
eWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIiwgZmFsc2UgfSwKLSAgICAgICAgICAg
IHsgIkphdmFFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkphdmFTY3JpcHRDYW5B
Y2Nlc3NDbGlwYm9hcmQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJKYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiTGFyZ2VJbWFn
ZUFzeW5jRGVjb2RpbmdFbmFibGVkIiwgZmFsc2UgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDU0NGJmNDc0YmJiNmRmYmFmNDM3ZGI2MGUzODRh
N2EzYTY5MzkyNDguLjJlMzRlYTUwNGFiZTJjODg4OTllNGFjNjZkMjc4ZWE2MjI5NTQxNjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODc3LDcg
Kzg3Nyw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBwcmVmZXJlbmNlcy0+c2V0RGVm
YXVsdEZpeGVkRm9udFNpemUoMTMpOwogICAgIHByZWZlcmVuY2VzLT5zZXRNaW5pbXVtRm9udFNp
emUoMCk7CiAgICAgcHJlZmVyZW5jZXMtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKF9ic3Ry
X3QoTCJJU08tODg1OS0xIikpOwotICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhRW5hYmxlZChGQUxT
RSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKFRSVUUpOwogICAgIHBy
ZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihXZWJLaXRFZGl0YWJsZUxpbmtPbmx5
TGl2ZVdpdGhTaGlmdEtleSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldERPTVBhc3RlQWxsb3dlZChU
UlVFKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUHJl
ZmVyZW5jZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJl
bmNlcy5jcHAKaW5kZXggYWFhNDljZTlkZjYxM2E1NTNkY2FmZWU0ZmQxMmJmZThkYmJmY2QzNC4u
YmZkNTM2MWU5NTFkMTI5NTA5MzljYTMzNzg2NGI5YjQ1MWFmZWUwZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgVEVTVChXZWJLaXQsIFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKICAgICBFWFBFQ1Rf
VFJVRShXS1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJlbmNlKSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHBy
ZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfVFJVRShXS1ByZWZlcmVuY2VzR2V0UGx1Z2luc0VuYWJs
ZWQocHJlZmVyZW5jZSkpOwotICAgIEVYUEVDVF9UUlVFKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5h
YmxlZChwcmVmZXJlbmNlKSk7CisgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRKYXZh
RW5hYmxlZChwcmVmZXJlbmNlKSk7CiAgICAgRVhQRUNUX1RSVUUoV0tQcmVmZXJlbmNlc0dldEph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZSkpOwogICAgIEVY
UEVDVF9UUlVFKFdLUHJlZmVyZW5jZXNHZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQocHJlZmVy
ZW5jZSkpOwogICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3RlZFN0YW5kYXJkRm9udEZhbWlseSwg
YWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJlbmNlKSkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db2Rp
bmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQpp
bmRleCBhNjZhZjlmNzUwMDA5NjU2ZjgxYWJmZWE5MWE5Y2Q4NTViNzAwMzY2Li40ZDIzNWQ0ZTU3
NTE2YThjYWQ4YWRlOGQ4NmU3MWNhZGUzNmFhODIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQpAQCAtNTMsNyArNTMsNiBAQCBURVNUKENv
ZGluZywgV0tQcmVmZXJlbmNlcykKICAgICBbYSBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5OllFU107CiAjZWxzZQogICAgIFthIHNldEphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHk6Tk9dOwotICAgIFthIHNldEphdmFFbmFibGVkOllFU107CiAgICAg
W2Egc2V0UGx1Z0luc0VuYWJsZWQ6WUVTXTsKICAgICBbYSBzZXRUYWJGb2N1c2VzTGlua3M6WUVT
XTsKICNlbmRpZgpAQCAtNjUsNyArNjQsNiBAQCBURVNUKENvZGluZywgV0tQcmVmZXJlbmNlcykK
ICAgICBFWFBFQ1RfRVEoW2EgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseV0s
IFtiIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHldKTsKIAogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBFWFBFQ1RfRVEoW2EgamF2YUVuYWJsZWRdLCBbYiBqYXZhRW5hYmxlZF0p
OwogICAgIEVYUEVDVF9FUShbYSBwbHVnSW5zRW5hYmxlZF0sIFtiIHBsdWdJbnNFbmFibGVkXSk7
CiAgICAgRVhQRUNUX0VRKFthIHRhYkZvY3VzZXNMaW5rc10sIFtiIHRhYkZvY3VzZXNMaW5rc10p
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NvcHlpbmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nv
cHlpbmcubW0KaW5kZXggYjcwNGUzMzUzODFiYWFkMTI4NzY4ZmE2OGJiOTdiMjg2NmEzNTNkYi4u
N2E2N2I4NTAwMDA4ODFmYjFhMTk1ZTBiZTM5MGJjYzkxZDMwYzdkMSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5aW5nLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weWluZy5tbQpAQCAtMzcsNyArMzcs
NiBAQCBURVNUKENvcHlpbmcsIFdLUHJlZmVyZW5jZXMpCiAgICAgW2Egc2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTpZRVNdOwogI2Vsc2UKICAgICBbYSBzZXRKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5Ok5PXTsKLSAgICBbYSBzZXRKYXZhRW5hYmxl
ZDpZRVNdOwogICAgIFthIHNldFBsdWdJbnNFbmFibGVkOllFU107CiAgICAgW2Egc2V0VGFiRm9j
dXNlc0xpbmtzOllFU107CiAjZW5kaWYKQEAgLTYwLDcgKzU5LDYgQEAgVEVTVChDb3B5aW5nLCBX
S1ByZWZlcmVuY2VzKQogICAgIFtiIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHk6Tk9dOwogI2Vsc2UKICAgICBbYiBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5OllFU107Ci0gICAgW2Igc2V0SmF2YUVuYWJsZWQ6Tk9dOwogICAgIFtiIHNldFBs
dWdJbnNFbmFibGVkOk5PXTsKICAgICBbYiBzZXRUYWJGb2N1c2VzTGlua3M6Tk9dOwogI2VuZGlm
CkBAIC03MCw3ICs2OCw2IEBAIFRFU1QoQ29weWluZywgV0tQcmVmZXJlbmNlcykKICAgICBFWFBF
Q1RfTkUoW2EgamF2YVNjcmlwdEVuYWJsZWRdLCBbYiBqYXZhU2NyaXB0RW5hYmxlZF0pOwogICAg
IEVYUEVDVF9ORShbYSBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5XSwgW2Ig
amF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseV0pOwogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBFWFBFQ1RfTkUoW2EgamF2YUVuYWJsZWRdLCBbYiBqYXZhRW5hYmxlZF0pOwogICAg
IEVYUEVDVF9FUShbYSBwbHVnSW5zRW5hYmxlZF0sIFtiIHBsdWdJbnNFbmFibGVkXSk7CiAgICAg
RVhQRUNUX05FKFthIHRhYkZvY3VzZXNMaW5rc10sIFtiIHRhYkZvY3VzZXNMaW5rc10pOwogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458767</attachid>
            <date>2022-05-03 17:23:24 -0700</date>
            <delta_ts>2022-05-04 09:05:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-240044-20220503172323.patch</filename>
            <type>text/plain</type>
            <size>39625</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4YmI4ZjUzNDMzNDhlOGFjNmExNzBm
OGRhOGQxODhmODRhMWU2NGMuLjViZTFlNmZiYzc1MDRlMDJkM2I2Y2ViNmUxMTE0MDdhNGZjOTg5
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVk
JyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWctSW5z
IGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8gcmVk
dWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxkIHJl
bW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0dWJz
IHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNhbGwg
dGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wNS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyOTM3MDMpOiAzNTggSlNDIHRlc3Rz
IGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZTgzYmIzNWY4NTk5MmRmMDYyZjUzNjVhNzQ3Njc0YzU4
ZmEwMmRjLi44ZTI1MDZiMTRhODczMWEyODgzNWY3ZTdkMDA3NDNhNzJkMzQ2Y2EzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVkJyBm
ZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWctSW5zIGlu
IG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8gcmVkdWNl
IGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxkIHJlbW92
ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0dWJzIHRv
IGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNhbGwgdGhl
aXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRvckFQSUVudW1Ub1N0cmluZyk6
CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaDoKKyAgICAgICAgKiBs
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKToKKyAgICAgICAgKiBwYWdlL05hdmln
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3I6OmphdmFFbmFibGVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5oOgorCiAyMDIyLTA1LTAzICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3JhZ2VNYXA6OnJl
bW92ZUl0ZW0gbWF5IGZhaWwgdG8gcmVtb3ZlIGl0ZW0gZnJvbSBtYXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmIz
MTI3MGQ0ZmIzNWI5N2FlNjZhMTJkMDQzYzcxMjE1N2M2MWYxNy4uNzI5MzA2YzBkY2E3ODU5NDBm
Yzg2Yzg3YjQ3Y2U3MjExMDM3NDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0w
NS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1v
dmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJsZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRlZCBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwNDQK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBXZSByZW1vdmVk
IHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1JbnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBuZXZlciByZW1v
dmVkIHRoZSBwcmVmZXJlbmNlLiBUbyByZWR1Y2UgY29kZSBjb21wbGV4aXR5CisgICAgICAgIGFu
ZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgdW51c2VkIHByZWZlcmVuY2UsIGxl
YXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmluYXJpZXMKKyAg
ICAgICAgdGhhdCBleHBlY3QgdG8gY2FsbCB0aGVpciBhY2Nlc3NvciBtZXRob2RzLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc1NldEphdmFFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5h
YmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpbml0V2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGphdmFFbmFibGVkXSk6CisgICAg
ICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0SmF2YUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJl
ZmVyZW5jZXMgX3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczpdKToKKyAgICAgICAgKC1bV0tQ
cmVmZXJlbmNlcyBfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdp
dGhMZWdhY3lEZWZhdWx0cyk6CisKIDIwMjItMDUtMDMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dQXSBPbmx5IGJsb2NrIElPS2l0IGFjY2Vz
cyBpZiBhbGwgR1BVUCBmZWF0dXJlcyBhcmUgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IDBmNzExOWU1YzYwMTE0ZWUyZDg3MjMwNjVlMmM3ZmVkYTM4NDRlMzQuLmY5MmY5
NjU1ZDRiMmQ1Y2ViODZhZTY3NTZhYjM0ZGU2YzIyMjk0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMi0wNS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJs
ZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwNDQKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBXZSByZW1vdmVkIHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1J
bnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBuZXZlciByZW1vdmVkIHRoZSBwcmVmZXJlbmNlLiBUbyBy
ZWR1Y2UgY29kZSBjb21wbGV4aXR5CisgICAgICAgIGFuZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQg
cmVtb3ZlIHRoaXMgdW51c2VkIHByZWZlcmVuY2UsIGxlYXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1
YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmluYXJpZXMKKyAgICAgICAgdGhhdCBleHBlY3QgdG8gY2Fs
bCB0aGVpciBhY2Nlc3NvciBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9s
bGVyIGluaXRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBpc0phdmFFbmFi
bGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEphdmFFbmFibGVkOl0pOgorCiAy
MDIyLTA0LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCBwcmVmZXJlbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2VjZjdlNzdmOGJhNWRmNTBkN2QyMjc2M2Ri
Y2RmMGVhMzkxZDUwOS4uMTQ4ZDAzNjM5NTc0NjgwNDVlNmUwMTI0M2MxYzVhZDgzNGY5N2MzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA1LTAz
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBk
ZXByZWNhdGVkICdKYXZhRW5hYmxlZCcgZmVhdHVyZSBmbGFnIGFuZCByZWxhdGVkIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDA0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdlIHJlbW92ZWQgc3Vw
cG9ydCBmb3IgSmF2YSBQbHVnLUlucyBpbiBtYWNPUyAxMC4xNSwgYnV0IG5ldmVyIHJlbW92ZWQg
dGhlIHByZWZlcmVuY2UuIFRvIHJlZHVjZSBjb2RlIGNvbXBsZXhpdHkKKyAgICAgICAgYW5kIGJ1
aWxkIHRpbWVzIHdlIHNob3VsZCByZW1vdmUgdGhpcyB1bnVzZWQgcHJlZmVyZW5jZSwgbGVhdmlu
ZyBub24tZnVuY3Rpb25hbCBzdHVicyB0byBhdm9pZCBicmVha2luZyBiaW5hcmllcworICAgICAg
ICB0aGF0IGV4cGVjdCB0byBjYWxsIHRoZWlyIGFjY2Vzc29yIG1ldGhvZHMuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViSW5z
cGVjdG9yQ2xpZW50OjpvcGVuTG9jYWxGcm9udGVuZCk6CisgICAgICAgICogV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OmlzSmF2YUVuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNl
dEphdmFFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMjItMDQtMjIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGdsb2JhbCBBdG9tU3RyaW5ncyB0byBh
IGNvbW1vbiBoZWFkZXIgdG8gcHJvbW90ZSByZXVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAxMmI2ZmQ4ZGE2M2E0ODRl
NDYyOTY1ZWY2ZGU4OWVlZmNlMThiMDFiLi5mMDBjMTU5NjZjMWMxNmZjOWZjZjIyOWNjYzM0ZjNm
YWNhNzFmMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMjAt
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTEwNzEsMjkgKzEwNzEsNiBAQCBJdHBEZWJ1Z01vZGVFbmFibGVkOgogICAg
IFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUphdmFFbmFibGVkOgotICB0eXBlOiBi
b29sCi0gIHdlYmNvcmVHZXR0ZXI6IGlzSmF2YUVuYWJsZWQKLSAgZGVmYXVsdFZhbHVlOgotICAg
IFdlYktpdExlZ2FjeToKLSAgICAgICJQTEFURk9STShJT1NfRkFNSUxZKSI6IGZhbHNlCi0gICAg
ICBkZWZhdWx0OiB0cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBX
ZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQotSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
OgotICB0eXBlOiBib29sCi0gIHdlYmNvcmVHZXR0ZXI6IGlzSmF2YUVuYWJsZWRGb3JMb2NhbEZp
bGVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiB0
cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAg
ICAgZGVmYXVsdDogdHJ1ZQotCiBKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOgogICB0eXBl
OiBib29sCiAgIGRlZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCAwZDQ3ZDdjMDZiMzEzOTkyYWNhMmQ2OGQ5ODEy
NjY0ODFjYTVjOTg4Li42YjlmNGRiNDdjMmFmNTQ4NGRmODBiODMwNDQ4OTFiMDRlMGY2OGZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNzgsOCArMzc4LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kSGFzaFNldChTdHJpbmdC
dWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBIYXMKIHN0YXRpYyBB
U0NJSUxpdGVyYWwgbmF2aWdhdG9yQVBJRW51bVRvU3RyaW5nKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6Ok5hdmlnYXRvckFQSSBuYXZpZ2F0b3JFbnVtKQogewogICAgIHN3aXRjaCAobmF2aWdhdG9y
RW51bSkgewotICAgIGNhc2UgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpK
YXZhRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuICJqYXZhRW5hYmxlZCJfczsKICAgICBjYXNlIFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSTo6TWltZVR5cGVzOgogICAgICAgICBy
ZXR1cm4gIm1pbWVUeXBlcyJfczsKICAgICBjYXNlIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5h
dmlnYXRvckFQSTo6Q29va2llRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IGE5YjU4Mjg3M2FlNDU1OTE3MzdlODA2ODkyNGNk
YWY0NWQ0MWNmODUuLjRhNjk1YTgwZjlmOTgxZTFmOWJmY2I0ZTZmNDc5NzE4NzQ5MTM3ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTA5LDcgKzEwOSw2IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsKICAgICAg
ICAgUGx1Z2lucyA9IDEgPDwgMiwKICAgICAgICAgTWltZVR5cGVzID0gMSA8PCAzLAogICAgICAg
ICBDb29raWVFbmFibGVkID0gMSA8PCA0LAotICAgICAgICBKYXZhRW5hYmxlZCA9IDEgPDwgNSwK
ICAgICB9OwogICAgIGVudW0gY2xhc3MgU2NyZWVuQVBJIDogdWludDY0X3QgewogICAgICAgICBI
ZWlnaHQgPSAxIDw8IDAsCkBAIC0xNDQsOCArMTQzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk+IHsK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpV
c2VyQWdlbnQsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmln
YXRvckFQSTo6UGx1Z2lucywKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
czo6TmF2aWdhdG9yQVBJOjpNaW1lVHlwZXMsCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSTo6Q29va2llRW5hYmxlZCwKLSAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpKYXZhRW5hYmxlZAorICAg
ICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6OkNvb2tp
ZUVuYWJsZWQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHAKaW5kZXggMzRlMGZhMGY0ODkxMDM1OTU3OTQzYTlhYWYyNDM3NDQ2MjAyM2NjYS4uNGUx
NWFhMzc0NGQ2MmI0YmNiMmI5MzU1YjE1ZjNhOWJmNzE1ZTNlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNi0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CkBAIC0xMjcsMTQgKzEyNyw2
IEBAIGJvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVn
aW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0CiBib29sIEZyYW1lTG9hZGVyOjpTdWJmcmFtZUxv
YWRlcjo6cGx1Z2luSXNMb2FkYWJsZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSkKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKLQotICAg
IGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc0phdmFBcHBsZXRNSU1FVHlwZShtaW1lVHlwZSkpIHsK
LSAgICAgICAgaWYgKCFtX2ZyYW1lLnNldHRpbmdzKCkuaXNKYXZhRW5hYmxlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCkuaXNMb2NhbCgpICYmICFtX2ZyYW1lLnNldHRpbmdzKCkuaXNKYXZhRW5h
YmxlZEZvckxvY2FsRmlsZXMoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0K
ICAgICBpZiAoZG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LT5pc1NhbmRib3hlZChT
YW5kYm94UGx1Z2lucykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvci5jcHAKaW5kZXggNTZiMTdmMmVjNWFkM2FkMDQzYTlkYmU4OTQwZjQ2MmVmMDc5Nzcw
ZS4uYWQ4M2NlOTlhMGQ4OWQ1M2ZmN2VmZDFjZDczYWExNGE4N2MxZWFhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqICBDb3B5cmlnaHQgKEMpIDIwMDAg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKGMpIDIwMDAgRGFu
aWVsIE1vbGtlbnRpbiAobW9sa2VudGluQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChjKSAyMDAw
IFN0ZWZhbiBTY2hpbWFuc2tpIChzY2hpbW1pQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxlIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMt
MjAyMiBBcHBsZSBJbmMuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMjAsMjMgKzMy
MCw2IEBAIGJvb2wgTmF2aWdhdG9yOjpjb29raWVFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
cGFnZS0+Y29va2llSmFyKCkuY29va2llc0VuYWJsZWQoKmRvY3VtZW50KTsKIH0KIAotYm9vbCBO
YXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QKLXsKLSAgICBhdXRvKiBmcmFtZSA9IHRoaXMt
PmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlz
dGljc0VuYWJsZWQoKSkKLSAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxv
Z05hdmlnYXRvckFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6TmF2aWdhdG9yQVBJOjpKYXZhRW5hYmxlZCk7Ci0KLSAgICBpZiAoIWZyYW1lLT5z
ZXR0aW5ncygpLmlzSmF2YUVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5pc0xvY2FsKCkgJiYgIWZyYW1l
LT5zZXR0aW5ncygpLmlzSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIAogYm9vbCBOYXZpZ2F0b3I6OnN0YW5kYWxvbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yLmgKaW5kZXggYmFjNDliMzQxMWJkYzhjNmNlZGI1ODJiMzliNjk0MzRhMGQ5NDQ2My4uZmI3
ZjY2M2FjM2MwNjQ1MDUxMTYxYTA0MGVmNGE0OGNjZTk4NjNmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBET01QbHVnaW5BcnJheSYgcGx1
Z2lucygpOwogICAgIERPTU1pbWVUeXBlQXJyYXkmIG1pbWVUeXBlcygpOwogICAgIGJvb2wgY29v
a2llRW5hYmxlZCgpIGNvbnN0OwotICAgIGJvb2wgamF2YUVuYWJsZWQoKSBjb25zdDsKKyAgICBi
b29sIGphdmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBwbGF0Zm9ybSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgdXNlckFnZW50Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5YTg5YmY0M2FkNWEzMTAy
MzU2YzA2NmI3MWZkN2IwZmU2Mjg5MWM5Li41ZmNhNWRiODg5Zjk5MzdkODFlMTkxN2JiZTRiYTU1
NzM4ZmE5NmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAt
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTIwNCwyNiArMjA0LDYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGx1
Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+cGx1Z2luc0VuYWJsZWQoKTsKIH0KIAotdm9pZCBXS1By
ZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBqYXZhRW5hYmxlZCkKLXsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRKYXZh
RW5hYmxlZChqYXZhRW5hYmxlZCk7Ci19Ci0KLWJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPmphdmFFbmFibGVkKCk7Ci19Ci0KLXZvaWQgV0tQcmVmZXJlbmNl
c1NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmLCBib29sIGphdmFFbmFibGVkRm9yTG9jYWxGaWxlcykKLXsKLSAgICB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5zZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoamF2YUVuYWJsZWRGb3JMb2Nh
bEZpbGVzKTsKLX0KLQotYm9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZp
bGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCi17Ci0gICAgcmV0dXJuIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPmphdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpOwotfQotCiB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseSkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRKYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkpOwpAQCAtMjIxMSwzICsyMTkxLDEyIEBAIGJvb2wgV0tQcmVmZXJlbmNl
c0dldFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRK
YXZhRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKQoreworfQorCitib29sIFdLUHJlZmVy
ZW5jZXNHZXRKYXZhRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXNSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNS
ZWYuaAppbmRleCA2ZWE3YmNiMWZhYWNjOTUyZTZhOTE1ZDc2NWFjNThlYmQyOWI5NDUwLi4wZTg0
NWVlYWNhN2Y4ZWRlYjZiZjY0Nzg5MDQzYTkyNzAyOWY2YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMyw5ICsxMDMs
OSBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuYwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldFBsdWdpbnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgcGx1
Z2luc0VuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBsdWdpbnNFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCi0vLyBEZWZhdWx0cyB0byB0cnVl
LgotV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgamF2YUVuYWJsZWQpOwotV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldEphdmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwor
Ly8gRGVwcmVjYXRlZDsgRG9lcyBub3RoaW5nLCBhbHdheXMgcmV0dXJucyBmYWxzZS4KK1dLX0VY
UE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRKYXZhRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzLCBib29sIGphdmFFbmFibGVkKSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQ
T1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEphdmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIC8vIERlZmF1bHRzIHRvIHRydWUuCiBX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggNjU5NzM4MmI4
OTU0Zjc3MTBiYjcwZGMyNDhlYjQxNzI2ZTdkMmEyZi4uNmI1MDAyMGQxZThiYzQyZWMyYTc3MmRj
NWQ5M2I4ZTE5N2NjNmRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjExLDEwICsyMTEsNiBAQCBX
S19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRl
eHQoV0tQcmVmZXJlbmNlc1JlZiBwcgogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1v
Y2tTY3JvbGxiYXJzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29s
IGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAotLy8gRGVmYXVsdHMgdG8g
dHJ1ZS4KLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRKYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBqYXZhRW5hYmxlZCk7Ci1X
S19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwotCiAvLyBEZWZhdWx0cyB0byBmYWxzZQogV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggOGZjMWU4NTQ3ZmQyOWIyODAxNjYwNzA1MTZm
M2UwZTY3ZGViYzVlOC4uNjM0ODY3OWVjODFlYzljNmI1NjY0ZjYwNmYyNTAwNzk0OGNjYTFmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC03Niw5ICs3Niw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JNKE1B
QykKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgW2NvZGVyIGVuY29k
ZUJvb2w6c2VsZi5qYXZhRW5hYmxlZCBmb3JLZXk6QCJqYXZhRW5hYmxlZCJdOwotQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi50YWJG
b2N1c2VzTGlua3MgZm9yS2V5OkAidGFiRm9jdXNlc0xpbmtzIl07CiAjZW5kaWYKICAgICBbY29k
ZXIgZW5jb2RlQm9vbDpzZWxmLnRleHRJbnRlcmFjdGlvbkVuYWJsZWQgZm9yS2V5OkAidGV4dElu
dGVyYWN0aW9uRW5hYmxlZCJdOwpAQCAtOTcsOSArOTQsNiBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICNp
ZiBQTEFURk9STShNQUMpCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAg
IHNlbGYuamF2YUVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFFbmFibGVk
Il07Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBzZWxmLnRhYkZvY3Vz
ZXNMaW5rcyA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAidGFiRm9jdXNlc0xpbmtzIl07CiAj
ZW5kaWYKICAgICBpZiAoW2NvZGVyIGNvbnRhaW5zVmFsdWVGb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rp
b25FbmFibGVkIl0pCkBAIC05NTQsMTYgKzk0OCw2IEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvciB0b0VkaXRhYmxlTGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi0tICh2b2lkKV9zZXRKYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXM6KEJPT0wpZW5hYmxlZAotewotICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YUVuYWJsZWRG
b3JMb2NhbEZpbGVzKGVuYWJsZWQpOwotfQotCi0tIChCT09MKV9qYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXMKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhRW5hYmxlZEZvckxvY2FsRmls
ZXMoKTsKLX0KLQogLSAodm9pZClfc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzooQk9P
TCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWRE
cmF3aW5nKGVuYWJsZWQpOwpAQCAtMTU4OCwxMiArMTU3MiwxMSBAQCBzdGF0aWMgV2ViQ29yZTo6
RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxpbmtCZWhhdmlvcihfV0tFZGl0YWJsZUxp
bmtCZWhhdgogCiAtIChCT09MKWphdmFFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNl
cy0+amF2YUVuYWJsZWQoKTsKKyAgICByZXR1cm4gTk87CiB9CiAKIC0gKHZvaWQpc2V0SmF2YUVu
YWJsZWQ6KEJPT0wpamF2YUVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFFbmFi
bGVkKGphdmFFbmFibGVkKTsKIH0KIAogLSAoQk9PTClwbHVnSW5zRW5hYmxlZApAQCAtMTY1NCw0
ICsxNjM3LDE1IEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0b0VkaXRh
YmxlTGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2CiAKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDKQorLSAodm9pZClfc2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzOihCT09MKWVu
YWJsZWQKK3sKK30KKworLSAoQk9PTClfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzCit7CisgICAg
cmV0dXJuIE5POworfQorI2VuZGlmCisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggYTA4Yzg0
YzVjZmEwYjcwMWQ2MWIzZjc2Mjk1NzM4ZDY3NmJmNzYxZi4uZmE1NDlhOTY3OWE3N2I4ZDM4NTBj
NzU5YjRkODEzZDNkNTc5ODk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODMsNyArMTgzLDYg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGht
KSB7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0V2ViR0xFbmFibGVkOikgQk9PTCBfd2ViR0xFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YUVu
YWJsZWRGb3JMb2NhbEZpbGVzOikgQk9PTCBfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzopIEJPT0wgX2NhbnZhc1VzZXNBY2Nl
bGVyYXRlZERyYXdpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZTopIE5TU3Ry
aW5nICpfZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
My40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZDopIEJPT0wgX2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDFlOGZlNWJlZDgwNzM2MjgzZWU4OTYx
ODJkZDNlODUxNDkxYTQ0MTIuLjQzMDI1OWRiZWJmNWVlZjI1YTQ2ZGU2Y2VmZTNiMWMxODI3Mzk1
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRT
ZXR0aW5ncy5jcHAKQEAgLTE5MTYsMTMgKzE5MTYsMTMgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nf
c2V0X2VuYWJsZV9wbHVnaW5zKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4gZW5h
YmwKICAqCiAgKiBHZXQgdGhlICNXZWJLaXRTZXR0aW5nczplbmFibGUtamF2YSBwcm9wZXJ0eS4K
ICAqCi0gKiBSZXR1cm5zOiAlVFJVRSBJZiBKYXZhIGlzIGVuYWJsZWQgb3IgJUZBTFNFIG90aGVy
d2lzZS4KKyAqIFJldHVybnM6ICVGQUxTRSBhbHdheXMuCiAgKi8KIGdib29sZWFuIHdlYmtpdF9z
ZXR0aW5nc19nZXRfZW5hYmxlX2phdmEoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzKQogewogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncyksIEZBTFNF
KTsKIAotICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMtPmphdmFFbmFibGVk
KCk7CisgICAgcmV0dXJuIEZBTFNFOwogfQogCiAvKioKQEAgLTE5MzAsMTkgKzE5MzAsMTEgQEAg
Z2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfamF2YShXZWJLaXRTZXR0aW5ncyog
c2V0dGluZ3MpCiAgKiBAc2V0dGluZ3M6IGEgI1dlYktpdFNldHRpbmdzCiAgKiBAZW5hYmxlZDog
VmFsdWUgdG8gYmUgc2V0CiAgKgotICogU2V0IHRoZSAjV2ViS2l0U2V0dGluZ3M6ZW5hYmxlLWph
dmEgcHJvcGVydHkuCisgKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczplbmFibGUtamF2YSBwcm9w
ZXJ0eS4gRGVwcmVjYXRlZCBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy4KICAqLwotdm9pZCB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywg
Z2Jvb2xlYW4gZW5hYmxlZCkKK3ZvaWQgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfamF2YShX
ZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MsIGdib29sZWFuKQogewogICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7Ci0KLSAgICBXZWJLaXRTZXR0aW5nc1By
aXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHBy
aXYtPnByZWZlcmVuY2VzLT5qYXZhRW5hYmxlZCgpOwotICAgIGlmIChjdXJyZW50VmFsdWUgPT0g
ZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEph
dmFFbmFibGVkKGVuYWJsZWQpOwotICAgIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYyhHX09CSkVD
VChzZXR0aW5ncyksIHNPYmpQcm9wZXJ0aWVzW1BST1BfRU5BQkxFX0pBVkFdKTsKIH0KIAogLyoq
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggOGI2N2Yw
ZDE3ZGM4YTY5OGVjNDQ3MmRlZjRhNWViMzMyMzBjOWI1NS4uMWRiY2FlOGM2YTY2ZjA4ZGIyNjJh
ZDNmMTdiOGQwMTNhMTE0ZjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC01MCw4ICs1MCw2IEBAIFJlZjxXZWJQcmVmZXJlbmNlcz4gV2ViUHJl
ZmVyZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZhdWx0cyhjb25zdCBTdHJpbmcmIGlkZW50CiAg
ICAgYXV0byBwcmVmZXJlbmNlcyA9IFdlYlByZWZlcmVuY2VzOjpjcmVhdGUoaWRlbnRpZmllciwg
a2V5UHJlZml4LCBnbG9iYWxEZWJ1Z0tleVByZWZpeCk7CiAgICAgLy8gRklYTUU6IFRoZSByZWdp
c3RlckRlZmF1bHQuLi5WYWx1ZUZvcktleSBtYWNoaW5lcnkgaXMgdW5uZWNlc3NhcmlseSBoZWF2
eXdlaWdodCBhbmQgY29tcGxpY2F0ZWQuCiAgICAgLy8gV2UgY2FuIGp1c3QgY29tcHV0ZSBkaWZm
ZXJlbnQgZGVmYXVsdHMgZm9yIG1vZGVybiBhbmQgbGVnYWN5IEFQSXMgaW4gV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oIG1hY3Jvcy4KLSAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEtleSgpLCB0cnVl
KTsKLSAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXNLZXkoKSwgdHJ1ZSk7CiAgICAg
cHJlZmVyZW5jZXMtPnJlZ2lzdGVyRGVmYXVsdEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6cGx1Z2luc0VuYWJsZWRLZXkoKSwgdHJ1ZSk7CiAgICAgcHJlZmVyZW5jZXMtPnJlZ2lz
dGVyRGVmYXVsdFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxv
Y2tpbmdQb2xpY3lLZXkoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OlN0b3JhZ2VC
bG9ja2luZ1BvbGljeTo6QWxsb3dBbGwpKTsKICAgICByZXR1cm4gcHJlZmVyZW5jZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQubW0KaW5kZXggMmMzNTA2MzkxNTczMTA1Y2U1ODI4ZTM2ZTdlYzUwMWNl
NWY0YWU1OS4uOThiYzM0OTMwNjcyNTMyNDUyNmRlZTAyOTNkZGI0NmViNTZmYWNmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA2LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgxLDcgKzQ4MSw2IEBAIHZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZFVSTCwgY29u
c3QgU3RyaW5nCiAgICAgW3ByZWZlcmVuY2VzIHNldEF1dG9zYXZlczpOT107CiAgICAgW3ByZWZl
cmVuY2VzIHNldERlZmF1bHRGaXhlZEZvbnRTaXplOjExXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
Rml4ZWRGb250RmFtaWx5OkAiTWVubG8iXTsKLSAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YUVuYWJs
ZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRKYXZhU2NyaXB0RW5hYmxlZDpZRVNdOwogICAg
IFtwcmVmZXJlbmNlcyBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk6WUVTXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0TWluaW11bUZvbnRTaXplOjBdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
MTYwZWQyMGMwNjYyMjA5NGE1MDE4MGEwNDMxZjA5ZDIzYTkxNzFjOC4uZDVjMzkyNmQ1MTU4NmJl
YmMzMmJmNjg0MzM3NjA4NTRhZWNhNDFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDks
NyArNDksNiBAQAogI2RlZmluZSBXZWJLaXRUZXh0QXJlYXNBcmVSZXNpemFibGVQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0VGV4dEFyZWFzQXJlUmVzaXphYmxlIgogI2VuZGlmCiAjZGVmaW5lIFdlYktp
dFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0U2hyaW5r
c1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCIKLSNkZWZpbmUgV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0SmF2YUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEphdmFTY3JpcHRFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEphdmFTY3JpcHRFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRKYXZhU2NyaXB0TWFya3VwRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRKYXZhU2NyaXB0
TWFya3VwRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0V2ViU2VjdXJpdHlFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdFdlYlNlY3VyaXR5RW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaAppbmRleCA2OGE2NDI3OGEzNDFhM2RmNGVj
YzBkNWI3M2QwZWNkZTUzZmE4YWI5Li4wMjk5MTlkZTJhMWJhYzZmZWMwMmM2NDEyOTc0ODIwMzhm
OGMzY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NCwgMjAwNSwgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDAzLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY4LDggKzE2OCw5IEBAIFdFQktJVF9DTEFT
U19ERVBSRUNBVEVEX01BQygxMF8zLCAxMF8xNCkKIAogLyohCiAgICAgQHByb3BlcnR5IGphdmFF
bmFibGVkCisgICAgQGRpc2N1c3Npb24gRGVwcmVjYXRlZCBmdW5jdGlvbiB0aGF0IGRvZXMgbm90
aGluZyBhbmQgYWx3YXlzIHJldHVybnMgZmFsc2UuCiAqLwotQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc0phdmFFbmFibGVkKSBCT09MIGphdmFFbmFibGVkOworQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1pc0phdmFFbmFibGVkKSBCT09MIGphdmFFbmFibGVkIFdFQktJVF9ERVBS
RUNBVEVEX01BQygxMF8zLCAxMF8xNSk7CiAKIC8qIQogICAgIEBwcm9wZXJ0eSBqYXZhU2NyaXB0
RW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggZTFkZjI3MWE2YzJkZDM0ZDkyY2Y2MzU0OGU4ZTBhYmY3MDBjYmQ0My4u
Yjc2ZDE4YTA3ZmJhNzM2MTFmNGFiNTg2YzQyZGNmN2ZkZTU5YmE5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDIyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFo
YW0uZGVubmlzQGdtYWlsLmNvbSkKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTg1OSwxNiArODU5LDYg
QEAgcHVibGljOgogfQogI2VuZGlmCiAKLS0gKEJPT0wpaXNKYXZhRW5hYmxlZAotewotICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OiBXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVuY2VL
ZXldOwotfQotCi0tICh2b2lkKXNldEphdmFFbmFibGVkOihCT09MKWZsYWcKLXsKLSAgICBbc2Vs
ZiBfc2V0Qm9vbFZhbHVlOiBmbGFnIGZvcktleTogV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKLX0KLQogLSAoQk9PTClpc0phdmFTY3JpcHRFbmFibGVkCiB7CiAgICAgcmV0dXJuIFtz
ZWxmIF9ib29sVmFsdWVGb3JLZXk6IFdlYktpdEphdmFTY3JpcHRFbmFibGVkUHJlZmVyZW5jZUtl
eV07CkBAIC0zNDc0LDQgKzM0NjQsMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4mIGNs
YXNzSUJDcmVhdG9ySUQoKQogewogfQogCistIChCT09MKWlzSmF2YUVuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gTk87Cit9CisKKy0gKHZvaWQpc2V0SmF2YUVuYWJsZWQ6KEJPT0wpZmxhZworeworfQor
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCA2YTQ1MDAxYmUxMjEwNGMwMTI1
NGEwYWNiYmVmY2M0ZDkwZTViMGY0Li5jYmEzYWJjYTMzNjc0ZGY0MzIzYjhkODM2ZWJmOTJjMGEz
NTc5MGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTAsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIyIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEz
MSw4ICsxMzEsNiBAQCBJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogV2ViSW5zcGVjdG9yQ2xp
ZW50OjpvcGVuTG9jYWxGcm9udGVuZChJbnNwZWN0b3JDb250cgogICAgICAgICByZXR1cm4gMDsK
ICAgICBpZiAoRkFJTEVEKHByZWZlcmVuY2VzLT5zZXRQbHVnSW5zRW5hYmxlZChGQUxTRSkpKQog
ICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoRkFJTEVEKHByZWZlcmVuY2VzLT5zZXRKYXZhRW5h
YmxlZChGQUxTRSkpKQotICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoRkFJTEVEKHByZWZlcmVu
Y2VzLT5zZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoRkFMU0UpKSkKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgaWYgKEZBSUxFRChwcmVmZXJlbmNlcy0+c2V0VGFic1RvTGlua3MoRkFMU0UpKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
aW5kZXggNDE4NzNkYzAzYjBhMTkxMDc4NTRkZjJkNjE2ODY2NmNkNjMyYzA5Mi4uNzE2N2U0NmVk
ZWZmZWY1YmRmZmQ5MzQ4YjNlOTM3NjVmMzJkNWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTQ4LDcgKzQ4LDYgQEAK
ICNkZWZpbmUgV2ViS2l0VXNlclN0eWxlU2hlZXRMb2NhdGlvblByZWZlcmVuY2VLZXkgIldlYktp
dFVzZXJTdHlsZVNoZWV0TG9jYXRpb25QcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRTaG91
bGRQcmludEJhY2tncm91bmRzUHJlZmVyZW5jZUtleSAiV2ViS2l0U2hvdWxkUHJpbnRCYWNrZ3Jv
dW5kc1ByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZVBy
ZWZlcmVuY2VLZXkgIldlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZSIKLSNkZWZpbmUgV2ViS2l0
SmF2YUVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRKYXZhRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0SmF2YVNjcmlwdEVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRKYXZhU2NyaXB0RW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnc1ByZWZlcmVuY2VLZXkgIldl
YktpdEphdmFTY3JpcHRSdW50aW1lRmxhZ3MiCiAjZGVmaW5lIFdlYktpdFdlYlNlY3VyaXR5RW5h
YmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYlNlY3VyaXR5RW5hYmxlZCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAxMjg2MjY3NTQxOTZkYzM5MDdh
MDUzNGFhOTBhZjlhZDIwNDE2YTNkLi5hNTM5NWM5MDE5Mzg5Y2VmYWI1ODg3MmU1YTY0OWFmYzE4
MDI3M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBA
IC0yNDgsNyArMjQ4LDYgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRT
ZXR0aW5ncygpCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENGU1RS
KFdlYktpdFVzZXJTdHlsZVNoZWV0TG9jYXRpb25QcmVmZXJlbmNlS2V5KSwgQ0ZTVFIoIiIpKTsK
ICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2ViS2l0U2hv
dWxkUHJpbnRCYWNrZ3JvdW5kc1ByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogICAg
IENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLmdldCgpLCBDRlNUUihXZWJLaXRUZXh0QXJl
YXNBcmVSZXNpemFibGVQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKLSAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2ViS2l0SmF2YUVuYWJsZWRQ
cmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhblRydWUpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGRlZmF1bHRzLmdldCgpLCBDRlNUUihXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZFByZWZlcmVuY2VL
ZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMu
Z2V0KCksIENGU1RSKFdlYktpdEphdmFTY3JpcHRSdW50aW1lRmxhZ3NQcmVmZXJlbmNlS2V5KSwg
Q0ZTVFIoIjAiKSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENG
U1RSKFdlYktpdFdlYlNlY3VyaXR5RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuVHJ1
ZSk7CkBAIC05MjgsMTMgKzkyNywxMiBAQCBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjppc0phdmFF
bmFibGVkKF9PdXRfIEJPT0wqIGVuYWJsZWQpCiB7CiAgICAgaWYgKCFlbmFibGVkKQogICAgICAg
ICByZXR1cm4gRV9QT0lOVEVSOwotICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KFdlYktp
dEphdmFFbmFibGVkUHJlZmVyZW5jZUtleSk7CisgICAgKmVuYWJsZWQgPSBGQUxTRTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0SmF2YUVuYWJsZWQo
Qk9PTCBlbmFibGVkKQorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0SmF2YUVuYWJsZWQoQk9P
TCkKIHsKLSAgICBzZXRCb29sVmFsdWUoV2ViS2l0SmF2YUVuYWJsZWRQcmVmZXJlbmNlS2V5LCBl
bmFibGVkKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAppbmRleCA5Zjk4ZGM1MWM3N2Y3NWVkZDFkZTZjM2NmNTY3M2VjODM3YjFmOWExLi5hNTc0
YTRjOWNmMzhlMGE1ODhiZWI4MWFhOTg4ZjY2NTZlOWViYTJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxOSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMjIgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMCwgMjAxMSBBcHBjZWxlcmF0b3IsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBCcmVudCBGdWxnaGFtLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKQEAgLTQ5ODYsMTEgKzQ5ODYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgc2V0
dGluZ3Muc2V0UGljdG9ncmFwaEZvbnRGYW1pbHkodG9BdG9tU3RyaW5nKHN0cikpOwogICAgIHN0
ci5jbGVhcigpOwogCi0gICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNKYXZhRW5hYmxlZCgmZW5hYmxl
ZCk7Ci0gICAgaWYgKEZBSUxFRChocikpCi0gICAgICAgIHJldHVybiBocjsKLSAgICBzZXR0aW5n
cy5zZXRKYXZhRW5hYmxlZCghIWVuYWJsZWQpOwotCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNK
YXZhU2NyaXB0RW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAg
IHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAxZjMyMjViYWM2MTAzZjQ5OTIxYmEwOWUzNWY4MmQ0YzM2MDdlY2FiLi43MGI2NjZi
MTAyOWNjZmNkZTczNWEzMDMwYjY2NjY4MDBmNTQzZjNlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjItMDUtMDMg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRl
cHJlY2F0ZWQgJ0phdmFFbmFibGVkJyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBw
b3J0IGZvciBKYXZhIFBsdWctSW5zIGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0
aGUgcHJlZmVyZW5jZS4gVG8gcmVkdWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVp
bGQgdGltZXMgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5n
IG5vbi1mdW5jdGlvbmFsIHN0dWJzIHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAg
IHRoYXQgZXhwZWN0IHRvIGNhbGwgdGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlv
bnM6OmRlZmF1bHRzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weWluZy5tbToKKyAgICAgICAgKFRF
U1QpOgorCiAyMDIyLTA1LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI5MzcwMyk6IDM1OCBKU0MgdGVzdHMgZmFpbGluZwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDhhMGZhY2Y2YzNlZTQ5NmU1YWU0NTRiZGJj
MTIyNTRmN2JkNTBhYTcuLmRjM2VmN2M3NmQxYmFlZjU5YTA1ODlkMjcxY2NkZWNmY2MxNjYzOGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTc5LDcgKzc5LDYgQEAgY29u
c3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogICAgICAgICAgICAgeyAi
R2FtZXBhZHNFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiSGlkZGVuUGFnZUNTU0Fu
aW1hdGlvblN1c3BlbnNpb25FbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIklubGlu
ZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIiwgZmFsc2UgfSwKLSAg
ICAgICAgICAgIHsgIkphdmFFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJKYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAi
TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIiwgZmFsc2UgfSwKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDU0NGJmNDc0YmJiNmRmYmFmNDM3
ZGI2MGUzODRhN2EzYTY5MzkyNDguLjJlMzRlYTUwNGFiZTJjODg4OTllNGFjNjZkMjc4ZWE2MjI5
NTQxNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApA
QCAtODc3LDcgKzg3Nyw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNp
c3RlbnRWYWx1ZXMoSVdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKICAgICBwcmVmZXJlbmNl
cy0+c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTMpOwogICAgIHByZWZlcmVuY2VzLT5zZXRNaW5p
bXVtRm9udFNpemUoMCk7CiAgICAgcHJlZmVyZW5jZXMtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdO
YW1lKF9ic3RyX3QoTCJJU08tODg1OS0xIikpOwotICAgIHByZWZlcmVuY2VzLT5zZXRKYXZhRW5h
YmxlZChGQUxTRSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKFRSVUUp
OwogICAgIHByZWZlcmVuY2VzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihXZWJLaXRFZGl0YWJs
ZUxpbmtPbmx5TGl2ZVdpdGhTaGlmdEtleSk7CiAgICAgcHJlZmVyZW5jZXMtPnNldERPTVBhc3Rl
QWxsb3dlZChUUlVFKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYWFhNDljZTlkZjYxM2E1NTNkY2FmZWU0ZmQxMmJmZThk
YmJmY2QzNC4uY2EwODgzMTMwYWJmODU2MTI0MDVhOTFiYWJmMTI3ZjFiYTYwZDUwYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQcmVmZXJlbmNlcy5jcHAK
QEAgLTgxLDcgKzgxLDYgQEAgVEVTVChXZWJLaXQsIFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKICAg
ICBFWFBFQ1RfVFJVRShXS1ByZWZlcmVuY2VzR2V0TG9jYWxTdG9yYWdlRW5hYmxlZChwcmVmZXJl
bmNlKSk7CiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfVFJVRShXS1ByZWZlcmVuY2VzR2V0UGx1
Z2luc0VuYWJsZWQocHJlZmVyZW5jZSkpOwotICAgIEVYUEVDVF9UUlVFKFdLUHJlZmVyZW5jZXNH
ZXRKYXZhRW5hYmxlZChwcmVmZXJlbmNlKSk7CiAgICAgRVhQRUNUX1RSVUUoV0tQcmVmZXJlbmNl
c0dldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkocHJlZmVyZW5jZSkpOwog
ICAgIEVYUEVDVF9UUlVFKFdLUHJlZmVyZW5jZXNHZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQo
cHJlZmVyZW5jZSkpOwogICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3RlZFN0YW5kYXJkRm9udEZh
bWlseSwgYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ29weVN0YW5kYXJkRm9udEZhbWlseShwcmVmZXJl
bmNlKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Db2RpbmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGlu
Zy5tbQppbmRleCBhNjZhZjlmNzUwMDA5NjU2ZjgxYWJmZWE5MWE5Y2Q4NTViNzAwMzY2Li40ZDIz
NWQ0ZTU3NTE2YThjYWQ4YWRlOGQ4NmU3MWNhZGUzNmFhODIxIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQpAQCAtNTMsNyArNTMsNiBAQCBU
RVNUKENvZGluZywgV0tQcmVmZXJlbmNlcykKICAgICBbYSBzZXRKYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5OllFU107CiAjZWxzZQogICAgIFthIHNldEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHk6Tk9dOwotICAgIFthIHNldEphdmFFbmFibGVkOllFU107
CiAgICAgW2Egc2V0UGx1Z0luc0VuYWJsZWQ6WUVTXTsKICAgICBbYSBzZXRUYWJGb2N1c2VzTGlu
a3M6WUVTXTsKICNlbmRpZgpAQCAtNjUsNyArNjQsNiBAQCBURVNUKENvZGluZywgV0tQcmVmZXJl
bmNlcykKICAgICBFWFBFQ1RfRVEoW2EgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseV0sIFtiIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHldKTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICBFWFBFQ1RfRVEoW2EgamF2YUVuYWJsZWRdLCBbYiBqYXZhRW5h
YmxlZF0pOwogICAgIEVYUEVDVF9FUShbYSBwbHVnSW5zRW5hYmxlZF0sIFtiIHBsdWdJbnNFbmFi
bGVkXSk7CiAgICAgRVhQRUNUX0VRKFthIHRhYkZvY3VzZXNMaW5rc10sIFtiIHRhYkZvY3VzZXNM
aW5rc10pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NvcHlpbmcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NvcHlpbmcubW0KaW5kZXggYjcwNGUzMzUzODFiYWFkMTI4NzY4ZmE2OGJiOTdiMjg2NmEz
NTNkYi4uN2E2N2I4NTAwMDA4ODFmYjFhMTk1ZTBiZTM5MGJjYzkxZDMwYzdkMSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5aW5nLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29weWluZy5tbQpAQCAtMzcs
NyArMzcsNiBAQCBURVNUKENvcHlpbmcsIFdLUHJlZmVyZW5jZXMpCiAgICAgW2Egc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTpZRVNdOwogI2Vsc2UKICAgICBbYSBzZXRK
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5Ok5PXTsKLSAgICBbYSBzZXRKYXZh
RW5hYmxlZDpZRVNdOwogICAgIFthIHNldFBsdWdJbnNFbmFibGVkOllFU107CiAgICAgW2Egc2V0
VGFiRm9jdXNlc0xpbmtzOllFU107CiAjZW5kaWYKQEAgLTYwLDcgKzU5LDYgQEAgVEVTVChDb3B5
aW5nLCBXS1ByZWZlcmVuY2VzKQogICAgIFtiIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHk6Tk9dOwogI2Vsc2UKICAgICBbYiBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRv
d3NBdXRvbWF0aWNhbGx5OllFU107Ci0gICAgW2Igc2V0SmF2YUVuYWJsZWQ6Tk9dOwogICAgIFti
IHNldFBsdWdJbnNFbmFibGVkOk5PXTsKICAgICBbYiBzZXRUYWJGb2N1c2VzTGlua3M6Tk9dOwog
I2VuZGlmCkBAIC03MCw3ICs2OCw2IEBAIFRFU1QoQ29weWluZywgV0tQcmVmZXJlbmNlcykKICAg
ICBFWFBFQ1RfTkUoW2EgamF2YVNjcmlwdEVuYWJsZWRdLCBbYiBqYXZhU2NyaXB0RW5hYmxlZF0p
OwogICAgIEVYUEVDVF9ORShbYSBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
XSwgW2IgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseV0pOwogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBFWFBFQ1RfTkUoW2EgamF2YUVuYWJsZWRdLCBbYiBqYXZhRW5hYmxlZF0p
OwogICAgIEVYUEVDVF9FUShbYSBwbHVnSW5zRW5hYmxlZF0sIFtiIHBsdWdJbnNFbmFibGVkXSk7
CiAgICAgRVhQRUNUX05FKFthIHRhYkZvY3VzZXNMaW5rc10sIFtiIHRhYkZvY3VzZXNMaW5rc10p
OwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458803</attachid>
            <date>2022-05-04 09:05:44 -0700</date>
            <delta_ts>2022-05-04 13:23:19 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-240044-20220504090543.patch</filename>
            <type>text/plain</type>
            <size>40929</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4YmI4ZjUzNDMzNDhlOGFjNmExNzBm
OGRhOGQxODhmODRhMWU2NGMuLjViZTFlNmZiYzc1MDRlMDJkM2I2Y2ViNmUxMTE0MDdhNGZjOTg5
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVk
JyBmZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWctSW5z
IGluIG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8gcmVk
dWNlIGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxkIHJl
bW92ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0dWJz
IHRvIGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNhbGwg
dGhlaXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wNS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyOTM3MDMpOiAzNTggSlNDIHRlc3Rz
IGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZTgzYmIzNWY4NTk5MmRmMDYyZjUzNjVhNzQ3Njc0YzU4
ZmEwMmRjLi44ZTI1MDZiMTRhODczMWEyODgzNWY3ZTdkMDA3NDNhNzJkMzQ2Y2EzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjItMDUtMDMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgJ0phdmFFbmFibGVkJyBm
ZWF0dXJlIGZsYWcgYW5kIHJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgV2UgcmVtb3ZlZCBzdXBwb3J0IGZvciBKYXZhIFBsdWctSW5zIGlu
IG1hY09TIDEwLjE1LCBidXQgbmV2ZXIgcmVtb3ZlZCB0aGUgcHJlZmVyZW5jZS4gVG8gcmVkdWNl
IGNvZGUgY29tcGxleGl0eQorICAgICAgICBhbmQgYnVpbGQgdGltZXMgd2Ugc2hvdWxkIHJlbW92
ZSB0aGlzIHVudXNlZCBwcmVmZXJlbmNlLCBsZWF2aW5nIG5vbi1mdW5jdGlvbmFsIHN0dWJzIHRv
IGF2b2lkIGJyZWFraW5nIGJpbmFyaWVzCisgICAgICAgIHRoYXQgZXhwZWN0IHRvIGNhbGwgdGhl
aXIgYWNjZXNzb3IgbWV0aG9kcy4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRvckFQSUVudW1Ub1N0cmluZyk6
CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaDoKKyAgICAgICAgKiBs
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OlN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKToKKyAgICAgICAgKiBwYWdlL05hdmln
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3I6OmphdmFFbmFibGVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5oOgorCiAyMDIyLTA1LTAzICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3JhZ2VNYXA6OnJl
bW92ZUl0ZW0gbWF5IGZhaWwgdG8gcmVtb3ZlIGl0ZW0gZnJvbSBtYXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmIz
MTI3MGQ0ZmIzNWI5N2FlNjZhMTJkMDQzYzcxMjE1N2M2MWYxNy4uNzI5MzA2YzBkY2E3ODU5NDBm
Yzg2Yzg3YjQ3Y2U3MjExMDM3NDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAyMi0w
NS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1v
dmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJsZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRlZCBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwNDQK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBXZSByZW1vdmVk
IHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1JbnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBuZXZlciByZW1v
dmVkIHRoZSBwcmVmZXJlbmNlLiBUbyByZWR1Y2UgY29kZSBjb21wbGV4aXR5CisgICAgICAgIGFu
ZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgdW51c2VkIHByZWZlcmVuY2UsIGxl
YXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmluYXJpZXMKKyAg
ICAgICAgdGhhdCBleHBlY3QgdG8gY2FsbCB0aGVpciBhY2Nlc3NvciBtZXRob2RzLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc1NldEphdmFFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5h
YmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpbml0V2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGphdmFFbmFibGVkXSk6CisgICAg
ICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0SmF2YUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJl
ZmVyZW5jZXMgX3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczpdKToKKyAgICAgICAgKC1bV0tQ
cmVmZXJlbmNlcyBfamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdp
dGhMZWdhY3lEZWZhdWx0cyk6CisKIDIwMjItMDUtMDMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dQXSBPbmx5IGJsb2NrIElPS2l0IGFjY2Vz
cyBpZiBhbGwgR1BVUCBmZWF0dXJlcyBhcmUgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IDBmNzExOWU1YzYwMTE0ZWUyZDg3MjMwNjVlMmM3ZmVkYTM4NDRlMzQuLmY5MmY5
NjU1ZDRiMmQ1Y2ViODZhZTY3NTZhYjM0ZGU2YzIyMjk0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMi0wNS0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCAnSmF2YUVuYWJs
ZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwNDQKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBXZSByZW1vdmVkIHN1cHBvcnQgZm9yIEphdmEgUGx1Zy1J
bnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBuZXZlciByZW1vdmVkIHRoZSBwcmVmZXJlbmNlLiBUbyBy
ZWR1Y2UgY29kZSBjb21wbGV4aXR5CisgICAgICAgIGFuZCBidWlsZCB0aW1lcyB3ZSBzaG91bGQg
cmVtb3ZlIHRoaXMgdW51c2VkIHByZWZlcmVuY2UsIGxlYXZpbmcgbm9uLWZ1bmN0aW9uYWwgc3R1
YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmluYXJpZXMKKyAgICAgICAgdGhhdCBleHBlY3QgdG8gY2Fs
bCB0aGVpciBhY2Nlc3NvciBtZXRob2RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9s
bGVyIGluaXRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBpc0phdmFFbmFi
bGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEphdmFFbmFibGVkOl0pOgorCiAy
MDIyLTA0LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSB0aGUgQVZGb3VuZGF0aW9uTlNVUkxTZXNzaW9uRW5hYmxlZCBwcmVmZXJlbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2VjZjdlNzdmOGJhNWRmNTBkN2QyMjc2M2Ri
Y2RmMGVhMzkxZDUwOS4uMTQ4ZDAzNjM5NTc0NjgwNDVlNmUwMTI0M2MxYzVhZDgzNGY5N2MzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA1LTAz
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBk
ZXByZWNhdGVkICdKYXZhRW5hYmxlZCcgZmVhdHVyZSBmbGFnIGFuZCByZWxhdGVkIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDA0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFdlIHJlbW92ZWQgc3Vw
cG9ydCBmb3IgSmF2YSBQbHVnLUlucyBpbiBtYWNPUyAxMC4xNSwgYnV0IG5ldmVyIHJlbW92ZWQg
dGhlIHByZWZlcmVuY2UuIFRvIHJlZHVjZSBjb2RlIGNvbXBsZXhpdHkKKyAgICAgICAgYW5kIGJ1
aWxkIHRpbWVzIHdlIHNob3VsZCByZW1vdmUgdGhpcyB1bnVzZWQgcHJlZmVyZW5jZSwgbGVhdmlu
ZyBub24tZnVuY3Rpb25hbCBzdHVicyB0byBhdm9pZCBicmVha2luZyBiaW5hcmllcworICAgICAg
ICB0aGF0IGV4cGVjdCB0byBjYWxsIHRoZWlyIGFjY2Vzc29yIG1ldGhvZHMuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViSW5z
cGVjdG9yQ2xpZW50OjpvcGVuTG9jYWxGcm9udGVuZCk6CisgICAgICAgICogV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAgICAoV2Vi
UHJlZmVyZW5jZXM6OmlzSmF2YUVuYWJsZWQpOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNl
dEphdmFFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMjItMDQtMjIgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGdsb2JhbCBBdG9tU3RyaW5ncyB0byBh
IGNvbW1vbiBoZWFkZXIgdG8gcHJvbW90ZSByZXVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAxMmI2ZmQ4ZGE2M2E0ODRl
NDYyOTY1ZWY2ZGU4OWVlZmNlMThiMDFiLi5mMDBjMTU5NjZjMWMxNmZjOWZjZjIyOWNjYzM0ZjNm
YWNhNzFmMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMjAt
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTEwNzEsMjkgKzEwNzEsNiBAQCBJdHBEZWJ1Z01vZGVFbmFibGVkOgogICAg
IFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUphdmFFbmFibGVkOgotICB0eXBlOiBi
b29sCi0gIHdlYmNvcmVHZXR0ZXI6IGlzSmF2YUVuYWJsZWQKLSAgZGVmYXVsdFZhbHVlOgotICAg
IFdlYktpdExlZ2FjeToKLSAgICAgICJQTEFURk9STShJT1NfRkFNSUxZKSI6IGZhbHNlCi0gICAg
ICBkZWZhdWx0OiB0cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBX
ZWJDb3JlOgotICAgICAgZGVmYXVsdDogZmFsc2UKLQotSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
OgotICB0eXBlOiBib29sCi0gIHdlYmNvcmVHZXR0ZXI6IGlzSmF2YUVuYWJsZWRGb3JMb2NhbEZp
bGVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAgICBkZWZhdWx0OiB0
cnVlCi0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3JlOgotICAg
ICAgZGVmYXVsdDogdHJ1ZQotCiBKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOgogICB0eXBl
OiBib29sCiAgIGRlZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCAwZDQ3ZDdjMDZiMzEzOTkyYWNhMmQ2OGQ5ODEy
NjY0ODFjYTVjOTg4Li42YjlmNGRiNDdjMmFmNTQ4NGRmODBiODMwNDQ4OTFiMDRlMGY2OGZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNzgsOCArMzc4LDYgQEAgc3RhdGljIHZvaWQgYXBwZW5kSGFzaFNldChTdHJpbmdC
dWlsZGVyJiBidWlsZGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBIYXMKIHN0YXRpYyBB
U0NJSUxpdGVyYWwgbmF2aWdhdG9yQVBJRW51bVRvU3RyaW5nKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6Ok5hdmlnYXRvckFQSSBuYXZpZ2F0b3JFbnVtKQogewogICAgIHN3aXRjaCAobmF2aWdhdG9y
RW51bSkgewotICAgIGNhc2UgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpK
YXZhRW5hYmxlZDoKLSAgICAgICAgcmV0dXJuICJqYXZhRW5hYmxlZCJfczsKICAgICBjYXNlIFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSTo6TWltZVR5cGVzOgogICAgICAgICBy
ZXR1cm4gIm1pbWVUeXBlcyJfczsKICAgICBjYXNlIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5h
dmlnYXRvckFQSTo6Q29va2llRW5hYmxlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5oCmluZGV4IGE5YjU4Mjg3M2FlNDU1OTE3MzdlODA2ODkyNGNk
YWY0NWQ0MWNmODUuLjRhNjk1YTgwZjlmOTgxZTFmOWJmY2I0ZTZmNDc5NzE4NzQ5MTM3ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTA5LDcgKzEwOSw2IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsKICAgICAg
ICAgUGx1Z2lucyA9IDEgPDwgMiwKICAgICAgICAgTWltZVR5cGVzID0gMSA8PCAzLAogICAgICAg
ICBDb29raWVFbmFibGVkID0gMSA8PCA0LAotICAgICAgICBKYXZhRW5hYmxlZCA9IDEgPDwgNSwK
ICAgICB9OwogICAgIGVudW0gY2xhc3MgU2NyZWVuQVBJIDogdWludDY0X3QgewogICAgICAgICBI
ZWlnaHQgPSAxIDw8IDAsCkBAIC0xNDQsOCArMTQzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk+IHsK
ICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpV
c2VyQWdlbnQsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6Ok5hdmln
YXRvckFQSTo6UGx1Z2lucywKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
czo6TmF2aWdhdG9yQVBJOjpNaW1lVHlwZXMsCi0gICAgICAgIFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6Ok5hdmlnYXRvckFQSTo6Q29va2llRW5hYmxlZCwKLSAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6TmF2aWdhdG9yQVBJOjpKYXZhRW5hYmxlZAorICAg
ICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpOYXZpZ2F0b3JBUEk6OkNvb2tp
ZUVuYWJsZWQKICAgICA+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHAKaW5kZXggMzRlMGZhMGY0ODkxMDM1OTU3OTQzYTlhYWYyNDM3NDQ2MjAyM2NjYS4uNWE1
NGJmOWIxOGVjOTRjZGVkMDM1MjYwOWU0ZWVhNGJmZTU1YjAzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNi0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CkBAIC0xMjQsMTcgKzEyNCw5
IEBAIGJvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVn
aW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0CiAgICAgcmV0dXJuIHNob3VsZFVzZVBsdWdpbihj
b21wbGV0ZWRVUkwsIG1pbWVUeXBlLCBmYWxzZSwgdXNlRmFsbGJhY2spOwogfQogCi1ib29sIEZy
YW1lTG9hZGVyOjpTdWJmcmFtZUxvYWRlcjo6cGx1Z2luSXNMb2FkYWJsZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK2Jvb2wgRnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9h
ZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKGNvbnN0IFVSTCYgdXJsKQogewogICAgIGF1dG8qIGRvY3Vt
ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwotCi0gICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6Omlz
SmF2YUFwcGxldE1JTUVUeXBlKG1pbWVUeXBlKSkgewotICAgICAgICBpZiAoIW1fZnJhbWUuc2V0
dGluZ3MoKS5pc0phdmFFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5pc0xvY2FsKCkg
JiYgIW1fZnJhbWUuc2V0dGluZ3MoKS5pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIGlmIChkb2N1bWVudCkgewogICAg
ICAgICBpZiAoZG9jdW1lbnQtPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTE4OSw3ICsxODEsNyBAQCBib29sIEZyYW1lTG9hZGVyOjpT
dWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25l
ckVsZQogICAgIGlmICghKG1fZnJhbWUuYXJlUGx1Z2luc0VuYWJsZWQoKSB8fCBNSU1FVHlwZVJl
Z2lzdHJ5Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUobWltZVR5cGUpKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFwbHVnaW5Jc0xvYWRhYmxlKHVybCwgZXhwbGljaXRN
SU1FVHlwZSkpCisgICAgaWYgKCFwbHVnaW5Jc0xvYWRhYmxlKHVybCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEFTU0VSVChvd25lckVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcp
IHx8IG93bmVyRWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJmcmFtZUxvYWRlci5oCmluZGV4IDg2NDUyNDQ5MDI5NDhiMzkyNmQ3MjA4YTYyYzM5MWQy
MWEzMjU2MjQuLjUzMjAwM2Q1ZDdiMDgyMGU2ZjZlMjQxOWNkYmNhZWVhOTgwMjYzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmLCBjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8QXRvbVN0cmluZz4mIHBh
cmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxBdG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNl
RmFsbGJhY2spOwogCiAgICAgYm9vbCBzaG91bGRVc2VQbHVnaW4oY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOwot
ICAgIGJvb2wgcGx1Z2luSXNMb2FkYWJsZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKTsKKyAgICBib29sIHBsdWdpbklzTG9hZGFibGUoY29uc3QgVVJMJik7CiAKICAgICBVUkwg
Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAppbmRleCA1NmIxN2YyZWM1YWQzYWQwNDNhOWRiZTg5NDBmNDYyZWYwNzk3NzBlLi5hZDgz
Y2U5OWEwZDg5ZDUzZmY3ZWZkMWNkNzNhYTE0YTg3YzFlYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogIENvcHlyaWdodCAoQykgMjAwMCBIYXJyaSBQ
b3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENvcHlyaWdodCAoYykgMjAwMCBEYW5pZWwgTW9s
a2VudGluIChtb2xrZW50aW5Aa2RlLm9yZykKICAqICBDb3B5cmlnaHQgKGMpIDIwMDAgU3RlZmFu
IFNjaGltYW5za2kgKHNjaGltbWlAa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDQsIDIwMDUsIDIwMDYgQXBwbGUgSW5jLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDIyIEFw
cGxlIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMyMCwyMyArMzIwLDYgQEAg
Ym9vbCBOYXZpZ2F0b3I6OmNvb2tpZUVuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBwYWdlLT5j
b29raWVKYXIoKS5jb29raWVzRW5hYmxlZCgqZG9jdW1lbnQpOwogfQogCi1ib29sIE5hdmlnYXRv
cjo6amF2YUVuYWJsZWQoKSBjb25zdAotewotICAgIGF1dG8qIGZyYW1lID0gdGhpcy0+ZnJhbWUo
KTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5h
YmxlZCgpKQotICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nTmF2aWdh
dG9yQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OjpOYXZpZ2F0b3JBUEk6OkphdmFFbmFibGVkKTsKLQotICAgIGlmICghZnJhbWUtPnNldHRpbmdz
KCkuaXNKYXZhRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLmlzTG9jYWwoKSAmJiAhZnJhbWUtPnNldHRp
bmdzKCkuaXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiBi
b29sIE5hdmlnYXRvcjo6c3RhbmRhbG9uZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaApp
bmRleCBiYWM0OWIzNDExYmRjOGM2Y2VkYjU4MmIzOWI2OTQzNGEwZDk0NDYzLi5mYjdmNjYzYWMz
YzA2NDUwNTExNjFhMDQwZWY0YTQ4Y2NlOTg2M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIERPTVBsdWdpbkFycmF5JiBwbHVnaW5zKCk7
CiAgICAgRE9NTWltZVR5cGVBcnJheSYgbWltZVR5cGVzKCk7CiAgICAgYm9vbCBjb29raWVFbmFi
bGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBqYXZhRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgamF2
YUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHBsYXRmb3JtKCkgY29uc3QgZmluYWw7
CiAgICAgdm9pZCB1c2VyQWdlbnRDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDlhODliZjQzYWQ1YTMxMDIzNTZjMDY2
YjcxZmQ3YjBmZTYyODkxYzkuLjVmY2E1ZGI4ODlmOTkzN2Q4MWUxOTE3YmJlNGJhNTU3MzhmYTk2
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjA0LDI2ICsyMDQsNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRQbHVnaW5zRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5wbHVnaW5zRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5j
ZXNTZXRKYXZhRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGph
dmFFbmFibGVkKQotewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEphdmFFbmFibGVk
KGphdmFFbmFibGVkKTsKLX0KLQotYm9vbCBXS1ByZWZlcmVuY2VzR2V0SmF2YUVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+amF2YUVuYWJsZWQoKTsKLX0KLQotdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2
YUVuYWJsZWRGb3JMb2NhbEZpbGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKQotewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlcyhqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMp
OwotfQotCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+amF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzKCk7Ci19Ci0KIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSk7CkBAIC0yMjExLDMgKzIxOTEsMTIgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2Vi
QXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikK
IHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpCit7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dEphdmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1Jl
Zi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCmlu
ZGV4IDZlYTdiY2IxZmFhY2M5NTJlNmE5MTVkNzY1YWM1OGViZDI5Yjk0NTAuLjBlODQ1ZWVhY2E3
ZjhlZGViNmJmNjQ3ODkwNDNhOTI3MDI5ZjZiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDkgKzEwMyw5IEBAIFdL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0UGx1
Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBwbHVnaW5zRW5h
YmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGx1Z2luc0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CiAKLS8vIERlZmF1bHRzIHRvIHRydWUuCi1XS19F
WFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SmF2YUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlcywgYm9vbCBqYXZhRW5hYmxlZCk7Ci1XS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0SmF2YUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisvLyBEZXBy
ZWNhdGVkOyBEb2VzIG5vdGhpbmcsIGFsd2F5cyByZXR1cm5zIGZhbHNlLgorV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMsIGJvb2wgamF2YUVuYWJsZWQpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0SmF2YUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cykgV0tfQ19BUElfREVQUkVDQVRFRDsKIAogLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9S
VCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCA2NTk3MzgyYjg5NTRmNzcx
MGJiNzBkYzI0OGViNDE3MjZlN2QyYTJmLi42YjUwMDIwZDFlOGJjNDJlYzJhNzcyZGM1ZDkzYjhl
MTk3Y2M2ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMTEsMTAgKzIxMSw2IEBAIFdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dChXS1By
ZWZlcmVuY2VzUmVmIHByCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TW9ja1Njcm9s
bGJhcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7
CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCi0vLyBEZWZhdWx0cyB0byB0cnVlLgot
V0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlcyhX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGphdmFFbmFibGVkKTsKLVdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlcyk7Ci0KIC8vIERlZmF1bHRzIHRvIGZhbHNlCiBXS19FWFBPUlQg
dm9pZCBXS1ByZWZlcmVuY2VzU2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbQppbmRleCA4ZmMxZTg1NDdmZDI5YjI4MDE2NjA3MDUxNmYzZTBlNjdk
ZWJjNWU4Li42MzQ4Njc5ZWM4MWVjOWM2YjU2NjRmNjA2ZjI1MDA3OTQ4Y2NhMWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTc2LDkgKzc2LDYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAjaWYgUExBVEZPUk0oTUFDKQotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBbY29kZXIgZW5jb2RlQm9vbDpz
ZWxmLmphdmFFbmFibGVkIGZvcktleTpAImphdmFFbmFibGVkIl07Ci1BTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLnRhYkZvY3VzZXNM
aW5rcyBmb3JLZXk6QCJ0YWJGb2N1c2VzTGlua3MiXTsKICNlbmRpZgogICAgIFtjb2RlciBlbmNv
ZGVCb29sOnNlbGYudGV4dEludGVyYWN0aW9uRW5hYmxlZCBmb3JLZXk6QCJ0ZXh0SW50ZXJhY3Rp
b25FbmFibGVkIl07CkBAIC05Nyw5ICs5NCw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRG
T1JNKE1BQykKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgc2VsZi5q
YXZhRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKLUFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHNlbGYudGFiRm9jdXNlc0xpbmtz
ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJ0YWJGb2N1c2VzTGlua3MiXTsKICNlbmRpZgog
ICAgIGlmIChbY29kZXIgY29udGFpbnNWYWx1ZUZvcktleTpAInRleHRJbnRlcmFjdGlvbkVuYWJs
ZWQiXSkKQEAgLTk1NCwxNiArOTQ4LDYgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Jl
aGF2aW9yIHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoX1dLRWRpdGFibGVMaW5rQmVoYXYKIH0KIAog
I2lmIFBMQVRGT1JNKE1BQykKLS0gKHZvaWQpX3NldEphdmFFbmFibGVkRm9yTG9jYWxGaWxlczoo
Qk9PTCllbmFibGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhRW5hYmxlZEZvckxvY2Fs
RmlsZXMoZW5hYmxlZCk7Ci19Ci0KLS0gKEJPT0wpX2phdmFFbmFibGVkRm9yTG9jYWxGaWxlcwot
ewotICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpOwot
fQotCiAtICh2b2lkKV9zZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nOihCT09MKWVuYWJs
ZWQKIHsKICAgICBfcHJlZmVyZW5jZXMtPnNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmco
ZW5hYmxlZCk7CkBAIC0xNTg4LDEyICsxNTcyLDExIEBAIHN0YXRpYyBXZWJDb3JlOjpFZGl0YWJs
ZUxpbmtCZWhhdmlvciB0b0VkaXRhYmxlTGlua0JlaGF2aW9yKF9XS0VkaXRhYmxlTGlua0JlaGF2
CiAKIC0gKEJPT0wpamF2YUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZh
RW5hYmxlZCgpOworICAgIHJldHVybiBOTzsKIH0KIAogLSAodm9pZClzZXRKYXZhRW5hYmxlZDoo
Qk9PTClqYXZhRW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YUVuYWJsZWQoamF2
YUVuYWJsZWQpOwogfQogCiAtIChCT09MKXBsdWdJbnNFbmFibGVkCkBAIC0xNjU0LDQgKzE2Mzcs
MTUgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5r
QmVoYXZpb3IoX1dLRWRpdGFibGVMaW5rQmVoYXYKIAogI2VuZGlmCiAKKyNpZiBQTEFURk9STShN
QUMpCistICh2b2lkKV9zZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXM6KEJPT0wpZW5hYmxlZAor
eworfQorCistIChCT09MKV9qYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMKK3sKKyAgICByZXR1cm4g
Tk87Cit9CisjZW5kaWYKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBhMDhjODRjNWNmYTBi
NzAxZDYxYjNmNzYyOTU3MzhkNjc2YmY3NjFmLi5mYTU0OWE5Njc5YTc3YjhkMzg1MGM3NTliNGQ4
MTNkM2Q1Nzk4OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4Myw3ICsxODMsNiBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIAog
I2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRX
ZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhRW5hYmxlZEZv
ckxvY2FsRmlsZXM6KSBCT09MIF9qYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRD
YW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nOikgQk9PTCBfY2FudmFzVXNlc0FjY2VsZXJhdGVk
RHJhd2luZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lOikgTlNTdHJpbmcgKl9k
ZWZhdWx0VGV4dEVuY29kaW5nTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFi
bGVkOikgQk9PTCBfYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggMWU4ZmU1YmVkODA3MzYyODNlZTg5NjE4MmRkM2U4
NTE0OTFhNDQxMi4uNDMwMjU5ZGJlYmY1ZWVmMjVhNDZkZTZjZWZlM2IxYzE4MjczOTU2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdz
LmNwcApAQCAtMTkxNiwxMyArMTkxNiwxMyBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5h
YmxlX3BsdWdpbnMoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbmFibAogICoK
ICAqIEdldCB0aGUgI1dlYktpdFNldHRpbmdzOmVuYWJsZS1qYXZhIHByb3BlcnR5LgogICoKLSAq
IFJldHVybnM6ICVUUlVFIElmIEphdmEgaXMgZW5hYmxlZCBvciAlRkFMU0Ugb3RoZXJ3aXNlLgor
ICogUmV0dXJuczogJUZBTFNFIGFsd2F5cy4KICAqLwogZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdz
X2dldF9lbmFibGVfamF2YShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+amF2YUVuYWJsZWQoKTsKKyAg
ICByZXR1cm4gRkFMU0U7CiB9CiAKIC8qKgpAQCAtMTkzMCwxOSArMTkzMCwxMSBAQCBnYm9vbGVh
biB3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9qYXZhKFdlYktpdFNldHRpbmdzKiBzZXR0aW5n
cykKICAqIEBzZXR0aW5nczogYSAjV2ViS2l0U2V0dGluZ3MKICAqIEBlbmFibGVkOiBWYWx1ZSB0
byBiZSBzZXQKICAqCi0gKiBTZXQgdGhlICNXZWJLaXRTZXR0aW5nczplbmFibGUtamF2YSBwcm9w
ZXJ0eS4KKyAqIFNldCB0aGUgI1dlYktpdFNldHRpbmdzOmVuYWJsZS1qYXZhIHByb3BlcnR5LiBE
ZXByZWNhdGVkIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nLgogICovCi12b2lkIHdlYmtpdF9z
ZXR0aW5nc19zZXRfZW5hYmxlX2phdmEoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVh
biBlbmFibGVkKQordm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9qYXZhKFdlYktpdFNl
dHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2xlYW4pCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpKTsKLQotICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSog
cHJpdiA9IHNldHRpbmdzLT5wcml2OwotICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJl
ZmVyZW5jZXMtPmphdmFFbmFibGVkKCk7Ci0gICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBlbmFibGVk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0SmF2YUVuYWJs
ZWQoZW5hYmxlZCk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHNldHRp
bmdzKSwgc09ialByb3BlcnRpZXNbUFJPUF9FTkFCTEVfSkFWQV0pOwogfQogCiAvKioKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA4YjY3ZjBkMTdkYzhh
Njk4ZWM0NDcyZGVmNGE1ZWIzMzIzMGM5YjU1Li4xZGJjYWU4YzZhNjZmMDhkYjI2MmFkM2YxN2I4
ZDAxM2ExMTRmNTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVm
ZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUwLDggKzUwLDYgQEAgUmVmPFdlYlByZWZlcmVuY2VzPiBXZWJQcmVmZXJlbmNl
czo6Y3JlYXRlV2l0aExlZ2FjeURlZmF1bHRzKGNvbnN0IFN0cmluZyYgaWRlbnQKICAgICBhdXRv
IHByZWZlcmVuY2VzID0gV2ViUHJlZmVyZW5jZXM6OmNyZWF0ZShpZGVudGlmaWVyLCBrZXlQcmVm
aXgsIGdsb2JhbERlYnVnS2V5UHJlZml4KTsKICAgICAvLyBGSVhNRTogVGhlIHJlZ2lzdGVyRGVm
YXVsdC4uLlZhbHVlRm9yS2V5IG1hY2hpbmVyeSBpcyB1bm5lY2Vzc2FyaWx5IGhlYXZ5d2VpZ2h0
IGFuZCBjb21wbGljYXRlZC4KICAgICAvLyBXZSBjYW4ganVzdCBjb21wdXRlIGRpZmZlcmVudCBk
ZWZhdWx0cyBmb3IgbW9kZXJuIGFuZCBsZWdhY3kgQVBJcyBpbiBXZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmggbWFjcm9zLgotICAgIHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFFbmFibGVkS2V5KCksIHRydWUpOwotICAg
IHByZWZlcmVuY2VzLT5yZWdpc3RlckRlZmF1bHRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmphdmFFbmFibGVkRm9yTG9jYWxGaWxlc0tleSgpLCB0cnVlKTsKICAgICBwcmVmZXJl
bmNlcy0+cmVnaXN0ZXJEZWZhdWx0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
bHVnaW5zRW5hYmxlZEtleSgpLCB0cnVlKTsKICAgICBwcmVmZXJlbmNlcy0+cmVnaXN0ZXJEZWZh
dWx0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeUtleSgpLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6U3RvcmFnZUJsb2NraW5n
UG9saWN5OjpBbGxvd0FsbCkpOwogICAgIHJldHVybiBwcmVmZXJlbmNlczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5tbQppbmRleCAyYzM1MDYzOTE1NzMxMDVjZTU4MjhlMzZlN2VjNTAxY2U1ZjRhZTU5
Li45OGJjMzQ5MzA2NzI1MzI0NTI2ZGVlMDI5M2RkYjQ2ZWI1NmZhY2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00ODEsNyArNDgxLDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJp
bmcKICAgICBbcHJlZmVyZW5jZXMgc2V0QXV0b3NhdmVzOk5PXTsKICAgICBbcHJlZmVyZW5jZXMg
c2V0RGVmYXVsdEZpeGVkRm9udFNpemU6MTFdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRGaXhlZEZv
bnRGYW1pbHk6QCJNZW5sbyJdOwotICAgIFtwcmVmZXJlbmNlcyBzZXRKYXZhRW5hYmxlZDpOT107
CiAgICAgW3ByZWZlcmVuY2VzIHNldEphdmFTY3JpcHRFbmFibGVkOllFU107CiAgICAgW3ByZWZl
cmVuY2VzIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRNaW5pbXVtRm9udFNpemU6MF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAxNjBlZDIw
YzA2NjIyMDk0YTUwMTgwYTA0MzFmMDlkMjNhOTE3MWM4Li5kNWMzOTI2ZDUxNTg2YmViYzMyYmY2
ODQzMzc2MDg1NGFlY2E0MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0OSw2
IEBACiAjZGVmaW5lIFdlYktpdFRleHRBcmVhc0FyZVJlc2l6YWJsZVByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRUZXh0QXJlYXNBcmVSZXNpemFibGUiCiAjZW5kaWYKICNkZWZpbmUgV2ViS2l0U2hyaW5r
c1N0YW5kYWxvbmVJbWFnZXNUb0ZpdFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaHJpbmtzU3RhbmRh
bG9uZUltYWdlc1RvRml0IgotI2RlZmluZSBXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRKYXZhRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SmF2YVNjcmlwdEVuYWJsZWRQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0SmF2YVNjcmlwdEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEphdmFT
Y3JpcHRNYXJrdXBFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEphdmFTY3JpcHRNYXJrdXBF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRXZWJTZWN1cml0eUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0V2ViU2VjdXJpdHlFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IDY4YTY0Mjc4YTM0MWEzZGY0ZWNjMGQ1Yjcz
ZDBlY2RlNTNmYThhYjkuLjAyOTkxOWRlMmExYmFjNmZlYzAyYzY0MTI5NzQ4MjAzOGY4YzNjYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1
LCAyMDEyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNjgsOCArMTY4LDkgQEAgV0VCS0lUX0NMQVNTX0RFUFJF
Q0FURURfTUFDKDEwXzMsIDEwXzE0KQogCiAvKiEKICAgICBAcHJvcGVydHkgamF2YUVuYWJsZWQK
KyAgICBAZGlzY3Vzc2lvbiBEZXByZWNhdGVkIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFu
ZCBhbHdheXMgcmV0dXJucyBmYWxzZS4KICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVy
PWlzSmF2YUVuYWJsZWQpIEJPT0wgamF2YUVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
Z2V0dGVyPWlzSmF2YUVuYWJsZWQpIEJPT0wgamF2YUVuYWJsZWQgV0VCS0lUX0RFUFJFQ0FURURf
TUFDKDEwXzMsIDEwXzE1KTsKIAogLyohCiAgICAgQHByb3BlcnR5IGphdmFTY3JpcHRFbmFibGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQppbmRleCBlMWRmMjcxYTZjMmRkMzRkOTJjZjYzNTQ4ZThlMGFiZjcwMGNiZDQzLi5iNzZkMThh
MDdmYmE3MzYxMWY0YWI1ODZjNDJkY2Y3ZmRlNTliYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5u
aXNAZ21haWwuY29tKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtODU5LDE2ICs4NTksNiBAQCBwdWJs
aWM6CiB9CiAjZW5kaWYKIAotLSAoQk9PTClpc0phdmFFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtz
ZWxmIF9ib29sVmFsdWVGb3JLZXk6IFdlYktpdEphdmFFbmFibGVkUHJlZmVyZW5jZUtleV07Ci19
Ci0KLS0gKHZvaWQpc2V0SmF2YUVuYWJsZWQ6KEJPT0wpZmxhZwotewotICAgIFtzZWxmIF9zZXRC
b29sVmFsdWU6IGZsYWcgZm9yS2V5OiBXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVuY2VLZXldOwot
fQotCiAtIChCT09MKWlzSmF2YVNjcmlwdEVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jv
b2xWYWx1ZUZvcktleTogV2ViS2l0SmF2YVNjcmlwdEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKQEAg
LTM0NzQsNCArMzQ2NCwxMyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiYgY2xhc3NJQkNy
ZWF0b3JJRCgpCiB7CiB9CiAKKy0gKEJPT0wpaXNKYXZhRW5hYmxlZAoreworICAgIHJldHVybiBO
TzsKK30KKworLSAodm9pZClzZXRKYXZhRW5hYmxlZDooQk9PTClmbGFnCit7Cit9CisKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDZhNDUwMDFiZTEyMTA0YzAxMjU0YTBhY2Ji
ZWZjYzRkOTBlNWIwZjQuLmNiYTNhYmNhMzM2NzRkZjQzMjNiOGQ4MzZlYmY5MmMwYTM1NzkwZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxMCwgMjAxNCwgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTMxLDggKzEz
MSw2IEBAIEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBXZWJJbnNwZWN0b3JDbGllbnQ6Om9w
ZW5Mb2NhbEZyb250ZW5kKEluc3BlY3RvckNvbnRyCiAgICAgICAgIHJldHVybiAwOwogICAgIGlm
IChGQUlMRUQocHJlZmVyZW5jZXMtPnNldFBsdWdJbnNFbmFibGVkKEZBTFNFKSkpCiAgICAgICAg
IHJldHVybiAwOwotICAgIGlmIChGQUlMRUQocHJlZmVyZW5jZXMtPnNldEphdmFFbmFibGVkKEZB
TFNFKSkpCi0gICAgICAgIHJldHVybiAwOwogICAgIGlmIChGQUlMRUQocHJlZmVyZW5jZXMtPnNl
dFVzZXJTdHlsZVNoZWV0RW5hYmxlZChGQUxTRSkpKQogICAgICAgICByZXR1cm4gMDsKICAgICBp
ZiAoRkFJTEVEKHByZWZlcmVuY2VzLT5zZXRUYWJzVG9MaW5rcyhGQUxTRSkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA0
MTg3M2RjMDNiMGExOTEwNzg1NGRmMmQ2MTY4NjY2Y2Q2MzJjMDkyLi43MTY3ZTQ2ZWRlZmZlZjVi
ZGZmZDkzNDhiM2U5Mzc2NWYzMmQ1YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtNDgsNyArNDgsNiBAQAogI2RlZmlu
ZSBXZWJLaXRVc2VyU3R5bGVTaGVldExvY2F0aW9uUHJlZmVyZW5jZUtleSAiV2ViS2l0VXNlclN0
eWxlU2hlZXRMb2NhdGlvblByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdFNob3VsZFByaW50
QmFja2dyb3VuZHNQcmVmZXJlbmNlS2V5ICJXZWJLaXRTaG91bGRQcmludEJhY2tncm91bmRzUHJl
ZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0VGV4dEFyZWFzQXJlUmVzaXphYmxlUHJlZmVyZW5j
ZUtleSAiV2ViS2l0VGV4dEFyZWFzQXJlUmVzaXphYmxlIgotI2RlZmluZSBXZWJLaXRKYXZhRW5h
YmxlZFByZWZlcmVuY2VLZXkgIldlYktpdEphdmFFbmFibGVkIgogI2RlZmluZSBXZWJLaXRKYXZh
U2NyaXB0RW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdEphdmFTY3JpcHRFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzUHJlZmVyZW5jZUtleSAiV2ViS2l0SmF2
YVNjcmlwdFJ1bnRpbWVGbGFncyIKICNkZWZpbmUgV2ViS2l0V2ViU2VjdXJpdHlFbmFibGVkUHJl
ZmVyZW5jZUtleSAiV2ViS2l0V2ViU2VjdXJpdHlFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDEyODYyNjc1NDE5NmRjMzkwN2EwNTM0YWE5
MGFmOWFkMjA0MTZhM2QuLmE1Mzk1YzkwMTkzODljZWZhYjU4ODcyZTVhNjQ5YWZjMTgwMjczZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTI0OCw3
ICsyNDgsNiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdz
KCkKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2ViS2l0
VXNlclN0eWxlU2hlZXRMb2NhdGlvblByZWZlcmVuY2VLZXkpLCBDRlNUUigiIikpOwogICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLmdldCgpLCBDRlNUUihXZWJLaXRTaG91bGRQcmlu
dEJhY2tncm91bmRzUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAgICAgQ0ZEaWN0
aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMuZ2V0KCksIENGU1RSKFdlYktpdFRleHRBcmVhc0FyZVJl
c2l6YWJsZVByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwotICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGRlZmF1bHRzLmdldCgpLCBDRlNUUihXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuVHJ1ZSk7CiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVs
dHMuZ2V0KCksIENGU1RSKFdlYktpdEphdmFTY3JpcHRFbmFibGVkUHJlZmVyZW5jZUtleSksIGtD
RkJvb2xlYW5UcnVlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwg
Q0ZTVFIoV2ViS2l0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnc1ByZWZlcmVuY2VLZXkpLCBDRlNUUigi
MCIpKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cy5nZXQoKSwgQ0ZTVFIoV2Vi
S2l0V2ViU2VjdXJpdHlFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVlKTsKQEAg
LTkyOCwxMyArOTI3LDEyIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OmlzSmF2YUVuYWJsZWQo
X091dF8gQk9PTCogZW5hYmxlZCkKIHsKICAgICBpZiAoIWVuYWJsZWQpCiAgICAgICAgIHJldHVy
biBFX1BPSU5URVI7Ci0gICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2ViS2l0SmF2YUVu
YWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICAqZW5hYmxlZCA9IEZBTFNFOwogICAgIHJldHVybiBT
X09LOwogfQogCi1IUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRKYXZhRW5hYmxlZChCT09MIGVu
YWJsZWQpCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRKYXZhRW5hYmxlZChCT09MKQogewot
ICAgIHNldEJvb2xWYWx1ZShXZWJLaXRKYXZhRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQp
OwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmlu
ZGV4IDlmOThkYzUxYzc3Zjc1ZWRkMWRlNmMzY2Y1NjczZWM4MzdiMWY5YTEuLmE1NzRhNGM5Y2Yz
OGUwYTU4OGJlYjgxYWE5ODhmNjY1NmU5ZWJhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFw
cGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAy
MiBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEwLCAyMDExIEFwcGNlbGVyYXRvciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExIEJyZW50IEZ1bGdoYW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgpAQCAtNDk4NiwxMSArNDk4Niw2IEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5j
ZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICBzZXR0aW5ncy5z
ZXRQaWN0b2dyYXBoRm9udEZhbWlseSh0b0F0b21TdHJpbmcoc3RyKSk7CiAgICAgc3RyLmNsZWFy
KCk7CiAKLSAgICBociA9IHByZWZlcmVuY2VzLT5pc0phdmFFbmFibGVkKCZlbmFibGVkKTsKLSAg
ICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgcmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldEph
dmFFbmFibGVkKCEhZW5hYmxlZCk7Ci0KICAgICBociA9IHByZWZlcmVuY2VzLT5pc0phdmFTY3Jp
cHRFbmFibGVkKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJu
IGhyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDFmMzIyNWJhYzYxMDNmNDk5MjFiYTA5ZTM1ZjgyZDRjMzYwN2VjYWIuLjcwYjY2NmIxMDI5Y2Nm
Y2RlNzM1YTMwMzBiNjY2NjgwMGY1NDNmM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMi0wNS0wMyAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVwcmVjYXRl
ZCAnSmF2YUVuYWJsZWQnIGZlYXR1cmUgZmxhZyBhbmQgcmVsYXRlZCBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwNDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBXZSByZW1vdmVkIHN1cHBvcnQgZm9y
IEphdmEgUGx1Zy1JbnMgaW4gbWFjT1MgMTAuMTUsIGJ1dCBuZXZlciByZW1vdmVkIHRoZSBwcmVm
ZXJlbmNlLiBUbyByZWR1Y2UgY29kZSBjb21wbGV4aXR5CisgICAgICAgIGFuZCBidWlsZCB0aW1l
cyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgdW51c2VkIHByZWZlcmVuY2UsIGxlYXZpbmcgbm9uLWZ1
bmN0aW9uYWwgc3R1YnMgdG8gYXZvaWQgYnJlYWtpbmcgYmluYXJpZXMKKyAgICAgICAgdGhhdCBl
eHBlY3QgdG8gY2FsbCB0aGVpciBhY2Nlc3NvciBtZXRob2RzLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVm
YXVsdHMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ29kaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5aW5nLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjItMDUtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMjkzNzAzKTogMzU4IEpTQyB0ZXN0cyBmYWlsaW5nCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0T3B0aW9ucy5jcHAKaW5kZXggOGEwZmFjZjZjM2VlNDk2ZTVhZTQ1NGJkYmMxMjI1NGY3
YmQ1MGFhNy4uZGMzZWY3Yzc2ZDFiYWVmNTlhMDU4OWQyNzFjY2RlY2ZjYzE2NjM4YyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcApAQCAtNzksNyArNzksNiBAQCBjb25zdCBUZXN0
RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICB7ICJHYW1lcGFk
c0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJIaWRkZW5QYWdlQ1NTQW5pbWF0aW9u
U3VzcGVuc2lvbkVuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiSW5saW5lTWVkaWFQ
bGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUiLCBmYWxzZSB9LAotICAgICAgICAg
ICAgeyAiSmF2YUVuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiSmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJMYXJnZUlt
YWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQiLCBmYWxzZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNTQ0YmY0NzRiYmI2ZGZiYWY0MzdkYjYwZTM4
NGE3YTNhNjkzOTI0OC4uMmUzNGVhNTA0YWJlMmM4ODg5OWU0YWM2NmQyNzhlYTYyMjk1NDE2NiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04Nzcs
NyArODc3LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZh
bHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZlcmVuY2VzLT5zZXRE
ZWZhdWx0Rml4ZWRGb250U2l6ZSgxMyk7CiAgICAgcHJlZmVyZW5jZXMtPnNldE1pbmltdW1Gb250
U2l6ZSgwKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUoX2Jz
dHJfdChMIklTTy04ODU5LTEiKSk7Ci0gICAgcHJlZmVyZW5jZXMtPnNldEphdmFFbmFibGVkKEZB
TFNFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoVFJVRSk7CiAgICAg
cHJlZmVyZW5jZXMtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKFdlYktpdEVkaXRhYmxlTGlua09u
bHlMaXZlV2l0aFNoaWZ0S2V5KTsKICAgICBwcmVmZXJlbmNlcy0+c2V0RE9NUGFzdGVBbGxvd2Vk
KFRSVUUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQ
cmVmZXJlbmNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCBhYWE0OWNlOWRmNjEzYTU1M2RjYWZlZTRmZDEyYmZlOGRiYmZjZDM0
Li5jYTA4ODMxMzBhYmY4NTYxMjQwNWE5MWJhYmYxMjdmMWJhNjBkNTBiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODEs
NyArODEsNiBAQCBURVNUKFdlYktpdCwgV0tQcmVmZXJlbmNlc0RlZmF1bHRzKQogICAgIEVYUEVD
VF9UUlVFKFdLUHJlZmVyZW5jZXNHZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHByZWZlcmVuY2UpKTsK
ICAgICBFWFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
cHJlZmVyZW5jZSkpOwogICAgIEVYUEVDVF9UUlVFKFdLUHJlZmVyZW5jZXNHZXRQbHVnaW5zRW5h
YmxlZChwcmVmZXJlbmNlKSk7Ci0gICAgRVhQRUNUX1RSVUUoV0tQcmVmZXJlbmNlc0dldEphdmFF
bmFibGVkKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfVFJVRShXS1ByZWZlcmVuY2VzR2V0SmF2
YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShwcmVmZXJlbmNlKSk7CiAgICAgRVhQ
RUNUX1RSVUUoV0tQcmVmZXJlbmNlc0dldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChwcmVmZXJl
bmNlKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVkU3RhbmRhcmRGb250RmFtaWx5LCBh
ZG9wdFdLKFdLUHJlZmVyZW5jZXNDb3B5U3RhbmRhcmRGb250RmFtaWx5KHByZWZlcmVuY2UpKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGlu
Zy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29kaW5nLm1tCmlu
ZGV4IGE2NmFmOWY3NTAwMDk2NTZmODFhYmZlYTkxYTljZDg1NWI3MDAzNjYuLjRkMjM1ZDRlNTc1
MTZhOGNhZDhhZGU4ZDg2ZTcxY2FkZTM2YWE4MjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29kaW5nLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29kaW5nLm1tCkBAIC01Myw3ICs1Myw2IEBAIFRFU1QoQ29k
aW5nLCBXS1ByZWZlcmVuY2VzKQogICAgIFthIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHk6WUVTXTsKICNlbHNlCiAgICAgW2Egc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5k
b3dzQXV0b21hdGljYWxseTpOT107Ci0gICAgW2Egc2V0SmF2YUVuYWJsZWQ6WUVTXTsKICAgICBb
YSBzZXRQbHVnSW5zRW5hYmxlZDpZRVNdOwogICAgIFthIHNldFRhYkZvY3VzZXNMaW5rczpZRVNd
OwogI2VuZGlmCkBAIC02NSw3ICs2NCw2IEBAIFRFU1QoQ29kaW5nLCBXS1ByZWZlcmVuY2VzKQog
ICAgIEVYUEVDVF9FUShbYSBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5XSwg
W2IgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseV0pOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIEVYUEVDVF9FUShbYSBqYXZhRW5hYmxlZF0sIFtiIGphdmFFbmFibGVkXSk7
CiAgICAgRVhQRUNUX0VRKFthIHBsdWdJbnNFbmFibGVkXSwgW2IgcGx1Z0luc0VuYWJsZWRdKTsK
ICAgICBFWFBFQ1RfRVEoW2EgdGFiRm9jdXNlc0xpbmtzXSwgW2IgdGFiRm9jdXNlc0xpbmtzXSk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ29weWluZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29w
eWluZy5tbQppbmRleCBiNzA0ZTMzNTM4MWJhYWQxMjg3NjhmYTY4YmI5N2IyODY2YTM1M2RiLi43
YTY3Yjg1MDAwMDg4MWZiMWExOTVlMGJlMzkwYmNjOTFkMzBjN2QxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvcHlpbmcubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db3B5aW5nLm1tCkBAIC0zNyw3ICszNyw2
IEBAIFRFU1QoQ29weWluZywgV0tQcmVmZXJlbmNlcykKICAgICBbYSBzZXRKYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OllFU107CiAjZWxzZQogICAgIFthIHNldEphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk6Tk9dOwotICAgIFthIHNldEphdmFFbmFibGVk
OllFU107CiAgICAgW2Egc2V0UGx1Z0luc0VuYWJsZWQ6WUVTXTsKICAgICBbYSBzZXRUYWJGb2N1
c2VzTGlua3M6WUVTXTsKICNlbmRpZgpAQCAtNjAsNyArNTksNiBAQCBURVNUKENvcHlpbmcsIFdL
UHJlZmVyZW5jZXMpCiAgICAgW2Igc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseTpOT107CiAjZWxzZQogICAgIFtiIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHk6WUVTXTsKLSAgICBbYiBzZXRKYXZhRW5hYmxlZDpOT107CiAgICAgW2Igc2V0UGx1
Z0luc0VuYWJsZWQ6Tk9dOwogICAgIFtiIHNldFRhYkZvY3VzZXNMaW5rczpOT107CiAjZW5kaWYK
QEAgLTcwLDcgKzY4LDYgQEAgVEVTVChDb3B5aW5nLCBXS1ByZWZlcmVuY2VzKQogICAgIEVYUEVD
VF9ORShbYSBqYXZhU2NyaXB0RW5hYmxlZF0sIFtiIGphdmFTY3JpcHRFbmFibGVkXSk7CiAgICAg
RVhQRUNUX05FKFthIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHldLCBbYiBq
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5XSk7CiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIEVYUEVDVF9ORShbYSBqYXZhRW5hYmxlZF0sIFtiIGphdmFFbmFibGVkXSk7CiAgICAg
RVhQRUNUX0VRKFthIHBsdWdJbnNFbmFibGVkXSwgW2IgcGx1Z0luc0VuYWJsZWRdKTsKICAgICBF
WFBFQ1RfTkUoW2EgdGFiRm9jdXNlc0xpbmtzXSwgW2IgdGFiRm9jdXNlc0xpbmtzXSk7CiAjZW5k
aWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>