<?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>234403</bug_id>
          
          <creation_ts>2021-12-16 13:11:55 -0800</creation_ts>
          <short_desc>[Cocoa] Web Driver: WebSocket over TLS failing over WebDriver with acceptInsecureCerts on Big Sur</short_desc>
          <delta_ts>2022-01-07 13:53:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Patrick Angle">pangle</reporter>
          <assigned_to name="Patrick Angle">pangle</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bburg</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>gustavo</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824860</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-16 13:11:55 -0800</bug_when>
    <thetext>&lt;rdar://85460617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824863</commentid>
    <comment_count>1</comment_count>
      <attachid>447389</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-16 13:26:06 -0800</bug_when>
    <thetext>Created attachment 447389
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824877</commentid>
    <comment_count>2</comment_count>
      <attachid>447389</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-12-16 14:07:18 -0800</bug_when>
    <thetext>Comment on attachment 447389
Patch v1.0

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

I think this should have an availability annotation to prevent use on macOS after Big Sur.
Something like this from _WKAttachment.h:

- (void)requestInfo:(void(^)(_WKAttachmentInfo * _Nullable, NSError * _Nullable))completionHandler WK_API_DEPRECATED_WITH_REPLACEMENT(&quot;-info&quot;, macos(10.14, 10.14.4), ios(12.0, 12.2));

&gt; Source/WebKit/ChangeLog:12
&gt; +        automationmation clients when using the `acceptInsecureCerts` capability.

Nit: typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824896</commentid>
    <comment_count>3</comment_count>
      <attachid>447389</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-16 15:33:13 -0800</bug_when>
    <thetext>Comment on attachment 447389
Patch v1.0

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:671
&gt; +    _websiteDataStore-&gt;setAllowsAnySSLCertificateForWebSocket(allow);

I&apos;ve made a mistake here. This ends up enabling/disabling insecure certs globally, not scoped to a network session. I need to reengineer this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825208</commentid>
    <comment_count>4</comment_count>
      <attachid>447481</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-17 15:06:32 -0800</bug_when>
    <thetext>Created attachment 447481
Patch v2.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825211</commentid>
    <comment_count>5</comment_count>
      <attachid>447481</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-17 15:10:49 -0800</bug_when>
    <thetext>Comment on attachment 447481
Patch v2.0

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

Not a full review, but one style comment (please other reviewers, don’t hesitate to review)

&gt; Source/WebKit/NetworkProcess/NetworkSession.h:210
&gt; +    bool acceptInsecureCertificatesForWebSockets() const { return m_acceptInsecureCertificatesForWebSockets; }

Often we steer away from names like this for getters, because they are ambiguous. This could be a function telling the network session that it should accept certificates. And a caller that thought it would do that won’t even get a compile time error.

An alternative is to name such functions shouldAccept... or some other non-verb phrase, a style we have borrowed from Apple’s Cocoa naming conventions.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:58
&gt; +@property (nonatomic, setter=_setAcceptInsecureCertificatesForWebSockets:) BOOL _acceptInsecureCertificatesForWebSockets WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

Same comment for this public property. Note for example, for above it says &quot;shouldRunServiceWorkersOnMainThreadForTesting.&quot;.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:201
&gt; +    bool acceptInsecureCertificatesForWebSockets() const { return m_acceptInsecureCertificatesForWebSockets; }

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825229</commentid>
    <comment_count>6</comment_count>
      <attachid>447481</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-17 15:44:18 -0800</bug_when>
    <thetext>Comment on attachment 447481
Patch v2.0

Oops, looks like I missed that we have three files named `SocketStreamHandleImpl.h`, and so platforms that use soup or curl backed sockets are failing to build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825250</commentid>
    <comment_count>7</comment_count>
      <attachid>447492</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-12-17 16:28:50 -0800</bug_when>
    <thetext>Created attachment 447492
Patch v2.1 - Implement naming suggestion, fix non-Cocoa builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828979</commentid>
    <comment_count>8</comment_count>
      <attachid>447492</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2022-01-07 10:47:55 -0800</bug_when>
    <thetext>Comment on attachment 447492
Patch v2.1 - Implement naming suggestion, fix non-Cocoa builds

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829059</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-07 13:53:27 -0800</bug_when>
    <thetext>Committed r287781 (245841@main): &lt;https://commits.webkit.org/245841@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447492.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447389</attachid>
            <date>2021-12-16 13:26:06 -0800</date>
            <delta_ts>2021-12-17 15:06:29 -0800</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-234403-20211216132605.patch</filename>
            <type>text/plain</type>
            <size>3282</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3ZjI4Y2NlMDViNTY3ZjFi
ZjdjYjEzNjEyZTU0ZTFkYzVmMDAzOWUuLjhmMjIwNzBlMjJjNGI3MzJhNzA2YWU5NGU3YTA4ZWIy
YzRlN2NlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTItMTYgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIERyaXZlcjog
V2ViU29ja2V0IG92ZXIgVExTIGZhaWxpbmcgb3ZlciBXZWJEcml2ZXIgd2l0aCBhY2NlcHRJbnNl
Y3VyZUNlcnRzIG9uIEJpZyBTdXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNDQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJpZyBTdXIgZG9lcyBub3QgdXNlIE5TVVJMU2Vzc2lvbi1iYXNlZCBXZWJT
b2NrZXRzLCBzbyB3ZSBuZWVkIHRvIGhhbmRsZSBhbGxvd2luZyBpbnNlY3VyZSBjZXJ0aWZpY2F0
ZXMKKyAgICAgICAgdW5kZXIgYXV0b21hdGlvbiBmb3IgcGF0aHMgdGhhdCB3aWxsIG5vdCB1c2Ug
YW4gTlNVUkxTZXNzaW9uJ3MgZGVsZWdhdGUgdG8gZGV0ZXJtaW5lIGlmIGFuIGF1dGhlbnRpY2F0
aW9uCisgICAgICAgIGNoYWxsZW5nZSBzaG91bGQgYmUgYWNjZXB0ZWQuIEluIG9yZGVyIHRvIGFj
Y29tcGxpc2ggdGhpcywgd2UgZXhwb3NlIHRoZSBleGlzdGluZyBXZWJzaXRlRGF0YVN0b3JlIG1l
dGhvZAorICAgICAgICB0byBhbGxvdyBhbnkgU1NMIGNlcnRpZmljYXRlIGZvciBXZWJTb2NrZXRz
IGluIFdLV2Vic2l0ZURhdGFTdG9yZSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5CisgICAgICAg
IGF1dG9tYXRpb25tYXRpb24gY2xpZW50cyB3aGVuIHVzaW5nIHRoZSBgYWNjZXB0SW5zZWN1cmVD
ZXJ0c2AgY2FwYWJpbGl0eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3NldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VW5kZXJBdXRvbWF0aW9uOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorCiAy
MDIxLTEyLTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHByb3BlcnRpZXMgc2V0IGJ5IE5TVVJMUHJvdG9jb2wgb24gTlNVUkxS
ZXF1ZXN0IGJlZm9yZSBzZXJpYWxpemluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNjI5NjkwNzlkOWQ1
N2E3ODMwNzg4MjM1ZGQ5MTQ4N2QzZGI3MjE1ZS4uNzZkYTQ4NDMyMTNiN2M3ZDgwODQ4YmM0MzUx
NjU4NDdmMWJmNmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC02NjYsNiArNjY2LDEwIEBAIHN0YXRp
YyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMo
TlNBcnJheSAqZGF0YVJlY29yCiB7CiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNldFByaXZhdGVD
bGlja01lYXN1cmVtZW50RGVidWdNb2RlKGVuYWJsZWQpOwogfQorLSAodm9pZClfc2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRVbmRlckF1dG9tYXRpb246KEJPT0wpYWxsb3cK
K3sKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JX
ZWJTb2NrZXQoYWxsb3cpOworfQogCiAtICh2b2lkKV9hcHBCb3VuZERvbWFpbnM6KHZvaWQgKF4p
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCmluZGV4IDExZjA2ZjI0NGMwODY2MjAzNzU0NWIyNzM5YjZhMjE4NGQ1M2Q3
YzIuLjgwYjkzZjk0NmYxYjhiNTg2ZmFmZTdmZWIxYjM5NWVjZmI3ZWU5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaApAQCAtODcsNiArODcsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfYWxs
b3dUTFNDZXJ0aWZpY2F0ZUNoYWluOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0
OihOU1N0cmluZyAqKWhvc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKIC0gKHZvaWQpX3RydXN0U2VydmVyRm9yTG9jYWxQQ01UZXN0aW5nOihTZWNUcnVzdFJlZilz
ZXJ2ZXJUcnVzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGVFbmFi
bGVkRm9yVGVzdGluZzooQk9PTCllbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZUZvcldlYlNvY2tldFVuZGVyQXV0b21hdGlvbjooQk9PTClhbGxvdyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9yZW5h
bWVPcmlnaW46KE5TVVJMICopb2xkTmFtZSB0bzooTlNVUkwgKiluZXdOYW1lIGZvckRhdGFPZlR5
cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447481</attachid>
            <date>2021-12-17 15:06:32 -0800</date>
            <delta_ts>2021-12-17 16:38:46 -0800</delta_ts>
            <desc>Patch v2.0</desc>
            <filename>bug-234403-20211217150631.patch</filename>
            <type>text/plain</type>
            <size>23307</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlOWEwYmQ5MGUzYWZh
