<?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>198227</bug_id>
          
          <creation_ts>2019-05-24 12:48:28 -0700</creation_ts>
          <short_desc>Resource Load Statistics: Downgrade document.referrer to the referrer&apos;s eTLD+1 if the page was navigated to with a prevalent resource referrer containing link decoration</short_desc>
          <delta_ts>2019-06-05 13:40:06 -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="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ehsan</cc>
    
    <cc>senglehardt</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539037</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-24 12:48:28 -0700</bug_when>
    <thetext>Reading document.referrer can be used to pass tracking information in cross-site navigations. We should downgrade document.referrer if the webpage was navigated to from a prevalent resource and the referrer has link decoration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539039</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-24 12:51:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/51117258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539105</commentid>
    <comment_count>2</comment_count>
      <attachid>370601</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-24 16:11:14 -0700</bug_when>
    <thetext>Created attachment 370601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539112</commentid>
    <comment_count>3</comment_count>
      <attachid>370605</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-24 16:29:10 -0700</bug_when>
    <thetext>Created attachment 370605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539113</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-24 16:29:32 -0700</bug_when>
    <thetext>WPE build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539203</commentid>
    <comment_count>5</comment_count>
      <attachid>370605</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-25 09:03:48 -0700</bug_when>
    <thetext>Comment on attachment 370605
Patch

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

r=me with a few comments.