Yzk3NWZmNTBkZTRmYTg0NWY4ZjZiM2YxMi4uMGMxY2JjZmQyNGU1NDNmOTQ1MmVkYjZhZWIwMmQ1
MGFmYjFlNGMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTE3ICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYiBEcml2
ZXI6IFdlYlNvY2tldCBvdmVyIFRMUyBmYWlsaW5nIG92ZXIgV2ViRHJpdmVyIHdpdGggYWNjZXB0
SW5zZWN1cmVDZXJ0cyBvbiBCaWcgU3VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQ0MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGxD
Rk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRs
ZUltcGw6OmNyZWF0ZVN0cmVhbXMpOgorCiAyMDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZlbmFyZCAg
PGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIg
bm90IG1vZGlmeSB0aGUgU2hhcmVkQnVmZmVyIG9uY2UgcmV0dXJuZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzdm
MjhjY2UwNWI1NjdmMWJmN2NiMTM2MTJlNTRlMWRjNWYwMDM5ZS4uNTllYTg3ZjJmNmE3N2ZmMzJl
YTRkNWY2OWZiOTIzODYyOWIwZWQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0x
Mi0xNyAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29h
XSBXZWIgRHJpdmVyOiBXZWJTb2NrZXQgb3ZlciBUTFMgZmFpbGluZyBvdmVyIFdlYkRyaXZlciB3
aXRoIGFjY2VwdEluc2VjdXJlQ2VydHMgb24gQmlnIFN1cgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBtYWNPUyBCaWcgU3VyIGFuZCBlYXJs
aWVyIGRvIG5vdCB1c2UgTlNVUkxTZXNzaW9uLWJhc2VkIFdlYlNvY2tldHMsIHNvIHdlIG5lZWQg
YSB3YXkgdG8gYWxsb3cgaW5zZWN1cmUKKyAgICAgICAgY2VydGlmaWNhdGVzIHVuZGVyIGF1dG9t
YXRpb24gdGhhdCBkb2VzIG5vdCByZWx5IG9uIHRoZSBgV0tOYXZpZ2F0aW9uRGVsZWdhdGVgIHRv
IGRldGVybWluZSBpZiBhbgorICAgICAgICBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2Ugc2hvdWxk
IGJlIGFjY2VwdGVkLiBJbiBvcmRlciB0byBhY2NvbXBsaXNoIHRoaXMgd2Ugbm93IHBsdW1iIHRo
cm91Z2ggYW4KKyAgICAgICAgYGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0
c2AgdmFsdWUgZnJvbSBgX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uYCB0bworICAg
ICAgICBgU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0YCBvbiBwbGF0Zm9ybXMgdGhhdCBkbyBu
b3QgYEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVClgLCB3aGljaCBhbGxvd3MgYXV0b21hdGlv
bgorICAgICAgICBjbGllbnRzIHRvIGVuYWJsZSB0aGlzIGJlaGF2aW9yIHdoZW4gdGhlIGBhY2Nl
cHRJbnNlY3VyZUNlcnRzYCBjYXBhYmlsaXR5IGlzIHNldCBvbiBhIHNlc3Npb24uCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2Nr
ZXRTdHJlYW0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
b2NrZXRTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJl
YW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtTb2NrZXRTdHJlYW0uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0
d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIF9hY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0Zv
cldlYlNvY2tldHNdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gX3NldEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0czpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OmFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRBY2NlcHRJbnNlY3Vy
ZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMpOgorCiAyMDIxLTEyLTE0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHByb3BlcnRp
ZXMgc2V0IGJ5IE5TVVJMUHJvdG9jb2wgb24gTlNVUkxSZXF1ZXN0IGJlZm9yZSBzZXJpYWxpemlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRleCA3MzMwYWE5MzM5MjQ3OTFmMTI5MmMwODQ3OTIx
ZTNiMzY3NDkzZDk2Li5iODg0Y2JkMjVkYmJlYTA4ZTQ5M2U1YjM0ZDgyZmE5ODljNjBkM2Y0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUltcGwgOiBwdWJsaWMg
U29ja2V0U3RyZWFtSGFuZGxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVh
bUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEs
IGNvbnN0IFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIqIHByb3ZpZGVyKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3Jl
ZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpLCBwcm92aWRlcikpOyB9CisgICAg
c3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmws
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgU291cmNlQXBwbGljYXRpb25B
dWRpdFRva2VuJiYgYXVkaXREYXRhLCBjb25zdCBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKiBwcm92
aWRlciwgYm9vbCBhY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyA9IGZhbHNlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFNvY2tldFN0cmVhbUhhbmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25J
RCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpLCBwcm92aWRlciwgYWNj
ZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMpKTsgfQogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFt
SGFuZGxlSW1wbCgpOwogCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRp
b25hbDxzaXplX3Q+IHBsYXRmb3JtU2VuZEludGVybmFsKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3Qp
OwogICAgIGJvb2wgc2VuZFBlbmRpbmdEYXRhKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYs
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJj
ZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmLCBjb25zdCBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKik7
CisgICAgV0VCQ09SRV9FWFBPUlQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmLCBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBj
cmVkZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiwgY29uc3Qg
U3RvcmFnZVNlc3Npb25Qcm92aWRlciosIGJvb2wgYWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMp
OwogICAgIHZvaWQgY3JlYXRlU3RyZWFtcygpOwogICAgIHZvaWQgc2NoZWR1bGVTdHJlYW1zKCk7
CiAgICAgdm9pZCBjaG9vc2VQcm94eSgpOwpAQCAtOTksNiArOTksNyBAQCBwcml2YXRlOgogCiAg
ICAgUmV0YWluUHRyPENGSFRUUE1lc3NhZ2VSZWY+IG1fcHJveHlSZXNwb25zZU1lc3NhZ2U7CiAg
ICAgYm9vbCBtX3NlbnRTdG9yZWRDcmVkZW50aWFsczsKKyAgICBib29sIG1fYWNjZXB0SW5zZWN1
cmVDZXJ0aWZpY2F0ZXM7CiAgICAgUmV0YWluUHRyPENGUmVhZFN0cmVhbVJlZj4gbV9yZWFkU3Ry
ZWFtOwogICAgIFJldGFpblB0cjxDRldyaXRlU3RyZWFtUmVmPiBtX3dyaXRlU3RyZWFtOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKaW5kZXggMzExYWVmMmQ4MGZlNzMzNmNk
OGU1MTEzYzM5ZDk1MGRiOGY0Mzk0Yy4uMjBkOTg2YzRhNjg1NWEwMjg0YzI3MTVkOTIzZmQxZGVj
NTNmNDAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcApAQCAtOTYsMTEg
Kzk2LDEyIEBAIHN0YXRpYyBpbmxpbmUgYXV0byBjYWxsYmFja3NSdW5Mb29wTW9kZSgpCiAjZW5k
aWYKIH0KIAotU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbChj
b25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBTb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGNvbnN0IFN0b3JhZ2VTZXNzaW9u
UHJvdmlkZXIqIHByb3ZpZGVyKQorU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFt
SGFuZGxlSW1wbChjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGll
bnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFy
dGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGNvbnN0IFN0
b3JhZ2VTZXNzaW9uUHJvdmlkZXIqIHByb3ZpZGVyLCBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlm
aWNhdGVzKQogICAgIDogU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KQogICAgICwgbV9j
b25uZWN0aW5nU3Vic3RhdGUoTmV3KQogICAgICwgbV9jb25uZWN0aW9uVHlwZShVbmtub3duKQog
ICAgICwgbV9zZW50U3RvcmVkQ3JlZGVudGlhbHMoZmFsc2UpCisgICAgLCBtX2FjY2VwdEluc2Vj
dXJlQ2VydGlmaWNhdGVzKGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKQogICAgICwgbV9jcmVk
ZW50aWFsUGFydGl0aW9uKGNyZWRlbnRpYWxQYXJ0aXRpb24pCiAgICAgLCBtX2F1ZGl0RGF0YShX
VEZNb3ZlKGF1ZGl0RGF0YSkpCiAgICAgLCBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIocHJvdmlk
ZXIpCkBAIC0zNTcsNyArMzU4LDggQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVh
dGVTdHJlYW1zKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXNlU1NMKCkpIHsKLSAgICAgICAg
Q0ZCb29sZWFuUmVmIHZhbGlkYXRlQ2VydGlmaWNhdGVDaGFpbiA9IERlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5nczo6YWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKSA/IGtDRkJvb2xlYW5GYWxzZSA6IGtD
RkJvb2xlYW5UcnVlOworICAgICAgICAvLyBGSVhNRTogcmRhcjovLzg2NjQxOTQ4IFJlbW92ZSBh
Y2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMgb25jZSBIQVZFKE5TVVJMU0VT
U0lPTl9XRUJTT0NLRVQpIGlzIHN1cHBvcnRlZCBvbiBhbGwgQ29jb2EgcGxhdGZvcm1zLgorICAg
ICAgICBDRkJvb2xlYW5SZWYgdmFsaWRhdGVDZXJ0aWZpY2F0ZUNoYWluID0gRGVwcmVjYXRlZEds
b2JhbFNldHRpbmdzOjphbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSgpIHx8IG1fYWNjZXB0SW5zZWN1
cmVDZXJ0aWZpY2F0ZXMgPyBrQ0ZCb29sZWFuRmFsc2UgOiBrQ0ZCb29sZWFuVHJ1ZTsKICAgICAg
ICAgY29uc3Qgdm9pZCoga2V5c1tdID0gewogICAgICAgICAgICAga0NGU3RyZWFtU1NMUGVlck5h
bWUsCiAgICAgICAgICAgICBrQ0ZTdHJlYW1TU0xMZXZlbCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggYjg4MGI3NmI3MzBlZTQ1OWMzZjE5ZGMyNWZlZmEyMWExMDNlNjY0OC4uZGI2
ZTE1Y2ZhMDAyM2QwNjQ1NjhlOWFlMTFlZWJkNzFhYWNiMmRhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTQyNSw3ICs0MjUsMTIgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU3RyaW5nIGNhY2hlUGEK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICB0b2tlbiA9IHsgbV9uZXR3b3JrUHJvY2Vzcy0+c291
cmNlQXBwbGljYXRpb25BdWRpdERhdGEoKSB9OwogI2VuZGlmCi0gICAgbV9uZXR3b3JrU29ja2V0
U3RyZWFtcy5hZGQoaWRlbnRpZmllciwgTmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKG1fbmV0
d29ya1Byb2Nlc3MuZ2V0KCksIFdURk1vdmUodXJsKSwgbV9zZXNzaW9uSUQsIGNhY2hlUGFydGl0
aW9uLCBpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24sIFdURk1vdmUodG9rZW4pKSk7CisgICAgYXV0
byBhY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyA9IGZhbHNlOworI2lmICFIQVZFKE5TVVJMU0VT
U0lPTl9XRUJTT0NLRVQpCisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbigp
KQorICAgICAgICBhY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyA9IHNlc3Npb24tPmFjY2VwdElu
c2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cygpOworI2VuZGlmCisgICAgbV9uZXR3b3Jr
U29ja2V0U3RyZWFtcy5hZGQoaWRlbnRpZmllciwgTmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRl
KG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCksIFdURk1vdmUodXJsKSwgbV9zZXNzaW9uSUQsIGNhY2hl
UGFydGl0aW9uLCBpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24sIFdURk1vdmUodG9rZW4pLCBhY2Nl
cHRJbnNlY3VyZUNlcnRpZmljYXRlcykpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZmEwMzBlZTU4
MDRkNWJmOTdlOTU0NzVmMTA4MzA0Y2VkYmUwMzcxMy4uZTYxN2E3YjA3ZTYwMGIxNWFmNTI3YmIw
NzljNGE2NjI1N2YyZDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0
d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25zdCBOZXR3b3Jr
U2VzcwogI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQogICAgICwgbV9ub3RpZmlj
YXRpb25NYW5hZ2VyKCp0aGlzLCBwYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUpCiAj
ZW5kaWYKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQorICAgICwgbV9hY2NlcHRJ
bnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMocGFyYW1ldGVycy5hY2NlcHRJbnNlY3Vy
ZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMpCisjZW5kaWYKIHsKICAgICBpZiAoIW1fc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgU3RyaW5nIG5ldHdvcmtDYWNoZURpcmVjdG9y
eSA9IHBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDRiODBlNTI4YTQ0YzhkMDc0ZGVm
ODg1NDc2NDAwMTE4NjNlYTNlNGEuLjNhODQ3ZDMyZjhlODJmN2IwM2RlZGIwM2VkOTNmMmVjY2Q2
NTVkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKQEAgLTIwNSw2ICsyMDUsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQogICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyJiBub3RpZmljYXRpb25N
YW5hZ2VyKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25NYW5hZ2VyOyB9CiAjZW5kaWYKKyAgICAK
KyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQorICAgIGJvb2wgYWNjZXB0SW5zZWN1
cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlcHRJbnNl
Y3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHM7IH0KKyNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAg
ICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBOZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycyYpOwpAQCAtMjc4LDYgKzI4Miw5IEBAIHByb3RlY3RlZDoKICNpZiBF
TkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKICAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlciBtX25vdGlmaWNhdGlvbk1hbmFnZXI7CiAjZW5kaWYKKyNpZiAhSEFWRShOU1VSTFNFU1NJ
T05fV0VCU09DS0VUKQorICAgIGJvb2wgbV9hY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0Zvcldl
YlNvY2tldHMgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMDlhMTVjODc4OTdjMTAzYzcy
MDAzMzc2MjkyMGIxZDc3NzQwZWY0Ni4uMzVjMGVmNDBjZjUwNWNlN2UzYjYyMWJhOTM2NTkzNGE4
YjU5NDg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkyLDYgKzky
LDkgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHBjbU1hY2hTZXJ2aWNlTmFt
ZTsKICAgICBlbmNvZGVyIDw8IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CiAgICAgZW5jb2RlciA8
PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZTsKKyNpZiAhSEFWRShOU1VS
TFNFU1NJT05fV0VCU09DS0VUKQorICAgIGVuY29kZXIgPDwgYWNjZXB0SW5zZWN1cmVDZXJ0aWZp
Y2F0ZXNGb3JXZWJTb2NrZXRzOworI2VuZGlmCiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVyczsKIH0KIApAQCAtMzI0LDYgKzMyNywxMyBAQCBzdGQ6Om9wdGlv
bmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0
aW9uUGFyYW1ldGVycwogICAgIGlmICghZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1
Z01vZGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyNpZiAhSEFWRShOU1VSTFNF
U1NJT05fV0VCU09DS0VUKQorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYWNjZXB0SW5zZWN1cmVD
ZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOworICAgIGRlY29kZXIgPj4gYWNjZXB0SW5zZWN1cmVD
ZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOworICAgIGlmICghYWNjZXB0SW5zZWN1cmVDZXJ0aWZp
Y2F0ZXNGb3JXZWJTb2NrZXRzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlm
CisKICAgICBzdGQ6Om9wdGlvbmFsPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzPiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKICAgICBkZWNvZGVyID4+IHJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMpCkBAIC0zODIsNiArMzkyLDkgQEAgc3RkOjpvcHRpb25hbDxOZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMK
ICAgICAgICAgLCBXVEZNb3ZlKCpwY21NYWNoU2VydmljZU5hbWUpCiAgICAgICAgICwgV1RGTW92
ZSgqd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZNb3ZlKCplbmFibGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VC
U09DS0VUKQorICAgICAgICAsIFdURk1vdmUoKmFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9y
V2ViU29ja2V0cykKKyNlbmRpZgogICAgICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDJiYWE3MjQ0NGI4Y2E5N2ExMWI1MTZkMzgyMzViNWI0ZjdiODMzMTQuLjdiMGQ0NzFk
MDg4MTdiNTlkZmUzNDJmNGU1N2FjZjU2NjViNWJlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTEwOCw2ICsxMDgsOSBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFN0cmluZyBwY21NYWNoU2VydmljZU5hbWU7CiAgICAgU3RyaW5n
IHdlYlB1c2hNYWNoU2VydmljZU5hbWU7CiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERlYnVnTW9kZSB7IGZhbHNlIH07CisjaWYgIUhBVkUoTlNVUkxTRVNTSU9OX1dFQlNP
Q0tFVCkKKyAgICBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyB7
IGZhbHNlIH07CisjZW5kaWYKIAogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCmluZGV4IDhlMzA0
NDhlMGQ3MmM2MWY2MDUwNmY3NTg1NTliNzkwZDRhN2JkYTYuLjI1NzU4MjE0YmVhZDgyNjU2MDFk
MGZiZjg0MjUyOWZhMmQzYzM0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcApAQCAtMzUsMTUgKzM1LDE1IEBACiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8TmV0d29ya1Nv
Y2tldFN0cmVhbT4gTmV0d29ya1NvY2tldFN0cmVhbTo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgVVJMJiYgdXJsLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRU
b2tlbiYmIGF1ZGl0RGF0YSkKK1JlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBOZXR3b3JrU29ja2V0
U3RyZWFtOjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBVUkwmJiB1cmws
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0
aW9uLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhLCBib29sIGFj
Y2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5l
dHdvcmtTb2NrZXRTdHJlYW0obmV0d29ya1Byb2Nlc3MsIFdURk1vdmUodXJsKSwgc2Vzc2lvbklE
LCBjcmVkZW50aWFsUGFydGl0aW9uLCBpZGVudGlmaWVyLCBjb25uZWN0aW9uLCBXVEZNb3ZlKGF1
ZGl0RGF0YSkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrU29ja2V0U3RyZWFt
KG5ldHdvcmtQcm9jZXNzLCBXVEZNb3ZlKHVybCksIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRp
dGlvbiwgaWRlbnRpZmllciwgY29ubmVjdGlvbiwgV1RGTW92ZShhdWRpdERhdGEpLCBhY2NlcHRJ
bnNlY3VyZUNlcnRpZmljYXRlcykpOwogfQogCi1OZXR3b3JrU29ja2V0U3RyZWFtOjpOZXR3b3Jr
U29ja2V0U3RyZWFtKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgVVJMJiYgdXJsLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlv
biwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSkKK05ldHdvcmtT
b2NrZXRTdHJlYW06Ok5ldHdvcmtTb2NrZXRTdHJlYW0oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBVUkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYg
YXVkaXREYXRhLCBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKQogICAgIDogbV9pZGVu
dGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKLSAgICAs
IG1faW1wbChTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUodXJsLCAqdGhpcywgc2Vzc2lv
bklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSksIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyOjpjcmVhdGUobmV0d29ya1Byb2Nlc3MsIHNlc3Npb25JRCkucHRy
KCkpKQorICAgICwgbV9pbXBsKFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZSh1cmwsICp0
aGlzLCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVkaXREYXRhKSwg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXI6OmNyZWF0ZShuZXR3b3JrUHJvY2Vzcywgc2Vz
c2lvbklEKS5wdHIoKSwgYWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMpKQogICAgICwgbV9kZWxh
eUZhaWxUaW1lcigqdGhpcywgJk5ldHdvcmtTb2NrZXRTdHJlYW06OnNlbmREZWxheWVkRmFpbE1l
c3NhZ2UpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRTdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldFN0cmVhbS5oCmluZGV4IGUyNTY5ODQyNjZjZTVlZWNmMTUwMjhhNTIzZjZhYWNkODNh
NmFlYjEuLjQxMDFhZDlkZjg2YThjYWU3Mzc4ZDA0NTVmNzMyNDg5NTUxMTBmMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oCkBA
IC00Niw3ICs0Niw3IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBjbGFzcyBOZXR3b3JrU29j
a2V0U3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1NvY2tldFN0cmVhbT4sIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGlj
IFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBVUkwmJiwg
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgV2ViQ29y
ZTo6V2ViU29ja2V0SWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuJiYpOworICAgIHN0YXRpYyBSZWY8TmV0d29ya1NvY2tldFN0
cmVhbT4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgVVJMJiYsIFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZp
ZXIsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
biYmLCBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKTsKICAgICB+TmV0d29ya1NvY2tl
dFN0cmVhbSgpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdWlu
dDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKIAotICAgIE5l
dHdvcmtTb2NrZXRTdHJlYW0oTmV0d29ya1Byb2Nlc3MmLCBVUkwmJiwgUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgV2ViQ29yZTo6V2ViU29ja2V0SWRl
bnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNlQXBwbGljYXRpb25BdWRp
dFRva2VuJiYpOworICAgIE5ldHdvcmtTb2NrZXRTdHJlYW0oTmV0d29ya1Byb2Nlc3MmLCBVUkwm
JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgV2Vi
Q29yZTo6V2ViU29ja2V0SWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291
cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYsIGJvb2wgYWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0
ZXMpOwogCiAgICAgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgSVBDOjpDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCmluZGV4IDRkNzVjNGMwZjljNzQ5MTM0MDY4ZmJjZmE3NzlkMmI4NjM5
OTRkOTQuLjFmZTliNjkxMDVmNDgxNmRjNWMxN2FiYmMyMzhlNTkyOTE5YjU5YjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC01NCw2ICs1NCw5IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHJlcXVpcmVzU2VjdXJlSFRUUFNQcm94eUNvbm5lY3Rpb24gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCisvLyBGSVhNRTog
cmRhcjovLzg2NjQxOTQ4IFJlbW92ZSBhY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNv
Y2tldHMgb25jZSBIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpIGlzIHN1cHBvcnRlZCBvbiBh
bGwgQ29jb2EgcGxhdGZvcm1zLgorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNj
ZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOikgQk9PTCBfYWNjZXB0SW5zZWN1
cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBtYWtl
IHNlbnNlIGZvciBwZXJzaXN0ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8gYW4g
ZXhjZXB0aW9uIGlmIHNldCBmb3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0V2ViU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpf
d2ViU3RvcmFnZURpcmVjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5tbQppbmRleCA5Y2Y3OTVjNWMxYjI1NzBkYTI4MzcwZDRlMmQwNDg2M2IzZGE4MDliLi40YzRl
MDk5ODY5NzU5YWUzNWJkNGZmN2EwNjcwNzg0OTk3MmVmNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCkBAIC00OTYsNiArNDk2LDI0IEBAIHN0YXRpYyB2b2lk
IGNoZWNrVVJMQXJndW1lbnQoTlNVUkwgKnVybCkKICAgICBfY29uZmlndXJhdGlvbi0+c2V0U2hv
dWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKHNob3VsZFJ1bk9uTWFp
blRocmVhZCk7CiB9CiAKKy0gKEJPT0wpX2FjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2Vi
U29ja2V0cworeworI2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgcmV0dXJu
IF9jb25maWd1cmF0aW9uLT5hY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMo
KTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKy0gKHZvaWQpX3NldEFj
Y2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0czooQk9PTClhY2NlcHQKK3sKKyNp
ZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQorICAgIF9jb25maWd1cmF0aW9uLT5zZXRB
Y2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMoYWNjZXB0KTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGFjY2VwdCk7CisjZW5kaWYKK30KKwogLSAodm9pZClzZXRQcm94eUNv
bmZpZ3VyYXRpb246KE5TRGljdGlvbmFyeSAqKWNvbmZpZ3VyYXRpb24KIHsKICAgICBfY29uZmln
dXJhdGlvbi0+c2V0UHJveHlDb25maWd1cmF0aW9uKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYp
W2NvbmZpZ3VyYXRpb24gY29weV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAyNTZiODg3NDAzZGFm
NjVkNGJhMWJlNWExOGY0NWVlZGVjYjc4N2Q2Li5iYzI4NDkyZTcyNTQ0OTkwYWRkNTcxN2QyMjk2
ZjkzNzczYTA0OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTg4MCw2ICsxODgwLDkgQEAgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAg
ICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENl
cnRpZmljYXRlID0gbV9jb25maWd1cmF0aW9uLT5hbGxvd3NIU1RTV2l0aFVudHJ1c3RlZFJvb3RD
ZXJ0aWZpY2F0ZSgpOwogICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5wY21NYWNoU2Vydmlj
ZU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPnBjbU1hY2hTZXJ2aWNlTmFtZSgpOwogICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy53ZWJQdXNoTWFjaFNlcnZpY2VOYW1lID0gbV9jb25maWd1cmF0
aW9uLT53ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKCk7CisjaWYgIUhBVkUoTlNVUkxTRVNTSU9OX1dF
QlNPQ0tFVCkKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWNjZXB0SW5zZWN1cmVDZXJ0
aWZpY2F0ZXNGb3JXZWJTb2NrZXRzID0gbV9jb25maWd1cmF0aW9uLT5hY2NlcHRJbnNlY3VyZUNl
cnRpZmljYXRlc0ZvcldlYlNvY2tldHMoKTsKKyNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAppbmRleCAxZjg1YWE2
OTUyM2I4Yjg3MmMzYjQ0ZTA0M2M5MWEwMDc3N2NlNmU0Li4yNDI0YWUwN2M1NjZjNTJmZTliMGM2
YWRhMDhhNDgxMzBiNmE5Y2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24uY3BwCkBAIC0xMTUsNiArMTE1LDkgQEAgUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uPiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Y29weSgpIGNvbnN0CiAjaWYgRU5B
QkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIGNvcHktPm1fbW9kZWxFbGVtZW50Q2FjaGVE
aXJlY3RvcnkgPSB0aGlzLT5tX21vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OwogI2VuZGlmCisj
aWYgIUhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKKyAgICBjb3B5LT5tX2FjY2VwdEluc2Vj
dXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyA9IHRoaXMtPm1fYWNjZXB0SW5zZWN1cmVDZXJ0
aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOworI2VuZGlmCiAKICAgICByZXR1cm4gY29weTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCmluZGV4IGUyM2IyMzY5ZWQzYWY3ZWM2
NzA4ZTBiYzcxOTNkMmM0MDYwNjFkMzUuLjg5Y2I0Yjg4MWE0ODQ4MjcyNzE0YWMwZjU3NDUzOGQ4
NTJiNGY2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtMTk3
LDYgKzE5NywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXZWJQdXNoTWFjaFNlcnZpY2VOYW1l
KFN0cmluZyYmIG5hbWUpIHsgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lID0gV1RGTW92ZShuYW1l
KTsgfQogICAgIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsgfQogCisjaWYgIUhBVkUoTlNVUkxTRVNT
SU9OX1dFQlNPQ0tFVCkKKyAgICBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2Vi
U29ja2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JX
ZWJTb2NrZXRzOyB9CisgICAgdm9pZCBzZXRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0Zvcldl
YlNvY2tldHMoYm9vbCBhY2NlcHQpIHsgbV9hY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0Zvcldl
YlNvY2tldHMgPSBhY2NlcHQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIElzUGVyc2lzdGVu
dCBtX2lzUGVyc2lzdGVudCB7IElzUGVyc2lzdGVudDo6Tm8gfTsKIApAQCAtMjUzLDYgKzI1OCw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93c0hTVFNXaXRoVW50cnVzdGVkUm9vdENlcnRp
ZmljYXRlIHsgZmFsc2UgfTsKICAgICBTdHJpbmcgbV9wY21NYWNoU2VydmljZU5hbWU7CiAgICAg
U3RyaW5nIG1fd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZTsKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05f
V0VCU09DS0VUKQorICAgIGJvb2wgbV9hY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNv
Y2tldHMgeyBmYWxzZSB9OworI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="473128"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447492</attachid>
            <date>2021-12-17 16:28:50 -0800</date>
            <delta_ts>2022-01-07 13:53:29 -0800</delta_ts>
            <desc>Patch v2.1 - Implement naming suggestion, fix non-Cocoa builds</desc>
            <filename>bug-234403-20211217162849.patch</filename>
            <type>text/plain</type>
            <size>26906</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlOWEwYmQ5MGUzYWZh