&gt; Source/WebCore/page/CrossSiteNavigationDataTransfer.h:34
&gt; +    enum Flag {

enum class Flag : uint8_t

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2528
&gt; +    m_networkProcess-&gt;didCommitCrossSiteLoadWithDataTransfer(sessionID, fromDomain, toDomain, navigationDataTransfer, pageID, [] { });

I don&apos;t understand why this completion handler is necessary.  Could we remove it and have this message just be a notification?  That would make this code a lot simpler.

&gt; LayoutTests/http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html:14
&gt; +        if (document.referrer === prevalentResourceOrigin + &quot;/&quot;)

If this test is flaky, we should spin until this is true.  I hope it&apos;s not flaky, but I think it&apos;s currently based on a race condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539291</commentid>
    <comment_count>6</comment_count>
      <attachid>370658</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-26 14:59:29 -0700</bug_when>
    <thetext>Created attachment 370658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539292</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-05-26 15:02:48 -0700</bug_when>
    <thetext>Thank you so much for pitching in on a Saturday, Alex!

(In reply to Alex Christensen from comment #5)
&gt; Comment on attachment 370605 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370605&amp;action=review
&gt; 
&gt; r=me with a few comments.
&gt; 
&gt; &gt; Source/WebCore/page/CrossSiteNavigationDataTransfer.h:34
&gt; &gt; +    enum Flag {
&gt; 
&gt; enum class Flag : uint8_t

Fixed.

&gt; &gt; Source/WebKit/UIProcess/WebProcessPool.cpp:2528
&gt; &gt; +    m_networkProcess-&gt;didCommitCrossSiteLoadWithDataTransfer(sessionID, fromDomain, toDomain, navigationDataTransfer, pageID, [] { });
&gt; 
&gt; I don&apos;t understand why this completion handler is necessary.  Could we
&gt; remove it and have this message just be a notification?  That would make
&gt; this code a lot simpler.

I put there in anticipation of building test infrastructure but the only one needed is for WebResourceLoadStatisticsStore::logCrossSiteLoadWithLinkDecoration() which is called from NetworkProcess::setCrossSiteLoadWithLinkDecorationForTesting(). I removed the others.

&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html:14
&gt; &gt; +        if (document.referrer === prevalentResourceOrigin + &quot;/&quot;)
&gt; 
&gt; If this test is flaky, we should spin until this is true.  I hope it&apos;s not
&gt; flaky, but I think it&apos;s currently based on a race condition.

Good call. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539295</commentid>
    <comment_count>8</comment_count>
      <attachid>370658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-26 15:39:16 -0700</bug_when>
    <thetext>Comment on attachment 370658
Patch for landing

Clearing flags on attachment: 370658

Committed r245784: &lt;https://trac.webkit.org/changeset/245784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539296</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-26 15:39:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542070</commentid>
    <comment_count>10</comment_count>
    <who name="Ehsan Akhgari [:ehsan]">ehsan</who>
    <bug_when>2019-06-05 10:35:03 -0700</bug_when>
    <thetext>Do I understand correctly that this change only changes the script visible value of document.referrer and not the network visible value (e.g. the value that gets used here: https://html.spec.whatwg.org/#navigating-across-documents:the-document&apos;s-referrer)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542073</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-06-05 10:38:30 -0700</bug_when>
    <thetext>(In reply to Ehsan Akhgari [:ehsan] from comment #10)
&gt; Do I understand correctly that this change only changes the script visible
&gt; value of document.referrer and not the network visible value (e.g. the value
&gt; that gets used here:
&gt; https://html.spec.whatwg.org/#navigating-across-documents:the-document&apos;s-
&gt; referrer)?

Yes, this only affects the JavaScript API, not the protocol part.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370601</attachid>
            <date>2019-05-24 16:11:14 -0700</date>
            <delta_ts>2019-05-24 16:29:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198227-20190524161113.patch</filename>
            <type>text/plain</type>
            <size>43665</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY0N2FlNTVkOTRiYTEw
MTc4ZGJlYzg5ZDcyYzY0YjY3NjU4YzMyNS4uYWFmY2MwMGM3MmJmMmJkOTk3MDc5YWE0ZWExZmYy
MWZhYjQzOWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA1LTI0ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIHRvIHRoZSByZWZlcnJlcidz
IGVUTEQrMSBpZiB0aGUgcGFnZSB3YXMgbmF2aWdhdGVkIHRvIHdpdGggYSBwcmV2YWxlbnQgcmVz
b3VyY2UgcmVmZXJyZXIgY29udGFpbmluZyBsaW5rIGRlY29yYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODIyNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTExMTcyNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25n
cmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVmZXJyZXIgY29uc3QpOgorICAg
ICAgICAgICAgTm93IGNoZWNrcyBpZiB0aGUgcmVmZXJyZXIgaGFzIGJlZW4gb3ZlcnJpZGRlbi4K
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpkb3duZ3Jh
ZGVSZWZlcnJlclRvUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oOiBBZGRl
ZC4KKyAgICAgICAgICAgIE5ldyBvcHRpb24gc2V0IGZvciB0aGUgZ3Jvd2luZyBudW1iZXIgb2Yg
bmF2aWdhdGlvbmFsIGRhdGEgdHJhbnNmZXJzIHdlIGNhcmUgYWJvdXQuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkg
bG9vayBmb3IgbGluayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRp
b25hbCBkYXRhIHRyYW5zZmVyLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg6CisKIDIwMTktMDUtMjMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KIAogICAgICAgICBbUG9pbnRlciBFdmVudHNdIENvbXBhdGliaWxpdHkgbW91c2Ug
ZXZlbnRzIGNhbiBvbmx5IGJlIHByZXZlbnRlZCB3aGlsZSB0aGUgcG9pbnRlciBpcyBwcmVzc2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGY5YzE4OGE5MmM0ZTk4ODVjZjE4ZDA5MWUzMDJjMmQ2MGE3ZTY0MmIuLjBj
ZmM1NTYyYjVjYTEwN2FkY2UxNTJmYzkwNWM0NjA2ZTU3MzlhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMTktMDUtMjQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBEb3duZ3JhZGUgZG9jdW1lbnQu
cmVmZXJyZXIgdG8gdGhlIHJlZmVycmVyJ3MgZVRMRCsxIGlmIHRoZSBwYWdlIHdhcyBuYXZpZ2F0
ZWQgdG8gd2l0aCBhIHByZXZhbGVudCByZXNvdXJjZSByZWZlcnJlciBjb250YWluaW5nIGxpbmsg
ZGVjb3JhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4MjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTExNzI1OD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBj
YWxsIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MgaWYgdGhlIG5ldHdvcmsgcHJvY2VzcyBmaW5kcyB0
aGUgbmF2aWdhdGlvbmFsCisgICAgICAgIGRhdGEgdHJhbnNmZXIgd2FzIGRvbmUgYnkgYSBwcmV2
YWxlbnQgcmVzb3VyY2UgYW5kIHdlIG5lZWQgdG8gYWRqdXN0IHNvbWV0aGluZyBmb3IgdGhlIHBh
Z2UuCisgICAgICAgIEN1cnJlbnRseSwgdGhhdCBhZGp1c3RtZW50IGlzIHRvIGRvd25ncmFkZSBk
b2N1bWVudC5yZWZlcnJlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENvbW1pdENyb3Nz
U2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkgbG9vayBmb3IgbGlu
ayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRpb25hbCBkYXRhIHRy
YW5zZmVyLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29t
bWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpjb21taXR0ZWRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgICAgIE5ldyBuYW1lIHNp
bmNlIHdlIG5vIGxvbmdlciBvbmx5IGxvb2sgZm9yIGxpbmsgZGVjb3JhdGlvbiBidXQgYWxzbyBv
dGhlciBtZWFucyBvZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2Zlci4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2hlY2tJZk5hdmlnYXRp
b25Db250YWluc0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OmlzTm9uVW5pcXVlTmF2aWdhdGlvbldpdGhMaW5rRGVjb3Jh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICAgICBOZXcgbmFtZSBzaW5jZSB3ZSBubyBsb25nZXIg
b25seSBsb29rIGZvciBsaW5rIGRlY29yYXRpb24gYnV0IGFsc28gb3RoZXIgbWVhbnMgb2YgbmF2
aWdhdGlvbmFsIGRhdGEgdHJhbnNmZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2Zlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjb21taXR0ZWRDcm9zc1Np
dGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgICAgIE5ldyBuYW1l
IHNpbmNlIHdlIG5vIGxvbmdlciBvbmx5IGxvb2sgZm9yIGxpbmsgZGVjb3JhdGlvbiBidXQgYWxz
byBvdGhlciBtZWFucyBvZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2Zlci4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRh
VHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMTktMDUtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFNldCBkZWZhdWx0IFdlYnNpdGVEYXRhU3RvcmUgc3RvcmFnZSBxdW90YSBi
YXNlZCBvbiBTdG9yYWdlUXVvdGFNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIy
NDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3NTgyMzI4OTEzLi5lMzhjNzczYzgyZmExMzliYjFiNWU3
ZWMzMTYxYWQ3OTM5NjgwNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTc0Miw2ICs3NDIsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9Db250ZXh0
TWVudUNvbnRleHQuaAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKICAgICBwYWdl
L0NvbnRleHRNZW51UHJvdmlkZXIuaAorICAgIHBhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlci5oCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uaAogICAgIHBhZ2UvRE9NVGltZXIuaAog
ICAgIHBhZ2UvRE9NV2luZG93LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNmExZjVmMWQ3MTliNGFmNjNmZDlkZGE3ZTFhZmQ3
NDVhNmRlOTA3Li5lNzBlNTQ4MzRlNWI0MGI1ZmJiYTkwZTVhNTJiNzk4NzNiMmNmZTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTc4LDYgKzE5NzgsNyBAQAogCQk2QTIyRTg3MDFGMTA0MTg2MDBGNTQ2QzMgLyogSW5zcGVj
dG9yQ2FudmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QTIyRTg2RjFGMTA0MTg2MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFzLmggKi87IH07CiAJ
CTZBNzI3OThCMUYxNkMyOUMwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTcyNzk4ODFGMTZD
MjlCMDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovOyB9OwogCQk2QjBBMDdG
MjIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEg
LyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNkIxRjQ4MTEyMjk4QTM3RTAwREU4QjgyIC8qIENyb3NzU2l0ZU5h
dmlnYXRpb25EYXRhVHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0ODA5MjBFRUY1
MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjRFODYxMzIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0
cmFibGVEb21haW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZCNEU4NjEyMjIxQjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNjkzQTJFMUM1
MUE4MkUwMEIwM0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8q
IFJlc291cmNlTG9hZE9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTkwNTMsNiArOTA1NCw3IEBACiAJCTZBNzI3OTg5MUYxNkMyOUIw
MDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0
dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlj
a0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4
MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21h
aW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0cmFibGVEb21haW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDA4OSw2ICsyMDA5MSw3
IEBACiAJCQkJMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgKi8sCiAJCQkJMDY1QUQ0RjQwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29u
dHJvbGxlci5oICovLAogCQkJCTdBREU3MjI1MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVu
dVByb3ZpZGVyLmggKi8sCisJCQkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0
ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLywKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlB
RDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5
cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8s
CkBAIC0yODU0OCw2ICsyODU1MSw3IEBACiAJCQkJRTFDNDE2MTIwRjY1NjJGRDAwOTJEMkZCIC8q
IENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBQkU2N0Ix
RDA1ODBEQjAwNkQ4NjJEIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFDNDE1REEwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTZCMUY0ODExMjI5OEEzN0UwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTY5ODAzRDExMzM1NDJEMDA4OTQxMTUgLyogQ1J1bnRpbWVPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NUNBMjhCMTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDOUFDQTk4MUYzQ0NEQUQwMEYzQUEwOSAvKiBDcnlwdG9BZXNLZXlBbGdv
cml0aG0uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDZkMzUy
OTFjYjk2NDM0NDI1YjBiYWFlNzQ0OWEwNmFhMTgwZDEzNi4uYTRhNzVjODVlYTdlYmM3YTI5MDRh
ZjljZDcyOGM0ZTE5MDVlMmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODQyLDYg
KzQ4NDIsMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRG9jdW1lbnQ6OnNldENvb2tpZShjb25zdCBT
dHJpbmcmIHZhbHVlKQogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkgY29uc3QKIHsKKyNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmICghbV9yZWZlcnJlck92
ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fcmVmZXJyZXJPdmVycmlkZTsKKyNl
bmRpZgogICAgIGlmIChmcmFtZSgpKQogICAgICAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCku
cmVmZXJyZXIoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC03ODI2LDYgKzc4MzAsMzcgQEAg
dm9pZCBEb2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oY29uc3QKIHsKICAgICBtX3JlZ2lzdHJhYmxlRG9tYWluUmVxdWVz
dGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24gPSBkb21haW47
CiB9CisKK3ZvaWQgRG9jdW1lbnQ6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoKQoreworICAgIGRvd25ncmFkZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFp
bigpOworfQorCit2b2lkIERvY3VtZW50Ojpkb3duZ3JhZGVSZWZlcnJlclRvUmVnaXN0cmFibGVE
b21haW4oKQoreworICAgIGF1dG8gcmVmZXJyZXJTdHIgPSByZWZlcnJlcigpOworICAgIGlmIChy
ZWZlcnJlclN0ci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFVSTCByZWZlcnJl
clVSTCB7IFVSTCgpLCByZWZlcnJlclN0ciB9OworICAgIGF1dG8gcmVmZXJyZXJQb3J0ID0gcmVm
ZXJyZXJVUkwucG9ydCgpOworICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZmVycmVyUmVnaXN0cmFi
bGVEb21haW4geyByZWZlcnJlclVSTCB9OworICAgIGF1dG8gcmVmZXJyZXJSZWdpc3RyYWJsZURv
bWFpblN0ciA9IHJlZmVycmVyUmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCk7CisgICAgaWYgKHJl
ZmVycmVyUmVnaXN0cmFibGVEb21haW5TdHIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQocmVmZXJyZXJV
UkwucHJvdG9jb2woKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Ly8iKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChyZWZlcnJlclJlZ2lzdHJhYmxlRG9tYWluU3RyKTsKKyAgICBpZiAocmVm
ZXJyZXJQb3J0KSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKCpyZWZlcnJlclBvcnQpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVu
ZCgnLycpOworCisgICAgbV9yZWZlcnJlck92ZXJyaWRlID0gYnVpbGRlci50b1N0cmluZygpOwor
fQogI2VuZGlmCiAKIHZvaWQgRG9jdW1lbnQ6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBk
MDYxYTBiZDQ5MWQxYzA1NDU0ODA3NjIyMTU0NmUxNzQ0OGI0NGFhLi45OTQ2Zjk3MmZjMTY1ODI1
MmIxNDRhODQ0ODk4NjU4YTJmZWJiNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQ5NSw2
ICsxNDk1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAgICAgYm9vbCBoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZvaWQgc2V0SGFzUmVx
dWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdhc0xvYWRlZFdp
dGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKKyAgICB2b2lkIGRvd25ncmFk
ZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFpbigpOwogI2VuZGlmCiAKICAgICBTdHJpbmcgc2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29u
c3QgU3RyaW5nJiBjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IFVSTCYpOwpAQCAtMjAzMyw2ICsyMDM1
LDcgQEAgcHJpdmF0ZToKICAgICAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21haW5SZXF1ZXN0ZWRQYWdl
U3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiB7IH07CisgICAgU3RyaW5n
IG1fcmVmZXJyZXJPdmVycmlkZTsKICNlbmRpZgogICAgIAogICAgIENTU1JlZ2lzdGVyZWRDdXN0
b21Qcm9wZXJ0eVNldCBtX0NTU1JlZ2lzdGVyZWRQcm9wZXJ0eVNldDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODk5NWZlMmE5MjAzODVmZmEyZTgxZDA2NjRlMTYwMDNmZTllMTE4MAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFu
c2Zlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyIHsKKyAgICBlbnVtIEZsYWcgeworICAgICAgICBEZXN0aW5hdGlvbkxpbmtE
ZWNvcmF0aW9uID0gMSA8PCAxLAorICAgICAgICBSZWZlcnJlckxpbmtEZWNvcmF0aW9uID0gMSA8
PCAyLAorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAppbmRleCAzYjE4ZTYyZmUzOTg3ZGI1ZmM4NjE5YmZmY2E2MmE0ODZmNDhhODA4
Li40NjVkYTU3YmYzODdjYTViY2Y5YmJlYTI3MmYyYzI0ZmYxMjY1ZGNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uY3BwCkBAIC0yMTUsMTAgKzIxNSw5IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpy
ZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCkKICAgICBtX2NhY2hlTWF4
QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3Jh
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBw
YWdlSUQpCiB7Ci0gICAgaWYgKHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZnJvbURvbWFp
bikpCi0gICAgICAgIG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVudFJl
c291cmNlLmFkZChwYWdlSUQsIHRvRG9tYWluKTsKKyAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtE
ZWNvcmF0aW9uQnlQcmV2YWxlbnRSZXNvdXJjZS5hZGQocGFnZUlELCB0b0RvbWFpbik7CiB9CiAK
IHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtE
ZWNvcmF0aW9uRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAwMzAyMDBkZjljNDRmZDRi
Y2YyZjU4NzJkZGRmZGE1NjMyNTk4NTBiLi44NGQ0ZWI2NmE3NDA1ZTljNjZjOTRkNjdhODA5MThh
MDhkN2RkZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBh
cnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWlu
c1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKE9wdGlv
bmFsPFNlY29uZHM+KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVByZXZhbGVudERv
bWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucyk7CkBAIC0xNTYs
NyArMTU3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FjaGVNYXhB
Z2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FjaGVDYXAoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21h
aW4sIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldENyb3Nz
U2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZygpOwogI2VuZGlmCiAKQEAgLTE4
MSw3ICsxODIsNiBAQCBwcml2YXRlOgogICAgIENyZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVudGlh
bFN0b3JhZ2U7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGJv
b2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYp
IGNvbnN0OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHksIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQp
IGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0Nvb2tpZUZvcjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBIYXNoTWFwPHVpbnQ2
NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6
OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4sIERlZmF1bHRIYXNoPHVp
bnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRf
dD4+IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGE1ZDZmNWNmY2M3YzQzMjVlOWFk
NzMxMzZmMzZmZGEyOTlkMWRlMGIuLjFlMWNkYmNmNjQzYTZhYWFhYzc3MDM3ODQ0Y2FlNjAzMTNk
MzE3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0xMTU1LDIxICsxMTU1LDMwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0
Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2VzCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29tbWl0
dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0
Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlcjo6RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYg
KGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
Ci0gICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdp
dGhMaW5rRGVjb3JhdGlvbihmcm9tRG9tYWluLCB0b0RvbWFpbiwgcGFnZUlEKTsKLSAgICBlbHNl
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIEFTU0VSVCghbmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5pc0VtcHR5KCkpOworCisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBD
YWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAg
ICAgCi0gICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
KGZyb21Eb21haW4sIHRvRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
KyAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkgeworICAgICAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyhmcm9tRG9tYWluKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAobmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5jb250YWlucyhDcm9zc1NpdGVOYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyOjpEZXN0aW5hdGlvbkxpbmtEZWNvcmF0aW9uKSkKKyAgICAgICAg
ICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRh
VHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UodG9Eb21haW4sIHBhZ2VJRCk7CisKKyAgICAg
ICAgaWYgKG5hdmlnYXRpb25EYXRhVHJhbnNmZXIuY29udGFpbnMoQ3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlcjo6UmVmZXJyZXJMaW5rRGVjb3JhdGlvbikpCisgICAgICAgICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OkRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlc291cmNlKHBhZ2VJRCksIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgIGlmIChu
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmNvbnRhaW5zKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXI6OkRlc3RpbmF0aW9uTGlua0RlY29yYXRpb24pKSB7CisgICAgICAgIGlmIChhdXRvKiBu
ZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5sb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGZyb21Eb21haW4s
IHRvRG9tYWluLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlS
ZWYoKV0geyB9KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCA3YWNiM2Y5Njc1YzNkOTQ4NzM5OGM3YTdkMGNmMzYzYTk5NzQ1N2Fh
Li4yMTU2MGMxMTg3YzM1OTAzMGY5YWMwYWU5ZjNlMzMwYzRmNTRhZTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRy
aWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+CkBAIC0yNTgsNyAr
MjU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0Rv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYp
OwotICAgIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRh
VHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlvblNldDxXZWJDb3Jl
OjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiwgdWludDY0X3QgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9h
ZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0
ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDlmZWUw
NzhmZTczNTM0YmNlNDZkNTIyYWYzY2QyNGI2MzliN2M2Mi4uZmU2NTQzNTBhNWJkM2U1NmU5ZmUz
M2IyOTMzNGU2YTFhMzQxMTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMzEsNyArMTMxLDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0VG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJl
Y3RlZEZyb21Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVzZXRDYWNoZU1heEFnZUNhcEZvclBy
ZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0g
ICAgQ29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpIC0+ICgpIEFz
eW5jCisgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXIsIHVpbnQ2NF90IHBhZ2VJRCkgLT4gKCkgQXN5bmMKICAgICBTZXRDcm9zc1NpdGVMb2FkV2l0
aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5
bmMKICAgICBEZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgYm9vbCBpbmNsdWRlSHR0cE9ubHlD
b29raWVzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMzQ0M2IzODVmYWM3NDFjZDhi
MjRiYWNlZTA4YjA3MzRkMDdlMDI3Mi4uMzkwYTgxNzAxMWU4ODZmZTM5Y2IwNWU5MzUxZWFiY2Mw
ZWFjOTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC05MDgsMTQgKzkwOCwyNSBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6Om5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5p
c2hlZCh1bnNpZ25lZAogICAgIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5UGFnZVN0YXRpc3RpY3NU
ZWxlbWV0cnlGaW5pc2hlZChBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShtZXNzYWdlQm9keSkucHRy
KCkpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvbW1pdHRlZENyb3NzU2l0ZUxv
YWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29tbWl0Q3Jvc3NTaXRl
TG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6
RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6Q29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihzZXNzaW9u
SUQsIGZyb21Eb21haW4sIHRvRG9tYWluLCBwYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoc2Vzc2lvbklELCBmcm9tRG9t
YWluLCB0b0RvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgcGFnZUlEKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENv
bW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKHVp
bnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFn
ZShwYWdlSUQpOworICAgIGlmICghcGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHBhZ2UtPmRpZENvbW1pdENyb3Nz
U2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRDcm9z
c1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggMjBhNzk5OGM0ZGMyNGFiMTY1NmYzOTM4N2Y1NzAw
ZmEzY2U5YTY4ZS4uMzRlMDBhYWRlNDY0MWEyM2YwYTYzMzM4MGU3Mjc3NDQ1NzE5YTgzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9z
c1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3Ry
YWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
QEAgLTE0NSw3ICsxNDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2Vz
QmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRU
b0RvbWFpbiYsIFBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBPcHRp
b25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4sIFBh
Z2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENvbW1pdENy
b3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0
ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3Jh
dGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggYmU5OGU2NjYzMGZhZDc5MDYxMDkyMGNlZjg1Mjc1ZGM5N2FkMWYxZC4uOGFiZTdmZmNlMmVk
MmRkZGUyZjc2OWNmMGI1NGQ1NzczYmY0ZGQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDgsNiArNDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5
RmluaXNoZWQodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFs
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpCiAgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vi
c2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZl
Y3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3Jkcykg
QXN5bmMKKyAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZSh1aW50NjRfdCBwYWdlSUQpIC0+ICgpIEFzeW5jCiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIENvbnRlbnRFeHRlbnNpb25SdWxlcyhXZWJL
aXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDY1NmM4ZGNjNTljNGFlYmNmMTM2
ZDcwYzdmNDAwZjk3NzY4MWQ1MGMuLmQ4NTI1YTc1ZjhiZGM4MTE4ZWE0YmZmZTYyZDBmNjczZGU1
NDU1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM0
LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFn
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KQEAgLTQxMzMsOSArNDEzNCwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi1zdGF0aWMgYm9vbCBpc05vblVuaXF1ZU5hdmlnYXRpb25XaXRo
TGlua0RlY29yYXRpb24oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhIHJlcXVlc3Rlck9yaWdpbiwg
Y29uc3QgVVJMJiBjdXJyZW50VVJMKQorc3RhdGljIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW5zRGF0YVRyYW5z
ZmVyKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSByZXF1ZXN0ZXJPcmlnaW4sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgY3VycmVudFJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuICFyZXF1ZXN0ZXJPcmln
aW4uc2VjdXJpdHlPcmlnaW4oKS0+aXNVbmlxdWUoKSAmJiAoIWN1cnJlbnRVUkwucXVlcnkoKS5p
c0VtcHR5KCkgfHwgIWN1cnJlbnRVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkuaXNFbXB0eSgpKTsK
KyAgICBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2
aWdhdGlvbkRhdGFUcmFuc2ZlcjsKKyAgICBpZiAocmVxdWVzdGVyT3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCktPmlzVW5pcXVlKCkpCisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
OworCisgICAgYXV0byBjdXJyZW50VVJMID0gY3VycmVudFJlcXVlc3QudXJsKCk7CisgICAgaWYg
KCFjdXJyZW50VVJMLnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFjdXJyZW50VVJMLmZyYWdtZW50SWRl
bnRpZmllcigpLmlzRW1wdHkoKSkKKyAgICAgICAgbmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5hZGQo
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RGVzdGluYXRpb25MaW5rRGVjb3JhdGlv
bik7CisKKyAgICBVUkwgcmVmZXJyZXJVUkwgeyBVUkwoKSwgY3VycmVudFJlcXVlc3QuaHR0cFJl
ZmVycmVyKCkgfTsKKyAgICBpZiAoIXJlZmVycmVyVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFy
ZWZlcnJlclVSTC5mcmFnbWVudElkZW50aWZpZXIoKS5pc0VtcHR5KCkpCisgICAgICAgIG5hdmln
YXRpb25EYXRhVHJhbnNmZXIuYWRkKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OlJl
ZmVycmVyTGlua0RlY29yYXRpb24pOworCisgICAgcmV0dXJuIG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXI7CiB9CiAjZW5kaWYKIApAQCAtNDE1NSwxMiArNDE2OCwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRAogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQgJiYg
KG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkp
KSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgYXV0byBy
ZXF1ZXN0ZXJPcmlnaW4gPSBuYXZpZ2F0aW9uLT5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnJlcXVl
c3Rlck9yaWdpbjsKLSAgICAgICAgYXV0byBjdXJyZW50VVJMID0gbmF2aWdhdGlvbi0+Y3VycmVu
dFJlcXVlc3QoKS51cmwoKTsKLSAgICAgICAgaWYgKGlzTm9uVW5pcXVlTmF2aWdhdGlvbldpdGhM
aW5rRGVjb3JhdGlvbihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRVUkwpKSB7Ci0gICAgICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBjdXJyZW50RG9tYWluIHsgY3VycmVudFVSTCB9OworICAgICAg
ICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKTsKKyAg
ICAgICAgYXV0byBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyID0gY2hlY2tJZk5hdmlnYXRpb25Db250
YWluc0RhdGFUcmFuc2ZlcihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRSZXF1ZXN0KTsKKyAgICAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
UmVnaXN0cmFibGVEb21haW4gY3VycmVudERvbWFpbiB7IGN1cnJlbnRSZXF1ZXN0LnVybCgpIH07
CiAgICAgICAgICAgICBVUkwgcmVxdWVzdGVyVVJMIHsgVVJMKCksIHJlcXVlc3Rlck9yaWdpbi50
b1N0cmluZygpIH07CiAgICAgICAgICAgICBpZiAoIWN1cnJlbnREb21haW4ubWF0Y2hlcyhyZXF1
ZXN0ZXJVUkwpKQotICAgICAgICAgICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jb21t
aXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdGVyVVJMIH0sIGN1cnJlbnRE
b21haW4sIG1fcGFnZUlEKTsKKyAgICAgICAgICAgICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29s
KCkuZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0ZXJVUkwgfSwgY3Vy
cmVudERvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgbV9wYWdlSUQpOwogICAgICAgICB9
CiAjZW5kaWYKICAgICB9CkBAIC04NjM0LDYgKzg2NDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWUKIHsKICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRo
aXMsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFt
ZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50
UmVzb3VyY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Oldhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3Vy
Y2UoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fcGFnZUlEKTsKK30KICNlbmRpZgog
CiBib29sIFdlYlBhZ2VQcm94eTo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2YzVhZDYyNWQxMjA0YzdjMGQ4Mzk2OTll
N2UyZjY1YTViYTY0ZTAzLi5kNmNkYmRjODNjODJiY2Q4OTgzYmIwMjhkYzViMDhmMzFmNGIwNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ0Nyw2ICsxNDQ3
LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBlMTM5ZjMwZDljZWY5ZjYzMjMz
YzYxM2I1ZTQyYmNkZDU5OGVlNjguLjJjZjkzNzg5ZjgxMTljNzNjZjIxM2VkZjYyZjk4YTNmMmNj
YmExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTI1MTksMTcgKzI1MTksMTggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDdXJyZW50TW9k
aWZpZXJTdGF0ZUZvclRlc3RpbmcoKQogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoKSk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29y
YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBw
YWdlSUQpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERh
dGFUcmFuc2ZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlv
blNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZpZ2F0aW9uRGF0
YVRyYW5zZmVyLCB1aW50NjRfdCBwYWdlSUQpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoIW1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0Rl
Y29yYXRpb24oc2Vzc2lvbklELCBmcm9tRG9tYWluLCB0b0RvbWFpbiwgcGFnZUlELCBbXSB7IH0p
OworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRy
YW5zZmVyKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9Eb21haW4sIG5hdmlnYXRpb25EYXRhVHJh
bnNmZXIsIHBhZ2VJRCwgW10geyB9KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNlc3Npb25J
RCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyb21Eb21haW4pOwogICAgIFVOVVNFRF9QQVJBTSh0b0Rv
bWFpbik7CisgICAgVU5VU0VEX1BBUkFNKG5hdmlnYXRpb25EYXRhVHJhbnNmZXIpOwogICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAppbmRleCAxNjU1NDViMWEyZjg2ZWFhNGI4MzNjOTNhYmU4MGRjOTBlZTUy
NjMzLi5hYjBiYzFhMzUwMDBkNDEzM2ZhYWI3YmJiZjFlM2JhODc0Y2Q4YWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25D
bGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC00OTMsNyArNDk0
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZERpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZE1l
c3NhZ2VGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBjbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9y
VGVzdGluZygpOwogCi0gICAgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYg
ZnJvbURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1
aW50NjRfdCBwYWdlSUQpOworICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRh
VHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiBmcm9tRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4s
IE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFn
PiwgdWludDY0X3QgcGFnZUlEKTsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQogICAgIHZvaWQgc2V0U2FuZGJveEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fc2FuZGJveEVu
YWJsZWQgPSBlbmFibGVkOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA2ZWQ4ZjI3MmYyZWU4ODdlNTY5YzFmZjQzZmEyMTBlODA2Nzc4MmNj
Li4zZDJjMmVkZWI3MGM3NWNjNmZkNDZkOGIzZGM0ZWQxMjk3MTQ4NDFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjQ5Miw2ICs2NDkyLDE4
IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFiCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVl
c3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RG
TW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQorCit2b2lkIFdlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIGZyYW1lID0gbWFpbkZyYW1lKCk7CisgICAgaWYg
KCFmcmFtZSB8fCAhZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZyYW1lLT5kb2N1bWVudCgpLT53
YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7CisgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4
NjhhZTkyZjJmYjMyOTM1MTAxMTBiYWVlOGNjYjY3ODIzMWMzM2FkLi5jNDM3NTlmZmYzMDVmMjc4
ZmQ1ZjAwZDVmNDJiMjg1ZDljZTI5NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMTI5LDYgKzExMjksNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIHdhc0xvYWRlZFdp
dGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDE4ZjA2Zjg4NGUxOTc3NGZmY2ExZDc4MWI2ODgwOWZmZWUxNzBkMDguLjZmZTA5ZWU2
YTBiOWYxZjIzZWUxMDIzNTkwNGZhOGU0MGJiZTUzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTY2LDQgKzU2
Niw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktp
dDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBUZXh0SW5wdXRDb250ZXh0c0lu
UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkgLT4gKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpU
ZXh0SW5wdXRDb250ZXh0PiBjb250ZXh0cykgQXN5bmMKICAgICBGb2N1c1RleHRJbnB1dENvbnRl
eHQoc3RydWN0IFdlYktpdDo6VGV4dElucHV0Q29udGV4dCBjb250ZXh0KSAtPiAoYm9vbCBzdWNj
ZXNzKSBBc3luYworCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBX
YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkgLT4gKCkgQXN5
bmMKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyOWFiOWUxNjQ0NjNjNmQ3MmIzYzExMGJiOTg3YjM3ZmQ4
MWZmM2YuLjFjOTc2YzUzZWVlMzAwYTVlM2I4NWJhMWIxNGUxNDMzYmM3Y2RiOTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxOS0wNS0yNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IERvd25ncmFkZSBkb2N1
bWVudC5yZWZlcnJlciB0byB0aGUgcmVmZXJyZXIncyBlVExEKzEgaWYgdGhlIHBhZ2Ugd2FzIG5h
dmlnYXRlZCB0byB3aXRoIGEgcHJldmFsZW50IHJlc291cmNlIHJlZmVycmVyIGNvbnRhaW5pbmcg
bGluayBkZWNvcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTgyMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTE3MjU4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA1LTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BvaW50ZXIgRXZlbnRzXSBDb21wYXRpYmlsaXR5
IG1vdXNlIGV2ZW50cyBjYW4gb25seSBiZSBwcmV2ZW50ZWQgd2hpbGUgdGhlIHBvaW50ZXIgaXMg
cHJlc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1u
YXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGZiYTgxMDM1ZTJmZWNiYTEzOTRkMDFkZjJlOWJlMjA2OTVlODVh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1x
dWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBlVExE
KzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRl
ZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGlu
ay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MGEzZWQy
OWIzNDJmZDgxYTI3NGQ5NjllOWFhMGE2NmY5OTk0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZl
cnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4K
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIg
aXMgZG93bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9u
IHdpdGggbGluayBxdWVyeS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1
bmN0aW9uIHRlc3RSZWZlcnJlcigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnJlZmVycmVyID09
PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiArICIvIikKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVkLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJUaGUgcmVmZXJyZXIgaXMgbm90IGRvd25ncmFkZWQ6ICIgKyBkb2N1bWVu
dC5yZWZlcnJlcik7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVTYW1lT3JpZ2luVG9BZGRRdWVyeSgp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luICsgIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5h
dmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWw/bGlu
az1xdWVyeSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbmF2aWdhdGVDcm9zc09yaWdpbigpIHsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24t
d2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLmh0bWwiOworICAgIH0KKwor
ICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3QgcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24ub3JpZ2luID09PSBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiAmJiBkb2N1bWVudC5sb2NhdGlv
bi5zZWFyY2ggPT09ICIiKSB7CisgICAgICAgICAgICBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1
ZXJ5KCk7CisgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbikgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0
cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4sIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
UHJldmFsZW50UmVzb3VyY2UocHJldmFsZW50UmVzb3VyY2VPcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NV
cGRhdGVDb29raWVCbG9ja2luZyhuYXZpZ2F0ZUNyb3NzT3JpZ2luKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVz
dFJlZmVycmVyKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370605</attachid>
            <date>2019-05-24 16:29:10 -0700</date>
            <delta_ts>2019-05-26 14:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198227-20190524162909.patch</filename>
            <type>text/plain</type>
            <size>43985</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY0N2FlNTVkOTRiYTEw
MTc4ZGJlYzg5ZDcyYzY0YjY3NjU4YzMyNS4uYWFmY2MwMGM3MmJmMmJkOTk3MDc5YWE0ZWExZmYy
MWZhYjQzOWJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA1LTI0ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIHRvIHRoZSByZWZlcnJlcidz
IGVUTEQrMSBpZiB0aGUgcGFnZSB3YXMgbmF2aWdhdGVkIHRvIHdpdGggYSBwcmV2YWxlbnQgcmVz
b3VyY2UgcmVmZXJyZXIgY29udGFpbmluZyBsaW5rIGRlY29yYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODIyNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTExMTcyNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25n
cmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFs
ZW50LXJlc291cmNlLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVmZXJyZXIgY29uc3QpOgorICAg
ICAgICAgICAgTm93IGNoZWNrcyBpZiB0aGUgcmVmZXJyZXIgaGFzIGJlZW4gb3ZlcnJpZGRlbi4K
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpkb3duZ3Jh
ZGVSZWZlcnJlclRvUmVnaXN0cmFibGVEb21haW4pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oOiBBZGRl
ZC4KKyAgICAgICAgICAgIE5ldyBvcHRpb24gc2V0IGZvciB0aGUgZ3Jvd2luZyBudW1iZXIgb2Yg
bmF2aWdhdGlvbmFsIGRhdGEgdHJhbnNmZXJzIHdlIGNhcmUgYWJvdXQuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkg
bG9vayBmb3IgbGluayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRp
b25hbCBkYXRhIHRyYW5zZmVyLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg6CisKIDIwMTktMDUtMjMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KIAogICAgICAgICBbUG9pbnRlciBFdmVudHNdIENvbXBhdGliaWxpdHkgbW91c2Ug
ZXZlbnRzIGNhbiBvbmx5IGJlIHByZXZlbnRlZCB3aGlsZSB0aGUgcG9pbnRlciBpcyBwcmVzc2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGY5YzE4OGE5MmM0ZTk4ODVjZjE4ZDA5MWUzMDJjMmQ2MGE3ZTY0MmIuLjBj
ZmM1NTYyYjVjYTEwN2FkY2UxNTJmYzkwNWM0NjA2ZTU3MzlhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMTktMDUtMjQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBEb3duZ3JhZGUgZG9jdW1lbnQu
cmVmZXJyZXIgdG8gdGhlIHJlZmVycmVyJ3MgZVRMRCsxIGlmIHRoZSBwYWdlIHdhcyBuYXZpZ2F0
ZWQgdG8gd2l0aCBhIHByZXZhbGVudCByZXNvdXJjZSByZWZlcnJlciBjb250YWluaW5nIGxpbmsg
ZGVjb3JhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4MjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTExNzI1OD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBj
YWxsIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MgaWYgdGhlIG5ldHdvcmsgcHJvY2VzcyBmaW5kcyB0
aGUgbmF2aWdhdGlvbmFsCisgICAgICAgIGRhdGEgdHJhbnNmZXIgd2FzIGRvbmUgYnkgYSBwcmV2
YWxlbnQgcmVzb3VyY2UgYW5kIHdlIG5lZWQgdG8gYWRqdXN0IHNvbWV0aGluZyBmb3IgdGhlIHBh
Z2UuCisgICAgICAgIEN1cnJlbnRseSwgdGhhdCBhZGp1c3RtZW50IGlzIHRvIGRvd25ncmFkZSBk
b2N1bWVudC5yZWZlcnJlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENvbW1pdENyb3Nz
U2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkgbG9vayBmb3IgbGlu
ayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRpb25hbCBkYXRhIHRy
YW5zZmVyLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29t
bWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpjb21taXR0ZWRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgICAgIE5ldyBuYW1lIHNp
bmNlIHdlIG5vIGxvbmdlciBvbmx5IGxvb2sgZm9yIGxpbmsgZGVjb3JhdGlvbiBidXQgYWxzbyBv
dGhlciBtZWFucyBvZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2Zlci4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2hlY2tJZk5hdmlnYXRp
b25Db250YWluc0RhdGFUcmFuc2Zlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OmlzTm9uVW5pcXVlTmF2aWdhdGlvbldpdGhMaW5rRGVjb3Jh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICAgICBOZXcgbmFtZSBzaW5jZSB3ZSBubyBsb25nZXIg
b25seSBsb29rIGZvciBsaW5rIGRlY29yYXRpb24gYnV0IGFsc28gb3RoZXIgbWVhbnMgb2YgbmF2
aWdhdGlvbmFsIGRhdGEgdHJhbnNmZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2Zlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjb21taXR0ZWRDcm9zc1Np
dGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgICAgIE5ldyBuYW1l
IHNpbmNlIHdlIG5vIGxvbmdlciBvbmx5IGxvb2sgZm9yIGxpbmsgZGVjb3JhdGlvbiBidXQgYWxz
byBvdGhlciBtZWFucyBvZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2Zlci4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRh
VHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisKIDIwMTktMDUtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFNldCBkZWZhdWx0IFdlYnNpdGVEYXRhU3RvcmUgc3RvcmFnZSBxdW90YSBi
YXNlZCBvbiBTdG9yYWdlUXVvdGFNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjMmM3YzIy
NDllM2YxZWMwNzE2NGE5MzA5ODY1YjU3NTgyMzI4OTEzLi5lMzhjNzczYzgyZmExMzliYjFiNWU3
ZWMzMTYxYWQ3OTM5NjgwNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTc0Miw2ICs3NDIsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9Db250ZXh0
TWVudUNvbnRleHQuaAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKICAgICBwYWdl
L0NvbnRleHRNZW51UHJvdmlkZXIuaAorICAgIHBhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlci5oCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uaAogICAgIHBhZ2UvRE9NVGltZXIuaAog
ICAgIHBhZ2UvRE9NV2luZG93LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNmExZjVmMWQ3MTliNGFmNjNmZDlkZGE3ZTFhZmQ3
NDVhNmRlOTA3Li5lNzBlNTQ4MzRlNWI0MGI1ZmJiYTkwZTVhNTJiNzk4NzNiMmNmZTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTc4LDYgKzE5NzgsNyBAQAogCQk2QTIyRTg3MDFGMTA0MTg2MDBGNTQ2QzMgLyogSW5zcGVj
dG9yQ2FudmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2QTIyRTg2RjFGMTA0MTg2MDBGNTQ2QzMgLyogSW5zcGVjdG9yQ2FudmFzLmggKi87IH07CiAJ
CTZBNzI3OThCMUYxNkMyOUMwMDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QTcyNzk4ODFGMTZD
MjlCMDAzRjM5QjggLyogSW5zcGVjdG9yU2hhZGVyUHJvZ3JhbS5oICovOyB9OwogCQk2QjBBMDdG
MjIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0dHJpYnV0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEg
LyogQWRDbGlja0F0dHJpYnV0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNkIxRjQ4MTEyMjk4QTM3RTAwREU4QjgyIC8qIENyb3NzU2l0ZU5h
dmlnYXRpb25EYXRhVHJhbnNmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZCMUY0ODBGMjI5ODlFQzQwMERFOEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0ODA5MjBFRUY1
MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjRFODYxMzIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0
cmFibGVEb21haW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZCNEU4NjEyMjIxQjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZCNjkzQTJFMUM1
MUE4MkUwMEIwM0JFRiAvKiBSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8q
IFJlc291cmNlTG9hZE9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTkwNTMsNiArOTA1NCw3IEBACiAJCTZBNzI3OTg5MUYxNkMyOUIw
MDNGMzlCOCAvKiBJbnNwZWN0b3JTaGFkZXJQcm9ncmFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclNoYWRlclByb2dyYW0uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMDIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlja0F0
dHJpYnV0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2QjBBMDdGMTIxRkE0QjVDMDBENTczOTEgLyogQWRDbGlj
a0F0dHJpYnV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFkQ2xpY2tBdHRyaWJ1dGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCMUY0ODBGMjI5ODlFQzQwMERFOEI4
MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2QjRFODYxMjIyMUI3MTNGMDAyMkYzODkgLyogUmVnaXN0cmFibGVEb21h
aW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0cmFibGVEb21haW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkI2OTNBMkQxQzUxQTgyRTAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDA4OSw2ICsyMDA5MSw3
IEBACiAJCQkJMDY1QUQ0RjMwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAgKi8sCiAJCQkJMDY1QUQ0RjQwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29u
dHJvbGxlci5oICovLAogCQkJCTdBREU3MjI1MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVu
dVByb3ZpZGVyLmggKi8sCisJCQkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0
ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLywKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlB
RDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5
cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8s
CkBAIC0yODU0OCw2ICsyODU1MSw3IEBACiAJCQkJRTFDNDE2MTIwRjY1NjJGRDAwOTJEMkZCIC8q
IENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBQkU2N0Ix
RDA1ODBEQjAwNkQ4NjJEIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFDNDE1REEwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTZCMUY0ODExMjI5OEEzN0UwMERF
OEI4MiAvKiBDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTY5ODAzRDExMzM1NDJEMDA4OTQxMTUgLyogQ1J1bnRpbWVPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NUNBMjhCMTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDOUFDQTk4MUYzQ0NEQUQwMEYzQUEwOSAvKiBDcnlwdG9BZXNLZXlBbGdv
cml0aG0uaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDZkMzUy
OTFjYjk2NDM0NDI1YjBiYWFlNzQ0OWEwNmFhMTgwZDEzNi4uYTRhNzVjODVlYTdlYmM3YTI5MDRh
ZjljZDcyOGM0ZTE5MDVlMmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODQyLDYg
KzQ4NDIsMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRG9jdW1lbnQ6OnNldENvb2tpZShjb25zdCBT
dHJpbmcmIHZhbHVlKQogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkgY29uc3QKIHsKKyNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIGlmICghbV9yZWZlcnJlck92
ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fcmVmZXJyZXJPdmVycmlkZTsKKyNl
bmRpZgogICAgIGlmIChmcmFtZSgpKQogICAgICAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCku
cmVmZXJyZXIoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC03ODI2LDYgKzc4MzAsMzcgQEAg
dm9pZCBEb2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oY29uc3QKIHsKICAgICBtX3JlZ2lzdHJhYmxlRG9tYWluUmVxdWVz
dGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24gPSBkb21haW47
CiB9CisKK3ZvaWQgRG9jdW1lbnQ6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoKQoreworICAgIGRvd25ncmFkZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFp
bigpOworfQorCit2b2lkIERvY3VtZW50Ojpkb3duZ3JhZGVSZWZlcnJlclRvUmVnaXN0cmFibGVE
b21haW4oKQoreworICAgIGF1dG8gcmVmZXJyZXJTdHIgPSByZWZlcnJlcigpOworICAgIGlmIChy
ZWZlcnJlclN0ci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFVSTCByZWZlcnJl
clVSTCB7IFVSTCgpLCByZWZlcnJlclN0ciB9OworICAgIGF1dG8gcmVmZXJyZXJQb3J0ID0gcmVm
ZXJyZXJVUkwucG9ydCgpOworICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZmVycmVyUmVnaXN0cmFi
bGVEb21haW4geyByZWZlcnJlclVSTCB9OworICAgIGF1dG8gcmVmZXJyZXJSZWdpc3RyYWJsZURv
bWFpblN0ciA9IHJlZmVycmVyUmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCk7CisgICAgaWYgKHJl
ZmVycmVyUmVnaXN0cmFibGVEb21haW5TdHIuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQocmVmZXJyZXJV
UkwucHJvdG9jb2woKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Ly8iKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChyZWZlcnJlclJlZ2lzdHJhYmxlRG9tYWluU3RyKTsKKyAgICBpZiAocmVm
ZXJyZXJQb3J0KSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKCpyZWZlcnJlclBvcnQpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVu
ZCgnLycpOworCisgICAgbV9yZWZlcnJlck92ZXJyaWRlID0gYnVpbGRlci50b1N0cmluZygpOwor
fQogI2VuZGlmCiAKIHZvaWQgRG9jdW1lbnQ6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVm
UHRyPFN0cmluZ0NhbGxiYWNrPiYmIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBk
MDYxYTBiZDQ5MWQxYzA1NDU0ODA3NjIyMTU0NmUxNzQ0OGI0NGFhLi45OTQ2Zjk3MmZjMTY1ODI1
MmIxNDRhODQ0ODk4NjU4YTJmZWJiNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQ5NSw2
ICsxNDk1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAgICAgYm9vbCBoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogICAgIHZvaWQgc2V0SGFzUmVx
dWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdhc0xvYWRlZFdp
dGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKKyAgICB2b2lkIGRvd25ncmFk
ZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFpbigpOwogI2VuZGlmCiAKICAgICBTdHJpbmcgc2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGtleVNpemVJbmRleCwgY29u
c3QgU3RyaW5nJiBjaGFsbGVuZ2VTdHJpbmcsIGNvbnN0IFVSTCYpOwpAQCAtMjAzMyw2ICsyMDM1
LDcgQEAgcHJpdmF0ZToKICAgICAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21haW5SZXF1ZXN0ZWRQYWdl
U3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiB7IH07CisgICAgU3RyaW5n
IG1fcmVmZXJyZXJPdmVycmlkZTsKICNlbmRpZgogICAgIAogICAgIENTU1JlZ2lzdGVyZWRDdXN0
b21Qcm9wZXJ0eVNldCBtX0NTU1JlZ2lzdGVyZWRQcm9wZXJ0eVNldDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODk5NWZlMmE5MjAzODVmZmEyZTgxZDA2NjRlMTYwMDNmZTllMTE4MAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFu
c2Zlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBDcm9zc1NpdGVOYXZpZ2F0aW9u
RGF0YVRyYW5zZmVyIHsKKyAgICBlbnVtIEZsYWcgeworICAgICAgICBEZXN0aW5hdGlvbkxpbmtE
ZWNvcmF0aW9uID0gMSA8PCAxLAorICAgICAgICBSZWZlcnJlckxpbmtEZWNvcmF0aW9uID0gMSA8
PCAyLAorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAppbmRleCAzYjE4ZTYyZmUzOTg3ZGI1ZmM4NjE5YmZmY2E2MmE0ODZmNDhhODA4
Li40NjVkYTU3YmYzODdjYTViY2Y5YmJlYTI3MmYyYzI0ZmYxMjY1ZGNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uY3BwCkBAIC0yMTUsMTAgKzIxNSw5IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpy
ZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCkKICAgICBtX2NhY2hlTWF4
QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3Jh
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBw
YWdlSUQpCiB7Ci0gICAgaWYgKHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZnJvbURvbWFp
bikpCi0gICAgICAgIG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVudFJl
c291cmNlLmFkZChwYWdlSUQsIHRvRG9tYWluKTsKKyAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtE
ZWNvcmF0aW9uQnlQcmV2YWxlbnRSZXNvdXJjZS5hZGQocGFnZUlELCB0b0RvbWFpbik7CiB9CiAK
IHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtE
ZWNvcmF0aW9uRm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAwMzAyMDBkZjljNDRmZDRi
Y2YyZjU4NzJkZGRmZGE1NjMyNTk4NTBiLi44NGQ0ZWI2NmE3NDA1ZTljNjZjOTRkNjdhODA5MThh
MDhkN2RkZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBh
cnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWlu
c1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKE9wdGlv
bmFsPFNlY29uZHM+KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVByZXZhbGVudERv
bWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucyk7CkBAIC0xNTYs
NyArMTU3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FjaGVNYXhB
Z2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FjaGVDYXAoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21h
aW4sIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldENyb3Nz
U2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZygpOwogI2VuZGlmCiAKQEAgLTE4
MSw3ICsxODIsNiBAQCBwcml2YXRlOgogICAgIENyZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVudGlh
bFN0b3JhZ2U7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGJv
b2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYp
IGNvbnN0OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHksIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQp
IGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0Nvb2tpZUZvcjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBIYXNoTWFwPHVpbnQ2
NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6
OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4sIERlZmF1bHRIYXNoPHVp
bnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRf
dD4+IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGE1ZDZmNWNmY2M3YzQzMjVlOWFk
NzMxMzZmMzZmZGEyOTlkMWRlMGIuLjFlMWNkYmNmNjQzYTZhYWFhYzc3MDM3ODQ0Y2FlNjAzMTNk
MzE3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0xMTU1LDIxICsxMTU1LDMwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0
Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2VzCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29tbWl0
dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0
Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlcjo6RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYg
KGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkp
Ci0gICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdp
dGhMaW5rRGVjb3JhdGlvbihmcm9tRG9tYWluLCB0b0RvbWFpbiwgcGFnZUlEKTsKLSAgICBlbHNl
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIEFTU0VSVCghbmF2aWdhdGlvbkRh
dGFUcmFuc2Zlci5pc0VtcHR5KCkpOworCisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBD
YWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAg
ICAgCi0gICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+bmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
KGZyb21Eb21haW4sIHRvRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
KyAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vz
c2lvbklEKSkgeworICAgICAgICBpZiAoIW5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+c2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyhmcm9tRG9tYWluKSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAobmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5jb250YWlucyhDcm9zc1NpdGVOYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyOjpEZXN0aW5hdGlvbkxpbmtEZWNvcmF0aW9uKSkKKyAgICAgICAg
ICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi0+ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRh
VHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UodG9Eb21haW4sIHBhZ2VJRCk7CisKKyAgICAg
ICAgaWYgKG5hdmlnYXRpb25EYXRhVHJhbnNmZXIuY29udGFpbnMoQ3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlcjo6UmVmZXJyZXJMaW5rRGVjb3JhdGlvbikpCisgICAgICAgICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OkRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlc291cmNlKHBhZ2VJRCksIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOworICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgIGlmIChu
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmNvbnRhaW5zKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXI6OkRlc3RpbmF0aW9uTGlua0RlY29yYXRpb24pKSB7CisgICAgICAgIGlmIChhdXRvKiBu
ZXR3b3JrU2Vzc2lvbiA9IHRoaXMtPm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKKyAgICAgICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5sb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGZyb21Eb21haW4s
IHRvRG9tYWluLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlS
ZWYoKV0geyB9KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCA3YWNiM2Y5Njc1YzNkOTQ4NzM5OGM3YTdkMGNmMzYzYTk5NzQ1N2Fh
Li4yMTU2MGMxMTg3YzM1OTAzMGY5YWMwYWU5ZjNlMzMwYzRmNTRhZTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FkQ2xpY2tBdHRy
aWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+CkBAIC0yNTgsNyAr
MjU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0Rv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYp
OwotICAgIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRh
VHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlvblNldDxXZWJDb3Jl
OjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiwgdWludDY0X3QgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9h
ZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0
ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDlmZWUw
NzhmZTczNTM0YmNlNDZkNTIyYWYzY2QyNGI2MzliN2M2Mi4uZmU2NTQzNTBhNWJkM2U1NmU5ZmUz
M2IyOTMzNGU2YTFhMzQxMTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMzEsNyArMTMxLDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0VG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJl
Y3RlZEZyb21Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVzZXRDYWNoZU1heEFnZUNhcEZvclBy
ZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0g
ICAgQ29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpIC0+ICgpIEFz
eW5jCisgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNy
b3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXIsIHVpbnQ2NF90IHBhZ2VJRCkgLT4gKCkgQXN5bmMKICAgICBTZXRDcm9zc1NpdGVMb2FkV2l0
aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5
bmMKICAgICBEZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgYm9vbCBpbmNsdWRlSHR0cE9ubHlD
b29raWVzKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMzQ0M2IzODVmYWM3NDFjZDhi
MjRiYWNlZTA4YjA3MzRkMDdlMDI3Mi4uMzkwYTgxNzAxMWU4ODZmZTM5Y2IwNWU5MzUxZWFiY2Mw
ZWFjOTlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC05MDgsMTQgKzkwOCwyNSBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6Om5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5p
c2hlZCh1bnNpZ25lZAogICAgIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5UGFnZVN0YXRpc3RpY3NU
ZWxlbWV0cnlGaW5pc2hlZChBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShtZXNzYWdlQm9keSkucHRy
KCkpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNvbW1pdHRlZENyb3NzU2l0ZUxv
YWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29tbWl0Q3Jvc3NTaXRl
TG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6
RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5k
TWVzc2FnZSgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6Q29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihzZXNzaW9u
SUQsIGZyb21Eb21haW4sIHRvRG9tYWluLCBwYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoc2Vzc2lvbklELCBmcm9tRG9t
YWluLCB0b0RvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgcGFnZUlEKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENv
bW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKHVp
bnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFn
ZShwYWdlSUQpOworICAgIGlmICghcGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHBhZ2UtPmRpZENvbW1pdENyb3Nz
U2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRDcm9z
c1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggMjBhNzk5OGM0ZGMyNGFiMTY1NmYzOTM4N2Y1NzAw
ZmEzY2U5YTY4ZS4uMzRlMDBhYWRlNDY0MWEyM2YwYTYzMzM4MGU3Mjc3NDQ1NzE5YTgzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9z
c1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3Ry
YWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
QEAgLTE0NSw3ICsxNDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2Vz
QmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRU
b0RvbWFpbiYsIFBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBPcHRp
b25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4sIFBh
Z2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENvbW1pdENy
b3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0
ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3Jh
dGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggYmU5OGU2NjYzMGZhZDc5MDYxMDkyMGNlZjg1Mjc1ZGM5N2FkMWYxZC4uOGFiZTdmZmNlMmVk
MmRkZGUyZjc2OWNmMGI1NGQ1NzczYmY0ZGQyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDgsNiArNDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5
RmluaXNoZWQodW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFs
UHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZy
YW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpCiAgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vi
c2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZl
Y3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3Jkcykg
QXN5bmMKKyAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZSh1aW50NjRfdCBwYWdlSUQpIC0+ICgpIEFzeW5jCiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIENvbnRlbnRFeHRlbnNpb25SdWxlcyhXZWJL
aXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDY1NmM4ZGNjNTljNGFlYmNmMTM2
ZDcwYzdmNDAwZjk3NzY4MWQ1MGMuLmQ4NTI1YTc1ZjhiZGM4MTE4ZWE0YmZmZTYyZDBmNjczZGU1
NDU1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM0
LDYgKzEzNCw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFn
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KQEAgLTQxMzMsOSArNDEzNCwyMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi1zdGF0aWMgYm9vbCBpc05vblVuaXF1ZU5hdmlnYXRpb25XaXRo
TGlua0RlY29yYXRpb24oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhIHJlcXVlc3Rlck9yaWdpbiwg
Y29uc3QgVVJMJiBjdXJyZW50VVJMKQorc3RhdGljIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0
aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW5zRGF0YVRyYW5z
ZmVyKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSByZXF1ZXN0ZXJPcmlnaW4sIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgY3VycmVudFJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuICFyZXF1ZXN0ZXJPcmln
aW4uc2VjdXJpdHlPcmlnaW4oKS0+aXNVbmlxdWUoKSAmJiAoIWN1cnJlbnRVUkwucXVlcnkoKS5p
c0VtcHR5KCkgfHwgIWN1cnJlbnRVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkuaXNFbXB0eSgpKTsK
KyAgICBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2
aWdhdGlvbkRhdGFUcmFuc2ZlcjsKKyAgICBpZiAocmVxdWVzdGVyT3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCktPmlzVW5pcXVlKCkpCisgICAgICAgIHJldHVybiBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
OworCisgICAgYXV0byBjdXJyZW50VVJMID0gY3VycmVudFJlcXVlc3QudXJsKCk7CisgICAgaWYg
KCFjdXJyZW50VVJMLnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFjdXJyZW50VVJMLmZyYWdtZW50SWRl
bnRpZmllcigpLmlzRW1wdHkoKSkKKyAgICAgICAgbmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5hZGQo
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RGVzdGluYXRpb25MaW5rRGVjb3JhdGlv
bik7CisKKyAgICBVUkwgcmVmZXJyZXJVUkwgeyBVUkwoKSwgY3VycmVudFJlcXVlc3QuaHR0cFJl
ZmVycmVyKCkgfTsKKyAgICBpZiAoIXJlZmVycmVyVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpIHx8ICFy
ZWZlcnJlclVSTC5mcmFnbWVudElkZW50aWZpZXIoKS5pc0VtcHR5KCkpCisgICAgICAgIG5hdmln
YXRpb25EYXRhVHJhbnNmZXIuYWRkKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OlJl
ZmVycmVyTGlua0RlY29yYXRpb24pOworCisgICAgcmV0dXJuIG5hdmlnYXRpb25EYXRhVHJhbnNm
ZXI7CiB9CiAjZW5kaWYKIApAQCAtNDE1NSwxMiArNDE2OCwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRAogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQgJiYg
KG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkp
KSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgYXV0byBy
ZXF1ZXN0ZXJPcmlnaW4gPSBuYXZpZ2F0aW9uLT5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnJlcXVl
c3Rlck9yaWdpbjsKLSAgICAgICAgYXV0byBjdXJyZW50VVJMID0gbmF2aWdhdGlvbi0+Y3VycmVu
dFJlcXVlc3QoKS51cmwoKTsKLSAgICAgICAgaWYgKGlzTm9uVW5pcXVlTmF2aWdhdGlvbldpdGhM
aW5rRGVjb3JhdGlvbihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRVUkwpKSB7Ci0gICAgICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBjdXJyZW50RG9tYWluIHsgY3VycmVudFVSTCB9OworICAgICAg
ICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKTsKKyAg
ICAgICAgYXV0byBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyID0gY2hlY2tJZk5hdmlnYXRpb25Db250
YWluc0RhdGFUcmFuc2ZlcihyZXF1ZXN0ZXJPcmlnaW4sIGN1cnJlbnRSZXF1ZXN0KTsKKyAgICAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
UmVnaXN0cmFibGVEb21haW4gY3VycmVudERvbWFpbiB7IGN1cnJlbnRSZXF1ZXN0LnVybCgpIH07
CiAgICAgICAgICAgICBVUkwgcmVxdWVzdGVyVVJMIHsgVVJMKCksIHJlcXVlc3Rlck9yaWdpbi50
b1N0cmluZygpIH07CiAgICAgICAgICAgICBpZiAoIWN1cnJlbnREb21haW4ubWF0Y2hlcyhyZXF1
ZXN0ZXJVUkwpKQotICAgICAgICAgICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jb21t
aXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+
c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdGVyVVJMIH0sIGN1cnJlbnRE
b21haW4sIG1fcGFnZUlEKTsKKyAgICAgICAgICAgICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29s
KCkuZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIobV93ZWJzaXRlRGF0YVN0
b3JlLT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0ZXJVUkwgfSwgY3Vy
cmVudERvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgbV9wYWdlSUQpOwogICAgICAgICB9
CiAjZW5kaWYKICAgICB9CkBAIC04NjM0LDYgKzg2NDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWUKIHsKICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRo
aXMsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFt
ZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50
UmVzb3VyY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Oldhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3Vy
Y2UoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG1fcGFnZUlEKTsKK30KICNlbmRpZgog
CiBib29sIFdlYlBhZ2VQcm94eTo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2YzVhZDYyNWQxMjA0YzdjMGQ4Mzk2OTll
N2UyZjY1YTViYTY0ZTAzLi5kNmNkYmRjODNjODJiY2Q4OTgzYmIwMjhkYzViMDhmMzFmNGIwNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ0Nyw2ICsxNDQ3
LDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBlMTM5ZjMwZDljZWY5ZjYzMjMz
YzYxM2I1ZTQyYmNkZDU5OGVlNjguLjAyMzFkZjg3NDZlN2M0YjI0NDE2N2M2ZjRjN2Q3MWI0Yjlk
NmJiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAg
LTI1MTksMjAgKzI1MTksMTUgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDdXJyZW50TW9k
aWZpZXJTdGF0ZUZvclRlc3RpbmcoKQogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6Q2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoKSk7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29y
YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBw
YWdlSUQpCi17CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK3ZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgT3B0aW9uU2V0PENyb3NzU2l0ZU5h
dmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIHVpbnQ2
NF90IHBhZ2VJRCkKK3sKICAgICBpZiAoIW1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlu
a0RlY29yYXRpb24oc2Vzc2lvbklELCBmcm9tRG9tYWluLCB0b0RvbWFpbiwgcGFnZUlELCBbXSB7
IH0pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Vzc2lvbklEKTsKLSAgICBVTlVTRURfUEFS
QU0oZnJvbURvbWFpbik7Ci0gICAgVU5VU0VEX1BBUkFNKHRvRG9tYWluKTsKLSAgICBVTlVTRURf
UEFSQU0ocGFnZUlEKTsKLSNlbmRpZgorICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRpZENvbW1pdENy
b3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9Eb21h
aW4sIG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIHBhZ2VJRCwgW10geyB9KTsKIH0KKyNlbmRpZgog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhQcm9jZXNzSWRl
bnRpZmllciBwcm9jZXNzSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAppbmRleCAxNjU1NDViMWEyZjg2ZWFhNGI4MzNjOTNhYmU4MGRjOTBlZTUyNjMzLi5kMGE5
MjM2NzJiYmQyN2RhODk0ZGI2YWRkNDhiYzA4ODFjZTNjNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJD
b250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzU2l0
ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC01Myw2ICs1NCw3IEBACiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtNDkzLDcgKzQ5NSw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVz
dGluZygpOwogICAgIHZvaWQgY2xlYXJDdXJyZW50TW9kaWZpZXJTdGF0ZUZvclRlc3RpbmcoKTsK
IAotICAgIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4s
IGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgdWludDY0X3QgcGFn
ZUlEKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIHZvaWQgZGlk
Q29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVO
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiwgdWludDY0X3QgcGFnZUlEKTsKKyNlbmRpZgog
CiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBzZXRTYW5kYm94
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zYW5kYm94RW5hYmxlZCA9IGVuYWJsZWQ7IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDZlZDhm
MjcyZjJlZTg4N2U1NjljMWZmNDNmYTIxMGU4MDY3NzgyY2MuLjNkMmMyZWRlYjcwYzc1Y2M2ZmQ0
NmQ4YjNkYzRlZDEyOTcxNDg0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC02NDkyLDYgKzY0OTIsMTggQEAgdm9pZCBXZWJQYWdlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWIKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lv
bklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwg
ZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK3Zv
aWQgV2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
YXV0byogZnJhbWUgPSBtYWluRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZG9j
dW1lbnQoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZnJhbWUtPmRvY3VtZW50KCktPndhc0xvYWRlZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQog
I2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDg2OGFlOTJmMmZiMzI5MzUxMDExMGJh
ZWU4Y2NiNjc4MjMxYzMzYWQuLmM0Mzc1OWZmZjMwNWYyNzhmZDVmMDBkNWY0MmIyODVkOWNlMjk1
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEx
MjksNiArMTEyOSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYpOworICAgIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMThmMDZmODg0ZTE5Nzc0
ZmZjYTFkNzgxYjY4ODA5ZmZlZTE3MGQwOC4uNmZlMDllZTZhMGI5ZjFmMjNlZTEwMjM1OTA0ZmE4
ZTQwYmJlNTNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01NjYsNCArNTY2LDggQEAgR2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUKIAogICAgIFRleHRJbnB1dENvbnRleHRzSW5SZWN0KFdlYkNvcmU6OkZsb2F0UmVj
dCByZWN0KSAtPiAoVmVjdG9yPHN0cnVjdCBXZWJLaXQ6OlRleHRJbnB1dENvbnRleHQ+IGNvbnRl
eHRzKSBBc3luYwogICAgIEZvY3VzVGV4dElucHV0Q29udGV4dChzdHJ1Y3QgV2ViS2l0OjpUZXh0
SW5wdXRDb250ZXh0IGNvbnRleHQpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisKKyNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIFdhc0xvYWRlZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKSAtPiAoKSBBc3luYworI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
OTI5YWI5ZTE2NDQ2M2M2ZDcyYjNjMTEwYmI5ODdiMzdmZDgxZmYzZi4uMWM5NzZjNTNlZWUzMDBh
NWUzYjg1YmExYjE0ZTE0MzNiYzdjZGI5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA1
LTI0ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291
cmNlIExvYWQgU3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIHRvIHRoZSBy
ZWZlcnJlcidzIGVUTEQrMSBpZiB0aGUgcGFnZSB3YXMgbmF2aWdhdGVkIHRvIHdpdGggYSBwcmV2
YWxlbnQgcmVzb3VyY2UgcmVmZXJyZXIgY29udGFpbmluZyBsaW5rIGRlY29yYXRpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODIyNworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTExMTcyNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdh
dGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQu
CisKIDIwMTktMDUtMjMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbUG9pbnRlciBFdmVudHNdIENvbXBhdGliaWxpdHkgbW91c2UgZXZlbnRzIGNhbiBvbmx5
IGJlIHByZXZlbnRlZCB3aGlsZSB0aGUgcG9pbnRlciBpcyBwcmVzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1y
ZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVz
b3VyY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1
ZXJ5LWZyb20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmJh
ODEwMzVlMmZlY2JhMTM5NGQwMWRmMmU5YmUyMDY5NWU4NWE1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZWQt
cmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50LXJl
c291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDaGVjayB0aGF0IGRvY3VtZW50
LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgdG8gdGhlIGVUTEQrMSBhZnRlciBhIGNyb3NzLXNpdGUg
bmF2aWdhdGlvbiB3aXRoIGxpbmsgcXVlcnkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZv
ci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZyb20tcHJldmFsZW50
LXJlc291cmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkwYTNlZDI5YjM0MmZkODFhMjc0ZDk2OWU5YWEw
YTY2Zjk5OTQ4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdp
dGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCkBAIC0wLDAgKzEsNDgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
Y29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ2hlY2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBl
VExEKzEgYWZ0ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LiIpOwor
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gdGVzdFJlZmVycmVyKCkg
eworICAgICAgICBpZiAoZG9jdW1lbnQucmVmZXJyZXIgPT09IHByZXZhbGVudFJlc291cmNlT3Jp
Z2luICsgIi8iKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIHJlZmVycmVyIGlzIGRvd25n
cmFkZWQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoZSByZWZl
cnJlciBpcyBub3QgZG93bmdyYWRlZDogIiArIGRvY3VtZW50LnJlZmVycmVyKTsKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0FkZFF1ZXJ5KCkgeworICAgICAgICBkb2N1bWVudC5s
b2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVl
cnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3JpZ2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
ZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1w
cmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25P
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNv
dXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVu
dFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAg
ICAgICAgICAgIG5hdmlnYXRlU2FtZU9yaWdpblRvQWRkUXVlcnkoKTsKKyAgICAgICAgfSBlbHNl
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2lu
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShw
cmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5h
dmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAgICAgICAg
fQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370658</attachid>
            <date>2019-05-26 14:59:29 -0700</date>
            <delta_ts>2019-05-26 15:39:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198227-20190526145928.patch</filename>
            <type>text/plain</type>
            <size>43502</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc0MmM0Zjc2NmMzOWM3
NWNiNzY2ODk3ZDZlOGZlODZjZjNiN2Y1MC4uNDE3NjQ0N2RlMzQ5M2Q0MWVkZDMxNDU5ZGU0YTQz
YmUxOTVmZTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA1LTI2ICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIHRvIHRoZSByZWZlcnJlcidz
IGVUTEQrMSBpZiB0aGUgcGFnZSB3YXMgbmF2aWdhdGVkIHRvIHdpdGggYSBwcmV2YWxlbnQgcmVz
b3VyY2UgcmVmZXJyZXIgY29udGFpbmluZyBsaW5rIGRlY29yYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODIyNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTExMTcyNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93
bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2
YWxlbnQtcmVzb3VyY2UuaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZWZlcnJlciBjb25zdCk6Cisg
ICAgICAgICAgICBOb3cgY2hlY2tzIGlmIHRoZSByZWZlcnJlciBoYXMgYmVlbiBvdmVycmlkZGVu
LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJG
cm9tUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRvd25n
cmFkZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFpbik6CisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgICogcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg6IEFk
ZGVkLgorICAgICAgICAgICAgTmV3IG9wdGlvbiBzZXQgZm9yIHRoZSBncm93aW5nIG51bWJlciBv
ZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2ZlcnMgd2UgY2FyZSBhYm91dC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlv
bik6IERlbGV0ZWQuCisgICAgICAgICAgICBOZXcgbmFtZSBzaW5jZSB3ZSBubyBsb25nZXIgb25s
eSBsb29rIGZvciBsaW5rIGRlY29yYXRpb24gYnV0IGFsc28gb3RoZXIgbWVhbnMgb2YgbmF2aWdh
dGlvbmFsIGRhdGEgdHJhbnNmZXIuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaDoKKwogMjAxOS0wNS0yNiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW1ZlcmlmaWNhdGlvbl0gQWRkIGFyZUVzc2VudGlhbGx5
RXF1YWwgZm9yIExheW91dFJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzVkZjQ5ZTJjZmQ4NGZhNWFjNGEyODFh
MGM1NDg3ZTlhZmRmN2E3ZC4uNWE2NTY0YjE5YWI1OTJkNGQwYWJlODZiOWFiNjM5MDM4NTM5YmZh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxOS0wNS0yNiAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6
IERvd25ncmFkZSBkb2N1bWVudC5yZWZlcnJlciB0byB0aGUgcmVmZXJyZXIncyBlVExEKzEgaWYg
dGhlIHBhZ2Ugd2FzIG5hdmlnYXRlZCB0byB3aXRoIGEgcHJldmFsZW50IHJlc291cmNlIHJlZmVy
cmVyIGNvbnRhaW5pbmcgbGluayBkZWNvcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgyMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUx
MTE3MjU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIGEgY2FsbCBiYWNrIHRvIHRoZSBVSSBwcm9jZXNzIGlmIHRoZSBu
ZXR3b3JrIHByb2Nlc3MgZmluZHMgdGhlIG5hdmlnYXRpb25hbAorICAgICAgICBkYXRhIHRyYW5z
ZmVyIHdhcyBkb25lIGJ5IGEgcHJldmFsZW50IHJlc291cmNlIGFuZCB3ZSBuZWVkIHRvIGFkanVz
dCBzb21ldGhpbmcgZm9yIHRoZSBwYWdlLgorICAgICAgICBDdXJyZW50bHksIHRoYXQgYWRqdXN0
bWVudCBpcyB0byBkb3duZ3JhZGUgZG9jdW1lbnQucmVmZXJyZXIuCisKKyAgICAgICAgVGhlIHBh
dGNoIGFsc28gcmVtb3ZlcyBhbiB1bnVzZWQgY29tcGxldGlvbiBoYW5kbGVyLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdp
dGhMaW5rRGVjb3JhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICAgICBOZXcgbmFtZSBzaW5jZSB3
ZSBubyBsb25nZXIgb25seSBsb29rIGZvciBsaW5rIGRlY29yYXRpb24gYnV0IGFsc28gb3RoZXIg
bWVhbnMgb2YgbmF2aWdhdGlvbmFsIGRhdGEgdHJhbnNmZXIuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkgbG9vayBm
b3IgbGluayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRpb25hbCBk
YXRhIHRyYW5zZmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW5zRGF0YVRyYW5zZmVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6aXNOb25V
bmlxdWVOYXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgICAg
IE5ldyBuYW1lIHNpbmNlIHdlIG5vIGxvbmdlciBvbmx5IGxvb2sgZm9yIGxpbmsgZGVjb3JhdGlv
biBidXQgYWxzbyBvdGhlciBtZWFucyBvZiBuYXZpZ2F0aW9uYWwgZGF0YSB0cmFuc2Zlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZENv
bW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAgICAgTmV3IG5hbWUgc2luY2Ugd2Ugbm8gbG9uZ2VyIG9ubHkgbG9v
ayBmb3IgbGluayBkZWNvcmF0aW9uIGJ1dCBhbHNvIG90aGVyIG1lYW5zIG9mIG5hdmlnYXRpb25h
bCBkYXRhIHRyYW5zZmVyLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOS0wNS0yNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBEcm9w
cGVkIHRleHQsIGF0dGFjaG1lbnRzLCBhbmQgaW1hZ2VzIHNob3VsZCBhbmltYXRlIGludG8gcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGMyYzdjMjI0OWUzZjFlYzA3MTY0YTkzMDk4NjViNTc1
ODIzMjg5MTMuLmUzOGM3NzNjODJmYTEzOWJiMWI1ZTdlYzMxNjFhZDc5Mzk2ODA0ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtNzQyLDYgKzc0Miw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwYWdlL0NvbnRleHRNZW51Q29udGV4dC5oCiAgICAgcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuaAogICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oCisg
ICAgcGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmgKICAgICBwYWdlL0RPTVNl
bGVjdGlvbi5oCiAgICAgcGFnZS9ET01UaW1lci5oCiAgICAgcGFnZS9ET01XaW5kb3cuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGNlZTBkNGMwYTViODA5MWMwYTMyMWIyY2ZjMGQ2ZDc0Mjk0M2NmZTUuLjMxMmQzMzRhNDczM2Nk
NmJmMTdmYTI2YzI1NmY1YWI3MThlZDliNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NzgsNiArMTk3OCw3IEBACiAJCTZB
MjJFODcwMUYxMDQxODYwMEY1NDZDMyAvKiBJbnNwZWN0b3JDYW52YXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZBMjJFODZGMUYxMDQxODYwMEY1NDZD
MyAvKiBJbnNwZWN0b3JDYW52YXMuaCAqLzsgfTsKIAkJNkE3Mjc5OEIxRjE2QzI5QzAwM0YzOUI4
IC8qIEluc3BlY3RvclNoYWRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZBNzI3OTg4MUYxNkMyOUIwMDNGMzlCOCAvKiBJbnNwZWN0b3JT
aGFkZXJQcm9ncmFtLmggKi87IH07CiAJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENs
aWNrQXR0cmlidXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZCMEEwN0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2QjFGNDgx
MTIyOThBMzdFMDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkIxRjQ4MEYyMjk4
OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2QjM0ODA5NDBFRUY1
MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFn
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZC
NEU4NjEzMjIxQjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI0RTg2MTIyMjFCNzEzRjAwMjJG
Mzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkI2OTNBMkUxQzUxQTgyRTAwQjAzQkVGIC8qIFJlc291cmNl
TG9hZE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2QjY5M0EyRDFDNTFBODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTA1NSw2
ICs5MDU2LDcgQEAKIAkJNkE3Mjc5ODkxRjE2QzI5QjAwM0YzOUI4IC8qIEluc3BlY3RvclNoYWRl
clByb2dyYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCMEEw
N0YwMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQWRDbGlja0F0dHJpYnV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZC
MEEwN0YxMjFGQTRCNUMwMEQ1NzM5MSAvKiBBZENsaWNrQXR0cmlidXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQWRDbGlja0F0dHJpYnV0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNkIxRjQ4MEYyMjk4OUVDNDAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRpb25E
YXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFu
c2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5MjBFRUY1MEQ0MDBB
QzFCNDEgLyogTmF0aXZlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5hdGl2ZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZCNEU4NjEyMjIx
QjcxM0YwMDIyRjM4OSAvKiBSZWdpc3RyYWJsZURvbWFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdp
c3RyYWJsZURvbWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjY5M0EyRDFD
NTFBODJFMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwMDk1LDYgKzIwMDk3LDcgQEAKIAkJCQkwNjVBRDRGMzBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCAqLywKIAkJCQkwNjVBRDRGNDBC
MEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggKi8sCiAJCQkJN0FERTcy
MjUxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCAqLywKKwkJCQk2QjFG
NDgwRjIyOTg5RUM0MDBERThCODIgLyogQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5o
ICovLAogCQkJCTk3NUNBMjg3MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJ
CTk3NUNBMjg4MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEz
MDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmlkbCAqLywKQEAgLTI4NTU0LDYgKzI4NTU3LDcgQEAK
IAkJCQlFMUM0MTYxMjBGNjU2MkZEMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFCRTY3QjFEMDU4MERCMDA2RDg2MkQgLyogQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM0MTVEQTBGNjU1
RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNkIxRjQ4MTEyMjk4QTM3RTAwREU4QjgyIC8qIENyb3NzU2l0ZU5hdmlnYXRp
b25EYXRhVHJhbnNmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjk4MDNEMTEzMzU0MkQwMDg5
NDExNSAvKiBDUnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1Q0EyOEIxMzAz
NjVGODAwRTk5QUQ5IC8qIENyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5QUNBOTgxRjND
Q0RBRDAwRjNBQTA5IC8qIENyeXB0b0Flc0tleUFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlNzBhOWY3ZmU1NTFhYjViNTU0NjQ2ZmMzNjc3ZDE5
ZTkyMWUyZWNlLi4xZDQzMTY2ZWVjMzE3M2MxNDgxZTRlYzk0YTM2NjdjMWNhNzQwYjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ4NjMsNiArNDg2MywxMCBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBEb2N1bWVudDo6c2V0Q29va2llKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIFN0cmluZyBE
b2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAogeworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCisgICAgaWYgKCFtX3JlZmVycmVyT3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAg
ICByZXR1cm4gbV9yZWZlcnJlck92ZXJyaWRlOworI2VuZGlmCiAgICAgaWYgKGZyYW1lKCkpCiAg
ICAgICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOwogICAgIHJldHVybiBT
dHJpbmcoKTsKQEAgLTc4NDcsNiArNzg1MSwzNyBAQCB2b2lkIERvY3VtZW50OjpzZXRIYXNSZXF1
ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdAog
ewogICAgIG1fcmVnaXN0cmFibGVEb21haW5SZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNj
ZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiA9IGRvbWFpbjsKIH0KKwordm9pZCBEb2N1bWVudDo6d2Fz
TG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpCit7CisgICAgZG93
bmdyYWRlUmVmZXJyZXJUb1JlZ2lzdHJhYmxlRG9tYWluKCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6
OmRvd25ncmFkZVJlZmVycmVyVG9SZWdpc3RyYWJsZURvbWFpbigpCit7CisgICAgYXV0byByZWZl
cnJlclN0ciA9IHJlZmVycmVyKCk7CisgICAgaWYgKHJlZmVycmVyU3RyLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIHJlZmVycmVyU3Ry
IH07CisgICAgYXV0byByZWZlcnJlclBvcnQgPSByZWZlcnJlclVSTC5wb3J0KCk7CisgICAgUmVn
aXN0cmFibGVEb21haW4gcmVmZXJyZXJSZWdpc3RyYWJsZURvbWFpbiB7IHJlZmVycmVyVVJMIH07
CisgICAgYXV0byByZWZlcnJlclJlZ2lzdHJhYmxlRG9tYWluU3RyID0gcmVmZXJyZXJSZWdpc3Ry
YWJsZURvbWFpbi5zdHJpbmcoKTsKKyAgICBpZiAocmVmZXJyZXJSZWdpc3RyYWJsZURvbWFpblN0
ci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICBidWlsZGVyLmFwcGVuZChyZWZlcnJlclVSTC5wcm90b2NvbCgpKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIjovLyIpOworICAgIGJ1aWxkZXIuYXBwZW5kKHJlZmVycmVyUmVn
aXN0cmFibGVEb21haW5TdHIpOworICAgIGlmIChyZWZlcnJlclBvcnQpIHsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmQoJzonKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoKnJlZmVycmVy
UG9ydCk7CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kKCcvJyk7CisKKyAgICBtX3JlZmVycmVy
T3ZlcnJpZGUgPSBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CiAjZW5kaWYKIAogdm9pZCBEb2N1bWVu
dDo6c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlz
dGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGMwNzY1NTY1MDZhNWNmOTk4OWQzOGM0Nzhi
ZjMzY2Y3ODZmYWZmMDUuLjNmYzVhMzJmMzgxZTY3ZmQyMDhhZjMxMjY3MTRkNDIyYTBiM2VmZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNDk2LDYgKzE0OTYsOCBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIGhhc1JlcXVlc3RlZFBh
Z2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7CiAgICAgdm9pZCBzZXRIYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdl
QWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxl
bnRSZXNvdXJjZSgpOworICAgIHZvaWQgZG93bmdyYWRlUmVmZXJyZXJUb1JlZ2lzdHJhYmxlRG9t
YWluKCk7CiAjZW5kaWYKIAogICAgIFN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VT
dHJpbmcodW5zaWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmlu
ZywgY29uc3QgVVJMJik7CkBAIC0yMDQzLDYgKzIwNDUsNyBAQCBwcml2YXRlOgogICAgIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgUmVnaXN0cmFibGVEb21haW4g
bV9yZWdpc3RyYWJsZURvbWFpblJlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRo
VXNlckludGVyYWN0aW9uIHsgfTsKKyAgICBTdHJpbmcgbV9yZWZlcnJlck92ZXJyaWRlOwogI2Vu
ZGlmCiAgICAgCiAgICAgQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0IG1fQ1NTUmVnaXN0
ZXJlZFByb3BlcnR5U2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Dcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nyb3NzU2l0
ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWUzNjA3NTBmNzE2ZWQ0ODYw
NjU5YjEyZDJmODA0YmRkOTNkYjMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmgKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RydWN0IENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIgeworICAgIGVudW0g
Y2xhc3MgRmxhZyA6IHVpbnQ4X3QgeworICAgICAgICBEZXN0aW5hdGlvbkxpbmtEZWNvcmF0aW9u
ID0gMSA8PCAxLAorICAgICAgICBSZWZlcnJlckxpbmtEZWNvcmF0aW9uID0gMSA8PCAyLAorICAg
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cAppbmRleCAzYjE4ZTYyZmUzOTg3ZGI1ZmM4NjE5YmZmY2E2MmE0ODZmNDhhODA4Li40NjVkYTU3
YmYzODdjYTViY2Y5YmJlYTI3MmYyYzI0ZmYxMjY1ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBA
IC0yMTUsMTAgKzIxNSw5IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZXNldENhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCkKICAgICBtX2NhY2hlTWF4QWdlQ2FwRm9y
UHJldmFsZW50UmVzb3VyY2VzID0gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3Vy
Y2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCB1aW50NjRfdCBwYWdlSUQpCiB7
Ci0gICAgaWYgKHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZnJvbURvbWFpbikpCi0gICAg
ICAgIG1fbmF2aWdhdGVkVG9XaXRoTGlua0RlY29yYXRpb25CeVByZXZhbGVudFJlc291cmNlLmFk
ZChwYWdlSUQsIHRvRG9tYWluKTsKKyAgICBtX25hdmlnYXRlZFRvV2l0aExpbmtEZWNvcmF0aW9u
QnlQcmV2YWxlbnRSZXNvdXJjZS5hZGQocGFnZUlELCB0b0RvbWFpbik7CiB9CiAKIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9u
Rm9yVGVzdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCAwMzAyMDBkZjljNDRmZDRiY2YyZjU4NzJk
ZGRmZGE1NjMyNTk4NTBiLi44NGQ0ZWI2NmE3NDA1ZTljNjZjOTRkNjdhODA5MThhMDhkN2RkZjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3Vs
ZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8dWludDY0X3Q+IHBhZ2VJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
c2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWluc1RvQmxvY2tD
b29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKE9wdGlvbmFsPFNlY29u
ZHM+KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMoY29u
c3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucyk7CkBAIC0xNTYsNyArMTU3LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8U2Vjb25kcz4gbWF4QWdlQ2FjaGVDYXAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExp
bmtEZWNvcmF0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21Q
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIHVpbnQ2
NF90IHBhZ2VJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRz
V2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZygpOwogI2VuZGlmCiAKQEAgLTE4MSw3ICsxODIs
NiBAQCBwcml2YXRlOgogICAgIENyZWRlbnRpYWxTdG9yYWdlIG1fY3JlZGVudGlhbFN0b3JhZ2U7
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGJvb2wgc2hvdWxk
QmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0Owog
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGZpcnN0UGFydHksIE9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpIGNvbnN0Owog
ICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9j
a0Nvb2tpZUZvcjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBIYXNoTWFwPHVpbnQ2NF90LCBSZWdp
c3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4sIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6
SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGE1ZDZmNWNmY2M3YzQzMjVlOWFkNzMxMzZmMzZm
ZGEyOTlkMWRlMGIuLmQ4MTMwODU0ZjEzZTQzNmE2YmFiNThiYWIyNzZhYmZkNTc0NGI1NjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC0xMTU1LDIxICsxMTU1LDI4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0Q2FjaGVNYXhB
Z2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2VzCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y29tbWl0dGVkQ3Jvc3NT
aXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0Q3Jvc3NTaXRl
TG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6
RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlEKQogewotICAgIGlm
IChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQp
KQotICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24tPmNvbW1pdHRlZENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4sIHBhZ2VJRCk7Ci0gICAgZWxz
ZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAKLSAgICBpZiAoYXV0byogbmV0
d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PmxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4s
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgeworICAgIEFTU0VSVCghbmF2aWdhdGlv
bkRhdGFUcmFuc2Zlci5pc0VtcHR5KCkpOworCisgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgaWYgKCFuZXR3
b3JrU3RvcmFnZVNlc3Npb24tPnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoZnJvbURvbWFp
bikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG5hdmlnYXRpb25EYXRhVHJh
bnNmZXIuY29udGFpbnMoQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZzo6RGVz
dGluYXRpb25MaW5rRGVjb3JhdGlvbikpCisgICAgICAgICAgICBuZXR3b3JrU3RvcmFnZVNlc3Np
b24tPmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJl
c291cmNlKHRvRG9tYWluLCBwYWdlSUQpOworCisgICAgICAgIGlmIChuYXZpZ2F0aW9uRGF0YVRy
YW5zZmVyLmNvbnRhaW5zKENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc6OlJl
ZmVycmVyTGlua0RlY29yYXRpb24pKQorICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ29tbWl0Q3Jvc3NT
aXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UocGFnZUlEKSwgMCk7
CisgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworCisgICAgaWYgKG5hdmlnYXRpb25EYXRhVHJhbnNmZXIuY29udGFp
bnMoQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZzo6RGVzdGluYXRpb25MaW5r
RGVjb3JhdGlvbikpIHsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gdGhpcy0+
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQorICAgICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0Nyb3NzU2l0
ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4sIFtdIHsgfSk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5k
ZXggN2FjYjNmOTY3NWMzZDk0ODczOThjN2E3ZDBjZjM2M2E5OTc0NTdhYS4uNjAzMGY4ZmZhYWJl
MTUwMDhmM2FkMjZmYzIzZGI4MDYzNzllOTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIldl
YnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NT
aXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5RGF0YS5oPgpAQCAtMjU4LDcgKzI1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBSZWRpcmVjdGVkVG9Eb21haW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dEZyb20oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgUmVkaXJl
Y3RlZEZyb21Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKTsKLSAgICB2b2lkIGNv
bW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2
aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4sIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAgdm9pZCBz
ZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b0RvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCBkOWZlZTA3OGZlNzM1MzRiY2U0NmQ1MjJhZjNjZDI0YjYzOWI3YzYyLi44YWYxNzM1
MThmYTcyOTUxOTBmMDQ1N2Q0MGEyYzllZjFlNDMyZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTEz
MSw3ICsxMzEsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAgICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZXNldENhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkgQXN5bmMKLSAgICBDb21taXR0ZWRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJv
bURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9Eb21haW4sIHVpbnQ2NF90IHBh
Z2VJRCkgLT4gKCkgQXN5bmMKKyAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2ZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9tYWluLCBPcHRpb25T
ZXQ8V2ViQ29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2aWdh
dGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlEKQogICAgIFNldENyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhM
aW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBB
c3luYwogICAgIERlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25s
eUNvb2tpZXMpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzNDQzYjM4NWZhYzc0MWNk
OGIyNGJhY2VlMDhiMDczNGQwN2UwMjcyLi5lODUyNTNiMjBhOTYxM2JkOTdjNDBkYTQ3ZmU4MzU1
MzhiOGU3OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTkwOCwxNCArOTA4LDI0IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUZp
bmlzaGVkKHVuc2lnbmVkCiAgICAgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlQYWdlU3RhdGlzdGlj
c1RlbGVtZXRyeUZpbmlzaGVkKEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKG1lc3NhZ2VCb2R5KS5w
dHIoKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y29tbWl0dGVkQ3Jvc3NTaXRl
TG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9E
b21haW4sIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21taXRDcm9zc1Np
dGVMb2FkV2l0aERhdGFUcmFuc2ZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9E
b21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
OjpGbGFnPiBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLCB1aW50NjRfdCBwYWdlSUQpCiB7Ci0gICAg
aWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cisg
ICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAot
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNvbW1pdHRl
ZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oc2Vzc2lvbklELCBmcm9tRG9tYWluLCB0
b0RvbWFpbiwgcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCisgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9Eb21haW4sIG5hdmlnYXRpb25EYXRh
VHJhbnNmZXIsIHBhZ2VJRCksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRp
ZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNl
KHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBpZiAoIWNhblNlbmRNZXNzYWdlKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZShwYWdlSUQpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFn
ZS0+ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVz
b3VyY2UoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMjBhNzk5OGM0ZGMyNGFiMTY1NmYzOTM4N2Y1NzAwZmEzY2U5YTY4
ZS4uMzViOWU2NjU0ZjNkNjQyZjZmNzg5NjVhZGVkYjIyOTAzY2E1MDU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc1NpdGVOYXZp
Z2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFp
bi5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTE0NSw3
ICsxNDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVi
dWdNb2RlKFBBTDo6U2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIGNvbW1pdHRlZENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYs
IFBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRpZENvbW1p
dENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZp
Z2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBPcHRpb25TZXQ8V2Vi
Q29yZTo6Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4sIFBhZ2VJRCk7Cisg
ICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxl
bnRSZXNvdXJjZShQYWdlSUQpOwogICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVj
b3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21h
aW4mLCBjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGRlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiZTk4ZTY2
NjMwZmFkNzkwNjEwOTIwY2VmODUyNzVkYzk3YWQxZjFkLi4zNjc3YjhmNjVlZWQ5MzdiZTllYmM3
MjRiNmYyMmJkYTI4NTM1YTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00
OCw2ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2
ZXIgewogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1
bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRS
ZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2lucykKICAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0odWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+
IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKICAgICBEZWxldGVXZWJzaXRlRGF0YUlu
VUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxX
ZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhNYXRjaGluZ0RhdGFSZWNvcmRzKSBBc3luYworICAg
IERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291
cmNlKHVpbnQ2NF90IHBhZ2VJRCkKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lP
TlMpCiAgICAgQ29udGVudEV4dGVuc2lvblJ1bGVzKFdlYktpdDo6VXNlckNvbnRlbnRDb250cm9s
bGVySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggNjU2YzhkY2M1OWM0YWViY2YxMzZkNzBjN2Y0MDBmOTc3NjgxZDUwYy4u
ZTBkMzU2NDFiOTlkN2U1ZWNhNjFiODMxOTU4OWVjNjE1MjM5YTVjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzQsNiArMTM0LDcgQEAKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Dcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
T01QYXN0ZUFjY2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAt
NDEzMyw5ICs0MTM0LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhckxvYWREZXBlbmRlbnRD
YWxsYmFja3MoKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXN0
YXRpYyBib29sIGlzTm9uVW5pcXVlTmF2aWdhdGlvbldpdGhMaW5rRGVjb3JhdGlvbihjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEgcmVxdWVzdGVyT3JpZ2luLCBjb25zdCBVUkwmIGN1cnJlbnRVUkwp
CitzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+
IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbnNEYXRhVHJhbnNmZXIoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhIHJlcXVlc3Rlck9yaWdpbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjdXJyZW50UmVx
dWVzdCkKIHsKLSAgICByZXR1cm4gIXJlcXVlc3Rlck9yaWdpbi5zZWN1cml0eU9yaWdpbigpLT5p
c1VuaXF1ZSgpICYmICghY3VycmVudFVSTC5xdWVyeSgpLmlzRW1wdHkoKSB8fCAhY3VycmVudFVS
TC5mcmFnbWVudElkZW50aWZpZXIoKS5pc0VtcHR5KCkpOworICAgIE9wdGlvblNldDxDcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOwor
ICAgIGlmIChyZXF1ZXN0ZXJPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS0+aXNVbmlxdWUoKSkKKyAg
ICAgICAgcmV0dXJuIG5hdmlnYXRpb25EYXRhVHJhbnNmZXI7CisKKyAgICBhdXRvIGN1cnJlbnRV
UkwgPSBjdXJyZW50UmVxdWVzdC51cmwoKTsKKyAgICBpZiAoIWN1cnJlbnRVUkwucXVlcnkoKS5p
c0VtcHR5KCkgfHwgIWN1cnJlbnRVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkuaXNFbXB0eSgpKQor
ICAgICAgICBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLmFkZChDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0
YVRyYW5zZmVyOjpGbGFnOjpEZXN0aW5hdGlvbkxpbmtEZWNvcmF0aW9uKTsKKworICAgIFVSTCBy
ZWZlcnJlclVSTCB7IFVSTCgpLCBjdXJyZW50UmVxdWVzdC5odHRwUmVmZXJyZXIoKSB9OworICAg
IGlmICghcmVmZXJyZXJVUkwucXVlcnkoKS5pc0VtcHR5KCkgfHwgIXJlZmVycmVyVVJMLmZyYWdt
ZW50SWRlbnRpZmllcigpLmlzRW1wdHkoKSkKKyAgICAgICAgbmF2aWdhdGlvbkRhdGFUcmFuc2Zl
ci5hZGQoQ3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZzo6UmVmZXJyZXJMaW5r
RGVjb3JhdGlvbik7CisKKyAgICByZXR1cm4gbmF2aWdhdGlvbkRhdGFUcmFuc2ZlcjsKIH0KICNl
bmRpZgogCkBAIC00MTU1LDEyICs0MTY4LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21t
aXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAg
ICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCAmJiAobmF2aWdhdGlv
biA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSkpIHsKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgICAgICBhdXRvIHJlcXVlc3Rlck9y
aWdpbiA9IG5hdmlnYXRpb24tPmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkucmVxdWVzdGVyT3JpZ2lu
OwotICAgICAgICBhdXRvIGN1cnJlbnRVUkwgPSBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgp
LnVybCgpOwotICAgICAgICBpZiAoaXNOb25VbmlxdWVOYXZpZ2F0aW9uV2l0aExpbmtEZWNvcmF0
aW9uKHJlcXVlc3Rlck9yaWdpbiwgY3VycmVudFVSTCkpIHsKLSAgICAgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIGN1cnJlbnREb21haW4geyBjdXJyZW50VVJMIH07CisgICAgICAgIGF1dG8gY3Vy
cmVudFJlcXVlc3QgPSBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpOworICAgICAgICBhdXRv
IG5hdmlnYXRpb25EYXRhVHJhbnNmZXIgPSBjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW5zRGF0YVRy
YW5zZmVyKHJlcXVlc3Rlck9yaWdpbiwgY3VycmVudFJlcXVlc3QpOworICAgICAgICBpZiAoIW5h
dmlnYXRpb25EYXRhVHJhbnNmZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBSZWdpc3RyYWJs
ZURvbWFpbiBjdXJyZW50RG9tYWluIHsgY3VycmVudFJlcXVlc3QudXJsKCkgfTsKICAgICAgICAg
ICAgIFVSTCByZXF1ZXN0ZXJVUkwgeyBVUkwoKSwgcmVxdWVzdGVyT3JpZ2luLnRvU3RyaW5nKCkg
fTsKICAgICAgICAgICAgIGlmICghY3VycmVudERvbWFpbi5tYXRjaGVzKHJlcXVlc3RlclVSTCkp
Ci0gICAgICAgICAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNvbW1pdHRlZENyb3Nz
U2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQo
KSwgUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0ZXJVUkwgfSwgY3VycmVudERvbWFpbiwgbV9w
YWdlSUQpOworICAgICAgICAgICAgICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5kaWRDb21t
aXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlcihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Np
b25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbiB7IHJlcXVlc3RlclVSTCB9LCBjdXJyZW50RG9tYWlu
LCBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLCBtX3BhZ2VJRCk7CiAgICAgICAgIH0KICNlbmRpZgog
ICAgIH0KQEAgLTg2MzQsNiArODY0OCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZQogewog
ICAgIG1fdWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
b21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgp
Cit7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Oldhc0xvYWRlZFdpdGhEYXRhVHJh
bnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKSwgbV9wYWdlSUQpOworfQogI2VuZGlmCiAKIGJv
b2wgV2ViUGFnZVByb3h5Ojp1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDYzMWE4ZmU1NDA5NzNhN2JlZmEzMmM3ZjBiMmY5
ZGY3YzhmNGZmMDMuLjA3YzU1MjVhOWJiZjQ1NzNmNzRmNjgyOGQ5MTMwMDExNzgzODk4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDQ5LDYgKzE0NDksNyBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5z
ZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggMGUxMzlmMzBkOWNlZjlmNjMyMzNjNjEzYjVlNDJiY2RkNTk4ZWU2OC4uOWJmYmZkZTMw
N2U2NGIzZTZjY2VjNmJjY2IyYzRkZmQ3YjRiOWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjUxOSwyMCArMjUxOSwxNSBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpjbGVhckN1cnJlbnRNb2RpZmllclN0YXRlRm9yVGVzdGluZygpCiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhckN1cnJlbnRNb2RpZmll
clN0YXRlRm9yVGVzdGluZygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y29tbWl0dGVk
Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9Eb21haW4sIHVpbnQ2NF90IHBhZ2VJRCkKLXsKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlkQ29tbWl0Q3Jvc3NTaXRl
TG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9t
YWluLCBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2
aWdhdGlvbkRhdGFUcmFuc2ZlciwgdWludDY0X3QgcGFnZUlEKQorewogICAgIGlmICghbV9uZXR3
b3JrUHJvY2VzcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+Y29t
bWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihzZXNzaW9uSUQsIGZyb21Eb21h
aW4sIHRvRG9tYWluLCBwYWdlSUQsIFtdIHsgfSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShz
ZXNzaW9uSUQpOwotICAgIFVOVVNFRF9QQVJBTShmcm9tRG9tYWluKTsKLSAgICBVTlVTRURfUEFS
QU0odG9Eb21haW4pOwotICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwotI2VuZGlmCisgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoc2Vz
c2lvbklELCBmcm9tRG9tYWluLCB0b0RvbWFpbiwgbmF2aWdhdGlvbkRhdGFUcmFuc2ZlciwgcGFn
ZUlEKTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRXZWJQcm9jZXNzSGFz
VXBsb2FkcyhQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxNjU1NDViMWEyZjg2ZWFhNGI4MzNjOTNhYmU4
MGRjOTBlZTUyNjMzLi5kMGE5MjM2NzJiYmQyN2RhODk0ZGI2YWRkNDhiYzA4ODFjZTNjNWMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENv
bm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0Nyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJs
ZURvbWFpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC01
Myw2ICs1NCw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZXIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtNDkz
LDcgKzQ5NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNo
YW5nZWRNZXNzYWdlRm9yVGVzdGluZygpOwogICAgIHZvaWQgY2xlYXJDdXJyZW50TW9kaWZpZXJT
dGF0ZUZvclRlc3RpbmcoKTsKIAotICAgIHZvaWQgY29tbWl0dGVkQ3Jvc3NTaXRlTG9hZFdpdGhM
aW5rRGVjb3JhdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mIGZyb21Eb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b0Rv
bWFpbiwgdWludDY0X3QgcGFnZUlEKTsKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWlu
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlvblNldDxX
ZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiwgdWludDY0X3Qg
cGFnZUlEKTsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgdm9pZCBzZXRTYW5kYm94RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zYW5kYm94RW5hYmxl
ZCA9IGVuYWJsZWQ7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDI2NjgyZmYyNDdiYmQ0OWZhYzQzOGFjOGY2NmI2NTQ3ZmRmNjU3NGQuLjc2
ZjdjNWNiZjkwYzU1ZDM2NzM5Nzk0YzRlZTJjOTZjMTY3MjNiMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02NDkyLDYgKzY0OTIsMTUgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1
YkZyYW1lRG9tYWluLCBSZWdpc3RyYWIKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0
b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3Zl
KHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZy
b21QcmV2YWxlbnRSZXNvdXJjZSgpCit7CisgICAgYXV0byogZnJhbWUgPSBtYWluRnJhbWUoKTsK
KyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZnJhbWUtPmRvY3VtZW50KCktPndhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJl
dmFsZW50UmVzb3VyY2UoKTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAy
YTgxNDZiNzQ1MDc3MzAyZTIzZTQzZTZhNzY0YjEyNmM5ZTQxYmJlLi5hZDdjZDhkMzFkZWRiNzQ1
ZTg4NDI3ODE4MWYzNmU3MzZjYzgwMjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMTMzLDYgKzExMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIHdhc0xvYWRlZFdp
dGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGY3ZmViM2E1YTMzZGM4Y2E5N2Iw
NjdiZmI0ZmZmOWE1YWZhNGFhY2EuLmEyZjE5MDYwMTA1NTc3MWE0ZWVmMjZhYzg0MzQ5YzcxNmY4
NWIxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtNTY3LDQgKzU2Nyw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAKICAgICBUZXh0SW5wdXRDb250ZXh0c0luUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVj
dCkgLT4gKFZlY3RvcjxzdHJ1Y3QgV2ViS2l0OjpUZXh0SW5wdXRDb250ZXh0PiBjb250ZXh0cykg
QXN5bmMKICAgICBGb2N1c1RleHRJbnB1dENvbnRleHQoc3RydWN0IFdlYktpdDo6VGV4dElucHV0
Q29udGV4dCBjb250ZXh0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYworCisjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBXYXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlc291cmNlKCkKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzOWVjMmM1MTJiYjQ3ZmY2
MmFiZGJiN2Q1YjY2MGY0Yzg1MzhiZGYuLjQ3ZDQ1ZjgzNTZkY2E0NzhlMjQwOGMxNjI5OGEzNjI0
MzI0YmE4YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wNS0yNiAgSm9obiBXaWxhbmRl
ciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3Rp
Y3M6IERvd25ncmFkZSBkb2N1bWVudC5yZWZlcnJlciB0byB0aGUgcmVmZXJyZXIncyBlVExEKzEg
aWYgdGhlIHBhZ2Ugd2FzIG5hdmlnYXRlZCB0byB3aXRoIGEgcHJldmFsZW50IHJlc291cmNlIHJl
ZmVycmVyIGNvbnRhaW5pbmcgbGluayBkZWNvcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgyMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzUxMTE3MjU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZl
cnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3Vy
Y2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmst
cXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbDogQWRkZWQuCisKIDIwMTktMDUtMjUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIG1lZGlhL3ZpZGVv
LXJlbW90ZS1jb250cm9sLXBsYXlwYXVzZS5odG1sIGlzIHRpbWluZyBvdXQgYWZ0ZXIgcjI0NTcx
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZWQtcmVmZXJyZXItZm9yLW5hdmlnYXRpb24td2l0aC1saW5rLXF1ZXJ5LWZy
b20tcHJldmFsZW50LXJlc291cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0
aW9uLXdpdGgtbGluay1xdWVyeS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGZiYTgxMDM1ZTJmZWNiYTEzOTRkMDFkZjJlOWJlMjA2OTVlODVhNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVyeS1m
cm9tLXByZXZhbGVudC1yZXNvdXJjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ2hl
Y2sgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIHRvIHRoZSBlVExEKzEgYWZ0
ZXIgYSBjcm9zcy1zaXRlIG5hdmlnYXRpb24gd2l0aCBsaW5rIHF1ZXJ5LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgcmVmZXJyZXIgaXMgZG93bmdyYWRlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdy
YWRlZC1yZWZlcnJlci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxl
bnQtcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGVkLXJlZmVycmVyLWZvci1uYXZpZ2F0aW9uLXdpdGgtbGluay1xdWVy
eS1mcm9tLXByZXZhbGVudC1yZXNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwZDczZmE2YjRmZDhk
MGFkYzQ3M2M0ZTlhN2MxY2Y3OGVlMTdhZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1m
b3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRt
bApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL2Nvb2tpZXMvcmVzb3VyY2VzL2Nvb2tpZS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIkNoZWNrIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93
bmdyYWRlZCB0byB0aGUgZVRMRCsxIGFmdGVyIGEgY3Jvc3Mtc2l0ZSBuYXZpZ2F0aW9uIHdpdGgg
bGluayBxdWVyeS4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGxldCBudW1i
ZXJPZlRyaWVzID0gMDsKKyAgICBmdW5jdGlvbiB0ZXN0UmVmZXJyZXIoKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5yZWZlcnJlciA9PT0gcHJldmFsZW50UmVzb3VyY2VPcmlnaW4gKyAiLyIpIHsK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSByZWZlcnJlciBpcyBkb3duZ3JhZGVkLiIpOwor
ICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAg
ICAgfSBlbHNlIGlmICgrK251bWJlck9mVHJpZXMgPD0gNSkKKyAgICAgICAgICAgIHNldFRpbWVv
dXQodGVzdFJlZmVycmVyLCAyMDApOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlRoZSByZWZlcnJlciBpcyBub3QgZG93bmdyYWRlZDogIiArIGRvY3VtZW50LnJlZmVy
cmVyKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZVNhbWVPcmlnaW5Ub0Fk
ZFF1ZXJ5KCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gcHJldmFsZW50UmVz
b3VyY2VPcmlnaW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJl
ci1mb3ItbmF2aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2Uu
aHRtbD9saW5rPXF1ZXJ5IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBuYXZpZ2F0ZUNyb3NzT3Jp
Z2luKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25Pcmln
aW4gKyAiL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlZC1yZWZlcnJlci1mb3ItbmF2
aWdhdGlvbi13aXRoLWxpbmstcXVlcnktZnJvbS1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCI7Cisg
ICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKKyAgICBjb25zdCBwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luICYmIGRvY3VtZW50
LmxvY2F0aW9uLnNlYXJjaCA9PT0gIiIpIHsKKyAgICAgICAgICAgIG5hdmlnYXRlU2FtZU9yaWdp
blRvQWRkUXVlcnkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmln
aW4gPT09IHByZXZhbGVudFJlc291cmNlT3JpZ2luKSB7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKHRydWUsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiwgdHJ1
ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShwcmV2YWxlbnRSZXNvdXJjZU9yaWdpbikpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBw
cmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKG5hdmlnYXRlQ3Jvc3NPcmlnaW4pOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0ZXN0UmVmZXJyZXIoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>