Yzk3NWZmNTBkZTRmYTg0NWY4ZjZiM2YxMi4uNDlhZDQ1ZTZhNTYyMTBmZTc5Mzg4OGM5NTlkODIw
YmQ0ODRkODM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEyLTE3ICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFdlYiBEcml2
ZXI6IFdlYlNvY2tldCBvdmVyIFRMUyBmYWlsaW5nIG92ZXIgV2ViRHJpdmVyIHdpdGggYWNjZXB0
SW5zZWN1cmVDZXJ0cyBvbiBCaWcgU3VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQ0MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhZ2UvU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmg6CisgICAgICAg
IChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OlNvY2tldFN0cmVhbUhhbmRsZUlt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6Y3JlYXRlU3Ry
ZWFtcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUlt
cGwuaDoKKwogMjAyMS0xMi0xNCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgog
CiAgICAgICAgIE1ha2UgUHJldmlld0NvbnZlcnRlclByb3ZpZGVyIG5vdCBtb2RpZnkgdGhlIFNo
YXJlZEJ1ZmZlciBvbmNlIHJldHVybmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3ZjI4Y2NlMDViNTY3ZjFiZjdj
YjEzNjEyZTU0ZTFkYzVmMDAzOWUuLjAxOGZkMTVlYWFmYjhhZThhZmRjNzdlYzQwMDJmMTFlZWM4
YWJmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTItMTcgIFBhdHJpY2sgQW5n
bGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIERyaXZlcjogV2Vi
U29ja2V0IG92ZXIgVExTIGZhaWxpbmcgb3ZlciBXZWJEcml2ZXIgd2l0aCBhY2NlcHRJbnNlY3Vy
ZUNlcnRzIG9uIEJpZyBTdXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNDQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgbWFjT1MgQmlnIFN1ciBhbmQgZWFybGllciBkbyBub3QgdXNlIE5T
VVJMU2Vzc2lvbi1iYXNlZCBXZWJTb2NrZXRzLCBzbyB3ZSBuZWVkIGEgd2F5IHRvIGFsbG93IGlu
c2VjdXJlCisgICAgICAgIGNlcnRpZmljYXRlcyB1bmRlciBhdXRvbWF0aW9uIHRoYXQgZG9lcyBu
b3QgcmVseSBvbiB0aGUgYFdLTmF2aWdhdGlvbkRlbGVnYXRlYCB0byBkZXRlcm1pbmUgaWYgYW4K
KyAgICAgICAgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIHNob3VsZCBiZSBhY2NlcHRlZC4gSW4g
b3JkZXIgdG8gYWNjb21wbGlzaCB0aGlzIHdlIG5vdyBwbHVtYiB0aHJvdWdoIGFuCisgICAgICAg
IGBfc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzYCB2YWx1ZSBm
cm9tIGBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb25gIHRvCisgICAgICAgIGBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXRgIG9uIHBsYXRmb3JtcyB0aGF0IGRvIG5vdCBgSEFWRShO
U1VSTFNFU1NJT05fV0VCU09DS0VUKWAsIHdoaWNoIGFsbG93cyBhdXRvbWF0aW9uCisgICAgICAg
IGNsaWVudHMgdG8gZW5hYmxlIHRoaXMgYmVoYXZpb3Igd2hlbiB0aGUgYGFjY2VwdEluc2VjdXJl
Q2VydHNgIGNhcGFiaWxpdHkgaXMgc2V0IG9uIGEgc2Vzc2lvbi4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldFN0cmVhbSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjpzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMgY29uc3Qp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldFN0cmVhbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJl
YW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRTdHJlYW06Ok5ldHdv
cmtTb2NrZXRTdHJlYW0pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRT
dHJlYW0uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gX3Nob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2Vi
U29ja2V0c10pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBf
c2V0U2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkgY29uc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6c2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldFNob3Vs
ZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyk6CisKIDIwMjEtMTItMTQg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgcHJvcGVydGllcyBzZXQgYnkgTlNVUkxQcm90b2NvbCBvbiBOU1VSTFJlcXVlc3QgYmVm
b3JlIHNlcmlhbGl6aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFBy
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCmluZGV4
IDNiZWMwYWVmMTc0MzM2OTM5ODM4ZmIxMDY5ZmZmYmNiOWYzZDU2MDQuLjc2OTMwNTY3NDU4NjFl
MGRmMTM2N2ZmNDRkYTU1YmNmODY5YTA3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU29ja2V0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJv
dmlkZXIuY3BwCkBAIC0zMyw3ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIFJl
ZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1I
YW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBX
ZWJTb2NrZXRJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgY29uc3QgU3RvcmFnZVNlc3Npb25Qcm92aWRlciogcHJv
dmlkZXIpCiB7Ci0gICAgcmV0dXJuIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZSh1cmws
IGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCB7IH0sIHByb3ZpZGVyKTsK
KyAgICBzdGF0aWMgY29uc3QgYXV0byBzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyA9
IGZhbHNlOworICAgIHJldHVybiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGUodXJsLCBj
bGllbnQsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgeyB9LCBwcm92aWRlciwgc2hv
dWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMpOwogfQogCiBSZWZQdHI8VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw+IFNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKERv
Y3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCmlu
ZGV4IDczMzBhYTkzMzkyNDc5MWYxMjkyYzA4NDc5MjFlM2IzNjc0OTNkOTYuLmZkMTVkOGUwNzkz
YjJjMTY2MTM5YmQzMzMyNDNjZjJjYWNlZWM2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCkBA
IC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKIAogY2xhc3Mg
U29ja2V0U3RyZWFtSGFuZGxlSW1wbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5kbGUgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0
IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFw
cGxpY2F0aW9uQXVkaXRUb2tlbiYmIGF1ZGl0RGF0YSwgY29uc3QgU3RvcmFnZVNlc3Npb25Qcm92
aWRlciogcHJvdmlkZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbCh1cmwsIGNsaWVudCwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFydGl0aW9uLCBXVEZNb3Zl
KGF1ZGl0RGF0YSksIHByb3ZpZGVyKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNvY2tldFN0cmVhbUhh
bmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGNv
bnN0IFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIqIHByb3ZpZGVyLCBib29sIHNob3VsZEFjY2VwdElu
c2VjdXJlQ2VydGlmaWNhdGVzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNvY2tldFN0cmVhbUhh
bmRsZUltcGwodXJsLCBjbGllbnQsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgV1RG
TW92ZShhdWRpdERhdGEpLCBwcm92aWRlciwgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0
ZXMpKTsgfQogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFtSGFuZGxlSW1wbCgpOwogCkBAIC02
MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHBsYXRmb3Jt
U2VuZEludGVybmFsKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwogICAgIGJvb2wgc2VuZFBlbmRp
bmdEYXRhKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsKGNv
bnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tl
biYmLCBjb25zdCBTdG9yYWdlU2Vzc2lvblByb3ZpZGVyKik7CisgICAgV0VCQ09SRV9FWFBPUlQg
U29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBT
b3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiwgY29uc3QgU3RvcmFnZVNlc3Npb25Qcm92aWRl
ciosIGJvb2wgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMpOwogICAgIHZvaWQgY3Jl
YXRlU3RyZWFtcygpOwogICAgIHZvaWQgc2NoZWR1bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBjaG9v
c2VQcm94eSgpOwpAQCAtOTksNiArOTksNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPENG
SFRUUE1lc3NhZ2VSZWY+IG1fcHJveHlSZXNwb25zZU1lc3NhZ2U7CiAgICAgYm9vbCBtX3NlbnRT
dG9yZWRDcmVkZW50aWFsczsKKyAgICBib29sIG1fc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZp
Y2F0ZXM7CiAgICAgUmV0YWluUHRyPENGUmVhZFN0cmVhbVJlZj4gbV9yZWFkU3RyZWFtOwogICAg
IFJldGFpblB0cjxDRldyaXRlU3RyZWFtUmVmPiBtX3dyaXRlU3RyZWFtOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZUlt
cGxDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAKaW5kZXggMzExYWVmMmQ4MGZlNzMzNmNkOGU1MTEzYzM5
ZDk1MGRiOGY0Mzk0Yy4uYWVlMjY2ZTQ0OTg2ZGQ5NWY4NWYxNTBjZWQxNzJjZGQ2YWZiMWE1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJl
YW1IYW5kbGVJbXBsQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcApAQCAtOTYsMTEgKzk2LDEyIEBA
IHN0YXRpYyBpbmxpbmUgYXV0byBjYWxsYmFja3NSdW5Mb29wTW9kZSgpCiAjZW5kaWYKIH0KIAot
U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbChjb25zdCBVUkwm
IHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBTb3VyY2VBcHBsaWNh
dGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGNvbnN0IFN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIq
IHByb3ZpZGVyKQorU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6U29ja2V0U3RyZWFtSGFuZGxlSW1w
bChjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBT
b3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGNvbnN0IFN0b3JhZ2VTZXNz
aW9uUHJvdmlkZXIqIHByb3ZpZGVyLCBib29sIGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKQog
ICAgIDogU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KQogICAgICwgbV9jb25uZWN0aW5n
U3Vic3RhdGUoTmV3KQogICAgICwgbV9jb25uZWN0aW9uVHlwZShVbmtub3duKQogICAgICwgbV9z
ZW50U3RvcmVkQ3JlZGVudGlhbHMoZmFsc2UpCisgICAgLCBtX3Nob3VsZEFjY2VwdEluc2VjdXJl
Q2VydGlmaWNhdGVzKGFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKQogICAgICwgbV9jcmVkZW50
aWFsUGFydGl0aW9uKGNyZWRlbnRpYWxQYXJ0aXRpb24pCiAgICAgLCBtX2F1ZGl0RGF0YShXVEZN
b3ZlKGF1ZGl0RGF0YSkpCiAgICAgLCBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIocHJvdmlkZXIp
CkBAIC0zNTcsNyArMzU4LDggQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpjcmVhdGVT
dHJlYW1zKCkKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXNlU1NMKCkpIHsKLSAgICAgICAgQ0ZC
b29sZWFuUmVmIHZhbGlkYXRlQ2VydGlmaWNhdGVDaGFpbiA9IERlcHJlY2F0ZWRHbG9iYWxTZXR0
aW5nczo6YWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKSA/IGtDRkJvb2xlYW5GYWxzZSA6IGtDRkJv
b2xlYW5UcnVlOworICAgICAgICAvLyBGSVhNRTogcmRhcjovLzg2NjQxOTQ4IFJlbW92ZSBzaG91
bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMgb25jZSBIQVZFKE5TVVJM
U0VTU0lPTl9XRUJTT0NLRVQpIGlzIHN1cHBvcnRlZCBvbiBhbGwgQ29jb2EgcGxhdGZvcm1zLgor
ICAgICAgICBDRkJvb2xlYW5SZWYgdmFsaWRhdGVDZXJ0aWZpY2F0ZUNoYWluID0gRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjphbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSgpIHx8IG1fc2hvdWxkQWNj
ZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMgPyBrQ0ZCb29sZWFuRmFsc2UgOiBrQ0ZCb29sZWFuVHJ1
ZTsKICAgICAgICAgY29uc3Qgdm9pZCoga2V5c1tdID0gewogICAgICAgICAgICAga0NGU3RyZWFt
U1NMUGVlck5hbWUsCiAgICAgICAgICAgICBrQ0ZTdHJlYW1TU0xMZXZlbCwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oCmluZGV4IGI4MDRmZGUwOTczYmJmYjI4MzMxY2Y3YzNhMWYyMGIwNDNlNzRm
ZTguLjYzMGE5MzMzMDg1YmEyOGJiMjZjM2M0MDYwZDMxZDI3NDQ1OGQ1MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0
cmVhbUhhbmRsZUltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTdG9yYWdlU2Vzc2lvblBy
b3ZpZGVyOwogCiBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsIDogcHVibGljIFNvY2tldFN0
cmVhbUhhbmRsZSwgcHVibGljIEN1cmxTdHJlYW06OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYsIGNvbnN0IFN0b3JhZ2VTZXNzaW9u
UHJvdmlkZXIqIHByb3ZpZGVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNvY2tldFN0cmVhbUhh
bmRsZUltcGwodXJsLCBjbGllbnQsIHByb3ZpZGVyKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNvY2tl
dFN0cmVhbUhhbmRsZUltcGw+IGNyZWF0ZShjb25zdCBVUkwmIHVybCwgU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50JiBjbGllbnQsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmLCBTb3VyY2VB
cHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiwgY29uc3QgU3RvcmFnZVNlc3Npb25Qcm92aWRlciogcHJv
dmlkZXIsIGJvb2wpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU29ja2V0U3RyZWFtSGFuZGxlSW1w
bCh1cmwsIGNsaWVudCwgcHJvdmlkZXIpKTsgfQogCiAgICAgdmlydHVhbCB+U29ja2V0U3RyZWFt
SGFuZGxlSW1wbCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGwuaAppbmRleCA4OGRmMzc0OGU5
ODBhMjJlNzFiZDgzNTg2NGNhZjI0YjZiN2VhNTBiLi4wOWU1MDdlMjcxMzM5OTU0MDBmODgyNTY1
MDZiZjQ5MmIzN2NhNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAgY2xhc3MgU3RvcmFnZVNlc3Npb25Qcm92aWRlcjsKIAogY2xhc3MgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbCBmaW5hbCA6IHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5kbGUgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U29ja2V0U3RyZWFtSGFuZGxlSW1wbD4gY3JlYXRlKGNvbnN0IFVSTCYs
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
LCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiwgY29uc3QgU3RvcmFnZVNlc3Npb25Qcm92
aWRlciopCisgICAgc3RhdGljIFJlZjxTb2NrZXRTdHJlYW1IYW5kbGVJbXBsPiBjcmVhdGUoY29u
c3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYsIFNvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbiYmLCBjb25zdCBTdG9yYWdlU2Vz
c2lvblByb3ZpZGVyKiwgYm9vbCkKICAgICB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBiODgwYjc2
YjczMGVlNDU5YzNmMTlkYzI1ZmVmYTIxYTEwM2U2NjQ4Li5iMGY5NzM3NzRhMTlmZTFiOWQyZDIz
OWQ1NjQ0YThmODQ4YzIxZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDI1
LDcgKzQyNSwxMiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVT
b2NrZXRTdHJlYW0oVVJMJiYgdXJsLCBTdHJpbmcgY2FjaGVQYQogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHRva2VuID0geyBtX25ldHdvcmtQcm9jZXNzLT5zb3VyY2VBcHBsaWNhdGlvbkF1ZGl0
RGF0YSgpIH07CiAjZW5kaWYKLSAgICBtX25ldHdvcmtTb2NrZXRTdHJlYW1zLmFkZChpZGVudGlm
aWVyLCBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUobV9uZXR3b3JrUHJvY2Vzcy5nZXQoKSwg
V1RGTW92ZSh1cmwpLCBtX3Nlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlkZW50aWZpZXIsIG1f
Y29ubmVjdGlvbiwgV1RGTW92ZSh0b2tlbikpKTsKKyAgICBhdXRvIGFjY2VwdEluc2VjdXJlQ2Vy
dGlmaWNhdGVzID0gZmFsc2U7CisjaWYgIUhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKKyAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCkpCisgICAgICAgIGFjY2VwdElu
c2VjdXJlQ2VydGlmaWNhdGVzID0gc2Vzc2lvbi0+c2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZp
Y2F0ZXNGb3JXZWJTb2NrZXRzKCk7CisjZW5kaWYKKyAgICBtX25ldHdvcmtTb2NrZXRTdHJlYW1z
LmFkZChpZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUobV9uZXR3b3JrUHJv
Y2Vzcy5nZXQoKSwgV1RGTW92ZSh1cmwpLCBtX3Nlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlk
ZW50aWZpZXIsIG1fY29ubmVjdGlvbiwgV1RGTW92ZSh0b2tlbiksIGFjY2VwdEluc2VjdXJlQ2Vy
dGlmaWNhdGVzKSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNy
ZWF0ZVNvY2tldENoYW5uZWwoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsICBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBmYTAzMGVlNTgwNGQ1YmY5N2U5NTQ3
NWYxMDgzMDRjZWRiZTAzNzEzLi5kNWRlNWRjMzc3NTM4NzhlYzliOTljYTFkY2VhZTNjNjc2OWI5
MzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcApAQCAtMTI3LDYgKzEyNyw5IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihO
ZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAjaWYgRU5B
QkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCiAgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFnZXIo
KnRoaXMsIHBhcmFtZXRlcnMud2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSkKICNlbmRpZgorI2lmICFI
QVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgLCBtX3Nob3VsZEFjY2VwdEluc2VjdXJl
Q2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyhwYXJhbWV0ZXJzLnNob3VsZEFjY2VwdEluc2VjdXJl
Q2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cykKKyNlbmRpZgogewogICAgIGlmICghbV9zZXNzaW9u
SUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBTdHJpbmcgbmV0d29ya0NhY2hlRGlyZWN0b3J5
ID0gcGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggNGI4MGU1MjhhNDRjOGQwNzRkZWY4
ODU0NzY0MDAxMTg2M2VhM2U0YS4uN2YzYjNjZjIxOGRjYWY0MjFhMzdmYjgwZmE2MzJlZTkwZjZl
OTdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aApAQCAtMjA1LDYgKzIwNSwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEJVSUxUX0lOX05PVElG
SUNBVElPTlMpCiAgICAgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXImIG5vdGlmaWNhdGlvbk1h
bmFnZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbk1hbmFnZXI7IH0KICNlbmRpZgorICAgIAor
I2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgYm9vbCBzaG91bGRBY2NlcHRJ
bnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMoKSBjb25zdCB7IHJldHVybiBtX3Nob3Vs
ZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0czsgfQorI2VuZGlmCiAKIHBy
b3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYsIGNvbnN0IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJik7CkBAIC0yNzgsNiArMjgyLDkgQEAgcHJvdGVj
dGVkOgogI2lmIEVOQUJMRShCVUlMVF9JTl9OT1RJRklDQVRJT05TKQogICAgIE5ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKICNlbmRpZgorI2lmICFIQVZF
KE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgYm9vbCBtX3Nob3VsZEFjY2VwdEluc2VjdXJl
Q2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAw
OWExNWM4Nzg5N2MxMDNjNzIwMDMzNzYyOTIwYjFkNzc3NDBlZjQ2Li4yZjA5YTVlOGQzYWUxNmEx
Y2Y0ZDFlNzQxMWE0MDYwY2RkOGRmNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtOTIsNiArOTIsOSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
cGNtTWFjaFNlcnZpY2VOYW1lOwogICAgIGVuY29kZXIgPDwgd2ViUHVzaE1hY2hTZXJ2aWNlTmFt
ZTsKICAgICBlbmNvZGVyIDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVidWdNb2Rl
OworI2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgZW5jb2RlciA8PCBzaG91
bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHM7CisjZW5kaWYKICAgICBl
bmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOwogfQogCkBAIC0zMjQs
NiArMzI3LDEzIEBAIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgaWYgKCFlbmFibGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAorI2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgc3RkOjpvcHRpb25h
bDxib29sPiBzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHM7Cisg
ICAgZGVjb2RlciA+PiBzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tl
dHM7CisgICAgaWYgKCFzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tl
dHMpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZW5kaWYKKwogICAgIHN0ZDo6b3B0
aW9uYWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bh
cmFtZXRlcnM7CiAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKQEAg
LTM4Miw2ICszOTIsOSBAQCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJh
bWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycwogICAgICAgICAsIFdURk1v
dmUoKnBjbU1hY2hTZXJ2aWNlTmFtZSkKICAgICAgICAgLCBXVEZNb3ZlKCp3ZWJQdXNoTWFjaFNl
cnZpY2VOYW1lKQogICAgICAgICAsIFdURk1vdmUoKmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVt
ZW50RGVidWdNb2RlKQorI2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgICAg
ICwgV1RGTW92ZSgqc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRz
KQorI2VuZGlmCiAgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMpCiAgICAgfX07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMmJh
YTcyNDQ0YjhjYTk3YTExYjUxNmQzODIzNWI1YjRmN2I4MzMxNC4uMzQwYjQzNDgxZDI1NzdhNjIz
Mzc1M2JmNGQ2NDFjMDUxNmY4NWU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMTA4LDYgKzEwOCw5IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyB7CiAgICAgU3RyaW5nIHBjbU1hY2hTZXJ2aWNlTmFtZTsKICAgICBTdHJpbmcgd2ViUHVzaE1h
Y2hTZXJ2aWNlTmFtZTsKICAgICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50RGVi
dWdNb2RlIHsgZmFsc2UgfTsKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQorICAg
IGJvb2wgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzIHsgZmFs
c2UgfTsKKyNlbmRpZgogCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5jcHAKaW5kZXggOGUzMDQ0OGUw
ZDcyYzYxZjYwNTA2Zjc1ODU1OWI3OTBkNGE3YmRhNi4uMjAyNjIwZDkxZDRkYjU3ZThjYTFlMTg2
YTIxNDE0MmUyM2Q4YWZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU29ja2V0U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0uY3BwCkBAIC0zNSwxNSArMzUsMTUgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxOZXR3b3JrU29ja2V0
U3RyZWFtPiBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBVUkwmJiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3Ry
aW5nJiBjcmVkZW50aWFsUGFydGl0aW9uLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2Vu
JiYgYXVkaXREYXRhKQorUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IE5ldHdvcmtTb2NrZXRTdHJl
YW06OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFVSTCYmIHVybCwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24s
IFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiBhdWRpdERhdGEsIGJvb2wgc2hvdWxk
QWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0d29ya1NvY2tldFN0cmVhbShuZXR3b3JrUHJvY2VzcywgV1RGTW92ZSh1cmwpLCBzZXNzaW9u
SUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIGlkZW50aWZpZXIsIGNvbm5lY3Rpb24sIFdURk1vdmUo
YXVkaXREYXRhKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtTb2NrZXRTdHJl
YW0obmV0d29ya1Byb2Nlc3MsIFdURk1vdmUodXJsKSwgc2Vzc2lvbklELCBjcmVkZW50aWFsUGFy
dGl0aW9uLCBpZGVudGlmaWVyLCBjb25uZWN0aW9uLCBXVEZNb3ZlKGF1ZGl0RGF0YSksIHNob3Vs
ZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzKSk7CiB9CiAKLU5ldHdvcmtTb2NrZXRTdHJlYW06
Ok5ldHdvcmtTb2NrZXRTdHJlYW0oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBVUkwm
JiB1cmwsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFs
UGFydGl0aW9uLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgU291cmNlQXBwbGljYXRpb25BdWRpdFRva2VuJiYgYXVkaXREYXRhKQor
TmV0d29ya1NvY2tldFN0cmVhbTo6TmV0d29ya1NvY2tldFN0cmVhbShOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIFVSTCYmIHVybCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0
VG9rZW4mJiBhdWRpdERhdGEsIGJvb2wgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXMp
CiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihjb25u
ZWN0aW9uKQotICAgICwgbV9pbXBsKFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmNyZWF0ZSh1cmws
ICp0aGlzLCBzZXNzaW9uSUQsIGNyZWRlbnRpYWxQYXJ0aXRpb24sIFdURk1vdmUoYXVkaXREYXRh
KSwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXI6OmNyZWF0ZShuZXR3b3JrUHJvY2Vzcywg
c2Vzc2lvbklEKS5wdHIoKSkpCisgICAgLCBtX2ltcGwoU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6
Y3JlYXRlKHVybCwgKnRoaXMsIHNlc3Npb25JRCwgY3JlZGVudGlhbFBhcnRpdGlvbiwgV1RGTW92
ZShhdWRpdERhdGEpLCBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlcjo6Y3JlYXRlKG5ldHdv
cmtQcm9jZXNzLCBzZXNzaW9uSUQpLnB0cigpLCBzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmlj
YXRlcykpCiAgICAgLCBtX2RlbGF5RmFpbFRpbWVyKCp0aGlzLCAmTmV0d29ya1NvY2tldFN0cmVh
bTo6c2VuZERlbGF5ZWRGYWlsTWVzc2FnZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtLmgKaW5kZXggZTI1Njk4NDI2NmNlNWVl
Y2YxNTAyOGE1MjNmNmFhY2Q4M2E2YWViMS4uMDk2ZjUyMzkyYWIzZWU4YTkwZWJkYmJiMzk5YTc1
ZTA4NzdmNGY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0U3RyZWFtLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3M7
CiAKIGNsYXNzIE5ldHdvcmtTb2NrZXRTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3Jr
U29ja2V0U3RyZWFtPiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtTb2NrZXRTdHJlYW0+IGNyZWF0ZShOZXR3
b3JrUHJvY2VzcyYsIFVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50
aWFsUGFydGl0aW9uLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgc3RhdGlj
IFJlZjxOZXR3b3JrU29ja2V0U3RyZWFtPiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBVUkwmJiwg
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbFBhcnRpdGlvbiwgV2ViQ29y
ZTo6V2ViU29ja2V0SWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuJiYsIGJvb2wgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZp
Y2F0ZXMpOwogICAgIH5OZXR3b3JrU29ja2V0U3RyZWFtKCk7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpAQCAtNjgsNyArNjgs
NyBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBjb25zdCBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0IGZpbmFsOwogCi0gICAgTmV0d29ya1NvY2tldFN0cmVhbShOZXR3b3JrUHJvY2Vz
cyYsIFVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsUGFydGl0
aW9uLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJD
b3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJik7CisgICAgTmV0d29ya1NvY2tldFN0
cmVhbShOZXR3b3JrUHJvY2VzcyYsIFVSTCYmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBjcmVkZW50aWFsUGFydGl0aW9uLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTb3VyY2VBcHBsaWNhdGlvbkF1ZGl0VG9rZW4mJiwgYm9v
bCBzaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyk7CiAKICAgICBXZWJDb3JlOjpXZWJT
b2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29u
bmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggNGQ3
NWM0YzBmOWM3NDkxMzQwNjhmYmNmYTc3OWQyYjg2Mzk5NGQ5NC4uZjI4MGZjYjM3NWMyM2UyZDM1
Yzc2OTE5YjViZWUzNTEzNTQzZjEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmgKQEAgLTU0LDYgKzU0LDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEz
KSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZXNTZWN1cmVI
VFRQU1Byb3h5Q29ubmVjdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNP
bk1haW5UaHJlYWRGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKKy8vIEZJWE1FOiByZGFyOi8vODY2NDE5NDggUmVtb3ZlIGFj
Y2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyBvbmNlIEhBVkUoTlNVUkxTRVNT
SU9OX1dFQlNPQ0tFVCkgaXMgc3VwcG9ydGVkIG9uIGFsbCBDb2NvYSBwbGF0Zm9ybXMuCitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmlj
YXRlc0ZvcldlYlNvY2tldHM6KSBCT09MIF9zaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRl
c0ZvcldlYlNvY2tldHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKwogLy8gVGhlc2UgcHJvcGVydGllcyBvbmx5IG1ha2Ugc2Vuc2UgZm9yIHBl
cnNpc3RlbnQgZGF0YSBzdG9yZXMsIGFuZCB3aWxsIHRocm93CiAvLyBhbiBleGNlcHRpb24gaWYg
c2V0IGZvciBub24tcGVyc2lzdGVudCBzdG9yZXMuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKl93ZWJTdG9yYWdlRGly
ZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4IDlj
Zjc5NWM1YzFiMjU3MGRhMjgzNzBkNGUyZDA0ODYzYjNkYTgwOWIuLmRhNjQ3MDk3NjI0NzJlZGE5
OGU2OGZjNWI2YmU2ZjlkZTNhNWQ0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24ubW0KQEAgLTQ5Niw2ICs0OTYsMjQgQEAgc3RhdGljIHZvaWQgY2hlY2tVUkxBcmd1
bWVudChOU1VSTCAqdXJsKQogICAgIF9jb25maWd1cmF0aW9uLT5zZXRTaG91bGRSdW5TZXJ2aWNl
V29ya2Vyc09uTWFpblRocmVhZEZvclRlc3Rpbmcoc2hvdWxkUnVuT25NYWluVGhyZWFkKTsKIH0K
IAorLSAoQk9PTClfc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRz
Cit7CisjaWYgIUhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKKyAgICByZXR1cm4gX2NvbmZp
Z3VyYXRpb24tPnNob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cygp
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworLSAodm9pZClfc2V0U2hv
dWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzOihCT09MKWFjY2VwdAor
eworI2lmICFIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCisgICAgX2NvbmZpZ3VyYXRpb24t
PnNldFNob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cyhhY2NlcHQp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWNjZXB0KTsKKyNlbmRpZgorfQorCiAtICh2b2lk
KXNldFByb3h5Q29uZmlndXJhdGlvbjooTlNEaWN0aW9uYXJ5ICopY29uZmlndXJhdGlvbgogewog
ICAgIF9jb25maWd1cmF0aW9uLT5zZXRQcm94eUNvbmZpZ3VyYXRpb24oKF9fYnJpZGdlIENGRGlj
dGlvbmFyeVJlZilbY29uZmlndXJhdGlvbiBjb3B5XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDI1
NmI4ODc0MDNkYWY2NWQ0YmExYmU1YTE4ZjQ1ZWVkZWNiNzg3ZDYuLjU2MTBlMzQ4OTAzZjY2NjA2
ZTI1YjI3NDgxZmYyYzAyNDU5YzIyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xODgwLDYgKzE4
ODAsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJh
bWV0ZXJzKCkKICAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWxsb3dzSFNUU1dpdGhVbnRy
dXN0ZWRSb290Q2VydGlmaWNhdGUgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c0hTVFNXaXRoVW50
cnVzdGVkUm9vdENlcnRpZmljYXRlKCk7CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnBj
bU1hY2hTZXJ2aWNlTmFtZSA9IG1fY29uZmlndXJhdGlvbi0+cGNtTWFjaFNlcnZpY2VOYW1lKCk7
CiAgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLndlYlB1c2hNYWNoU2VydmljZU5hbWUgPSBt
X2NvbmZpZ3VyYXRpb24tPndlYlB1c2hNYWNoU2VydmljZU5hbWUoKTsKKyNpZiAhSEFWRShOU1VS
TFNFU1NJT05fV0VCU09DS0VUKQorICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRB
Y2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHMgPSBtX2NvbmZpZ3VyYXRpb24t
PnNob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29ja2V0cygpOworI2VuZGlm
CiAKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdURk1vdmUobmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uY3BwCmluZGV4IDFmODVhYTY5NTIzYjhiODcyYzNiNDRlMDQzYzkxYTAwNzc3Y2U2ZTQu
LmJlYTc1NzljZGZjZTA3OGI2NzU0OGExZDAxZGJmN2E0N2Y2ZjdhODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTExNSw2ICsxMTUsOSBAQCBSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
Ojpjb3B5KCkgY29uc3QKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAgY29w
eS0+bV9tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSA9IHRoaXMtPm1fbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3Rvcnk7CiAjZW5kaWYKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQor
ICAgIGNvcHktPm1fc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRz
ID0gdGhpcy0+bV9zaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHM7
CisjZW5kaWYKIAogICAgIHJldHVybiBjb3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgKaW5kZXggZTIzYjIzNjllZDNhZjdlYzY3MDhlMGJjNzE5M2QyYzQwNjA2MWQz
NS4uZjE3MWFkNGNlNWUxYjVjZTEzOTRlYzc4MDk1MjQxMDdmODJjMTc0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0xOTcsNiArMTk3LDExIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFdlYlB1c2hNYWNoU2VydmljZU5hbWUoU3RyaW5nJiYgbmFtZSkgeyBtX3dl
YlB1c2hNYWNoU2VydmljZU5hbWUgPSBXVEZNb3ZlKG5hbWUpOyB9CiAgICAgY29uc3QgU3RyaW5n
JiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQdXNoTWFjaFNl
cnZpY2VOYW1lOyB9CiAKKyNpZiAhSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQorICAgIGJv
b2wgc2hvdWxkQWNjZXB0SW5zZWN1cmVDZXJ0aWZpY2F0ZXNGb3JXZWJTb2NrZXRzKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRBY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlc0ZvcldlYlNvY2tldHM7
IH0KKyAgICB2b2lkIHNldFNob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9yV2ViU29j
a2V0cyhib29sIGFjY2VwdCkgeyBtX3Nob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVzRm9y
V2ViU29ja2V0cyA9IGFjY2VwdDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgSXNQZXJzaXN0
ZW50IG1faXNQZXJzaXN0ZW50IHsgSXNQZXJzaXN0ZW50OjpObyB9OwogCkBAIC0yNTMsNiArMjU4
LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWxsb3dzSFNUU1dpdGhVbnRydXN0ZWRSb290Q2Vy
dGlmaWNhdGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX3BjbU1hY2hTZXJ2aWNlTmFtZTsKICAg
ICBTdHJpbmcgbV93ZWJQdXNoTWFjaFNlcnZpY2VOYW1lOworI2lmICFIQVZFKE5TVVJMU0VTU0lP
Tl9XRUJTT0NLRVQpCisgICAgYm9vbCBtX3Nob3VsZEFjY2VwdEluc2VjdXJlQ2VydGlmaWNhdGVz
Rm9yV2ViU29ja2V0cyB7IGZhbHNlIH07CisjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKICNlbmRp
Zgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>